Fensterkontakt Status

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
tommesd
Beiträge: 70
Registriert: 15. Nov 2021 10:02
Answers: 0

Re: Fensterkontakt Status

Beitrag von tommesd »

Hallo zusammen,
ich hänge mich mal hier ran, da ich ein ähnliches Problem habe und nicht weiter komme.
Ich nutze die Fenstergriffsensoren von Homematic und habe jetzt auch die Übersetzung mittels der map Datei der Stati ins deutsche hinbekommen. Auch mit den drei verschiedenen Icons funktioniert. Nun zu meinem Problem.
Ich habe die Fenster pro Raum in einer Window Gruppe zusammengefasst, als Base Type der Gruppe habe ich Contact gewählt, als Aggregate Function ALL CLOSED the CLOSED else OPEN eingestellt. Nun sind die Räume (Gruppen) bei denen die MAP Transformation eingestellt ist immer OPEN buw steht da offen. Kann mann bzw wo kann man die MAP Transformation für die Gruppen einstellen, damit dort auch die richtigen Zustände ablesbar sind?
Danke und Gruß
Thomas
Openhabian 4.0.4

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

Re: Fensterkontakt Status

Beitrag von udo1toni »

Wie meinst Du das? Welchen Itemtyp hast Du denn in der Gruppe zusammengefasst? Contact kann es ja nicht sein, denn Contact hat nur zwei gültige Status, nämlich OPEN und CLOSED. Deine Fenstergriffsensoren liefern aber die Status 0, 1, 2 oder evtl. auch die Strings OPEN, CLOSED und TILTED (ich habe kein Homematic). Du kannst den Groupitem Typ nicht einfach frei wählen. Stattdessen musst Du den Status der Gruppe in diesem Fall selbst bestimmen und am besten auch nicht das Group Item selbst für den Status verwenden. So:

Code: Alles auswählen

rule "update group status" 
when
    Member of gWindow changed
then
    if(gWindow.members.filter[i|i.state != "CLOSED"].size > 0)
        myWindowSum.postUpdate(OPEN)
    else
        myWindowSum.postUpdate(CLOSED)
end
Wenn einer der Member der Gruppe gWindow seinen Status ändert, triggert die Rule.
Die Liste der Groupmember wird auf diejenigen gefiltert, welche nicht den Status CLOSED haben (dort muss natürlich der zum Itemtyp passende Status eingetragen werden). Enthält die entstehende Liste Einträge, so wird der Status von myWindowSum auf OPEN gesetzt, ansonsten auf CLOSED.

Und ja, die Mehrzahl von Status heißt Status, nicht Stati (sorry, alter Lateiner...).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2573
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Fensterkontakt Status

Beitrag von peter-pan »

Ich nehme an, dass sind die HmIP_SRH Sensoren. Das dazugehörige Status Item ist vom Typ"String". Es werden die Zustände "OPEN, CLOSED und TILTED" gemeldet. Dein Gruppen-Item kennt aber nur die Zustände "OPEN und CLOSED" und ist vom Typ "Contact". Ich habe das Problem mit einem Dummy-Item und einer Regel gelöst.

Die Items:

Code: Alles auswählen

Group:Contact:OR(OPEN,CLOSED)      gHaustur                           "Haustür [MAP(de.map):%s]"                                 <frontdoor>         (gInnen)                              ["Door","OpenState"]

String                 HmIP_SRH_0515_1STATE                           "Terrassentuer Status[MAP(de.map):%s]"                     <door>              (gSen_0515)                           ["Point"]                    {channel="homematic:HmIP-SRH:3014F711A0001F98A9AABCAF:0007D7099D0515:1#STATE"}
Contact                HmIP_SRH_0515_1STATECONTACT                    "Terrassentür Essen Status Kontakt[MAP(de.map):%s]"        <door>              (gSen_0515,gHaustur)                  ["OpenState"]              // Dummy-Contact Item 

Die Regel:

Code: Alles auswählen

rule "HM Status Terrassentuer Esszimmer Umwandlung"
    when
