NEWS
Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden
-
Mal die IP Adresse vom wechselrichter im Browser eintippen und dann per admin anmelden. Passwort sollte in den Unterlagen stehen, dann unter System und weitergabekonfiguration Modus aktivieren.
-
Das ist/war an:
Weiß jemand was das für ne Fehlermeldung im Log ist?
"ReadInputRegisters: Invalid FC 132" -
Interessant.. ich hab n Gläschen Wein getrunken, nichts verändert und nun siehts so aus:
und gleich danach wieder nicht mehr verbunden:
2024-12-13 23:14:54.608 - info: modbus.0 (1839) Connected to slave 192.168.178.74 2024-12-13 23:14:54.608 - debug: modbus.0 (1839) [DevID_1] Poll start --------------------- 2024-12-13 23:14:54.608 - debug: modbus.0 (1839) [DevID_1/inputRegs] Poll address 4999 - 22 registers 2024-12-13 23:14:59.609 - warn: modbus.0 (1839) Error: undefined 2024-12-13 23:14:59.609 - error: modbus.0 (1839) Request timed out. 2024-12-13 23:14:59.609 - error: modbus.0 (1839) Client in error state. 2024-12-13 23:14:59.609 - warn: modbus.0 (1839) [DevID_1] Poll error count: 4 code: {"err":"timeout","timeout":5000} 2024-12-13 23:14:59.610 - debug: modbus.0 (1839) Socket closed with error 2024-12-13 23:14:59.610 - debug: modbus.0 (1839) Clearing timeout of the current request. 2024-12-13 23:14:59.610 - debug: modbus.0 (1839) Cleaning up request fifo. 2024-12-13 23:15:00.610 - debug: modbus.0 (1839) Closing client on purpose. 2024-12-13 23:15:00.610 - info: modbus.0 (1839) Disconnected from slave 192.168.178.74 2024-12-13 23:16:00.614 - info: modbus.0 (1839) Connected to slave 192.168.178.74 2024-12-13 23:16:00.614 - debug: modbus.0 (1839) [DevID_1] Poll start --------------------- 2024-12-13 23:16:00.614 - debug: modbus.0 (1839) [DevID_1/inputRegs] Poll address 4999 - 22 registers 2024-12-13 23:16:05.615 - warn: modbus.0 (1839) Error: undefined 2024-12-13 23:16:05.615 - error: modbus.0 (1839) Request timed out. 2024-12-13 23:16:05.615 - error: modbus.0 (1839) Client in error state. 2024-12-13 23:16:05.615 - warn: modbus.0 (1839) [DevID_1] Poll error count: 5 code: {"err":"timeout","timeout":5000} 2024-12-13 23:16:05.616 - debug: modbus.0 (1839) Socket closed with error 2024-12-13 23:16:05.616 - debug: modbus.0 (1839) Clearing timeout of the current request. 2024-12-13 23:16:05.616 - debug: modbus.0 (1839) Cleaning up request fifo. 2024-12-13 23:16:06.616 - debug: modbus.0 (1839) Closing client on purpose. 2024-12-13 23:16:06.616 - info: modbus.0 (1839) Disconnected from slave 192.168.178.74 2024-12-13 23:16:07.424 - info: influxdb.0 (418) enabled logging of modbus.0.inputRegisters.1.5600_Gesamtleistung_DTSU666, Alias=false 2024-12-13 23:17:06.620 - info: modbus.0 (1839) Connected to slave 192.168.178.74 2024-12-13 23:17:06.620 - debug: modbus.0 (1839) [DevID_1] Poll start --------------------- 2024-12-13 23:17:06.620 - debug: modbus.0 (1839) [DevID_1/inputRegs] Poll address 4999 - 22 registers 2024-12-13 23:17:11.621 - warn: modbus.0 (1839) Error: undefined 2024-12-13 23:17:11.621 - error: modbus.0 (1839) Request timed out. 2024-12-13 23:17:11.621 - error: modbus.0 (1839) Client in error state. 2024-12-13 23:17:11.622 - warn: modbus.0 (1839) [DevID_1] Poll error count: 6 code: {"err":"timeout","timeout":5000} 2024-12-13 23:17:11.622 - debug: modbus.0 (1839) Socket closed with error 2024-12-13 23:17:11.622 - debug: modbus.0 (1839) Clearing timeout of the current request. 2024-12-13 23:17:11.622 - debug: modbus.0 (1839) Cleaning up request fifo. 2024-12-13 23:17:12.622 - debug: modbus.0 (1839) Closing client on purpose. 2024-12-13 23:17:12.622 - info: modbus.0 (1839) Disconnected from slave 192.168.178.74
-
Mal ganz blöd gefragt, hat denn jemand erfolgreich einen WR vom gleichen Typ wie @Schneider ihn hat, eingebunden? Und falls ja, mit welchen Registern?
Die Fehlermeldung "Invalid FC 132" klingt für mich nach einer ungültigen Registeradresse.
Ich würde jetzt alle Register rausschmeißen, und nur ein einziges drin lassen - dann schauen ob es geht. Falls ja, nach und nach die gewünschten Register hinzufügen. Die Registeradressen sind zwischen den verschiedenen WR nicht unbedingt identisch. Es gibt da auch (unvollständige) Dokumentation von Sungrow dazu.
-
Hast Du mal das Abfrageintervall verlängert? Eine Sekunde ist ziemlich stramm für den WR. Ich hab da zum Beispiel drei Sekunden drin stehen.
-
Danke für die Tipps. ICh glaube so gehts.
Ich habe jetzt nur die drin gelassen, die eben einen Wert gebracht haben, sowie das Abfrageintervall auf 3s.Jetzt werden die Werte auch aktualisiert. Super cool. Danke für die Unterstützung!
Ergänzend:
_address deviceId name description unit type len factor offset formula role room cw isScale 4999 1 Device type code Geräte Typ-Code int8be 1 1 0 value false false 5000 1 Nominal Output Power Installierte Leistung Kw uint16be 1 0.1 0 value false false 5002 1 Daily Output Energy Eigene Energienutzung heute (PV & Akku) Kwh uint16be 1 0.1 0 value false false 5003 1 Total Output Energy Eigene Energienutzung gesamt (PV & Akku) Kwh uint32sw 2 0.1 0 value false false 5007 1 Inside Temperature Temperatur im Wechselrichter °C int16be 1 0.1 0 value false false 5010 1 MPPT 1 Voltage MPPT1 Spannung V uint16be 1 0.1 0 value false false 5011 1 MPPT 1 Current MPPT1 Strom A uint16be 1 0.1 0 value false false 5012 1 MPPT 2 Voltage MPPT2 Spannung V uint16be 1 0.1 0 value false false 5013 1 MPPT 2 Current MPPT2 Strom A uint16be 1 0.1 0 value false false 5016 1 Total DC Power PV-Leistung aktuell W uint32sw 2 1 0 value false false 5018 1 Spannung Ph A Spannung Phase A V uint16be 1 0.1 0 value false false 5019 1 Spannung Ph B Spannung Phase B V uint16be 1 0.1 0 value false false 5020 1 Spannung Ph C Spannung Phase C V uint16be 1 0.1 0 value false false 5032 1 Reactive Power Blindleistung VA® int32sw 2 0 value false false 5034 1 Power Factor Leistungsfaktor int16be 1 0.001 0 value false false 5035 1 Grid Frequency Netzfrequenz Hz uint16be 1 0.1 0 value false false 5600 1 Gesamtleistung DTSU666 Leistung W int32sw 2 1 0 value false false 5602 1 L1 Leistung DTSU666 Leistung L1 W int32sw 2 1 0 value false false 5604 1 L2 Leistung DTSU666 Leistung L2 W int32sw 2 1 0 value false false 5606 1 L3 Leistung DTSU666 Leistung L3 W int32sw 2 1 0 value false false
-
@berlinerbolle
Solange er die Register nicht korrigiert, wird das nichts werden.Die Aufrufbarkeit des Wechselrichters kann er mit eine Modbus-Client, die es frei zu laden gibt, testen. Ich verwende dafür "VagaModbus Analyzer", er ist simpel und intuitiv zu bedienen
Das hat sich mit dem vorigen Post überschnitten - jetzt scheint es ja zu funktionieren.
-
Ja, mit einigen Werten aus github gehts - leider nicht alle.
Und die Batterie geht auch nicht.
-
Okay.. die ID ist nicht die 200, sondern die 2.
Ist im WiNet-S2 auch toll beschrieben mit Modus-ID (statt Modbus-ID):
-
Ja, das meinte ich weiter oben - es muss nicht unbedingt die 200 sein (bei mir war es die 200, deshalb auch so auf GitHub hinterlegt).
Aber top dass es jetzt läuft!
-
@schneider sagte in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
die ID ist nicht die 200, sondern die 2.
und daher kam der FC132
daher auch meine Nachfrage
@homoran sagte in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:EDIT:
Wo komnt jetzt die Geräte ID 200 und doppelt so hohe Register her?Ein einziger Fehleintrag lähmt den ganzen Bus
Man fängt daher immer nur mit einer Adresse/Gerät an zu testen.
Dann Stück für Stück erweitern. -
Hallo zusammen,
ich hab einen SH10RT und einen SG7.0 Wechselrichter im Retrofit-Modus.
Die Darstellung des Hausverbrauches will bei mir einfach nicht passen...
Über Modbus lese ich die AC Wirkleistung von beiden Wechselrichtern aus (#5030) und addiere diese zzgl. 140W, allerdings ist es nicht der korrekte Wert für den in der App dargestellten Wert. Natürlich sind die Werte in der App etwas zeitversetzt, aber bei mir ist die zeitliche Abweichung gering. Jemand eine Idee was ich hier falsch mache? -
Hallo!
Ich habe die Problematik, dass die Werte für die Batterieladeleistung überhaupt nicht mehr passen.
Ich kann euch nicht mal genau sagen seit wann der Fehler da ist....
Im register 13021 stehen immer Werte (also falls der Ladevorgang aktiv ist) um die 64.000 (tausend) drin. Im Register 13020 für die Ampere sind ebenfalls nur 64.000er Werte vorhanden, allerdings ist ja hier in der Grundkonfig bereits ein Faktor 0.1 hinterlegt. Daher denke ich das das Grundproblem aus den 13020 herkommt und er intern die Ladeleistung aus 13019 und 13020 berechnet. Ich habe die Einstellungen konntrolliert aber die sind immer noch die gleichen wie bei allen Eingangsregistertabellen die ich hier im Forum finden konnte. Type "Unsigned 16bit (Big Endian)
Oder hat sich das irgendwie geändert?
Im Sungrow gab es keine Umstellung die ich nicht mitbekommen habe?VG!
-
Im Sungrow gab es keine Umstellung die ich nicht mitbekommen habe?
Könnte sein das Sungrow da an der Firmware gedreht hat.
Bei mir passen die Modbus-Register (noch).Aber bei evcc findet sich dazu auch schon was in der Richtung:
https://github.com/evcc-io/evcc/issues/18270
Möglicherweise hilft das ja weiter. -
@wolfi913 Danke, ich habe mir das mal kurz überflogen. tatsächlich gab es wohl eine neue Firmware. Ich schau mal ob ich die schon bekommen habe .... Grüße!
-
Tatsächlich gab es ein Update....na super.
Nachdem ich mich nun ewig nicht damit beschäftigt habe und auch glücklicherweise nicht musste, habe ich ich natürlich jetzt ganz schön Nachholbedarf.Bei meiner Einrichtung damals waren die Register für Batterie und Smartmeter noch gar kein Thema.
Jetzt wo ich schon mal bei bin möchte ich die ebenfalls einpflegen, aber....
Ich such wie doof aber in den derzeit angebotenen Dateien finden sich die Register aber nicht.
Kann mir jemand bitte die Dateien geben wo drin ich die Angaben zu den verfügbaren Registern für Batterie und Smartmeter finde? ich würde dann die Dateien zusammenführen und hier wieder rein posten, dann hat es der nächste vielleicht etwas leichter.Ich ärgere mich etwas darüber den Post mit den Angaben nicht gespeichert zu haben, aber ich hoffe wir finden den gemeinsam wieder....
EDIT:
wer suchet der findet..... was man nicht im Kopf hat.......
https://github.com/c0ldtech/sungrow/blob/main/sungrow_input_registers_multiple_IDs.tsv -
@DRUROB
Mein Input Register vom SH8 RT_address name description unit type len factor offset formula role room cw isScale 4999 Device type code Geräte Typ-Code int8be 1 1 0 value false false 5000 Nominal Output Power Installierte Leistung Kw uint16be 1 0.1 0 value false false 5001 Output Type uint16be 1 1.0 0 value false false 5002 Daily Output Energy Eigene Energienutzung heute (PV & Akku) Kwh uint16be 1 0.1 0 value false false 5003 Total Output Energy Eigene Energienutzung gesamt (PV & Akku) Kwh uint32sw 2 0.1 0 value false false 5005 Total Runing Time Laufzeit der Anlage h uint32sw 2 1.0 0 value false false 5007 Inside Temperature Temperatur im Wechselrichter °C int16be 1 0.1 0 value false false 5010 MPPT 1 Voltage MPPT1 Spannung V uint16be 1 0.1 0 value false false 5011 MPPT 1 Current MPPT1 Strom A uint16be 1 0.1 0 value false false 5012 MPPT 2 Voltage MPPT2 Spannung V uint16be 1 0.1 0 value false false 5013 MPPT 2 Current MPPT2 Strom A uint16be 1 0.1 0 value false false 5016 Total DC Power Aktuell PV-Leistung DC W uint32sw 2 1 0 value false false 5018 Spannung Ph A Spannung Phase L1 V uint16be 1 0.1 0 value false false 5019 Spannung Ph B Spannung Phase L2 V uint16be 1 0.1 0 value false false 5020 Spannung Ph C Spannung Phase L3 V uint16be 1 0.1 0 value false false 5030 Total Active Power Wirkleistung W int32sw 2 1.0 0 value false false 5032 Reactive Power Blindleistung VA® int32sw 2 0 value false false 5034 Power Factor Leistungsfaktor int16be 1 0.001 0 value false false 5035 Grid Frequency Netzfrequenz Hz uint16be 1 0.01 0 value false false 12999 System State Systemstatus uint16be 1 1 0 value false false 13000 Running State Betriebsstatus uint16be 1 1 0 value false false 13001 Daily PV Generation PV-Stromerzeugung heute Kwh uint16be 1 0.1 0 value false false 13002 Total PV Generation PV-Stromerzeugung gesamt Kwh uint32sw 2 0.1 0 value false false 13004 Daily export energy from PV PV-Einspeise Energie heute Kwh uint16be 1 0.1 0 value false false 13005 Total export energy from PV PV-Einspeise Energie gesamt Kwh uint32sw 2 0.1 0 value false false 13007 Load power Aktuelle Last W uint32sw 2 1 0 value false false 13009 Export power Aktuelle Leistung am Übergabepunkt W int32sw 2 1 0 value false false 13011 Daily battery charge energy from PV Energie in Speicher aus PV heute Kwh uint16be 1 0.1 0 value false false 13012 Total battery charge energy from PV Energie in Speicher aus PV gesamt Kwh uint32sw 2 0.1 0 value false false 13014 C02 Reduction C02 Einsparung kg uint32sw 2 0.1 0 value false false 13016 Daily direct Energy Consumption Direkter Eigenverbrauch aus PV heute Kwh uint16be 1 0.1 0 value false false 13017 Total direct Energy Consumption Direkter Eigenverbrauch aus PV gesamt Kwh uint32sw 2 0.1 0 value false false 13019 Battery voltage Batteriespannung V uint16be 1 0.1 0 value false false 13020 Battery current Batteriestrom A uint16be 1 0.1 0 value false false 13021 Battery power Batterieent-Ladeleistung W uint16be 1 1 0 value false false 13022 Battery level Batteriekapazität % uint16be 1 0.1 0 value false false 13023 Battery state of health Gesundheit der Batterie % uint16be 1 0.1 0 value false false 13024 Battery Temperature Batterietemperatur °C int16be 1 0.1 0 value false false 13025 Daily battery discharge Energy Tägliche Entladungsenergie der Batterie Kwh uint16be 1 0.1 0 value false false 13026 Total battery discharge Energy Gesamte Entladungsenergie der Batterie Kwh uint32sw 2 0.1 1 value false false 13028 Self-consumption of today Heutiger Anteil des Eigenverbrauches % uint16be 1 0.1 0 value false false 13029 Grid state Netzstatus uint16be 1 0.1 0 value false false 13030 Phase A current Strom Phase L1 aktuell A uint16be 1 0.1 0 value false false 13031 Phase B current Strom Phase L2 aktuell A uint16be 1 0.1 0 value false false 13032 Phase C current Strom Phase L3 aktuell A uint16be 1 0.1 0 value false false 13033 Total active power Aktuell PV-Leistung AC W int32sw 2 1 0 value false false 13035 Daily Import Energy Energie Bezug heute Kwh uint16be 1 0.1 0 value false false 13036 Total Import Energy Energie Bezug gesamt Kwh uint16be 1 0.1 0 value false false 13038 Battery Capacity Batterie-Kapazität Kwh uint16be 1 0.1 0 value false false 13039 Daily Charge Energy Batterie-Ladeenergie heute Kwh uint16be 1 0.1 0 value false false 13040 Total Charge Energy Batterie-Ladeenergie gesamt Kwh uint32sw 2 0.1 0 value false false 13044 Daily export energy Energie Netzeinspeisung heute Kwh uint16be 1 0.1 0 value false false 13045 Total export energy Energie Netzeinspeisung gesamt Kwh uint32sw 2 0.1 0 value false false 13049 Inverter alarm Inverter alarm uint32sw 2 1 0 value false false 13051 Grid-side fault Netzfehler uint32sw 2 1 0 value false false 13053 System fault 1 System Fehler 1 uint32sw 2 1 0 value false false 13055 System fault 2 System Fehler 2 uint32sw 2 1 0 value false false 13057 DC-side fault Fehler DC-Seitig uint32sw 2 1 0 value false false 13059 Permanent fault Permanenter Fehler uint32sw 2 1 0 value false false 13061 BDC-side fault BDC-side fault uint32sw 2 1 0 value false false 13063 BDC-side permanent fault BDC-side permanent fault uint32sw 2 1 0 value false false 13065 Battery fault Batterie Fehler uint32sw 2 1 0 value false false 13067 Battery alarm Battery Alarm uint32sw 2 1 0 value false false 13069 BMS alarm BMS Alarm uint32sw 2 1 0 value false false 13071 BMS protection BMS Sicherung uint32sw 2 1 0 value false false 13073 BMS fault 1 BMS Fehler 1 uint32sw 2 1 0 value false false 13075 BMS fault 2 BMS Fehler 2 uint32sw 2 1 0 value false false 13077 BMS alarm 2 BMS Alarm 2 uint32sw 2 1 0 value false false
-
@mcbeath Hi! Danke dir aber das sind die Register die ich ja schon hatte.
Neu ist ja die Variante mit dem Auslesen der DTSU Werte und der Batterie.
Kannst ja mal den Link in meinem Post folgen, vielleicht ist das ja was für dich -
Falls es weiterhilft.
Hab das hierzu noch gefunden:
https://github.com/mkaiser/Sungrow-SHx-Inverter-Modbus-Home-AssistantDort wurde für die Register 13020 und 13021 von
uint16
aufint16
umgestellt (sofern ich das richtig erkannt habe).- name: Battery current unique_id: sg_battery_current device_address: !secret sungrow_modbus_slave address: 13020 # reg 13021 input_type: input data_type: int16 precision: 1 unit_of_measurement: A state_class: measurement device_class: Current scale: 0.1 scan_interval: 10 # old firmware ( before october 2024): always positive battery power # use binary_sensor.battery_charging | discharging to retrieve the direction of the energy flow # new firmware: positive if charging and negative if discharging # with new firmware installed we could use this raw value directly as signed battery power # to support both firmwares we use the template sensor "signed battery power" - name: Battery power raw unique_id: sg_battery_power_raw device_address: !secret sungrow_modbus_slave address: 13021 # reg 13022 input_type: input data_type: int16 #updated to signed int, see issue #406 precision: 0 unit_of_measurement: W device_class: power state_class: measurement scale: 1 scan_interval: 10
Falls das klappt wird Register 13021 dann mit +/- geliefert. Dann müsste, wenn mit Script weiterverarbeitet wird, auf
bzw.// Modbus 13021_Battery_power battery = Math.abs(getState('modbus.0.inputRegisters.13021_Battery_power_').val);
umgestellt werden (um evtl. Vorzeichen wieder zu entfernen), sofern die Lade-/Entladeleistung über den RunningState ermittelt wird.
-
@wolfi913 Klasse Erklärung! Danke dir. Genau das hatte ich heute bei meiner Recherche auch vermutet und mit den int / uint Werten rumgespielt. Zack war es wieder korrekt. Das ist echt ne doofe Umstellung, ich werde mal eine Änderung bei github beim Ersteller der Liste anmerken, dann tappt der nächste nicht auch in diese "Falle".
Klasse Forumsleute hier! Riesen Dank an alle!