NEWS
E3DC Hauskraftwerk steuern
-
@smartboart
Habe schon einiges probiert, das Problem ist immer der Wert der sich zur Laufzeit ändert.
Dieser geänderte Wert scheitert dann an dieser Abfrage:
if (UTC_Dez[i].includes('.')){Warum verstehe ich nur nicht.
-
if (UTC_Dez/*[i]*/.includes('.')){
warum parsed du das in eine Nummer, ist das nicht schon eine...
hab das [i] mal ausgeklammert, dann kommt zumindes kein Fehler.. -
@smartboart
Ich durchsuche das Array nach dem '.' und will je nach dem ob dieser vorhanden ist oder nicht unterschiedlich verzweigen.
Wenn ich [i] ausklammere geht das nicht.function Test_MEZ(){ let Test1 = getState(Winterminimum).val let Test2 = getState(Sommermaximum).val let Test3 = getState(Sommerladeende).val let Test4 = getState(HTon).val let Test5 = getState(HToff).val log('Test1 bis 5='+Test1+'/'+Test2+'/'+Test3+'/'+Test4+'/'+Test5) let UTC_Dez = ['']; UTC_Dez = [Test1,Test2,Test3,Test4,Test5]; log('Array Länge ='+UTC_Dez.length); for (let i = 0; i < 5 ; i++){ log("i ="+i+' UTC_Dez=' + UTC_Dez[i]); if (UTC_Dez.includes('.')){ log("i ="+i+' Zeit MEZ mit Punkt=' + UTC_Dez[i]); }else{ log("i ="+i+' Zeit MEZ ohne Punkt=' + UTC_Dez[i]); } } }
-
@ArnoD sagte in E3DC Hauskraftwerk steuern:
Um Platz auf einer Seite zu bekommen, muss man den Parameter den man ändern will einmal oben in der Liste anwählen, dann wird das entsprechende hqwidget unten links angezeigt mit dem man den Wert ändern kann. Ich muss noch die Funktion zur Berechnung von Regelbeginn und Ende fertigstellen und die manuelle Anwahl der verschiedenen Einstellungen von 1-5. Die Zeiten werden dann daneben in MEZ Zeit angezeigt.
Wenn ich alles fertig habe werde ich es natürlich wieder hier veröffentlichen.Wir sind gespannt. Ich persönlich werde für ein paar Wochen wegen Urlaub aussetzen. Habe auch erst vor kurzem die erste View endgültig fertig adaptiert, jetzt will ich nicht schon wieder basteln.
Das alte View wird aber deswegen auch noch funktionieren, falls jemand nicht umstellen will.
Ja, das ist gut, das wäre dann wahrscheinlich (erstmal) ich.
Ich verstehe nicht so ganz, warum man die fünf Presets selbst noch an der Oberfläche manuell verändern will? @smartboart ? Bei mir sehen 3-5 sowieso relativ ähnlich aus. Davon abgesehen ist bei mir noch nie ne andere Einstellung als die 2 gewählt worden seit ich die Automatik seit mehreren Wochen verwende. Wird sich im Herbst dann wahrscheinlich ändern, aber ich sehe da trotzdem nicht die Notwendigkeit die Voreinstellungen manuell zu ändern. Ich hab' die Werte einmal mühsam recherchiert und im Skript hinterlegt, mir reicht das.Gibt's dann wenigstens nen Button, der die fünf Einstellungen wieder auf den Standard wie im Skript hinterlegt zurücksetzt? Das fände ich wichtig, sonst muss man nach etwas rumspielen mühsam Code und Vis-Einstellungen vergleichen und anpassen...
Auf Dauer wird man aber umstellen müssen um alle Parameter von E3DC-Control einstellen zu können. Es kommen noch einige für die Wallbox dazu.
Du sprichst den im PV-Forum erwähnten Fork an, ne? Der hat dort ja bisher irgendwie gar keine Reaktion ausgelöst. Auch wurde meine Frage von eba nicht beantwortet, ob (und wann) der Fork irgendwann ins offizielle E3DC-Control zurück geht. Wenn das mal offiziell wird (und ich meine Wallbox habe), dann sehe ich auch eher da die Einstellungsnotwendigkeit, da ne WB eben ein großer Verbraucher ist und nicht immer zur gleichen Zeit benötigt wird.
-
@smartboart
Ein andere Lösungsansatz wäre die unterschiedlichen Formate in ein einheitliches Format umzuwandeln dann müsste ich nicht mehr unterscheiden.
Also Werte wie 14, 13.75, 1.3 immer in 14.00, 13.75, 01.30 vorher umzuwandeln.
Verstehe nur nicht warum das so funktioniert. -
@stevie77 sagte in E3DC Hauskraftwerk steuern:
Ich verstehe nicht so ganz, warum man die fünf Presets selbst noch an der Oberfläche manuell verändern will?
Man kann diese nicht ändern sondern nur manuell anwählen wenn man die Automatik ausschaltet.
Das würde bedeuten das du deinen Shietwetter-Panik Button nicht mehr benötigst, da du einfach Einstellung1 anwählen kannst. -
@ArnoD Aso, das ist gut. Hatte ich dann missverstanden...
-
@ArnoD sagte in E3DC Hauskraftwerk steuern:
@smartboart
Ein andere Lösungsansatz wäre die unterschiedlichen Formate in ein einheitliches Format umzuwandeln dann müsste ich nicht mehr unterscheiden.
Also Werte wie 14, 13.75, 1.3 immer in 14.00, 13.75, 01.30 vorher umzuwandeln.
Verstehe nur nicht warum das so funktioniert.ich kenne das halt nur wenn man eine Gruppe mittels variable definiert und dann in dieser variable nach Informationen sucht. z. B.
if (UTC_Dez[i].UTC_Dez==="0")){
if (UTC_Dez[i].includes(".")){
Fürchte ich kann hier nicht wirklich helfen...
-
@ArnoD
Hallo Arno,mal ne weitere Frage...
Im Script lässt du ja die Prognosen öfter aktualisieren...
Macht es nicht auch Sinn die Funktion main nach einer Aktualisierug nochmal durch zu führen?schedule({hour: 5, minute: 45}, function(){main();});
Du legst dich um 5 : 45 Uhr mit der Prognose fest, wie du die anlage fahren willst.
Heute hatte ich den Fall, dass Programm 1 aktiv war und als ich an das Einspeiselimit kam war die Batterie schon voll...
Ist nicht schlimm , weil ich das in nem separaten Script abfange und dann die Klimaanlage loslaufen lasse.Macht es nicht Sinn mehrmals am Tag zu prüfen ob die Prognose noch richtig ist?
Vlt kurz vor Regelbeginn und zwischen maximum und Ladeende nochmal?
oder immer dann wenn du nen erfolgreicheien Datenabruf der Wetterdaten gemacht hast? -
und noch ne Idee.
Die function main würde ich gerne bei Umschaltung auf manuell nachdem ein zusätzlicher manueller programmwahl state aktiviert wurde erneut durchlaufen lassen um dann die Programmvorwahl manuell einzuleiten...
Beispiel am Programm 5on(idProgrammwahl, function(dp) { setState(idAutomatikVorwahl,false,true); main(); if(logging)log("Trigger manuelle Programmvorwahl"); }); // 5Prognose PV-Leistung höher als benötigter Eigenverbrauch,Batterie laden und Überschuss ins Netz einspeisen. // ab 15:00 - 18:00 Uhr Bewölkung > 90% var Programmwahl= getState(idProgrammwahl).val; if( (Ueberschuss > 0 && Bedeckungsgrad12<90 && Bedeckungsgrad15>=90 && AutomatikAnwahl )|| (AutomatikAnwahl === false && Programmwahl ===5)){ if (LogAusgabe){log('Einstellung 5 aktiv');} setState(instanz + PfadEbene1 + PfadEbene2[1] + 'Einstellung',5); StateRead(); e3dcConfigWrite(5); setTimeout(e3dcConfigRead, 1000);
-
@smartboart sagte in E3DC Hauskraftwerk steuern:
Heute hatte ich den Fall, dass Programm 1 aktiv war und als ich an das Einspeiselimit kam war die Batterie schon voll...
Wo gab's denn heute in Deutschland einen Regentag? Einstellung 1 ist doch Winter/Regen/fast keine Erzeugung/Erzeugung geringer als Eigenverbrauch den ganzen Tag über?! Wetterprognose bei Hamburg war heute 92-103 für meine Anlage, Berechnungsgrundlage 85 kWh, was dann mit tatsächlichen 83 kWh ganz gut hin kam...
-
@stevie77 ja ich hatte schon zum 2. x die 1 aktiv..
es war Gewitter vorhergesagt , hat sich aber gegen 12 wieder aufgehellt und dann sonne den Rest des tages bis Abends wieder Wolken aufzogen... Demnach wäre eine Neubewertung gegen mittag vorteilhaft gewesen...
EDIT:
Ich denke die Prognosen sind auch generell sehr unterschiedlich was die Genauigkeit je nach Region betrifft....Wäre vlt. noch ein dritter Wetterdienst vorteilhaft um daraus zu mitteln...
die Beiden Prognosen liegen oft ganz schön auseinander...
-
@smartboart sagte in E3DC Hauskraftwerk steuern:
@stevie77 ja ich hatte schon zum 2. x die 1 aktiv..
es war Gewitter vorhergesagt , hat sich aber gegen 12 wieder aufgehellt und dann sonne den Rest des tages bis Abends wieder Wolken aufzogen... Demnach wäre eine Neubewertung gegen mittag vorteilhaft gewesen...Das würde ja eher zu Einstellung 5 passen: Ab 12:00 - 15 Uhr Bewölkung < 90 %, ab 15:00 - 18:00 Uhr Bewölkung >= 90 %. Aber wenn ich dich jetzt richtig verstehe, war die Prognose so schlecht, dass sie meinte es würde den ganzen Tag regnen?!
Dann isses natürlich blöd... -
@smartboart sagte in E3DC Hauskraftwerk steuern:
Macht es nicht auch Sinn die Funktion main nach einer Aktualisierug nochmal durch zu führen?
Wird in der neuen Version so gemacht, hatte es bei der Umstellung der automatischen Abfrage Proplanta übersehen, das die Funktion main() nicht noch mal aufgerufen wird.
-
@smartboart sagte in E3DC Hauskraftwerk steuern:
und noch ne Idee.
Die function main würde ich gerne bei Umschaltung auf manuell nachdem ein zusätzlicher manueller programmwahl state aktiviert wurde erneut durchlaufen lassen um dann die Programmvorwahl manuell einzuleiten...
Beispiel am Programm 5on(idProgrammwahl, function(dp) { setState(idAutomatikVorwahl,false,true); main(); if(logging)log("Trigger manuelle Programmvorwahl"); }); // 5Prognose PV-Leistung höher als benötigter Eigenverbrauch,Batterie laden und Überschuss ins Netz einspeisen. // ab 15:00 - 18:00 Uhr Bewölkung > 90% var Programmwahl= getState(idProgrammwahl).val; if( (Ueberschuss > 0 && Bedeckungsgrad12<90 && Bedeckungsgrad15>=90 && AutomatikAnwahl )|| (AutomatikAnwahl === false && Programmwahl ===5)){ if (LogAusgabe){log('Einstellung 5 aktiv');} setState(instanz + PfadEbene1 + PfadEbene2[1] + 'Einstellung',5); StateRead(); e3dcConfigWrite(5); setTimeout(e3dcConfigRead, 1000);
Gute Idee, bin noch nicht dazu gekommen mir über die manuelle Anwahl gedanken zu machen. Kann ich ja jetzt so übernehmen, Danke.
Bin noch mit der Formel von eba zur berechnung der Uhrzeit von Start und Ende des Regelzeitraum beschäftigt.
Würde gerne diese Zeiten gleich in MEZ bzw. MESZ anzeigen, da mit UTC ständig überlegt werden muss, wann der Regelbeginn ist. -
Die Prognosen Proplanta im August, mit der regelmässigen Aktualisierung ist bis jetzt der Wahnsinn.
Wenn das so bleibt, brauche ich forecast nicht mehr
Bin schon auf heute gespannt wer wieder Recht hat, Proplanta oder Forecast.
-
@ArnoD Bei mir geht's drunter und drüber. Proplanta kriegt die Tendenz eher richtig hin, liegt aber wertemäßig schon etwas ungenau. Forecast ist die reinste Achterbahn, landet mal nen Treffer, versaut es aber auch öfter, weil halt der niedrigere Wert genommen wird. Aber mir ist lieber eine konservative Schätzung zu haben, die dann übertroffen wird als andersrum.
-
Würde gerne diese Zeiten gleich in MEZ bzw. MESZ anzeigen, da mit UTC ständig überlegt werden muss, wann der Regelbeginn ist.
Finde ich super das du das aufgenommen hast.. Das war ja auch der Grund warum ich es auch angemerkt hatte...
-
@ArnoD denke auch das proplanta genauer liegt... Hab nochmal genauer geschaut.. Die Kurve von proplanta passt generell zur prognose.. Ist halt bei mir zu hoch weil ich die nutzbare Energie messe.... Aber das geht ja mit dem korrekturfaktor klar...
Vlt.. Hilft aber zusaetzlich auch ein Kupfer Nagel... -
Neue Version 0.2.06 hochgeladen und neue View Stand 14.08.2020.
Änderungen:
Version: 0.2.06 Regelzeitraum Start, Ende und Ladezeitende werden jetzt nach der Formel von
Eberhard berechnet und je nach Einstellung in MEZ oder MESZ in VIS angezeigt. Es wird die Systemzeit vom IoBroker verwendet, da ich über Modbus keine Zeit vom E3DC bekomme.
Wenn diese beiden Zeiten nicht synchron sind, stimmen die Zeiten natürlich nicht. Die manuelle
Anwahl der 5 Einstellungen ist jetzt möglich, Danke an smartboart für seine Vorarbeit.Version: 0.2.05 Zeiten werden in MEZ umgerechnet und in eigenen States gespeichert:'Winterminimum_MEZ','Sommermaximum_MEZ','Sommerladeende_MEZ','HTon_MEZ','HToff_MEZ'. Fehler in der PrognoseBerechnung_kWh_heute korrigiert, durch die laufende Neuberechnung muss die bereits produzierte PV-Leistung von der Prognose Tag abgezogen werden und das Gleiche bei nEigenverbrauchTag in kWh. nKorrFaktor geändert, es wird jetzt der % Wert angegeben um den die Prognose reduziert werden soll.
Version: 0.2.04 Nach der Aktualisierung Proplanta wird die Function main() aufgerufen und neu berechnet