NEWS
Mit Modbus Fronius-Akku aus dem Netz beladen
-
Hallo,
Ich habe hier und im Photovoltaik-Forum diverse professionelle Beiträge gelesen, wo ich nicht immer hinterherkam.
Immerhin gelingt es mir inzwischen, per Modbus zu gewünschten Zeiten das Entladen des Akkus zu verhindern, um später in der Hochpreisphase den Akku weiter zu entleeren. So kann ich Rest-Strom vom Abend über die billige Nacht in die teuren Morgenstunden "retten"Aber es gelingt mir einfach nicht, auch Strom vom Netz in den Akku zu laden, was inzwischen erlaubt ist.
Über die Gen24-Oberfläche unter Energiemangement/Batteriemanagement/Min.Ladeleistung geht es.Ich möchte das aber automatisieren.
Auf der obigen Seite ist "Batterieladung ... aus anderen Generatoren und dem öffentlichen Netz" aktiviert.Ich möchte also Strom aus dem Netz in den Akku laden. Ich denke, das entspricht nach der Froniusanleitung "Gen24_Primo_Symo_Inverter_Register_Map_Int&SF_storage.xlsx" dem Beispiel 5: Laden im Bereich von 50% bis 75% der nominalen Leistung
alsoRegister 40360 ChaGriSet --> 1 Register 40356 InWRte -- > 7500 Register 40355 OutWRte --> -5000 Register 40348 StorCtl_Mod --> 3
Aber wenn ich OutWRte einen negativen Wert gebe, wir dieser ganz kurze Zeit danach wieder in einen positiven Wert umgeschrieben. Von wem auch immer.
Habe ich einen Denkfehler oder fehlt noch eine Grundvoraussetzung, die ich übersehen habe.
Müssen evtl. noch bei manchen Registern der Typ geändert werden? Ich habe das alles bisher leer gelassen.
Viele Grüße -
Moin,
ich kann Dir zumindest bestätigen, dass es mit den Werten in Deinem Beispiel eigentlich funktionieren sollte. Mit den Registernamen und Werten funktioniert es bei mir genauso.
Die Registeradressen sind bei mir andere (jeweils 10 höher) aber da gibt's ja verschiedene Varianten, muss also kein Fehler sein.Auch wenn es in Deinem Beispiel nicht der Fall ist: Der Wert in OutWRte wird zurückgesetzt, wenn er betragsmäßig größer ist als InWRte.
Solltest Du also in inWRte z. B. 4000 stehen haben und setzt OutWRte auf -5000 wird es, zumindest bei mir, direkt wieder zurückgesetzt.VG Ralph
-
@ralph-0
Hallo, danke für deine Anregung. Morgen bin ich wieder zu Hause, das setze ich mich gleich ran. Schön zu lesen, dass es auch wirklich gehen kann. Ich hatte schon gezweifelt.Also nur um zweimal um die Ecke zu denken.
Wenn ich den Akku aus dem Netz mit 5kW laden will, also mit OutWRte -5000, muss InWRte auch -5000 sein? -
Nein, wenn Du den Akku aus dem Netz laden willst, müssen in OutWRte z. B. -5000 stehen, InWRte darf dann nicht kleiner als 5000 sein.
Anmerkung: Im ersten Post hast Du richtiger Weise von den Werten (-)5000 / 7500 und dem Laden im Bereich von 50% bis 75% der nominalen Leistung geschrieben. Jetzt hast Du 5 kW mit 5000 in Verbindung gebracht. Vermutlich ein Versehen. Aber weil es bei mir auch immer wieder zu ungewollten Ergebnissen geführt hat, weil zu schnell vergessen: 5000 steht hier nicht für 5000 W, sondern für 50.00% der Lade-/Entladeleistung oder anders ausgedrückt 0,5 C.
Anmerkung 2: -5000 in InWRte würde ein Entladen mit 0,5 C erzwingen, dann darf aber wiederum der Wert in OutWRte nicht kleiner als 5000 sein.
Edit: Weil mir gerade auffällt, dass der Akku noch gar nicht benannt wurde. Wenn ich schreibe, dass es bei mir funktioniert, rede ich von meiner Kombi mit einem BYD HVS. Von anderen hab ich keine Ahnung.
-
@ralph-0 Ja, das hätte ich schon im ersten Post schreiben müssen, es handelt sich um einen GEN24 PLUS mit BYD HVS, also auch wie bei dir.
Zu Anmerkung 1. Ich war ungenau, aber nicht richtig falsch. Ich habe einen rund 10 kWh fassenden Akku mit rund 10 kW Leistung. Also sind 5000 -> 5000W -> 5kW -> 50% Ladeleistung. Ich hatte nicht bedacht, dass es auch kleinere Akkus gibt, bei denen 50% einen anderen Wert bedeutet.Hast du beim Definieren der Holding-Register bei Type was eingetragen? Ich habe eine Anleitung gesehen, da wurde ausdrücklich nichts eingetragen. Andererseits hatte jemand im Forum vor einem Jahr eine Liste veröffentlicht, da interpretiere ich manche Einträge mit "unsigned 16 bit Big Endian" bzw. "Signed16 bit Big Endian" Das hieß leicht anders, deshalb schrieb ich interpretiere. Bin aber unterwegs, deshalb finde ich es jetzt nicht.
-
Ja, beim 10.2 ist es (fast) egal.
Die Typen hab ich eingetragen. Signed 16 bit (Big Endian) bzw. unsigned 16 bit (Big Endian) für In- und OutWRte. -
Ich bin mir ziemlich sicher dass der korrekte Register für OutWRte dieser ist: 40366. Dazu musst ich 40365 schreiben, da die register um Eins verschoben sind.
Wenn du aus dem Netz laden willst, musst du InWRte garnicht anfassen. Den lässt du einfach immer auf 100%. Das einzige was du ändern musst ist:OutWRte [40366] auf den Prozentwert wie oben beschrieben (Achtung, negativ schreiben. Da mein System nur positive Zahlen schreiben kann muss ich 65536 - Prozentwert (in 12%) * 100 schreiben.
StorCtl_Mod [40359] auf 3Wenn man zurück will OutWRte auf 10000 und StorCtl_Mod auf 0.
viel erfolg
-
This post is deleted! -
@flashback
Hi, ich grätsche hier mal rein, da ich auch vor dem Problem stehe.
Ich habe auch einen Fronius GEN24 8.0 und einen 10kWh Speicher.Modbus Einstellung:
Zu allererst habe ich jedoch eine andere Frage:
Wenn ich über das Web-Interface steuere:Dann wird das richtig durchgeführt (Ladung mit 3500 W).
Die Modbus-Datenliste habe ich aus dem Web und die Register stimmen mit den Nummern überein, wie sie schon hier beschrieben sind.
Aber diese Werte spiegeln sich nicht in den Modbus-Daten wieder.
-
@diwoma ich hab nie mit dem webinterface gearbeitet. Daher weiß ich nicht ob diese Einstellung per modbus auslesbar ist.
PS: ich nutze die float Konfiguration zur Eingabe der Werte
-
@flashback said in Mit Modbus Fronius-Akku aus dem Netz beladen:
Ich bin mir ziemlich sicher dass der korrekte Register für OutWRte dieser ist: 40366. Dazu musst ich 40365 schreiben, da die register um Eins verschoben sind.
jo, da bin ich mir auch sicher - deswegen hatte ich oben ja auch geschrieben, dass das bei mir mit dem Register funktioniert ;-).
Wenn man zurück will OutWRte auf 10000 und StorCtl_Mod auf 0.
Eins von beiden reicht.
Mit OutWRte 10000 wird das Entladen mit max 100% ins Haus freigegeben und das Laden aus dem Netz unterbunden. Mit StorCtl_Mod 0 wird die Steuerung des WR über Modbus komplett unterbunden.@diwoma said in Mit Modbus Fronius-Akku aus dem Netz beladen:
Zu dem Screenshot des WR: Modbusport und Zähleradresse kann ich so bestätigen, hab ich auch so. Als Model Type hab ich allerdings float, wie flashback ja auch. Wenn Du bei int+SF bleiben willst/musst, sind die Register andere, z. B. für OutWRte ist es 40355, s. ersten Post.Aber diese Werte spiegeln sich nicht in den Modbus-Daten wieder.
Du erwartest, in den Modbusregistern einen passenden negativen Wert in OutWRte zu Deinen eingetragenen 3500 W Min Ladeleistung zu finden? Wirst Du nicht. Die Software schickt sich ja vermutlich nicht selbst ne Nachricht über die Modbusregister sondern stellt direkt die gewünschte Lade-/Entladeleistung ein.
-
So, bin auch wieder da
Ich brauchte die Zeit und Ruhe des Wochenendes, um hinter die ganze Logik zu kommen und vor allem zu lernen, dass man scheinbar die Modbusregister nicht aktualisieren, sondern steuern muss....Ohne eure Hilfe hätte ich es nicht geschafft, an zu vielen Stellen lag ich mit meiner Denke nicht richtig.
Ich bleibe jetzt bei int+FS und verschiebe die Registernummern um ein.
Ich habe noch eine Frage. Direkt in den Modbus-Registern zu manipulieren, ist zumindest für mich nicht ganz Ohne....
Habt ihr eigentlich einen Plab B für den Fall, dass das Programm eine temporäre Änderung durchführt, z.B. maximale Entladung auf 0 und dann steigt der ioBroker oder Raspi aus und ich kann, weil ich nicht zu Hause bin, kurzfristig was ändern.
Was ich in den Registern geändert habe, kann ich nicht mit den Einstellungen im Webinterface des Gen24 ändern.
Habt ihr da evtl. eine bestimmte App, wo man zB. über VPN und die App die Register händisch zumindest auf Normalzustand stellen kann? Wenn ich @Ralph-0 richtig verstanden habe, zumindest StorCtl_Mod wieder auf 0 setzen. -
@docadams said in Mit Modbus Fronius-Akku aus dem Netz beladen:
Habt ihr eigentlich einen Plab B für den Fall, dass das Programm eine temporäre Änderung durchführt, z.B. maximale Entladung auf 0 und dann steigt der ioBroker oder Raspi aus und ich kann, weil ich nicht zu Hause bin, kurzfristig was ändern.
Ist bei mir noch nicht vorgekommen aber falls das mal passieren sollte, würde ich per VPN beim Gen24 die Steuerung per Modbus ausschalten und mich um den ioBroker kümmern, wenn ich wieder zu Hause bin.
-
@ralph-0 das ist eine bessere Idee, als aus der Entfernung in Registern zu manipulieren.
Aber nützt das System für sich selbst nicht auch diese Register? Und da stehen dann dauerhaft Werte, die nur kurzzeitig gelten sollten.
Ich werde es ausprobieren und berichten. -
Es ist, wie ich befürchtet hatte, zumindest habe ich es nicht hinbekommen...
Ich habe in einer Phase, in der normaler Akkubezug möglich war, per Skript den Akkubezug gestoppt:
StoreCtl auf 2
OutWRte auf 0
Dies entspricht doch Min.Entladeleistung = 0, oder?Wie erwartet, wurde Strom aus dem Netz bezogen.
Angenommen, der RasPi fällt jetzt aus, wird nun permanent Strom nur noch aus dem Netz bezogen.
Also habe ich nun im Gen24 /Kommunikation/Modbus/Steuerung erlauben ausgeschaltet.
Ich kann nun im Gen24 /Energiemanagement/Batteriemanagement/Max.Endladeleistung auf 10000W stellen, trotzdem wird nichts aus dem Akku entladen. Weil vermutlich der immer noch im Register stehende Wert höherwertig ist.Ohne funktionierenden RasPi fällt mir jetzt nichts ein, den Normalzustand herzustellen, also
StoreCtl auf 0
OutWRte auf 10000
bzw. Batteriemanagement keinerlei aktive Änderungen.Ohne Plan B ist mir das sehr heikel. Der RasPi könnte ja auch ausfallen, wenn gerade Netzbezug erzwungen wird, um den Akku aus dem Netz zu laden. Wenn das permanent eingeschaltet ist...
Klar, mir noch nie passiert. Aber irgendwann icht immer das erste Mal.... -
@docadams
Versuchs mal anstatt "Steuerung erlauben" mit "Aktivieren" ausschalten.Bei mir wird damit jegliche vorher aktive "Modbus-Aktion" abgebrochen.
Nachdem wieder Einschalten von "Aktivieren" ist in den Modbus-Registern zu sehen, dass der Gen24 die Werte StorCtl_Mod, OutWRte und InWRte auf Default zurückgesetzt hat.