NEWS
E3DC Hauskraftwerk steuern
-
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. -
Neue Version Charge-Control auf GitHub hochgeladen.
Version: 1.2.8
Änderungen:- Fehler behoben, dass die Batterie entladen wurde, auch wenn Notstromreserve erreicht wurde.
- Ab dieser Version wird nur noch der e3dc-rscp Adapter benötigt, eine Anbindung über Modbus ist nicht mehr erforderlich.
Bitte prüfen, ob beim e3dc-rscp Adapter das Abfrageintervall für kurz (s) auf 2 steht und die folgenden Tag auf S eingestellt sind:
TAG_EMS_REQ_POWER_PV
TAG_EMS_REQ_POWER_BAT
TAG_EMS_REQ_POWER_HOME
TAG_EMS_REQ_POWER_GRID
TAG_EMS_REQ_POWER_ADD
TAG_EMS_REQ_BAT_SOC
TAG_WB_REQ_ENERGY_ALLDie Views für VIS wurden auch angepasst, sodass der Modbus Adapter dann nicht mehr benötigt wird.
-
@arnod
Wie kommt's, dass nun doch der schnelle modbus außen vorbleibt?
Reichen die Tweaks, um den rscp-Adapter auf Touren zu bekommen? -
@bluebean
Da ich gerade dabei war den Fehler zu korrigieren, habe ich den Adapter noch mal getestet, um die Systemauslastung zu prüfen.
Da es jetzt die Möglichkeit gibt, bei den Abfrageintervallen nicht benötigte Tag's mit N auszuklammern, ist die Systemauslastung in einem normalen Rahmen.
Die wichtigen Tag's werden alle 2 sek. abgefragt und ich konnte im direkten Vergleich mit dem Modbus Adapter keine Verzögerungen beim e3dc-rscp Adapter mehr feststellen.
Dachte mir das es ein Versuch wert ist.Sollte aber jemand nur mit e3dc-rscp Adapter Probleme haben, ist es kein Problem den Modbus Adapter wieder optional im Script hinzuzufügen.
-
Kleine Anmerkung für die Version 1.2.8: Im VIS für Charge Control wird der modbus noch verwendet für den Status EMS CTRL, außerdem auch noch für Autonomiezeit und Batteriekapazität in der Übersicht. Also nicht gleich modbus abklemmen und löschen.
-
@bluebean
Stimmt, das habe ich noch übersehen. Werde ich heute noch ändern.