Ankündigung

Einklappen
Keine Ankündigung bisher.

SETPOINT: aktuellen Wert lesen + neuen Wert schreiben ?

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

    SETPOINT: aktuellen Wert lesen + neuen Wert schreiben ?

    Hallo,

    ​ich versuche in OpenHAB einen SetPoint zu definieren, der mir den aktuellen SollWert des HA ausließt und bei bedarf den neune SollWert zurück an den HA schick​t.

    folgende Items habe ich angelegt:


    Code:
    [SIZE=12px]Number Temperatur_WZ_IST      "Ist-Temperatur WZ [%.1f °C]"     <WZ_IST>      (Temperaturen, WZ, WZ_TEMPS) { knx="2/1/40" }
    Number Temperatur_WZ_SOLL     "Soll-Temperatur WZ [%.1f °C]"    <WZ_SOLL>     (Temperaturen, WZ, WZ_TEMPS) { knx="<2/1/41" }
    Number Temperatur_WZ_SOLL_AKT "Soll-Temperatur_HA WZ [%.1f °C]" <WZ_SOLL_AKT> (Temperaturen, WZ, WZ_TEMPS) { knx="2/1/43" }
    Number Temperatur_WZ_STATUS   "Status Stellantrieb WZ [%.1f]%"  <WZ_STATUS>   (Temperaturen, WZ)           { knx="<5.001:2/1/42" }[/SIZE]
    in der Sitemap habe ich diesen Setpoint definiert:

    Code:
    [SIZE=12px][FONT=courier new]Setpoint item=Temperatur_WZ_SOLL Label="Temp WZ SOLL [%1.f °C]" step=0.5 minValue=5 maxValue=30[/FONT][/SIZE]
    was passieren soll - es aber nicht tut:
    - beim aufrufen der Sitemap soll der aktuell am HA-Aktor eingestellte Sollwert ausgelesen und angezeigt werden [Temperatur_WZ_SOLL_AKT]
    - beim Klicken von "-" oder "+" soll der jeweils eingestellte neue Sollwert an den Aktor geschickt werden [Temperatur_WZ_SOLL]

    was funktioniert:
    - aktuelle Raumtemperatur wird sowohl in einem Text-Item als auch in einem Chart-Item angezeigt [Temperatur_WZ_IST]
    - aktueller Status des Reglers dito [Temperatur_WZ_STATUS]

    ich habe mich schon durch diverse Foren gesucht - ohne konkreten Erfolg.
    bei Änderungen im SetPoint sehe ich auch, dass OpenHab den neuen Wert setzten zu wollen (Eintrag im Log) aber beim Aktor kommt das nicht an (zumindest bleibt der Wert unverändert)

    Leider kann ich derzeit nicht gleichzeitig mit OpenHab und einem Busmonitor zugreifen (das ist aber ein anderes Thema .....) um das zu monitoren :-(

    Irgendwo habe ich gelesen, dass es auch eine Möglichkeit geben soll, zwei KNX-Adressen in einem ITEM zu konfigurieren { knx="1/1/1+1/1/2" } - habe dazu aber keine Doku gefunden - und es auch durch ausprobieren nicht hinbekommen.

    Würde mich freuen, wenn jemand einen Lösungsvorschlag für mich hat ...

    Andreas




    #2
    Du benötigst ein Item weniger
    Code:
    [SIZE=12px]Number Temperatur_WZ_SOLL "Soll-Temperatur WZ [%.1f °C]" <WZ_SOLL> (Temperaturen, WZ, WZ_TEMPS) { knx="2/1/41+<2/1/43 " }[/SIZE]
    Diese Definition bedeutet, dass openHAB beim Starten auf dem knx-Bus nachfragt, welchen Wert die GA 2/1/43 hat (wird durch das < vor der GA erreicht)
    Weiterhin wird openHAB auf jedes empfangene Telegramm auf der GA 2/1/41 oder GA 2/1/43 reagieren und den entsprechenden Wert im Item Temperatur_WZ_SOLL bereitstellen.
    Wenn Du über die UI nun das Setpoint Item änderst, wird openHAB ausschließlich auf der GA 2/1/41 den geänderten Wert auf den knx-Bus senden.

    In der Sitemap wiederum benötigst Du gar keine Label-Definition, das hast Du ja schon in der .items-Datei erledigt. Die Labeldefinition in der Sitemap braucht man eigentlich nur, wenn man auf verschiedenen Sitemaps oder an unterschiedlichen Stellen derselben Sitemap unterschiedliche Label desselben Items haben möchte. Allerdings wird vermutlich ohnehin die Label-Definition aus der Sitemap ignoriert werden, weil openHAB sehr pingelig ist, was gRoß/kLEIn-Schreibung betrifft in der Sitemap müsstest Du mit label=... arbeiten.

    Es gibt noch eine Falle, in die ich damals(tm) rein lief und zwar, ob der Aktor überhaupt eine Änderung des Sollwertes über den Bus zulässt, das musste ich erst über die ETS freigeben.

    Kommentar


      #3
      Danke für die schnelle Antwort!
      heute morgen direkt mal für einen Raum eingebaut - und sieht so aus als würde es funktionieren

      Kommentar


        #4
        Das freut mich

        Kommentar


          #5
          Kommando zurück - funktioniert doch nicht

          OH schreibt den SetPoint-Wert immer auf die GA 2/1/43 (aktuellen Sollwert auslesen) statt 2/1/41 (Sollwert schreiben)

          Item:
          Number Temperatur_WZ_SOLL "Soll-Temperatur WZ [%.1f °C]" <WZ_SOLL> (Temperaturen, WZ, WZ_TEMPS) { knx="2/1/41+<2/1/43" }

          Log:
          16:11:48.855 [DEBUG] [.p.rrd4j.internal.RRD4jService:130 ] - Stored 'Temperatur_WZ_SOLL' with state '22.0' in rrd4j database
          16:11:48.855 [INFO ] [tuwien.auto.calimero :51 ] - [qtp14008106-99] link 192.168.4.200:3671: send message to 2/1/43, wait for confirmation
          16:11:48.886 [INFO ] [tuwien.auto.calimero :51 ] - [KNXnet/IP receiver] link 192.168.4.200:3671: confirmation of 2/1/43
          16:11:48.886 [DEBUG] [.b.knx.internal.bus.KNXBinding:138 ] - Wrote value '22.0' to datapoint 'command DP 2/1/43 Temperatur_WZ_SOLL, DPT main 0 id 9.001, low priority'

          Item:
          Number Temperatur_WZ_SOLL "Soll-Temperatur WZ [%.1f °C]" <WZ_SOLL> (Temperaturen, WZ, WZ_TEMPS) { knx="<2/1/43+2/1/41" }

          Log:
          16:22:28.773 [DEBUG] [.p.rrd4j.internal.RRD4jService:130 ] - Stored 'Temperatur_WZ_SOLL' with state '22.0' in rrd4j database
          16:22:28.789 [INFO ] [tuwien.auto.calimero :51 ] - [qtp27378716-92] link 192.168.4.200:3671: send message to 2/1/43, wait for confirmation
          16:22:28.804 [INFO ] [tuwien.auto.calimero :51 ] - [KNXnet/IP receiver] link 192.168.4.200:3671: confirmation of 2/1/43
          16:22:28.804 [DEBUG] [.b.knx.internal.bus.KNXBinding:138 ] - Wrote value '22.0' to datapoint 'command DP 2/1/43 Temperatur_WZ_SOLL, DPT main 0 id 9.001, low priority'
          noch eine Idee ?

          Kommentar


            #6
            Und Du bist sicher, dass Du die 2/1/41 als erstes in der Binding-Definition drin stehen hast?

            Kommentar


              #7
              ja, habe es gerade nochmal gechecked

              Item:
              Number Temperatur_WZ_SOLL "Soll-Temperatur WZ [%.1f °C]" <WZ_SOLL> (Temperaturen, WZ, WZ_TEMPS) { knx="2/1/41+<2/1/43" }
              Setpoint
              Setpoint item=Temperatur_WZ_SOLL step=0.5 minValue=5 maxValue=30
              nach einem Neustart von OH wird die richte GA zum auslesen des Istzustandes verwendet:
              13:46:33.731 [DEBUG] [.KNXBindingDatapointReaderTask:58 ] - Autorefresh: Waiting for new item in reader queue
              13:46:33.731 [DEBUG] [.KNXBindingDatapointReaderTask:60 ] - Autorefresh: got new item Temperatur_WZ_SOLL in reader queue
              13:46:33.731 [DEBUG] [.KNXBindingDatapointReaderTask:64 ] - Autorefresh: Trying to read form KNX bus: command DP 2/1/43 Temperatur_WZ_SOLL, DPT main 0 id 9.001, low priority
              13:46:33.731 [DEBUG] [.KNXBindingDatapointReaderTask:92 ] - Autorefresh: Sending read request to KNX for item 'Temperatur_WZ_SOLL' DPT '9.001'
              13:46:33.731 [INFO ] [tuwien.auto.calimero :51 ] - [KNXBinding/DatapointReaderTask] link 192.168.4.200:3671: send message to 2/1/43, wait for confirmation
              13:46:33.747 [INFO ] [tuwien.auto.calimero :51 ] - [KNXnet/IP receiver] link 192.168.4.200:3671: confirmation of 2/1/43
              13:46:33.793 [DEBUG] [.b.knx.internal.bus.KNXBinding:169 ] - Received groupWrite Event.
              13:46:33.793 [DEBUG] [.KNXBindingDatapointReaderTask:70 ] - Autorefresh: DatapointReaderTask Waiting 50 msecs to prevent KNX bus overload
              13:46:33.793 [INFO ] [tuwien.auto.calimero :51 ] - [KNXnet/IP receiver] link 192.168.4.200:3671: indication from 1.1.70
              13:46:33.809 [DEBUG] [.p.rrd4j.internal.RRD4jService:130 ] - Stored 'Temperatur_WZ_SOLL' with state '21.5' in rrd4j database
              ändere ich dann in OH den Sollwert von 21,5 auf 22 sehe ich im Log wieder folgendes (falsche GA)
              13:52:55.314 [DEBUG] [.p.rrd4j.internal.RRD4jService:130 ] - Stored 'Temperatur_WZ_SOLL' with state '22.0' in rrd4j database
              13:52:55.314 [INFO ] [tuwien.auto.calimero :51 ] - [qtp7790902-103] link 192.168.4.200:3671: send message to 2/1/43, wait for confirmation
              13:52:55.345 [INFO ] [tuwien.auto.calimero :51 ] - [KNXnet/IP receiver] link 192.168.4.200:3671: confirmation of 2/1/43
              13:52:55.345 [DEBUG] [.b.knx.internal.bus.KNXBinding:138 ] - Wrote value '22.0' to datapoint 'command DP 2/1/43 Temperatur_WZ_SOLL, DPT main 0 id 9.001, low priority'
              1
              nach einem wiederholten Neustart liest OH über die richtige GA den alten Wert 21,5 ...
              13:57:50.266 [DEBUG] [.KNXBindingDatapointReaderTask:60 ] - Autorefresh: got new item Temperatur_WZ_SOLL in reader queue
              13:57:50.266 [DEBUG] [.KNXBindingDatapointReaderTask:64 ] - Autorefresh: Trying to read form KNX bus: command DP 2/1/43 Temperatur_WZ_SOLL, DPT main 0 id 9.001, low priority
              13:57:50.266 [DEBUG] [.KNXBindingDatapointReaderTask:92 ] - Autorefresh: Sending read request to KNX for item 'Temperatur_WZ_SOLL' DPT '9.001'
              13:57:50.266 [INFO ] [tuwien.auto.calimero :51 ] - [KNXBinding/DatapointReaderTask] link 192.168.4.200:3671: send message to 2/1/43, wait for confirmation
              13:57:50.297 [INFO ] [tuwien.auto.calimero :51 ] - [KNXnet/IP receiver] link 192.168.4.200:3671: confirmation of 2/1/43
              13:57:50.328 [DEBUG] [.b.knx.internal.bus.KNXBinding:169 ] - Received groupWrite Event.
              13:57:50.328 [INFO ] [tuwien.auto.calimero :51 ] - [KNXnet/IP receiver] link 192.168.4.200:3671: indication from 1.1.70
              13:57:50.328 [DEBUG] [.KNXBindingDatapointReaderTask:70 ] - Autorefresh: DatapointReaderTask Waiting 50 msecs to prevent KNX bus overload
              13:57:50.344 [DEBUG] [.p.rrd4j.internal.RRD4jService:130 ] - Stored 'Temperatur_WZ_SOLL' with state '21.5' in rrd4j database

              Kommentar


                #8
                Schreib vielleicht mal den DPT mit dazu: 9.001:2/1/41+<2/1/43 nur so als Versuch.

                Kommentar


                  #9
                  leider auch nicht - gleiches verhalten ... :-(

                  Kommentar


                    #10
                    Ich hab's gestern Abend noch mal mit der 1.7.1 getestet - ebenfalls identisch
                    habe auch gesehen, dass die 1.8.1 raus ist - probiere ich auch nochmal - habe aber wenig Hoffnung

                    irgendwo muss doch da noch etwas sein. Kann aber doch nicht daran liegen, dass ich die Werte auch per rrd wegschreibe, oder?
                    es wird ja der aktuelle Wert korrekt vom Bus gelesen - nur die falsche GA zum schreiben verwendet ...

                    falls noch jemand Ideen hat - immer her damit :-)

                    Kommentar


                      #11
                      Also, irgendwie kann das eigentlich nicht sein. Was passiert denn, wenn Du die zweite GA komplett weg lässt, also nur die 2/1/41 im Binding angibst?

                      Kommentar


                        #12
                        ok, jetzt wird's peinlich ...

                        wo ist das Problem zu finden? vor dem Bildschirm! :-(
                        schön immer in der Ordnerstruktur der 1.7.1 editiert ... und in der 1.8.0 getestet .... *imbodenversink'*
                        gut dass die 1.8.1 rausgekommen ist ;-)

                        Notiz an mich: die alte Version immer schööön weit wegkopieren !!

                        udo1toni Danke dass du dir die Zeit genommen hast mir zu helfen !!! Sorry :-(

                        Kommentar


                          #13
                          Immer gerne :-)

                          Tipp am Rande: Ich archiviere die configurations regelmäßig auf ein Backupsystem, deshalb habe ich auf dem Rechner, auf dem openHAB läuft, nur ein configurations-Verzeichnis, welches ich mit einem Softlink an passender Stelle einbinde. Damit muss ich im Designer nie den Pfad anpassen.

                          Wenn ich eine alte Version von openHAB archiviere, sichere ich die configurations zusammen mit allen anderen Bestandteilen als tar.gz.

                          Kommentar

                          Lädt...
                          X