NEWS
Fronius Symo Gen24: minSOC einstellen
-
@pedder007 In diesem Fall passt aber bei euch die Konfiguration nicht. Wenn die Konfiguration korrekt ist, dann wird beim Modbus entsprechend einfach der Prozentwert eingegeben...
"common": {
"name": "Setpoint for minimum reserve for storage as a percentage of the nominal maximum storage.",
"role": "value",
"type": "number",
"read": true,
"write": true,
"def": 0,
"unit": "% WChaMax"
},
"native": {
"regType": "holdingRegs",
"address": 40360,
"deviceId": 1,
"type": "uint16be",
"len": 1,
"offset": 0,
"factor": 0.01,
"poll": true
}, -
@nkleber sagte in Fronius Symo Gen24: minSOC einstellen:
"factor": 0.01,
Ja, da hast Du auch wieder Recht
Ich hab's gerade im Adapter kontrolliert und da stand bei mir eine '1' im Faktor
Passe ich das an, kann ich dann auch wieder '15' anstatt '1500' eingeben und es klappt.Sehr schön, danke auch an Dich @nkleber
-
Hallo,
habe gerade meinen Gen24 per Modbus angehängt und kann somit auch einzelne Werte setzen (z.b. Entladeleistung der BYD Akkus).Nun möchte ich aber zeitgesteuert die Nachladung aus dem Netz erzwingen (AWATTAR bietet oft fast kostenfreien Strom).
Dazu habe ich versucht das Register 40360 ChaGriSet auf 1 zu setzen. Lt. Anleitung ist auch in der Oberfläche des Gen24 die Checkbox "Batterieladung aus dem öffentlichen Netz zulassen" zu setzen. Leider wird so aber der Akku nicht aus dem Netz geladen.
Einzig durch erhöhen des Registers 40350 MinRsvPct (Min. Reserve for Storage in %) wurde die Ladung erzwungen.Hat schon jemand geschafft 40360 ChaGriSet zur Ladung des Akkus zu nutzen?
danke & mfg Wolfgang
PS: Danke an alle, die hier ihre Erfahrungen und Expertise teilen, wirklich toll, was alles möglich ist! -
@wolfgang-gary sagte in Fronius Symo Gen24: minSOC einstellen:
Einzig durch erhöhen des Registers 40350 MinRsvPct
Hi, bei mir ist der Case zwar etwas anders, aber Zwangsladung per Register steuere ich über:
40348_StorCtl_Mod => '2'
40355_OutWRte => '-125' (=~100W Ladelstg,, oder z.B. '-650' =~500W Ladelstg. )Da ich das für meine Zwecke mit den Registeransteuerungen (via Blockly) auch etwas verwirrend fand, habe ich tatsächlich herumprobiert und mir, für meine Zwecke, dazu eine kleine Hilfstabelle mit den Parametern für die, für mich, relevanten Register angelegt. So weiß ich dann auch noch in 6 Monaten was ich mir dabei mal gedacht hatte
Ich war auch kurz versucht die Tabelle hier zu teilen, lasse das aber mal lieber, da das bestimmt einen Endlos-Thread erzeugen würde -
Hi @wolfgang-gary ,
ich habe mit eine JS Funktion geschrieben um die erzwungene Ladung zeitlich zu steuern.
Mein ANwendungsfall ist, dass ich um ca. 17h die awattar Preise prüfe und dann berechne ob und wann es sich auszahlt in der Nacht die Batterie übers Netz zu laden.
Ich berechne dazu sowohl die Dauer der Ladung als auch die minimale Laderate die ich brauche um die Batterie in der Zeit auf gewünschten Ladestand zu bekommen.Die Funktion ist aber universeller einsetzbar. Man übergibt einfach die notwendigen Werte (siehe Kommentare im Code):
function setRechargeTimers(delayStart, delayEnd, scaledRechargeSoC, rechargeRate, chargeRateScalingFactor) { // set timers to start the charging (delayStart in ms from "now") */ var t1 = setStateDelayed('modbus.0.holdingRegisters.1.40360_ChaGriSet', 1, delayStart, false); // allow charging from grid var t2 = setStateDelayed('modbus.0.holdingRegisters.1.40350_MinRsvPct', scaledRechargeSoC, delayStart + 100, false); // set target SoC var t3 = setStateDelayed('modbus.0.holdingRegisters.1.40355_OutWRte', -rechargeRate/chargeRateScalingFactor, delayStart + 200, false); // set charge rate var t4 = setStateDelayed('modbus.0.holdingRegisters.1.40356_InWRte', 100/chargeRateScalingFactor, delayStart + 300, false); // set max charge rate to 100% var t5 = setStateDelayed('modbus.0.holdingRegisters.1.40348_StorCtl_Mod', 3, delayStart + 400, false); // activate the above set limits // set timers to stop charging (delayEnd in ms from "now") */ var t6 = setStateDelayed('modbus.0.holdingRegisters.1.40348_StorCtl_Mod', 0, delayEnd, false); // deactivate above set limits var t7 = setStateDelayed('modbus.0.holdingRegisters.1.40355_OutWRte', 100/chargeRateScalingFactor, delayEnd + 100, false); // set max discharge rate to 100% var t8 = setStateDelayed('modbus.0.holdingRegisters.1.40356_InWRte', 100/chargeRateScalingFactor, delayEnd + 200, false); // set max charge rate to 100% }
Die Timervariablen t1 bis t8 hatte ich nur für Debugzwecke verwendet, kann man getrost weglassen.
Vielleicht ist das ja hilfreich.
- zloe
-
Ich hätte noch eine Frage, ...
hat es jemand schon "geschafft" über modbus das MAXIMALE Ladelimit der Batterie zu setzen? -
Moin
Ich stehe noch immer auf dem Schlauch.
Ich habe einen Symo mit BYD.
Mein Ziel ist das Ändern der unteren Ladeschwelle der Batterie.
Ich möchte gerne dynamisch die untere Schwelle hochnehmen, damit ich im Winter auch mal die 100% Ladung erreiche.
Ich möchte also diesen Wert ändern:
Ich habe den Modbus Adapter soweit am Laufen.
Diese Einstellungen im WR:
Und hier im Adapter:
Dann versuche ich diese Register zu lesen:
Bei dem Hersteller und der Softwareversion klappt es auch. Nur bei meinem Zielwert minsoc nicht:
Wenn ich den Wert auf Write setze, wird der Wert rot, wenn ich ihn überschreibe. Klappt also nicht
Hat jemand eine Idee, wo ich hänge?
Vielen Dank und Gruß
Björn -
Hallo @bjoern77 Dazu gibt es schon irgendwo ein Post. Die Daten welche per Modbus geschrieben werden sind andere wie jene die im UI als Minimales Ladelimit angegeben werden. Daher siehst du die geänderten Daten nicht im UI. Wenn ich das noch richtig im Kopf habe kannst du per Modbus nicht unter den Wert im UI gehen, aber höher kannst du. Dass der Wert zum schreiben zunächst rot wird ist normal. Beim nächsten Schreibzyklus wird der Wert dann geschrieben und beim übernächsten Lesezyklus gelesen. Sobald er dann wieder gelesen wurde wird der Wert dann Grün bzw. Grau
-
@nkleber Moin. Danke fürs helfen. Leider funktioniert scheinbar das Lesen von diesem Register nicht. Ich bekomme 11, aber im UI habe ich 10 eingetragen.
Wenn ich im UI keine Änderung sehe, wie kann ich dann feststellen ob es funktioniert.
Danke und Gruss
Björn -
@bjoern77 Wie schon gesagt, das ist nicht derselbe Wert. Daher bekommst du niemals den Wert vom UI. Testen kannst du das somit nur mit setzen eines Wertes und dann prüfen ob die Batterie den neunen minSOC anwendet. Je nach einstellung der anderen Register wird nach dem hochsetzen des minSOC automatisch ein Nachladen des Speichers gestartet. Ich hoffe das hilft dir weiter.
gruß Norbert