NEWS
E3DC Hauskraftwerk steuern
-
In der Version: 0.2.03 wird wieder die Proplanta URL für die Ländercode de,at, ch, fr, it enthalten sein mit neuer constante "country" in den User Einstellungen.
-
@ArnoD sagte in E3DC Hauskraftwerk steuern:
@stevie77
Beim nächsten mal kannst du dir ja mal die LED der Batterien anschauen was die für einen Fehler anzeigen.Als sonst die Batteriewandler defekt waren und die Batterien danach in Folge auch nicht mehr erkannt wurden, blieben die einfach auf ihrem Stand stehen und zeigten den Ladestand mit den blauen LEDs an. Die grüne LED war auch an. Da war nichts besonderes zu erkennen...
-
Neue Version 0.2.03 mit Länderurl Proplanta für die Schweizer, Österreicher, Italiener, Franzosen ist online
-
Kurze Vorschau:
Ich habe jetzt in VIS meine View geändert und versucht alle eure Wünsche unterzubringen.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.
Das alte View wird aber deswegen auch noch funktionieren, falls jemand nicht umstellen will.
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. -
@smartboart
Habe mal eine Frage zu folgendem Code:const Winterminimum = instanz + PfadEbene1 + PfadEbene2[0] + 'Winterminimum'; const Sommermaximum = instanz + PfadEbene1 + PfadEbene2[0] + 'Sommermaximum'; const Sommerladeende = instanz + PfadEbene1 + PfadEbene2[0] + 'Sommerladeende'; const HTon = instanz + PfadEbene1 + PfadEbene2[0] + 'HTon'; const HToff = instanz + PfadEbene1 + PfadEbene2[0] + 'HToff'; function Test_MEZ(){ let UTC_Dez = [getState(Winterminimum).val, getState(Sommermaximum).val, getState(Sommerladeende).val, getState(HTon).val, getState(HToff).val] for (let i in UTC_Dez) { log("i ="+i+' Zeit=' + UTC_Dez[i]); if (UTC_Dez[i].includes('.')){ log("i ="+i+' Zeit MEZ=' + UTC_Dez[i]); }else{ log("i ="+i+' Zeit MEZ=' + UTC_Dez[i]); } } } on({id: instanz + PfadEbene1 + PfadEbene2[0] + 'HToff', change: "ne"}, function (){Test_MEZ();});
Wenn ich das Script manuell starte funktioniert alles, aber wenn ich einen Wert z.B HTon in Vis ändere kommen immer folgende Fehlermeldungen:
avascript.1 2020-08-11 10:20:25.093 error (8936) at process.topLevelDomainCallback (domain.js:126:23) javascript.1 2020-08-11 10:20:25.093 error (8936) at processImmediate (timers.js:658:5) javascript.1 2020-08-11 10:20:25.092 error (8936) at tryOnImmediate (timers.js:676:5) javascript.1 2020-08-11 10:20:25.092 error (8936) at runCallback (timers.js:705:18) javascript.1 2020-08-11 10:20:25.092 error (8936) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.1 2020-08-11 10:20:25.092 error (8936) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:457:25) javascript.1 2020-08-11 10:20:25.092 error (8936) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1042:38) javascript.1 2020-08-11 10:20:25.092 error (8936) at Object.<anonymous> (script.js.common.E3DC_Control:1408:84) javascript.1 2020-08-11 10:20:25.092 error (8936) at Test_MEZ (script.js.common.E3DC_Control:1299:24) javascript.1 2020-08-11 10:20:25.092 error (8936) Error in callback: TypeError: UTC_Dez[i].includes is not a function
Übersehe ich da was ?
-
@smartboart
Ok habe den Fehler gefunden.
Man muss die Zeile:
for (let i in UTC_Dez) {gegen diese Tauschen:
for (let i = 0; i < 4 ; i++){Dann funktioniert es.
Verstehe ich zwar nicht aber gut. -
@smartboart
Zu früh gefreut, wenn man die Länge richtigerweise auf 5 erhöht dann kommt wieder der Fehler, also bei
for (let i = 0; i < 5 ; i++){Drehe mich hier im Kreis und weiß nicht woran es liegt.
-
ne war quatsch
-
@ArnoD
ich probier auch mal... -
@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...