Falsche Berechnung der Leistung - Denkfehler oder falsche Integralrechnung?

Begonnen von Joejoe, 11 Oktober 2022, 18:56:50

Vorheriges Thema - Nächstes Thema

Joejoe

Hallo zusammen,

Ich habe ein Balkonkraftwerk in Betrieb genommen.
Die aktuelle Leistung wird über ein Shelly Plug S ermittelt.
Nun habe ich eine Berechnung als userReading erstellt die so aussieht:

PV_Produktion_Gesamt integral {ReadingsVal("shelly_bkw","power",0)/3600000},

Wenn ich am tagesende nun den errechneten Wert vergleichen kommt eine hohe Abweichung dabei heraus:
- Erzeugte Energie aus der App des Wechselrichters = 1,79 kWh
- Erzeugte Energie von dem Zähler des Shelly's = 1,588 kWh
- Erzeugte Energie errechnet durch das oben genannte userReading = 0,9455 kWh

Anfänglich dachte ich dass evtl. die Abtastrate eine Abweichung erzeugt aber aktuell ist das Intervall für die Abfrage des Shelly's 1 Sekunde und auch dann ist das Ergebnis von mindestens einem der Werte falsch.

Im weiteren habe ich eine Berechnung erstellt bei der, bei negativem Wert des Stromzählers, den negativen Wert vom Shelly-Wert abgezogen wird und daraus die erzeugte Energie mit Integral ausgibt.
Aber wenn schon die Berechnung der gesamten Energie nicht stimmt komm ich da nicht weiter.


Kann mir hier jemand weiterhelfen was ich ändern muss damit die Abweichung kleiner wird?

greetz Joe

thgorjup

Hallo Joejoe,

ich kann dir nur raten eine Blitzwolf SHP6 / Gosund SP111 Steckdose zu kaufen und TASMOTA darauf zu flashen.
Anschließend die Steckdose mit einer Glühbirne (z.B. 60W) kalibrieren und diese für deine Berechnungen verwenden. So mache ich das auch.
Die Steckdose zeigt bereits per default die Energie von heute/gestern/gesamt an, sowass du diese Werte nur noch in FHEM per MQTT übertragen musst.

In meinem Wiki habe ich beschrieben, wie man die Steckdose kalibriert:
http://wiki.gorjup.de/doku.php?id=public:fhem_blitzwolf_shp6

Gruß
Thomas
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

Otto123

Hi,

bei mir (MQTT2 Anbindung) gibt es beim Shelly Plug S das Reading relay_0_energy (watt minuten)
Das speichere ich dauerhaft als Energiezähler mit einem userReadings:
relay_0_energy_total:relay_0_energy:.* monotonic {ReadingsNum("$name","relay_0_energy",0)}

Warum selbst rechnen, das Gerät ermittelt den Wert

Kann sein im shelly Modul heißt das Reading anders, siehe auch die Doku
https://shelly-api-docs.shelly.cloud/gen1/#shelly-plug-plugs-meter-0

BTW: ich meine: der Shelly Plug S ist um Welten besser als die Gosund SP111

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Joejoe

Hallo,

Vielen Dank für die Antworten.
Mein Ziel ist es den realen Eigenverbrauch zu ermitteln. Das Versuche ich mit einem Shelly der ja, wie von Otto123 beschrieben, eine internen Zähler hat.
Da das Ergebnis eines solchen Zählers aber immer die komplette Summe der eingespeisten Energie ist bringt mich das nicht weiter.

Ich will die aktuelle Leistung des BKW minus dem Wert vom Stromzähler (wenn dieser ins negative läuft), und daraus über die Zeit die verbrauchte Energie berechnen lassen.
Ich dachte das könnte ich mit der Integral-Rechnung machen aber die große Abweichung hat mich stutzig gemacht und ich habe eine Energieberechnung aufgestellt wie im Anfangspost angegeben ist.
Dabei kamen eben diese Abweichungen heraus.

Kann ich evtl eine eigene Formel fürs Integralrechnen erstellen?  :o

Gruß Joe

Otto123

