Groups und SubGrous in rules

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
TorstenE
Beiträge: 246
Registriert: 12. Jan 2022 18:29
Answers: 4
Wohnort: Niederstaufen

Groups und SubGrous in rules

Beitrag 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)
   ]
]
...
von TorstenE » 9. Jul 2023 14:36
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
Gehe zur vollständigen Antwort
openHAB 5.0.0 (#4495) auf einem Pi 4 mit openHABian

Benutzeravatar
TorstenE
Beiträge: 246
Registriert: 12. Jan 2022 18:29
Answers: 4
Wohnort: Niederstaufen

Re: Groups und SubGrous in rules

Beitrag 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
openHAB 5.0.0 (#4495) auf einem Pi 4 mit openHABian

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Groups und SubGrous in rules

Beitrag 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).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
TorstenE
Beiträge: 246
Registriert: 12. Jan 2022 18:29
Answers: 4
Wohnort: Niederstaufen

Re: Groups und SubGrous in rules

Beitrag von TorstenE »

Danke für Deine Ergänzung Udo. Für eine andere Lösung auf jeden Fall sehr nützlich.
openHAB 5.0.0 (#4495) auf einem Pi 4 mit openHABian

Antworten