NEWS
Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden
-
Nachdem ich sonst immer nur mit Fragen komme, möchte ich hiermit mal was zurück geben.
Habe mit viel Try & Error den SUngrow WR Typ SGH10RT (10Kw Hybrid) mit Modbus eingebunden.
Wenn ich Zeit habe werde ich ein komplettes How To dazu verfassen, sollte jemand schon vorher Bedarf haben einfach melden.
Gruss
Atlantis
-
@Atlantis cool! Es geht also, ich hab den Sungrow 8.0 WR seit ein paar Tagen und wäre interessiert, was so geht!
-
Kurzbeschreibung zur Anbindung der neuen Sungrow Hybrid WR
SGH5RT- SGH10RT (5-10 KW Hybrid), Markteinführung Sep./Okt. 2020
und lt. der Beschreibung auch für folgende Modelle (ungetestet)
SH5K-20 / SH3K6 / SH4K6 / SH5K-V13
SH5K-30 / SH3K6-30 / SH4K6-30
SH5.0RS / SH3.6RS / SH4.6RS / SH6.0RS
SH10RT / SH8.0RT / SH6.0RT / SH5.0RTDie Anbindung zum IOBroker erfolgt per MODBUS.
Einen ganz großen Dank geht hiermit an die Adapter Entwickler des MODBUS und an das Technik Team der Fa. Sungrow Deutschland für die Bereitstellung der MODBUS Variablen. Das ist absolut vorbildlich!!!Grundeinstellungen des MOD Bus Adapter:
Die Modbus- Settings im Modbus Adapter bitte wie folgt wählen
--> Dann passen die Copy Paste Files der Ein und Holding Register automatisch!, da das Registeradressen Offset (+1), welches sehr häufig für Probleme sorgt, bereits berücksichtigt ist:
Hier muss natürlich die IP Adresse Eures WR eingetragen werden!
Mit dem WLAN Direkt LOGIN (und dem 3D Code) des Aufklebers auf dem WR kann der eingebaute LAN Adapter des WR aktiviert und erstellt werden. Mit diesem LOGIN kann dieser sowohl als DHCP als auch mit fester IP eingestellt werden. Ich habe den Zugang per LAN gewählt, da ich kein Freund von WLAN bin...Als Geräte ID ist die des WR selbst einzusetzen (also nicht des WLAN Adpaters) .
Diese findet man z.B. über den Cloudzugang hier:
Einstellungen zum Lesen der Eingangsregister (Read Only Werte des WR)
Zum Lesen der WR Istwerte müssen die entsprechenden gewünschten Sollwerte aus der schon funktionsfähigen Copy/Paste Liste weiter unten ausgewählt werden. Alternativ können auch testweise mal einfach alle, die darin enthalten sind übenommen werden. (Hier ein Dank auch an alle Mitbefüller dieser Liste !!!)Die zu lesenden Werte müssen per Eingangsregister angelegt werden.
Das geht über den Reiter Eingangsregister und im Eingangsregistermenü über das + Zeichen
Das leere Textfeld mit folgenden Werten des hier angehängten Textfiles befüllen:
Eingangsregister_STAND2021_02_02.txt neuster Stand
(ACHTUNG: Dazu das txt FIle zuerst downloaden und nicht aus dem Forum gleich per click öffnen, dann sind auch die Trennzeichen dabei. Nach dem DL mit Editor öffnen und per Copy & Paste einfügen)
Danach unten das Hakerl zum Übernehmen setzen und speichern!Sollten Euch noch weitere Werte fehlen, die komplette MODBUS Beschreibung von Sungrow
hat m-fuchs in diesem threat am 15.12.20 gepostet, dort könnt Ihr das Original als pdf runterladen.Schreiben der Modbus Werte via Holding Register.
Analog der Eingangsregister werden die Lese- und schreibefähigen (Holding Register) wie folgt angelegt:Das geht über den Reiter Holdingsregister und im Holdingsregistermenü über das + Zeichen
Anbei die mittlerweile recht vollständige Copy & Paste Liste
(Einen großen Dank geht an alle, die hier im Forum dazu beigetragen haben, die Fehler zu elliminieren und fehlende Werte zu ergänzen!)
Holding-Register2021_02_04.txtJetzt kommt noch ein wichtiger Punkt!
Möchte man die Holdingregister beschreiben kann dies entweder von Hand in den Objects passieren oder per Skript/Blocky. Dazu ist aber anders als bei den JS Variablen eine andere Ansteuerung erforderlich. So funktioniert es:
mit Blocky:
Wichtig ist hier den Block Baustein "Steuere" zu nehmen und unter keinen Umständen den STD Baustein "aktualisiere"
So sieht es dann per JS aus:
setState("modbus.0.holdingRegisters.13049_EMS_mode selection", 3);
Wenn man z.B. mit 500 W Laden/ Entladen möchte muss man folgende Holdings beschreiben:
EMS Mode = 2 (Quasi Handsteuerung)
13084 Einmalig mit einem Startwert versehen
EMS Charge/Discharge Comand13050 wie folgt setzen:
170 (Dezimal) = AA (Hexadezimal) <=> Charge/ Laden;
187 (Dezimal) = BB: <=> Discharge / Entladen;
204 (Dezimal) 0xCC <=> Stop (Anhalten/ Default );Der Startwert 13084 muss nach meiner Erfahrung nur einmal gesetzt werden.
Um Ehrlich zu sein habe ich noch immer den Sinn dieses Registers nicht verstanden...Sobald die Werte geschrieben sind dauert es kurz (ca. 1-2s) dann legt der WR los...
Anbei meine Intervalle wie ich das ganze kontinuierlich ansteuere:
Den EMS Mode schreibe ich jede h 1x
13051 Leistungssollwert schreibe ich ca. jede Sekunde
13050 Richtung Laden/Entladen schreibe ich ebenfalls jede Sekunde.
Das ist aber sicher nur bei Veränderung wirklich erforderlich-Wenn Ihr hier Fehler in den Copy Paste Listen entdeckt oder weitere Infos zum Schreiben der Register herausgefunden habt bitte bei mir melden, ich teste dann und ergänze die Anleitung hier---
Habe einen neuen Post aufgemacht, um mit anderen zusammen eine Muster Energiemanagement Skript Lösung für die Sollwertvorgaben zu erarbeiten. Weiterlesen könnt Ihr hier:
https://forum.iobroker.net/topic/40990/batteriemanagement-energiemanagement-mit-iobrokerAllgemeines zum Sungrow WR (ohne Bezug zu IOBROKER)
Jetzt noch ein paar generelle Punkte zum WR selbst, da sich einige sicher Fragen, kann man den WR kaufen... ?
Habe ewig mit dem Webinterface und den diversen Zugangsmöglichkeiten per WLAN, APP, & Cloud gekämpft, bis ich endlich mal verstanden habe, auf welchem der 3 Wege man sich für welchen Zweck in den WR überhaupt einloggen muss. Hier besteht noch signifikantes Verbesserungspotential im User Manual um diese 3 Zugangs-Modi und deren Einschränkungen und Funktionen besser zu erklären.
Verbesserungspotential besteht auch in der Qualität der Smartphone APP und des Cloud Zugangs. Die PC APP habe ich nicht getestet.Ich finde es Schade, dass der WR kein eigenes Webintgerface mehr besitzt und man nur per APP oder Cloud zugreifen kann. Wichtige Einstellungen lassen sich nur per direktem Einloggen per WLAN am WR direkt VORORT vornehmen.
Warum es dazu nicht ein einfaches Webinterface mit PW Zugang getan hat und man wahrscheinlich wegen dem aktuellen Trend jetzt so einen APP Murgs begonnen hat, kann nur Sungrow beantworten...
Aber wenn bei Euch mit MODBUS auch erstmal die Daten sprudeln, braucht das App Gelumpe eh keiner mehr... Bin da vielleicht etwas altmodisch...
Der WR selbst macht einen super soliden Eindruck. Gerät ist massiv, klasse verarbeitet, Montagematerial wie Dübel (Fischer), Steckverbinder (Weidhaus) sind entgegen der Erwartung nicht billig sondern sehr gehobener deutscher STD!
Schon die in die Montagehalterung integrierte Wasserwagenlibelle ist vorbildlich und zeigt, dass man bei SUNGROW mitgedacht hat.Einer von meinen 2 WR brummt (Netzbrummen) auch Nachts im Standby recht laut, was ich von meinen bisherigen Kostal WR nur bei mittlerer und hoher Last kenne. In diesem Lastbereich sind die SUNGROW WR dagegen eher ruhig.
Was ich bisher beurteilen kann ist der Wirkungsgrad zumindest bei sehr geringen PV Leistungen im reinen PV Betrieb nicht der Beste, also gerade an Tagen, wo man auf jedes Watt angewiesen ist.
Der WR (10 KW) beginnt erst ab einer AC Leistung von ca. 150W seinen Dienst, wenn auf der DC Seite bereits 220 W Leistung anliegen und bei solch geringen Leistungen auch mit sehr bescheidenem Wirkungsgrad. Dieses Verhalten kann man aber auch bei anderen Hybrid WR bzw. Batteriespeichersystemen anderer Anbieter auch zu Hauf im Netz finden.
Ohne Batterie nimmt sich der Hybrid WR 23w im Standby bei Nacht.
Werde weitere Werte z.B. bei mittlerer und hoher Einspeisung und ab Dezember dann auch mit Batterie nachliefern, sobald vorhanden!!!Jetzt bleibt nur zu hoffen, dass Sungrow Deutschland seiner aktuellen sehr offenen Philosophie treu bleibt. In Australien wo die WR mit leichten Änderungen (LCD Display) bereits seit geraumer Zeit verfügbar sind wurde der Zugang zum Modbus nach einem SW Updates ohne Vorwarnung plötzlich mit PW geschütz. Das wäre ein klares "DON´T BUY THIS PRODUCT " Signal !!!!!
Momentan halte ich aber an beiden Händen die DAUMEN HOCH !!!!!
Wer schon alles so weit umgesetzt hat und gerne den codierten WR Status als Variable haben möchte hier ein super unschöne Spaghetticode Lösung, welche aber funktioniert. Wer sich in JS oder Blocky besser auskennt und eine schönere Lösung findet bitte melden, dann übernehme ich diese für die anderen hier:
Als Zielvariablen habe ich diese hier per JS Variablen angelegt.
Hier der Blocky Code für Copy/Paste:
Blocky_WR_STATUS.txtIch habe in der Zwischenzeit ein Energiemanagement für 2 WR mit 2Batterien recht stabil am laufen.
Nachdem sich die Sonne in den letzten Wochen leider nur sehr selten so stark zeigt, dass ich in den Überschuss komme würde ich das Ganze jedoch gerne noch etwas beobachten, bevor ich das teile.Ich werde auf das Thema Energiemanagement hier nicht weiter eingehen sondern in dem oben genanten Post, da das Thema HIER nicht jeder braucht.
Dennoch vorab mal ein paar Impressionen.
Bevor jetzt gleich der Shitstorm losgeht....
Thema Estethik:
Momentan sind noch Werte mit in der Anzeige, die später natürlich rausfliegen, um die Übersichtlichkeit zu erhöhen. Aktuell aber zum Fehlers uchen mal mehr reingepackt als der Übersichtlichkeit dient und mehr als erforderlich...Thema Ausregelung:
Ich habe sehr stark springende Lasten und sehr viele spontane Verbraucher, so dass ein Ausgleichen am Grid von 300-400 Watt für mich ein recht akzeptables Resultat darstellt.
Zwischen den Bildern (Screenshots) liegen natürlich weitere Sprünge im Energiebedarf.
Bei mir läuft eine Holhackschnitzelanlage, die sich im 2-10 Sekunden Rhytmus Holz aus dem Silo mit einem 1,5 KW Motor holt, da ist ständig was in Bewegung
EIgentlich müsste ich das Ganze als Video Posten, nur dabei ist zu sehen, wie der IO Broker ständig nachtarriert...
Die WR reagieren leider nicht ganz so spontan auf die Sollwerte, wie man das erhoffen würde... Hier läßt siche später in der Abfragefrequenz, dem Zeitpunkt der Abfrage von Energiemessgerät und WR usw. noch einiges optimieren. Dazu dann mehr im anderen Post...
Atlantis (Stand 18.11.20/ Letztes Update 03.02.21)
-
@kratti99 Kannst Du bitte mal Testen, ob die Anbindung so funktioniert.
Wenn Du an einer Stelle nicht klar kommst bitte melden, dann helfe ich gerne weiter und werde die Anleitung verbessern, damit diese möglichst selbsterklärend wird.Gruss
Atlantis
-
@Atlantis
Hi und schon mal sorry vorab. Wir haben seit drei Tagen eine PV-Anlage und ich versuche, möglichst viel darüber rauszufinden. Ich habe keine Ahnung von ioBroker, aber diesen Thread gefunden.Unsere PV-Anlage:
- 29 x Jinko JKM340M (9,86 kWp)
- 1 x Wechselrichter Sungrow SH10RT
- 1 x Speicher BYD HVS mit 5 Modulen (12,8 kWh)
Ich hatte eigentlich ein lokales Webinterface des WRs erwartet, stattdessen bekomme ich nur alle 5 Minuten Infos über die Webseite von iSolarCloud. Der Webzugriff auf den Speicher ist auch mehr als bescheiden. Geht nur, wenn man im WLAN des BYD-Sepichers ist, nicht aus dem eigentlichen Netzwerk, obwohl der Speicher dort auch hängt. Da gibts nur den Zugriff auf das Netzwerk-Modul.
Daher wollte ich mal schauen, ob ich mehr Infos finde. Ich sehe das erste Mal den ioBroker und habe es sogar geschafft, den ioBroker und den Modbus-Adaper zu installieren. Danach habe ich die o. g. Schritte durchgeführt und die Instant "modbus.1" wird sogar grün. Aber jetzt stehe ich da und weiß nicht, wie ich die Infos vom WR abrufen oder anzeigen kann. Gibts irgendwo eine Anleitung oder kann mir jemand helfen? Würde mich zu dem WR gerne hier weiter austauschen.
Danke und schönen Sonntag Abend,
Martin -
@ms111175 Hallo Martin
Habe Deine Nachricht erst eben gesehen.
Die Werte werden Dir dann als "Variablen" an dieser Stelle zur Verfügung gestellt.
(Mit diesen Variablen kannst Du jetzt selbst ganz flexibel irgendwelche Ereignisse steuern,. oder Sie über den Adapter VIS auch nur als Webpage anzeigen lassen...
Das Ergbenis könnte dann als VIS (Webpage) dann so aussehen...
(
Hier sind nach einer gewissen Einarbeitungszeit KEINERLEI Grenzen gesetzt...
Du kannst dann auch festlegen was ab einer gewissen Menge an Einspeisleistung passieren soll oder, oder, oder...
Wichtig ist nur, dass Du auf die Daten, mit denen Du arbeiten möchtest Zugriff hast. Wenn Dein Adapter grün ist und Du hinter den modbus Variablen Werte bekommst ist das schon die halbe Miete...
Ich denke aber, dass die Portalseite von Sungrow sich auch noch mausern wird. Die sind erst im Aufbau und kämpfen teilweise noch mit den deutschen Begrifflichkeiten.
Ich selbst habe halt gerne die Daten bei mir, und Zugriff per Webinterface auf meine Geräte. Apps kann ich nicht leiden, da weiss man nicht, was im Hintergrund so alles passiert...Bekomme in ein paar Tagen den gleichen Speicher...
Bin Gespannt auf Deine Erfahrungen mit dem Speicher, aber das gehört leider an dieser Stelle eher ins PV Solar Forum...Aus welchem PLZ Bereich kommst DU denn?
Gruss
Atlantis
-
Hallo @Atlantis, ich habe seit kurzem den gleichen WR und versuche über Modbus mit diesem zu kommunizieren. Kannst du mir die Sungrow Modbus Registerbeschreibung zukommen lassen?
Vielen Dank!
Gruß
Thomas -
@Atlantis Hi Atlantis, dann stimmt wohl doch noch etwas nicht mit der Verbindung. Sorry, ich sehe ioBroker das erste mal, ich verstehe noch gar nicht, wie das ganze funktioniert. Werde mich da wohl erst mal schlau machen müssen. Ich komme aus PLZ 53, südliches NRW.
Bei mir sieht es so aus, aber wie gesagt, ich hab keine Ahnung, was ich da tun soll.
-
@Funnel Wenn Du mir Deine Mailadresse zukommen läßt.
-
@Atlantis Kein Problem, findest du im privaten Chat
-
@ms111175 Hallo Martin
Zum Testen der Modbusverbindung habe ich das Windows Modbus Tool
QModMaster genutzt. Das ist sehr einfach zu bedienen.Die Kerneinstellungen hier setzen:
UnterOptions das Menü Modbus TCP nutzen und die WR Parameter einsetzen.
ACHTUNG: Hier die IP Adressblöcke imme 3 stellig !!!
Dann unter 3 die Slave Adresse des WR einsetzen.Im Anschluss über View den Bus Monitor einstellen.
Jetzt kann die Verbindung mit dem Steckersymol aufgebaut werden.
Wenn diese Settings passen, dann erscheint wie bei mir eine O:K Meldung:Man muss nicht einzelne Bytes auslesen, sonder kann auch gleich 10 Bytes am Stück lesen, so wie es bei mir eingestellt ist.
Was mit dem Tool nicht funktioniert ist dauerhaftes und mehrfach hintereinand durchgeführtes Lesen.
Nach jedem Test, die Connection kurz unterbrechen und neu verbinden (Status O.K.)
Dann einmalig ! den Knopf rechts daneben mit dem blauen Punkt in der Mitte um einmalkig die Register auszulesen. Diese werden jetzt sowohl in den ROW Data als auch im linken unteren Festern angezeigt.
Hoffe Du bekommst so die Verbindung mal lauffähig. Danach sollte miot den gleichen Parametern beim Modbus IObroker alles laufen.
Achtung: Im IOBroker wird immer ein Adressoffset gebildet. Den habe ich in meinen Tabellenwerten schon einkalkuliert. Im Original (und hier im QMOdMaster) sind alle Adressen um eins höher!Beispiel:
Tabellenwert: Nominal Power ist Adresse 5001. Im IOBroker aber mit meinen Settings 5000. Das ist am Anfang sehr verwirrend, wenn Du aber meine Tabellenwerte per Copy & Paste einfügst musst Du dabei nichts beachten.Gruss
Atlantis
-
Hallo zusammen,
habe 30 PV Module auf dem Dach mit SH10RT und BYD HVM 11.
Den Zugriff auf die BYD aus dem internen Netz und die Deaktivierung des BYD eigenen Wlan habe ich hinbekommen. Bin allerdings auch in dem Bereich Netzwerktechnik, Routing, Firewall usw. zu Hause. Habe mich bisher allerdings noch gar nicht mit dem ioBroker beschäftigt und frage mich ob jemand Lust hätte sich mit mir einmal in einem ScreeMeeting zu treffen und mir seinen ioBroker in Zusammenarbeit mit dem SH10RT und der BYD vorzuführen. Würde im Gegenzug natürlich auch gerne mit meinem Wissen unterstützen, soll also kein einseitiger Deal mit Informationen sein. Gerne mal per private Nachricht / Chat bei mir melden, sonfern da jemand Interesse hat bzw. bereit wäre.Danke & Gruss michael
-
Hallo zusammen,
ich versuche eine Kommunikation von einer Batterie zum Sungrow SH10RT herzustellen. Die lesende Kommunikation über Modbus RTU vom Wechselrichter funktioniert ohne Probleme (mit der Liste im Anhang). Allerdings kann ich keine Werte schreiben. Ich erhalte immer die Fehlermeldung "See slave error" am Master. Hat von euch schon mal jemand versucht, Werte per Modbus zum Wechselrichter zu senden?Vielen Dank!
Communication Protocol of Residential Hybrid InverterV1.0.20 (1).pdf
-
Hi,
ich habe noch nicht versucht zu schreiben, versuche mich noch im Lesen, könnte da aber auch Rat brauchen.
Ich habe das gleiche PDF vorliegen, wie von Dir angehängt und arbeite mit dem txt-File von Atlantis. Ich verstehe aber nicht warum hier eine Diskrepanz vorliegt. Im PDF ist 5001 Nominal Output Power und bei dem txt-File ist es 5000. Das zieht sich irgendwie durch, im PDF ist es immer +1 gegenüber der txt-Datei, wobei aber die Datei ja funktioniert.
Kann mir hier jemand helfen wo mein Denkfehler oder das Problem ist?
Danke, michael -
@miki Die Lösung findet sich auf Seite 22 der PDF, hier heißt es: "Communication address = protocol address – 1. If data of address 5000 is to be inquired, the corresponding sending address data is 4999 (0x1387);"
Ich gehe davon aus, dass Atlantis das der Einfachheit halber in seiner TXT bereits berücksichtigt hat.
-
@FXPl0r
Ich habe das Adressdelta breits in der txt Datei berücksichtigt, genau wie es von Dir vermutet wurde.
Ich habe mir dazu selbst eine Excelliste geschrieben und dort das Delta von "1" jeweils abgezogen.
Werde in Kürze mal oben den ersten Artikel updaten, da in der Zwischenzeit ein paar Register dazugekommen sind und dann nbeben der TXT Datei auch die Excel hochladen. (09.01.21 erledigt...)@m-fuchs
Holding Register schreiben ist gelöst. Angaben dazu ganz oben !!!!
Das original Energiemanagement der WR ist gruselig. Habe aktuell 2 Sungrow SH 10 RT mit jewewils 2xBYD HVS 12,8 Batterien im Einsatz. Aktuell wird da die Energie im Wechsel von einem System ins andere System geschoben und zeitgleich läd System die eine Batterie mit 10KW und das andere System entläd zeitgleich mit 10KW.
Deswegen möchte ich, wenn es mit Sungrow je nicht out of the box funktioniert die beiden WR den Sollwert der Batterieleistung vorgeben.Gruss an alle Mitstreiter.
Atlantis -
@m-fuchs
Nachdem ich den Eintrag nicht mehr löschen kann habe ich nur den Inhalt gelöscht.
Es waren hier ein paar Falschinfos enthalten. Alles Relevante kann ganz oben nachgelesen werden!Gruss
Atlantis -
So, jetzt wollte ich auch mal der Gemeinschaft einen Dienst leisten, war Atlantis nicht nur schneller, sondern hat's auch noch besser gemacht
Sei es drum, mein Weg ist dann für alle, die wenig fitt im Scripting sind.
Ich bin also her gegangen und habe mir eine kleine Tabelle gemacht mit den Run-Stati vom SH10RT und habe diese von binär nach dezimal übersetzt. Dann ein ganz einfaches Skript gemacht was dezimal in string wandelt:Und lasse mir dann den Status-Text in der Vis anzeigen:
In diesem Zuge übrigens ganz herzlichen Dank an Atlantis, nicht nur für die Unterstützung bei der Einführung sondern auch für die zur Verfügungstellung seiner Datenbasis. An meinem Handy-Screenshot wird man erkennen, dass ich auf der Bais von Atlantis arbeite. Daher alles von mir immer "courtesy of Atlantis".
lgm
-
Wollte auch gerae die CSV importieren, jedoch klappt das bei mir nicht.
Modbus-Adapter ist aktuell.
Kopiere mir die gesamte CSV und füge sie ein. Danach auf das Häkchen und Speichern gedrückt. Jedoch passiert dann nichts mehr -
Hätte auch Interesse an der Datei für Modbus. Habe dir eine PN geschickt.