Also die aktuelle Leistung liefert der Shelly auch.
Keine Vorstellung wie ein Stromzähler ins negative läuft - aber wenn Du für beides absolute Zählerstände hast (Energiezähler) dann nimm doch die Werte und addiere oder subtrahiere diese.
ZitatDa das Ergebnis eines solchen Zählers aber immer die komplette Summe der eingespeisten Energie ist bringt mich das nicht weiter.
Du kannst doch zu bestimmten Zeiten die Zählerstände nehmen und Differenzen bilden?
Also 14000 um 12:00 und 13000 um 11:00 ergibt 1000 in der Stunde.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

KölnSolar

ZitatBTW: ich meine: der Shelly Plug S ist um Welten besser als die Gosund SP111
Beides schlecht, weil Wifi.  :P

Aber ernsthaft: Du kannst die "Abtastrate" noch so klein machen, das Wetter wird Dir IMMER einen Fehler verursachen. Daher ist
ZitatDu kannst doch zu bestimmten Zeiten die Zählerstände nehmen und Differenzen bilden?
genau richtig. So mache ich es auch.  :)

Ich mache es alle 10', weil ich mir aus dem Ertrag die Einstrahlung auf die verschiedenst ausgerichteten Gebäudeteile(Tagesverläufe) ermittle und diese später als Tageswert(statistics-Modul) haben möchte
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Otto123

Zitat von: KölnSolar am 13 Oktober 2022, 09:17:36
Beides schlecht, weil Wifi.  :P
Stimmt, aber ich meinte vor allem die Messeinheit und das Handling. Shelly hat ne ordentliche Firmware und den muss man nicht erst "knacken".
Insofern fand ich die Empfehlung einen Shelly Plug S durch einen SP111 zu ersetzen nicht zielführend.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Damian

Zitat von: Joejoe am 12 Oktober 2022, 21:43:59
Kann ich evtl eine eigene Formel fürs Integralrechnen erstellen?  :o

Kannst du nicht, da du keine Funktion definieren kannst, die deinem Verbrauch entsprechen würde. Du kannst nur punktuell die Leistungsdaten zusammen rechnen. Alleine eine Auflösung von 1 Sekunde ist schon zu viel. Daher Leistung immer das Leistungsmessgerät berechnen lassen, Energie über einen Zeitraum als Differenz der Energie-Zählerstände bestimmen. Dazu gibt es hier im Forum alle paar Wochen ein Thread dazu.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Prof. Dr. Peter Henning

ZitatKannst du nicht, da du keine Funktion definieren kannst, die deinem Verbrauch entsprechen würde
Das ist zunächst einmal falsch. Integralrechnung funktioniert nicht nur mit "definierten Funktionen", sondern problemlos auch mit zeitdiskreten numerischen Werten - man muss nur wissen, was man tut.

Die nachträgliche Integration von Leistungsdaten, die aus einem Reading stammen, ist allerdings in diesem Falle Unsinn. Denn dies ist beim Shelly tatsächlich NICHT die Durchschnittsleistung der vergangenen Messperiode, sondern die momentane Leistung. Bei anderen Leistungsmessgeräten (etwa den guten alten EMxxx) war das anders. Es bleibt also nichts anderes übrig, als die Energiemessung des Shelly zu akzeptieren.

LG

pah


Joejoe

Die Leistungsmessung des Shelly's akzeptiere ich soweit auch weil sie mit den Werten des Stromzählers in etwa übereinstimmen.
Ich habe leider kein Wert der ins Netz eingespeisten Energie.

Stromzähler: aktuelle Leistung und Gesamtenergie (bei Einspeisung geht der Leistungswert ins Minus und die Gesamtenergie bleibt stehen)
Shelly: aktuelle Leistung und Gesamtenergie
Aus diesen Werten kann  ich nach meinem Wissen keine Berechnung des realen Eigenverbrauchs anstellen oder?

