NEWS
E3DC Hauskraftwerk steuern
-
Hi Arno,
ich habe aktuell das Problem, dass der Akku nicht zum entladen freigegeben wird, wenn ich das Skript stoppe, wird der Akku wieder entladen.Irgendwie hängt das damit zusammen, wenn der Akku 100% erreicht hat, lasse ich E3DC Control gestoppt und warte bis der Akku unter 100% geht, kann ich das skript wieder starten und alles passt.
Ich hab hier mal das Log angehängt die letzten 45 Minuten sind interessant, da ich dort das stoppen getestet habe und neustarten, was nichts half, dann nochmal gestoppt, gewartet und wieder gestartet habe.
Danke
Stefan -
@stiwy18
Was hast du bei Einstellung2 Ladeende2 eingestellt? -
Manchmal hat man einfach ein Brett vorm Kopf, viermal den gleichen Fehler eingebaut.
Neue Version Charge-Control auf GitHub hochgeladen.
Version: 1.2.7
Änderungen:- Fehler behoben, dass die Batterie nicht mehr entladen wurde nach Regelende vor Ladeende.
-
Super, danke für die schnelle Korrektur :-), wurde soeben eingespielt, leider sagt der Wetterbericht voraus, dass ich die nächsten Tage das Problem nicht nachstellen kann
Hier noch zur Ergänzung meine Parameter:
Viele Grüße
Stefan -
@arnod
Irgendwas passt noch nicht. Heute morgen wurde bei mir ab ca. 6:45 Uhr (offenbar mit Start der PV-Produktion) der Speicher unter das Notstromlimit von 18% entladen (in der Nacht wurde korrekt bei Erreichen des Limits das Entladen gestoppt). minWertPrognose_kWh ist 0. -
Ich frage nochmals, weil ich keine Lösung für das Problem finde.
Wenn ich in der View RSCP Einstellungen die Wetterprognose aktiviere wird auch im E3DC die Einstellung übernommen.
Wenn ich Batterie entladen durch Wallbox oder Wallbox priorisiert wähle, wird das nicht im Hauskraftwerk übernommen. zumindest zeigt es mir das nicht in der App an.
Im Ordner RSCP IoBroker wird der Wert aber übernommen.
Oder übernimmt CC die Werte und verarbeitet die Einstellungen ohne es im Hauskraftwerk zu ändern?
Kann es gerade auch nicht testen da das Auto unterwegs ist.
-
Dann hat ja alles funktioniert.
Wenn du 0 als min Wert für die Freigabe zum Entladen eingibst, wird natürlich entladen, egal was die Wetterprognose ergibt. -
@arnod
Ähm, nun doch nochmal - sollte damit die Funktion nicht deaktiviert sein?Version: 1.1.2
User Parameter 10_NotstromEntladen wird nicht mehr benötig und kann gelöscht werden. Wenn 10_minWertPrognose_kWh = 0, ist die Funktion: "Notstrom freigeben, wenn Prognose erreicht wird" deaktiviert. -
@chris71 sagte in E3DC Hauskraftwerk steuern:
Wenn ich Batterie entladen durch Wallbox oder Wallbox priorisiert wähle, wird das nicht im Hauskraftwerk übernommen. zumindest zeigt es mir das nicht in der App an.
Das Script Charge-Control hat nichts mit der Wallbox zu tun. Es regelt auch nichts, was die Wallbox betrifft.
Beim Adapter e3dc rscp wurden einige Änderungen zum Thema Wallbox gemacht, die ich nicht mehr getestet habe, da ich meine über Modbus direkt steuere.
Bei Fragen zum Adapter e3dc rscp bitte in Github ein Issue aufmachen, damit der Adapter weiter optimiert wird.Oder übernimmt CC die Werte und verarbeitet die Einstellungen ohne es im Hauskraftwerk zu ändern?
Das Script berücksichtigt hier keine Einstellungen, die beim Hauskraftwerk zur Ladepriorisierung der Wallbox gemacht werden. Bedeutet auch, wenn beim E3DC die Batterie Hauskraftwerk Vorrang hat, das Script die Ladeleistung trotzdem so weit wie notwendig begrenzt, um bis zum Eingestellten Ladeende den Eingestellten Ziel SOC zu erreichen. Was ja auch richtig ist, da der restliche Überschuss somit zum Laden vom Auto verwendet wird.
-
@bluebean
Ähm ja hast recht, habe es mit der Funktion Notstrom nachladen verwechselt, da gibt es einen eigenen Schalter dafür.Muss ich mir ansehen, ob ich das bei den Änderungen übersehen habe.
Danke für den Hinweis. -
@arnod said in E3DC Hauskraftwerk steuern:
Muss ich mir ansehen, ob ich das bei den Änderungen übersehen habe.
Sieht so aus, dass HeuteNotstromVerwenden = false ja erst um 12 Uhr gesetzt wird. Wenn das Script nach 12 Uhr gestartet wurde, setzt Du gleich am Anfang in Zeile 116 ja HeuteNotstromVerwenden=true
Sollte da nicht zunächst false stehen? Der Wechsel auf HeuteNotstromVerwenden=true in den Prüfungen zur Freigabe läuft korrekt nur bei minWertPrognose_kWh >0 . -
@bluebean
Da hat sich im Script nichts geändert, da das in einer anderen Funktion verarbeitet wird.
Kannst du das mal Logen und mir schicken, es wäre interessant, ob die Variable "NotstromVerwenden" in dem Zeitraum auf true steht.Wenn die PV-Leistung 100W erreicht, wird beim E3DC die Lade und Entladeleistung wieder eingeschaltet und ab dann ein Entladen vom Script solange verhindert bis Regelbeginn erreicht wird und ausreichend PV-Leistung vorhanden ist um die Batterie zu laden.
Wenn aber danach z. B. keine Verbindung mehr zum E3DC vorhanden ist, kann das Script ein Entladen nicht verhindern.
Unload kann hier auch eine Rolle spielen.
Sind jetzt nur zwei mögliche Ursache von vielen, um das genauer zu analysieren, benötige ich hier das LOG File.Weißt du eventuell, welche Einstellungen um 6:44 aktiv waren?
-
@arnod
Warum wird beim Start des Scripts denn HeuteNotstromVerwenden=true und nicht false gesetzt?
HeuteNotstromVerwenden taucht ansonsten ja nur noch in der Prüfung um 2 Uhr auf, wo es um das Nachladen auf Notstrom-SOC geht, und dafür wird ja explizit auf false geprüft (&& !HeuteNotstromVerwenden). -
Warum wird beim Start des Scripts denn HeuteNotstromVerwenden=true und nicht false gesetzt?
Das ist so richtig.
Die Variable verwende ich, um das Nachladen aus dem Netz zu verhindern, wenn die Notstromreserve verwendet werden darf.
Sonst könnte es sein, dass um 1:00 Uhr z. B. die Notstromreserve freigegeben wird und um 2:00Uhr diese wieder aus dem Netz aufgefüllt wird.
Um bei einem ungünstigen Neustart vom Script nicht erst aus dem Netz nachzuladen, setze ich die Variable erstmal auf true.Die ganze Regelung ist sehr komplex geworden, deswegen muss ich mir mal die Zeit nehmen und das etwas aufräumen.
-
@arnod
Wäre es dann nicht sinnvoll, das Nachladen auf Notstrom-SOC nicht nachts um 2 Uhr zu machen, sondern besser am späten Nachmittag oder Abends, bspw. 19 Uhr? Entweder hat das dann die Sonne erledigt, sonst muss das Netz ran.
Und die Funktion CheckPrognose() sollte im Negativ-Fall vielleicht nicht nur false zurückliefern, sondern auch eplizit HeuteNotstromVerwenden = false setzen. -
Könnte man machen, das Problem bleibt das gleiche, man muss wissen, ob das entladen gewollt ist, weil die Notstromreserve freigegeben wurde oder nicht gewollt, weil keine Sonne und der WR Strom verbraucht hat.
2:00 Uhr, weil einige Strom zu Börsenpreise beziehen und um 2:00 Uhr in der Regel der Strom am günstigsten ist.
-
@bluebean sagte in E3DC Hauskraftwerk steuern:
Und die Funktion CheckPrognose() sollte im Negativ-Fall vielleicht nicht nur false zurückliefern, sondern auch eplizit HeuteNotstromVerwenden = false setzen.
Schau dir mal die Funktion genau an, wann diese false liefert.
Unter anderem auch, wenn der Verbrauch höher war als der Durchschnittsverbrauch vom Vortag und somit die Notstromreserve nicht mehr bis Sonnenaufgang reichen würde.Somit ist wieder folgender Fall möglich:
Notstromreserve wurde um 0:00 Uhr freigegeben (HeuteNotstromVerwenden auf true).
Da der Verbrauch aber zu hoch war, wurde diese um 1:30 Uhr wieder gesperrt (HeuteNotstromVerwenden auf false).
Jetzt würde aber um 2:00 Uhr der Verbrauch aus dem Netz geladen werden.Deswegen bleibt HeuteNotstromVerwenden auf true und wird nur einmal um 12:00 Uhr Mittag auf false gesetzt.
-
@arnod
Ich habe für mich jetzt mal in der Funktion CheckPrognose() am Ende ein HeuteNotstromVerwenden = false ergänzt und das Nachladen auf Notstrom-SOC auf 22 Uhr geschoben (da ist's auch schon günstig). Damit sollte doch eigentlich auch bei einem Start des Scripts nach 12 Uhr (und damit gesetzem HeuteNotstromVerwenden=true) und Batterie_SOC_Proz <= Notstrom_SOC_Proz keine Entladung unter Notstrom-SOC starten, wenn minWertPrognose_kWh = 0 ist.
Oder hab ich hier einen logischen Fehler?}else{ // Vor Sonnenaufgang //if (DebugAusgabe){log(`CheckPrognose: Vor Sonnenaufgang`)} let Tag = nextDayDate(0).slice(8,10); let PrognoseMorgen_kWh = getState(`${instanz}.${PfadEbene1}.${PfadEbene2[2]}.PrognoseAuto_kWh_${Tag}`).val //if (DebugAusgabe){log(`CheckPrognose: Reichweite ms =${ReichweiteTime_ms} Reichweite Stunden =${round((ReichweiteTime_ms-heute.getTime())/3600000,2)} sunriseEndTimeHeute_ms = ${sunriseEndTimeHeute_ms} sunriseEndTimeHeute Stunden =${round((sunriseEndTimeHeute_ms-heute.getTime())/3600000,2)} PrognoseMorgen_kWh =${PrognoseMorgen_kWh} minWertPrognose_kWh =${minWertPrognose_kWh}`)} // Prüfen ob die Reichweite Batterie SOC größer ist als Sonnenaufgang + offset if(ReichweiteTime_ms > sunriseEndTimeHeute_ms && PrognoseMorgen_kWh > minWertPrognose_kWh && minWertPrognose_kWh > 0){ // Batterie reicht bis zum Sonnenaufgang, es kann entladen werden if (LogAusgabe && Notstrom_SOC_erreicht){log(`${Logparser1}-==== Freigabe Notstrom vor Sonnenaufgang. ====-${Logparser2}`)} HeuteNotstromVerwenden = true; return true } } HeuteNotstromVerwenden = false; } return false }
-
@bluebean sagte in E3DC Hauskraftwerk steuern:
Damit sollte doch eigentlich auch bei einem Start des Scripts nach 12 Uhr (und damit gesetzem HeuteNotstromVerwenden=true) und Batterie_SOC_Proz <= Notstrom_SOC_Proz keine Entladung unter Notstrom-SOC starten, wenn minWertPrognose_kWh = 0 ist.
Das hat nichts mit dem Entladen bei minWertPrognose_kWh = 0 zu tun, sondern nur mit dem Nachladen aus dem Netz.
Ob entladen wird oder nicht ist nicht von der Variable HeuteNotstromVerwenden abhängig, sondern von der Variable NotstromVerwenden in der Funktion Ladesteuerung()Habe jetzt die Variable umbenannt in HeuteNotstromVerbraucht, das trifft eher zu von der Verwendung.
-
@arnod Danke für die Info. Habe ich mir schon gedacht.
Konnte heute endlich mal ein wenig testen. Wir hatten zwar wenig Sonneschein aber ein paar kwh konnte ich doch ins Auto laden.