Mit dem Programm Charge-Control soll erreicht werden, dass die Batterie möglichst schonend geladen wird, um die Lebensdauer zu erhöhen und ein abregeln beim Überschreiten der 70% Einspeisegrenze zu verhindern.
- Speicher soll nie längere Zeit auf 100 % geladen werden oder auf 0 % entladen werden.
- Möglichst gleichmäßige Ladeleistung beim Laden.
- PV-Überschuss soll gespeichert werden, um nicht in die 70 % Abriegelung zu kommen.
- Bei Überschreitung WR Begrenzung soll Überschuss in die Batterie gespeichert werden.
Weitere Informationen in der "Anleitung Charge-Control.pdf" oder im iobroker Forum: https://forum.iobroker.net/topic/32976/e3dc-hauskraftwerk-steuern
Script zum Steuern der Wallbox easy connect mit Mode 3-Ladekabel (3-phasig) fest angeschlagen mit Ladestecker Typ 2 von E3DC. Die Wallbox muss über Modbus verbunden sein.
View Import Datei für iobroker VIS
View Import Datei für iobroker VIS
View Import Datei für iobroker VIS
View Import Datei für iobroker VIS
View Import Datei für iobroker VIS
View Import Datei für iobroker VIS
View Import Datei für iobroker VIS
View Import Datei für iobroker VIS
View Import Datei für iobroker VIS
View Import Datei für iobroker VIS
View Import Datei für iobroker VIS
View Import Datei für iobroker VIS
- Kleinere Optimierungen am Code und an der Laderegelung durchgeführt.
Änderungen bei den Objekt-IDs für EVCC in Verbindung mit dem EVCC-Adapter Um die Anzahl der Objekte zu reduzieren, wurden folgende Objekt-IDs gelöscht:
0_userdata.0.Charge_Control.USER_ANPASSUNGEN.10_Path_evcc_loadpoint1_charging
0_userdata.0.Charge_Control.USER_ANPASSUNGEN.10_Path_evcc_loadpoint2_charging
Dafür wurde folgende neue Objekt-ID erstellt:
-
0_userdata.0.Charge_Control.USER_ANPASSUNGEN.10_evcc_Instanz
→ Hier wird nur noch die Instanz des EVCC-Adapters eingetragen. -
CC wird jetzt nicht mehr deaktiviert, wenn über EVCC im PV-Modus das Auto geladen wird.
In der JavaScript-Adapter-Version 9.0.6 erscheinen Log-Meldungen, wenn ein Array in einem Objekt gespeichert wird, ohne es vorher in JSON umzuwandeln.
Daher wurde der Datentyp der folgenden Objekt-IDs von array
auf string
geändert:
0_userdata.0.Charge_Control.History.PrognoseAuto_kWh
0_userdata.0.Charge_Control.History.PrognoseProp_kWh
0_userdata.0.Charge_Control.History.PrognoseSolcast90_kWh
0_userdata.0.Charge_Control.History.PrognoseSolcast_kWh
0_userdata.0.Charge_Control.History.istPV_LeistungTag_kWh
Vorgehensweise zur Anpassung
Es gibt zwei Möglichkeiten, diese Änderung durchzuführen:
-
Objekt-IDs löschen und automatisch neu erstellen lassen:
Dabei gehen jedoch alle bisherigen Werte verloren. -
Objekt-IDs manuell ändern:
- Typ der fünf Objekt-IDs auf
string
setzen - Bei den Werten jeweils eine eckige Klammer am Anfang und Ende ergänzen, z. B.:
[10, 34, 19]
- Typ der fünf Objekt-IDs auf
-
Neue Objekt-IDs für EVCC in Verbindung mit dem EVCC-Adapter:
Wenn das Auto geladen wird, wird das Skript Charge-Control deaktiviert, um die Steuerung EVCC zu überlassen.0_userdata.0.Charge_Control.USER_ANPASSUNGEN.10_evcc
: Wird auftrue
gesetzt, wenn der EVCC-Adapter in Verbindung mit EVCC verwendet wird.0_userdata.0.Charge_Control.USER_ANPASSUNGEN.10_Path_evcc_loadpoint1_charging
: Pfad zur Objekt-IDevcc.0.loadpoint.1.status.charging
.0_userdata.0.Charge_Control.USER_ANPASSUNGEN.10_Path_evcc_loadpoint2_charging
: Pfad zur Objekt-IDevcc.0.loadpoint.2.status.charging
, falls vorhanden.
-
Neue Objekt-ID für das Tibber-Skript, um Pfad und Instanz eintragen zu können:
0_userdata.0.Charge_Control.USER_ANPASSUNGEN.10_ScriptTibber_Path
-
Die Laderegelung Charge-Control wird mit dieser Version automatisch deaktiviert, wenn das Batterie-Training aktiv ist.
-
Neue Objekt-ID
0_userdata.0.Charge_Control.USER_ANPASSUNGEN.10_Discharge_Start_Power
, um die untere Entladeschwelle in Watt (E3DC) festzulegen. Dieser Wert wird dann vom Skript als Standardwert verwendet. -
Kleinere Optimierungen am Code und an der Laderegelung durchgeführt.
- Laderegelung optimiert
- Wenn die berechnetet Ladeleistung Batterie höher war als die verfügbare PV-Leistung, führte das zu einem ein und Ausschalten der Ladeleistung.(Danke an @psrelax für den Hinweis)
- Batterie SOC Schwankungen werden jetzt generell bis -2% ignoriert.
- Fehlerbehandlung ergänzt und kleinere Bugs behoben.
- Fehlerbehandlung ergänzt und kleinere Bugs behoben.
- Fehler bei der Berechnung der maximalen Ladeleistung aus dem Netz korrigiert.
- (Issues #18) Anpassung an e3dc-rscp Adapter ab Version 1.4.2 : Der Pfad zu PARAM_EP_RESERVE_ENERGY wurde wieder geändert. Im Script wird jetzt die Version vom e3dc-rscp Adapter abgefragt und dann der Pfad entsprechend angepasst.
- (Issues #19) Der Pfad zu den Datenpunkten für Verbraucher Heizstab, Wärmepumpe, Wallbox 1 und 2 können jetzt unter 0_userdata.0.Charge_Control.USER_ANPASSUNGEN (10_Path_LeistungHeizstab,10_Path_WallboxLadeLeistung_1,10_Path_WallboxLadeLeistung_2,10_Path_LeistungLW_Pumpe) als String eingetragen werden und müssen nicht mehr im Skript eingetragen werden.
- Fehler korrigiert, dass die Ladeleistung Tibber Script beim Laden aus dem Netz nur erhöht aber nicht mehr gesenkt wurde.
- Es wird bei den User Anpassungen geprüft ob Objekt-ID's existieren und wenn nicht wird eine Warnung im LOG ausgegeben.
- (Issues #17)Die Objekt ID 0_userdata.0.Charge_Control.Allgemein.Autonomiezeit wurde aufgeteilt in Autonomiezeit und AutonomiezeitDurchschnitt und dafür eine neue Objekt ID 0_userdata.0.Charge_Control.Allgemein.AutonomiezeitDurchschnitt angelegt.
- Anpassung an e3dc-rscp Adapter ab Version 1.4.1 : Der Pfad zu PARAM_EP_RESERVE_ENERGY wurde geändert.
- Zusätzliche Absicherung Tibber Skript, das ein Netzbezug über 3 x 32A (22000W) nicht möglich ist.
- Fehler korrigiert, dass die Leistung einer externen Wallbox zum Hausverbrauch addiert wurde, obwohl diese bereits im Hausverbrauch enthalten ist.
- Fehler korrigiert, dass bei Batterie SoC = 0 und Einstellung Notstromreserve =0 die Regelung versucht hat, das Entladen zu verhindern und deswegen ständig auf die E3DC RSCP Schnittstelle zugegriffen wurde.
- Fehler korrigiert, dass die Leistungswerte Wallbox, wenn diese nicht über E3DC gesteuert wird, bei der Berechnung nicht berücksichtigt wurden.
- Fehler behoben, dass die Autonomiezeit nicht auf 0:00 h gesetzt wurde, obwohl der Batterie SOC 0 % hatte.
- Fehler behoben, dass bei einer ungünstigen Konstellation beim Neustart vom Script die PV-Leistungswerte vom aktuellen Monat gelöscht wurden.
- Fehler Objekt ID 0_userdata.0.Charge_Control.Allgemein.NotstromAusNetz korrigiert. Danke an psrelax für die Fehlersuche.
- Es werden die wichtigsten e3dc-rscp Adaptereinstellungen geprüft und wenn diese abweichen wird im LOG eine Warnung ausgegeben.
- Fehler behoben, dass beim Speichern der History Daten die UTC-Zeit verwendet wurde, was beim Monatswechsel zu einer verzögerten Aktualisierung des Diagramms geführt hat.
- Wenn SET_POWER_MODE = null ist, wird jetzt 0 eingetragen und nicht mehr mit einem Fehler beendet.
- Fehler bei der Erstellung Diagramm PrognoseAuto_kWh korrigiert.
- Script aufgeräumt und optimiert
- Diagramm PV Prognosen und PV-Leistung wurde nicht mehr angezeit wenn der Tag vom Datum einstellig war.
- Fehler behoben, dass bei aktiver Entladesperre TibberSkript auch nicht mehr geladen wurde.
- Kleinere Optimierungen und Fehler behoben für das Tibber Skript
- Neues Objekt
0_userdata.0.Charge_Control.Allgemein.EigenverbrauchDurchschnitt
erstellt, für die Anzeige vom Durchschnittsverbrauch Tag / Nacht in VIS. - Fehler behoben, dass die Berechnung Notstromreserve <0 sein konnte. (Danke an @MaLei für den Hinweis)
- Fehler behoben, dass eingestellter Notstrom SOC ignoriert wurde. (Danke an @psrelax für den Hinweis)
- Fehler behoben, dass neue Objekte ohne Definition angelegt wurden.
- Fehler behoben, dass bei der Autonomiezeit die Minuten ohne führende Null eingetragen wurden.
- Es wird überprüft ob bei den Instanzeinstellungen des e3dc-rscp Adapter __SET_POWER Wiederholintervall auf 0 eingestellt ist.
- Fehler behoben, dass bei Leerlauf Script ChargeControl SET_POWER_MODE nicht auf 0 gesetzt wurde.
- Fehler im DebugLog behoben wo zweimal die gleichen Werte sID_PvLeistung_ADD_W addiert wurden. (Danke an @psrelax für den Hinweis)
- Kleinere Optimierungen und Fehler behoben für das Script my-pv Heizstab
- Schnittstelle für das Skript Tibber integriert
- Berechnung des durchschnittlichen Hausverbrauchs neu erstellt. Es wird jetzt der Durchschnitt für jeden Tag, getrennt in Verbrauch Tag und Nacht berechnet.
Die Anzeige Autonomiezeit in VIS wurde dadurch auch angepasst. Es wird jetzt die Reichweite der Batterie mit dem neuen Durchschnittsverbrauch berechnet und mit dem aktuellen Verbrauch bei Entladung der Batterie. - Alle Objekt ID`s IstPvLeistung_kWh_1 bis 31 werden nicht mehr benötigt. Daten werden unter der neuen Objekt ID 0_userdata.0.Charge_Control.History.istPV_LeistungTag_kWh gespeichert.
- Alle Objekt ID`s PrognoseProp_kWh_1 bis 31 werden nicht mehr benötigt. Daten werden unter der neuen Objekt ID 0_userdata.0.Charge_Control.History.PrognoseProp_kWh gespeichert.
- Alle Objekt ID`s PrognoseAuto_kWh_1 bis 31 werden nicht mehr benötigt. Daten werden unter der neuen Objekt ID 0_userdata.0.Charge_Control.History.PrognoseAuto_kWh gespeichert.
- Alle Objekt ID`s PrognoseSolcast90_kWh_1 bis 31 werden nicht mehr benötigt. Daten werden unter der neuen Objekt ID 0_userdata.0.Charge_Control.History.PrognoseSolcast90_kWh gespeichert.
- Alle Objekt ID`s PrognoseSolcast_kWh_1 bis 31 werden nicht mehr benötigt. Daten werden unter der neuen Objekt ID 0_userdata.0.Charge_Control.History.PrognoseSolcast_kWh gespeichert.
- XMLHttpRequest ausgetauscht durch axios
- Neue Konstante im Script im Bereich USER ANPASSUNGEN um die Leistung Hausverbrauch zu berechnen ohne LW-Pumpe, Heizstab oder Wallbox
sID_LeistungHeizstab_W hier kann der Pfad zu den Leistungswerten Heizstab eingetragen werden, ansonsten leer lassen
sID_WallboxLadeLeistung_1_W hier kann der Pfad zu den Leistungswerten der Wallbox eingetragen werden, ansonsten leer lassen
sID_LeistungLW_Pumpe_W hier kann der Pfad zu den Leistungswerten der LW-Pumpe eingetragen werden, ansonsten leer lassen
Das Ergebnis wird unter der neuen Objekt ID 0_userdata.0.Charge_Control.Allgemein.Hausverbrauch eingetragen. - Issue #3 - Objekt ID 0_userdata.0.Charge_Control.Allgemein.Akt_Berechnete_Ladeleistung_W enthält nun den vom Script Charge-Control eingestellte Ladeleistung und nicht mehr die berechnete Ladeleistung um die Batterie auf 100% zu laden.
- Wenn die Notstromreserve bis zum Sonnenaufgang reicht, wird das Entladen der Batterie freigegeben und nicht mehr gestoppt, bis die Batterie leer ist.
Die ständige Neuberechnung des Batterie SOC führte zu ständigem Ein- und Ausschalten der Entladeleistung. - Neue Objekt ID "0_userdata.0.Charge_Control.USER_ANPASSUNGEN.10_ScriptHausverbrauch". Wenn das Script "Hausverbrauch" zusammen mit dem Script "my-pv Heizstab" für den Heizstab von ORuessel verwendet wird, dann bitte auf true setzen.
- Neue Objekt ID "0_userdata.0.Charge_Control.USER_ANPASSUNGEN.10_ScriptTibber". Vorbereitung für Tibber, aktuell noch nicht umgesetzt.
- Geänderte Objekt ID "0_userdata.0.Charge_Control.USER_ANPASSUNGEN.10_DebugAusgabeDetail". Die LOG-Ausgabe zur Fehlersuche wurde geändert, um mir die Hilfe aus der Ferne zu erleichtern. Es gibt jetzt zwei LOG-Stufen DebugAusgabe, um den Programmdurchlauf zu logen und DebugAusgabeDetail, um auch die Werte und Einstellungen im Logfile auszugeben. Die Objekt ID 10_LogAusgabeRegelung entfällt somit.
- Script aufgeräumt und optimiert
Das wurde im Script integriert und zwei neue Objekte angelegt:
"0_userdata.0.Charge_Control.Allgemein.FirmwareDate" und
"0_userdata.0.Charge_Control.Allgemein.LastFirmwareVersion"
um in VIS das Datum und die Uhrzeit der Firmware Installation anzeigen zu können und sich die alte Version zu merken und auch diese anzeigen zu können
Max. Systemwirkungsgrad inkl. Batterie in % aus den technischen Daten E3DC (beim S10E 88%).
Wird für die Berechnung der Batteriekapazität in kWh zur Anzeige in VIS verwendet.
Neue Objekt ID: 0_userdata.0.Charge_Control.Allgemein.Batteriekapazität_kWh
Neue Objekt ID: 0_userdata.0.Charge_Control.Allgemein.Autonomiezeit
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_ALL
Es sind auch Änderungen in der View erforderlich und einige Parameter werden nicht mehr benötigt. Folgende Objekt ID's können gelöscht werden:
0_userdata.0.Charge_Control.Allgemein.Winterminimum_MEZ 0_userdata.0.Charge_Control.Allgemein.Sommermaximum_MEZ 0_userdata.0.Charge_Control.Allgemein.Sommerladeende_MEZ 0_userdata.0.Charge_Control.Allgemein.Anwahl_MEZ_MESZ 0_userdata.0.Charge_Control.Parameter.Winterminimum_0 bis 5 0_userdata.0.Charge_Control.Parameter.Sommermaximum_0 bis 5 0_userdata.0.Charge_Control.Parameter.Sommerladeende_0 bis 5
Die View für die neue Version 1.2.0 findet ihr auf Github und die Anleitung Charge-Control wurde auch angepasst dort sind die neuen Einstellungen beschrieben.
Die Regelzeiten werden jetzt über drei Offset Werte eingestellt.