ioBroker.modbus
ioBroker.modbus copied to clipboard
Huawei Wechselrichter geht über NodeRed, aber nicht über diesen Modbusadapter
Hallo, kurze Frage, kann sich einer vorstellen, woran es liegen kann, dass ich mit node Red und diesen Flow Daten erhalte vom Wechselrichter und über den Modbusadapter nicht? ich habe schon alle möglichen Varianten ausprobiert. Hier mal der Flow für Node Red https://forum.iobroker.net/topic/51639/howto-huawei-sun2000-wr-modbus-mit-node-red-read-write
läuft über Node Red irgendwas anders als über den Modbus Adapter?
Gruß
Hier mal der Log, erst Modbus dann Nodered
`
node-red.0 | 2022-07-05 14:43:58.623 | info | State value to set for "0_userdata.0.Huawei.Inverter.Input_Power" has to be stringified but received type "number" |
---|---|---|---|
node-red.0 | 2022-07-05 14:43:58.141 | info | State value to set for "0_userdata.0.Huawei.Meter.Active_Power" has to be stringified but received type "number" |
node-red.0 | 2022-07-05 14:43:54.196 | info | State value to set for "0_userdata.0.Huawei.Inverter.Input_Power" has to be stringified but received type "number" |
node-red.0 | 2022-07-05 14:43:53.209 | info | State value to set for "0_userdata.0.Huawei.Meter.Active_Power" has to be stringified but received type "number" |
node-red.0 | 2022-07-05 14:43:48.996 | info | State value to set for "0_userdata.0.Huawei.Inverter.Input_Power" has to be stringified but received type "number" |
node-red.0 | 2022-07-05 14:43:48.514 | info | State value to set for "0_userdata.0.Huawei.Meter.Active_Power" has to be stringified but received type "number" |
node-red.0 | 2022-07-05 14:43:44.032 | info | State value to set for "0_userdata.0.Huawei.Inverter.Input_Power" has to be stringified but received type "number" |
node-red.0 | 2022-07-05 14:43:43.406 | info | State value to set for "0_userdata.0.Huawei.Meter.Active_Power" has to be stringified but received type "number" |
node-red.0 | 2022-07-05 14:43:39.525 | info | State value to set for "0_userdata.0.Huawei.Inverter.Input_Power" has to be stringified but received type "number" |
node-red.0 | 2022-07-05 14:43:38.918 | info | State value to set for "0_userdata.0.Huawei.Meter.Active_Power" has to be stringified but received type "number" |
node-red.0 | 2022-07-05 14:43:33.611 | info | State value to set for "0_userdata.0.Huawei.Inverter.Input_Power" has to be stringified but received type "number" |
node-red.0 | 2022-07-05 14:43:33.136 | info | State value to set for "0_userdata.0.Huawei.Meter.Active_Power" has to be stringified but received type "number" |
node-red.0 | 2022-07-05 14:43:28.481 | warn | 5 Jul 14:43:28 - [warn] [modbus-client:WLAN-FE] Client -> fsm connected after state init Get More About It By Logging [email protected]:502 default Unit-Id: 1 |
node-red.0 | 2022-07-05 14:43:28.025 | debug | ... delay-initialize 24 Nodes |
node-red.0 | 2022-07-05 14:43:28.025 | debug | Ready event received ... start to check 0 Nodes |
node-red.0 | 2022-07-05 14:43:28.003 | debug | States connected to redis: 127.0.0.1:9000 |
node-red.0 | 2022-07-05 14:43:27.997 | debug | States create User PubSub Client |
node-red.0 | 2022-07-05 14:43:27.997 | debug | States create System PubSub Client |
node-red.0 | 2022-07-05 14:43:27.993 | debug | Redis States: Use Redis connection: 127.0.0.1:9000 |
node-red.0 | 2022-07-05 14:43:27.986 | debug | Objects connected to redis: 127.0.0.1:9001 |
node-red.0 | 2022-07-05 14:43:27.984 | debug | Objects client initialize lua scripts |
node-red.0 | 2022-07-05 14:43:27.982 | debug | 5 Jul 14:43:27 - [info] Flows sind gestartet |
node-red.0 | 2022-07-05 14:43:27.977 | warn | 5 Jul 14:43:27 - [warn] [modbus-client:WLAN-FE] Client -> first fsm init in 500 ms [email protected]:502 default Unit-Id: 1 |
node-red.0 | 2022-07-05 14:43:27.976 | warn | 5 Jul 14:43:27 - [warn] [modbus-client:WLAN-FE] Client -> fsm init state after new |
node-red.0 | 2022-07-05 14:43:27.974 | debug | 5 Jul 14:43:27 - [info] Flows werden gestartet |
node-red.0 | 2022-07-05 14:43:27.969 | debug | Objects create User PubSub Client |
node-red.0 | 2022-07-05 14:43:27.969 | debug | Objects create System PubSub Client |
node-red.0 | 2022-07-05 14:43:27.967 | debug | 5 Jul 14:43:27 - [info] Server wird jetzt auf http://127.0.0.1:1880/ ausgeführt |
node-red.0 | 2022-07-05 14:43:27.955 | debug | Objects client ready ... initialize now |
node-red.0 | 2022-07-05 14:43:27.684 | debug | Redis Objects: Use Redis connection: 127.0.0.1:9001 |
node-red.0 | 2022-07-05 14:43:27.941 | warn | 5 Jul 14:43:27 - [info] Benutzerverzeichnis: /opt/iobroker/iobroker-data/node-red/5 Jul 14:43:27 - [warn] Projekte deaktiviert: editorTheme.projects.enabled=false5 Jul 14:43:27 - [info] Flow-Datei: /opt/iobroker/iobroker-data/node-red/flows.json |
node-red.0 | 2022-07-05 14:43:27.940 | debug | 5 Jul 14:43:27 - [info] Kontextspeicher: default [module=memory] |
node-red.0 | 2022-07-05 14:43:27.940 | debug | 5 Jul 14:43:27 - [info] Einstellungsdatei: /opt/iobroker/iobroker-data/node-red/settings.js |
node-red.0 | 2022-07-05 14:43:27.794 | debug | 5 Jul 14:43:27 - [info] Dashboard version 3.1.7 started at /ui |
node-red.0 | 2022-07-05 14:43:27.774 | debug | 5 Jul 14:43:27 - [info] Polymer started at /polymer |
node-red.0 | 2022-07-05 14:43:27.157 | debug | 5 Jul 14:43:27 - [info] Paletteneditor deaktiviert: Einstellungen5 Jul 14:43:27 - [info] Paletten-Nodes werden geladen |
node-red.0 | 2022-07-05 14:43:27.156 | debug | 5 Jul 14:43:27 - [info] Node-RED Version: v2.2.25 Jul 14:43:27 - [info] Node.js Version: v16.15.15 Jul 14:43:27 - [info] Linux 5.10.0-15-amd64 x64 LE |
node-red.0 | 2022-07-05 14:43:27.156 | debug | 5 Jul 14:43:27 - [info] Willkommen bei Node-RED!=================== |
node-red.0 | 2022-07-05 14:43:26.870 | info | Starting node-red: --max-old-space-size=128 /opt/iobroker/node_modules/node-red/red.js -v --settings /opt/iobroker/iobroker-data/node-red/settings.js |
node-red.0 | 2022-07-05 14:43:26.725 | debug | Writing extended authentication for authType: "None" : {"type":"credentials","users":[],"default":{"permissions":"*"}} |
node-red.0 | 2022-07-05 14:43:26.709 | info | Requested NPM packages: ["node-red-contrib-calc","node-red-contrib-buffer-parser","node-red-contrib-modbus"] |
node-red.0 | 2022-07-05 14:43:26.701 | info | starting. Version 3.3.1 in /opt/iobroker/node_modules/iobroker.node-red, node: v16.15.1, js-controller: 4.0.23 |
node-red.0 | 2022-07-05 14:43:26.650 | debug | States connected to redis: 127.0.0.1:9000 |
node-red.0 | 2022-07-05 14:43:26.644 | debug | States create User PubSub Client |
node-red.0 | 2022-07-05 14:43:26.644 | debug | States create System PubSub Client |
node-red.0 | 2022-07-05 14:43:26.640 | debug | Redis States: Use Redis connection: 127.0.0.1:9000 |
node-red.0 | 2022-07-05 14:43:26.632 | debug | Objects connected to redis: 127.0.0.1:9001 |
node-red.0 | 2022-07-05 14:43:26.630 | debug | Objects client initialize lua scripts |
node-red.0 | 2022-07-05 14:43:26.619 | debug | Objects create User PubSub Client |
node-red.0 | 2022-07-05 14:43:26.619 | debug | Objects create System PubSub Client |
node-red.0 | 2022-07-05 14:43:26.618 | debug | Objects client ready ... initialize now |
node-red.0 | 2022-07-05 14:43:26.604 | debug | Redis Objects: Use Redis connection: 127.0.0.1:9001 |
host.iobroker | 2022-07-05 14:43:26.389 | info | instance system.adapter.node-red.0 started with pid 7030 |
host.iobroker | 2022-07-05 14:43:26.374 | info | "system.adapter.node-red.0" enabled |
host.iobroker | 2022-07-05 14:43:22.567 | info | instance system.adapter.modbus.1 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION) |
modbus.1 | 2022-07-05 14:43:22.052 | info | Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason |
modbus.1 | 2022-07-05 14:43:22.052 | debug | Plugin sentry destroyed |
modbus.1 | 2022-07-05 14:43:22.051 | info | terminating |
modbus.1 | 2022-07-05 14:43:22.051 | debug | Closing client on purpose. |
host.iobroker | 2022-07-05 14:43:22.051 | info | stopInstance system.adapter.modbus.1 send kill signal |
modbus.1 | 2022-07-05 14:43:22.050 | info | Got terminate signal TERMINATE_YOURSELF |
host.iobroker | 2022-07-05 14:43:22.049 | info | stopInstance system.adapter.modbus.1 (force=false, process=true) |
host.iobroker | 2022-07-05 14:43:22.049 | info | "system.adapter.modbus.1" disabled |
modbus.1 | 2022-07-05 14:43:04.665 | info | Disconnected from slave 10.10.10.65 |
modbus.1 | 2022-07-05 14:43:04.665 | debug | Closing client on purpose. |
modbus.1 | 2022-07-05 14:43:03.666 | debug | Cleaning up request fifo. |
modbus.1 | 2022-07-05 14:43:03.666 | debug | Clearing timeout of the current request. |
modbus.1 | 2022-07-05 14:43:03.666 | debug | Socket closed with error |
modbus.1 | 2022-07-05 14:43:03.665 | warn | Poll error count: 1 code: {"err":"timeout","timeout":5000} |
modbus.1 | 2022-07-05 14:43:03.665 | error | Client in error state. |
modbus.1 | 2022-07-05 14:43:03.664 | error | Request timed out. |
modbus.1 | 2022-07-05 14:43:03.664 | warn | Error: undefined |
modbus.1 | 2022-07-05 14:42:58.662 | debug | [DevID_1/inputRegs] Poll address 2018 - 1 registers |
modbus.1 | 2022-07-05 14:42:58.662 | debug | Initialization of scale factors done! |
modbus.1 | 2022-07-05 14:42:58.662 | debug | [DevID_1] Poll start --------------------- |
modbus.1 | 2022-07-05 14:42:58.661 | info | Connected to slave 10.10.10.65 |
modbus.1 | 2022-07-05 14:42:58.573 | debug | Initialize Objects for holdingRegs: [] |
modbus.1 | 2022-07-05 14:42:58.573 | debug | Add inputRegisters.2018_Test: {"_id":"inputRegisters.2018_Test","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":2018,"deviceId":1,"type":"int16be","len":1,"offset":0,"factor":1}} |
modbus.1 | 2022-07-05 14:42:58.573 | debug | Initialize Objects for inputRegs: [{"_address":2018,"name":"Test","description":"","unit":"","type":"int16be","len":1,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":false,"isScale":false,"address":2018,"deviceId":1,"id":"inputRegisters.2018_Test"}] |
modbus.1 | 2022-07-05 14:42:58.572 | debug | Initialize Objects for coils: [] |
modbus.1 | 2022-07-05 14:42:58.572 | debug | Initialize Objects for disInputs: [] |
modbus.1 | 2022-07-05 14:42:58.535 | info | starting. Version 5.0.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v16.15.1, js-controller: 4.0.23 |
modbus.1 | 2022-07-05 14:42:58.463 | debug | Plugin sentry Initialize Plugin (enabled=true) |
modbus.1 | 2022-07-05 14:42:58.439 | debug | States connected to redis: 127.0.0.1:9000 |
modbus.1 | 2022-07-05 14:42:58.433 | debug | States create User PubSub Client |
modbus.1 | 2022-07-05 14:42:58.433 | debug | States create System PubSub Client |
modbus.1 | 2022-07-05 14:42:58.429 | debug | Redis States: Use Redis connection: 127.0.0.1:9000 |
modbus.1 | 2022-07-05 14:42:58.422 | debug | Objects connected to redis: 127.0.0.1:9001 |
modbus.1 | 2022-07-05 14:42:58.420 | debug | Objects client initialize lua scripts |
modbus.1 | 2022-07-05 14:42:58.407 | debug | Objects create User PubSub Client |
modbus.1 | 2022-07-05 14:42:58.407 | debug | Objects create System PubSub Client |
modbus.1 | 2022-07-05 14:42:58.406 | debug | Objects client ready ... initialize now |
modbus.1 | 2022-07-05 14:42:58.383 | debug | Redis Objects: Use Redis connection: 127.0.0.1:9001 |
Plattform: linux Betriebssystem: linux Architektur: x64 CPUs: 4 Geschwindigkeit: 3692 MHz Modell: Common KVM processor RAM: 7.7 GB System-Betriebszeit: 6 T. 21:45:33 Node.js: v16.15.1 time: 1657017694884 timeOffset: -120 Adapter-Anzahl: 501 NPM: 8.11.0 Datenträgergröße: 61.8 GB Freier Festplattenspeicher: 56.4 GB Betriebszeit: 6 T. 21:45:42 Aktive Instanzen: 14 Pfad: /opt/iobroker/ aktiv:
Bei mir ist es genau das gleiche Verhalten. Habe es sogar mit einem Javascript (aus dem Netz) zum laufen gebracht, aber mit dem Adapter nicht.
Please show screenshots from the config oof your modbus instance
Ich machs mal auf Deutsch:-) Ich würde dir gerne was zeigen wollen, aber es kommt einfach keine Verbindung zustande, ich habe, denke ich, alle Variationen ausprobiert, die es nur gibt. Nur das Node Red Dingen funktioniert soweit.
Bitte Zeige mal screenshots der Adapterkonfiguration! Das kannst du mir schon zeigen auch ohne das eine verbindung zustandkommt :-)
Die letzten Einstellungen. Habe auch, wie @HansPeterMeier einiges ausprobiert.
LOG:
` modbus.0 | 2022-07-20 23:05:54.608 | debug | [DevID_1/inputRegs] Poll address 37004 - 1 registers modbus.0 | 2022-07-20 23:05:54.607 | debug | [DevID_1] Poll start --------------------- modbus.0 | 2022-07-20 23:05:49.604 | info | Disconnected from slave 192.168.178.98 modbus.0 | 2022-07-20 23:05:49.603 | debug | Closing client on purpose. modbus.0 | 2022-07-20 23:05:48.609 | debug | Cleaning up request fifo. modbus.0 | 2022-07-20 23:05:48.609 | debug | Clearing timeout of the current request. modbus.0 | 2022-07-20 23:05:48.607 | debug | Socket closed with error modbus.0 | 2022-07-20 23:05:48.604 | warn | Poll error count: 1 code: {"err":"timeout","timeout":5000} modbus.0 | 2022-07-20 23:05:48.603 | error | Client in error state. modbus.0 | 2022-07-20 23:05:48.602 | error | Request timed out. modbus.0 | 2022-07-20 23:05:48.601 | warn | Error: undefined modbus.0 | 2022-07-20 23:05:43.597 | debug | [DevID_1/inputRegs] Poll address 37004 - 1 registers modbus.0 | 2022-07-20 23:05:43.597 | debug | Initialization of scale factors done! modbus.0 | 2022-07-20 23:05:43.597 | debug | [DevID_1] Poll start --------------------- modbus.0 | 2022-07-20 23:05:43.596 | info | Connected to slave 192.168.178.98 modbus.0 | 2022-07-20 23:05:43.476 | debug | Add holdingRegisters.37017: {"_id":"holdingRegisters.37017","type":"state","common":{"name":"Battery_Day_DisCharge_Capacity","role":"value","type":"number","read":false,"write":true,"def":0,"unit":""},"native":{"regType":"holdingRegs","address":37017,"deviceId":1,"type":"uint32be","len":2,"offset":0,"factor":"2","poll":false}} modbus.0 | 2022-07-20 23:05:43.476 | debug | Add holdingRegisters.37004: {"_id":"holdingRegisters.37004","type":"state","common":{"name":"Battery_SOC","role":"value","type":"number","read":true,"write":true,"def":0,"unit":""},"native":{"regType":"holdingRegs","address":37004,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":1,"poll":true}} modbus.0 | 2022-07-20 23:05:43.476 | debug | Initialize Objects for holdingRegs: [{"_address":37004,"name":"","description":"Battery_SOC","unit":"","type":"uint16be","len":1,"factor":1,"offset":0,"formula":"","role":"value","room":"","poll":true,"wp":false,"cw":false,"isScale":"","address":37004,"deviceId":1,"id":"holdingRegisters.37004"},{"_address":37017,"name":"","description":"Battery_Day_DisCharge_Capacity","unit":"","type":"uint32be","len":2,"factor":"2","offset":0,"formula":"","role":"value","room":"","poll":false,"wp":"","cw":"","isScale":"","address":37017,"deviceId":1,"id":"holdingRegisters.37017"}] modbus.0 | 2022-07-20 23:05:43.476 | debug | Add inputRegisters.37004: {"_id":"inputRegisters.37004","type":"state","common":{"name":"Battery_SOC","role":"value","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":37004,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":1}} modbus.0 | 2022-07-20 23:05:43.475 | debug | Initialize Objects for inputRegs: [{"_address":37004,"name":"","description":"Battery_SOC","unit":"","type":"uint16be","len":1,"factor":1,"offset":0,"formula":"","role":"value","room":"","cw":"","isScale":"","address":37004,"deviceId":1,"id":"inputRegisters.37004"}] modbus.0 | 2022-07-20 23:05:43.475 | debug | Initialize Objects for coils: [] modbus.0 | 2022-07-20 23:05:43.475 | debug | Initialize Objects for disInputs: [] modbus.0 | 2022-07-20 23:05:43.410 | info | starting. Version 5.0.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v14.19.3, js-controller: 3.3.22 modbus.0 | 2022-07-20 23:05:43.406 | info | Plugin sentry Sentry Plugin disabled for this process because sending of statistic data is disabled for the system modbus.0 | 2022-07-20 23:05:43.404 | debug | Plugin sentry Initialize Plugin (enabled=true) modbus.0 | 2022-07-20 23:05:39.758 | info | Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason modbus.0 | 2022-07-20 23:05:39.758 | debug | Plugin sentry destroyed modbus.0 | 2022-07-20 23:05:39.757 | info | terminating modbus.0 | 2022-07-20 23:05:39.755 | debug | Closing client on purpose. modbus.0 | 2022-07-20 23:05:39.753 | info | Got terminate signal TERMINATE_YOURSELF
`
Ich habs gerade noch mal getestet mit den Standard Einstellungen, leider kein Erfolg, Huawei schließt warum auch immer direkt die Verbindung wieder.
@Dark-Tower-Coder Bist du schon mit der Firmware vom Dongle auf 130 hoch?
@HansPeterMeier Ne, der Dongle ist bei mir noch auf 129.
Hast du schon die neuste Version installiert? Welche Version hast du für Modbus und welche für den Inverter? Ggf. Liegt es auch daran.
Bei mir: Inverter: 141 Modbus: 300
Weiß aber nicht ob es da irgend ein Update gibt. Habe keine Adminrechte um es herunterzuladen.
Ne daran liegt es nicht. Ich hab auf den Dongle jetzt die 130, bei der Firmware war noch eine PDF dabei, anscheinend kann man den jetzt auch über Modbus ansprechen, aber dafür muss der auf der id 100 stehen bei den Adressen. Per Nodered klappt das auch soweit. Beim WR ktl30-m3 bin ich auf der aktuellsten, V100R001C00SPC130 Anbei noch der Link, wo mein Flow beschrieben ist. https://forum.iobroker.net/topic/51639/howto-huawei-sun2000-wr-modbus-mit-node-red-read-write/74?_=1658434191728
Hi. Geht das auslesen vom Huawai SUN2000-3KTL-M1 und LUNA2000-10-S0 und DTSU666-H immer noch nicht über Modbus? Bekomme den auch demnächst und würde ihn auch gern auslesen.
vllt kann man ja mal das versuchen was in https://github.com/ioBroker/ioBroker.modbus/issues/262 gefunden wurde?
Ne leider klappte das nicht, den Huawei schaffe ich nicht auszulesen mit den Modbus Adapter. Was müsste ich den liefern, dass man dieses Problem vielleicht in Zukunft mal angehen könnte, falls Interesse besteht? Aktuell setzt ja fast jeder Huawei ein für seine PV Anlagen, wenn die denn mal wieder lieferbar sind.
Selbe Problem hier... Node-Red Flow läuft problemlos, Modbus Adapter geht nicht, selber fehler wie oben.
Gibts irgendwelche Detaillierten protokoll logs von node-red das man mal dinge vergleichen könnte?
Ich bin mittlerweile von ioBroker zu Home Assistant gewechselt. Dabei habe ich verschiedene Verbindungen zum SUN2000 ausprobiert und derzeit nutze ich einen modbus-proxy. Was aber alle Verbindungen gemeinsam hatten war, dass ich überall die "connection-time" auf 2 stellen musste. Bei den meisten ist per default 0.1 eingestellt.
Ggf. ist das ein hilfreicher Hinweis.
Gruß Tower
Wäre ja die Frage ob es auch bei ioBroker mit "2" getan hätte?
Ich glaube ich weiß, wo das Problem liegt: Huawei hat wohl die Register-Adressen vertauscht. Funktion 4 greift im Standard auf die 30000er zu , Funktion 3 auf die 40000er. Bei Huawei greift die Funktion 3 aber auf die 30000er zu. Das Problem im ioBroker-Modbus-Adapter ist, dass ich unter "Holding-Register" zwar 30000er Adressen anlegen kann, die werden aber nicht in den Objekten angezeigt, weil der Adapter 40000er erwartet und das abfängt. Habe das mit ModPoll herausbekommen, da kann man die Adressen nämlich abweichend von der eigentlichen Deklaration angeben.
Eine Maßnahme wäre, dass der Modbus-Adapter bei den Holding-Registern zwar automatisch mit 40001 anfängt, manuell eingetragene 30000er aber trotzdem zulässt und in den Objekten zeigt.
Ist jemand bei dem Thema weiter gekommen ?
auch ich würde es gern vermeiden NODE RED aufzusetzen
Mir geht es genauso. Und ich hab immer gedacht es wäre eine Problem mit dem WR bzw. dem Dongle.
Ich habe mir heute mal die Mühe gemacht die Netzwerkkommunikation zwischen dem iobroker (.3) und dem Wechselrichter (.8) mitzuloggen.
Modbus-Adapter Query Frame:
Danach ist ende...
NodeRed Query Frame
NodeRed Antwort Frame
Im Anhang mal beide Logs (von txt in pcap umbennen) modbus-adapter.txt nodered.txt
Ich hab kein Plan wo da das Problem liegt..
Liebe Community Hat jemand Erfahrung beim Einsatz von zwei Wechselrichtern? Ich bringe alle Daten vom Messgerät und vom Master-Wechselrichter in ioBroker aber sehe die Daten vom 2. Wechselrichter (ID: 2) nicht. Kann ich einen zweiten Server definieren und den Flow verdoppeln? Falls ja, wie kann ich den zweiten Server definieren? (Dieselbe IP aber die andere ID). Vielen Dank
Ich habe zwar nur einen WR am Start, aber eine Kernfrage ist sicherlich, ob Deine WR separat oder verlinkt sind. Wenn sie separat sind, dann erreichst du sie unter unterschiedlichen IP Adressen und musst diese folglich auch in den NODE RED flows einbringen - je WR ein eigener FLow
Vielen Dank Leider hilft das nicht. Die Wechselrichter haben nur eine IP Adresse (sind Master und Slave) und zwei ID. Das Problem ist, dass ich im Flow zwei verschiedene WLAN-FE Konfigurationsnodes benötige weil ich die zwei ID ansprechen muss. Weiss jemand, wie ich einen zweiten Konfigurationsnode erstelle? Ich kenne mich mit Node-RED nicht gut aus, sorry Vielen Dank Andreas
Hallo zusammen,
der Kommunikationsverlauf hier ist sehr aufschlussreich für mich. Gibt es mitlerweile ein Lösung, um dem IOBroker direkt auf den SDongle von Huawei via ModBus TCP zugreifen zu können?
Viel Dank und Gruß
Schau auch gern mal hier rein https://forum.iobroker.net/topic/53005/huawei-sun2000-iobroker-via-js-script-funktioniert
Den Weg bin ich gegangen. Grundsätzlich funktioniert es. Aber ich habe so eine unschöne EnPAL Topologie, auf Grund derer es eine LAN-Verbindung zwischen der EnPAL Bix und dem SDongle des WR gibt und der gleichzeitige MODBUS Zugriff via WLAN hat eine andere Priorität…. es kommt zu ständigen Abbrüchen via iOBroker und dem WR. Ich warte darauf den EnPAL Vertrag zu kündigen und dann kann ich endlich vom iOBroker sauber via LAN an den SDongle zugreifen (alles schon getestet, läuft , darf ich halt nur nicht wegen EnPAL Vertrag)
Nach dem Verbindungsaufbau braucht der Huawei Wechselrichter ca. 5 Sekunden, bevor er Angefragt werden darf. Für die meisten Modbus-Master ist dies kein Problem, da sie auch bei Fehlern einfach zyklisch weiter pollen. Der ioBroker Modbus-Adapter trennt aber leider bei Fehlern die Verbindung zum Slave und verbindet sich neu. Ohne die oben erwähnten 5 Sekunden Wartezeit zwischen dem Verbindungsaufbau und der ersten Anfrage führt dies erneut zu einem Fehler, der Adapter trennt die Verbindung, baut sie erneut auf und so weiter...
Wenn zwischen Verbindungsaufbau und dem ersten poll eine Wartezeit von 5 Sekunden eingehalten wird, funktioniert der Adapter bei mir mit dem Huawei Wechselrichter.
Leider gibt es in den Adaptereinstellungen keine Möglichkeit, eine Wartezeit vor der ersten Abfrage festzulegen. (Ich hätte gedacht, dass der Parameter „Wartezeit“ (waitTime) genau das tut, aber es sieht so aus, als ob er nur zusätzliche Zeit zum Abfragezyklus hinzufügt, und zwar erst nach dem ersten polling.)
quick-and-dirty-fix nur als 'proof of concept' :
diff lib/master.js
809c809,812
< poll();
---
> adapter.log.info('Wait 5 seconds before the first poll');
> setTimeout(function(){
> poll();
> }, 5000);
Für einen richtigen Bugfix (oder feature-request?) müsste noch ein entsprechender Parameter in den Einstellungen hinzugefügt, Wechselwirkungen mit den anderen Timeouts (z.B. "Wartezeit Lesend") berücksichtigt und ein clearTimeout bei Programmende eingefügt werden.
@GermanBluefox Könnte man sowas einbauen in den Modbusadapter? wäre eine feine Sache um den Huawei Wechselrichter darüber einzubinden, dann könnte ich mir den Umweg über Nodered sparen. Gruß
Das sind coole Infos. Ich wäre also bei einem "Connect-to-Poll-Delay" quasi ... also genau das man eine wartezeit definieren kann die zwischen dem erfolgreichen connect und erstem Poll wartet ...
Hallo. Gibt es zu diesem Ansatz schon Pläne zur Umsetzung?