In meinem Haus gibt es mehrer Beleuchtungsgruppen (grpLichtWohnzimmer, grpLichtEsszimmer, ...) je nach Item mit HUE oder einfach nur Tasmota geschaltet.
Zusätzlich habe ich eine Gruppe für Fernsehbeleuchtung (grpLichtTV) erstellt und diese bei den Items eingetragen.
Mit dem Switch "TV-Beleuchtung" werden alle Licht-Raumgruppen aus- und die Gruppe "grpLichtTV" eingeschaltet.
Code: Alles auswählen
rule "TV Beleuchtung"
when
Item TV_Beleuchtung changed
then
if (previousState == OFF)
{
// Licht-Raumgruppen ausschalten
grpLichtWohnzimmer?.allMembers.filter(x | x.state != OFF).forEach[ item |
item.sendCommand(OFF)
]
grpLichtEsszimmer?.allMembers.filter(x | x.state != OFF).forEach[ item |
item.sendCommand(OFF)
]
grpLichtGalerie?.allMembers.filter(x | x.state != OFF).forEach[ item |
item.sendCommand(OFF)
]
grpLichtWintergarten?.allMembers.filter(x | x.state != OFF).forEach[ item |
item.sendCommand(OFF)
]
// TV Licht einschalten
grpLichtTV?.allMembers.filter(x | x.state != ON).forEach[ item |
item.sendCommand(ON)
Thread::sleep(250)
]
}
end
Eigentlich hätte ich gerne das zuerst die Gruppe "grpLichtTV" ein und danach alle anderen ausgeschaltet werden!
Code: Alles auswählen
rule "TV Beleuchtung"
when
Item TV_Beleuchtung changed
then
if (previousState == OFF)
{
// TV Licht einschalten
grpLichTVt?.allMembers.filter(x | x.state != ON).forEach[ item |
item.sendCommand(ON)
Thread::sleep(250)
]
}
else if (previousState == ON)
{
// Licht-Raumgruppen ausschalten
grpLichtWohnzimmer?.allMembers.filter(x | x.state != OFF).forEach[ item |
item.sendCommand(OFF)
]
grpLichtEsszimmer?.allMembers.filter(x | x.state != OFF).forEach[ item |
item.sendCommand(OFF)
]
grpLichtGalerie?.allMembers.filter(x | x.state != OFF).forEach[ item |
item.sendCommand(OFF)
]
grpLichtWintergarten?.allMembers.filter(x | x.state != OFF).forEach[ item |
item.sendCommand(OFF)
]
}
end
Ist das über die Befehlszeilen:
"grpLichtWohnzimmer?.allMembers(ohne grpLichtTV).filter(x | x.state != OFF).forEach[ item | item.sendCommand(OFF) ]"
oder
"grpLichtWohnzimmer?.allMembers.filter(x | x.state != OFF).forEach[ item (!=grpLichtTV) | item.sendCommand(OFF) ]"
möglich bzw. wie zu realisieren?
Würde mich über ein paar Anregungen freuen