Mein Versuch war es: integral {if 'aktuelle Leistung des Stromzählers' < 0 {return 'aktuelle Leistung des Shellys' - 'negative Leistung des Stromzählers' /3600} else {return 'aktuelle Leistung des Shellys' / 3600}


Damian

Zitat von: Joejoe am 16 Oktober 2022, 11:57:13
Aus diesen Werten kann  ich nach meinem Wissen keine Berechnung des realen Eigenverbrauchs anstellen oder?

Mein Versuch war es: integral {if 'aktuelle Leistung des Stromzählers' < 0 {return 'aktuelle Leistung des Shellys' - 'negative Leistung des Stromzählers' /3600} else {return 'aktuelle Leistung des Shellys' / 3600}
Vergiss die Sache mit dem Integral. Wie hier schon wiederholt geschrieben wurde: dein Shelly liefert einen punktuellen Leistungswert, dieser kann sich innerhalb einer Sekunde mehrfach ändern und das bekommst du nicht mit. Beispiel, dein Shelly liefert 2 kWatt und paar Millisekunden später sind es nur noch 100 Watt, dann würde deine Integralberechnung von 2 kWatt bis zum nächsten Wert ausgehen, obwohl es in dieser Zeitspanne vielleicht im Schnitt nur 130 Watt gewesen sind.

Der Eigenverbrauch ist einfach zu berechnen als: Eigenverbrauch_Energie=PV_Energie - eingespeiste_Energie

Die einzige Voraussetzung ist, dass es sich um den gleichen Zeitraum handeln muss.

Hiermit habe ich abstrakt etwas programmiert, was für alle möglichen Zähler funktioniert: https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-.2C_Monats-_und_Jahresstatistik_f.C3.BCr_Strom-.2C_Gas-.2C_Wasserz.C3.A4hler_und_andere_Z.C3.A4hler

Die durchschnittliche Leistung der letzten Minute berechne ich dagegen über userReadings im Tasmota-MQTT-Device: siehe (und vorherige)
https://forum.fhem.de/index.php/topic,97959.msg1225965.html#msg1225965




Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Prof. Dr. Peter Henning

ZitatDie einzige Voraussetzung ist, dass es sich um den gleichen Zeitraum handeln muss.
Auch falsch.
Man kann mit wenigen Codezeilen beide Werte, die zu unterschiedlichen Zeitpunkten gemessen worden sind, auf den gegenwärtigen Berechnungszeitpunkt extrapolieren.

Das mache ich sowohl in meiner seit 2011 laufenden Spezialversion des EMxxx-Moduls (findet man im contrib), als auch im Modul OWCOUNT (Extrapolation auf den Wert um Mitternacht).

LG

pah

Joejoe

Ich kann leider mit den letzten 2 Posts nichts anfangen.
Mein Ziel ist es den realen Ertrag des Balkonkraftwerks festzuhalten.
Mein Stromzähler des EVU hat nur eine Richtung.
Werte die ich aktuell zum rechnen habe:
Stromzähler : aktuelle Leistung (geht bei Überschuss des Balkonkraftwerks ins negative), Gesamtzählerstand (bleibt stehen wenn Leistung negativ ist), Tagesenergie (Letzte 24h), Wochenenergie , Monatsenergie
Shelly : aktuelle Leistung, Gesamtzählerstand der vom Balkonkraftwerk eingespeisten Energie

Wie kann ich hier weiter kommen?

Damian

Zitat von: Joejoe am 16 Oktober 2022, 17:32:26
Ich kann leider mit den letzten 2 Posts nichts anfangen.
Mein Ziel ist es den realen Ertrag des Balkonkraftwerks festzuhalten.
Mein Stromzähler des EVU hat nur eine Richtung.
Werte die ich aktuell zum rechnen habe:
Stromzähler : aktuelle Leistung (geht bei Überschuss des Balkonkraftwerks ins negative), Gesamtzählerstand (bleibt stehen wenn Leistung negativ ist), Tagesenergie (Letzte 24h), Wochenenergie , Monatsenergie
Shelly : aktuelle Leistung, Gesamtzählerstand der vom Balkonkraftwerk eingespeisten Energie

Wie kann ich hier weiter kommen?

Ich würde mir vermutlich eher einen Zweirichtungszähler zulegen, der getrennt beide Richtungen zählt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Joejoe

Also mit Berechnung auch keine Annäherung an den gewünschten Wert möglich?  :-[