NEWS
Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden
-
@manny4566 said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Beim mir reicht das auch aus, wenn der Winet mal wieder Amok läuft.
Danke, für den Hinweis. Mir fehlt im Augenblick die Vorstellung, wie die Registerdaten gebildet werden. Wenn es zwei LAN-Schnittstellen dafür gibt, kann das Sammeln der Daten ja eigentlich nicht im WiNet-Adapter gemacht werden - zumindest stelle ich mir vor, dass es wenig sinnvoll ist, das an zwei verschiedenen Stellen zu machen. Es müsste dann doch einen Service im Wechselrichter geben der nur Anfragen von verschiedenen Stellen bedient.
So stelle ich mir den Ablauf derzeit vor. Das habe ich jetzt "frei erfunden" - also nicht aus irgendeinem Dokument entnommen. Wenn es irgendwo einen hinterlegten Datenflussplan von Sungrow gäbe, wäre ich dankbar.
-
Wie es genau intern programmiert ist weiß ich nicht.
Aber wenn man sich die Geräteliste im Winet ansieht, dann sieht das so bei mir aus:Der Winet selbst stellt quasi die Schnittstelle über Modbus ID 1 und 2 zur Verfügung.
Intern spricht er die Geräte per 1 oder 200 an.Der WR selbst hört ja auch auf die ID 1 auf seinem LAN Port.
Der Winit wird nichts anderes sein, als eine Web-und Cloudschnittstelle für die Otto Normaluser und bietet gleichzeitig eine 2. Modbus Schnittstelle, indem er die Infos durchschleift. Dabei macht er das wohl nicht sauber mit allen Registern. -
@gombersiob said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:
Ich habe gerade festgestellt, dass Register 5003 "Total Output Energy" und der unter der iSolarCloud angezeigte Wert für den kompletten weit auseinderliegen:
Ich denke, ich habs jetzt gefunden. Das Register 5003 summiert nicht nur den Energieverbrauch sondern auch den exportierten Strom. Wenn ich den berücksichtige gehts auf:
-
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