NEWS
E3DC Hauskraftwerk steuern
-
@arnod es muss irgendwas in den Datenpunkten gewesen sein. Nachdem ich den Baum gelöscht hab gestern Abend und alles neu eingetragen habe, läuft er heute wie ein Kätzchen.
Sorry für die Umstände und ganz lieben Dank für die Unterstützung -
@ArnoD
Ich glaube, ich habe MEINEN Fehler gefunden - ich muss noch testen, das scheint aber nicht auf Dein Sktipt zurückzuführen zu sein.Viele Grüße, Jan
-
@jans_ios
Kannst du genauer darauf eingehen was du als Fehler vermutest? Ich habe nämlich ein ähnliches Problem, allerdings bereits nachmittags/abends und nicht erst morgens.@ArnoD
Vielleicht kannst du mal in mein Logfile schauen ob du eine Idee hast wo das Problem liegt.Wenn das Sommerladeende (gestern 18:32:57) überschritten wird und der SOC bis dahin den Wert von Ladeende2 erreicht hat wird die Regelung erst mal E3DC überlassen, aber einige Zeit später (gestern waren es knapp 26 Minuten) wird "Batterie entladen stoppen 0W. Schritt = 4 LadenStoppen = true" gesetzt. Zwischendurch toggelt das Skript noch ein paar mal zwischen den zwei Werten (gegen 19:30 Uhr), bleibt dann aber bei "Batterie entladen stoppen" bis ich um 20:28 Uhr das Skript neu gestartet habe. Erst ab diesem Zeitpunkt wird die Batterie dann entladen.
Vorletzte Nacht hatte ich das gleiche Problem, habe es aber erst gestern Morgen festgestellt, deswegen startet das Logfile mit dem Neustart des Skriptes um 6:19 Uhr
-
Hi Arno,
ich habe folgenden Fehler, eben wurde das Elektroauto angesteckt, aber das Skript stoppt die Entladung aus der Akku. Stoppe ich das Skript, wird Strom aus dem Akku bezogen.Anbei die Debugausgabe des Skripts, vielleich hast du eine Idee, was da los ist.
E3DC Control.txtVG
Stefan -
@grori
Ich habe im Skript den Datenpunkt für den Hausverbrauch ersetzt durch einen errechneten Hausverbrauch - der Heizstab erhöht den eigentlichen Hausverbrauch ja und er hätte so Priorität. Ich möchte, dass das Skript den Hausverbrauch ohne den des Heizstabs sieht und verwendet, also lasse ich in einem kleinen Skript immer bei Veränderung des E3DC-Hausverbrauchs einen Datenpunkt schreiben ohne den aktuellen Energiebedarf des Heizstabs.Morgens sorgt das dann aber dafür, dass wenn der Heizstab vielleicht angehen MUSS, um eine gweisse Mindesttemperatur zu halten, der Stromverbrauch durch das Skript nicht wahrgenommen wird - es sieht ja nur den um den Stromverbrauch des Heizstabs korrigierten Hausverbrauch und dadurch erscheint ein Entladen unnötig.
Ich muss also nochmal tiefer einsteigen, an welcher Stelle ich welche Verbräuche nutze
-
-
@arnod
Erst mal guten Morgen und vielen Dank für die Bereitschaft das am Wochenende genauer zu analysieren. Bin schon auf deine Erkenntnisse gespannt!Hier das Diagramm aus dem E3DC-Portal für den Zeitraum für den ich auch das Log zur Verfügung gestellt habe.
An dem Tag war ebenso wie heute Einstellung 3 aktiv:
-
@grori
Im Diagramm kann man es nur schwer erkennen, aber bis ca. 20:10 Uhr ist deine PV-Leistung höher als der Eigenverbrauch und deine Batterie hat die eingestellten 95% erreicht, da hat das Script das Laden gestoppt, was ja auch richtig ist.
Von 20:03 Uhr bis 20:28 Uhr ist bei dir irgendwas passiert, was das Script anscheinend gestoppt hat.
Hast du da irgendein Update oder Backup durchgeführt?Um 20:28 wurde dann das Script manuell neu gestartet und ist dann normal weitergelaufen bzw. hat die Regelung E3DC überlassen.
Ich kann dir leider nicht sagen, was bei dir in den 25 min. passiert ist, das müsstest du herausfinden.
-
@stiwy18
Leider ist das LOG File sehr kurz.
Ich kann nur erkenne, dass du das Script dreimal hintereinander neu gestartet hast, warum auch immer.
Dann hat die Berechnung der Ladeleistung 66W ergeben, weil deine Batterie bereits zu 88% geladen ist und du bis 90% laden willst. Jetzt weiß ich aber nicht, was du beim unteren Ladekorridor eingestellt hast.
Vermute, dass dieser über 66 W ist und deswegen auch nicht mehr geladen wurde.War in dem Zeitraum 13:06 Uhr - 13:07 Uhr dein E-Auto angesteckt?
Hier wäre jetzt dein Diagramm interessant, wie der Hausverbrauch und die PV-Leistung zu dem Zeitpunkt war. -
Neue Version Charge-Control auf GitHub hochgeladen.
Version: 1.2.11
Änderungen:- Fehler behoben, dass nicht mehr auf entladen umgeschaltet wurde, nachdem das Laden der Batterie gesperrt war.
@stiwy18 bitte mal testen, ich prüfe jetzt jedes Mal, ob die PV-Leistung > als der Eigenverbrauch ist, wenn ich das Laden der Batterie stoppe.
-
@arnod
Erst mal vielen Dank für das Prüfen der Logs!Es hat allerdings keine Backups oder Updates in der genannten Zeit gegeben und heute hat es sich wieder sehr ähnlich verhalten. Wie im Diagramm zu sehen ist hat die Abnahme der PV-Leistung und das Anspringen der Wärmepumpe zwischen 19 Uhr und 19:15 Uhr zu einem Netzbezug geführt. Die Batterie wurde erneut nicht entladen bis ich um 20:17 Uhr das Skript neu gestartet habe.
Im Log (ich habe diesmal erst die Logs ab 17 Uhr angehängt, kann aber gerne auch noch den Rest schicken wenn das relevant sein sollte) sehe ich nach dem Sommerladeende um 18:05:51 Uhr wieder keine weiteren Einträge des Skripts. Die letzte aktion bevor das Skript aufhört war aber um 18:05:24 ein "Batterie entladen stoppen 0W". Und das scheint dann auch trotz fehlender weiterer Logeinträge das zu sei was mein S10 X umsetzt. Nach dem Neustart um 20:17 ist die letzte Meldung auch um 20:17:18 "Regelung E3DC überlassen" und danach sieht es aus als würde das Skript nicht mehr laufen, aber ich gehe davon aus es wird (wie die letzten Tage) morgens wieder wie gewohnt regeln.
In der folgenden Grafik ist noch zu sehen wann die Batterie wie stark ge- oder entladen wurde. Auch hier sieht man den Start des Entladens nach dem Sommerladeende (bis auch kurze Phasen die auch im Log ersichtlich sind) erst um 20:17 Uhr.
Was ich auch noch nicht ganz verstanden habe ist dein erster Satz:
"...deine Batterie hat die eingestellten 95% erreicht, da hat das Script das Laden gestoppt, was ja auch richtig ist."
Das verstehe ich soweit schon, aber wenn das Laden gestoppt wird sollte doch nicht auch das Entladen gestoppt werden, oder? In der Ausgabe des Skriptes steht ja auch "Batterie entladen stoppen 0W. Schritt = 3 LadenStoppen = true". Das LadenStoppen ist für mich vollkommen nachvollziehbar, aber warum hier auch das entladen gestoppt wird verstehe ich nicht.
Wäre super wenn du hier doch noch einen Ansatz finden könntest wo mein Problem her kommt.
Wenn du mir sagst wie liefere ich auch gerne noch weitere Informationen!
-
@grori
kannst du mal bitte in den Einstellungen vom e3dc-rscp Adapter prüfen, ob du dort "SET_POWER Wiederholintervall s" = 0 eingetragen hast. -
@arnod
Nein, das steht nicht auf „0“ sondern auf „2“. Dachte ich hätte das alles nach der Anleitung im PDF eingestellt, aber wenn hier eine „0“ hin gehört stell ich das um und berichte ob das Problem damit gelöst ist. -
@grori sagte in E3DC Hauskraftwerk steuern:
Das verstehe ich soweit schon, aber wenn das Laden gestoppt wird sollte doch nicht auch das Entladen gestoppt werden, oder? In der Ausgabe des Skriptes steht ja auch "Batterie entladen stoppen 0W. Schritt = 3 LadenStoppen = true". Das LadenStoppen ist für mich vollkommen nachvollziehbar, aber warum hier auch das entladen gestoppt wird verstehe ich nicht.
Wenn das Script 0W an E3DC sendet, heißt das eben auch 0W, also wird beides verhindert.
Den Text kann ich in "Batterie entladen/laden stoppen 0W" ändern, dann ist es eventuell verständlicher. -
@grori sagte in E3DC Hauskraftwerk steuern:
@arnod
Nein, das steht nicht auf „0“ sondern auf „2“. Dachte ich hätte das alles nach der Anleitung im PDF eingestellt, aber wenn hier eine „0“ hin gehört stell ich das um und berichte ob das Problem damit gelöst ist.Das erklärt dein Problem zum Teil jedenfalls.
Das Script wird bei dir aus irgendeinem Grund angehalten (vermute du hast hier den BackItUp Adapter am Laufen)
, jetzt wird durch die falsche Einstellung im e3dc-rscp Adapter der letzte Eintrag vom Script vom e3dc-rscp Adapter alle 2 sek. wiederholt.
In dem Moment wo das Script neu gestartet wird und wieder läuft, übernimmt das Script wieder.Unbedingt "SET_POWER Wiederholintervall s" = 0 eintragen.
Jetzt bleibt nur das Problem, dass bei dir immer um 20:15 Uhr irgendwas das Script beendet.
Das kannst du nur herausfinden, indem alle anderen Adapter beendet werden und du einen nach dem andern startest und dann beobachtest, wann das Problem auftritt. -
Hi Arno,
vielen Dank schon mal für die Änderungen am ScriptDas Log war leider so kurz, da ich logging erst nach auftreten aktiviert habe.
Zur Ergänzung, dies ist die Statistik an dem Tag:
Das Auto wurde ziemlich genau um 13 Uhr angesteckt, das siehst du im Graph an dem Sprung bei Hausverbrauch, zur gleichen Zeit siehst du, dass er nicht vom Akku entladen hat, sondern vom Netz bezogen hat.
Ich hab dann mehrmals das Skript gestartet und gestoppt um zu sehen, was passiert, das sishet du an den Schwankungen der Batterieleistung, um ca. 13:15 hab ich dann das Skript gestoppt gelassen, bis der Akku vom Auto geladen war.Hier noch meine Einstellungen, am 15.05 war glaube ich Einstellung 2 aktiv (das weis ich leider nicht mehr 100%ig)
Viele Grüße,
Stefan -
@arnod
OK, das war definitiv mein Fehler, habe das Wiederholintervall jetzt seit gestern auf 0 stehen und werde das Verhalten weiter beobachten.Der BackItUp-Adapter ist zwar an, hat aber sein Backup morgens um 02:40 Uhr erstellt.
Auch für @stiwy18 interessant:
Heute Vormittag habe ich auch mal Version 1.2.11 ausprobiert, allerdings hat sich bei den Anpassungen meiner Meinung nach an zwei Stellen ein Fehler eingeschlichen der dazu für den berechneten Wert M_Power wieder mit "0" zu überschreiben. Daher wurde garnicht mehr mit dem Laden begonnen auch wenn genug PV-Leistung vorhanden war.Hierzu habe ich bereits einen Pull Request eingestellt.
-
@grori Danke Grori, bei mir hat er heute laden angefangen, hab aber den Pull Request trotzdem bei mir eben einkopiert.
-
@grori sagte in E3DC Hauskraftwerk steuern:
Fehler eingeschlichen der dazu für den berechneten Wert M_Power wieder mit "0" zu überschreiben. Daher wurde garnicht mehr mit dem Laden begonnen auch wenn genug PV-Leistung vorhanden war.
Das ist so auch richtig. Wenn M_Power < UntererLadekorridor_W ist soll auch nicht geladen werden und deswegen wird M_Power mit 0 überschrieben.
Hast du ein LOG und ein Diagramm, dann kann ich mal prüfen warum bei dir nicht geladen wurde.
-
Erst mal wie gewünscht das Diagramm und ein Logauszug bis 11:00 Uhr.
Sowie die Lade-/Entladeleistung der Batterie:
Wie im Log zu sehen hat der Regelzeitraum um 9:22:39 Uhr begonnen und meiner Meinung nach hätte hier oder spätestens um 9:45 Uhr geladen werden sollen. Leider konnte ich mich erst etwas später im Detail mit dem Skript und der Suche nach der passenden Stelle im Code auseinandersetzen.
Meine Änderungen habe ich dann um 10:33 Uhr in das Skript eingefügt und dieses wurde durch die Änderung neugestartet. Zu diesem Zeitpunkt lief gerade die Wärmepumpe und es war nicht genügend PV-Ertrag vorhanden um über den unteren Ladekorridor zu kommen, daher wurde nicht direkt die Batterie geladen, um 10:51 Uhr hat das Laden dann aber begonnen. Deswegen habe ich den Pull Request erstellt.
Was mir im Diff zwischen 1.2.10 und 1.2.11 aufgefallen ist und wie ich auf die Stelle im Codee gekommen bin (der Fokus liegt jetzt auf Schritt 2 "Nach Regelbeginn vor Regelende"):
Wenn wir uns im Regelzeitraum befinden (Zeile 477) wird in Zeile 484 M_Power berechnet und auch die in meinem Log vorhandene Meldung generiert (Zeile 485).
Unter 1.2.10 has du nun geprüft ob (M_Power < UntererLadekorridor_W) ist oder ob (M_Power < 0) ist. Falls ja wurde der zwei Zeilen weiter oben berechnete Wert in M_Power wieder überschrieben und das Laden deaktiviert.
In 1.2.11 wird aber geprüft ob ((M_Power < UntererLadekorridor_W) ist oder ob (M_Power < 0) ist) UND ob (PV_Leistung_Summe_W -Power_Home_W > 0) ist. Falls ja wurde der zwei Zeilen weiter oben berechnete Wert in M_Power wieder überschrieben und das Laden deaktiviert. Dann kommt aber noch der Meiner Meinung nach problematische Abschnitt:
else{ M_Power = 0; }
Da hier keine weitere Bedingung geprüft wird bedeutet das zum Beispiel wenn (M_Power GRÖßER 0) UND (PV_Leistung_Summe_W -Power_Home_W > 0) wird M_Power auch auf "0" gesetzt, aber genau dann soll doch geladen werden.
Oder habe ich hier einen Denkfehler?