Sungrow SH20T auslesen

Hi, ich habe seit Mai einen Sungrow SH20T mit SBH160 Speicher am Laufen.

Mitgeliefert wurde ein Dongle (Sungrow WINet-S2), der gleichzeitig WLAN und LAN macht.

Leider erhalte ich über Modbus TCP nur sehr wenige Werte.

Meine Recherche hat folgendes ergeben:

  • Bei der vorherigen Reihe (SHXXRT) gab es direkt am Wechselrichter noch einen weiteren LAN-Anschluss, der alle Werte per Modbus TCP geliefert hat.
  • Diesen Anschluss gibt es bei meinem Modell nicht mehr
  • Das Modbus-Mapping auf dem WINet-S2 passt noch nicht und deshalb kommen nicht alle Werte
  • Das Mapping soll wohl noch verbessert werden - steht auf einer Liste bei Sungrow ohne ETA

Ich möchte mich eigentlich nicht darauf verlassen, dass der Hersteller hier noch nachliefert.

Einige User berichten von Erfolgen über einen WAVESHARE RS485 to TCP-Adapter, der über den COM2 des Wechselrichters die Daten dann bereitstellt.

Dazu wird er mit dem Logger-Anschluss des WR A1+B1 verbunden und zusätzlich via Netzwerk.

Meine Fragen dazu:

  • Hat das schon einmal so realisiert und kann mir dazu genauere Informationen liefern?
  • Wie funktioniert das mit dem Adapter im Detail? Frage ich dann einfach statt den WR direkt wie momentan über ModbusTCP den Waveshare-Server ab? Die Register bleiben dabei gleich?

Vielen Dank für euren Input.

Viele Grüße

Johannes

Ohne den Sungrow zu kennen und ganz allgemein, Modbus RTU funktioniert an vielen Geräten zuverlässiger als Modbus TCP.

Für Modbus RTU (über RS485) musst du zwei Kontakte ausfindig machen, gut möglich dass diese auf einem seriellen Anschluss stecken.

Dein Waveshare-Teil ist sicher eine Möglichkeit (kenne ich nicht), ganz gut funktionieren aber auch EE11 welcher beim günstigen Chinesen erhältlich ist.

Also schau mal in den technischen Beschreibung wo du Modbus RTU anzapfst und versuch es am besten. Die Register sind in der Regel identisch, ob Modbus RTU oder Modbus TCP.

Hallo Johannes, ich habe hier das selbe Problem mit einem SH15T.

Aus ein paar Registern bekomme ich Werte zurück, aber die meisten bleiben auf 0. Ich habe deswegen heute bei Sungrow ein Ticket erstellt.

Hattest du das auch schon gemacht und darüber die Info bekommen, dass es am Mapping des WINet-S2 liegt? In anderen Foren habe ich eigentlich gelesen, dass es damit auch gehen soll. War dann aber immer ein SH10RT o.ä.

Bekommst du bei dir auch nur Werte, wenn du die ModBus-ID 2 verwendest, welche ja eigentlich zur Batterie gehört?

Grüße André

Hi,

@mb-stern
Danke für deinen Input. Ich habe mir daraufhin das Teil einfach mal bestellt (siehe unten) :wink:
Ich habe hier noch diese Registerbeschreibung gefunden:

Weiß jemand wie ich diese Werte interepretieren kann? z.B. Wechselrichter System State hat bei mir gerade 33280.

Laut Handbuch Appendix System-State:

Kann ich den Register value irgendwie umrechnen? Ist ja UINT16 aber ich stehe da gerade auf dem Schlauch.

@bambam

Ich war eigentlich schon der Meinung, dass die Aussage gesichert war, dass da momentan am WINTE-S2 etwas mit den Registern nicht passt aber 100% ist das natürlich nicht.

Ich hatte an den Standardeinstellungen nichts geändert.

Ich habe jetzt gestern noch den Waveshare-Adapter bestellt und an den COM2 auf Pin 15/16 auf eine Leitung verdrahtet. Heute habe ich dass ganze dann direkt an den Waveshare verkabelt A1-485A und B1-485B.

Das Gerät hat eine fixe IP (192.168.200.1). Ich habe das auf DHCP mit fixem lease geändert und dann wie folgt konfiguriert:

Ob man die IP Destination IP/DNS braucht, weiß ich nicht. Es ist auf jeden Fall die IP meines Symcon Testsystems.

Anschließend habe ich in Symcon ein Modbus GW angelegt:

Anschließend dann das Modbus Device:

Über „Vorlage importieren“ habe ich zum testen die json Hybrid Wechselrichter Sungrow SH10RT und Speicher Einbindung in IPS - #18 von APieroth importiert.


Ich bekomme jetzt deutlich mehr Werte - aber einige fehlen noch. Muss ich noch definieren. Kann danach gerne einen Export erstellen.

