ArnoD15 / iobroker_E3DC

Laderegelung E3DC Hauskraftwerk mit Wetterprognose
https://forum.iobroker.net/topic/32976/e3dc-hauskraftwerk-steuern
GNU General Public License v3.0
20 stars 14 forks source link
e3dc iobroker wallbox

iobroker-E3DC

Charge-Control

ioBroker Script zum steuern der Laderegelung von einem E3DC Hauskraftwerk mit Wetterprognose
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.

Weitere Informationen in der "Anleitung Charge-Control.pdf" oder im iobroker Forum: https://forum.iobroker.net/topic/32976/e3dc-hauskraftwerk-steuern

paypal


E3DC_Wallbox

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.

iobroker_VIS_View_E3DC_Charge_Control.js

View Import Datei für iobroker VIS

VIS View E3DC-Control

iobroker_VIS_View_E3DC_Uebersicht.js

View Import Datei für iobroker VIS

VIS View E3DC Uebersicht

iobroker_VIS_View_Diagramm_Prognosen.js

View Import Datei für iobroker VIS

VIS View Diagramm_Prognosen

iobroker_VIS_View_E3DC_Wallbox.js

View Import Datei für iobroker VIS

VIS View E3DC Wallbox

iobroker_VIS_View_E3DC_RSCP_Batterie.js

View Import Datei für iobroker VIS

VIS View E3DC RSCP Batterie

iobroker_VIS_View_E3DC_RSCP_EMS.js

View Import Datei für iobroker VIS

VIS View E3DC RSCP EMS

iobroker_VIS_View_E3DC_RSCP_Sperrzeiten.js

View Import Datei für iobroker VIS

VIS View E3DC RSCP Sperrzeiten

iobroker_VIS_View_E3DC_RSCP_Wechselrichter.js

View Import Datei für iobroker VIS

VIS View E3DC RSCP Wechselrichter

iobroker_VIS_View_Tibber.js

View Import Datei für iobroker VIS

VIS View Tibber

iobroker_VIS_View_E3DC_WR_Diagramm.js

View Import Datei für iobroker VIS

VIS View E3DC WR Diagramm

iobroker_VIS_View_E3DC_Zell_Temp_Diagramm.js

View Import Datei für iobroker VIS

VIS View E3DC Zell Temp Diagramm

iobroker_VIS_View_E3DC_SOH_Diagramm.js

View Import Datei für iobroker VIS

VIS View E3DC SOH Diagramm



Changelog Charge-Control

Version: 1.5.11

Version: 1.5.10

Version: 1.5.9

Version: 1.5.8

Version: 1.5.7

Version: 1.5.6

Version: 1.5.5

Version: 1.5.4

Version: 1.5.3

Version: 1.5.2

Version: 1.5.1

Version: 1.5.0

Version: 1.4.1

Version: 1.4.0

