NEWS
Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden
-
Guck dir mal live die Register 13016, 13025, 13044 und 5002 an für täglich. Da kann man live die Veränderung sehen.
Die Gegenstücke dazu sind 13017, 13026, 13045 und 5003 für gesamt.Ich glaube 5002 bzw. 5003 sind die Summe der grünen Energie. Sprich die Summe von PV direkter Eigenverbrauch, Batterie Entladung und Verkauf. Die Zahlen gehen auf oder ?
-
@manny4566 said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Ich glaube 5002 bzw. 5003 sind die Summe der grünen Energie
Der Auffassung bin ich, wie gesagt, jetzt auch. Danke für den Hinweis, aber ich nutze schon alle Register, die die Leistung und verbrauchte Energie beschreiben, nur bei 5002/5003 hatte ich nicht im Blick, dass sie die Export-Daten beinhalten würden.
-
Der Wert 5003 wird mir angezeigt - wie bekomme ich Nachkommastellen?
-
@ljsven
Der Faktor ist 0.1. Wenn der angegeben wäre, würde der Adapter das entsprechend rechnen und in den Datenpunkt einstellen. -
@gombersiob Habe ich auch gedacht - daraus macht er aber 595.7 - richtig wäre aber 5956.6
-
@ljsven
Schau doch mal mit einem ModBus Client, was im Register steht (ich verwende, wie oben beschrieben den VagaModBus Analyzer unter Windows10). Sollte E8AE sein.
Das sieht für mich dann nach ein Adapter-Fehler aus.Kann ich nicht nachstellen, habe meine Anlage gerade mal zwei Monate - da sind die Zahlen noch kleiner.
-
@manny4566 said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Der WR selbst hört ja auch auf die ID 1 auf seinem LAN Port.
Habe das jetzt so angeschlossen. Beide Ethernet-Anschlüsse angeschlossen. Mein Programm fragt über den einen Ethernet-Adapter ab, ioBroker über den WiNet-S-Adapter. Vielleicht vermeidet das ja auch Kollisionen.
In meinem Programm fällt mir auf, dass die Abfrage aller Register insgesamt 8 Sekunden dauert - egal ob WiNet oder der normale Ethernet-Anschluss benutzt wird.
Das heißt aber auch, dass im ioBroker die Daten zeitlich weit auseinanderliegen können und deshalb die Summen, für die augenblicklichen (Leistungs)-Daten, vermutlich meist nicht wirklich aufgehen. -
Hallo,
inzwischen habe ich die Input-Register für meinen SGH10RT richtig gesetzt. Wobei ich diesen per WiNET ansteueere (falls dies einen Unterschied macht). ich habe folgende Werte: Sungrow ModBus InputRegister - SH10RT.tsv
Ein Problem habe ich mit der Batterie-Leistung. Diese wird mir nur ohne Vorzeichen ausgegeben. Ich kann also nicht zwischen Laden und Entladen unterscheiden. Gerade für eine grafische Darstellung wäre dies aber hilfreich.
Hat jemand einen Tipp für mich, wie ich erkennen kann ob die Batterie geladen der entladen wird?
Vielen Dank!
-
-
@d-franz said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Hat jemand einen Tipp für mich, wie ich erkennen kann ob die Batterie geladen der entladen wird?
Ich denke, man muss die Felder untersuchen und dann entscheiden. Ich habe mir das, wie ich denke, dass es funktionieren müsste, mal als Blockly zusammengetragen
(Korrigiert: Stand: 22.2.2023 - 19:30)Korrekturen:
- In der Function "isBatteryChargingFromGrid" war der Vergleich von loadPower und exportPower verkehrt.
- In der Function "isBatteryDischarging" fehlte der untere Logikteil "falls IsBatteryCharging == falsch".
Insgesamt habe ich jetzt diese Anzeige:
- Für importierten Strom wird die Zahl rot unterlegt.
- Entladen der Batterie wird, wie hier, mit einem roten "D", laden würde mit einem gelben "C" angezeigt. Ausserdem habe ich mir mit dieser letzten Korrektur noch die Möglichkeit geschaffen anzuzeigen, ob die Batterie aus dem Netz oder von PV geladen wird.
Damit man das Programm nicht eintippen muss, füge ich den XML-Export davon bei. Dann kann jeder, der Verbesserungspotential oder Notwendigkeit von Korrekturen sieht, das anfügen (und hoffentlich hier posten).
Einfach unter Blockly importieren.
BatteryChargingDischarging.xmlGegenüber gestern habe ich die Parameterübergabe korrigiert. Außerdem das Laden aus der PV getestet. Das Skript funktioniert zumindest dafür.
Das Laden der Batterie aus dem Netz konnte ich nicht testen. Und Entladen auch nicht. -
@manny4566
Hier noch mein Code aus Beitrag #337 wie von @manny4566 erwähnt.
Ergebnis ist ein der Datenpunkt 0_userdata.0.PV_Datenpunkte.Berechnung_Batterieentladung_negativ
unter userdata<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="(ocA``hXb:ASln87_[5i">PV Akku Be- oder Entladung</variable> </variables> <block type="on_ext" id="ehBZF8`0,PKLSMKg__PB" x="-2012" y="-487"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="0m^saRA]WjVCQ`9A%2n8"> <field name="oid">modbus.0.inputRegisters.13007_Load_power_</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="F`@4}oyq-b-2|/kYbR$U"> <field name="VAR" id="(ocA``hXb:ASln87_[5i">PV Akku Be- oder Entladung</field> <value name="VALUE"> <block type="math_arithmetic" id="1Zv4~dL0,_aGpt}7[_kP"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="d[QgpJU-{V|[)Y8g,,:@"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="5||kb1lHC-qwY!85c3KH"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="lWjzQ^1^A)~nyY4K}k/%"> <field name="NUM">1</field> </shadow> <block type="get_value" id="v|oqCDrxh=7lS_fPh~*["> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.5016_Total_DC_Power</field> </block> </value> <value name="B"> <shadow type="math_number" id="hMTHE%-|Fip{Z1M$2d7y"> <field name="NUM">1</field> </shadow> <block type="get_value" id="pQL:D)uc#*C|yW94;;1U"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.13007_Load_power_</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="LWB:(CTORxv:`-#$RF=q"> <field name="NUM">1</field> </shadow> <block type="get_value" id="E}0?u4:S)mn)6}@G9fd]"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.13009_Export_power</field> </block> </value> </block> </value> <next> <block type="update" id="(TMX3NmoY?k,I8B2]p?C"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_Datenpunkte.Berechnung_Batterieentladung_negativ</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="p$a.=$hGsH%AenyyxPI!"> <field name="VAR" id="(ocA``hXb:ASln87_[5i">PV Akku Be- oder Entladung</field> </block> </value> </block> </next> </block> </statement> </block> </xml>
Mir freundlichen Grüßen aus Bad Friedrichshall wo ich heute um 0,1 kW an 100%-Autarkie über Nacht vorbeigeschrammt bin ;-). Eine Minute früher Sonne und es hätte gereicht
-
Hallo zusammen,
ich habe mir erlaubt für Skripte ein neues (Folge) Thema aufzumachen.
Findet ihr hier.
https://forum.iobroker.net/topic/63226/sungrow-wr-sgh10rt-modbus-ioskripte
Hoffe das passt für euch und es wird angenommen. Hier gehen evtl. interessante Skripte unter, bei aktuell über 300 Einträgen
-
ich habe mir erlaubt für Skripte ein neues (Folge) Thema aufzumachen.
Die Idee ist gut, danke dafür. Aber Du solltest vielleicht eher das Blockly als Bild zeigen und den Export als File.
-
@gombersiob sagte in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
ich habe mir erlaubt für Skripte ein neues (Folge) Thema aufzumachen.
Die Idee ist gut, danke dafür. Aber Du solltest vielleicht eher das Blockly als Bild zeigen und den Export als File.
Das sorgt sicher für mehr Übersichtlichkeit. Schaue dass ich es morgen umsetze
-
@mraiobroker : Vielen Dank! Diese Lösung gefällt mir sehr gut.
-
@d-franz said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Vielen Dank! Diese Lösung gefällt mir sehr gut.
Die Rechnung entscheidet aber nicht, ob entladen oder geladen wird. Das war doch das, was sie wissen wollten. Außerdem ist sie unnötig. Denn egal, ob geladen oder entladen wird, sagt Ihnen doch die Battery Power, wie groß die anliegende Leistung ist.
Diese drei Szenarien sehe ich gerade bei mir bzgl entladen.
Und ich habe mir mal eine Entscheidungsmatrix gemach um zu sehen, was meiner Meinung nach, bezüglich Batterieladung derzeit möglich ist:
Beides, Laden und Entladen gleichzeitig (z.B. Laden aus PV und Wietergabe an Hausnetz), ist mir noch nicht begegnet. Es macht keinen Sinn und ist vermutlich nicht möglich.Man könnte jetzt ermitteln wie sich der Ladestrom bzw Entladestrom auf die verschiedenen Quellen verteilt - das geht aber nur über den Vergleich der Zahlen.
-
Doch die Rechnung kann das, weil der Export das korrekte Vorzeichen liefert
Einfach ausprobieren -
@mraiobroker said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Doch die Rechnung kann das, weil der Export das korrekte Vorzeichen liefert
Du hast recht. Ich bin auf dem Papiere jetzt mal alle Fallunterscheidungen durchgegangen. War ein bisschen Arbeit - und ja. Es stimmt!
Hier mein Beweis:
Sei PV der erzeugte Strom, LP der verbrauchte Strom und EP der Strom am Netz- PV = 0: Dann ist -EP größer oder gleich LP, denn das Haus wird aus dem Netz versorgt und vielleicht die Batterie noch geladen
das heißt zwangsläufig 0-LP-EP >=0. - PV > 0: Dann gibt es zwei Fälle:
- PV < LP: Dann muss Strom importiert werden: -EP >= PV - LP. EP versorgt also LP und lädt vielleicht auch die Batterie. PV-LP-EP>=0
- PV > LP: Dann gibt es wiederum drei Fälle:
- EP = 0: Dann ist PV-LP-0>0, die PV gibt den überschüssigen Strom an die Batterie (lädt!)
- EP > 0:
- Wenn EP > PV-LP ist, dann bedeutet das, dass Strom aus der Batterie entladen wird und PV-LP-EP<0. Passt
- Wenn EP < PV-LP ist, dann versorgt die PV sowohl das Netz (und es ist noch Strom da!) auch die Batterie: PV-LP-EP < 0. Passt auch!
- EP < 0: Das heisst es wird Strom importiert. Da PV ja größer als LP ist wird also Strom an die Batterie abgegeben, wo soll er sonst hin. PV-LP-EP>0. Passt auch.
Damit wäre das jetzt auch logisch geklärt!
- PV = 0: Dann ist -EP größer oder gleich LP, denn das Haus wird aus dem Netz versorgt und vielleicht die Batterie noch geladen
-
@gombersiob
Hallo gombersiob,
liest Du den modbus über Winet Adapter aus?
Das war mein Problem. Deshalb war bei mir auch das Running State Register permanent auf 0.
Nach Umstöpseln auf den separaten LAN Port und Umstellung der IP im ModbusAdapter wird bei mir das 13000 Register sauber befüllt.Gruß
Rana -
@rana said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Nach Umstöpseln auf den separaten LAN Port
Ja, das hat geholfen. Danke!
Da es hier einen Unterschied gibt, habe ich mir die Register-Werte aus WiNet-S und dem separaten LAN-Port mal angeschaut. Folgende Unterschiede sind mir aufgefallen
Es scheint mir sinnvoll zu sein, eher auf die Daten vom separaten LAN-Port zu setzen! Es scheint eher der Dokumentation zu entsprechen.