Alle Schalter, Kontakte oder Schwimmer aus diesem Artikel können in das Hausautomatisierungssystem openHAB eingebunden werden. Nachdem openHAB installiert und konfiguriert wurde, wollen wir uns in diesem Beitrag den notwendigen Scripten sowie den Definitionen innerhalb openHAB widmen. Die hier vorgestellte Methode basiert auf den Zugriff des openHAB-Servers auf einen oder mehrere Raspberry mittels SSH. Die dazu notwendigen Abläufe werden in Bash-Scripten zusammengefasst.
In diesem Beispielszenario wurde ein Raspberry mit der IP-Adresse „192.168.23.236“ und der openHAB-Server mit der Adresse „192.168.23.212“ konfiguriert.
Zwingend vorausgesetzt wird zunächst, dass eine Anmeldung via SSH ohne Passwort ermöglicht wird, was in diesem Beitrag ausführlich beschrieben wurde. Das Auslesen einzelner GPIO-Ports auf dem Raspberry wird in diesem Artikel beschrieben.
Testen wir zunächst, ob der Kontakt lokal auf dem Raspberry ausgelesen werden kann und der korrekte Status angezeigt wird:
/usr/local/bin/gpio read 11
In unserem Beispiel ist am GPIO-Port 11 (gem. wiringPi-Logik) ein Schwimmer angeschlossen, der den Stromkreis je nach Wasserstand öffnet oder schließt.
Im nächsten Schritt prüfen wir, ob dieser Befehl remote vom openHAB-Server ausgeführt werden kann:
Das Script erwartet als ersten Parameter das letzte Oktett der IP-Adresse des Raspberry, an welchem der Schalter bzw. der Kontakt angeschlossen ist. Der zweite Parameter setzt den abzufragenden GPIO-Port. Wir speichern das neue Script als „/scripts/wtrlvl.sh„, erlauben die Ausführung durch
chmod +x /scripts/wtrlvl.sh
und übertragen den Besitz an „openhab“ durch
chown openhab: /scripts/wtrlvl.sh
Die entsprechende Item-Definition kann so konfiguriert werden:
Number WTR_FISCHE <cistern> { exec="<[/scripts/wtrlvl.sh 236 11:60000:REGEX((.*?))]" }
Anschließend fügen wir das Item in unsere Sitemap ein:
Text item=WTR_FISCHE valuecolor=[0="red",1="green"] label="Wasserstand Fische [MAP(wtrlvl.map):%s]"
Die Übersetzung in der .map-Konfigurationsdatei hierfür habe ich so definiert:
Letztendlich sieht unser Beispiel in der Sitemap wie folgt aus:
Wie wir sehen, ist der Wasserstand, entgegen der Beispiele weiter oben, zu niedrig. Der Schwimmer hat daher den Stromkreis geöffnet und das entsprechende Item auf den Wert „0“ gesetzt. Übersetzt aus der Transform-Map wird nun der Text „niedrig“ ausgegeben und durch die Darstellungsoption „valuecolor“ in roter Farbe angezeigt. Zudem wird die leere Version des Symbols „cistern“ angezeigt.
openHAB :: Einbinden von Schaltern und Kontakten
Alle Schalter, Kontakte oder Schwimmer aus diesem Artikel können in das Hausautomatisierungssystem openHAB eingebunden werden. Nachdem openHAB installiert und konfiguriert wurde, wollen wir uns in diesem Beitrag den notwendigen Scripten sowie den Definitionen innerhalb openHAB widmen. Die hier vorgestellte Methode basiert auf den Zugriff des openHAB-Servers auf einen oder mehrere Raspberry mittels SSH. Die dazu notwendigen Abläufe werden in Bash-Scripten zusammengefasst.
In diesem Beispielszenario wurde ein Raspberry mit der IP-Adresse „192.168.23.236“ und der openHAB-Server mit der Adresse „192.168.23.212“ konfiguriert.
Verfügbare Artikel zu openHAB
Zwingend vorausgesetzt wird zunächst, dass eine Anmeldung via SSH ohne Passwort ermöglicht wird, was in diesem Beitrag ausführlich beschrieben wurde. Das Auslesen einzelner GPIO-Ports auf dem Raspberry wird in diesem Artikel beschrieben.
Testen wir zunächst, ob der Kontakt lokal auf dem Raspberry ausgelesen werden kann und der korrekte Status angezeigt wird:
In unserem Beispiel ist am GPIO-Port 11 (gem. wiringPi-Logik) ein Schwimmer angeschlossen, der den Stromkreis je nach Wasserstand öffnet oder schließt.
Im nächsten Schritt prüfen wir, ob dieser Befehl remote vom openHAB-Server ausgeführt werden kann:
Bei Erfolg wird uns auch jetzt der Schaltzustand ausgegeben:
Nun können wir ein Bash-Script erstellen, das openHAB nutzt, um den Schaltzustand in ein Item zu schreiben:
Das Script erwartet als ersten Parameter das letzte Oktett der IP-Adresse des Raspberry, an welchem der Schalter bzw. der Kontakt angeschlossen ist. Der zweite Parameter setzt den abzufragenden GPIO-Port. Wir speichern das neue Script als „/scripts/wtrlvl.sh„, erlauben die Ausführung durch
und übertragen den Besitz an „openhab“ durch
Die entsprechende Item-Definition kann so konfiguriert werden:
Anschließend fügen wir das Item in unsere Sitemap ein:
Die Übersetzung in der .map-Konfigurationsdatei hierfür habe ich so definiert:
Letztendlich sieht unser Beispiel in der Sitemap wie folgt aus:
Wie wir sehen, ist der Wasserstand, entgegen der Beispiele weiter oben, zu niedrig. Der Schwimmer hat daher den Stromkreis geöffnet und das entsprechende Item auf den Wert „0“ gesetzt. Übersetzt aus der Transform-Map wird nun der Text „niedrig“ ausgegeben und durch die Darstellungsoption „valuecolor“ in roter Farbe angezeigt. Zudem wird die leere Version des Symbols „cistern“ angezeigt.
Verwandte Beiträge
In diesem Beitrag habe ich gezeigt, wie wir einen Bewegungssensor Typ PIR am Raspberry anschließen…
In diesem Beitrag wurde der 1wire-Sensor DS18B20 vorgestellt und erläutert, wie man diesen an einem…
In einem früheren Beitrag habe ich darüber berichtet, wie man den Temperatur- und Luftfeuchtigkeitssensor DHT22…
Kürzlich habe ich einen sehr günstigen Sensor in den weiten des Internets entdeckt, mit dem…
Nachdem wir openHAB nun installiert und konfiguriert haben, möchten wir natürlich in openHAB unsere Temperatursensoren einbinden, die wir…