In einem vorhergehenden Artikel wurde beschrieben, wie die Steckdosenleiste SIS-PMS via USB mit einem Raspberry Pi gesteuert werden kann. Nun geht es darum, die Steckdosenleiste mit den vier möglichen Endgeräten auch bequem per Browser oder App via openHAB zu steuern.
Zunächst erstellen wir auf dem openHAB-Server ein kleines Bash-Script, welches später aus openHAB heraus die einzelnen Steckdosen schalten kann. Dazu ist eine SSH-Anmeldung an allen in Frage kommenden Raspberrys ohne die Eingabe eines Passwortes notwendig. Die dazu notwendigen Vorbereitungen sind in diesem Artikel detailiert beschrieben. Anschließend erstellen wir das angesprochene Bash-Script und speichern dieses beispielsweise als „/scripts/sdl.sh„:
#!/bin/bash
if [ -z "$1" -o -z "$2" -o -z "$3" -o -z "$4" ] ;then
echo "So geht das nicht"
exit 1;
fi
/usr/bin/ssh -i /scripts/.ssh/id_rsa root@192.168.23.$1 "/usr/local/bin/sispmctl -d $2 -q$3 $4"
Zudem erlauben wir die Ausführung dieses Scripts mittels
chmod +x sdl.sh
und ändern den Besitz des Scripts mit
chown openhab: sdl.sh
Dieses Script erwartet bei Aufruf vier Parameter:
Das letzte Oktett des Raspberrys, an welchem die Steckdosenleiste angeschlossen ist
Die ID der Steckdosenleiste (0, 1, 2, usw.)
„o“ oder „f„, zum Ein- oder Ausschalten eines Gerätes
Die Nummer der zu schaltenden Steckdose, eins bis vier
Nach der Erstellung des Scriptes können wir dieses auch gleich von der Konsole aus testen:
/scripts/sdl.sh 235 0 o 1
Dieser Aufruf schaltet die erste Steckdose der ersten Leiste ein, die via USB an der Himbeere „192.168.23.235“ angeschlossen ist.
openHAB-Addon installieren
Zur Einbindung der Steckdosenleiste in openHAB nutzen wir in diesem Artikel das openHAB-Addon „exec„, welches wir mit der Paketverwaltung installieren:
apt-get install openhab-addon-binding-exec
Items definieren
Wenn das Script von der Konsole aus erfolgreich getestet wurde, erstellen wir nun für jede zu schaltende Steckdose ein Item für openHAB:
Switch LI_TA_MOL <light> (grpTier_LI_TA) { exec=">[OFF:/scripts/sdl.sh 235 0 f 1] >[ON:/scripts/sdl.sh 235 0 o 1]" }
Switch LI_TA_FI <light> (grpTier_LI_TA) { exec=">[OFF:/scripts/sdl.sh 235 0 f 2] >[ON:/scripts/sdl.sh 235 0 o 2]" }
Switch LI_TA_SAL <light> (grpTier_LI_TA) { exec=">[OFF:/scripts/sdl.sh 235 0 f 3] >[ON:/scripts/sdl.sh 235 0 o 3]" }
Switch LI_TA_AX <light> (grpTier_LI_TA) { exec=">[OFF:/scripts/sdl.sh 235 0 f 4] >[ON:/scripts/sdl.sh 235 0 o 4]" }
Zur Erläuterung der einzelnen Spalten:
Wir definieren einen Schalter
Wir vergeben dem Schalter einen einzigartigen Namen
Als Symbol wählen wir das bereits bei der openHAB-Installation existierende Icon „light„
Wir fügen die Steckdose einer Gruppe hinzu, um später eine Gruppenschaltung zu realisieren
Zum Schalten nutzen wir das Addon „exec„, das mit Hilfe unseres Scriptes eine Steckdose ein- oder ausschaltet. Die „235“ im Beispiel beschreibt das letzte Oktett unserer Himbeere, „f“ schaltet eine Steckdose aus, „o“ (kleiner Buchstabe) schaltet eine Steckdose ein.
Zudem definieren wir die Gruppe, zu welcher alle Steckdosen hinzugefügt wurden:
Group:Switch:OR(ON,OFF) grpTier_LI_TA
Items in Sitemap einbinden
Im folgenden binden wir die soeben konfiguriertem Items in unsere Sitemap ein. Ich habe mich dazu entschlossen, dass der jeweilige Abschnitt mit der Anzeige und Schaltung der entsprechenden Gruppe beginnt:
Die Konfiguration, wie wir sie in diesem Artikel beispielhaft verwenden, wird sich in der Sitemap so darstellen:
Regeln festlegen
Zum Abschluss möchten wir die Schaltvorgänge automatisieren, indem morgens um sieben Uhr exemplarisch ein Tageslicht eingeschaltet wird. Eine entsprechende Regel wird wie folgt definiert:
rule "Morgens Taglicht Fische an"
when
Time cron "0 00 07 * * ?"
then
sendCommand(LI_TA_FI, ON)
end
Sinnvoller ist es natürlich, direkt die Gruppe der Tageslichter zu schalten. Hierbei gewähren wir den Himbeeren jedoch zwischen jedem Schaltvorgang eine zweisekündige Pause:
rule "Morgens Taglichter an"
when
Time cron "0 0 07 * * ?"
then
grpTier_LI_TA?.members.forEach[Switch|
sendCommand(Switch, ON)
Thread::sleep(2000)
]
end
openHAB :: Einbinden von USB-Steckdosenleisten
In einem vorhergehenden Artikel wurde beschrieben, wie die Steckdosenleiste SIS-PMS via USB mit einem Raspberry Pi gesteuert werden kann. Nun geht es darum, die Steckdosenleiste mit den vier möglichen Endgeräten auch bequem per Browser oder App via openHAB zu steuern.
Verfügbare Artikel zu openHAB
Bash-Script erstellen
Zunächst erstellen wir auf dem openHAB-Server ein kleines Bash-Script, welches später aus openHAB heraus die einzelnen Steckdosen schalten kann. Dazu ist eine SSH-Anmeldung an allen in Frage kommenden Raspberrys ohne die Eingabe eines Passwortes notwendig. Die dazu notwendigen Vorbereitungen sind in diesem Artikel detailiert beschrieben. Anschließend erstellen wir das angesprochene Bash-Script und speichern dieses beispielsweise als „/scripts/sdl.sh„:
Zudem erlauben wir die Ausführung dieses Scripts mittels
und ändern den Besitz des Scripts mit
Dieses Script erwartet bei Aufruf vier Parameter:
Nach der Erstellung des Scriptes können wir dieses auch gleich von der Konsole aus testen:
Dieser Aufruf schaltet die erste Steckdose der ersten Leiste ein, die via USB an der Himbeere „192.168.23.235“ angeschlossen ist.
openHAB-Addon installieren
Zur Einbindung der Steckdosenleiste in openHAB nutzen wir in diesem Artikel das openHAB-Addon „exec„, welches wir mit der Paketverwaltung installieren:
Items definieren
Wenn das Script von der Konsole aus erfolgreich getestet wurde, erstellen wir nun für jede zu schaltende Steckdose ein Item für openHAB:
Zur Erläuterung der einzelnen Spalten:
Zudem definieren wir die Gruppe, zu welcher alle Steckdosen hinzugefügt wurden:
Items in Sitemap einbinden
Im folgenden binden wir die soeben konfiguriertem Items in unsere Sitemap ein. Ich habe mich dazu entschlossen, dass der jeweilige Abschnitt mit der Anzeige und Schaltung der entsprechenden Gruppe beginnt:
Das in dieser Zeile angegebene „[(%d)]“ wird in der späteren Ansicht durch die Anzahl der aktiveren Geräte dieser Gruppe ersetzt.
Anschließend konfigurieren wir jede Steckdose der Leiste:
Die Konfiguration, wie wir sie in diesem Artikel beispielhaft verwenden, wird sich in der Sitemap so darstellen:
Regeln festlegen
Zum Abschluss möchten wir die Schaltvorgänge automatisieren, indem morgens um sieben Uhr exemplarisch ein Tageslicht eingeschaltet wird. Eine entsprechende Regel wird wie folgt definiert:
Sinnvoller ist es natürlich, direkt die Gruppe der Tageslichter zu schalten. Hierbei gewähren wir den Himbeeren jedoch zwischen jedem Schaltvorgang eine zweisekündige Pause:
Verwandte Beiträge
In diesem Beitrag wurde der 1wire-Sensor DS18B20 vorgestellt und erläutert, wie man diesen an einem…
Kürzlich stellte ich in einem Artikel die Möglichkeit vor, einen LG-Smart-TV mit einer Linux-Kommandozeile zu steuern. Zur…
Wie wir aus diesem Artikel wissen, können wir die recht günstigen Funksteckdosensets der Firma Brennenstuhl mit einem…
In diesem Beitrag habe ich gezeigt, wie wir einen Bewegungssensor Typ PIR am Raspberry anschließen…
Alle Schalter, Kontakte oder Schwimmer aus diesem Artikel können in das Hausautomatisierungssystem openHAB eingebunden werden. Nachdem openHAB…