Ja, bei Beleuchtung bin ich schon eher bei Dir, gerade bei Lampen mit Farbtemperatur oder gar RGB geht es ja um mehr als einen Status.
Also grundsätzlich brauchst Du pro zu steuerndem Item ein weiteres Item vom Typ Switch. Über den Switch wird das Item in der Gruppe aktiv/inaktiv geschaltet.
Damit es eine eindeutige Zuordnung der Items zueinander gibt, sollte ein Teil des Itemnamens identisch sein, z.B.
Code: Alles auswählen
Group gLichter
Group gGroupLicht
Color Lichter
Switch GroupLicht_01 "Group Licht 1" (gGroupLicht)
Color Licht_01 "Licht 1" (gLichter)
Switch GroupLicht_02 "Group Licht 2" (gGroupLicht)
ColorLicht_02 "Licht 2" (gLichter)
Nun packst Du die Switche, die Einzelleuchten und das Steueritem in eine Sitemap.
Code: Alles auswählen
Color item=Lichter
Switch item=GroupLicht_01
Switch item=GroupLicht_02
Color item=Licht_01
Color item=Licht_02
Nun noch eine Rule, die die Verbindung zwischen dem ungebundenen Item Lichter und den Items, die in der Gruppe sind, aber unter Berücksichtigung der Schalterstellungen:
Code: Alles auswählen
rule "dynamische Gruppe"
when
Item Lichter received command
then
gGroupLicht.members.filter[i|i.state == ON].forEach[j|
val myLight = gLichter.members.filter[k|k.name.split("_").get(1)==j.name.split("_").get(1)].head
if(myLight.state != receivedCommand)
myLight.sendCommand(receivedCommand)
]
end
Du kannst die Lichter einzeln steuern (ganz normal über die Items) und über die Schalter die Items in der Gruppe aktivieren oder deaktivieren.
Die aktivierten Lichter lassen sich über die Gruppe steuern. Dabei wird zunächst die Gruppe der Schalter nach den Elementen gefiltert, bei denen der Status ON ist. Anschließend wird für jedes der Items das passende Item herausgesucht (identischer Namensteil) und geprüft, ob sich der Status vom empfangenen Befehl unterscheidet. Ist das der Fall, wird der Befehl an das Item geschickt.
Es können beliebig viele Lichter so zusammengefasst und dynamisch der Gruppe zugeordnet werden. Die identischen Namensteile müssen eindeutig sein, sind aber nicht auf Zahlen beschränkt, man könnte also auch ein MyLicht_blabliblub und ein Schalter_blabliblub Item anlegen und den beiden Gruppen zuordnen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet