NEWS
Was spare ich durch das Balkonkraftwerk. Berechnung
-
@paul53
Ist schon ganz schön kompliziert.
Habe jetzt den richtigen Zählerstand vom Stromzähler mit dem AI on the edge.
Hilft das bei der Berechnung?Habe das jetzt mal nachgebaut.
Was muss den PV-Ertrag rein?
-
@gonzokalle sagte: Was muss den PV-Ertrag rein?
Ich kenne die Datenpunkte von OpenDTU nicht. Es muss die kumulierte PV-Produktion (in kWh) sein. "total.yieldtotal"?
Links muss
vorherige letzte Änderung
rein.Übrigens: Ersparnis kommt von sparen.
-
@paul53
Morgen geht's weiter.
Vielleicht kommt es mir spanis(ch) vor. -
@gonzokalle
Habe das mal geändert. total.yieldtotal müsste passen.
Morgen mal auf die Sonne warten.
Kann man so mit dem 3EM auch den richtigen Zählerstand errechnen, also saldiert?
-
@gonzokalle
Ich bin etwas weiter gekommen. Den Bezug (180) vom EVU bekomme ich jetzt direkt vom Zähler. 280 bekomme ich nicht.Heute haben sich die DP gefüllt.
Das sollen sicher Wh sein. Die Werte sind doch viel zu hoch? -
@gonzokalle sagte: Die Werte sind doch viel zu hoch?
Ja. Was wurde als Anfangswert verwendet? Es müssen kWh sein.
-
@paul53
Erstmal Danke, dass du mir bei der komplizierten Berechnung hilfst.EVU-Einspeisung ist mit 0 gestartet.
InstantPower ist ja akuelle Leistung (W) vom 3EM.
Yieldtotal steht aktuell auf 11.304 kWh -
@gonzokalle
Wenn das Skript so aufgebaut ist wie hier gezeigt, verstehe ich nicht, wie es zu so hohen Werten kommen kann.
Poste bitte den erzeugten Javascript-Code in Code tags. -
Ist das so richtig?
Zeile 22 war ganz lang. Habe ich erstmal weggelassen.var Einspeiseenergie, Erspanis; Einspeiseenergie = getState('0_userdata.0.Photovoltaik.EVU-Einspeisung').val; // Watt vom Shelly 3EM on({ id: 'shelly.0.SHEM-3#3494547B6CA9#1.Total.InstantPower' /* InstantPower */, change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if ((obj.oldState ? obj.oldState.val : '') < 0) { Einspeiseenergie = (typeof Einspeiseenergie === 'number' ? Einspeiseenergie : 0) + ((obj.oldState ? obj.oldState.val : '') * ((obj.oldState ? obj.oldState.lc : '') - (obj.state ? obj.state.lc : ''))) / 3600000000; setState('0_userdata.0.Photovoltaik.EVU-Einspeisung' /* EVU-Einspeisung */, Math.round(Einspeiseenergie * 100) / 100, true); } }); // Gesamte PV-Produktion (kWh) AC von OpenDTU on({ id: 'opendtu.0.total.yieldtotal' /* Total energy converted to AC since reset on specific input */, change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; Erspanis = (obj.state ? obj.state.val : '') - Einspeiseenergie; setState('0_userdata.0.Photovoltaik.Erspanis_(kWh)' /* Erspanis (kWh) */, Math.round(Erspanis * 100) / 100, true); });
-
@gonzokalle sagte: Ist das so richtig?
Danke. Der Code ist korrekt. Hat evtl. "InstantPower" große Ausreiser?
-
@paul53
Sieht ganz normal aus.Letzte 24 Stunden.
-
@gonzokalle sagte: Sieht ganz normal aus.
Dann habe ich die für die hohen Werte keine Erklärung. Setze mal den Wert für "EVU-Einspeisung" manuell auf 0 zurück, starte anschließend das Skript neu und beobachte morgen weiter.
-
@paul53
Das mache ich. Danke -
@gonzokalle
Heute sieht das schon viel besser aus. Das müsste passen. Danke