Falls du register abfragen willst, musst du immer eins vom register im Handbuch abziehen.
Ich bin da zumindest drüber gestolpert.

Sorry, dass ich dir mit dem WINET-S2 nicht weiterhelfen kann aber für mich hat sich der Invest gelohnt. Ich muss nicht mehr länger rumbasteln und rumgooglen :wink:

VG

Hey @dharmainitiative das sieht doch schon richtig gut aus was du da an Werten bekommst!

Schick mir gerne mal einen Export vom jetzigen Stand und ich schaue mal, ob ich damit auch so viele Werte zurück bekomme🤗 @mb-stern meinte ja, dass die Register bei RTU und TCP i.d.R. die selben sein müssten.

Viele Grüße André

Hi, für mich ist das Thema echt neu, deshalb kann ich zu den registern wenig sagen aber in der Anleitung stand das

Ich hatte mich zudem gewundert, dass die Adressen in der Vorlage immer um eins versetzt waren und dann hat das für mich erstmal Sinn ergeben :smiley:

Hier noch der Export:
modbus.json (32,4 KB)

Grüße

Edit: Jetzt weiß ich was du meinst. Ja die Register sind ja die von einem „alten“ SHXXRT" also es sind die gleichen aber scheinbar immer um eins verschoben.

Was ich leider immer noch nicht weiß ist, wie ich mit den Registern und den values in Symcon umgehen soll, d.h. wie die states zu deuten sind :-?

Danke für den Export! Teste ich mal aus.

Was Deinen Sytemstate angeht, da musst du den Dezimalwert 33280 in HEX umrechnen. Dann bekommst du 0x8200, was du dann in der Tabelle findest. Falls dein Taschenrechner das nicht kann, findest du auch im Netz Seiten auf denen du das umrechnen kannst. Symcon kann das vermutlich auch, aber ich wüsste jetzt nicht wie🤷🏻‍♂️

Cool danke für den Schubs in die richtige Richtung. Der Windows Calc kann das :smiley:

33280 → Dispatch Running 0x8200 The inverter runs according to the scheduling instructions received from the
monitoring background. The active power is set to less than 100%.

Ich habe gestern Abend noch etwas mit den Registern getestet und dann ist mir irgendwann aufgefallen, dass keine Werte mehr kommen. Ab wann genau kann ich nicht sagen, da ich zwischenzeitlich länger außer Haus war.

Bis jetzt habe ich es nicht mehr zum Laufen bekommen.

Hat jemand eine Idee/etwas ähnliches schon einmal gehabt?

Grüße

Auch nach einem Kaltstart des WR keine Änderung. Ich werde das Gerät wohl ersetzen und in der Zwischenzeit nochmal etwas mit der WiNET-S2 testen.

Reboot vom Symcon-Server hat das Problem behoben.

Hallo @dharmainitiative kannst du nochmal seinen letzen Stand von den Registern reinstellen? Dann würde ich nochmal testen, ob die für den SH15T auch passen. Ich befürchte irgendwie, dass der nochmal eine andere Belegung hat😔

Vielen Dank für die genaue Anleitung. Ich habe das so konfiguriert aber es kommen keine Werte an. Muss die RS485 Schnittstelle im Wechselrichter aktiviert werden?

Oder hast Du sonst noch einen Tipp, an was das liegen könnte? Habe das Kabel nochmals kontrolliert vom COM2 zum Waveshare aber das scheint gut zu sein.

Ich bin dankbar für alle Ideen…

@bambam
Ich hänge meinen Export nochmal an. Ich hatte in der Zwischenzeit auch nochmal auf den Lan-Anschluss am WINet-S2-Dongle umgestellt aber da kommen bei mir definitiv fast keine Werte an.

Ich denke die Vorlage passt auch für den 15T aber der Unterschied zu den XXRT-Modellen ist ja, dass der Lan-Anschluss am Gerät selbst fehlt über den man dann die Werte bekommen hatte.

modbus (3).json (32,7 KB)

@kjb70
Hänge doch mal die Screenshots deiner Waveshare-Konfiguration an, dann kann ich sie mit meiner abgleichen.

Edit: Ich denke nicht, dass die RS485-Schnittstelle im WR konfiguriert werden muss.

Den Verdacht hatte ich auch schon. Aber bisher konnte das noch niemand bestätigen.

Du bekommst über RTU mit WaveShare mit den selben Registern mehr Werte zurück?

Ich warte bei meinem Ticket bei Sungrow immer noch auf Rückmeldung…

Ja, das sind genau die Register die ich jetzt mit dem Waveshare verwende.

Diese Werte bekomme ich:

Damit kann ich jetzt auch endlich den Energiefluss visualisieren:

Es funktioniert genau wie von Dir gepostet.
Ein peinlicher Fehler, ich hatte im Modbus Gerät eine falsche Instanz hinterlegt. :zany_face:

Cool das es funktioniert. Kriegst du alle Werte?