NEWS
E3DC Hauskraftwerk steuern
-
@chrischros
Welche Version hast du bei dir am Laufen?Ist bei dir am Ende vom Skript bereits diese Funktion vorhanden?
//Bei Scriptende alle Timer löschen onStop(function () { clearSchedule(Timer0); clearSchedule(Timer1); clearSchedule(Timer2); }, 100);
Prüf mal bitte ob der State
0_userdata.0.E3DC-Control.Allgemein.IstPvErtragLM0_kWh
wirklich nur jede Minute aktualisiert wird.
Wenn das häufiger passiert, stimmt bei dir was mit dem Timer nicht. -
@arnod habe das Skript in der version 4.2.0 am laufen und darin ist die oben genannte Funktion schon enthalten.
Laut den History-Daten wir jede Minute 2 mal Werte geschrieben.
Welche Admin Version hast du am laufen?
-
@chrischros
Dann wurde der Timer0 zweimal gestartet.
Stoppe mal das Skript und warte eine Minute, bevor du es wieder startest.
Dann prüfe wieder, ob der State jede Minute aktualisiert wird. -
@ChrisChros
Admin 6.2.4 -
@arnod nach dem Neustart des Skripts wird nur noch einmal pro Minute ein Wert geschrieben.
Von der Admin-Version sind wir schon mal identisch, daran sollte es nicht liegen.
-
@chrischros
Das Problem sind die Timer, die nicht sauber bei Skript Abbruch beendet werden.
Dachte eigentlich das Problem gelöst zu haben mit der letzten Änderung, ist aber anscheinend nicht so.
Wenn man etwas wartet, bevor das Script wieder gestartet wird, werden auch die Timer beendet, warum das aber so ist konnte ich noch nicht herausfinden.Eventuell hilf beim Skript Start noch mal mit clearSchedule(Timer0); die Timer zu beenden, falls das beim Beenden vom Skript nicht funktioniert hat.
-
@arnod ich lass mal das Objekt weiter in die History schreiben, eventuell kann ich dann nachvollziehen wann der Timer wieder falsch läuft.
-
Habe eine neue Version Charge-Control auf GitHub hochgeladen.
Version: 1.0.8
Änderungen:
Wenn die Notstromreserve erreicht ist, wird auchDISCHARGE_START_POWER, MAX_CHARGE_POWER
undMAX_DISCHARGE_POWER
auf 0 gesetzt, damit der WR in den Standby-Modus wechselt und die Batterie nicht weiter entladen wird.
Aktualisierung desState SET_POWER_VALUE
auf 5 sek. reduziert und kleinere Fehler behoben.Habe das 8 Stunden getestet, ohne das sich die Batterie weiter entladen hat, müsste somit funktionieren.
-
Versuch mal diesen code vor den Funktion Bereich im Script einzufügen, sodass dieser beim Start vom Script durchlaufen wird:
const list = getSchedules(false); list.forEach(schedule => log('-==== Schedule war noch aktiv und wurde beendet ===-'+JSON.stringify(schedule),'warn')); list.forEach(schedule => clearSchedule(schedule));
Sollte beim Start vom Script ein Timer noch aktiv sein, wird eine Warnmeldung im LOG ausgegeben und der Timer beendet.
Wenn es funktioniert, kannst du folgende Zeilelist.forEach(schedule => log('-==== Schedule war noch aktiv und wurde beendet ===-'+JSON.stringify(schedule),'warn'));
wieder löschen, wenn die Warnmeldung im LOG nicht angezeigt werden soll.
-
@arnod
Und schon wieder etwas megaschnell eingebaut. Vielen Dank! -
@arnod wäre das so richtig?
//*************************************************************************************************** //**************************************** Function Bereich ***************************************** //*************************************************************************************************** const list = getSchedules(false); list.forEach(schedule => log('-==== Schedule war noch aktiv und wurde beendet ===-'+JSON.stringify(schedule),'warn')); list.forEach(schedule => clearSchedule(schedule)); async function main() { //Prognosen in kWh umrechen await Prognosen_Berechnen(); // Diagramm aktualisieren await makeJson(); // Einstellungen 1-5 je nach Überschuss PV Leistung Wetterprognose und Bewölkung anwählen Einstellung(await Ueberschuss_Prozent()); }
-
@chrischros
Ja, ist so in Ordnung. -
@arnod
Bin echt begeistert
Das Script läuft super .... echt erstaunlich, dass man sowas nicht annähernd innerhalb des E3DC Systems bekommtWeil ihr es grad von den Leistungsmessern habt, bei mir im modbus wird der Leistungsmesser_6 L1 bis L3 verwendet, nicht 0!
Muss Ich hier im Script noch was anpassen bzw. wenn sich das je nach Installation ändert, kannst du hierfür ne Variable einbauen?Derzeit verwende Ich 1.0.7
Ein seltsames Verhalten ist mir noch in Bezug auf den Effizienzwert aufgefallen!
Den hab Ich mitte Monat geändert
Das script scheint aber immer wieder den alten wert herangezogen zu haben:
anders kann Ich mir die Proplanta Prognose sonst nicht erklären!
Im Moment scheint er sich eingependelt zu haben, mich wundert hierbei nur das hin und her.
Es hat sich auch so verhalten, dass beim Neustart des scripts die in Zukunft liegenden Tage korrekt angezeigt wurden (z.B. um den 20. rum) und irgendwann wieder nach oben gesprungen sind -
@zelkin sagte in E3DC Hauskraftwerk steuern:
Weil ihr es grad von den Leistungsmessern habt, bei mir im modbus wird der Leistungsmesser_6 L1 bis L3 verwendet, nicht 0!
Muss Ich hier im Script noch was anpassen bzw. wenn sich das je nach Installation ändert, kannst du hierfür ne Variable einbauen?Nein, du musst nichts ändern.
Das Script verwendet die IDmodbus.0.holdingRegisters.40068_PV_Leistung
undmodbus.0.holdingRegisters.40076_Zusaetzliche_Einspeiser_Leistung
, um die PV-Leistung zu berechnen.Ein seltsames Verhalten ist mir noch in Bezug auf den Effizienzwert aufgefallen!
Den hab Ich mitte Monat geändertWelchen Wert meinst du da? Die Einstellung, mit welcher Prognose gerechnet werden soll?
-
In deiner View fehlt die Object ID zu den State, für welche Tage die Prognose Proplante abgerufen wurde:
Sollte so aussehen:
Die Object ID ist
0_userdata.0.Charge_Control.Proplanta.Datum_Tag_0 bis 3
-
Prognose ist nachgetragen ... die "null" sind mir noch gar nicht aufgefallen
Es ging um den effizienzwert der Paneele
const nWirkungsgradModule = 21.1; // Wirkungsgrad / Effizienzgrad der Solarmodule in % bezogen auf die Globalstrahlung (aktuelle Module haben max. 24 %)
Den hatte Ich anfangs Fälschlicherweise auf 98% weil Ich den Wert Falsch verstanden hatte
-
@zelkin
Wenn der Wert jetzt richtig eingetragen ist, wird auch nur dieser verwendet, da der Alte nirgends gespeichert ist.
Was steht den im LOG für einen Prognosewert Proplanta ? -
@arnod
in welchem log sollte Ich das jetzt checken?? -
@zelkin
Im LOG iobroker vom 24 und 25.07.2022, dort sollte folgende Ausgabe auftauchen:2022-07-28 02:10:00.187 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: ******************* Es wird die Globalstrahlung von Proplanta abgerufen ******************* 2022-07-28 02:10:01.069 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Rueckmeldung InterrogateProplanta XHR.Status= 200 2022-07-28 02:10:01.343 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Näste Aktualisierung Wetterdaten =10:00 Uhr 2022-07-28 02:10:01.406 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose Solcast in kWh = 93.71 2022-07-28 02:10:01.407 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose Solcast 90 Perzentil in kWh = 96 2022-07-28 02:10:01.407 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose Proplanta in kWh = 97.236 2022-07-28 02:10:01.407 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose_kWh nach Abzug Korrekturfaktor = 93.71 2022-07-28 02:10:01.407 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Bereits produzierte PV-Leistung = 0 2022-07-28 02:10:01.464 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose_kWh_heute für Berechnung = 93.71 2022-07-28 02:10:04.997 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: BatterieProzent(wert)=47.89999999999999 2022-07-28 02:10:04.997 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Eigenverbrauch Tag = 27 2022-07-28 02:10:04.997 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: AktSpeicherSoC in % = 43 2022-07-28 02:10:04.998 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Ueberschuss in kWh 47.89999999999999 = (Prognose kWh 93.71 - Berechneter Eigenverbrauch 27) - FreieKapBatterie_kWh 18.81 2022-07-28 02:10:04.998 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Ueberschuss in Prozent = 100 2022-07-28 02:10:05.044 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Bewölkungsgrad 12 Uhr Proplanta 12.5 2022-07-28 02:10:05.045 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Bewölkungsgrad 15 Uhr Proplanta 12.5 2022-07-28 02:10:05.045 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Einstellung 2 aktiv EinstellungAnwahl=1 2022-07-28 02:10:05.500 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: RB UTC = 8:19 2022-07-28 02:10:05.501 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: RE UTC = 13:5 2022-07-28 02:10:05.501 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: LE UTC = 15:41 2022-07-28 02:10:05.501 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Trigger manuelle Programmvorwahl 2022-07-28 02:10:05.620 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose Solcast in kWh = 93.71 2022-07-28 02:10:05.621 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose Solcast 90 Perzentil in kWh = 96 2022-07-28 02:10:05.621 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose Proplanta in kWh = 97.236 2022-07-28 02:10:05.621 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose_kWh nach Abzug Korrekturfaktor = 93.71 2022-07-28 02:10:05.621 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Bereits produzierte PV-Leistung = 0 2022-07-28 02:10:05.683 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose_kWh_heute für Berechnung = 93.71 2022-07-28 02:10:06.264 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: BatterieProzent(wert)=47.89999999999999 2022-07-28 02:10:06.264 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Eigenverbrauch Tag = 27 2022-07-28 02:10:06.264 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: AktSpeicherSoC in % = 43 2022-07-28 02:10:06.264 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Ueberschuss in kWh 47.89999999999999 = (Prognose kWh 93.71 - Berechneter Eigenverbrauch 27) - FreieKapBatterie_kWh 18.81 2022-07-28 02:10:06.264 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Ueberschuss in Prozent = 100 2022-07-28 02:10:06.318 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Bewölkungsgrad 12 Uhr Proplanta 12.5 2022-07-28 02:10:06.318 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Bewölkungsgrad 15 Uhr Proplanta 12.5 2022-07-28 02:10:06.318 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Einstellung 2 aktiv EinstellungAnwahl=2
-
@zelkin
Du kannst aber auch mal an so einem Tag auf der Homepage Proplanta prüfen, was für eine Globalstrahlung dort für deinen Ort angezeigt wird und dann nach folgender Formel die kWh berechnen:
(Globalstrahlung Tag * Modulfläche) * (Wirkungsgrad Module/100)Dann weißt du, ob es am Script liegt oder einfach an einer falschen Prognose von Proplanta.