Seite 1 von 1

Groups und SubGrous in rules

Verfasst: 9. Jul 2023 12:23
von TorstenE
Hallo Mitstreiter,

ich wurde gerne so etwas wie unten als Pseudo-Beispiel aufgeführt realisieren,
geht aber leider nicht.

Wie könnte so etwas umgesetzt werden ?

Ich möchte wenn möglich jetzt nicht in jedem "wasserhan_01" Item noch die Gruppe mit aufführen wie "wasserhahn_01_westen" etc.,
da ich die Items in unterschiedlichen Gruppen verwendet und nicht alles in den Namen packen möchte.

Danke

TorstenE

Code: Alles auswählen

Group haus ["Location"]

Group westen (haus) ["Location"]
Group sueden (haus) ["Location"]

Switch wasserhahn_01 (westen) ["Equipment"]
Switch wasserhahn_02 (sueden) ["Equipment"]

Code: Alles auswählen

...

haus.members.forEach[ Himmelsrichtung |
   Himmelsrichtung.members.forEach[ Wasserhahn |
       Wasserhahn.sendCommand(OFF)
   ]
]
...

Re: Groups und SubGrous in rules

Verfasst: 9. Jul 2023 14:36
von TorstenE
Hier die Lösung, ich habe diese in der Zwischenzeit gefunden. Diese lässt sich auch über mehrer Sub-Gruppen weiter nach unten fortführen.

Code: Alles auswählen

...
haus.members.forEach[ h |

	val Himmelsrichtung = haus.members.filter[ m1 | m1.name = h.name].head as GroupItem

   	Himmelsrichtung.members.forEach[ Wasserhahn |
       		Wasserhahn.sendCommand(OFF)
	]
]
...
[/cdode

Re: Groups und SubGrous in rules

Verfasst: 9. Jul 2023 21:22
von udo1toni
Solange es nur darum geht, alle Wasserhähne zu schließen, sollte es so reichen:

Code: Alles auswählen

haus.allMembers.forEach[ h |
    if(h.getType == SwitchItem)
        h.sendCommand(OFF)
]
Wobei ich mit dem getType jetzt auf die Schnelle nicht sicher bin. Im Zweifel müsste man loggen, was da tatsächlich zurück kommt (z.B. auch, ob es sich evtl. um einen einfachen String handlet...)
Natürlich kann man auch andere Einschränkungen treffen, z.B. nach dem Namen des Items.
.allMembers sind alle Items, die einem Group Item zugewiesen sind, ob nun direkt oder indirekt (auch die, die in der Unter-Unter-Unter-Gruppe drin sind).

Re: Groups und SubGrous in rules

Verfasst: 10. Jul 2023 16:20
von TorstenE
Danke für Deine Ergänzung Udo. Für eine andere Lösung auf jeden Fall sehr nützlich.