Ausgangssituation:
openHAB ist installiert und mehrere Lampen können damit geschaltet werden. Zum Beispiel über Homematic, Innogy oder einer beliebigen anderen Lösung.
Ziel:
Eine oder mehrere Lampen sollen eine Art Zeitschaltuhr erhalten, also per Regel nach einer bestimmten Anzahl an Minuten ausgeschaltet werden. Es ist auch möglich diese Regel für jede beliebige andere Operation anzuwenden.
Dazu soll nicht jede Lampe manuell programmiert werden müssen, sondern eine Regel, die auf alle Mitglieder einer Gruppe schaut.
Umsetzung:
Um das zu erreichen gibt es folgende Voraussetzungen:
- Fertig eingerichtetes Persistance-Add-on, zum Beispiel RRD4j
- Eine Gruppe, in der die Licht-Switches Mitglieder sind
- Eine Regel
Wir gehen davon aus, dass die Gruppe gLightsTimer heißt und in einer .items Datei definiert ist, z.B. system.items:
Group gLightsTimer
Die Licht-Switches sind dann Mitglied davon und in einer anderen .items-Datei definiert:
In einer .rules Datei wird dann minütlich abgefragt, ob es Mitglieder in dieser Gruppe gibt, die eingeschaltet sind und sich seit mehr als X Minuten (in meinem Beispiel 20) nicht geändert haben.
Die Regel schaut dann so aus, ich habe am Ende jeder Zeile einen passenden Kommentar dazu:
Hier noch die Datei, deren .txt-Endung entfernt werden muss:
Diese Datei muss dann unter \rules\ eingefügt werden.
Lasst euch nicht davon irritieren, dass der Eclipse-Designer einige Zeilen als fehlerhaft anzeigt. Das ist nicht korrekt, die Regel funktioniert so.
Das wars schon. Natürlich könnt ihr die Zeit anpassen, die Gruppen-Namen oder auch andere Dinge wie den Feueralarm-Schalter am Anfang. In dem Fall muss auch die passende Klammer hinten entfernt werden.
Ich wünsche viel Spaß damit.
Vielen dank für die solide Anleitung 🙂
Super Anleitung, vielen Dank! Ob ich das allerdings umgesetzt bekomme, wird sich am Wochenende zeigen 😉
Tolle Anleitung, vorallem mit den Kommentaren.
So kann auch ich der die Programmiersprache noch nie verwendet hat verstehen was gemacht wird 🙂