Meine openHAB Hardware

Wow, im Laufe der Zeit ist hier einiges zusammengekommen, was ich in Verbindung mit openHAB einsetze. Die Liste hier auf der Seite gibt sogar mir einen guten Überblick, da es doch ein wenig unübersichtlich geworden ist. ;-)

Anfangs habe ich, wie vermutlich die meisten anderen Leute auch, openHAB auf einem Raspberry Pi betrieben, in meinem Fall war dies das Modell 3B. Das wurde mir irgendwann zu langsam, v.a. als das Thema MySQL hinzu kam. Auch habe ich keine guten Erfahrungen mit einer externen MySQL Datenbank gemacht, da nach einem (auch nur kurzen) Netzwerkausfall oder einem Neustart des Datenbankservers oder der Maschine mit dem Datenbankserver auch openHAB neu gestartet werden musste. So wurde aus dem Raspberry Pi dann ein kleiner Mini PC, der allerdings aufgrund der ausgesuchten Komponenten kaum mehr Strom verbraucht als der Raspberry Pi.

Ansonsten habe ich hauptsächlich HomeMatic für die Heizungen, Tasmota-fähige Komponenten wie Sonoff und Shelly für Licht- und Gerätesteuerung sowie Stromzählung, Xiaomi als Sensoren für Fenster, Türen, Bewegung, Temperatur und Luftfeuchtigkeit sowie alte klassische FS20 Komponenten via CUL, hier betreibe ich vor allem eine Wetterstation, die neben Temperatur und Luftfeuchtigkeit vor allem wegen Wind und Regen da ist. Eine eher ungewöhnliche Sache ist der Feinstaubsensor, der mir neben dem Feinstaub auch noch Temperatur und Luftfeuchtigkeit im Außenbereich misst. Den Stromzähler lese ich mit einem Infrarotleser aus, die Router und Access Points sind aufgeführt, weil ich mit diesen An- und Abwesenheiten erfasse.

Hier also meine openHAB Hardware:

Mini ITX Rechner:

Nicht mehr im Einsatz: Raspberry Pi:

HomeMatic:

Tasmota:

Xiaomi:

Stromzähler:

FS20:

Feinstaub:

Router und Access Points:

  1. Amazon Affiliate Link. Bei Bestellung erhalten wir ein paar Cent Provision. Wichtig: Am Preis auf Amazon ändert sich für Dich nichts! Es handelt sich lediglich um einen Bonus, den uns Amazon für die Empfehlung gut schreibt. [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
  2. AliExpress Affiliate Link. Bei Bestellung erhalten wir ein paar Cent Provision. Wichtig: Am Preis auf AliExpress ändert sich für Dich nichts! Es handelt sich lediglich um einen Bonus, den uns AliExpress für die Empfehlung gut schreibt. [] [] []
  3. GearBest Affiliate Link. Bei Bestellung erhalten wir ein paar Cent Provision. Wichtig: Am Preis auf GearBest ändert sich für Dich nichts! Es handelt sich lediglich um einen Bonus, den uns GearBest für die Empfehlung gut schreibt. [] [] [] [] [] [] [] [] [] [] [] []

openHAB

Hausautomation bzw. Hausüberwachung und Alarmierung bei „Problemen“ mit openHAB.

Seit ~ 2017 beschäftige ich mich mit openHAB. Vorher schon ein klein wenig mit FHEM, das ich auf der Fritzbox installiert hatte. Anfangs habe ich mit openHAB lediglich die HomeMatic Heizungsthermostate gesteuert, was natürlich auch ohne openHAB gegangen wäre. Recht schnell habe ich aber weitere Funktionen hinzuprogrammiert, die erste Spielerei war, die Heizung im Wohnzimmer später herunterzuschalten, wenn der TV noch eingeschaltet war. Um Heizkosten einzusparen kamen dann aber auch Fenster- und Türsensoren hinzu. Da ich aus den FHEM Zeiten bereits einen CUL Stick für die klassischen S300TH Temperatur/Luftfeuchtigkeitssensoren hatte, habe ich mir eine ebenso klassische Wetterstation zugelegt, die über den gleichen Mechanismus abfrage. Nur ein kurzer Abriss der Historie meiner Installation, eventuell werde ich dies noch ein wenig ausführlicher beschreiben.

Hier auf den Unterseiten soll es nun um die aktuelle und ggf. auch vergangene Hard- und Softwarekonfiguration meiner Installation gehen. Zumindest soweit, wie es für andere interessant sein sollte, denn bei so einem mächtigen Tool wie openHAB liegt der Teufel oft im Detail, da ist man auf Impressionen aus dem Internet angewiesen, mir geht es da nicht anders. ;-)

Im Moment ist hier alles noch im Aufbau, die Inhalte müssen natürlich erst nach und nach erstellt werden. Der Einfachheit halber werde ich die meisten Inhalte als Blogbeiträge erstellen und hier eine Linkliste mit den Beiträgen erstellen.

Aktuell gibt es eine Hardwareliste, denn hier hat sich im Laufe der Zeit doch so einiges angesammelt. Das ist im Grunde genommen ja auch der Grund, warum ich mir openHAB anfangs näher angeschaut habe und dabei geblieben bin. Denn man kann alles mit allem kombinieren und das geht deswegen so gut, weil es für fast alles die entsprechenden Bindings gibt.

Ein paar Konfigurationsdateien und mehr habe ich sogar schon in Form eines öffentlichen GIT Repositories abgelegt.

Realtime Clock (RTC) am Raspberry Pi betreiben

Da ich im Moment dabei bin, ein Home Automation System auf Basis eines Raspberry Pi 21 und openHAB aufzubauen, werde ich hier im Blog hin und wieder einzelne Schritte beschreiben. V.a., wenn ich selbst im Netz gar nichts, wenig oder veraltete Infos gefunden habe. Vermutlich werde ich auch noch eine Übersichtsseite hier erstellen, die auf die Blogbeiträge verlinken. Aber eines nach dem anderen… Zur (aktuellen) Sache:

Da ich den Raspberry Pi auch verwenden werde um Stromausfall per SMS zu melden (zur USV und dem UMTS Stick beizeiten an anderer Stelle mehr) dachte ich mir, dass ein Realtime Clock (RTC) Modul nicht schaden könnte. Fällt nämlich der Strom aus und der Raspberry fährt herunter, ist die Uhrzeit weg. Beim Neustart wird die Uhrzeit aus dem Internet per NTP auf die aktuelle Zeit gesetzt. Kein Internet, keine korrekte Uhrzeit, dadurch eventuell SMS Nachrichten mit „komischem“ Inhalt.

Die Hardware, also die kleine RTC DS1307 Platine, kostet übrigens um die 2 € und ist z.B. bei Amazon1 erhältlich. Auf jeden Fall beachten, dass keine „normale“ Batterie sondern eine wiederaufladbare LIR2032 Lithium-Batterie mitgeliefert wird und es diese auch tatsächlich ist!

Bin nach folgenden beiden Anleitungen vorgegangen:

Im ersten Tutorial ist ganz gut beschrieben, wie die Hardware umzulöten ist (keine Angst, das kriegt jeder mit jedem Lötkolben hin, ist aber wichtig und unumgänglich) und wie diese an den Raspberry Pi anzuschließen ist. Hier zwei Fotos der umgelöteten Platine. Auf dem zweiten Bild sieht man, wo die beiden Widerstände entfernt werden müssen und wo die vier Pins angelötet werden müssen.

RTC DS1307 Platine

RTC DS1307 Platine

Verkabelt wird das auf dem Raspberry Pi dann so:

#--------------------#
| RPi GPIO  | RTC P1 |
|-----------|--------|
|Pin 2 5V   |   VCC  |
|Pin 3 SDA  |   SDA  |
|Pin 5 SCL  |   SCL  |
|Pin 6 GND  |   GND  |
#--------------------#

Leider sind die beiden Anleitungen nicht mehr ganz aktuell was den Softwareteil anbelangt. Hier daher kurz zusammengefasst, was ich beim Raspberry Pi 2 und dem Raspbian Image vom Februar 2015 machen musste:

In der Raspberry Config unter „Advanced Options“, „A7 I2C Enable/Disable automatic loading of I2C kernel module“ das I2C aktivieren:

sudo raspi-config

Die I2C Tools installieren:

sudo apt-get install i2c-tools

Zum Test und zur Einrichtung die noch nötigen Module laden:

sudo modprobe i2c_dev
sudo modprobe rtc_ds1307

Nun sollte hier in einer Tabelle irgendwo eine „68“ auftauchen:

i2cdetect -y 1

Hiermit kann man sich die aktuell gesetzten Stunden, Minuten und Sekunden sehen:

i2cget -y 1 0x68 0
i2cget -y 1 0x68 1
i2cget -y 1 0x68 2

Virtuelle Datei für die Uhr anlegen:

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

Aktuelle Uhrzeit aus der Uhr auslesen:

sudo hwclock -r

Systemzeit in die Uhr speichern (bei mir stimmte sie bei Ersteinrichtung natürlich absolut überhaut nicht):

sudo hwclock -w

Ok, klappt also alles. Nun soll das ganze Thema ja auch dauerhaft nach Systemstart am Start sein.

Dazu in /etc/modules folgende Module hinzufügen:

i2c_dev
rtc_ds1307

In /etc/rc.local kommt vor exit 0 folgendes:

# RTC Uhr einbinden und Systemzeit aus RTC beim Start setzen
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s

Zusätzlich wollen wir, dass die genaue Systemzeit (wird im Normalfall ja per NTP permanent aktualisiert) beim Shutdown in die Uhr gespeichert wird.

/etc/init.d/hwclock_w mit folgendem Inhalt erstellen:

#!/bin/sh
### BEGIN INIT INFO
# Provides: hwclock_w
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start:
# Default-Stop: 0 1 6
# Short-Description: RTC Clock mit Systemzeit setzen beim Shutdown
### END INIT INFO

hwclock -w

Das Script soll bei den entsprechenden Shutdown- und Restart-Runlevels ausgeführt werden. Das erreichen wir damit:

update-rc.d hwclock_w defaults

Fertig!

Nun kann man das Thema noch testen indem man den Raspberry Pi runterfährt, ein Weilchen ausgeschaltet lässt und ohne Internet wieder startet. Dann mit date und auch sudo hwclock -r die aktuelle Uhrzeit anzeigen lassen.

Zeitbedarf hielt sich sehr in Grenzen. Mit Löterei und Recherche, warum es nicht auf Anhieb mit o.g. Anleitungen tat, eine Stunde.

  1. Amazon Affiliate Link. Bei Bestellung erhalten wir ein paar Cent Provision. Wichtig: Am Preis auf Amazon ändert sich für Dich nichts! Es handelt sich lediglich um einen Bonus, den uns Amazon für die Empfehlung gut schreibt. [] []