Version: 1.3.1

  • Parameter in VIS können jetzt auch einzeln unter "Einstellung Manuell" geändert werden.
  • Regelung Charge-Control wird gestoppt wenn manuelles Laden der Batterie beim E3DC aktiviert wird
  • Version: 1.3.0

  • Script musste an die neue Version vom Adapter e3dc-rscp 1.2.5 angepasst werden. Bitte zuerst den Adapter e3dc-rscp 1.2.5 installieren und nur dann diese Scriptversion verwenden.
  • Version: 1.2.15

  • Kleinere Optimierungen und Fehler behoben bei der Berechnung der Sollladeleistung.
  • Version: 1.2.14

  • Fehler behoben, das die neue Objekt-ID "0_userdata.0.Charge_Control.Allgemein.Akt_Berechnete_Ladeleistung_W" nach Ladeende nicht auf 0 gesetzt wurde. Soll Ladeleistung wird jetzt auch berechnet, wenn "Automatik Laderegelung" ausgeschaltet wird.
  • Version: 1.2.13

  • Neue Objekt-ID "0_userdata.0.Charge_Control.Allgemein.Akt_Berechnete_Ladeleistung_W" erstellt, um die berechnete Ladeleistung bis Regelende bzw. Ladeende in VIS anzuzeigen.
  • Version: 1.2.12

  • kleinere Fehler behoben und Script aufgeräumt.
  • Version: 1.2.11

  • Fehler behoben, dass nicht mehr auf entladen umgeschaltet wurde, nachdem das Laden der Batterie gesperrt war.
  • Version: 1.2.10

  • E3DC-RSCP Adapater kann ab Version 1.2.0 die Info Tags anzeigen und somit auch die Firmware Version.
    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
  • Fehler behoben, dass e3dc-rscp.0.EMS.POWER_LIMITS_USED nicht automatisch aktiviert wurde.
  • Fehler behoben, dass beim Erreichen von Ladeschwelle, Ladeende und Ladeende2 es zum "Pulsen" der Ladeleistung führen kann.
  • Version: 1.2.9

  • Neuer User Parameter 10_Systemwirkungsgrad.
    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
  • Berechnung Autonomiezeit für Anzeige in VIS integriert.
    Neue Objekt ID: 0_userdata.0.Charge_Control.Allgemein.Autonomiezeit
  • Fehler behoben, dass der unterer Ladekorridor ignoriert wurde.
  • Version: 1.2.8

  • 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_ALL
  • Version: 1.2.7

  • Fehler behoben, dass die Batterie nicht mehr entladen wurde nach Regelende vor Ladeende.
  • Version: 1.2.6

  • Fehler behoben, dass die Batterie nicht mehr entladen wurde bei Umschaltung vor Regelbeginn 0:01 Uhr.
  • Ladeleistung Wallbox wird beim Eigenverbrauch mit berücksichtig, wenn diese über Modbus direkt mit dem Hauskraftwerk verbunden ist.
  • Fehler behoben, dass bei manueller Anwahl der Einstellungen 1-5 die Regelzeiten nicht aktualisiert wurden
  • Version: 1.2.5

  • Für die Berechnung der Batteriekapazität werden die Objekt ID "e3dc-rscp.0.BAT.BAT_0.SPECIFIED_CAPACITY" und "e3dc-rscp.0.BAT.BAT_1.SPECIFIED_CAPACITY" verwendet. E3DC zeigt bei neueren Hauskraftwerken über die RSCP Schnittstelle falsche Werte bei der Objekt ID "e3dc-rscp.0.EMS.SYS_SPECS.installedBatteryCapacity" an.
  • Version: 1.2.4

  • Fehler behoben, dass die Batterie nicht mehr entladen wurde, wenn PV-Leistung zu gering war, um Hausverbrauch abzudecken.
  • Für Bewoelkungsgrad_12 und Bewoelkungsgrad_15 wird "NaN" eingetragen, wenn keine Werte abgerufen werden können.
  • Version: 1.2.3

  • Fehler behoben, dass die Batterie auch nach Erreichen vom soll SOC weiter aufgeladen wurde.
  • Version: 1.2.2

  • Neue Objekt ID NotstromAusNetz, um die Funktion Notstrom SOC aus dem Netz nachladen in VIS ein und ausschalten zu können
  • Version: 1.2.1

  • Wechselrichterverluste beim Notstrom SOC werden jetzt aus dem Netz geladen, um den Notstrom SOC stabil zu halten
  • Version: 1.2.0

  • Bei dieser Version habe ich die Einstellung der Regelzeiten umgestellt auf die Astrofunktion von JS.
    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.
  • Version: 1.1.7

  • Fehler in behoben, dass auf Unload SoC entladen wurde, obwohl noch keine PV-Leistung vorhanden war.
  • Version: 1.1.6

  • Bei der Abfragezeit der Daten von Solcast, werden die Minuten zufällig berechnet. Solcast Daten werden jetzt zwischen 4:01 Uhr und 4:59 Uhr abgerufen
  • Fehler in Funktion CheckPrognose() behoben. Die Variable Notstrom_SOC_Proz wurde hier auf Einstellwert zurückgesetzt
  • Version: 1.1.5

  • Entladen wird bei erreichen der Notstromreserve gestoppt und erst bei +1% Batterie SOC über Notstromreserve SOC wieder freigeben
  • Neue Objekt ID 0_userdata.0.Charge_Control.Allgemein.Automatik_Regelung um die Regelung vom Script in VIS ausschalten zu können. Achtung ! Es wird dann auch keine Notstromreserve mehr berücksichtigt und man muss diese wenn gewünscht wieder direkt beim E3DC einstellen.
  • Fehler behoben das die untere Ladeschwelle nicht mehr berücksichtigt wurde
  • Version: 1.1.4

  • Fehler behoben, dass mit Start PV-Leistung die Batterie entladen wurde, ohne dass die Notstromreserve freigegeben war.
  • Version: 1.1.3

  • Fehler behoben, dass der Parameter 10_Offset_sunriseEnd nicht bei allen Abfragen im Skript verwendet wurde.
  • Einige Fehler in der Zeitberechnung der Funktion CheckPrognose behoben. Bitte die Versionen 1.1.0 bis 1.1.2 nicht mehr verwenden
  • 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.
  • Neuer User Parameter 10_Offset_sunriseEnd. Hiermit kann die Zeit nach Sonnenaufgang eingestellt werden, die mit der Notstromreserve noch abgedeckt werden soll.
  • Fehler behoben, dass die Reichweite Notstromreserve nicht mit dem aktuellen Batterie SOC berechnet wurde.
  • Version: 1.1.1

  • Fehler das Timer3 um 8:00 nicht beendet wurde behoben.
  • Zeitpunkt, wie lange die Notstromreserve reichen muss um 1 Stunde nach Sonnenaufgang verschoben, da bei Sonnenaufgang noch keine ausreichende PV-Leistung vorhanden ist.
  • Version: 1.1.0

  • Neue Funktion Notstromreserve verwenden, wenn die Prognose am nächsten Tag über einem einstellbaren Wert liegt. Es wurden zwei neue User und zwei allgemein Parameter erstellt, 10_NotstromEntladen, 10_minWertPrognose_kWh, EigenverbrauchAbend_kWh,EigenverbrauchDurchschnitt_kWh. Mit 10_NotstromEntladen = true wird die Funktion aktiviert und mit 10_minWertPrognose_kWh kann festgelegt werden, ab welcher Prognose in kWh am nächsten Tag die Notstromreserve freigegeben wird. EigenverbrauchAbend_kWh summiert den Eigenverbrauch von 0:00 Uhr bis 8:00 Uhr und unter EigenverbrauchDurchschnitt_kWh wird der berechnete Durchschnittsverbrauch von diesem Zeitraum gespeichert. Wenn der Notstrom SOC erreicht ist und 10_NotstromEntladen= true und die Prognose am nächsten Tag über dem eingestellten Wert in 10_minWertPrognose_kWh liegt, wird anhand vom Durchschnittsverbrauch berechnet, wie lange der Notstrom SOC den Eigenverbrauch abdecken kann. Ab dem Zeitpunkt, wo die Notstromreserve bis zum Sonnenaufgang reicht, wird das Entladen der Batterie freigegeben. Bitte beachten das, wenn die Prognose nicht stimmt, kann es vorkommen, dass bei Stromausfall eventuell keine Notstromreserve mehr vorhanden ist. Danke an @zelkin für diese Idee
  • Fehler behoben, dass der falsche Timer verwendet wurde. Danke an @icke-pp
  • LOG Texte optimiert, wenn das Script regelt, werden jetzt Warnungen ausgegeben, um das besser unterscheiden zu können. Natürlich, nur wenn 10_LogAusgabeRegelung = true ist
  • Version: 1.0.29

  • Ablaufproblem, das durch die Auslagerung der User Parameter entstanden ist, behoben. Solcast Daten sollten jetzt wieder um 4:00 Uhr aktualisiert werden.
  • Version: 1.0.28

  • Wenn die PV-Erzeugung die Prognose übersteigt, wird diese nicht mehr bei der Überschussberechnung abgezogen. Damit soll verhindert werden, dass die Einstellung sich ändert, wenn die Prognose zu gering war.
  • Wenn Ladeende erreicht ist und der Batterie SOC den Ladeende2 SOC erreicht hat, wird das Laden der Batterie gestoppt
  • Version: 1.0.27

  • Die Instanz vom Modbus Adapter und e3dc-rscp Adater können jetzt über die beiden neuen Kontanten "instanzModbus" und "instanzE3DC_RSCP" im Script eingestellt werden
  • Mit der neuen Konstante "LogparserSyntax" kann die Logausgabe vom Script an den Adapter Logparser angepasst werden. Wenn diese auf true eingestellt wird, wird der Log Text im Format ##{"from":"Charge-Control", "message":""}##' ausgegeben.
  • Version: 1.0.26

  • Doppelter Aufruf der Timer bei Scriptstart korrigiert. Danke an @smartboart, für den Hinweis .
  • Das Einspeiselimit wird aus "e3dc-rscp.0.EMS.DERATE_AT_PERCENT_VALUE" und "e3dc-rscp.0.EMS.INSTALLED_PEAK_POWER" berechnet, da im e3dc-rscp Adapter seit dem Update E3DC keine W Werte mehr übertragen werden
  • Für die User Parameter werden jetzt eigene Objekt ID's angelegt. Somit kann das Script immer komplett kopiert werden, ohne das die Einstellungen angepasst werden müssen. Die Einstellungen im Script in eine andere Datei kopieren, dann die neue Version kopieren und die alte Überschreiben und das Script starten. Es werden einige Fehler angezeigt, die beim ersten Start ignoriert werden können. Anschließen unter 0_userdata.0.Charge_Control.USER_ANPASSUNGEN die Werte wieder eintragen. Wenn jetzt das Script neu gestartet wird, sollten keine Fehler mehr angezeigt werden.
  • Version: 1.0.25

  • URL korrigiert, sodas die Prognose wieder für 7 Tage von Solcast abgerufen wird. Danke an @bluebean für den Tipp .
  • Version: 1.0.24

  • Für die maximale Entladeleistung der Batterie wird jetzt das Objekt e3dc-rscp.0.EMS.SYS_SPECS.maxBatDischargPower verwendet.
  • Version: 1.0.23

  • Mehrere kleinere Fehler korrigiert. Das Einschalten der Lade-\Entladeleistung ist jetzt auch von "sunset" und "sunrise" abhängig, sodass bei einem Neustart vom Script vor Sonnenaufgang die Lade-\Entladeleistung nicht eingeschalten wird.
  • Version: 1.0.22

  • Mit dem ausschalten der Batterieladung ist es möglich, dass der SOC Wert Batterie wieder um 1% ansteigt. Um ein ständiges ein und ausschalten zu verhindern, wird der Notstrom SOC nach dem Ausschalten um 1% erhöht.
  • Version: 1.0.21

  • Fehler behoben, das Notstrom Reserve nicht berücksichtigt wurde
  • Version: 1.0.20

  • Bereinigung der HTML-Daten Proplanta an die HTML Seite nach 2:00 Uhr angepasst, da nicht alle Werte um diese Zeit zur Verfügung stehen
  • Version: 1.0.19

  • Für die maximale Ladeleistung der Batterie wird jetzt das Objekt e3dc-rscp.0.EMS.SYS_SPECS.maxBatChargePower verwendet.
  • Bereinigung der html Daten Proplanta geändert
  • Kleinere Optimierungen am Script durchgeführt
  • Version: 1.0.18

  • Fehler korrigiert, für die Prüfung ob eine Notstromreserve beim E3DC eingestellt wurde, wird jetzt die Objekt ID PARAM_EP_RESERVE_W verwendet.
  • Version: 1.0.17

  • Es wird geprüft, ob beim Hauskraftwerk eine Notstromreserve eingestellt wurde und wenn ja, wird die Einstellung Notstrom min und Notstrom Sockel in Charge-Control ignoriert und eine Warnung im LOG eingetragen
  • Neue Konstante "BewoelkungsgradGrenzwert".Jetzt kann jeder seinen Grenzwert einstellen, der als Umschaltkriterium für die Einstellung 2-5 verwendet wird.
  • Version: 1.0.16

  • Ein-/ Ausschaltkriterium der Lade/Entladeleistung E3DC geändert. Es wird jetzt die Astro-Funktion "sunset" verwendet
  • Version: 1.0.15

  • Fehler, dass beim Abrufen der Wetterdaten Proplanta über Timer die falsche URL verwendet wurde, behoben.
  • Version: 1.0.14

  • Kleinere Script Optimierungen durchgeführt.
  • Version: 1.0.13

  • Prognose von Proplanta wird jetzt auch für die nächsten 6 Tage abgerufen.
  • Version: 1.0.12

  • Fehler, dass Ladeleistung bei Überschreiten der Einspeisegrenze nur langsam erhöht wurde, behoben.
  • Version: 1.0.11

  • Fehler, dass nach erreichen der Notstromreserve und ausreichender PV-Leistung nicht geladen wurde, behoben. Wenn die PV-Leistung > 500 W ist, wird das Laden/Entladen der Batterie eingeschaltet und ab 100 W PV-Leistung und Notstrom SOC erreicht ausgeschaltet.
  • Version: 1.0.10

  • getSchedules(false) ersetzt, da es nicht bei allen problemlos funktioniert.
  • Version: 1.0.9

  • Fehler, dass Timer bei Neustart vom Skript nicht gelöscht werden, behoben.
  • Fehler, dass eine Aktualisierung des State "EinstellungAnwahl" zu einem Aufruf von der Funktion Main() führte, behoben.
  • Fehler, dass die Function Main() beim Scriptstart vor der aktualisierung der Prognosewerte Proplanta aufgerufen wurde, behoben.
  • Version: 1.0.8

  • Wenn Notstromreserve erreicht ist, wird auch DISCHARGE_START_POWER, MAX_CHARGE_POWER und MAX_DISCHARGE_POWER auf 0 gesetzt, damit der WR in den Standby-Modus wechselt und die Batterie nicht weiter entladen wird.
  • Aktualisierung der State SET_POWER_VALUE auf 5 sek. reduziert
  • kleinere Fehler behoben.
  • Version: 1.0.7

  • Nach der Zeit Ladeende (Sommer Ladeende) wird die Regelung ausgeschaltet
  • Version: 1.0.6

  • Beim Skript Start werden jetzt auch die Prognosewerte Solcast abgerufen mit folgender Einschränkung: Vor 4 Uhr werden die Prognosewerte für den aktuellen Tag + 6 Tage aktualisiert Nach 4 Uhr werden nur die Prognosewerte für den nächsten Tag + 5 Tage aktualisiert
  • Version: 1.0.5

  • Es werden 200 W vom Einspeiselimit und der maximalen Wechselrichterleistung abgezogen, um die Trägheit der Steuerung auszugleichen
  • Version: 1.0.4

  • Speichergröße berechnen geändert. Von der max. Kapazität der Batterie, werden 10% abgezogen die E3DC verwendet, um ein Entladen auf 0% oder laden auf 100% zu verhindern. Da das typabhängig ist, muss die Entladetiefe in % im Script unter Einstellungen E3DC eingetragen werden.
  • Fehler korrigiert das SET_POWER_MODE und SET_POWER_VALUE beim Skript Start zu einem Fehler führen, wenn diese beiden State nicht definiert sind.
  • Version: 1.0.3

  • Die Entladeleistung wird langsam erhöht, um die Kurve zu glätten.
  • Version: 1.0.2

  • Speichergröße berechnen geändert. Es wird der ASOC (Alterungszustand) von Bat_0 verwendet, um die verfügbare Batterie Kapazität zu berechnen
  • Version: 1.0.1

  • Wenn weniger als 500 W in das Netz eingespeist werden können, wird die Regelung ausgeschaltet. Bei wechselnder Bewölkung ist die Regelung zu langsam, um Netzbezug zu verhindern, deswegen wird bereits ab einer Einspeiseleistung von 500 W die Regelung E3DC überlassen.
  • Version: 1.0.0

  • Das Zusatzprogramm E3DC-Control wird ab dieser Version nicht mehr benötig, dafür muss der Adapter e3dc-rscp installiert sein.