//      Item Dummy4 changed to ON or
      Item HmIP_SRH_0515_1STATE changed 
    then
      if ( HmIP_SRH_0515_1STATE.state == "OPEN" ) {
          HmIP_SRH_0515_1STATECONTACT.postUpdate(OPEN)
          logInfo("homematic","Terrassentür offen {} ", HmIP_SRH_0515_1STATECONTACT.state )
          return ;
      }
      else if (HmIP_SRH_0515_1STATE.state == "CLOSED") {
          HmIP_SRH_0515_1STATECONTACT.postUpdate(CLOSED)
          logInfo("homematic","Terrassentür geschlossen {} ", HmIP_SRH_0515_1STATECONTACT.state)
      }
      else if (HmIP_SRH_0515_1STATE.state == "TILTED") {
          HmIP_SRH_0515_1STATECONTACT.postUpdate(OPEN)
          logInfo("homematic","Terrassentür gekippt {} ", HmIP_SRH_0515_1STATECONTACT.state )
      }
      else {
          logInfo("homematic","Terrassentür nix passiert {} ", HmIP_SRH_0515_1STATE )
      }
end
Ich bin mir sicher, dass sich die Regel noch optimieren lässt, vor allem in Bezug auf die "Allgemeingültigkeit" für alle Fenster-Sensoren. Da ich das aber bisher nicht gebraucht habe (ich habe fast nur SWDO), hab ich mir das halt einfach gemacht. Aber vielleicht schaffst du's ja selber oder es findet sich ein "Mitstreiter" ;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Benutzeravatar
peter-pan
Beiträge: 2573
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Fensterkontakt Status

Beitrag von peter-pan »

...na siehst du, während ich noch am "formulieren" war hat sich Udo der Sache schon angenommen. Vielleicht kann er ja mit meinen Informationen zu den Sensoren schon etwas anfangen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

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

Re: Fensterkontakt Status

Beitrag von udo1toni »

Ja, genau, dann muss nur der Status entsprechend angepasst werden (habe ich oben gemacht)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

tommesd
Beiträge: 70
Registriert: 15. Nov 2021 10:02
Answers: 0

Re: Fensterkontakt Status

Beitrag von tommesd »

Hallo zusammen, erst einmal Danke für eure Hilfe. Ich habe eure Ansätze noch nicht ausprobiert, da ich noch ein Verständnisproblem habe. Wenn ich keine MAP Transformation einstelle funktioniert es auch mit den String Items der HmIP Sensoren, sprich wenn ich ein Fenster einer Gruppe öffne oder kippe zeigt die Gruppe OPEN an, wenn alle Fenster geschlossen sind CLOSED. Das Gruppenitem ist ein CONTACT und das AGGREGATE ALL CLOSED THEN CLOSED...
Mit Map Transformation werden die Fensterzustände wie in der MAP Datei übersetzt, jedoch steht das Gruppenitem dann auf offen, auch wenn alle Fenster geschlossen sind.
Openhabian 4.0.4

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

Re: Fensterkontakt Status

Beitrag von udo1toni »

Dann machst Du das Mapping an der falschen Stelle. Dennoch ist der Ansatz mit String Items in einer Contact Group eher fragwürdig.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

tommesd
Beiträge: 70
Registriert: 15. Nov 2021 10:02
Answers: 0

Re: Fensterkontakt Status

Beitrag von tommesd »

Danke für Deine Rückmeldung. Sehe ich das richtig, dass bei Deiner Lösung myWindowSum das Dummy-Item für jeden Raum ist und ich die Rule dann auch entsprechend für jeden Raum / Gruppe erstellen muss?
Openhabian 4.0.4

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

Re: Fensterkontakt Status

Beitrag von udo1toni »

Nein? myWindowSum ist ein Contact Item, welches den Zustand OPEN annimmt, wenn eines der Items in der Gruppe gWindow nicht den Zustand "CLOSED" hat. Ansonsten (alle Items haben den Zustand "CLOSED") hat das Item myWindowSum den Zustand CLOSED.

Der Code der Rule ist nun nicht wirklich so umfangreich, und ich habe die Funktion auch im Text erläutert. ;)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

tommesd
Beiträge: 70
Registriert: 15. Nov 2021 10:02
Answers: 0

Re: Fensterkontakt Status

Beitrag von tommesd »

Sorry wenn ich nochmal fragen muss. Vielleicht etwas mehr Hintergrund wieso ich frage. Ich habe eine Übersichtsseite aus einer Vorlage umgebaut, wo ich für jeden Raum ein Widget angelegt habe. In jedem Widget ist eine Gruppe für alle Lichter in dem Raum eingetragen und wenn eine Lampe im Raum leuchtet wird das im Widget visualisiert. Genauso wird auch die Fenstergruppe eingebunden, wenn ein Fenster im Raum offen ist, sieht man das an einem offenen Fenster Icon im Widget. Das funktioniert auch mit meinem CONTACT / String Mischmasch, so lange ich kein Mapping verwende.
Ich nehme an ich müsste dann das myWindowSum Item als Fenstergruppen Item eintragen.
Openhabian 4.0.4

Antworten