In diesem Artikel zeigte ich, wie wir Endgeräte mit dem Raspberry via Infrarot steuern können. Nach dem Artikel waren wir in der Lage, Steuerbefehle mittels einer Linux-Konsole abzusetzen und gezielte Aktionen an Endgeräten (bspw. das gezeigte RGB-LED-Lichtband) auszulösen. Leider erlauben es die Umstände nicht, dass ich jederzeit ein handliches Gerät mit einer offenen SSH-Sitzung mit mir führe. Zudem wäre die ständige Eingabe des jeweiligen LIRC-Kommandos doch eher umständlich. Daher zeige ich in diesem Beitrag, wie infrarotgesteuerte Endgeräte, hier als Beispiel wieder der LED-Lichtstreifen, mittels openHAB gesteuert werden können.
Für die Umsetzung unserer Ziele müssen wir zunächst sicherstellen, dass sich der openHAB-Server ohne Passwort und sonstiger Abfragen via SSH mit der Himbeere verbinden kann, auf welcher wir den Infrarotsender anschlossen und konfigurierten. Wie die passwortlose Anmeldung via SSH möglich ist, zeigt dieser Artikel detailiert. Wenn die dort aufgeführten Schritte umgesetzt wurden, können wir an dieser Stelle mit der Erstellung eines Bash-Scriptes fortsetzen, welches aus openHAB heraus die Steuerbefehle an den jeweiligen Raspberry sendet.
Dazu erstellen wir beispielsweise die Datei “/scripts/ledband.sh” mit folgendem Inhalt:
In diesem kleinen Script müssen die ersten drei Oktette der IP-Adresse natürlich an die eigenen Gegebenheiten angepasst werden. Zur weiteren Erklärung sei erwähnt, dass das Script drei Parameter erwartet:
das letzte Oktett des Raspberry, so können verschiedene Himbeeren via openHAB angesprochen werden
der Name der konfigurierten Fernbedienung, in unserem Beispiel so wie auch im letzten Artikel verwenden wir den Namen “ledband_SZ“
der Name der auszuführenden Taste
openHAB-Addon installieren
Die Umsetzung unserer Infrarotsteuerung realisieren wir in diesem Artikel mit dem openHAB-Addon “exec“, welches wir mittels apt-Paketverwaltung wie folgt installieren:
apt-get install openhab-addon-binding-exec
Item(s) konfigurieren
Da unsere LED-Lichtleiste nicht mit einem bereits für openHAB verfügbares Addon gesteuert werden kann, ist es notwendig, für nahezu jeden Schaltbefehl ein seperates Item zu definieren. Für alle Funktionen des hier gezeigten LED-Lichtbandes würden die Definitionen wie folgt aussehen:
Zur Erklärung der einzelnen Spalten der jeweiligen Item-Definition:
Wir definieren das Item als Schalter
Wir benennen die Schalter einheitlich mit “LED_SZ_$FUNKTION“
Wir beschrieben in kurzen Worten die Funktion des Schalters
Wir konfiguieren das anzuzeigende Icon, welches sich als “.png“-Datei im Ordner “/usr/share/openhab/webapp/images” befinden muss.
Wir verwenden das Addon “exec“, um die Schaltbefehle via SSH auf dem Raspberry auszuführen. Dazu wird unser vorher erstelltes Script “/scripts/ledband.sh” ausgeführt und als Parameter das letzte Oktett der IP-Adresse des Raspberry, der Name der konfigurierten LIRC-Fernbedienung sowie die zu schaltende Taste angegeben. Die meisten Items werden später nur als Button angezeigt, daher benötigen wir für die Funktionen und Farben keine Einstellung für “OFF“. Zudem konfigurieren wir mit “autoupdate=”false”“, dass der Status des jeweiligen Buttons nicht aktualisiert und auch nicht gespeichert wird. Unsere Knöpfe in der Sitemap werden nur gedrückt, nicht “umgeschaltet”.
Farbsymbole zum herunterladen
Hier möchte ich zumindest die Symbole der einzelnen Farben zum herunterladen anbieten, damit sich diese Arbeit gespart werden kann.
Nachdem alle notwendigen Items definiert wurden und die item-Datei in openHAB eingelesen wurde, erstellen wir nun die entsprechende Konfiguration für die Sitemap. Grafisch habe ich mir das so vorgestellt, dass im jeweiligen Raum zunächst nur eine einzelne Zeile für das LED-Band angezeigt wird. Wenn diese ausgewählt wird, gelangt man in ein umfangreicheres Untermenü, in welchem sämtliche Funktionen geschaltet werden können. Dabei wird zwischen “Allgemeinen Schaltungen” wie der Betriebszustand oder die Helligkeit und der “Farbauswahl” unterschieden. Diese beiden Bereiche erscheinen mit leichten Abstand untereinander.
Das Ergebnis zeigt sich in unserem Browser oder in unserer openHAB-App in gekürzter Form wie folgt:
Regeln erstellen
Der eigenen Kreativität kann an dieser Stelle freien Lauf gelassen werden, wenn es darum geht, Regeln für unsere LED-Lichtleiste zu erstellen. Ich habe mich beispielsweise dazu entschieden, dass die Lichtleiste nach einer Stunde Aktivität automatisch wieder ausgeschaltet wird. Dazu benötigen wir zunächst ein Java-Modul sowie eine Variablendefinitionen:
import org.openhab.core.library.types.DecimalType
var Timer timerLBSZ = null
Anschließend erstellen wir für diesen Zweck zwei neue Regeln:
rule "LED-Band SZ nach einer Stunde ausschalten"
when
Item LB_SZ_ONOFF changed from OFF to ON
then
timerLBSZ = createTimer(now.plusMinutes(60)) [|
sendCommand(LB_SZ_ONOFF, OFF)
]
end
rule "LED-Band SZ Timer abbrechen"
when
Item LB_SZ_ONOFF changed from ON to OFF
then
if (timerLBSZ != null) timerLBSZ.cancel()
end
Möglich wäre auch, die Lichtleiste einfach nur morgens um sieben Uhr einschalten zu lassen:
rule "Morgens ledband_SZ an"
when
Time cron "0 0 7 * * ?"
then
sendCommand(LB_SZ_ONOFF, ON)
end
Demonstrationsvideo
Hier ein kurzes Video für die, die nicht glauben wollen, dass das günstige Baumarkt-LED-Lichtband mit openHAB gesteuert werden kann:
openHAB :: Infrarotgesteuerte Geräte einbinden (LED-Band)
Verfügbare Artikel zu openHAB
Inhaltsverzeichnis
[themify_box style=”rounded” ]In diesem Artikel verwendetes Zubehör
Bash-Script erstellen
Für die Umsetzung unserer Ziele müssen wir zunächst sicherstellen, dass sich der openHAB-Server ohne Passwort und sonstiger Abfragen via SSH mit der Himbeere verbinden kann, auf welcher wir den Infrarotsender anschlossen und konfigurierten. Wie die passwortlose Anmeldung via SSH möglich ist, zeigt dieser Artikel detailiert. Wenn die dort aufgeführten Schritte umgesetzt wurden, können wir an dieser Stelle mit der Erstellung eines Bash-Scriptes fortsetzen, welches aus openHAB heraus die Steuerbefehle an den jeweiligen Raspberry sendet.
Dazu erstellen wir beispielsweise die Datei “/scripts/ledband.sh” mit folgendem Inhalt:
Wir erlauben die Ausführung des Scripts durch
und übertragen den Besitz an “openhab” durch
In diesem kleinen Script müssen die ersten drei Oktette der IP-Adresse natürlich an die eigenen Gegebenheiten angepasst werden. Zur weiteren Erklärung sei erwähnt, dass das Script drei Parameter erwartet:
openHAB-Addon installieren
Die Umsetzung unserer Infrarotsteuerung realisieren wir in diesem Artikel mit dem openHAB-Addon “exec“, welches wir mittels apt-Paketverwaltung wie folgt installieren:
Item(s) konfigurieren
Da unsere LED-Lichtleiste nicht mit einem bereits für openHAB verfügbares Addon gesteuert werden kann, ist es notwendig, für nahezu jeden Schaltbefehl ein seperates Item zu definieren. Für alle Funktionen des hier gezeigten LED-Lichtbandes würden die Definitionen wie folgt aussehen:
Zur Erklärung der einzelnen Spalten der jeweiligen Item-Definition:
Farbsymbole zum herunterladen
Hier möchte ich zumindest die Symbole der einzelnen Farben zum herunterladen anbieten, damit sich diese Arbeit gespart werden kann.
Icons LED-Band
Gerät in Sitemap einbinden
Nachdem alle notwendigen Items definiert wurden und die item-Datei in openHAB eingelesen wurde, erstellen wir nun die entsprechende Konfiguration für die Sitemap. Grafisch habe ich mir das so vorgestellt, dass im jeweiligen Raum zunächst nur eine einzelne Zeile für das LED-Band angezeigt wird. Wenn diese ausgewählt wird, gelangt man in ein umfangreicheres Untermenü, in welchem sämtliche Funktionen geschaltet werden können. Dabei wird zwischen “Allgemeinen Schaltungen” wie der Betriebszustand oder die Helligkeit und der “Farbauswahl” unterschieden. Diese beiden Bereiche erscheinen mit leichten Abstand untereinander.
Das Ergebnis zeigt sich in unserem Browser oder in unserer openHAB-App in gekürzter Form wie folgt:
Regeln erstellen
Der eigenen Kreativität kann an dieser Stelle freien Lauf gelassen werden, wenn es darum geht, Regeln für unsere LED-Lichtleiste zu erstellen. Ich habe mich beispielsweise dazu entschieden, dass die Lichtleiste nach einer Stunde Aktivität automatisch wieder ausgeschaltet wird. Dazu benötigen wir zunächst ein Java-Modul sowie eine Variablendefinitionen:
Anschließend erstellen wir für diesen Zweck zwei neue Regeln:
Möglich wäre auch, die Lichtleiste einfach nur morgens um sieben Uhr einschalten zu lassen:
Demonstrationsvideo
Hier ein kurzes Video für die, die nicht glauben wollen, dass das günstige Baumarkt-LED-Lichtband mit openHAB gesteuert werden kann:
Verwandte Artikel: