NEWS
E3DC Hauskraftwerk steuern
-
- nKorrWert_PV_Leistung scheint ein toter Parameter zu sein, eine Textsuche findet nur die Deklarierung des Werts.
Ja, kommt erst mit der nächsten Version. Hatte ich für mich schon mal vorbereitet. :blush:
- Der Fehler "javascript.0 (32733) script.js.e3dc-control.handleE3DCControl: Bewölkungsgrad_12 oder Bewölkungsgrad_15 wurde nicht abgerufen. 12=200 15=200" scheint ein erwarteter Fehler zu sein?! Taucht der jetzt nur auf, weil beim Start des Skripts nicht wirklich eine Abfrage durchgeführt wird? Finde ich etwas nervig, dass jedes Mal, wenn ich das Skript anklicke und unten das Log aufgebaut wird, eine rote Fehlermeldung angezeigt bekomme...
Sollte nur auftauchen wenn keine Werte enthalten sind.
Ist beim ersten Script Start natürlich der Fall, muss mal prüfen ob ich das beim ersten Start abfangen kann.EDIT:
erledigt...oben schon beantwortet -
Ich habe dieses Topic eröffnet, um gemeinsam an einer Überschusssteuerung des E3DC Hauskraftwerks in ioBroker zu arbeiten.
Dankeschön an dieser Stelle an Eberhard und sein Programm E3DC-Control, ohne ihn wäre das alles nicht möglich gewesen.
Großes Lob und Danke auch an Uli, der den Adapter e3dc-rscp programmiert hat, über den die Steuerung im ioBroker erst möglich wurde.Ziel der Steuerung ist:
Mit der Steuerung soll erreicht werden, dass der Batteriespeicher möglichst schonend geladen wird, um die Lebensdauer zu erhöhen.- Speicher soll nie längere Zeit auf 100 % geladen werden oder auf 0 % entladen werden.
- Möglichst gleichmäßige Ladeleistung beim Laden.
- PV-Überschuss soll gespeichert werden, um nicht in die 70 % Abriegelung zu kommen.
- Bei Überschreitung WR Begrenzung soll Überschuss in die Batterie gespeichert werden.
ioBroker
Es werden folgende Adapter benötigt:- Javascript (NPM-Module: axios, is-it-bst)
- e3dc-rscp
Für die View Beispiele in VIS werden noch folgende Adapter benötigt:
- vis-hqwidgets
- vis-materialdesign
- vis-timeandweather
Beispiel View zum Importieren und das Skript Charge-Control, sowie eine Anleitung findet ihr auf GitHub:
https://github.com/ArnoD15/iobroker_E3DCEinstellbare Parameter:
Unload: Wenn der SoC Wert der Batterie > Wert „Unload“ ist, wird der Batteriespeicher mit Beginn Solarproduktion bis Beginn Regelzeitraum, auf SOC Wert Parameter "Unload" entladen. Ist Unload < Ladeschwelle wird bis Ladeschwelle geladen und Unload ignoriert.Ladeschwelle: Mit Beginn Solarproduktion wird die Batterie mit der maximalen Ladeleistung bis zum Wert Ladeschwelle geladen. Erst wenn der Batterie SOC den Wert Ladeschwelle erreicht, wird mit dem geregelten Laden begonnen. Danach wird bis SOC Wert „Ladeende“ gleichmäßig geladen, mit Ausnahme, wenn die PV-Leistung das Einspeiselimit oder die WR-Maxleistung übersteigt, wird die Ladeleistung um den Wert erhöht, um das Einspeiselimit oder WR-Limit einhalten zu können. Bei unterschreiten von dem Wert Einspeiselimit oder WR-Limit, wird wieder mit neu berechneter Ladeleistung, gleichmäßig bis „Ladeende" geladen. Bei großem Überschuss kann die gleichmäßige Ladeleistung bis auf 0 abgesenkt werden. Parameter "Ladeschwelle" hat Vorrang vor "Unload", d.h. "Unload" wird ignoriert, falls "Ladeschwelle" größer sein sollte als „Unload“.
Ladeende: SoC Wert Speicher, der zum Ende des Regelzeitraums erreicht werden soll.
Ladeende2: SoC Wert Speicher, der zum Ende Sommer Ladeende erreicht werden sollten.
Unterer Ladekorridor: Der „Untere Ladekorridor“ definiert nur den min. Wert, ab dem mit dem Laden der Batterie gestartet wird. Erst wenn die berechnetet Ladeleistung den Wert „unteren Ladekorridor“ übersteigt, wird mit dem Laden der Batterie gestartet.
Offset Regelbeginn Zeit in hh:mm, die von der Astro Zeit "solarNoon" (höchster Sonnenstand) abgezogen wird.
Offset Regelende Zeit in hh:mm, die zu der Astro Zeit "solarNoon" (höchster Sonnenstand) dazu addiert wird.
Offset Ladeende Zeit in hh:mm, die von der Astro Zeit "sunset" (Sonnenuntergang) abgezogen wird.

Eigenverbrauch: Der geschätzte Eigenverbrauch pro Tag in kWh. Wird für die Überschussberechnung der Prognose verwendet.Notstrom min.: Speicherreserve in % bei Wintersonnenwende 21.12
Notstrom Sockel: min. SOC Wert bei Tag-/Nachtgleiche 21.3./21.9.
Berechnung Notstrom: 21.12 (Wintersonnenwende) ist der Bezugs-SoC = Wert „Notstrom min“ und wird bis zum 21.3 (Tag-/Nachtgleiche) auf Wert „Notstrom Sockel“ reduziert und bis zum 20.06 (Sommersonnenwende) um ca. weitere 10% reduziert. Ab dem 20.06 (Sommersonnenwende) steigt der Bezugs-SoC wieder bis zum 21.09 (Tag-/Nachtgleiche) auf den Wert „Notstrom Sockel“ und bis zum 21.12 (Wintersonnenwende) auf den Wert „Notstrom min“. Je Monat ändert sich somit der SoC um ca. +- 3,3%. Mit Notstrom min. und Notstrom Sockel kann man eine Dynamische Notstromreserve vorhalten, Vorteil ist, dass der Speicher nicht alle 3 Wochen entladen wird wie bei der Notstromreserve von E3DC.
Starten wir am 21.12 (Wintersonnenwende) der kürzeste Tag, da wird der Speicher bis auf Notstrom min = 20% entladen.
Ab jetzt werden die Tage immer länger, bis zum 21.3 (Tag-/Nachtgleiche) wo die Tage und Nächte gleich lang sind.
Das bedeutet deine Speicherreserve kann immer geringer werden je länger die Tage sind, da ja mehr PV-Leistung zur Verfügung steht. Es wird somit jeden Monat die Speichergrenze um ca.3,33% reduziert bis zum 21.03 auf den Wert Notstrom Sockel = 10%.Ab dem 21.03 werden die Tage immer länger bis zum 20.06 (Sommersonnenwende) dem längsten Tag im Jahr.
Es wird also die Speichergrenze weiter jeden Monat um ca. 3,33% reduziert bis zum 20.06 auf 0%,
Ab diesem Zeitpunkt werden die Tage wieder kürzer bis zum 21.9 (Tag-/Nachtgleiche) wo die Tage und Nächte wieder gleich lang sind und die Speicherreserve wird jeden Monat um ca. 3,33% erhöht auf Notstrom Sockel = 10%.
Die Tage werden immer kürzer bis zum 21.12 (Wintersonnenwende) und die Speichergrenze wird weiter jeden Monat um ca. 3,33% erhöht auf den Wert Notstrom min = 20%Notstrom Sockel ist somit der min. SOC Wert, wenn die Tage und Nächte gleich lang sind, also am 21.3 und 21.09 und
Notstrom min wenn die Tage am kürzesten sind am 21.12 .Laderegelung:
Mit Beginn Solarproduktion wird die Batterie mit der maximalen Ladeleistung bis zum Wert Ladeschwelle geladen oder bis zum SOC Wert Unload entladen. Erst wenn der Batterie SOC den Wert Ladeschwelle erreicht, wird mit dem geregelten Laden begonnen.Mit Start Regelzeitraum wird die benötigte Ladeleistung berechnet, um den SOC Ladeende bis zum Ende Regelzeitraum zu erreichen.
Bei Überschreitung der Zeit, Ende Regelzeitraum wird die benötigte Ladeleistung neu berechnet, um den SOC Ladeende2 bis zur Zeit Ladeende zu erreichen.
Wenn die Zeit Ladeende erreicht ist und die Batterie noch nicht den SOC Ladeende2 erreicht hat, wird das Laden mit maximal noch zur Verfügung stehender PV-Leistung freigegeben.
Ausnahme: Wenn die PV-Leistung das Einspeiselimit oder die maximale Wechselrichterleistung übersteigt, wird die Ladeleistung um den Wert erhöht, um das Einspeiselimit oder die maximale Wechselrichterleistung einhalten zu können. Bei Unterschreiten von dem Wert Einspeiselimit oder WR-Limit, wird mit neu berechneter Ladeleistung, gleichmäßig geladen.
@ArnoD Das ist jetzt ein bisschen komisch...nachts um 2 Uhr wird PV-Leistung für den 4. August angezeigt, obwohl die Sonne noch gar nicht aufgegangen ist:

Der Wert kommt da her: 0_userdata.0.E3DC-Control.Allgemein.IstSummePvLeistung_kWh

Müsste der Wert vielleicht zum Tagesende gelöscht werden? Andererseits weiß ich gar nicht, was das für ein Wert sein soll, also wo die Zahl herkommt...am Vortag (3. August) war die Summe aus Anlage 1 und 2 viel höher (korrekt im Diagramm)...
Hat das damit zu tun, dass das Diagramm jetzt öfters aktualisiert wird und nicht nur nachts um 22 Uhr wie früher?Edit: Um 6 Uhr morgens hab ich eben draufgesehen, da hatte sich das Problem wieder gelöst. Ich kann jetzt nicht sagen, ob es mit dem Neuzeichnen des Diagramms (wegen aktualisierter Wetterprognose) um/ab 6 Uhr zu tun hat, oder ob relativ zeitgleich der Start der PV-Erzeugung den State auf 0 gesetzt hat...oder beides...jedenfalls passt es (spätestens) wieder, sobald ab ca. 6 Uhr neuer Strom erzeugt wird. Wäre aber vielleicht trotzdem schön, wenn das Diagramm keinen Phantomstrom anzeigen würde. ;-)
-
@ArnoD Das ist jetzt ein bisschen komisch...nachts um 2 Uhr wird PV-Leistung für den 4. August angezeigt, obwohl die Sonne noch gar nicht aufgegangen ist:

Der Wert kommt da her: 0_userdata.0.E3DC-Control.Allgemein.IstSummePvLeistung_kWh

Müsste der Wert vielleicht zum Tagesende gelöscht werden? Andererseits weiß ich gar nicht, was das für ein Wert sein soll, also wo die Zahl herkommt...am Vortag (3. August) war die Summe aus Anlage 1 und 2 viel höher (korrekt im Diagramm)...
Hat das damit zu tun, dass das Diagramm jetzt öfters aktualisiert wird und nicht nur nachts um 22 Uhr wie früher?Edit: Um 6 Uhr morgens hab ich eben draufgesehen, da hatte sich das Problem wieder gelöst. Ich kann jetzt nicht sagen, ob es mit dem Neuzeichnen des Diagramms (wegen aktualisierter Wetterprognose) um/ab 6 Uhr zu tun hat, oder ob relativ zeitgleich der Start der PV-Erzeugung den State auf 0 gesetzt hat...oder beides...jedenfalls passt es (spätestens) wieder, sobald ab ca. 6 Uhr neuer Strom erzeugt wird. Wäre aber vielleicht trotzdem schön, wenn das Diagramm keinen Phantomstrom anzeigen würde. ;-)
@ArnoD
Hi Arno,
ich habe gestern auch umgestellt.
Der Istwert in der Prognose aus Source Analytics ( welchen ich mit meinem eigen Zähler füttere) ist schön mitgewachsen und wurde auch richtig angezeigt. Leider ist der Baken heute weg.
Ich finde im Script keinen chron, wann du den Wert speicherst: Ich setze meinen Tageszähler um 23:58 wieder auf 0...
Wann holst du den letzten wert ab? -
@ArnoD Das ist jetzt ein bisschen komisch...nachts um 2 Uhr wird PV-Leistung für den 4. August angezeigt, obwohl die Sonne noch gar nicht aufgegangen ist:

Der Wert kommt da her: 0_userdata.0.E3DC-Control.Allgemein.IstSummePvLeistung_kWh

Müsste der Wert vielleicht zum Tagesende gelöscht werden? Andererseits weiß ich gar nicht, was das für ein Wert sein soll, also wo die Zahl herkommt...am Vortag (3. August) war die Summe aus Anlage 1 und 2 viel höher (korrekt im Diagramm)...
Hat das damit zu tun, dass das Diagramm jetzt öfters aktualisiert wird und nicht nur nachts um 22 Uhr wie früher?Edit: Um 6 Uhr morgens hab ich eben draufgesehen, da hatte sich das Problem wieder gelöst. Ich kann jetzt nicht sagen, ob es mit dem Neuzeichnen des Diagramms (wegen aktualisierter Wetterprognose) um/ab 6 Uhr zu tun hat, oder ob relativ zeitgleich der Start der PV-Erzeugung den State auf 0 gesetzt hat...oder beides...jedenfalls passt es (spätestens) wieder, sobald ab ca. 6 Uhr neuer Strom erzeugt wird. Wäre aber vielleicht trotzdem schön, wenn das Diagramm keinen Phantomstrom anzeigen würde. ;-)
@stevie77
0_userdata.0.E3DC-Control.Allgemein.IstSummePvLeistung_kWh ist die Summe von PV-Leistung Leistungsmesser 0 (sPvLeistung_kWh) und Leistungsmesser 1 (sEinspeiserLeistung_kWh).
Dieser Wert wird immer aktualisiert wenn sich bei Leistungsmesser 0 was ändert. In meinem Fall also bei dem Wert von sourceanalytix .
Da muss sich anscheinend bei dir der Wert um 2 Uhr geändert haben. Ob jetzt einer der beiden Zähler dann 21 kWh angezeigt hat oder beide kann ich dir so leider nicht sagen, aber getriggert wird immer auf Leistungsmesser 0 das ist die Variable sPvLeistung_kWh.
Sourceanalytix löscht die Werte automatisch um 0:00 Uhr und Zählt wierder von 0 kWh, sodass eigentlich nichts gelöscht werden muss. -
@ArnoD
Hi Arno,
ich habe gestern auch umgestellt.
Der Istwert in der Prognose aus Source Analytics ( welchen ich mit meinem eigen Zähler füttere) ist schön mitgewachsen und wurde auch richtig angezeigt. Leider ist der Baken heute weg.
Ich finde im Script keinen chron, wann du den Wert speicherst: Ich setze meinen Tageszähler um 23:58 wieder auf 0...
Wann holst du den letzten wert ab?@smartboart
Vermutlich selbes Problem wie stevie77 wenn du den Tageszähler vor 0:00:01 zurücksetzt wird der Wert von gestern gelöscht.
Der Wert wird ständig bei Änderung für den aktuellen Tag gespeichert.
Beispiel:
Wenn du am 04.08.2020 um 23:58 auf 0 setzt wird 0 noch für den 04.08.2020 gespeichert. -
@ArnoD
Hi Arno,
ich habe gestern auch umgestellt.
Der Istwert in der Prognose aus Source Analytics ( welchen ich mit meinem eigen Zähler füttere) ist schön mitgewachsen und wurde auch richtig angezeigt. Leider ist der Baken heute weg.
Ich finde im Script keinen chron, wann du den Wert speicherst: Ich setze meinen Tageszähler um 23:58 wieder auf 0...
Wann holst du den letzten wert ab?@smartboart sagte in E3DC Hauskraftwerk steuern:
Ich finde im Script keinen chron, wann du den Wert speicherst: Ich setze meinen Tageszähler um 23:58 wieder auf 0...
Wann holst du den letzten wert ab?Ab Zeile 1207 im Script:
on({id: sPvLeistung_kWh,change: "ne"}, function (obj){ -
-
Habe mal eine Frage an euch. :-)
Welche Prognose trifft bei euch eher zu, die von Proplanta oder Forecast ?
Ich habe mir die Diagramme vom Juni/Juli mal angeschaut und Proplanta hat eine bessere Trefferquote als Forecast, jedenfalls bei mir.@ArnoD sagte in E3DC Hauskraftwerk steuern:
Habe mal eine Frage an euch. :-)
Welche Prognose trifft bei euch eher zu, die von Proplanta oder Forecast ?
Ich habe mir die Diagramme vom Juni/Juli mal angeschaut und Proplanta hat eine bessere Trefferquote als Forecast, jedenfalls bei mir.Da die Zählweise von Sourceanalytix so ungenau ist, ist das Diagramm nicht so besonders aussagekräftig. Heute 7 kWh Abweichung. Dazu wurde lange die 2. Anlage nicht gezählt. Ich hab da also kaum belastbare Daten. Tendenziell liegen beide gleich oft richtig oder daneben. Am ehesten trifft es die Prognose Auto...
Ich glaube dieser Wert, der da bei mir falsch angezeigt wird, ist der Anteil meiner 2. PV-Anlage. Warum ist mir noch nicht ganz klar...
Hatte seither kurz vor 22 Uhr einen Korrekturfaktor auf das Ist-Ergebnis losgelassen (1.088 trifft es meist ganz gut), aber das klappt jetzt mit der neuen Version nicht mehr. Mal sehen, ob ich das gefixt bekomme.PS: Da jetzt also bei Änderung des PV-Werts das Diagramm aktualisiert wird, wird die bisherige Aktualisierung um 22 Uhr wahrscheinlich weggefallen sein? Vermutlich wird deshalb das Diagramm nicht mehr mit meinem korrigierten Ist-Wert aktualisiert (schedule({hour: 21, minute: 58}, function(){...}). Könntest du das evtl. wieder einbauen, dass das um 22 Uhr nochmals passiert? Schadet ja nicht... ;-)
Ich kann die Funktion leider nicht von außen mit meinem Skript aufrufen. Oder ist das viel Code um das Diagramm einmal neu aufzubauen?Dass nur Anlage 1 das triggert ist auch deswegen problematisch, weil meine 2. Anlage in West manchmal etwas länger läuft als Süd und dann ein (wenn auch kleiner) Teil der Erzeugung fehlen könnte. Ich habe eine Funktion geschrieben um mir die Gesamtleistung und -erzeugung beider Anlagen in ner Statuszeile anzuzeigen, da habe ich zwei Trigger definiert, so dass Änderungen an beiden Anlagen die Werte neu berechnen.
-
@ArnoD sagte in E3DC Hauskraftwerk steuern:
Habe mal eine Frage an euch. :-)
Welche Prognose trifft bei euch eher zu, die von Proplanta oder Forecast ?
Ich habe mir die Diagramme vom Juni/Juli mal angeschaut und Proplanta hat eine bessere Trefferquote als Forecast, jedenfalls bei mir.Da die Zählweise von Sourceanalytix so ungenau ist, ist das Diagramm nicht so besonders aussagekräftig. Heute 7 kWh Abweichung. Dazu wurde lange die 2. Anlage nicht gezählt. Ich hab da also kaum belastbare Daten. Tendenziell liegen beide gleich oft richtig oder daneben. Am ehesten trifft es die Prognose Auto...
Ich glaube dieser Wert, der da bei mir falsch angezeigt wird, ist der Anteil meiner 2. PV-Anlage. Warum ist mir noch nicht ganz klar...
Hatte seither kurz vor 22 Uhr einen Korrekturfaktor auf das Ist-Ergebnis losgelassen (1.088 trifft es meist ganz gut), aber das klappt jetzt mit der neuen Version nicht mehr. Mal sehen, ob ich das gefixt bekomme.PS: Da jetzt also bei Änderung des PV-Werts das Diagramm aktualisiert wird, wird die bisherige Aktualisierung um 22 Uhr wahrscheinlich weggefallen sein? Vermutlich wird deshalb das Diagramm nicht mehr mit meinem korrigierten Ist-Wert aktualisiert (schedule({hour: 21, minute: 58}, function(){...}). Könntest du das evtl. wieder einbauen, dass das um 22 Uhr nochmals passiert? Schadet ja nicht... ;-)
Ich kann die Funktion leider nicht von außen mit meinem Skript aufrufen. Oder ist das viel Code um das Diagramm einmal neu aufzubauen?Dass nur Anlage 1 das triggert ist auch deswegen problematisch, weil meine 2. Anlage in West manchmal etwas länger läuft als Süd und dann ein (wenn auch kleiner) Teil der Erzeugung fehlen könnte. Ich habe eine Funktion geschrieben um mir die Gesamtleistung und -erzeugung beider Anlagen in ner Statuszeile anzuzeigen, da habe ich zwei Trigger definiert, so dass Änderungen an beiden Anlagen die Werte neu berechnen.
@stevie77 sagte in E3DC Hauskraftwerk steuern:
Da die Zählweise von Sourceanalytix so ungenau ist,
Vermutlich hast du ne zu hohe poll zeit im modbusadapter eingestellt?
Aber ich halte von der messung auch nichts , da wird der ganze Ertrag gezählt auch der Ertrag von dem du garnichts hast, also auch die Wandlungs und Batterieverluste. Die will ich nicht messen und auch nicht bezahlen.
Deshalb messe ich hinter der Wechselrichter einspeisung mit nem Separaten Modbus Messgerät. Der Wert ist immer kleiner als das was die Anlage ausspuckt, aber das Korrigiere ich mit dem Korrekturfaktor.Edit:
natürlich wird dann auch nachts gemessen, wenn aus der Batterie entnommen wird, wird ja auch erzeugt. Da das was entnommen wird auch wieder geladen wird, stimmt die Prognose ja auch einigermaßen. Vorteil ist, dass ich die Verluste eben nicht mit messe. Ich entnehme ja weniger aus der Batterie als ich zum laden brauche.Natürlich wird dann ab 0 uhr das verbraucht was ich am tag zuvor geladen habe, aber es wird ja wieder am nächsten tag geladen, somit die Meßwerte schon verwendbar für die Prognose...Sehe ich zumindest so..
Nicht jeder hat halt einen Einspeisezähler und deshalb hat Sourcanalytics schon seine Berechtigung. Aber der internen Ertragszähler wäre mir zu ungenau, bzw. die Ablesung wäre zu meinen Ungunsten.
Sieht man ja auch im Hausverbrauch.. Wenn ich 300 Watt verbrauche , zeigt mir der Wechselrichter 400 an..Klar verluste eben. Aber bezahlen will ich die net. Kurz der interne Erzeugungszähler zeigt mehr als tasächlich als Nutzbare Energie eingespeist und entnommen wird. Und das ist für mich relevant, nicht das was die Anlage verbraucht. -
Habe mal eine Frage an euch. :-)
Welche Prognose trifft bei euch eher zu, die von Proplanta oder Forecast ?
Ich habe mir die Diagramme vom Juni/Juli mal angeschaut und Proplanta hat eine bessere Trefferquote als Forecast, jedenfalls bei mir.@ArnoD sagte in E3DC Hauskraftwerk steuern:
Habe mal eine Frage an euch. :-)
Welche Prognose trifft bei euch eher zu, die von Proplanta oder Forecast ?
Ich habe mir die Diagramme vom Juni/Juli mal angeschaut und Proplanta hat eine bessere Trefferquote als Forecast, jedenfalls bei mir.Messe erst seit Ende Juli..deshalb hat das von mir noch keine Aussagekraft. Aber was ich bis jetzt sehe, hält es sich die Waage...mal ist Forcast genau dran mal Proplanta..
Vlt. ist die auto Prognose genau dazwischen besser -
@smartboart
Vermutlich selbes Problem wie stevie77 wenn du den Tageszähler vor 0:00:01 zurücksetzt wird der Wert von gestern gelöscht.
Der Wert wird ständig bei Änderung für den aktuellen Tag gespeichert.
Beispiel:
Wenn du am 04.08.2020 um 23:58 auf 0 setzt wird 0 noch für den 04.08.2020 gespeichert.@ArnoD sagte in E3DC Hauskraftwerk steuern:
@smartboart
Vermutlich selbes Problem wie stevie77 wenn du den Tageszähler vor 0:00:01 zurücksetzt wird der Wert von gestern gelöscht.
Der Wert wird ständig bei Änderung für den aktuellen Tag gespeichert.
Beispiel:
Wenn du am 04.08.2020 um 23:58 auf 0 setzt wird 0 noch für den 04.08.2020 gespeichert.Danke dann weiß ich was ich ändern muss.
-
@ArnoD sagte in E3DC Hauskraftwerk steuern:
@smartboart
Vermutlich selbes Problem wie stevie77 wenn du den Tageszähler vor 0:00:01 zurücksetzt wird der Wert von gestern gelöscht.
Der Wert wird ständig bei Änderung für den aktuellen Tag gespeichert.
Beispiel:
Wenn du am 04.08.2020 um 23:58 auf 0 setzt wird 0 noch für den 04.08.2020 gespeichert.Danke dann weiß ich was ich ändern muss.
@ArnoD
Warum hattest du die Automatikanwahl Bedingung für Einstellung 2 ausgeklammert? -
@stevie77 sagte in E3DC Hauskraftwerk steuern:
Da die Zählweise von Sourceanalytix so ungenau ist,
Vermutlich hast du ne zu hohe poll zeit im modbusadapter eingestellt?
Aber ich halte von der messung auch nichts , da wird der ganze Ertrag gezählt auch der Ertrag von dem du garnichts hast, also auch die Wandlungs und Batterieverluste. Die will ich nicht messen und auch nicht bezahlen.
Deshalb messe ich hinter der Wechselrichter einspeisung mit nem Separaten Modbus Messgerät. Der Wert ist immer kleiner als das was die Anlage ausspuckt, aber das Korrigiere ich mit dem Korrekturfaktor.Edit:
natürlich wird dann auch nachts gemessen, wenn aus der Batterie entnommen wird, wird ja auch erzeugt. Da das was entnommen wird auch wieder geladen wird, stimmt die Prognose ja auch einigermaßen. Vorteil ist, dass ich die Verluste eben nicht mit messe. Ich entnehme ja weniger aus der Batterie als ich zum laden brauche.Natürlich wird dann ab 0 uhr das verbraucht was ich am tag zuvor geladen habe, aber es wird ja wieder am nächsten tag geladen, somit die Meßwerte schon verwendbar für die Prognose...Sehe ich zumindest so..
Nicht jeder hat halt einen Einspeisezähler und deshalb hat Sourcanalytics schon seine Berechtigung. Aber der internen Ertragszähler wäre mir zu ungenau, bzw. die Ablesung wäre zu meinen Ungunsten.
Sieht man ja auch im Hausverbrauch.. Wenn ich 300 Watt verbrauche , zeigt mir der Wechselrichter 400 an..Klar verluste eben. Aber bezahlen will ich die net. Kurz der interne Erzeugungszähler zeigt mehr als tasächlich als Nutzbare Energie eingespeist und entnommen wird. Und das ist für mich relevant, nicht das was die Anlage verbraucht.@smartboart sagte in E3DC Hauskraftwerk steuern:
@stevie77 sagte in E3DC Hauskraftwerk steuern:
Da die Zählweise von Sourceanalytix so ungenau ist,
Vermutlich hast du ne zu hohe poll zeit im modbusadapter eingestellt?
Ich hab das so übernommen, wie hier angegeben: https://buanet.de/2018/02/integration-eines-e3-dc-hauskraftwerks-in-iobroker/
-
@ArnoD
Warum hattest du die Automatikanwahl Bedingung für Einstellung 2 ausgeklammert?@smartboart sagte in E3DC Hauskraftwerk steuern:
@ArnoD
Warum hattest du die Automatikanwahl Bedingung für Einstellung 2 ausgeklammert?Uuups, da habe ich mich in der Zeile vertan. Muss natürlich bei 2 rein und bei 1 raus, da das die Standardeinstellung von E3DC ohne Steuerung ist.
-
@ArnoD
Hallo Arno,
ich habe mir jetzt nen Modbuszähler als Erzeugungszähler zusätzlich eingebaut...
Dafür habe ich ein Script geschrieben, welches täglich den Ertrag hochzählt, wie sourceanalytics. Wegen einem State wollte ich keinen ganzen Adapter laufen lassen.
Den TagesZähler resette ich jetzt täglich um 23:59Uhr.
Mit deinem Script würde ich die Werte gerne um 23:58 abholen...
Spricht da was dagegen, weil du die Werte von Source analytiys schon viel früher abrufst...@smartboart sagte in E3DC Hauskraftwerk steuern:
ich habe mir jetzt nen Modbuszähler als Erzeugungszähler zusätzlich eingebaut...
Dafür habe ich ein Script geschrieben, welches täglich den Ertrag hochzählt, wie sourceanalytics. Wegen einem State wollte ich keinen ganzen Adapter laufen lassen.Würdest du mir dass Script zur Verfügung stellen ? Würde auch gerne ohne zusätzlichen sourceanalytics Adapter die Werte hochzählen. :-)
-
@ArnoD sagte in E3DC Hauskraftwerk steuern:
Habe mal eine Frage an euch. :-)
Welche Prognose trifft bei euch eher zu, die von Proplanta oder Forecast ?
Ich habe mir die Diagramme vom Juni/Juli mal angeschaut und Proplanta hat eine bessere Trefferquote als Forecast, jedenfalls bei mir.Da die Zählweise von Sourceanalytix so ungenau ist, ist das Diagramm nicht so besonders aussagekräftig. Heute 7 kWh Abweichung. Dazu wurde lange die 2. Anlage nicht gezählt. Ich hab da also kaum belastbare Daten. Tendenziell liegen beide gleich oft richtig oder daneben. Am ehesten trifft es die Prognose Auto...
Ich glaube dieser Wert, der da bei mir falsch angezeigt wird, ist der Anteil meiner 2. PV-Anlage. Warum ist mir noch nicht ganz klar...
Hatte seither kurz vor 22 Uhr einen Korrekturfaktor auf das Ist-Ergebnis losgelassen (1.088 trifft es meist ganz gut), aber das klappt jetzt mit der neuen Version nicht mehr. Mal sehen, ob ich das gefixt bekomme.PS: Da jetzt also bei Änderung des PV-Werts das Diagramm aktualisiert wird, wird die bisherige Aktualisierung um 22 Uhr wahrscheinlich weggefallen sein? Vermutlich wird deshalb das Diagramm nicht mehr mit meinem korrigierten Ist-Wert aktualisiert (schedule({hour: 21, minute: 58}, function(){...}). Könntest du das evtl. wieder einbauen, dass das um 22 Uhr nochmals passiert? Schadet ja nicht... ;-)
Ich kann die Funktion leider nicht von außen mit meinem Skript aufrufen. Oder ist das viel Code um das Diagramm einmal neu aufzubauen?Dass nur Anlage 1 das triggert ist auch deswegen problematisch, weil meine 2. Anlage in West manchmal etwas länger läuft als Süd und dann ein (wenn auch kleiner) Teil der Erzeugung fehlen könnte. Ich habe eine Funktion geschrieben um mir die Gesamtleistung und -erzeugung beider Anlagen in ner Statuszeile anzuzeigen, da habe ich zwei Trigger definiert, so dass Änderungen an beiden Anlagen die Werte neu berechnen.
@stevie77 sagte in E3DC Hauskraftwerk steuern:
Ich glaube dieser Wert, der da bei mir falsch angezeigt wird, ist der Anteil meiner 2. PV-Anlage. Warum ist mir noch nicht ganz klar...
Hatte seither kurz vor 22 Uhr einen Korrekturfaktor auf das Ist-Ergebnis losgelassen (1.088 trifft es meist ganz gut), aber das klappt jetzt mit der neuen Version nicht mehr. Mal sehen, ob ich das gefixt bekomme.Okay, ich hab' mir jetzt ne Liste angelegt, was ich bei einem Update des Skripts alles ändern muss. Unter anderem ergänze ich das früher vorhandene
schedule({hour: 22, minute: 1}, function(){makeJson();});Damit wird bei mir zum Tagesende, wenn ich mal draufschaue, wie gut die Vorhersage eingetroffen ist, nun wieder mein nach oben korrigierter Gesamterzeugungswert auch im Diagramm angezeigt.
-
@stevie77 sagte in E3DC Hauskraftwerk steuern:
Ich glaube dieser Wert, der da bei mir falsch angezeigt wird, ist der Anteil meiner 2. PV-Anlage. Warum ist mir noch nicht ganz klar...
Hatte seither kurz vor 22 Uhr einen Korrekturfaktor auf das Ist-Ergebnis losgelassen (1.088 trifft es meist ganz gut), aber das klappt jetzt mit der neuen Version nicht mehr. Mal sehen, ob ich das gefixt bekomme.Okay, ich hab' mir jetzt ne Liste angelegt, was ich bei einem Update des Skripts alles ändern muss. Unter anderem ergänze ich das früher vorhandene
schedule({hour: 22, minute: 1}, function(){makeJson();});Damit wird bei mir zum Tagesende, wenn ich mal draufschaue, wie gut die Vorhersage eingetroffen ist, nun wieder mein nach oben korrigierter Gesamterzeugungswert auch im Diagramm angezeigt.
-
@stevie77
wie korrigierst du deinen Gesamterzeugungswert ?
Rechnest du den einmal zu einem festen Zeitpunkt dazu ? -
@smartboart sagte in E3DC Hauskraftwerk steuern:
ich habe mir jetzt nen Modbuszähler als Erzeugungszähler zusätzlich eingebaut...
Dafür habe ich ein Script geschrieben, welches täglich den Ertrag hochzählt, wie sourceanalytics. Wegen einem State wollte ich keinen ganzen Adapter laufen lassen.Würdest du mir dass Script zur Verfügung stellen ? Würde auch gerne ohne zusätzlichen sourceanalytics Adapter die Werte hochzählen. :-)
@ArnoD sagte in E3DC Hauskraftwerk steuern:
@smartboart sagte in E3DC Hauskraftwerk steuern:
ich habe mir jetzt nen Modbuszähler als Erzeugungszähler zusätzlich eingebaut...
Dafür habe ich ein Script geschrieben, welches täglich den Ertrag hochzählt, wie sourceanalytics. Wegen einem State wollte ich keinen ganzen Adapter laufen lassen.Würdest du mir dass Script zur Verfügung stellen ? Würde auch gerne ohne zusätzlichen sourceanalytics Adapter die Werte hochzählen. :-)
klar...
heute ist der state den ich für dein script verwende...
javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.heuteTag ist quasi dann der komplette Tageswert nach 00:01Uhr.
genauso für Woche , Monat und Jahr...Immer der laufende Wert und dann am Ende der Wert von gestern, letze Woche, letzter Monat, letztes Jahr.createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.heute', 0, {name: 'lezter Zählerstand heute', type: 'number', unit: 'kW/h' }); createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.tag', 0, {name: 'Zählerstand gestern', type: 'number', unit: 'kW/h' }); createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellewoche', 0, {name: 'lezter Zählerstand laufende Woche', type: 'number', unit: 'kW/h' }); createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.woche', 0, {name: 'Zählerstand Woche', type: 'number', unit: 'kW/h' }); createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellermonat', 0, {name: 'lezter Zählerstand laufender Monat', type: 'number', unit: 'kW/h' }); createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.monat', 0, {name: 'Zählerstand Monat', type: 'number', unit: 'kW/h' }); createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellesjahr', 0, {name: 'lezter Zählerstand laufendes Jahr', type: 'number', unit: 'kW/h' }); createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.jahr', 0, {name: 'Zählerstand Jahr', type: 'number', unit: 'kW/h' }); createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.Alt', 0, {name: 'Zählerstand Alt', type: 'number', unit: 'kW/h' }); var debug = true; var logging = true; var difference = null; const idSolarproduktionGesamt = 'modbus.0.holdingRegisters.12288_E3DC_Lieferung Summe'/*12288 E3dc Lieferung Summe*/; const idSolarproduktionHeute = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.heute'; const idSolarproduktionGestern = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.tag'; const idSolarproduktionaktuellewoche = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellewoche'; const idSolarproduktionwoche = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.woche'; const idSolarproduktionaktuellermonat = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellermonat'; const idSolarproduktionmonat = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.monat'; const idSolarproduktionaktuellesjahr = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellesjahr'; const idSolarproduktionjahr = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.jahr'; const idAlt = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.Alt'; //scriptstart //on(idSolarproduktionGesamt, function(data) { schedule("*/5 * * * *", function () { var SolarproduktionGesamt = getState(idSolarproduktionGesamt).val; setState(idAlt,SolarproduktionGesamt,true); if(debug)log('Schedule Funktion Zähler merken u. Difference Berechnung einleiten. Aktueller Zählerstand ist: ' + SolarproduktionGesamt); }); on(idAlt, function(data) { if(debug)log("Alter Zählerwert: " + data.oldState.val + " aktueller Zählerwert: " + data.newState.val); difference = (data.newState.val - data.oldState.val); setTimeout(function(){Berechnen();},200); if(debug)log("Differenz berechnet " + difference); }); //Berechne laufende Tage Wochen Monate function Berechnen () { var heute = parseFloat(getState(idSolarproduktionHeute).val); var aktuellewoche = getState(idSolarproduktionaktuellewoche).val; var aktuellermonat = getState(idSolarproduktionaktuellermonat).val; var aktuellesjahr = getState(idSolarproduktionaktuellesjahr).val; var SolarproduktionGesamt = getState(idSolarproduktionGesamt).val; setState(idSolarproduktionHeute, Math.round((heute + difference)*100)/100,true); setState(idSolarproduktionaktuellewoche,Math.round((aktuellewoche + difference)*100)/100,true); setState(idSolarproduktionaktuellermonat,Math.round((aktuellermonat + difference)*100)/100,true); setState(idSolarproduktionaktuellesjahr,Math.round((aktuellesjahr + difference)*100)/100,true); setState(idAlt,SolarproduktionGesamt,true); if(debug)log("Zählerstand heute aktualisiert auf: " +heute ); } // täglich um 24:03 tageszähler auf null setzen schedule({hour: 0, minute: 1}, function () { var heute = getState(idSolarproduktionHeute).val; setState(idSolarproduktionGestern,heute,true); setStateDelayed(idSolarproduktionHeute,0,true,1000); if(logging)log("Tageszähler genullt und Tag gestern gesetzt"); }); // Sonntags um 23:58 aktuelle Woche auf 0 setzen schedule ("58 23 * * 0", function () { var aktuellewoche = getState(idSolarproduktionaktuellewoche).val; setState(idSolarproduktionwoche,aktuellewoche,true); setStateDelayed(idSolarproduktionaktuellewoche,0,true,1000); if(logging)log("Wochenzähler genullt und letzte Woche gesetzt"); }); // am monatsanfang um 01:01 aktueller monat auf 0 setzen schedule("1 0 1 * *", function() { var aktuellermonat = getState(idSolarproduktionaktuellermonat).val; setState(idSolarproduktionmonat,aktuellermonat,true); setStateDelayed(idSolarproduktionaktuellermonat,0,true,1000); if(logging)log("Monatsszähler genullt und letzzten Monat gesetzt"); }); // am 1.Januar um 00:01 aktuelles jahr auf 0 setzen schedule("1 0 1 1 *", function() { var aktuellesjahr = getState(idSolarproduktionaktuellesjahr).val; setState(idSolarproduktionjahr,aktuellesjahr,true); setStateDelayed(idSolarproduktionaktuellesjahr,0,true,1000); if(logging)log("Jahressszähler genullt und letzztes Jahr gesetzt"); });