Hallo udo1toni,
die Schreibweise beim Item ist mir am Ende dann auch aufgefallen, und ich konnte die Regel fertig stellen. War einfach zu spät an dem Tag
.
Eine Abfrage auf den Gruppenstatus ist dann doch möglich, auch wenn nur eines der Geräte den geänderten Zustand hat.
Aber vielleicht kannst Du mir bei einem weiteren Problem in der Richtung helfen, oder mich auf einen passenden Link leiten. Ich habe nichts gefunden.
In Erweiterung der ersten Regel, habe ich mit dem Gruppenstatus folgende Regel erstellt:
Code: Alles auswählen
rule "Fenster_noch_offen"
when
Item abwesend received update OFF
then
if (gWindow.state == OPEN)
{
sendTelegram("XXX", "Ein Fenster ist noch offen!!!")
sendCommand(abwesend,ON)
}
end
Die Definition von abwesend ist:
Mein Ziel ist es, wenn der Schalter "abwesend" auf "OFF" gesetzt wird, zu prüfen, ob ein Fenster geöffnet ist. Ist dies der Fall, dann soll eine Meldung erfolgen und der Schalter zurück auf "ON" gesetzt werden.
Das funktioniert mit der Regel und der Abfrage auf den Gruppenstatus sehr gut.
Nun wollte ich das ganze erweitern, indem ich erfahre, welches Fenster in der Gruppe den offenen Zustand ausweist, so dass ich nicht erst im ganzen Haus suchen muss.
Leider habe ich hier noch keinen Weg gefunden dies sauber zu realisieren. Im Moment frage ich hier jedes Fenster einzeln ab, lasse eine Nachricht senden und den Status auf "ON" zurücksetzen.
Hier die Regel:
Code: Alles auswählen
rule "Fenster_noch_offen"
when
Item abwesend received update OFF
then
if (GF_Dining_Window.state == OPEN)
{
sendTelegram("XXX", "Fenster Esszimmer noch offen!!!")
sendCommand(abwesend,ON)
}
if (GF_Kitchen_Window.state == OPEN)
{
sendTelegram("XXX", "Fenster Küche noch offen!!!")
sendCommand(abwesend,ON)
}
if (GF_Toilet_Window.state == OPEN)
{
sendTelegram("XXX", "Fenster Gäste-WC noch offen!!!")
sendCommand(abwesend,ON)
}
if (FF_Bathroom_Window.state == OPEN)
{
sendTelegram("XXX", "Fenster Badezimmer noch offen!!!")
sendCommand(abwesend,ON)
}
if (FF_KidsRoom_WindowL.state == OPEN)
{
sendTelegram("XXX", "Fenster noch offen!!!")
sendCommand(abwesend,ON)
}
if (FF_KidsRoom_WindowR.state == OPEN)
{
sendTelegram("XXX", "Fenster noch offen!!!")
sendCommand(abwesend,ON)
}
end
Auch das funktioniert. Sind mehrere Fenster offen, bekomme ich auch für jedes offene Fenster eine Meldung. Allerdings setze ich den Befehl "ON" dann auch mehrfach ab. Da bin ich mir nicht sicher, ob das dem System gut tut.
Außerdem muss sowas doch einfacher gehen.
Für einen kleinen Stups in die richtige Richtung wäre ich dankbar.
HomematicIP über raspberrymatic (RaspPi 3b+).
OpenHAB2 auf RaspPi 3b+
Philips Hue-Bridge
Conbee II auf eigenem RaspPi 3b+
- HMIP: verschiedene Lichtaktoren, Thermostat und Fensterkontakte
- Hue: verschiedene Lightstrips
- Xiaomi: Multisensoren und Bewegungsmelder