NEWS
E3DC Hauskraftwerk steuern
-
... gelöscht
-
@jh537 sagte in E3DC Hauskraftwerk steuern:
@arnod also e3dc läuft noch aber wenn er dann auf netz umschaltet, zieht er konstant noch ca. 50 W aus der Batt, das macht die natürlich leer und dann wird nachgeladen. nur komisch, als wir es gestern getestet hatten lief es doch auch anstandslos...
Das liest sich so, als die Powersave Funktion vom E3DC nicht aktiviert ist und der Wechselrichter deswegen nicht abschaltet. Hast du das in den Einstellungen mal geprüft?
-
@arnod Die ist an. Hab gesehen, dass er das Takten früh gemacht hat als die PV langsam gestartet ist. Aber trotzdem waren pulsierende Lasten auf der Batt zu sehen. Ich meine aber kein Rekais schalten gehört zu haben.
-
Früh das kleine Tal kurz vor 7, da habe auf dem e3dc-Systemmoni gesehen, dass da mal kurz PV-Energie kam-wahrscheinlich ist das die Ursache.
-
@jh537
Verstehe ich das richtig, du hast diese Schwankungen, ohne dass das Script CC läuft und die PV-Leistung ansteigt? -
@arnod jo, wenn es davon ist-so ganz genau sieht man das ja nicht in dem systemmonitor, script war aus-hatte abends wieder auf e3dc notstrom umgeschaltet
-
@jh537
Die 50W könnte ich mir durch den Verbrauch vom WR erklären, aber das sollte eigentlich aus dem Netz gezogen werden und erklärt auch nicht das Pulsieren. -
Neue Version Charge-Control auf GitHub hochgeladen.
Version: 1.2.15
Änderungen:- Kleinere Optimierungen und Fehler behoben bei der Berechnung der soll Ladeleistung.
-
@jans_ios
Die soll Ladeleistung kannst du nur bedingt, wenn überhaupt zum Regeln von deinem Heizstab verwenden.
Es wird eigentlich nur berechnet, welche Leistung nötig wäre, um die Batterie bis Ladeende auf SOC Ladeende zu laden.
Je nach Einstellung kann dieser Wert vom tatsächlichen Wert, was CC berechnet, abweichen.
z. B. die eingestellte Ladeschwelle ist noch nicht erreicht, dann wird die gesamte PV-Leistung zum Laden verwendet, aber die soll Ladeleistung würde nur die berechnete Ladeleistung anzeigen und die wäre natürlich geringer. -
@arnod
In dem Moment wäre der Wert meiner Meinung nach sinnvollerweise auf die Max. Ladekapazität des HKW zu setzen. Dann würde mein Skript in meinem Gerät erst dann den Heizstab ansteuern, wenn mehr als 9kW + Hausverbrauch + Wallbox vorhanden ist.Welchen Wert könnte ich alternativ abfragen, ob gerade alles Vorhandene in den Akku sollte?
-
@jans_ios
Der einzige Wert wo du sicher sein kannst, dass die Leistung nicht benötigt wird, ist die Einspeiseleistung.
Ich mache das bei der Steuerung der Wallbox auch so.
In dem Script prüfe ich, ob gerade in das Netz eingespeist wird und berechne die maximale Ladeleistung für das Auto.
Vom Hausverbrauch wird in einem anderen Script die Ladeleistung der Wallbox abgezogen und diesen Wert verwende ich als Hausverbrauch in meinem Wallbox Script.
Mit deinem Heizstab müsste es eigentlich genauso funktionieren.
z.B so :if (NetzLeistung_W <= -500 && BatterieLeistung_W <= 0){ HeizstabLeistung_W = (PV_Leistung_W-(Hausverbrauch_W-Heizstableistung_Aktuell)+BatterieLeistung_W-NetzLeistung_W)-2500; // Wenn der Heizstab min. 2000 W benötigt }else if (NetzLeistung_W > -500 && BatterieLeistung_W <= 0) { HeizstabLeistung_W = (PV_Leistung_W-(Hausverbrauch_W-Heizstableistung_Aktuell)+BatterieLeistung_W)-2500; }else if (NetzLeistung_W > -500 && BatterieLeistung_W > 0) { HeizstabLeistung_W = (PV_Leistung_W-(Hausverbrauch_W-Heizstableistung_Aktuell)-BatterieLeistung_W); }else if (NetzLeistung_W <= -500 && BatterieLeistung_W > 0){ HeizstabLeistung_W = (PV_Leistung_W-(Hausverbrauch_W-Heizstableistung_Aktuell)-BatterieLeistung_W-NetzLeistung_W); } // Prüfen ob Hausverbrauch und Leistung Heizstab die max. WR-Leistung-500W übersteigt if (HeizstabLeistung_W+(Hausverbrauch_W-Heizstableistung_Aktuell) > MaxLeistungWR_W-500){HeizstabLeistung_W = (MaxLeistungWR_W-500)-(Hausverbrauch_W-Heizstableistung_Aktuell)}
-
@arnod gibt es Veränderungen der Steuerung des E3DC systems
Hab im letzten Herbst Winter gelegentlich die Batterie zwischendurch geladen bei geringem Strompreis
Das funktioniert aber aktuell nicht mehr
Per pscp geb ich Befehl in iob ans Gerät er schaltet um mit eingestellten Leistung jedoch nach paar Sekunden geht das System zurück auf entladen der Batterie
Unabhängig von dem Skript chargeControl das weiß ich dazu abzuschalten
Was kann man nu tun oder wurde diese Steuerungsmöhlichkeit entferntBitte um Hilfe und hinweise
-
@as ich habe es gerade getestet ... scheint wieder zu funktionieren, dauert aber länger bis die Werte im Portal ankommen (rd 3 Minuten)
-
@arnod
Danke für die Rückmeldung
Die Diagramme wäre in jedem Fall Interressant ..... und zur beruhigung -
@arnod
@jans_ios
Hallo ArnoD, jans_ios,ich verfolge eure "Heizstab-Diskussion" jetzt schon eine Weile, da ich auch sehnsüchtig auf die Lieferung von meinem MyPV-ELWA2 warte.
Dieser soll nun endlich kommende Woche geliefert und montiert werden, weswegen ich mich schon darauf vorbereite diesen in Kombi mit dem Charge-Control-Script zu steuern.@ArnoD
Du erwähntest in deiner letzten Antwort ein "anderes" Script welches die Ladeleistung der Wallbox vom Hausverbrauch abzieht um diesen Wert im Wallbox-Script zu nutzen.
Dieses Script hast du aber nicht zufällig im Github hinterlegt? zumindest hätte ich es nicht gesehen.Auch hattes du hier: https://forum.iobroker.net/post/1009779 bereits einen Scriptansatz gepostet.
Wenn ich die letzte Diskussion richtig verstanden hatte, hat dies aber zu einem Jo-Jo-Effekt geführt?Da ich nicht so tief im scripten drin bin hoffe ich etwas auf euren Rat und Unterstützung wie ich das Thema am besten angehen könnte.
Danke schon mal für jeden Tipp.Grüße
-
@zelkin
Upps, habe dich doch glatt vergessen
Bei meinem Diagramm fehlen leider zwei Jahre, da es den e3dc-rscp Adapter noch nicht gab.
Aber die abflachende Kurve ist trotzdem zu erkennen. -
@abyss
Wusste ich doch, dass ich da schon mal was gebastelt habe. Hatte ich schon wieder vergessen.
Wenn das nicht funktioniert, müsste man noch mal optimieren.
@jans_ios hattest du mit dem Script von mir das Problem mit dem Jo-Jo-Effekt?const sID_LeistungHeizstab_W = 'modbus.2.holdingRegisters.1000_Power' // Aktueller Verbrauch Heizstab in W const sID_PV_Leistung = 'e3dc-rscp.0.EMS.POWER_PV'; // PV_Leistung const sID_Eigenverbrauch = 'e3dc-rscp.0.EMS.POWER_HOME'; // Hausverbrauch_Leistung const sID_Netz_Leistung = 'e3dc-rscp.0.EMS.POWER_GRID'; // Einspeiseleistung const sID_Batterie_Leistung = 'e3dc-rscp.0.EMS.POWER_BAT'; // Batterie_Leistung const sID_Soll_LeistungHeizstab_W = 'modbus.2.holdingRegisters.1000_Power' // Soll Leistung Heizstab an Schnittstelle const sID_IstTempHeizstab = 'modbus.2.holdingRegisters.1001_Temp1' // Aktuelle Temperatur am Heizstab const sID_MaxTempHeizstab = 'modbus.2.holdingRegisters.1002_WW1_Temp_max' // Maximal-Temperatur lt. Drehregler am Heizstab, Skript peil 5 Grad weniger an, da Heizstab sonst selbst abregelt und sich Skript und Heizstab streiten on({id: sID_PV_Leistung, change: "ne"}, async function (obj) { let BatterieLeistung_W = (await getStateAsync(sID_Batterie_Leistung)).val; let PV_Leistung_W = (await getStateAsync(sID_PV_Leistung)).val; let LeistungHeizstab_W = (await getStateAsync(sID_LeistungHeizstab_W)).val; let Hausverbrauch_W = (await getStateAsync(sID_Eigenverbrauch)).val let HeizstabLadeleistung_W= 0; let NetzLeistung_W = (await getStateAsync(sID_Netz_Leistung)).val; let MaxTempHeizstab = (await getStateAsync(sID_MaxTempHeizstab)).val; let IstTempHeizstab = (await getStateAsync(sID_IstTempHeizstab)).val; Hausverbrauch_W =Hausverbrauch_W - LeistungHeizstab_W; //Hausverbrauch ohne Leistung Heizstab // Prüfen ob Werte Netz oder Batterie negativ sind if (NetzLeistung_W <= -500 && BatterieLeistung_W <= 0){ HeizstabLadeleistung_W = (PV_Leistung_W-Hausverbrauch_W+BatterieLeistung_W-NetzLeistung_W) - 3000; }else if (NetzLeistung_W > -500 && BatterieLeistung_W <= 0) { HeizstabLadeleistung_W = (PV_Leistung_W-Hausverbrauch_W+BatterieLeistung_W) - 3000; }else if (NetzLeistung_W > -500 && BatterieLeistung_W > 0) { HeizstabLadeleistung_W = (PV_Leistung_W-Hausverbrauch_W-BatterieLeistung_W); }else if (NetzLeistung_W <= -500 && BatterieLeistung_W > 0){ HeizstabLadeleistung_W = (PV_Leistung_W-Hausverbrauch_W-BatterieLeistung_W-NetzLeistung_W); } // Prüfen ob HeizstabLadeleistung_W > 3000W ist if (HeizstabLadeleistung_W > 3000){HeizstabLadeleistung_W = 3000} // Prüfen ob MaxTempHeizstab - 5 Grad Reserve erreicht sind if (IstTempHeizstab >= MaxTempHeizstab-5){HeizstabLadeleistung_W = 0} // Vorgabe Heizleistung an Schnittstelle übermitteln await setStateAsync(sID_Soll_LeistungHeizstab_W,HeizstabLadeleistung_W); });
-
@arnod
Vielen DankIch hätte noch einen Vorschlag.
könntest du einen DP mit der Versionsnummer des Script anlegen?Iss jetzt kein großes ding, kann man auch jedes mal manuell nachpflegen. Könnte mir aber vorstellen, dass dies doch einige nutzen würden.
Alleine wegen der Übersichtlichkeit, weil du extrem schnell auf Probleme ein Update bringst.
So kann man in der Übersicht anzeigen lassen welche aktuell läuft und hat einen Fehler Indikator wenn mal 2 Versionen gleichzeitig laufen --> vorausgesetzt der DP wird jedes mal geschrieben wenn das script durchrennt.
Man könnte es sogar auf die Spitze Treiben und dann per Script nach einem Update auf Git suchen lassen ....... falls man mal nicht die Zeit hat ins Forum zu guggen bekommt man es dann immerhin mit -
@arnod E3DC hat wahrscheinlich nachjustiert (ohne Info). Die starken Schwankungen der Batt sind verschwunden. Ein Wert in Modbus war im Sommer mal ewig falsch gewesen (Notstrom). Der ist jetzt auch wieder auf 0. Allerdings schaltet das Relais immer noch beim Aktivieren der CC-Laderegelung iVm Notstromreserve zyklisch weiter. In den Registern konnte ich keine Änderungen sehen. Standby ist möglich aber nicht aktiv.
-
@zelkin
kann ich ja mal auf meine To-do-Liste schreiben. Aktuell habe ich aber nur wenig Zeit für mein Hobby.