Gruppe aus Strings
Verfasst: 29. Aug 2019 14:57
Hey liebe Leute,
seit ein paar Wochen setze ich jetzt openhab 2 auf einem Raspberry Pi 3 ein und bin von Tag zu Tag begeisterter. Nun bin ich auf ein Problem gestoßen, für das ich bislang noch keine einfache Lösung gefunden habe. Evtl. kann mir ja einer von euch dabei helfen:
Aufgabenstellung:
Ich habe an meinen Fenstern und Türen im Untergeschoss Kontaktschalter von Gigaset Elements installiert. Deren Öffnungszustand wird über ein einfaches Skript auf dem openhab-Server alle zehn Sekunden via mqtt ermittelt und in einen String (pro Fenster/Tür) geschrieben. Klappt auch super. Im String landet je nach Zustand der Wert "close" (Fenster/Tür zu), "open" (Fenster/Tür geöffnet) oder "tilt" (Fenster auf Kipp). So weit, so prima. Nun möchte ich gerne, wenn ich das Haus verlasse, eine Nachricht bekommen, falls noch Fenster geöffnet sind. Nun könnte ich natürlich eine Regel aufstellen, die so aussieht:
und dann nur noch abfragen, ob ein Fenster-Schalter gesetzt ist.
GSElements_TuF ist in diesem Fall eine Gruppe, die die Strings enthält.
Ich frage mich aber, ob das nicht auch eleganter geht. Für Switch oder Contact-Items geht das ja über ein Group-Item, dessen Zustand sich mit dem letzten Mitglied der Gruppe ändert. Geht das mit Strings auch irgendwie? Hat jemand eine Idee dazu?
Danke für eure Vorschläge!
Liebe Grüße,
Nikolaus
seit ein paar Wochen setze ich jetzt openhab 2 auf einem Raspberry Pi 3 ein und bin von Tag zu Tag begeisterter. Nun bin ich auf ein Problem gestoßen, für das ich bislang noch keine einfache Lösung gefunden habe. Evtl. kann mir ja einer von euch dabei helfen:
Aufgabenstellung:
Ich habe an meinen Fenstern und Türen im Untergeschoss Kontaktschalter von Gigaset Elements installiert. Deren Öffnungszustand wird über ein einfaches Skript auf dem openhab-Server alle zehn Sekunden via mqtt ermittelt und in einen String (pro Fenster/Tür) geschrieben. Klappt auch super. Im String landet je nach Zustand der Wert "close" (Fenster/Tür zu), "open" (Fenster/Tür geöffnet) oder "tilt" (Fenster auf Kipp). So weit, so prima. Nun möchte ich gerne, wenn ich das Haus verlasse, eine Nachricht bekommen, falls noch Fenster geöffnet sind. Nun könnte ich natürlich eine Regel aufstellen, die so aussieht:
Code: Alles auswählen
rule "Fenster/Tür geöffnet?"
when
Item Member of GSElements_TuF changed to "open" or
Member of GSElements_TuF changed to "tilt"
then
if ((fenster1.state == "open") || (fenster1.state == "tilt")) {
// Schalter setzen für Fenster 1 = ALARM
}
... und so weiter für alle Fenster und Türen...
end
GSElements_TuF ist in diesem Fall eine Gruppe, die die Strings enthält.
Ich frage mich aber, ob das nicht auch eleganter geht. Für Switch oder Contact-Items geht das ja über ein Group-Item, dessen Zustand sich mit dem letzten Mitglied der Gruppe ändert. Geht das mit Strings auch irgendwie? Hat jemand eine Idee dazu?
Danke für eure Vorschläge!
Liebe Grüße,
Nikolaus