Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Wärmepumpe WPCU.C mittels Modbus auslesen

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Wärmepumpe WPCU.C mittels Modbus auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      worxweis last edited by Homoran

      Hallo Leute!

      Ich besitze eine Waterkotte Wärmepumpe welche ich gerne über Modbus auslesen möchte. Die Steuerung WPCU.C besitzt eine RS232 Schnittstelle für Modbus.
      Ich habe dazu einen Raspi 4 neu aufgesetzt und IOBROKER installiert. Der IOBROKER ist komplett neu aufgesetzt. Und nur der Adapter Modbus installiert.
      js-controller: 6.0.11
      Node.js: v20.18.0
      NPM: 10.8.2

      Verbunden ist das ganze mittels USB-Serial Adapter. (https://www.amazon.de/dp/B07VCG1GZJ?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1)
      Direkt am Raspi habe ich das Tool ModbusMechanic installiert. Mit dem RegisterScanner von diesem Tool bekomme ich eine Verbindung zur Heizung und kann die Register via Modbus Problemlos auslesen.
      Modbus 1.jpg

      Wenn ich die in IOBROKER Modbusadapter die selben Verbindungseinstellungen und Testweise nur ein Register auslesen möchte, bekomme ich keine Werte.
      Modbus 2.jpg

      Die Instanz wird grün, keine Fehlermeldungen, nur die Objekte bleiben leer.
      Modbus 3.jpg

      Hat irgendjemand soviel Erfahrung mit Modbus, um mir zu sagen was ich noch versuchen kann?
      Die Checkboxen "Die Adressen nicht auf 16 Bits ausrichten, "Mehrere Register schreiben" nicht verwenden und Nur "Write multiple registers" verwenden" habe ich schon in den verschiedensten Kombinationen durchprobiert!

      Homoran marcus irsigler 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @worxweis last edited by

        @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

        Mit dem RegisterScanner von diesem Tool bekomme ich eine Verbindung zur Heizung und kann die Register via Modbus Problemlos auslesen.

        Hast du danach die USB Schnittstelle wieder für den Adapter freigegeben?

        @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

        Testweise nur ein Register auslesen möchte,

        wie sind die Einstellungen für das Register und wie sollen sie laut Anleitung sein?

        @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

        was ich noch versuchen kann?

        das debug log zeigen.

        W 1 Reply Last reply Reply Quote 0
        • W
          worxweis @Homoran last edited by

          @homoran

          Hallo Homoran!

          Wie gebe ich denn die USB Schnittstelle wieder frei?

          Reicht das wenn den ModbusMechanic schließe, oder kann ich irgendwo abfragen, ob die Schnittstelle frei oder belegt ist?
          Aufgrund des ModbusMechanic sollten alle unsigned 16 sein. Habe aber auch schon verschiedene andere Einstellungen versucht.

          wenn ich den Modbusadapter starte, sieht das log folgendermassen aus:

          
          modbus.0
          2024-11-01 14:34:19.557	debug	[DevID_1] Poll start ---------------------
          
          modbus.0
          2024-11-01 14:34:19.406	debug	[DevID_1] Poll start ---------------------
          
          modbus.0
          2024-11-01 14:34:19.254	debug	[DevID_1] Poll start ---------------------
          
          modbus.0
          2024-11-01 14:34:19.102	debug	[DevID_1] Poll start ---------------------
          
          modbus.0
          2024-11-01 14:34:18.952	debug	[DevID_1] Poll start ---------------------
          
          modbus.0
          2024-11-01 14:34:18.800	debug	[DevID_1] Poll start ---------------------
          
          modbus.0
          2024-11-01 14:34:18.745	silly	States user redis pmessage modbus.0.*/modbus.0.info.pollTime:{"val":2,"ack":true,"ts":1730468058743,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1730468058743}
          
          modbus.0
          2024-11-01 14:34:18.666	silly	States user redis pmessage modbus.0.*/modbus.0.info.connection:{"val":true,"ack":true,"ts":1730468058660,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1730468058660}
          
          modbus.0
          2024-11-01 14:34:18.662	silly	States user redis pmessage modbus.0.*/modbus.0.info.connection:{"val":false,"ack":true,"ts":1730468058659,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1730468052144}
          
          modbus.0
          2024-11-01 14:34:18.651	silly	Keepalive is disabled!
          
          modbus.0
          2024-11-01 14:34:18.646	debug	[DevID_1] Poll start ---------------------
          
          modbus.0
          2024-11-01 14:34:18.645	info	Connected to slave
          
          modbus.0
          2024-11-01 14:34:18.635	debug	connect to serial /dev/ttyUSB0 with 9600
          
          modbus.0
          2024-11-01 14:34:18.418	debug	Add holdingRegisters.209_Versuch: {"_id":"holdingRegisters.209_Versuch","type":"state","common":{"name":"","role":"level","type":"number","read":false,"write":true,"def":0,"unit":""},"native":{"regType":"holdingRegs","address":209,"deviceId":1,"type":"uint16le","len":1,"offset":0,"factor":1,"poll":""}}
          
          modbus.0
          2024-11-01 14:34:18.417	debug	Initialize Objects for holdingRegs: [{"_address":209,"name":"Versuch","description":"","unit":"","type":"uint16le","len":1,"factor":1,"offset":0,"formula":"","role":"level","room":"","poll":"","wp":"","cw":"","isScale":"","address":209,"deviceId":1,"id":"holdingRegisters.209_Versuch"}]
          
          modbus.0
          2024-11-01 14:34:18.416	debug	Initialize Objects for inputRegs: []
          
          modbus.0
          2024-11-01 14:34:18.416	debug	Initialize Objects for coils: []
          
          modbus.0
          2024-11-01 14:34:18.415	debug	Initialize Objects for disInputs: []
          
          modbus.0
          2024-11-01 14:34:18.397	silly	States system redis pmessage system.adapter.modbus.0.logLevel/system.adapter.modbus.0.logLevel:{"val":"silly","ack":true,"ts":1730468058376,"q":0,"from":"system.adapter.modbus.0","lc":1730468058376}
          
          modbus.0
          2024-11-01 14:34:18.264	info	starting. Version 6.3.2 in /opt/iobroker/node_modules/iobroker.modbus, node: v20.18.0, js-controller: 6.0.11
          
          modbus.0
          2024-11-01 14:34:17.810	debug	Plugin sentry Initialize Plugin (enabled=true)
          
          modbus.0
          2024-11-01 14:34:12.548	info	terminating
          
          modbus.0
          2024-11-01 14:34:12.062	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
          
          modbus.0
          2024-11-01 14:34:12.058	info	terminating
          
          modbus.0
          2024-11-01 14:34:12.040	info	Got terminate signal TERMINATE_YOURSELF
          
          modbus.0
          2024-11-01 14:34:06.359	info	Connected to slave
          
          modbus.0
          2024-11-01 14:34:05.981	info	starting. Version 6.3.2 in /opt/iobroker/node_modules/iobroker.modbus, node: v20.18.0, js-controller: 6.0.11
          

          Das mit dem Poll Start geht dann laufend so weiter bis ich ihn wieder beende!

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @worxweis last edited by

            @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

            Wie gebe ich denn die USB Schnittstelle wieder frei?

            keine Ahnung.
            Notfalls durch reboot.
            aber

            @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

                                    2024-11-01 14:34:18.635	debug	connect to serial /dev/ttyUSB0 with 9600
            

            scheint zugänglich zu sein.

            @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

            Aufgrund des ModbusMechanic sollten alle unsigned 16 sein

            das ist aber eine sonderbare Registeradresse 😉
            bitte Definitonen aus dem Manual zeigen!

            Das

            @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

            "regType":"holdingRegs","address":209,"deviceId":1,"type":"uint16le","len":1,"offset":0,"factor":1,"poll":""}}

            wirft einige Fragen auf.

            W 1 Reply Last reply Reply Quote 0
            • W
              worxweis @Homoran last edited by

              @homoran
              Reboot habe ich schon gemacht. Keine Änderung!

              Es gibt eben kein Manual dazu.
              Aber mit dem modbusMechanic werden sämtliche Adressen durchprobiert.
              Auf einem Laptop habe ich ein Waterkotte Serviceprogramm unter Windows installiert. in diesem gibt eine XML.Datei unter dem Modbus Ordner. In dieser Datei sind sämtliche Adressen aufgelistet und diese decken sich mit denen, die modbusMechanic gefunden hat. Daher gehe ich davon aus, dass diese stimmen. z. Bsp. die Adresse 209. _10011.xml
              Ansonsten findet man nicht sehr viel dazu.

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @worxweis last edited by Homoran

                @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

                Daher gehe ich davon aus, dass diese stimmen.

                ich nicht!

                @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

                . z. Bsp. die Adresse 209

                bitte die relevanten Abschnitte hier in code-tags posten
                Die Konfiguration der Register in der Modbus-Instanz fehlt auch noch

                W 1 Reply Last reply Reply Quote 0
                • W
                  worxweis @Homoran last edited by

                  @homoran

                  <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
                  <folder>
                       <item>
                            <itemname>Settings</itemname>
                            <caption_EN>Settings</caption_EN>
                            <caption_DE>Einstellungen</caption_DE>
                            <caption_FR>Program.-données</caption_FR>
                            <caption_IT>dati progrmma</caption_IT>
                            <caption_ES>Programova data</caption_ES>
                            <caption_NL></caption_NL>
                            <caption_SV></caption_SV>
                            <caption_NO></caption_NO>
                            <caption_CS></caption_CS>
                            <tag>
                                 <name>RTCTime</name>
                                 <slaveaddr>1</slaveaddr>
                                 <regplc>4</regplc>
                                 <regaddr>1</regaddr>
                                 <regcnt>13</regcnt>
                                 <datatype>VT_DATE</datatype>
                                 <dataformat>%H:%M:%S</dataformat>
                                 <min></min>
                                 <max></max>
                                 <accesslev>3</accesslev>
                                 <unit></unit>
                                 <caption_EN>time</caption_EN>
                                 <caption_DE>Uhrzeit</caption_DE>
                                 <caption_FR>Heure</caption_FR>
                                 <caption_IT>ora</caption_IT>
                                 <caption_ES>Cas</caption_ES>
                                 <caption_NL></caption_NL>
                                 <caption_SV></caption_SV>
                                 <caption_NO></caption_NO>
                                 <caption_CS></caption_CS>
                            </tag>
                            <tag>
                                 <name>RTCDate</name>
                                 <slaveaddr>1</slaveaddr>
                                 <regplc>4</regplc>
                                 <regaddr>209</regaddr>
                                 <regcnt>13</regcnt>
                                 <datatype>VT_DATE</datatype>
                                 <dataformat>%d.%m.%Y</dataformat>
                                 <min></min>
                                 <max></max>
                                 <accesslev>3</accesslev>
                                 <unit></unit>
                                 <caption_EN>date</caption_EN>
                                 <caption_DE>Datum</caption_DE>
                                 <caption_FR>Date</caption_FR>
                                 <caption_IT>data</caption_IT>
                                 <caption_ES>datum</caption_ES>
                                 <caption_NL></caption_NL>
                                 <caption_SV></caption_SV>
                                 <caption_NO></caption_NO>
                                 <caption_CS></caption_CS>
                            </tag>
                            <tag>
                                 <name>LngSelect</name>
                                 <slaveaddr>1</slaveaddr>
                                 <regplc>4</regplc>
                                 <regaddr>417</regaddr>
                                 <regcnt>1</regcnt>
                                 <datatype>VT_UI1</datatype>
                                 <dataformat>English:Deutsch:Français:Italiano:Español:Nederlands:Português:Svenska:Norsk:Cestina</dataformat>
                                 <min>0</min>
                                 <max>9</max>
                                 <accesslev>3</accesslev>
                                 <unit></unit>
                                 <caption_EN>language</caption_EN>
                                 <caption_DE>Sprache</caption_DE>
                                 <caption_FR>Langue</caption_FR>
                                 <caption_IT>lingua</caption_IT>
                                 <caption_ES></caption_ES>
                                 <caption_NL></caption_NL>
                                 <caption_SV></caption_SV>
                                 <caption_NO></caption_NO>
                                 <caption_CS></caption_CS>
                            </tag>
                       </item>
                       <item>
                            <itemname>MeasuredValue</itemname>
                            <caption_EN>Measured Values</caption_EN>
                            <caption_DE>Messwerte</caption_DE>
                            <caption_FR>Valeurs mesurées</caption_FR>
                            <caption_IT>valori misurati</caption_IT>
                            <caption_ES>Merene hodnoty</caption_ES>
                            <caption_NL></caption_NL>
                            <caption_SV></caption_SV>
                            <caption_NO></caption_NO>
                            <caption_CS></caption_CS>
                            <tag>
                                 <name>OutdoorTemp</name>
                                 <slaveaddr>1</slaveaddr>
                                 <regplc>3</regplc>
                                 <regaddr>433</regaddr>
                                 <regcnt>2</regcnt>
                                 <datatype>VT_R4</datatype>
                                 <dataformat>1</dataformat>
                                 <min>-3.40282E+38</min>
                                 <max>3.40282E+38</max>
                                 <accesslev>3</accesslev>
                                 <unit>°C</unit>
                                 <caption_EN>T outdoor</caption_EN>
                                 <caption_DE>Aussentemperatur</caption_DE>
                                 <caption_FR>T extérieure</caption_FR>
                                 <caption_IT>T esterna</caption_IT>
                                 <caption_ES>T venk okamzita</caption_ES>
                                 <caption_NL></caption_NL>
                                 <caption_SV></caption_SV>
                                 <caption_NO></caption_NO>
                                 <caption_CS></caption_CS>
                            </tag>
                  

                  Modbus 4.jpg

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @worxweis last edited by

                    @worxweis Schade!
                    Mit dem xml komme ich nicht klar.

                    Wenn ich das richtig lese ist 209 vom Typ Date.

                    Allgemein:
                    Holdingregister sind üblicherweise Schreibregister.
                    Solltest du sie trotzdem zum lesen nehmen musst du auch "Abfrage" snhaken, sonst wird bichts abgefragt

                    Sollte UINT16 trotzdem passen (Register 1 scheint UINT16 zu sein) dann ist es üblicherweise UINT16BE, du hast jedoch le ausgewählt.

                    W 1 Reply Last reply Reply Quote 0
                    • W
                      worxweis @Homoran last edited by

                      @homoran
                      So, mit dem anhaken von Abfrage bekomme ich jetzt Werte!

                      Vielen Dank für diesen Tipp!

                      Ich frage mit einem anderen Rechner meine PV-Anlage mittels Modbusadapter ab, da benötige ich diesen Haken nicht, darum bin ich gar nicht auf die Idee gekommen, das ich den benötige!

                      Jetzt muss ich nur mehr die Werte richtig interpretieren!
                      Warmwassertemperatur z. B. 17733?

                      Homoran 1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @worxweis last edited by

                        @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

                        Jetzt muss ich nur mehr die Werte richtig interpretieren!

                        oder richtig konfigurieren!

                        @homoran sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

                        Sollte UINT16 trotzdem passen (Register 1 scheint UINT16 zu sein) dann ist es üblicherweise UINT16BE, du hast jedoch le ausgewählt.

                        W 1 Reply Last reply Reply Quote 0
                        • W
                          worxweis @Homoran last edited by

                          @homoran
                          Ja, da muss man halt wissen wie. Von Waterkotte gibt es dazu keinen Hinweis.

                          Homoran 1 Reply Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators @worxweis last edited by Homoran

                            @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

                            Von Waterkotte gibt es dazu keinen Hinweis.

                            und von dir kein Update zu den aktuellen Einstellungen.

                            und bitte keinen zweiten Thread ausgraben.
                            Auch dort kamen keine weiteren Informationen

                            Bitte hier das dort gesagte umsetzen
                            @homoran sagte in Modbus adapter:

                            @socke85 sagte in Modbus adapter:

                            @socke85 Push 👥 👍

                            und wo pushst du die Konfigurationen?
                            https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1

                            1 Reply Last reply Reply Quote 0
                            • W
                              worxweis last edited by

                              @homoran

                              So, hab's jetzt geschafft! Die Register waren die meisten vom Typ "Float Big Endian Word Swap"!
                              Damit werden jetzt vernünftige Werte angezeigt.

                              Und wenn ein anderer ein ähnliches Problem hatte und das vielleicht bereits gelöst hat, warum soll man den dann nicht auch um Hilfe bitten? Er hat ja dann direkt damit Erfahrung! Also ich hätte kein Problem damit, wenn mich in einem Jahr jemand anschreibt und mich fragt, wie ich das damals gelöst habe.

                              Ich bedanke mich jedenfalls für die Hilfe!

                              Homoran 1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @worxweis last edited by

                                @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

                                Die Register waren die meisten vom Typ "Float Big Endian Word Swap"!

                                sicher?
                                du schreibst doch

                                @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

                                sollten alle unsigned 16 sein

                                nur eben nicht Little Endian sondern Big Endian, wie bereits mehrfach geschrieben.

                                hattest du das mal umgesetzt?
                                Da kam leider nie Feedback

                                W 1 Reply Last reply Reply Quote 0
                                • W
                                  worxweis @Homoran last edited by

                                  @homoran Mit Unsigned 16 kamen Werte die überhaupt nicht passten. Auch nicht mit Big Endian. nur mit Float Big Endian kommen Werte, die mit der Steuerung der Wärmepumpe ident sind.

                                  Homoran 1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators @worxweis last edited by

                                    @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

                                    Auch nicht mit Big Endian.

                                    ok!

                                    @worxweis sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

                                    nur mit Float Big Endian kommen Werte, die mit der Steuerung der Wärmepumpe ident sind.

                                    passt auch besser, da Temperaturwerte üblicherweise vorzeichenbehaftet sind.

                                    Passte halt nicht zu deiner früheren Aussage

                                    1 Reply Last reply Reply Quote 0
                                    • marcus irsigler
                                      marcus irsigler @worxweis last edited by

                                      @worxweis Hi, ich hab das ganze im Home Assistant und mit Node Red gemacht. Bzw. auch über Python. Ich hab mir einen günstigen RS232 to TCP Adapter gekauft und kommuniziere über Modbus TCP, vielleicht wäre das eine Erleichterung.

                                      Beschrieben hab ich das hier:
                                      https://www.losmuchachos.at/home_assistant/waterkotte-mit-wpcu-c-regler-auf-home-assistant-steuern/

                                      Auch die Anbindung mit dem Adapter ist relativ genau beschrieben. Viel Erfolg !

                                      Homoran 1 Reply Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @marcus irsigler last edited by

                                        @marcus-irsigler sagte in Wärmepumpe WPCU.C mittels Modbus auslesen:

                                        Ich hab mir einen günstigen RS232 to TCP Adapter gekauft und kommuniziere über Modbus TCP

                                        Dann wohl eher ein RS485toTCP 😉

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate
                                        FAQ Cloud / IOT
                                        HowTo: Node.js-Update
                                        HowTo: Backup/Restore
                                        Downloads
                                        BLOG

                                        993
                                        Online

                                        31.6k
                                        Users

                                        79.4k
                                        Topics

                                        1.3m
                                        Posts

                                        3
                                        18
                                        493
                                        Loading More Posts
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                        The ioBroker Community 2014-2023
                                        logo