NEWS
Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden
-
@c1500
Hi,
ich habe aktuell sowas am Laufen.
Es ist und war ein riesen Krampf die Dinger ans Netzwerk zu bekommen und die IPs zuweisen zu können.
Aber das habe ich nun geschafft. Ich habe einen SH10RT und einen SG6.0RT.
Die scheinen mit dem Smartmeter per RS485 zu reden. Ich habe aber keinen Durchblick wie und was da wo passiert. Ist alles sehr undurchsichtig. Wie WiNet WLAN-Adaper die dabei sind sprechen jedenfalls Modbus. Das steht fest. Ich habe zwei Modbos-Adapter installier und spreche die WR separat über ihre IP an. Mit Slave-IDs ist nichts zu holen. Ich habe auch beim SG6 keine Option die Geräteadresse zu ändern. Und die geänderte ID des SH (von 1 auf 100) hat keinen effekt. Im IOBroker-Adapter sprechen beide WR mit ID 1 auf ihrer IP des Kabels im WLAN-Adapter (klingt komisch, ist aber so) mit mir.
Ich habe nun einige Werte. Die Smartmeter-Werte (Strom vom EVU z.B.) kommen über den SH10RT.
Die Konfiguration war derart von Try & Error geprägt, so dass ich keine Anleitung zu schreiben vermag. Bei Problemen, schreib mich gerne an - ich versuche da zu helfen wo es geht...Gruß
David
-
@cobra68
Mit Fritzbox kenne ich mich nicht aus.
Scheinen ja etwas eigen zu sein wie ich auch aus dem PV Forum entnehmen kann.
Mehr als das was ich hier zeigte und ich eingestellt habe geht nicht.Edit: probier doch erst mal nur 1 Inputregister aus.
-
@ostseeskipper
Hi, wäre es möglich das du mir die Datei vom Inputregister zukommen lässt?
Verbindet sich der ModBus auch ohne Inputregister? -
@cobra68
Inputregister du brauchst doch nur Datei ganz oben aus dem Thread zu nehmen oder nach "Sungrow Communication Protocol of Residential Hybrid Inverter" zu googlen, dann findest du was du brauchst. Die Zahlen aus dem Protokoll immer -1 nehmen. -
@cobra68
Versuch mal als Eingangsregister nur einen einzigen Wert einzutragen. Das hat bei mir das debuggen deutlich verkürzt, da sich heraus gestellt hat dass mein WR doch ein paar andere Adressen für manche Werte hat und bei Zugriffsfehler die Verbindung wieder abgebaut wird.folgendes Eingangsregister sollten aber alle WR haben:
_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
Gruß
David
-
@davipet
Hi, danke für die Hilfe die Verbindung ist jetzt da
Habe versucht einen Eigangsregister (PV-Stromerzeugung heute) anzulegen, bekomme leider keinen Wert
Habe ich da etwas falsches eingegeben?
Gruß
Cobra68 -
Hi, habe gerade selber gesehen das ich level eingestellt habe anstatt value,
aber die Einstellung hat auch nicht geholfen
-
@cobra68
Zeig mal bitte im modbus adapter wie du das Eingangsregister liest.
Hast du vielleicht den Datentyp falsch eingestellt? Sollte ein "unsigned 16bit (Big Endian)" sein. Länge: 1ByteIch musste leider heute Morgen feststellen, dass mein SG6.0RT keine Modbus-Verbindung mehr macht. Nach ~55std Fehlerfreiem Betrieb. Wasn dat nu wieder?!? gml
-
@davipet
Hi, hoffe das du dein Problem lösen konntest,
anbei screenshot vom EingangsregisterGruß
cobra68 -
@cobra68
hmm, kann da auch keinen Fehler sehen.
Bei mir sieht das so aus:Ich hatte auch Probleme mit Adressen ab 12999 und habe erstmal nur die vorderen eingetragen. Damit war alles OK.
Dann habe ich die längeren Adressen eingetragen und plötzlich hat er auch die gefressen.Hast du einen SGHXX Wechselrichter?
Hier noch meine Eingangsregister als txt. Vielleicht kannst du damit etwas anfangen:
Gruß
David
EDIT: Ich habe übrigens den Haken bei "Mehrere Geräte-IDs" nicht drin. Hab für den zweiten WR eine eigene Modbus Instanz laufen.
-
Hallo Zusammen,
ich habe einen Sungrow SG15KTL-M Wechselrichter mit dem E-Net Kommunikationsmodul.
Jetzt habe ich im QModMaster die IP des Kommunikationsmodul eingegeben und bekomme im Bus Monitor auch ein OK für die Verbindung.
Allerdings kommen dann keine Daten.
Habt Ihr eine Idee warum? -
@blessi
Der SG15KTL hat andere Registeradressen als der SH10RT -
Ich betreibe 2 SH10RT im Parallelmodus und habe beide erfolgreich mit Modbus eingebunden mit den hier veröffentlichten Modbus-Adressen - allerdings in fhem.
Jedoch habe ich eine Merkwürdigkeit, von der ich gerne wüsste, ob das Problem bei ioBroker auch besteht:
Der Wert für Eigenverbrauch ist doch Regsiter 13017 (Abfrage auf 13016 mit Datentyp U16) "Daily Direct Energy Consumption", korrekt?
Meine erste Frage: Welcher Wert in der iSolarCloud App unter "Gerät / SH10RT / Allgemeine Informationen" enstpricht diesem Registerwert? Ist das "Täglicher Energieverbrauch der Last" ganz unten im Abschnitt "Informationen über Verbraucher"?
Falls ja: Bei mir wird in der App beim Master SH10RT ein negativer Wert -35.1 angezeigt. Wie geht das mit Datentyp unsigned int 16?
Ich bekomme vermutlich daher auch deshalb in fhem über Modbus in diesem Register "0.1" beim Master angezeigt. Beim Slave stimmen App und Modbus in Fhem überein: Da standen "50.3" in der App als auch in fhem laut Modbus. Der korrekte Eigenverbrauch laut App war 15.2. Das passt dann auch mit Addition der Werte von Master und Slave in der App (-35.1+50.3=15.2).
Haben Nutzer von ioBroker mit 2x SH10RT im Parallelmodus auch das Problem? Wenn nein, welchen Datentyp nutzt ioBroker für Regsiter 13017 (Abfrage auf 13016 mit Datentyp U16) "Daily Direct Energy Consumption"?!
Laut Modbus Protokoll von Sugnrow sollte das U16 sein, aber wie kann dann der Wert laut iSolarCloud negativ sein (s. Screenshot)?
Last.JPG -
@ostseeskipper Vielen Dank, das probiere ich einmal am Wochenende aus. LG
@ostseeskipper said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Da schon mehrere danach gefragt hatten.
Ob der Speicher geladen oder entladen wird sieht man nicht direkt.
Dafür muss das RunningState Register #13000 (bereits 1 abgezogen) ausgwertet werden. -
@ostseeskipper Danke für die Anleitung zur Auswertung des Running State, hab sie genau befolgt, aber bei mir bleiben leider alle Werte false.
Hat jemand eine Idee, woran es scheitern könnte? -
@jh410 said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
@ostseeskipper Danke für die Anleitung zur Auswertung des Running State, hab sie genau befolgt, aber bei mir bleiben leider alle Werte false.
Hat jemand eine Idee, woran es scheitern könnte?Das JS Script hast du aber am laufen? oder gibts da Fehler?
EDIT: Eventuell musst du die rote 1 in
const idVar = 'modbus.0.inputRegisters. 1. 13000_Running_State'
raus nehmen wenn du nicht wie ich mehrer Geräte ID in der Modbusinstanz verwendest. -
Bei mir bleiben auch alle JS Datenpunkte 'false'
Im Script wird ja auf Wertänderung des RunningState Datenpunktes geschaut - da ändert sich bei mir nie etwas. Ist immer 0 -
@davipet
Wenn sich running state nie ändert ist das das problem.
Dann forsche mal nach warum da 0 ist. Andere Werte über Modbus bekommst du? -
@ostseeskipper
Ja, sonst kommt über Modbus alles was ich so brauche.
Ich habe noch einen SG6.0RT - an dem ist der working state auch immer 0So sieht mein Eintrag aus:
13000 1 Running State Betriebsstatus uint16be 1 1 0 value false falseHabe auch schon anderer Datentypen versucht. Kein Status
Kann sich da was mit einer Firmware geändert haben? Ich habe bei Sungrow selber bisher leider keine detaillierte Beschreibung der Modbus-Schnittstelle gefunden.
Hier mal meine Firmwarestände:
Gruß
David
-
@ostseeskipper Danke noch für die Antwort, das Problem hatte sich schon gelöst, die Ursache war ein Fehler im Modbusregister (Wert war auch dauerhaft 0). Da war ich selbst schuld, wenn ich das Protokoll nicht richtig lese.. Und tatsächlich musste ich auch die 1 raus nehmen, hab bisher nur die eine Instanz drin.
Ich habe mir dann noch ein kleines Blockly fertig gemacht, was mir die Objekte Batterieladung, -entladung, Einspeisung und Netzbezug schreibt, sodass ich das ganze schön in Grafana darstellen kann. VIS hab ich mir bisher noch nicht genauer angeschaut, aber das sollte dann so ja auch ohne Bedingungen gehen.@Davipet Starte mal deine Modbus-Instanz neu und schau, was das Protokoll bei dir sagt. Ggf. auch einfach mal das Running State Input Register neu anlegen. Deine anderen Werte werden ja vermutlich korrekt ausgelesen?
Die Informationen hier sind auch detaillierter als die von Sungrow selbst.Noch haben wir hinter dem neuen Zählerschrank den alten Zähler im alten Zählerschrank, durch die dann der selbst erzeugte Strom geht, sodass wir aktuell für unseren selbst erzeugten Storm zahlen Der SH10RT läuft nur schon mal, damit ich mir die ganze Modbus Geschichte schon mal einrichten kann. Die Tage kommt dann hoffentlich der neue Zähler in den neuen Zählerschrank, der alte Zähler wird überbrückt und dann wird auch der SG20RT in Betrieb genommen.
Dann muss ich mal schauen, wie ich die Modbus-Verbindung zum SG20RT über das WiNet-S-Modul kriege und wie ich das (zumindest im Sommer) so hinkriege, dass der Speicher nur DC-seitig mit dem SH10RT geladen wird.
Das dürfte mit dem entsprechenden Auswerten der Modbus-Werte und einer Beschränkung der Ladeleistung gehen, oder?