NEWS
Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden
-
@ostseeskipper sagte in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Kurze Frage: Woran macht ihr es fest das der WR die Battarie lädt oder nicht?
In #13021 wird ja leider kein Vorzeichen mitgeliefert woran man erkennt ob geladen oder entladen wird.
Lt Kommunikationsprotokoll versteckt sich der Status "Laden" oder "Entladen" in #130000 Running State. Das ist zwar U16 aber die Interpretation muss auf Bit Ebene im Bit 1 und 2 stattfinden.
Gibts dafür schon ne Lösung nur das Bit 1 und 2 als Status auszulesen ?Wurde das Problem hier schon aufgelöst? Ich kann in EVCC sonst nicht über den IO-Broker arbeiten...
Ggf hat hier jemand schon was über ein Blockly gebastelt?
Wenn ja gerne mal hier auflösen.
#13000 Running State-> gibt es da schon eine Liste was die Angaben da bedeuten? -
Hallo
und erstmal vielen Dank für Eure Arbeit .
Ich bin erst neu hier, habe aber von Euch schon sehr profitiert.
Deshalb möchte ich eine Kleinigkeit zurück geben.
In der Registertabelle steht als Einheit "Kwh" müsste aber korrekterweise "kWh" heißen.
Kann das jemand in der Tabelle ändern?
Vielen Dank....
-
@mr1burns said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
#13000 Running State-> gibt es da schon eine Liste was die Angaben da bedeuten?
In der Sungrow Dkou steht:
-
@stealthangel said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
In der Registertabelle steht als Einheit "Kwh" müsste aber korrekterweise "kWh" heißen.
Kann das jemand in der Tabelle ändern?Das Problem ist mittlerweile festzustellen, in welcher der Tabellen hier im Thread sollte das geändert werden? Ich kenne mindestens 4 Beiträge in denen die Tabelle eingtragen ist.
Für mich habe ich die Unit auch gleich auf "kWh" geändert - und so manches andere. Die Codierung des Vorzeichens ist, wenn ich recht erinnere, nicht überall richtig. Außerdem gefällt mir nicht, dass die Groß und Kleinschreibung bei den Datenpunkten ziemlich zufällig ist. Aber das sind Sachen die jeder für sich im Abgleich mit der Sungrow-Angabe selber herausfinden kann. Wenn ich jetzt was hier rein stelle verbessert das nichts, weil jeder für sich doch klären muss, welche hier nun zu findenden Tabellen denn jetzt die Richtige ist.Wir müssten irgendwo eine Stelle finden, wo wir diese Tabellen tatsächlich pflegen. Vielleicht einen Thread der nicht so lang wird wie dieser hier. Nichtsdestotrotz stelle ich meine Version mal ein.
20230227-Eingangsregister_Stand_V1.1.37.txt
Beachte: In dem zweiten File (Differences.pdf) habe ich die Änderungen zu der ursprünglichen Liste die von Atlantis hier vorgestellt wurde, aufgezählt. Es sind nur die Änderungen zu sehen! Bei Gleichheit ist das entsprechende Feld leer. Unbeachtet sind die 6xxx-Adressen, die ich gar nicht pflege, da diese Adressen in meinem Wechselrichter nicht angeboten werden.
Beachte: Man kann meine Tabelle nicht ohne Weiteres anstelle einer Tabelle, die bisher verwendet wurde, benutzen. Da ich die Namen der Datenpunkte verändert habe, werden sie von Scripten (Blockly, JS oder TS) nicht mehr gefunden. Die Namen müssen also in den Scripten auch angepasst werden.
-
@mr1burns said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Wurde das Problem hier schon aufgelöst?
Das würde mich auch sehr interessieren. Mich irritieren zum Beispiel die unerwarteten Ladevorgänge der Batterie, die mir von der iSolarCloud angezeigt werden. Ich würde sie gerne mit den ModBus-Daten auch "sehen" können.
Ich schreibe über mein RaspBerryPi die Modbus Daten alle 15 Minuten als XML lokal weg (mit einem selbstgeschriebenen Java-Programm, nicht mit ioBroker).
Da habe ich heute morgen um 9:20 Uhr diesen Screenshot von iSolarCloud gemacht:
Um 9:30 zog mein Programm u.A. diese Werte:
<details value="0" unit="" name="**Running State**" address="**13000**" description="Betriebsstatus"/> <details value="624" unit="W" name="Total DC Power" address="5016" description="PV-Leistung aktuell"/> <details value="193" unit="W" name="Load Power" address="13007" description="Wirkleistung gesamt"/> <details value="-558" unit="W" name="Export power" address="13009" description="Aktuelle Leistung am Übergabepunkt des Versorgungsnetzes"/> <details value="0.5" unit="kWh" name="Daily Battery Charge Energy from PV" address="13011" description="Energie in Speicher heute"/> <details value="988" unit="W" name="Battery Power" address="13021" description="Batterieladeleistung"/> <details value="3.1" unit="%" name="Battery Level" address="13022" description="Batteriekapazität"/> <details value="-365" unit="W" name="Total Active Power" address="13033" description="Eigenverbrauch aktuell"/> <details value="0.5" unit="kWh" name="Daily Charge Energy" address="13039" description="Batterie-Ladeenergie heute"/>
Der Running State ist 0 also ist auch Bit1 0. Trotzdem zeigt mir die iSolarCloud deutlich "Batterie Laden" an. (Es gibt eine zeitlich Diskrepanz zwischen Screenshot und den Daten. Leider habe ich nicht um 9:30 den ScreenShot gezogen. Trotzdem bin ich sicher, dass prinzipiell geladen wurde. Es zog sich hin und zeigte auch 9:45 noch ein ähnliches Bild).
Und es funktioniert auch logisch nicht anders.
Die PV-Anlage erzeugt 624W. Vom Netz kommen insgesamt 558W rein (-558). Den Eigenverbrauch von -365W verstehe ich nicht. Der Verbrauch ist normalerweise positiv. Wenn der Strom von der PV-Anlage komplett in diee Batterie geht, dann fehlen noch 364W (das sind ungefähr 365W - wie der Wert vom Eigenverbrauch, könnte passen). Das hiesse das Haus verbraucht 193W (558-365=193), den Wert finde ich auf Register 13007 (Load Power).Ich habe mir aus einem aktuellen Anlass mal die Zahlen zusammengesponnen. Ich krieg die Register nicht wirklich, auch nicht mit den Vorzeichen, auf die Reihe.
-
@gombersiob said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Ich krieg die Register nicht wirklich, auch nicht mit den Vorzeichen, auf die Reihe.
Ich habe das jetzt nochmal mit einem aktuellen Fall von heute morgen 11:15 verglichen:
In derselben Minute hat mein Programm folgende Modbus-Daten gefunden
<details value="5935" unit="W" name="Total DC Power" address="5016" description="PV-Leistung aktuell"/> <details value="715" unit="W" name="Load Power" address="13007" description="Wirkleistung gesamt"/> <details value="4765" unit="W" name="Export power" address="13009" description="Aktuelle Leistung am Übergabepunkt des Versorgungsnetzes"/> <details value="454" unit="W" name="Battery Power" address="13021" description="Batterieladeleistung"/> <details value="98.9" unit="%" name="Battery Level" address="13022" description="Batteriekapazität"/> <details value="5480" unit="W" name="Total Active Power" address="13033" description="Eigenverbrauch aktuell"/>
Das sind nicht dieselben Werte (eine Minute hat 60 Sekunden) - aber vermutlich dieselben Trends.
Desweiteren habe ich noch ein Bild vom 17. Januar 8:43 Uhr:
und diesen Registereinträgen (von 8:45 Uhr):
<details value="214" unit="W" name="Total DC Power" address="5016" description="PV-Leistung aktuell"/> <details value="0" unit="" name="Running State" address="13000" description="Betriebsstatus"/> <details value="239" unit="W" name="Load Power" address="13007" description="Wirkleistung gesamt"/> <details value="-26" unit="W" name="Export power" address="13009" description="Aktuelle Leistung am Übergabepunkt des Versorgungsnetzes"/> <details value="0" unit="W" name="Battery Power" address="13021" description="Batterieladeleistung"/> <details value="0.0" unit="%" name="Battery Level" address="13022" description="Batteriekapazität"/> <details value="213" unit="W" name="Total Active Power" address="13033" description="Eigenverbrauch aktuell"/>
DIe Registereinträge passen m.E. nicht zum Bild. Im Bild wird die Batterie aus Netz und PV geladen, die Register deuten an, dass Haus aus PV und aus Netz beschickt werden. Beide Fälle sind interessant - aber ich kann gerade keinen Algorithmus daraus ableiten.
Nach meiner Meinung hat Register 13009 einen leicht irreführenden Namen, es sollte "Grid Power" heißen. Denn es ist ein zusammengesetzter Wert (Summe) aus Strom-Export (PV oder Batterie) oder Import in Batterie und Hausstrom. Die Beschreibung, die man in den Registertabellen hier im Thread findet. trifft es besser.
Wenn Register 13009 positiv oder 0 ist, wird Strom exportiert.
Der gesamte Hausverbrauch wird von der PV und/oder Batterie gedeckt.
Batterieladung ist dann: Battery Power(13021) = Total DC Power(5016)-Load Power(13007)-Export power(13009)private boolean isBatteryChargingFromPV( double pvPower, double loadPower, double exportPower, double batteryPower, double totalPower) { boolean isBatteryChargingFromPV = (pvPower > 0); isBatteryChargingFromPV &= (batteryPower > 0); if (exportPower < 0) { isBatteryChargingFromPV &= (pvPower > Math.abs(loadPower + exportPower)); } return isChargingFromPV;
Wenn Register 13009 negativ ist, dann wird Strom am Netzeingang importiert. Strom, der an der PV erzeugt wird, kann also nur ins Haus oder an die Batterie abgegeben werden.
Die Battery Power(13021) setzt sich dann wohl zusammen aus dem was vom Netz kommt (Export power(13009)-Load Power(13007) und dem Strom von der PV (Total DC Power(5016)-Load Power(13007))private boolean isBatteryChargingFromNet( double pvPower, double loadPower, double exportPower, double batteryPower, double totalPower) { boolean isChargingFromNet = (exportPower < 0); isChargingFromNet &= (Math.abs(loadPower) < Math.abs(exportPower)); return isChargingFromNet; }
-
@stealthangel sagte in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Hallo
und erstmal vielen Dank für Eure Arbeit .
Ich bin erst neu hier, habe aber von Euch schon sehr profitiert.
Deshalb möchte ich eine Kleinigkeit zurück geben.
In der Registertabelle steht als Einheit "Kwh" müsste aber korrekterweise "kWh" heißen.
Kann das jemand in der Tabelle ändern?
Vielen Dank....
korrekt, danke. Wenn man schon dabei ist - ist ja schnell umgeschrieben. Kg müsste dann auch kg sein und Kw dann kW
-
@mraiobroker sagte in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
@gombersiob sagte in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Strom exportiert wird, obwohl die Batterie noch nicht voll ist
Ebenfalls erlebt und an Solarteur gemeldet (Nachdem ich netzunabhängigen Modus mit 25% SOC (state of charge) und Zwangsladung SOC 25% einstellte). Akku ging nicht mehr über 25% und Energie ins Netz.
Firmwareupdate hatte ich vorher schon gemacht (Anleitung im Netz zu finden).
Irgendwann gings dann wieder einfach so...
Mittlerweile SOC Sollwerte wieder auf 0 gesetzt, weil wohl auch im Januar an einem sonnigen Tag der Akku sonst "überläuft".Weiterer Fehler.
Seit über 30 Minuten habe ich nun auch einen Akku SOC von 98,9% aber die PV speist lt. Modbus und lt. live Daten fröhlich ca. 750W in den Akku.
Die Diagramme beider Werte sind seit 30 Minuten konstant. 98,9% SOC und ca. 750W Ladeleistung. Habe mal Sungrow angeschrieben wohin sich die Energie verflüchtigt...
Vielleicht kommt da mehr zurück als bei der letzten Anfrage, wenn sie überhaupt Sungrow erreicht hat. -
Ein Frage:
Bei mir wird gerade der WR installiert. Läuft das LAN bei dir über diesen Adapter Stick(der mit dem Bar-Code) oder muss noch die hintere Buchse mit einem pyhsischen LAN-Kabel angeschlossen werden? Aktuell gibt es eine Verbindung zum "SmartMeter-Modul" aber kein LAN Ausgang am WR. So wie ich das verstehe ist das eine weitere Buchse hinter dem "WLANStick"
Vielen Dank euch! -
es gibt zwei Verbindungen die relevant sind.
Das WiNet-S Dongle habe ich per WLAN eingebunden, damit App und live Daten funktionieren.
Man könnte vermutlich auch ein LAN Kabel reinstecken, ist ja ne RJ45 Buchse dran - muss ich mal testen.Wer Modbus will muss in jedem Fall ein LAN Kabel in die hinter dem WiNet liegende Buchse stecken. Damit und nur hier funktioniert dann Modbus.
Gruß
Matthias -
Mal was anderes...
Hat jemand von euch den Energiefluss Adapter sauber laufen? Geiles Teil das Ding.
Ich habe ihn soweit eingerichtet, doch scheint modbus.0.inputRegisters.13021_Battery_power_
bei Ladung und bei Entladung ein positiver Wert zu sein.
Aktuell stellt der Adapter, wenn ich diesen Datenpunkt nehme in VIS die Flussrichtung teilw. falsch dar. Auch bei Batterieentladung fließt der Strom in den Akku hinein.Versteh ich ehrlich gesagt nicht, bei 13009 Export_power bekommt es Sungrow ja auch hin, soweit ich weiß. Da unterscheiden sich Export und Bezug durch Plus und Minus.
Auch beim Hausverbrauch bin ich mir nicht sicher, ob
modbus.0.inputRegisters.13007_Load_power_ richtig ist. Ist Wirkleistung = Hausverbrauch?Sollte dem so sein, könnte man evtl.
PV Leistung minus Wirkleistung minus PV export rechnen
und hätte den Wert der in den Akku fließt, positiv oder negativ. Hoffe ihr könnt mir folgen. -
@mraiobroker Vielen Dank für deine Rückmeldung.
Also ist hinter dem WiNet-S Dongel unter der Abdeckung noch eine RJ45 Buchse in die einfach ein LAN Kabel kommt? -
@toki1973
Schraub die Runde Kappe ab, die wie ein schwarzer Deckel einer Getränkeflasche aussieht, wenn da LAN steht, sonst lieber Elektriker fragen. -
@gnulinux ich möchte das gerne in Verbindung mit dem Tibber Plus machen. Gibt es eine Möglichkeit die Zwangsladung per Modbus zu schreiben. Man kann ja bei iSolarCloud auch das Zeitfenster für die Zwangsladung angeben. In den Registern habe ich gesehen, dass es Zeitfenster für Load1 gibt (Register 13002 bis 13014) und den Charge/Discharge Command (register 13050). Kannst Du mir sagen wie ich die Zeitfenster für die Zwangsladung schreiben kann?
Vielen Dank,
Tobias -
@tobias-dallwig
Hallo, ich glaube du hast mich aus versehen adressiert. Kann dir bei dem Problem leider noch nicht helfen. Bin aber wohl bald auch auf diesem Weg. Also, macht nix ... adressier es halt nochmal neu. -
Hi,
könnte mir eventuell jemand einen Tipp geben, wie ich den Entlade SOC verändern kann per Holding Register ??
Wollte den 13099_SOC_Reserve verändern und dort eine andere Prozentzahl übergeben. Aber der WR nimmt die nicht an bzw. stoppt das Entladen der Batterie im Test nicht.
13057_Max__SOC geht auch nicht.Hintergrund evcc.
Ich möchte verhindern, dass evcc beim Auto laden die Batterie indirekt leer zieht.
Da der WR ja nicht weiß, dass da ein evcc läuft und ein Auto gerade lädt, steuert er ja gegen und entlädt die Batterie. Da ja auf Seiten des Hausverbrauchs eine hoher Verbrauch gerade vorhanden ist.
Um das Entladen der Batterie zu verhindern wäre das einfachste doch, sobald evcc startet per Blocky dem WR sagen, dass der Entlade SOC auf 100% steht. Dadurch würde der WR ja quasi nicht mehr die Batterie mit nutzen. Nach dem Auto laden möchte ich den SOC dann wieder automatisch auf z.B. 20% stellen und die Batterie sollte wieder genutzt werden für den normalen Hausverbrauch.Leider kriege ich das Schreiben des SOC über das Register gerade nicht hin.
Danke -
Ich das kann ich dir soweit bestätigen.
Über den LAN Port ist nur eine Abfrage per Modbus möglich.
Der WiNet-S ist zwingend notwendig für die iSolarCloud und den Webserver Zugriff über das WiNet-S Modul selbst.
Du kannst dir aber aussuchen, ob der WiNet-S per WLAN oder eigenem LAN Port angebunden sein soll.
Du kannst beides parallel nutzen. LAN Port vom WR und den WiNet-S.
Mache ich auch so (evcc kann die Batterie nur per WR LAN Port auslesen).Firmware Update beinhalten natürlich ein gewissen Risiko, aber beheben ggf. auch Fehler oder verbessern etwas.
Also würde ich dir empfehlen sie einzuspielen. Zumal die gelieferte Hardware meistens eh einen alten Stand hat.
Ich habe auch WR, WiNet-S und Batterie erst einmal auf den neusten Stand gebraucht. Wie oft Sungrow neue Updates rausbringt weiß ich aber nicht. Glaube nicht, dass die das so oft machen. -
@mraiobroker said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Ich habe ihn soweit eingerichtet, doch scheint modbus.0.inputRegisters.13021_Battery_power_
bei Ladung und bei Entladung ein positiver Wert zu sein.Werte bei Register 13000_Running_State das Bit 2 und 3 aus.
Ist Bit 2 gesetzt wird der Speicher geladen, ist Bit 3 gesetzt wird der Speicher entladen.
Dann einfach den 13021_Battery_power_ mit -1 multiplizieren..... -
@stealthangel said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
@mraiobroker said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Ich habe ihn soweit eingerichtet, doch scheint modbus.0.inputRegisters.13021_Battery_power_
bei Ladung und bei Entladung ein positiver Wert zu sein.Werte bei Register 13000_Running_State das Bit 2 und 3 aus.
Ist Bit 2 gesetzt wird der Speicher geladen, ist Bit 3 gesetzt wird der Speicher entladen.
Dann einfach den 13021_Battery_power_ mit -1 multiplizieren.....Genau das möchte ich just in diesem Moment auch bauen. Nur scheitere ich gerade am Auslesen vom Bit Wert und der Weiterverarbeitung. Hab sowas auch noch nicht gemacht. Hast du ein Beispiel oder Blockly für mich ? Danke
-
bin gerade nur am Handy
Ich hab das so gelöst
Den Datenpunkt hab ich manuell erstellt und ihn dann im Energiefluss Adapter hinterlegt