ioBroker.modbus icon indicating copy to clipboard operation
ioBroker.modbus copied to clipboard

Huawei Wechselrichter geht über NodeRed, aber nicht über diesen Modbusadapter

Open HansPeterMeier opened this issue 2 years ago • 30 comments

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:

HansPeterMeier avatar Jul 05 '22 13:07 HansPeterMeier

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.

Dark-Tower-Coder avatar Jul 20 '22 15:07 Dark-Tower-Coder

Please show screenshots from the config oof your modbus instance

Apollon77 avatar Jul 20 '22 20:07 Apollon77

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.

HansPeterMeier avatar Jul 20 '22 20:07 HansPeterMeier

Bitte Zeige mal screenshots der Adapterkonfiguration! Das kannst du mir schon zeigen auch ohne das eine verbindung zustandkommt :-)

Apollon77 avatar Jul 20 '22 21:07 Apollon77

Die letzten Einstellungen. Habe auch, wie @HansPeterMeier einiges ausprobiert.

image image image image 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

`

Dark-Tower-Coder avatar Jul 20 '22 21:07 Dark-Tower-Coder

Ich habs gerade noch mal getestet mit den Standard Einstellungen, leider kein Erfolg, Huawei schließt warum auch immer direkt die Verbindung wieder. image

image

image

@Dark-Tower-Coder Bist du schon mit der Firmware vom Dongle auf 130 hoch?

HansPeterMeier avatar Jul 20 '22 21:07 HansPeterMeier

@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.

Dark-Tower-Coder avatar Jul 21 '22 17:07 Dark-Tower-Coder

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

HansPeterMeier avatar Jul 21 '22 20:07 HansPeterMeier

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.

atifan avatar Sep 26 '22 18:09 atifan

vllt kann man ja mal das versuchen was in https://github.com/ioBroker/ioBroker.modbus/issues/262 gefunden wurde?

Apollon77 avatar Sep 27 '22 07:09 Apollon77

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.

HansPeterMeier avatar Oct 02 '22 10:10 HansPeterMeier

Selbe Problem hier... Node-Red Flow läuft problemlos, Modbus Adapter geht nicht, selber fehler wie oben.

grafik

MarcelMertens avatar Oct 24 '22 12:10 MarcelMertens

Gibts irgendwelche Detaillierten protokoll logs von node-red das man mal dinge vergleichen könnte?

Apollon77 avatar Dec 29 '22 23:12 Apollon77

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

Dark-Tower-Coder avatar Dec 30 '22 14:12 Dark-Tower-Coder

Wäre ja die Frage ob es auch bei ioBroker mit "2" getan hätte?

Apollon77 avatar Dec 30 '22 14:12 Apollon77

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.

fu-zhou avatar Feb 21 '23 23:02 fu-zhou

Ist jemand bei dem Thema weiter gekommen ?

mrdimixx avatar Mar 15 '23 20:03 mrdimixx

auch ich würde es gern vermeiden NODE RED aufzusetzen

leonundjulie avatar Apr 26 '23 12:04 leonundjulie

Mir geht es genauso. Und ich hab immer gedacht es wäre eine Problem mit dem WR bzw. dem Dongle.

ThiemoSt avatar May 03 '23 19:05 ThiemoSt

Ich habe mir heute mal die Mühe gemacht die Netzwerkkommunikation zwischen dem iobroker (.3) und dem Wechselrichter (.8) mitzuloggen.

Modbus-Adapter Query Frame: grafik

Danach ist ende...

NodeRed Query Frame grafik

NodeRed Antwort Frame grafik

Im Anhang mal beide Logs (von txt in pcap umbennen) modbus-adapter.txt nodered.txt

Ich hab kein Plan wo da das Problem liegt..

MarcelMertens avatar May 04 '23 14:05 MarcelMertens

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

AndreasLat avatar Oct 26 '23 09:10 AndreasLat

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

leonundjulie avatar Oct 26 '23 17:10 leonundjulie

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

AndreasLat avatar Oct 26 '23 18:10 AndreasLat

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ß

TrackerTheCode avatar Nov 01 '23 12:11 TrackerTheCode

Schau auch gern mal hier rein https://forum.iobroker.net/topic/53005/huawei-sun2000-iobroker-via-js-script-funktioniert

leonundjulie avatar Nov 03 '23 14:11 leonundjulie

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)

leonundjulie avatar Nov 03 '23 14:11 leonundjulie

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.

bowao avatar Nov 13 '23 21:11 bowao

@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ß

HansPeterMeier avatar Nov 14 '23 13:11 HansPeterMeier

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 ...

Apollon77 avatar Nov 15 '23 11:11 Apollon77

Hallo. Gibt es zu diesem Ansatz schon Pläne zur Umsetzung?

leonundjulie avatar Jan 02 '24 13:01 leonundjulie