Fensterkontakt Status
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fensterkontakt Status
Dann hast Du aber für jeden Raum eine weitere Gruppe, oder? Die Rule kann man so gestalten, dass sie sich um all diese Gruppen kümmert. eventuell (müsste man halt ausprobieren) kann man auch das Group Item zum Speichern des Status verwenden, allerdings muss auf jeden Fall die Aggregation aus dem Group Item entfernt werden.
Du kannst auch versuchen, das Mapping an anderer Stelle einzusetzen. Ich gehe davon aus, dass Du das Mapping im Thing oder im Profile vornimmst.
Es gehört aber in die Metadaten (dort State Description -> Pattern). Auf diese Weise wird der "echte" Status nicht verändert und steht auch für das Group Item weiterhin zur Aggregation zur Verfügung.
Du kannst auch versuchen, das Mapping an anderer Stelle einzusetzen. Ich gehe davon aus, dass Du das Mapping im Thing oder im Profile vornimmst.
Es gehört aber in die Metadaten (dort State Description -> Pattern). Auf diese Weise wird der "echte" Status nicht verändert und steht auch für das Group Item weiterhin zur Aggregation zur Verfügung.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 70
- Registriert: 15. Nov 2021 10:02
Re: Fensterkontakt Status
Ich verzweifele gerade daran, die Rule für alle Gruppen (Räume) anzupassen. Ich nehme an, dann müssen auch die Gruppen und Items eine bestimmte Namenssyntax haben. Ist es denn grundsätzlich geschickter den Gruppen- bzw Raumstatus im Gruppen Item zu speichern oder für jeden Raum ein eigenes Item zu erstellen und den Zustand darin zu speichern. Danke schon mal für die Hilfe.
Openhabian 4.0.4
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fensterkontakt Status
Wenn es möglich ist, das Group Item selbst als Speicher herzunehmen, sparst Du Dir halt ein weiteres Item.
Was die Gestaltung der Itemnamen betrifft, das ist nicht unbedingt nötig, vor allem, wenn das Group Item selbst den Wert halten kann. Das müsste man halt ausprobieren.
Organisation der Items: In der Hauptgruppe sind ausschließlich Untergruppen, keine einzelnen Fenster.
Die Rule ist nur unwesentlich länger. Falls der Trigger der Rule nicht anspricht (da bin ich nicht sicher), müsste man allenfalls alle Gruppen einzeln mit Member of ... changed als Trigger auflisten. Der Eingfachheit halber berechent die Rule einfach bei jeder Änderung alle Zustände aller Fenster. Das dürfte bis zu einem großen Zweifamilienhaus (~30 Fenster) schneller gehen, als erst rauszusuchen, in welcher Gruppe es Änderungen gab und nur dort zu rechnen.
Was die Gestaltung der Itemnamen betrifft, das ist nicht unbedingt nötig, vor allem, wenn das Group Item selbst den Wert halten kann. Das müsste man halt ausprobieren.
Organisation der Items: In der Hauptgruppe sind ausschließlich Untergruppen, keine einzelnen Fenster.
Code: Alles auswählen
Group gWindow
Group gWindow_01 "Fenster Gruppe 01 [%s]" (gWindow)
Group gWindow_Schlafzimmer "Fenster Schlafzimmer [%s]" (gWindow)
Contact Fenster01 "Schlafzimmer 01" (gWindow_Schlafzimmer)
Contact Fenster02 "Schlafzimmer 02" (gWindow_Schlafzimmer)
Contact Fenster03 "Schlafzimmer 03" (gWindow_Schlafzimmer)
Contact Fenster04 "Schlafzimmer 01" (gWindow_01)
Contact Fenster05 "Schlafzimmer 01" (gWindow_01)
Code: Alles auswählen
rule "update group status"
when
Member of gWindow changed
then
gWindow.members.forEach[g|
if(g.members.filter[i|i.state != "CLOSED"].size > 0)
g.postUpdate(OPEN)
else
g.postUpdate(CLOSED)
]
end
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 70
- Registriert: 15. Nov 2021 10:02
Re: Fensterkontakt Status
Ich habe noch 2 Verständisfragen:
- Was bewirkt das [%s] ?
- Wofür wird die Gruppe gWindow_01 benötigt?
Ich mache mal ein Beispiel:
- Was bewirkt das [%s] ?
- Wofür wird die Gruppe gWindow_01 benötigt?
Ich mache mal ein Beispiel:
Code: Alles auswählen
Group gFenster_alle
// ??? Group gWindow_01 "Fenster Gruppe 01 [%s]" (gFenster_alle)
Group gFenster_Schlafzimmer "Fenster Schlafzimmer [%s]" (gFenster_alle)
Contact Fenster01_Schlafzimmer_Seite "Schlafzimmer Seite" (gWindow_Schlafzimmer)
Contact Fenster02_Schlafzimmer_Dach "Schlafzimmer Dach" (gWindow_Schlafzimmer)
Contact Fenster03_Kinderzimmer_Seite "Kinderzimmer Seite" (gWindow_Kinderzimmer)
// ??? Contact Fenster04 "Schlafzimmer 01" (gWindow_01)
// ??? Contact Fenster05 "Schlafzimmer 01" (gWindow_01)
Openhabian 4.0.4
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fensterkontakt Status
Na, das sind einfach Gruppen, in denen Fenster sind. Mein Punkt war hier, dass der Name der Gruppe, Label usw. keine Rolle spielt.
[%s] ist im Label der Platzhalter für den aktuellen Status als String (deswegen das s). Bezogen auf die textliche Definition von Items, aus alter Gewohnheit...
[%s] ist im Label der Platzhalter für den aktuellen Status als String (deswegen das s). Bezogen auf die textliche Definition von Items, aus alter Gewohnheit...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 123
- Registriert: 5. Jan 2020 14:26
Re: Fensterkontakt Status
Welches wäre das richtige Item, anstelle von Contact? Irgendwie bekomme ich es bei mir nicht hin, dass das Icon bei mir auf der Sitemap gekippt anzeigt.
Was ich sende, kann ich beim Sender einstellen. Ich könnte Strings senden ala "Closed" "Open" "Tilted". Auch andere wären möglich.
Auch könnte ich einfach Zahlen senden. z.B. 0 für geschlossen, 1 für geöffnet, 2 für gekippt.
Nur welchen Typ muss das Item haben. Und wie kann ich das Window-Item entsprechend anzeigen lassen? Probiere schon eine weile, und bekomm es einfach nicht hin

