NEWS
Modbus Adapter - keine Verbindung
-
Hallo zusammen,
ich habe zwei Modbus TCP Geräte, die ich gerne in iobroker integrieren würde.
Es handelt sich um eine Waterkotte Wärmepumpe Ai1 mit WWPR Steuerung und einen Solar-Log 1200.Beide Geräte habe ich bereits erfolgreich in FHEM eingebunden, aber ich würde nun gerne komplett von FHEM auf iobroker umsteigen.
In FHEM habe ich den entsprechenden Modbus Master aus der fhem.cfg auskommentiert, und FHEM neugestartet. Habe keine Option gefunden, das Gerät zu deaktivieren.
Folgende Einstellungen habe ich im iobroker gemacht:
Das sagt das Log auf debug level:
modbus.0 2022-11-21 10:18:58.239 debug Closing client on purpose. modbus.0 2022-11-21 10:18:57.238 debug Cleaning up request fifo. modbus.0 2022-11-21 10:18:57.236 debug Socket closed with error modbus.0 2022-11-21 10:18:57.228 info Disconnected from slave 192.168.178.10 modbus.0 2022-11-21 10:18:57.227 debug Closing client on purpose. modbus.0 2022-11-21 10:18:57.225 info Connected to slave 192.168.178.10 modbus.0 2022-11-21 10:17:58.230 debug Closing client on purpose. modbus.0 2022-11-21 10:17:57.229 debug Cleaning up request fifo. modbus.0 2022-11-21 10:17:57.228 debug Socket closed with error modbus.0 2022-11-21 10:17:57.222 info Disconnected from slave 192.168.178.10 modbus.0 2022-11-21 10:17:57.221 debug Closing client on purpose. modbus.0 2022-11-21 10:17:57.220 info Connected to slave 192.168.178.10 modbus.0 2022-11-21 10:16:58.230 debug Closing client on purpose. modbus.0 2022-11-21 10:16:57.225 debug Cleaning up request fifo. modbus.0 2022-11-21 10:16:57.224 debug Socket closed with error modbus.0 2022-11-21 10:16:57.217 info Disconnected from slave 192.168.178.10 modbus.0 2022-11-21 10:16:57.216 debug Closing client on purpose. modbus.0 2022-11-21 10:16:57.214 info Connected to slave 192.168.178.10 modbus.0 2022-11-21 10:15:58.220 debug Closing client on purpose. modbus.0 2022-11-21 10:15:57.219 debug Cleaning up request fifo. modbus.0 2022-11-21 10:15:57.218 debug Socket closed with error modbus.0 2022-11-21 10:15:57.210 info Disconnected from slave 192.168.178.10 modbus.0 2022-11-21 10:15:57.205 debug Closing client on purpose. modbus.0 2022-11-21 10:15:57.200 info Connected to slave 192.168.178.10 modbus.0 2022-11-21 10:15:56.822 info starting. Version 5.0.8 in /opt/iobroker/node_modules/iobroker.modbus, node: v16.18.0, js-controller: 4.0.23 modbus.0 2022-11-21 10:15:56.476 debug Plugin sentry Initialize Plugin (enabled=true) modbus.0 2022-11-21 10:15:56.283 debug States connected to redis: 127.0.0.1:9000 modbus.0 2022-11-21 10:15:56.180 debug States create User PubSub Client modbus.0 2022-11-21 10:15:56.178 debug States create System PubSub Client modbus.0 2022-11-21 10:15:56.095 debug Redis States: Use Redis connection: 127.0.0.1:9000 modbus.0 2022-11-21 10:15:56.051 debug Objects connected to redis: 127.0.0.1:9001 modbus.0 2022-11-21 10:15:56.039 debug Objects client initialize lua scripts modbus.0 2022-11-21 10:15:55.946 debug Objects create User PubSub Client modbus.0 2022-11-21 10:15:55.945 debug Objects create System PubSub Client modbus.0 2022-11-21 10:15:55.942 debug Objects client ready ... initialize now modbus.0 2022-11-21 10:15:55.863 debug Redis Objects: Use Redis connection: 127.0.0.1:9001 modbus.0 2022-11-21 10:15:51.462 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason modbus.0 2022-11-21 10:15:51.460 info terminating
Kann es sein, dass hier FHEM die Verbindung noch irgendwie blockiert?
Oder habe ich etwas falsch konfiguriert im Adapter?IP und Port habe ich so jedenfalls auch in FHEM verwendet. ID sollte auch 1 sein.
Viele Grüße
Peter
-
@pepito82 Hast Du die Eingangs- und Holding-Register definiert?
-
@ahnungsbefreit Das Adapter geht nicht auf grün, daher habe ich hier noch keine Einstellungen vorgenommen.
-
@pepito82 Die Einstellungen sehen für mich soweit richtig aus, allerdings nutze ich ModBus für einen anderen Zweck (Wallbox).
-
@pepito82 sagte in Modbus Adapter - keine Verbindung:
@ahnungsbefreit Das Adapter geht nicht auf grün, daher habe ich hier noch keine Einstellungen vorgenommen.
Wie schon @Ahnungsbefreit schreibt :
@pepito82 Hast Du die Eingangs- und Holding-Register definiert?
es sollte zumindest 1 Register zum Test abgefragt werden !!
-
@pepito82 sagte in Modbus Adapter - keine Verbindung:
ich habe zwei Modbus TCP Geräte, die ich gerne in iobroker integrieren würde.
Es handelt sich um eine Waterkotte Wärmepumpe Ai1 mit WWPR Steuerung und einen Solar-Log 1200.Ich würde erstmal mit einem Modbusteilnehmer anfangen , wenn du erst mit dem Modbus Adapter anfängst und noch keine entgültigen Register abfragst !
Also hier den Haken raus und die Geräte ID anpassen .
-
@glasfaser Dankeschön. Mit einem Register abzufragen, wird das Adapter nun wirklich grün.
Ich hätte noch eine Frage, wie ich für die analogen Eingänge (hier Außentemperatur) den Wert richtig als 4,3 ausgegeben bekomme:
Laut Anleitung gilt:
Ein Analog-Wert mit einer festen Nachkommastelle wird mit 10 multipli-
ziert und in einem 16 bit Register übertragen.Beispiel: Der Wert 10.0 wird als 0x0064h übertragen
In Fhem habe ich hier je Register eine Konvertierung angegeben.
-
Input nutze ich nicht ... gerade keine Idee dazu ,
aber bei Holding kann man den Faktor dazu einstellen -
-
@glasfaser @PEPITO82 Ja genau, dann erscheinen die Felder
-
@ahnungsbefreit @Glasfaser Vielen Dank Euch beiden für die Starthilfe. Es hat geklappt die Temperatur mittels Formel zu berechnen.
Muss mich jetzt wohl mehr mit Javascript beschäftigen.
-
Eine weitere Frage noch. Ich hab jetzt die ganzen Modbus Register meiner Waterkotte Wärmepumpe hinzugefügt.
Kann ich über die Funktion mehrere Geräte IDs in derselben Instanz auch den Solar-Log abfragen?
Oder brauche ich dafür eine weitere Instanz, in der ich die IP Adresse vom Solar-Log angebe?
-
@pepito82 sagte in Modbus Adapter - keine Verbindung:
Oder brauche ich dafür eine weitere Instanz, in der ich die IP Adresse vom Solar-Log angebe?
Genau so
-
@glasfaser Danke, verstanden.
Ich habe alle meine Register als Eingangsregister angelegt.
Werte habe ich auch für alle Register, es fehlt nur noch, dass ich die ein paar der Register auch schreiben kann (5000 und 6000 er Register):0 bedeutet, Warmwasser / Heizung ist aus, 1 bedeutet an.
Ich habe versucht, das Register auf schreibbar zu ändern, das hat leider aber nicht funktioniert:
{ "_id": "modbus.0.inputRegisters.5032_WW_Handabschaltung", "type": "state", "common": { "name": "Schalter Warmwasser", "role": "switch", "type": "number", "read": true, "write": false, "def": 0, "unit": "" }, "native": { "regType": "inputRegs", "address": 5032, "deviceId": 1, "type": "uint16be", "len": 1, "offset": 0, "factor": 1 }, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.modbus.0", "user": "system.user.admin", "ts": 1669096887889 }
In FHEM sieht das Register so aus:
Was muss ich hier in iobroker einstellen, dass es funktioniert?
-
@pepito82 Wie in der Doku beschrieben (hast Du die mal gelesen?), sind Eingangsregister "read only", Holding-Register "read write".
-
@ahnungsbefreit Ich hatte die Beschreibung auf github überflogen. Hab nochmal geschaut und die Info dort nicht gefunden?
Habe 5032 nun als Holding-Register hinzugefügt, aber das funktioniert leider nicht.
Ich bekomme keinen Wert bzw. kann auch nicht an- bzw. ausschalten.Die 1 hatte ich manuell gesetzt, hat den Wert aber nicht geschrieben und den aktuellen Wert 0 holt es sich auch nicht.
-
@pepito82 Du hast ja nirgends den Typ definiert, das musst Du aus der Doku des Geräts übernehmen, sonst nimmt der Adapter immer (was auch immer) als Default. Beispiel meiner "Input-Register":
-
Leider bekomme ich das nicht übersetzt in die Einstellungen der Modbus Instanz bzw. der Register.
Für die "analogen" Register, scheint der Standard unsigned 16 bit (big endian) zu passen.
Für die Register, welche ich schreiben möchte, habe ich signed 16 bit ausprobiert.
Damit bekomme ich schon die Werte Aktualisierungen, aber es schreibt die Werte nicht direkt.In FHEM hatte ich die Register, welche ich schreibe, auf WORD gesetzt.
Wie übersetzt sich das in das iobroker Modbus Register? -
@pepito82 Gute Frage, ich vermute (bin aber kein Experte für Modbus), wenn ich mich an meine Assembler-Zeiten erinnere, dass WORD unsigned 16 bit entspricht. Ob "big endian" oder nicht, muss man ausprobieren, tippe auf "big endian".
-
@pepito82 sagte in Modbus Adapter - keine Verbindung:
Wie übersetzt sich das in das iobroker Modbus Register?
ich mache das immer so ...