Ankündigung

Einklappen
Keine Ankündigung bisher.

Zwangsstellung Heizungsaktor über OpenHAB

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Zwangsstellung Heizungsaktor über OpenHAB

    Hallo zusammen,

    ich habe scheinbar eine völlig verrückte Idee. Ich möchte meinen Handtuchheizkörper im Bad über einen Taster an bzw. ausschalten können.
    Ich möchte hierbei die Zwangsstellung nutzen.

    Zum Einsatz kommen ein MDT Glastaster 2 und ein MDT Heizungsaktor ( AKH-088.02)
    Die Steuerung ist einfach. Ich binde eine Gruppenandresse an eine Taste des Tasters.

    Einzel-Tastenfunktion: Schalten
    Unterfunktion: Umschalten
    Gruppenadresse: HZ_OG_EB_2HK_ZWANGSSTELLUNG (1/1/111)

    Die Anzeige des aktuellen Status ist nicht einfach. Dieser lässt sich meines Wissens nur über Umwege ermitteln. Falls der Diagnosetext „Zwangssteuerung“ enthält, dann ist diese aktiv, ansonsten nicht.

    Gruppenadresse für Status (wird an den Taster gebunden): HZ_OG_EB_2HK_ZWANGSSTELLUNG_STATUS (1/1/211)
    Für die „Übersetzung“ von Diagnosetext in Schaltzustand nutze ich OPENHAB, die aktuellste Version via Docker-Image (3.1.x) . Ich habe hier zwei funktionierende Konfigurationen gefunden.

    Kennt ihr eine einfachere Lösung?


    Option A
    =======

    Ich nutze einen Switch-Control im OpenHAB

    Code:
    Type switch-control : HZ_OG_EB_2HK_ZWANGSSTELLUNG "Handtuchheizkörper Elternbad" [ ga="1/1/211+1/1/111" ]
    und folgende Regel:

    Code:
    rule "Handtuchheizkörper Status für Zwangsstellung ermitteln"
    when
      System started or
      Item HZ_OG_EB_2HK_DIAGNOSETEXT received update
    then
      var diagnosetext = "" + HZ_OG_EB_2HK_DIAGNOSETEXT.state
      if(diagnosetext.contains("Zwangsbetrieb")) {
        HZ_OG_EB_2HK_ZWANGSSTELLUNG.postUpdate(ON)
      } else {
        HZ_OG_EB_2HK_ZWANGSSTELLUNG.postUpdate(OFF)
      }
    end
    Anmerkung: Natürlich lässt sich die Regel noch kompakter beschrieben. Ich hatte aber Log-Statements drin und daher so „ausführlich“

    Das Funktioniert zwischen KNX Taster und KNX Aktor (über die OPENHAB Regel).
    Leider lässt sich aber die Zwangsstellung nicht über OPENHAB aktivieren.

    Ich habe folgenden Test gemacht:

    Code:
    curl -X POST --header "Content-Type: text/plain" --header "Accept: application/json" -d "ON" "http://<ip>:8080/rest/items/HZ_OG_EB_2HK_ZWANGSSTELLUNG
    Keine Antwort. Kein Event in events.log. Nichts.

    Warum ist das so?


    Was funktioniert: Zusätzlich einen TRIGGER einrichten:
    Code:
    Type switch : HZ_OG_EB_2HK_ZWANGSSTELLUNG_TRIGGER "Handtuchheizkörper Elternbad" [ ga="1/1/111" ]
    Dieser lässt sich dann über meine UI nutzen und triggert das Event. Unschön


    Option B
    =======

    Ich nutze zwei Switches im OpenHAB

    Code:
    Type switch : HZ_OG_EB_2HK_ZWANGSSTELLUNG "Zwangsstellung" [ ga="1.003:1/1/111" ]
    Type switch : HZ_OG_EB_2HK_ZWANGSSTELLUNG_STATUS "Zwangsstellung Kinderbad Status" [ ga="1.003:1/1/211" ]
    und folgende Regel

    Code:
    rule "Handtuchheizkörper Kinderbad Status für Zwangsstellung ermitteln"
    when
      System started or
      Item HZ_OG_EB_2HK_DIAGNOSETEXT received update or
      Item HZ_OG_EB_2HK_ZWANGSSTELLUNG_STATUS changed to NULL
    then
    var diagnosetext = "" + HZ_OG_EB_2HK_DIAGNOSETEXT.state
    if(diagnosetext.contains("Zwangsbetrieb")) {
      HZ_OG_EB_2HK_ZWANGSSTELLUNG_STATUS.sendCommand(ON)
      HZ_OG_EB_2HK_ZWANGSSTELLUNG_STATUS.postUpdate(ON)
    } else {
      HZ_OG_EB_2HK_ZWANGSSTELLUNG_STATUS.sendCommand(OFF)
      HZ_OG_EB_2HK_ZWANGSSTELLUNG_STATUS.postUpdate(OFF)
    }
    end
    Ich brauche hier tatsächlich beides. Der sendCommand sorgt dafür das die Statusänderung am KNX Bus ankommt und der postUpdate sorgt dafür das der Zustand in der UI richtig dargestellt wird.


    Ich freue mich auf euer Feedback!
    Zuletzt geändert von mbengl; 21.12.2021, 08:52.

    #2
    Gewöhnlich ist Zwangsstellung mit zwei Bit realisiert. Bist Du sicher, was den DPT betrifft?

    Kommentar


      #3
      Hi Udo! Ich habe soeben nochmal in der ETS direkt beim Aktor nachgeschaut. Dort ist bei Zwangstellung als Länge 1 bit angegeben. Als Datentyp ist 1.003 Freigeben ausgewählt.

      Kommentar


        #4
        Beim Versuch den switch-control via REST-API zu triggern erhalte ich ja keine Antwort. Kein Event in events.log. Nichts

        Warum ist das so?
        Ein Antwortversuch:


        Ich denke dafür ist der switch-control einfach nicht ausgelegt. Den Status kann ich wunderbar mittels PUT auf
        rest/items/HZ_OG_EB_2HK_ZWANGSSTELLUNG/state umstellen. Bringt mir aber nichts da ich ja die Zwangsstellung im KNX-Heizungsaktor triggern möchte.

        Wie Udo in einem anderen sehr hilfreichen Beiträge geschrieben hat...

        Bei switch-control tritt openHAB als virtueller Aktor auf, das heißt, es reagiert auf Befehle und sendet entsprechend einen Status (die sendende GA muss als erstes im Channel angegeben werden!)
        Bei switch sendet openHAB Befehle und empfängt den Status.
        ist in diesem Fall der -control wohl einfach die falsche Wahl.

        Daher nutze ich jetzt (weiterhin) Option b)

        Kommentar

        Lädt...
        X