NEWS
Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden
-
Moin @shrimptaco,
hast du das LAN-Modul mittlerweile testen können?
Ich habe auch einen SG Wechselrichter (SG10KTL-M) und bekomme ebenfalls keine Verbindung aufgebaut.Läuft immer auf einen timeout, auch wenn ich read timeout hochsetze:
2021-05-30 09:41:00.469 - info: host.iobroker-pi "system.adapter.modbus.0" enabled 2021-05-30 09:41:00.616 - info: host.iobroker-pi instance system.adapter.modbus.0 started with pid 13086 2021-05-30 09:41:03.299 - info: modbus.0 (13086) starting. Version 3.2.6 in /opt/iobroker/node_modules/iobroker.modbus, node: v12.22.1, js-controller: 3.2.16 2021-05-30 09:41:04.068 - info: modbus.0 (13086) Connected to slave 192.168.199.32 2021-05-30 09:41:09.085 - warn: modbus.0 (13086) Error: undefined 2021-05-30 09:41:09.087 - error: modbus.0 (13086) Request timed out. 2021-05-30 09:41:09.088 - error: modbus.0 (13086) Client in error state. 2021-05-30 09:41:09.091 - warn: modbus.0 (13086) Poll error count: 1 code: {"err":"timeout","timeout":5000} 2021-05-30 09:41:10.092 - info: modbus.0 (13086) Disconnected from slave 192.168.199.32 2021-05-30 09:41:12.125 - info: modbus.0 (13086) Connected to slave 192.168.199.32 2021-05-30 09:41:17.129 - warn: modbus.0 (13086) Error: undefined 2021-05-30 09:41:17.132 - error: modbus.0 (13086) Request timed out. 2021-05-30 09:41:17.134 - error: modbus.0 (13086) Client in error state. 2021-05-30 09:41:17.137 - warn: modbus.0 (13086) Poll error count: 2 code: {"err":"timeout","timeout":5000} 2021-05-30 09:41:18.133 - info: modbus.0 (13086) Disconnected from slave 192.168.199.32 2021-05-30 09:41:20.153 - info: modbus.0 (13086) Connected to slave 192.168.199.32 2021-05-30 09:41:25.158 - warn: modbus.0 (13086) Error: undefined 2021-05-30 09:41:25.160 - error: modbus.0 (13086) Request timed out. 2021-05-30 09:41:25.161 - error: modbus.0 (13086) Client in error state. 2021-05-30 09:41:25.164 - warn: modbus.0 (13086) Poll error count: 3 code: {"err":"timeout","timeout":5000} 2021-05-30 09:41:26.162 - info: modbus.0 (13086) Disconnected from slave 192.168.199.32 2021-05-30 09:41:28.171 - info: modbus.0 (13086) Connected to slave 192.168.199.32 2021-05-30 09:41:33.179 - warn: modbus.0 (13086) Error: undefined 2021-05-30 09:41:33.181 - error: modbus.0 (13086) Request timed out. 2021-05-30 09:41:33.183 - error: modbus.0 (13086) Client in error state. 2021-05-30 09:41:33.185 - warn: modbus.0 (13086) Poll error count: 4 code: {"err":"timeout","timeout":5000} 2021-05-30 09:41:34.184 - info: modbus.0 (13086) Disconnected from slave 192.168.199.32 2021-05-30 09:41:36.189 - info: modbus.0 (13086) Connected to slave 192.168.199.32 2021-05-30 09:41:41.195 - warn: modbus.0 (13086) Error: undefined 2021-05-30 09:41:41.197 - error: modbus.0 (13086) Request timed out. 2021-05-30 09:41:41.198 - error: modbus.0 (13086) Client in error state. 2021-05-30 09:41:41.200 - warn: modbus.0 (13086) Poll error count: 5 code: {"err":"timeout","timeout":5000} 2021-05-30 09:41:42.199 - info: modbus.0 (13086) Disconnected from slave 192.168.199.32 2021-05-30 09:41:44.206 - info: modbus.0 (13086) Connected to slave 192.168.199.32 2021-05-30 09:41:49.212 - warn: modbus.0 (13086) Error: undefined 2021-05-30 09:41:49.214 - error: modbus.0 (13086) Request timed out. 2021-05-30 09:41:49.215 - error: modbus.0 (13086) Client in error state. 2021-05-30 09:41:49.218 - warn: modbus.0 (13086) Poll error count: 6 code: {"err":"timeout","timeout":5000} 2021-05-30 09:41:50.216 - info: modbus.0 (13086) Disconnected from slave 192.168.199.32 2021-05-30 09:41:52.226 - info: modbus.0 (13086) Connected to slave 192.168.199.32 2021-05-30 09:41:57.232 - warn: modbus.0 (13086) Error: undefined 2021-05-30 09:41:57.234 - error: modbus.0 (13086) Request timed out. 2021-05-30 09:41:57.235 - error: modbus.0 (13086) Client in error state. 2021-05-30 09:41:57.238 - warn: modbus.0 (13086) Poll error count: 7 code: {"err":"timeout","timeout":5000} 2021-05-30 09:41:58.236 - info: modbus.0 (13086) Disconnected from slave 192.168.199.32 2021-05-30 09:42:00.246 - info: modbus.0 (13086) Connected to slave 192.168.199.32 2021-05-30 09:42:05.252 - warn: modbus.0 (13086) Error: undefined 2021-05-30 09:42:05.254 - error: modbus.0 (13086) Request timed out. 2021-05-30 09:42:05.254 - error: modbus.0 (13086) Client in error state. 2021-05-30 09:42:05.256 - warn: modbus.0 (13086) Poll error count: 8 code: {"err":"timeout","timeout":5000} 2021-05-30 09:42:06.256 - info: modbus.0 (13086) Disconnected from slave 192.168.199.32 2021-05-30 09:42:08.262 - info: modbus.0 (13086) Connected to slave 192.168.199.32 2021-05-30 09:42:13.268 - warn: modbus.0 (13086) Error: undefined 2021-05-30 09:42:13.269 - error: modbus.0 (13086) Request timed out. 2021-05-30 09:42:13.270 - error: modbus.0 (13086) Client in error state. 2021-05-30 09:42:13.272 - warn: modbus.0 (13086) Poll error count: 9 code: {"err":"timeout","timeout":5000} 2021-05-30 09:42:14.270 - info: modbus.0 (13086) Disconnected from slave 192.168.199.32 2021-05-30 09:42:16.283 - info: modbus.0 (13086) Connected to slave 192.168.199.32 2021-05-30 09:42:21.287 - warn: modbus.0 (13086) Error: undefined 2021-05-30 09:42:21.289 - error: modbus.0 (13086) Request timed out. 2021-05-30 09:42:21.290 - error: modbus.0 (13086) Client in error state. 2021-05-30 09:42:21.292 - warn: modbus.0 (13086) Poll error count: 10 code: {"err":"timeout","timeout":5000} 2021-05-30 09:42:22.291 - info: modbus.0 (13086) Disconnected from slave 192.168.199.32 2021-05-30 09:42:24.296 - info: modbus.0 (13086) Connected to slave 192.168.199.32 2021-05-30 09:42:24.363 - info: host.iobroker-pi "system.adapter.modbus.0" disabled 2021-05-30 09:42:24.375 - info: host.iobroker-pi stopInstance system.adapter.modbus.0 (force=false, process=true) 2021-05-30 09:42:24.389 - info: modbus.0 (13086) Got terminate signal TERMINATE_YOURSELF 2021-05-30 09:42:24.390 - info: host.iobroker-pi stopInstance system.adapter.modbus.0 send kill signal 2021-05-30 09:42:24.393 - info: modbus.0 (13086) terminating 2021-05-30 09:42:24.396 - info: modbus.0 (13086) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason 2021-05-30 09:42:25.057 - info: host.iobroker-pi instance system.adapter.modbus.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION) 2021-05-30 09:42:36.755 - info: host.iobroker-pi "system.adapter.modbus.0" enabled 2021-05-30 09:42:36.848 - info: host.iobroker-pi instance system.adapter.modbus.0 started with pid 13116 2021-05-30 09:42:39.541 - info: modbus.0 (13116) starting. Version 3.2.6 in /opt/iobroker/node_modules/iobroker.modbus, node: v12.22.1, js-controller: 3.2.16 2021-05-30 09:42:40.562 - info: modbus.0 (13116) Connected to slave 192.168.199.32 2021-05-30 09:42:50.584 - warn: modbus.0 (13116) Error: undefined 2021-05-30 09:42:50.587 - error: modbus.0 (13116) Request timed out. 2021-05-30 09:42:50.589 - error: modbus.0 (13116) Client in error state. 2021-05-30 09:42:50.595 - warn: modbus.0 (13116) Poll error count: 1 code: {"err":"timeout","timeout":10000} 2021-05-30 09:42:51.590 - info: modbus.0 (13116) Disconnected from slave 192.168.199.32 2021-05-30 09:42:53.600 - info: modbus.0 (13116) Connected to slave 192.168.199.32
Laut Modbus RS485 RTU Protocol.pdf für den WR sollten die Kommunikationseinstellungen und Register zum SGH identisch sein.
Jetzt hoffe ich auf eine positive Rückmeldung von dir.
Viele Grüße
hansen -
Hallo zusammen, ich habe ebenfalls einen Sungrow SH10RT per Modbus TCP mit dem iobroker verbunden. Prinzipiell läuft das auch gut. Allerdings kommt es ca. alle 5 - 6 Tage dazu, dass die Mobus-Schnittstelle am Sungrow nicht mehr reagiert. Der Adapter im iobroker meldet dann einen Socket Error. Ich habe auch mit anderen Tools versucht die Modbus Schnittstelle des Sungrows anzusprechen, leider das gleiche Ergebnis. Ich vermute deshalb das die Ursache auf der Seite des Sungrow liegt. Ein anderer Wechselrichter der Firma SMA wird ebenfalls über den Modbus Adapter per TCP-Verbindung ausgelesen und läuft seit dem Einschalten des Adapters stabil. Der Sungrow läuft auf der aktuellsten Firmware und bisher hilft nur ein Neustart des Geräts um die Modbus Verbindung wieder für die nächsten 5 - 6 Tage ans Laufen zu bekommen. Hat hier jemand schon ähnliche Beobachtungen mit dem Sungrow gemacht?
-
@freestyler ich habe das gleiche Verbindungsproblem, dass der iobroker nach etlichen Tagen erfolgreicher Verbindung nun gar nicht mehr kommunizieren will. Allerdings war in den letzten Tagen auch die Verbindung zur iSolarCloud offline. Nach einem Neustart des Wechselrichters (SH10RT) ist die Verbindung zur iSolarCloud nun wieder da, aber dafür kann sich der ioBroker nicht mehr mit dem Wechselrichter verbinden (Socket Error).
Gibt es einen Zusammenhang oder Konflikt zwischen der lokalen Modbus Netzwerk-Kommunikation und der iSolarCloud Kommunikation? Die sungrow Dokumentation schweigt sich zu diesem Thema völlig aus. und ich wüsste auch nicht, wie ich die iSolarCloud Kommunikation stoppen könnte. Beides läuft ja über die gleiche Netzwerk-Schnittstelle. -
Hi,
danke für die vielen Mühen und die gute Beschreibung, besonders an @Atlantis. Ich bin iobroker und Modbus Neuling und habe mich daran versucht die Verbindung zu meinem neuen Sungrow H10.RT aufzubauen, kriege es aber nicht ganz hin, dass ich die Werte auch angezeigt bekomme.
Mit dem QModMaster kann ich eine Verbindung aufbauen und bekomme auch sinnvolle Werte:
In der aktuellen Version vom iobroker (v5.1.25) und dem ModBus adapter (v.4.11) will es aber nicht recht klappen. Die ModBus Oberfläche ist jetzt etwas anders als in deinen Screenshots. Ich bin aber recht sicher, dass ich das richtig übertragen habe:
Im Modbus Protokoll steht:
modbus.0 2021-09-19 20:56:50.383 info Connected to slave 192.168.178.20 modbus.0 2021-09-19 20:56:50.133 info starting. Version 3.4.11 in C:/Program Files/iobroker/SmartHome/node_modules/iobroker.modbus, node: v10.17.0, js-controller: 3.3.15
Verbindung ist also scheinbar okay. Wo aber finde ich jetzt die Werte? Ich würde die unter "Objekte" --> "modbus" erwarten, aber dort steht nichts.
Über einen Tipp wäre ich sehr dankbar!
Viele GrüßeMartin
Achja noch was: Ich habe gelesen, dass neuere Firmwareupdates wohl die modbus Verbindung verschlüsseln (github).
Meine Version ist "ARM_SAPPHIRE_H_V11_V01_B" (lokaler Zugriff --> Einstellungen --> Systemparameter) . Welche habt ihr / Updaten oder besser nicht?
-
ich nochmal:
Das größte Problem war meine Unerfahrenheit mit iobroker:
Aus der Oberfläche heraus hab ich nicht erwartet, dass man die Ordner "modbus" mit Doppelklick erweitern kann...--> Einige Werte werden schonmal erfolgreich übertragen.
Aber:
Das klappt mit maximal 9 Adressen.
Wenn ich einen 10. Wert lesen möchte kommt im Protokoll:modbus.0 2021-09-20 23:03:32.406 warn Poll error count: 8 code: {"err":"timeout","timeout":5000} modbus.0 2021-09-20 23:03:32.405 error Client in error state. modbus.0 2021-09-20 23:03:32.405 error Request timed out. modbus.0 2021-09-20 23:03:32.405 warn Error: undefined modbus.0 2021-09-20 23:03:27.401 info Connected to slave 192.168.178.20
mit den modbus "Allgemein" Parametern habe ich erfolglos etwas herumgespielt
Hat jemand Ideen, oder könnte es an meiner veralteten "Firmware ab Werk" liegen?
-
@mka15
Ich hatte das auch schon mal bei einem Kunden, ich meine es lag an einem fehlerhaften Register.
Lösch das Register 12999 mal raus (am bester davor sichern).
VG Benjamin -
@krk-solar
Das Register 12999 war bei meinen Tests gar nicht drin.Habe auch viel mit den Parametern (Data polling interval, Read interval, max read request lengths) herumprobiert. Egal welche Register ich lese: 10 Register auslesen klappt. Wenn ich 11 Register eintrage, geht es nicht mehr. Alle Werte sind auch aufsteigend geordnet (da gibts auf github einen aktuellen Issue zu).
Aktuell habe ich aus Bequemlichkeiten den iobroker unter Windows an. Macht ein Test von einem RPi aus wohl Sinn?
Hier meine vollständige Registerliste. Die vom TE hab ich etwas angepasst, damit die neue Version des Plugins die frisst und auch noch umsortiert (gibt einen aktuellen github issue dazu..):
-
der QModBusMaster liest mehr als 10 Werte.... also muss es etwas mit der ModBus Adapter Konfiguration sein...
@Atlantis @miki @quorle @ostseeskipper @freestyler @smart-iot und alle anderen die es geschafft haben:
Könnte mir wer von euch die Konfigurationseinstellungen vom Adapter verraten und vielleicht noch eure Sungrow Firmwareversion?Viele Grüße
Martin
-
Normalerweise sollte es funktionieren. In diesem Thread steht eine überarbeitete Liste für das Eingangsregister.
Meine Firmware des SH8.0RT WR ist eigentlich aktuell. Bisher läuft der Adapter einwandfrei.
Hast du den WR eine feste IP im Router gegeben?
Hast du im Adapter unter Eingangsregister die richtigen Registernummer verwendet?Hier mal meine Konfiguration:
-
@quorle danke für die Infos.
das Fehlerbild blieb auch mit den Einstellungen dasselbe.
Ich habe jetzt doch ein Firmwareupgrade gefahren. So umständliche Lösungen hab ich selten gesehen... Per App und "Lokalen admin / user Zugriff" war keine FW Datei auswählbar (obwohl vorher heruntergeladen). Im Nachbarforum "pvForum" habe ich den Tipp gelesen einen isolarcloud login als Installateur zu machen (es gibt keine Prüfung des Firmennamens bei der Registrierung). Man muss anschließend die Anlage vom normalem Benutzer aus dem Installateur zugänglich machen. Danach konnte ich per Installateur-Webinterface die Firmware aktualisieren...
Jetzt zum ursprünglichen, jetzt gelösten/umgangenem Problem:
Mit iobroker auf einem RPI4 hat es auf Anhieb funktioniert. Ich vermute, dass der Adapter unter Windows ein anderes Verhalten aufweist. Die Fehlersuche ist wohl besser bei Github als hier ausgehoben. Mache da bald mal ein Ticket auf...Grüße!
-
Hallo,
ich bin IOBroker Neuling.Seit kurzem habe ich eine PV Anlage mit einem SunGrow SH10RT WR und einem 7,7 Speicher und möchte die gerne über IO Broker darstellen.
Die Anleitung ist wirklich gut geschrieben, allerdings bekomme ich über den Modbus scheinbar keinen Zugriff auf die Adressen (Screenshots anbei).
Ich habe zum testen erstmal nur die ersten 5 Adressen hinterlegt.
Die Daten vom WR kommen per LAN Kabel; Verbindungsaufbau per TCP funktioniert.Habt ihr eine Idee, wo dran das liegen könnte?
-
Ich hätte auch mal ne Frage, ob andere User den gleichen Bug haben wie ich.
Und zwar habe ich seit Sungrow Firmware MSDP1.09/LCD1.12 das Problem, dass sporadisch über Modbus die MPPT 1/2 Spannung/Stromstärke mit 0 ausgegeben wird. Das passiert aus meiner Sicht beim globalen MPPT von irgendwo um die 200V und nur in einem kleinen Bereich.
Nun hatte ich diesen Bug auch zu Jahresbeginn an Sungrow gemeldet und wundere mich jetzt, dass er in Version MSDP1.13/LCD1.16 noch immer auftritt.
Was ich seinerzeit gleichzeitg bei mir im IOBroker geändert habe, war das lesen/schreiben der Holding Register. Nachdem ich diese Funktion dann raus genommen habe, aber das Problem bestehen blieb, war ich der Ansicht, der Fehler liegt bei Sungrow.
Nun würde ich denen ja nochmal auf's Dach steigen, wollte aber sicher sein, dass außer mir das Problem noch jemand kennt.
Ich gebe nochmal ein Beispiel:
MPPT 1 Spannung = 241V / Strom 4,7A
MPPT 2 Spannung = 237V / Strom 0A
oder
MPPT 1 Spannung = 0V / Strom 8,4A
MPPT 2 Spannung = 270V / Strom 8,4A
usw.
Die "0" wechselt an alle vier Positionen und ist auch nur ein Bug in der Ausgabe/Anzeige.
Is dann behindert, wenn man sich das mit JS in Watt umrechnet oder in eine DB / Grafik schreibt usw.
Kann da jemand was zu beitragen?
lgm -
Hi
ich hab die files mal angepasst jetz lassen sie sich auch im neuen ioBroker importieren
Grüße
Dateien sind im Exel Format
-
@Atlantis
Hi, ich habe seit ein paar Tagen auch den SH10RT und versuche leider ohne Erfolg Daten über Modbuszu empfangen. Kann mir jemand sagen, ob das nur über einen bestimmten LAN-Anschluss funktioniert. Habe nicht verstanden, warum es überhaupt zwei davon gibt (der mit "LAN" gekennzeichnete und über den WLAN-Dongle). Ich kann kabelgebunden über den WLAN-Dongle auf die Weboberfläche des WR zugreifen, mehr aber auch nicht...
Wie funktioniert die Aktivierung der LAN-Schnittstelle? -
@floeg
Ich habe inzwischen den iobroker nochmal komplett neu auf einem Raspberry 3B installiert und die Adresen über die unten stehend XLS importiert.
Leider komme ich damit immer noch kein Stück weiter- der Modbusadapter stelle eine Verbindung her (siehe Screenshot)
- das Auslesen der Adressen klappt trotzdem nicht
"2021-11-12 18:07:38.796 - info: host.ioBroker instance system.adapter.modbus.0 started with pid 760
2021-11-12 18:07:40.285 - info: modbus.0 (760) starting. Version 3.4.14 in /opt/iobroker/node_modules /iobroker.modbus, node: v12.22.7, js-controller: 3.3.18
2021-11-12 18:07:40.453 - error: modbus.0 (760) Invalid inputRegisters address: -16924
2021-11-12 18:07:40.453 - error: modbus.0 (760) Invalid inputRegisters address: -16926
... -> diese Meldung kommt für alle Register" - die Firmware meines WR müsste die aktuell sein. -> Vielleicht magt das ja nochmal jemand bei sich gegenprüfen?
- der WR hat eine feste IP
Hat jetzt noch jemand eine Idee, wie ich eine funktionierende Verbindung zu Stande bekomme?
-
@floeg
Firmware hast Du die gleiche wie ich, schrieb ich ja oben.
Allerdings arbeite ich mit einem alten Stand vom IOBroker, hatte Updates abeschaltet, aus Angst, dass durch ein Update meine viele Arbeit dann dahin ist.
Stimmt denn die Device-ID? Konnte man m.E. beim Sungrow entweder in der App oder in der Isolarcloud einstellen.
lgm -
@miki
Wenn die Device-ID der Geräteadresse in der App entspricht, dann habe ich die richtige eingeben. -
@floeg
Folgendes habe ich inzwischen noch rausgefunden.
Wenn ich in den Einstellungen von dem Modbus Adapter den Hacken bei Use Aliases setze, dann bekomme ich
die importieren Objekte angezeigt, allerdings ohne WerteWenn ich den Hacken bei Use Aliases raus nehme, dann bekomme ich kein Objekte angezeigt und die bereits oben genannten Fehlermeldungen
Das Verbindungsaufbau klappt sehe ich sowohl an den dem Adapter, alsauch auf der Webanwendung des WR
Leider bin ich ja also immer noch kein Stück weiter.
Hat noch jemand eine Idee, wo das Problem sein könnte? -
@floeg
Dein Reconnect delay ist kürzer als das Leseintervall und das Timeout.
Die Frage ist natürlich wie das Verhalten des IOBroker tatsächlich ist, aber nach der Anleitung von @Atlantis müsste das anders sein. Hast Du mal versucht die Werte von ihm zu übernehmen bzw damit zu spielen?Und was meinst Du mit "Webanwendung des WR" die Isolar-Cloud? Und hast Du mal den Weg, wo Du diese Einstellung gefunden hast?
lgm
-
@miki
Ja, ich habe es auf die Einstellungen von @Atlantis geändert. Problem bleibt das selbe.Was mich etwas stutzig macht:
Wenn ich über den QModMaster die Daten abgreifen will, und ich die gleichen Einstellungen wie @mka15 am 19.09 bzw 24.09 oder @Atlantis vom 18.11.2020 nehme, bekomme ich die bereits beschriebene Fehlermeldung "Read data failed. Error: Lllegal data adress".
Wenn ich aber den Function Code auf "Read Holding Registers (0x03)" ändere, dann bekomme ich die Holding Werte angezeigt.
Das auslesen der Holding Register scheint also zu funktionieren, das Lesen der Eingangsregister aber nicht.Kann jemand was mit dieser Fehlermeldung anfangen?
Die Geräteadresse habe ich sowohl in der isolarcloud, als auch in der App gefunden.
Isolarcloud:- Auswahl der PV Anlage
- Geräteinformation
- Klick auf den WR
- Bei dem Reiter "Allgemeine Information"en) ganz unten steht bei den Geräteinformationen die Geräteadresse.
In der App:
- Auswahl der Anlage
- oben im Menü auf Gerät drücken
- den WR auswählen
- unten stehen dann die Geräteinformationen incl. Geräteadresse.