NEWS
Wärmepumpe WPCU.C mittels Modbus auslesen
-
@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.
-
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!
-
@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.
-
@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. -
@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 -
<?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>
-
@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 abgefragtSollte UINT16 trotzdem passen (Register 1 scheint UINT16 zu sein) dann ist es üblicherweise UINT16BE, du hast jedoch le ausgewählt.
-
@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? -
@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.
-
@homoran
Ja, da muss man halt wissen wie. Von Waterkotte gibt es dazu keinen Hinweis. -
@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 InformationenBitte 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 -
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!
-
@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 -
@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.
-
@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
-
@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 !
-
@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