NEWS
Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden
-
@homoran Sorry. Selbstverständliche.
Ich habe einen Docker auf meiner Synology am laufen, hierin befindet sich der ioBroker v6.10.1.
In dem ioBroker habe ich nun 3 Modbus Instanzen aufgemacht. Main der via Netzwerkkabel angeschlossen ist, der zweite und dritte über den Wifi-dongle des Sungrow Wechselrichters.Die Anlage ist so aufgebaut, dass ich beide Dachseiten belegt habe, und jede der Seiten einen eigenen Wechselrichter mit jeweils 2 strings hat.
Die Wechselrichter allerdings sind zusammen geschaltet (Master/Slave) wurde mir gesagt.
Am Main/Primären/Master (Ost) hängt auch meine Batterie ebenfalls von Sungrow.Somit (mit den 3 Modbus Instanzen) kann ich jetzt weitestgehend die Daten abgreifen. Allerdings erschließt sich mir noch nicht das Register 13007.
Hier dachte ich dass der aktuelle Verbrauch angezeigt wird. Der schaut auch zum teil richtig aus 300W, 500W, dann wiederum springt dieser in den Terawatt Bereich (429496630,5 W). -
Ich habe eine Frage bzgl. dem Setzen von Werten via Modbus: konkret geht es darum, dass ich die max. Ladeleistung ab und an an die Gegebenheiten anpasse:
-
im Sommer war es ein geringer Wert, da ich wußte, dass am Tag lang genug die Sonne scheint um die Batterie soweit aufzuladen, dass es durch die Nacht reicht
-
jetzt wo die Tage kürzer werden, möchte ich den Wert etwas erhöhen
Bisher habe ich mich dafür mit dem Admin Account angemeldet und bin dann über die "Erweiterten Einstellungen" des WR gegangen, um da dann die Batterieparameter zu ändern (konrekt "Max. Ladeleistung").
Da ich via iobroker und Modbus Adapter schon alle Daten auslese, die für mich relevant sind, möchte ich mich jetzt ans Setzen von Werten machen. Dazu brauche ich einerseits eine importierbare Liste von Holding Registern (die Eingangsregister sind schnell zu finden, aber bei Holding bin ich bisher nicht fündig geworden, die Liste, die hier verlinkt ist kann ich nicht laden, da bekomme ich ne Menge Fehler):
Andererseits ist dann die Frage, welche Werte ich wie setzen muss, damit die Ladeleistung vom aktuellen Wert lesen (welches Register muss ich dafür auslesen?) und dann auch auf einen anderen Wert setzen kann...
-
-
@maddm
Ganz am Anfang dieses ganzen Threads gibt es eine Liste der Holding Register. Aber eigentlich brauchst Du ja auch keine Liste, das oder die Register, die Du setzen willst, reichen ja. Und die würde ich aus der Dokumentation nehmen. Die gibt es am Anfang des Threads auch zum Download.Aber ich verstehe den Sinn dieser Aktion nicht wirklich. Das Ganze regelt sich doch automatisch. Wenn der Strom über Nacht nicht verbraucht wird, ist doch die Batterie am nächsten Tag nicht leer - es wird darum auch nicht mehr so viel geladen. Die Gewinn durch Einschränkung der Ladefähigkeit kann sich doch nur im Centbereich liegen - mit der Gefahr, im Zweifelsfalle Strom kaufen zu müssen, falls man doch weniger geladen hätte als möglich gewesen wäre.
-
@gombersiob
Ich hab jetzt mal ein paar Werte der Holding Register im modbus Adapter hinterlegt und da werden dann auch die passenden Objekte erzeugt.
Ich habe verstanden, dass die max. Ladeleistung in Register 33047 steht... da steht der Wert von 106W drin. Ich habe aber gerade gestern den Wert auf 2.5 kW gesetzt... diesen Wert finde ich aber in keinem der Register.
Irgendwas passt da doch nicht ganz... wo kann ich denn den Wert von 2.5 kW (oder eben 2500 W) finden, erstmal nur zum Lesen, beschreiben ist dann erst der nächste Schritt.
-
@maddm
Könntest du bitte deine Konfiguration teilen, ich versuch seit Stunden herauszufinden wie ich auf die Holding Register für max. Entladeleistung der Batterie zugeifen kann.Meine aktullen Einstellugen funktionieren einfach nicht
_address name description unit type len factor offset formula role room poll wp cw isScale 33047 Max. charge power W uint16be 1 10 0 level 33048 Max. discharge power W uint16be 1 10 level
-
Wo kommen den die Register 33047/33048 her? In der Dokumentation sind sie nicht erwähnt.
Weder für die Hybrid WR:
Communication-protocol-of-residential-hybrid-inverterv1.0.20-1.pdf
Noch für die String WR:
Communication Protocol of PV Grid-Connected String Inverters_V1.1.37_EN.pdfSind die Register 13057 (Max SOC) und 13058 (Min SOC) gemeint? Zugegeben, ich rate nur. Das scheint mir von der Wortbedeutung her am ehesten zu passen.
Ich füge mal eine bei mir funktionierende Holding-Register Liste bei (Funktionieren heißt, es wurden keine Fehler geschrieben - ausprobiert habe ich gar nichts, die Liste habe ich bei mir auch wieder aus ioBroker gelöscht - ich nutze die Daten nicht.
1612383966263-holding-register2021_02_04(bearbeitet).txt
Die Liste muss per download auf den lokalen PC geladen werden und kann dann per Copy&Paste in die Moddbus-Instanz eingefügt werden. Bei Anzeige im Browser fehlen die Tabulatoren.
-
@gombersiob
Die Werte kommen aus dem vorherigen Beitrag. Danke für die Liste und dem Link zum PDF mit den Infos bin ich schon einen Schritt weitergekommen.
Wenn ich in der SunGrow iSolarCloud die Werte unter Erweiterte Einstellungen -> Batterieparameter -> Maximale Ladeleistung bzw. maximale Entladeleistung ändere, landen die beiden Werte in den Holding Registern 33046 und 33047.Zunächst klappte das schreiben über ioBroker noch nicht, d.h. die werte werden von SHRT nach dem schreiben nicht berücksichtigt. Hatte hier aber den Fehler gemacht, beim Schreiben die Checkbox "Bestätigt" zu setzen - läst man diese frei kann man so auch die maximale Lade / Endladeleistung setzten.
Folgenden Holing Register habe ich auch hier gefunden (github-mkaiser
33046 Max charge power W uint16be 1 10 0 level true false false false 33047 Max discharge power W uint16be 1 10 0 level true false false false 33048 Battery capacity kWh uint16be 1 0.01 0 level true false false false 33148 Battery charging start power W uint16be 1 10 0 level true false false false 33149 Battery discharging start power W uint16be 1 10 0 level true false false false
-
Hoffe ihr könnt mir weiterhelfen.
Modbus Kommandos und Auslesen klappt alles wunderbar.Wenn ich jetzt zB. für 2 Stunden einen Slot habe mit ganz günstigem Strom - und ich die Batterie dann auf 95% laden will - parallel aber die Sonne scheint und die Batterie bereits mit 1000W über den WR gespeist wird....
Ich setze EMS Mode auf 2 - und die Ladeleistung auf 5000W und Force Charge Command.
Wird dann die Batterie weiterhin mit 1000W fon der Sonne geladen und zusätzlich mit 5000W vom Netz?
Wenn die Sonne gerade 5000W liefert in die Batterie - zieht er dann noch vom Netz?Schaltet die EMS Mode 2 (manuell) die PV Ladung aus?
lg
halsi -
@java_c
In dem Post habe ich jetzt endlich die Antwort gefunden, in welchem Register die max. Ladeleistung der Batterie zu finden ist, vielen Dank dafür.Jetzt schließt sich die Frage an:
gibt es etwas zu beachten, wenn dieser Wert vom IOBroker aus geändert wird (setState in JS oder eben in Blockly)? Ich hab weiter oben was gelesen, dass man zusätzlich ein anderes Feld ändern muss, um die Ladeleistung überhaupt zu ändern...Hat jemand dazu ein funktionierendes Blockly oder ein S, dass ich mir als Vorlage mal anschauen kann?
-
Einbindung hat super geklappt. Was mir aktuell fehlt ist die Batterie Entladeleistung. 13021 übermittelt die Ladeleistung positiv. Und so wie das aussieht auch die Entladung positiv. Aber wie kann ich das dann unterscheiden? Oder muss ich den Punkt anders konfigurieren? Bzw. gibt es einen Entladepunkt?
-
Lies doch bitte mal diesen Thread ab https://forum.iobroker.net/topic/38441/sungrow-wr-sgh10rt-erfolgreich-mit-modbus-eingebunden/498?lang=de. Vielleicht auch mal einen oder zwei Beiträge vorher.
Dieses Thema mit der Entscheidung, ob die Batterie geladen wird oder ob sie entladen wird ist hier jetzt in diesem Thread einigermassen oft diskutiert worden. Ich möchte die Argumente hier nicht alle wiederholen. -
@gombersiob
Super vielen Dank -
Moin,
ich habe auch IOBroker laufen und mittlerweile auch ein Sungrow ACE011-01 Wallbox, die über den WR SH10RT mit Steuerleitung verbunden ist.
da mir die Werte auch über die isolarcloud app und Webseite angezeigt werden, hier die Frage: kann ich die aktuellen Werte auch über Modbus auslesen? Sollte ja über den WR alles laufen.
ich finde allerdings keine richtige Doku über die zusätzlichen Register.Stefan
-
@sworonka
Das wäre aber eine Frage zur Wallbox? Ich würde erwarten, dass man Prioritäten setzen kann.- Laden nur wenn die Sonne scheint
- WR-Speicher vor Wallbox.
- Auto nur teilweise volladen,
- Autobatterie als zusätzlicher Hausstrompuffer nehmen
- das ist das was mir gerade als sinnvoll einfällt.
Kann die Wallbox das?
Einige der Parameter müssten über die Wallbox gesteuert werden - nur die kennt z.B. den Ladezustand des Autos. Anderes, wie, dass die Sonne scheint (Strom erzeugt wird) weiss der WR.
Ich weiss, ich habe nur Fragen und kann Ihre Frage nicht beantworten (mir fällt kein Modbus-Register ein, das passen könnte) - würde mich aber für die Wallbox interessieren. Früher odef später brauch ich auch sowas.
-
Ich habe exakt das identische Problem.....
Hast du mittlerweile die Fehlerquelle gefunden?
Ich habe schon alles von Neustart bis Anfragen beim Solateur bzw. Sungrow versucht. Leider erfolgslos....
Die Daten passen ja gelegentlich, springen dann aber wieder in einen TW Bereich.....
LG
-
@GombersIOB
Mich interessiert eher die aktuelle Ladeleistun, da ich PV-gestütztes LAden damit mache. Allerdings ist die isolarcloud da eher Zeitverzögert. ich hätte gerne einen möglichst aktuellen Wert.im WINET-S sehe ich zwei Geräte. Die Wallbox hat dort die modbus ID 2, der WR die ID 1.
-
@sworonka
Ich denke, Du solltest im Photovoltaikforum mal fragen. Da liest Sungrow wohl mit. Und wenn Du was findest, wäre es schön, wenn Du das hier auch postest. -
Dieses Thema umfasst mittlerweile über 530 Posts und es werden an mehreren Stellen txt-Files oder Excel Files zum Downloaden für die Registerdaten aufgeführt. Ich sehe mittlerweile den Wald vor lauter Bäumen nicht mehr. Habe gerade in einem anderen Post ( https://forum.iobroker.net/topic/61969/gelöst-modbus-import-tsv-no-field-isscale-in-position-15/23?_=1697988263548 ) Daten für das Holding Register bekommen. Jetzt fehlen mir aber anscheinend noch die Daten für das Eingangsregister. Was sind aktuelle Daten, die ich für das Eingangsregister einkopieren kann?
-
@gombersiob Was heisst laut ModBus. die tatsächliche Füllmenge hast du doch errechnet, die kommt nicht vom WR! Die Werte sind etwas verwirrend. Wenn du z.B: einen MinSoC von 15% eingestellt hättest, dann wird ab sofort 15% also 0% in der App angezeigt. Wenn du dann 8.2khw lädst, dann ist der Akku laut App zu 100% gefüllt! Ps. wenn du den Max SOC nicht auf 100% hast, dann habe ich schon gelesen, das der Akku ab und zu eine Zwangsladung macht um sich zu kalibrieren. Evtl. war das bei dir der Fall!
-
Wozu habt ihr ein eigenes BMS aufgebaut, wo ist da der Vorteil/Nachteil?
Ich hatte es mir auch schon überlegt, weil der interne BMS relativ langsam nachregelt und auch immer versucht auf 0 W am Hausübergabepunkt zu kommen. <-- das ist aus zweierlei Gründen schlecht. 1. ist das Smartmeter nicht genormt und nur auf 7W genau, und 2. schwankt die Last und die Erzeugung permanent ein Wenig somit wird immer mal wieder was eingespeist und dann wieder gezogen und Kleinvieh macht auch Mist). Ich hätte mir einen Parameter in der Software gewünscht, in dem ich den Sollwert am Übergabepunkt einstellen kann. z.B: 20W. Somit wäre das ewige hin und her und auch die Messungenauigkeit einfach weg!* Edit: Interessante Beobachtung (vielleicht kann das ja mal jemand Testen).
Wenn ich den EMS auf 2 Stelle geht zeigt der Datenpunkt 5016 "Aktuelle DC Leistung" direkt mal 150W mehr an, sobald ich den EMS zurück auf 0 setze, geht es um 150W runter. Dies ist zu 100% reproduzierbar (bei mir)
Hat da jemand eine Erklärung zu? Benötigt der EMS etwa 150W und wird im Datenpunkt versteckt damit man das nicht sieht?Edit2: Die Beobachtung stimmt zwar, aber die Werte stimmen sonst nicht dazu. d.h. es werden zwar 150W mehr angezeigt, aber diese werden nicht mehr generiert. Denn:
Batterieladung + Aktueller Verbrauch + Einspeisung = Erzeugung -150W bei EMS = 2
Batterieladung + Aktueller Verbrauch + Einspeisung = Erzeugung bei EMS = 0