Beispiel Item:
Code: Alles auswählen
Contact DoorSens_50_Sens "Fensterkontakt" (CONTACT) {channel="mqtt:topic:doorsens50:Sens"}
Code: Alles auswählen
Default item=DoorSens_50_Sens label="Fenster [%s]" icon="window"
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fensterkontakt Status
Gekippt wäre "AJAR" als Status, wenn Du das sehen möchtest, musst Du ein String Item verwenden, denn AJAR gibt es leider nicht als expliziten Status in einem anderen Itemtypen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 123
- Registriert: 5. Jan 2020 14:26
Re: Fensterkontakt Status
Ja. Danke. Das TILTED hatte mich irritiert. Habe es dann mit String und AJAR hinbekommen
-
- Beiträge: 70
- Registriert: 15. Nov 2021 10:02
Re: Fensterkontakt Status
Das funktioniert nicht. Ich habe mein Modell soweit angepasst, dass es eine Gruppe gFenster_alle gibt, worin die Gruppen der Fenster (Räume) enthalten sind, darin sind dann letztendlich die jeweiligen Fenster.Code: Alles auswählen
rule "update group status" when Member of gFenster_alle changed then gFenster_alle.members.forEach[g| if(g.members.filter[i|i.state != "CLOSED"].size > 0) g.postUpdate(OPEN) else g.postUpdate(CLOSED) ] end
Der geworfene Fehler lautet:
Code: Alles auswählen
[ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'updatewindowgroupstatus-1' failed: 'members' is not a member of 'org.openhab.core.items.Item'; line 6, column 12, length 9 in updatewindowgroupstatus
Openhabian 4.0.4
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fensterkontakt Status
Der Fehler besagt, dass es sich bei g oder gFenster_alle nicht um ein Group Item handelt. Das sind die beiden einzigen Items, bei denen .members involviert ist. Hast Du eventuell irgendwelche Rollläden direkt unterhalb gFenster_alle einsortiert?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet