NEWS
E3DC Hauskraftwerk steuern
-
meinst du so ? :
if (PowerMode === 2) { if (Charge_Limit === M_Power_W && NetzLeistung_W < -Math.abs(minimumHeizstabLeistung + 500)) { M_Power_W = BatterieLeistung_W; } } else { M_Power_W = 0; }
-
Ja genau.
Ich habs momentan halt nur auskommentiert.
Der Teil hat dafür gesorgt dass nach jeder Aktivierung der Power_Mode 2 den Heizstab wieder gestoppt hat.// Bedingungen prüfen if (PowerMode === 2) { if (Charge_Limit === M_Power_W && NetzLeistung_W < -Math.abs(minimumHeizstabLeistung + 500)) { M_Power_W = BatterieLeistung_W; } // else if (Charge_Limit === M_Power_W && BatterieLeistung_W > 0) { // console.log('Power_Mode ist 2 und Batterie soll mit max. Leistung geladen werden. Heizstab wird nicht aktiviert.'); // await setStateAsync(sID_Soll_LeistungHeizstab_W, 0); // return; // } } else { M_Power_W = 0; }
-
@arnod said in E3DC Hauskraftwerk steuern:
@psrelax
Das ist nichts, was du einstellest.
Das wird vom Script automatisch freigegeben, wenn die PV-Prognose hoch genug ist, um die Batterie zu laden.
Das kannst du aber in deinem Diagramm an dem Batterie SoC erkennen, wenn dieser bis zum Notstrom SoC entladen und dann gehalten wird und vor Sonnenaufgang bis auf 0% entladen wird.Hi @ArnoD
Ich hatte letzte Nacht leider kein erweitertes Logging aktiv, aber ich frage mich gerade, warum der Akku nach Deiner Beschreibung nicht bis auf 0% entladen wurde.
Im Log sieht man, dass um ca. 2 Uhr Einstellung 2 ausgewählt war. Um halb vier wird das entladen beim Notstrom-SOC gestoppt und dann um halb fünf wird die Einstellung 1 aktiviert, die ich dann am Morgen auch vorgefunden habe - und selbst in diesem Zustand war die Prognose gut 27 kWh. Bei eingetragenen 20 kWh Tagesverbrauch wären gut 7 kWh zu Laden der Batterie eingeplant - der Notstrom-SOC wäre damit locker erreichbar. da hätte doch eigentlich die Batterie bis auf 0% entladen werden müssen.
Oder rechnest Du, dass nur dann auf 0 entladen wird, wenn am nächsten Tag voll geladen werden kann? -
@bluebean
nein, das ist von deiner Einstellung 10_minWertPrognose_kWh abhängig.
Wenn die Prognose für den nächsten Tag über diesem Wert liegt, wird die Notstromreserve freigegeben. Wenn du dort 0 eingetragen hast, ist das ganze deaktiviert und die Notstromreserve wird nicht freigegeben.Wenn ich nicht will, dass der Speicher entladen wird, dann müsste ich auf 100% stellen?
Ich denke, damit ist dann auch deine Frage beantwortet.
Steht übrigens auch in der Anleitung zu CC auf Github
-
Verflixt, übersehen... hatte ich tatsächlich mal eingetragen, weil ich das damals ausschließen wollte - danke!
-
@ArnoD
Seit gestern (da ist es mir aufgefallen) sehen die Zeiten für den Regelbereich und Ladeende sehr seltsam aus. Vor 3 Tagen war alles ok (siehe oben).
Seit gestern liegen die Zeiten für den Regelbereich und Ladeende um genau 2 Stunden weiter vorne, wie man in den Screenshots sehen kann. Verändert habe ich in der Konfig nichts.
Habe nur ich das Problem? Die Zeitumstellung ist ja erst morgen, aber hängt das u.U. damit zusammen?
Habe gerade nochmal in den JS-Adapter geschaut (v. 8.8.3): dort finden sich heute in den Astroeinstellungen die Zeiten für Sonnenaufgang 7:52 Uhr Ortszeit und Sonnenuntergang 17:49 Uhr Ortszeit, die sind also korrekt. Scheint die Berechnung gerade nicht in Bezug auf die Ortszeit zu erfolgen, sondern auf die GMT?
Was mich zudem stutzig macht - die Batterieladung lief ja offensichtlich so wie zuvor, das Ladeende2 von 95% wurde grob gegen 16:30 Uhr erreicht (vgl. auch das Ladeende vor 3 Tagen).
-
@bluebean
Die Berechnung der Zeiten steht in der Anleitung zu CC.
für Regelbeginn und Regelende wird solarNoon verwendet plus/minus offset.
für Ladeende sunset minus offset.Ich habe leider keinen Vergleich bei mir um dir zu sagen, ob dieser Sprung auch bei mir so ersichtlich ist, es ist aber nur von den Astro Zeiten im JS Adapter abhängig und wäre dann dort zu beheben.
Nachtrag: Habe es gerade noch mal geprüft. Für die Berechnungen spielt die Zeitzone keine Rolle, da ich generell alle Zeiten in Millisekunden seit dem 1. Januar 1970, 00:00:00 UTC umwandle und dann erst die Berechnungen durchführe.
-
@arnod
Die Brechnung ist mir klar, ich habe das auch im Skript angeschaut. Aber man kann ja an den Einstellungen sehen, dass irgendwo etwas schief läuft.
Die Zeiten im JS-Astro stimmen, sieht man im Screenshot.
bei meinem Offset von -3:30h für den Regelbeginn kann bei solarNoon von grob 12:50 Uhr (die zeitliche Mitte zwischen 7:52 Uhr (Sonnenaufgang) und 17:49 Uhr (Sonnenuntergang entsprechend Astro) niemals ein Regelbeginn von 7:21 Uhr herauskommen.
Wie gesagt, ich habe rein gar nichts an den Einstellungen geändert - weder im JS-Adapter, noch im CC. Und von einem Tag auf den anderen springen die Zeiten um exakt 2 Stunden nach vorne.Und auch bei Ladeende müsste ja - wie Du schreibst - bei sunset minus offset, also 17:49 Uhr (gemäß Screenshot aus meinem Astro-Screenshot aus dem JS) minus der bei mir eingestellten 1:15 h das Ergebnis 16:34 Uhr lauten. CC zeigt aber 14:34 Uhr an.
Und, jetzt kommt's: schau Dir den Screenshot mit den frischen Diagrammen von heute 16:34 Uhr an. Die Regelung erfolgt auch heute wieder genau so wie zuvor, um 16:34 Uhr hat gerade der Ladezustand 95% erreicht, genau 2 Stunden nach dem angezeigten Ladeende. Sonne gab's vorher genug, die 95% hätten auch bei dem angezeigten Ladeende von 14:34 Uhr erreicht werden können.
-
Ich habe jetzt mal einen zusätzlichen Versuch gemacht und in den Astro-Einstellungen einen Versatz von 120 min im Sonnenaufgang und Sonnenuntergang eingestellt (siehe Screenshot).
Nach Neustart vom JS-Adapter und des Skripts werden im CC unverändert Regelzeit: 07:21 Uhr - 13:36 Uhr und
Ladeende: 14:34 Uhr angezeigt. Oder muss ich zum Test tatsächlich bis morgen warten?PS:
und hier sind mal die Astro-Zeiten in den Objekten des JS-Adapters.
Da steht für solarNoon eine Zeit von 10:51 Uhr. Wenn die im Skript verwendet wird und ich davon 3:30 h offset abziehe, lande ich bei 7:21 Uhr, das was auch angezeigt wird für den Regelbeginn.
Eigentlich müsste er doch aber die Ortszeit von solarNoon als Bezug nehmen, also 12:51 Uhr.
Und das Ganze erklärt für mich nicht, warum dann auf die richtigen Werte geregelt wird, also auf die angezeigten Werte 2 Stunden draufgeschlagen werden.Oder ist es schlicht einfach so, dass nur UTC-Zeiten angezeigt werden, ansonsten aber auf die Ortszeiten gereget wird? Doch warum war das vor ein paar Tagen anders?
-
@bluebean sagte in E3DC Hauskraftwerk steuern:
Ich habe jetzt mal einen zusätzlichen Versuch gemacht und in den Astro-Einstellungen einen Versatz von 120 min im Sonnenaufgang und Sonnenuntergang eingestellt (siehe Screenshot).
Nach Neustart vom JS-Adapter und des Skripts werden im CC unverändert Regelzeit: 07:21 Uhr - 13:36 Uhr und
Ladeende: 14:34 Uhr angezeigt. Oder muss ich zum Test tatsächlich bis morgen warten?Hier kannst du nichts an den Astro Zeiten ändern und haben nur bedingt was damit zu tun.
Diese Einstellungen sind so viel ich weiß für die Variable javascript.0.variables.isDayTime und javascript.0.variables.isDaylightSaving. Da ich diese nicht verwende, kann ich dir aber auch nicht mehr darüber sagen.und hier sind mal die Astro-Zeiten in den Objekten des JS-Adapters.
Da steht für solarNoon eine Zeit von 10:51 Uhr. Wenn die im Skript verwendet wird und ich davon 3:30 h offset abziehe, lande ich bei 7:21 Uhr, das was auch angezeigt wird für den Regelbeginn.
Eigentlich müsste er doch aber die Ortszeit von solarNoon als Bezug nehmen, also 12:51 Uhr.
Und das Ganze erklärt für mich nicht, warum dann auf die richtigen Werte geregelt wird, also auf die angezeigten Werte 2 Stunden draufgeschlagen werden.Die Astro-Zeiten in den Objekten des JS-Adapters sind die, was ich auch verwende.
solarNoon 10:51 Uhr minus offset Regelbeginn 3:30 = 07:21 Uhr, was ja auch mit der Anzeige stimmt.
Da ich da nichts geändert habe, ist das eigentlich schon immer so.
Wie bereits weiter oben geschrieben rechne ich im Script nicht mit den lokalen Zeiten, sondern werden generell alle Zeiten in Millisekunden seit dem 1. Januar 1970, 00:00:00 UTC umgewandelt, um die gleiche Zeitbasis zu haben. Ob die Astrozeiten UTC sind und jetzt MEZ Zeiten oder umgekehrt spielt für die Berechnungen im Script keine Rolle. Die Anzeige in vis sollte eigentlich die lokale Zeit anzeigen.
Ich schaue mir das mal an, ob sich da was geändert hat. -
@bluebean sagte in E3DC Hauskraftwerk steuern:
solarNoon
Also bei mir wird alles in der lokalen Zeit richtig angezeigt:
Was hast du bei deinen Adaptereinstellungen den alles geändert?
Nachtrag:
Kannst du mal folgende Änderung bei dir testen, ob es dann richtig angezeigt wird.
Ab der Zeile 1686 in der Funktion MEZ_Regelzeiten() gleich am Anfang diese Änderung vornehmen:RB_AstroSolarNoon = new Date(getAstroDate("solarNoon")); RE_AstroSolarNoon = new Date(getAstroDate("solarNoon")); LE_AstroSunset = new Date(getAstroDate("sunset"));
-
@ArnoD
Hab glaub ich den Fehler gefunden, warum bei mir der Notstrom nicht nachgeladen wird.
Der Schalter aus VIS stimmt mit der Variablen unter Objekte nicht überein.Im Script wird folgendes erzeugt:
const sID_NotstromAusNetz =`${instanz}.${PfadEbene1}.${PfadEbene2[1]}.bNotstromAusNetz`; // Vorwahl in VIS true = Notstrom aus Netz nachladen
Das b bei NotstromAusNetz ist falsch und stimmt nicht mit VIS überein.
-
@arnod said in E3DC Hauskraftwerk steuern:
Also bei mir wird alles in der lokalen Zeit richtig angezeigt:
Welche JS-Adapterversion hast Du? Wird Dir in den Astro-Einstellungen bei den Tageszeiteinstellungen auch die UTC- und Ortszeit angegeben (siehe meine Screenshots)?
Was hast du bei deinen Adaptereinstellungen den alles geändert?
Gar nichts. Systemeinstellungen für den Ort übernehmen ist eingestellt, "Erstelle Zustände für alle Astrozeiten" ist aktiviert. Und die allgemeinen Einstellungen sehen so aus:
Kannst du mal folgende Änderung bei dir testen, ob es dann richtig angezeigt wird.
Ab der Zeile 1686 in der Funktion MEZ_Regelzeiten() gleich am Anfang diese Änderung vornehmen:RB_AstroSolarNoon = new Date(getAstroDate("solarNoon")); RE_AstroSolarNoon = new Date(getAstroDate("solarNoon")); LE_AstroSunset = new Date(getAstroDate("sunset"));
Macht keinen Unterschied.
-
@psrelax said in E3DC Hauskraftwerk steuern:
Das b bei NotstromAusNetz ist falsch und stimmt nicht mit VIS überein.
Das 'b' im Skript erscheint mir schon richtig, ich denke hier muss man das 'b' beim Schalter im VIS ergänzen. Hab's bei mir gerade gemacht, damit wird dann das Objekt korrekt auf true gesetzt (vorher war es auf fals). Das Objekt NotstromAusNetz scheint mir überflüssig zu sein.
-
@bluebean
Ist mir schon klar, dass ich es in Vis ändern kann. Das b scheint mir nur unlogisch. Ich denke das ist im Script einmal falsch eingesetzt worden, da es ja mal ohne b war.
Wieso denkst du, es ist überflüssig? -
@psrelax said in E3DC Hauskraftwerk steuern:
Das b scheint mir nur unlogisch. Ich denke das ist im Script einmal falsch eingesetzt worden, da es ja mal ohne b war.
Schau mal im Skript ab Zeile 146, das werden diverse Boolsche Variablen deklariert - das 'b' ist demzufolge kein einmaliger Verschreiber (auch wenn das b nicht durchgängig für alle entsprechenden Variablen benutzt ist).
-
@arnod said in E3DC Hauskraftwerk steuern:
Also bei mir wird alles in der lokalen Zeit richtig angezeigt:
Ich verstehe zwei Dinge nicht:
- Warum werden in den Objekten bei Dir lokale Zeiten angegeben und bei mir UTC?
- Und warum wird bei mir - trotz UTC Zeiten in den Objekten - von Deinem Skript trotzdem auf die lokalen Zeiten geregelt, wie man im Screenshot von heute sieht?
Hilft eventuell das noch weiter? https://forum.iobroker.net/topic/26029/astro-zeit-stimmt-nicht
-
Ok, Astro-Dilemma ist aufgelöst.
Nachdem ich zig Foren durchforstet hatte, hab ich den Hinweis gefunden, mal nach den Timezone-Einstellungen des Hosts zu schauen. Im buanet-Dockercontainer ist die TZ standardmäßig bereits auf Berlin gesetzt - aus welchen Gründen auch immer war das im aktuellen Container aber nicht angekommen. Ich habe den jetzt zwangsaktualisiert, et voilà - die Astro-Objekte sind jetzt wieder so, wie sie sein müssen, und die angezeigten Regelzeiten passen wieder. -
@psrelax
Das b im Script ist an der Stelle falsch.
Habe gerade gelernt, dass die Funktion "Alle Vorkommen ändern" sehr gefährlich ist.
Eigentlich hatte ich eine lokale Variable umbenannt, um eine einfachere Unterscheidung von Boolsche Variablen umzusetzen, die den gleichen Namen hatte.Wird in der nächsten Version korrigiert. Danke für den Hinweis und die Fehlersuche.
-
@bluebean
OK, das erklärt auch, warum new Date() keinen Unterschied macht, wenn deine Systemzeit auf UTC eingestellt war.