Einspeisung loggen bei Zähler mit Rücklaufsperre

Begonnen von oli82, 22 September 2022, 11:43:09

Vorheriges Thema - Nächstes Thema

oli82

Hi Zusammen.

Ich habe bei mir eine kleine Solaranlage mit 600W, die meinen Grundbedarf decken soll.
Das klappt aktuell auch wunderbar und ich erzeuge häufig einen Überschuss, der ins Netz eingespeist wird.

Bei mir wurde letztes Jahr der Zähler gegen ein Smartmeter getauscht. Bei dem neuen Zähler handelt es sich leider nicht um einen Zweirichtungszähler, sondern um einen Zähler mit Rücklaufsperre.
Den Zähler lese ich mit einem Lesekopf aus und speichere die Werte.

Mir fehlt natürlich nun die Info, wieviel Leistung ich in das Netz eingespeist habe. Diese Info hätte ich aber gerne für diverse Berechnungen.
Ein Auszug aus dem log zeigt mir, dass mein Zähler zwar registriert, dass eingespeist wird (negative Werte), aber diese nicht in seinem Speicher ablegt.

2022-09-22_09:40:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -26
2022-09-22_09:41:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -43
2022-09-22_09:42:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -67
2022-09-22_09:43:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -65
2022-09-22_09:44:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: 106
2022-09-22_09:45:45 MQTT2_DVES_0A7700 mMe4.0_Total_in: 10056.179
2022-09-22_09:45:45 MQTT2_DVES_0A7700 mMe4.0_Power_cur: 104
2022-09-22_09:46:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: 73
2022-09-22_09:46:42 MQTT2_DVES_0A7700 mMe4.0_Total_in: 10056.180
2022-09-22_09:47:42 MQTT2_DVES_0A7700 mMe4.0_Total_in: 10056.181
2022-09-22_09:47:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: 58
2022-09-22_09:48:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -98
2022-09-22_09:48:42 MQTT2_DVES_0A7700 mMe4.0_Total_in: 10056.182
2022-09-22_09:49:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -96
2022-09-22_09:50:44 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -105
2022-09-22_09:52:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -98
2022-09-22_09:53:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -103
2022-09-22_09:54:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -106
2022-09-22_09:55:43 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -115
2022-09-22_09:56:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -120
2022-09-22_09:57:42 MQTT2_DVES_0A7700 mMe4.0_Total_in: 10056.213
2022-09-22_09:57:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: 1946


Wie kann ich diese negativen Werte am einfachsten als kWh loggen, also meinen eigenen Einspeisungszähler erzeugen?

Danke für eure Hilfe!

ch.eick

Zitat von: oli82 am 22 September 2022, 11:43:09
Hi Zusammen.

Ich habe bei mir eine kleine Solaranlage mit 600W, die meinen Grundbedarf decken soll.
Das klappt aktuell auch wunderbar und ich erzeuge häufig einen Überschuss, der ins Netz eingespeist wird.

Bei mir wurde letztes Jahr der Zähler gegen ein Smartmeter getauscht. Bei dem neuen Zähler handelt es sich leider nicht um einen Zweirichtungszähler, sondern um einen Zähler mit Rücklaufsperre.
Den Zähler lese ich mit einem Lesekopf aus und speichere die Werte.

Mir fehlt natürlich nun die Info, wieviel Leistung ich in das Netz eingespeist habe. Diese Info hätte ich aber gerne für diverse Berechnungen.
Ein Auszug aus dem log zeigt mir, dass mein Zähler zwar registriert, dass eingespeist wird (negative Werte), aber diese nicht in seinem Speicher ablegt.

2022-09-22_09:40:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -26
2022-09-22_09:41:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -43
2022-09-22_09:42:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -67
2022-09-22_09:43:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -65
2022-09-22_09:44:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: 106
2022-09-22_09:45:45 MQTT2_DVES_0A7700 mMe4.0_Total_in: 10056.179
2022-09-22_09:45:45 MQTT2_DVES_0A7700 mMe4.0_Power_cur: 104
2022-09-22_09:46:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: 73
2022-09-22_09:46:42 MQTT2_DVES_0A7700 mMe4.0_Total_in: 10056.180
2022-09-22_09:47:42 MQTT2_DVES_0A7700 mMe4.0_Total_in: 10056.181
2022-09-22_09:47:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: 58
2022-09-22_09:48:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -98
2022-09-22_09:48:42 MQTT2_DVES_0A7700 mMe4.0_Total_in: 10056.182
2022-09-22_09:49:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -96
2022-09-22_09:50:44 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -105
2022-09-22_09:52:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -98
2022-09-22_09:53:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -103
2022-09-22_09:54:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -106
2022-09-22_09:55:43 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -115
2022-09-22_09:56:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: -120
2022-09-22_09:57:42 MQTT2_DVES_0A7700 mMe4.0_Total_in: 10056.213
2022-09-22_09:57:42 MQTT2_DVES_0A7700 mMe4.0_Power_cur: 1946


Wie kann ich diese negativen Werte am einfachsten als kWh loggen, also meinen eigenen Einspeisungszähler erzeugen?

Danke für eure Hilfe!
Hallo Oli,
da Du die Werte im Minuten Takt bekommst sind das dann Watt Minute, die Du einfach summierst. Das Ergebnis kannst Du dann natürlich durch 60 teilen und bekommst Wh, das ist aber nur ein genäherter Wert. Sollten mal keine Werte kommen läuft das Ergenis unkontrolliert auseinander.
Du erstellst also ein userreading, dass alle Werte < 0 mit monotonic summiert und in ein reading speichert, das ist dann Dein Einspeisezähler.

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

oli82

Zitat von: ch.eick am 22 September 2022, 13:11:03
Hallo Oli,
.....
Du erstellst also ein userreading, dass alle Werte < 0 mit monotonic summiert und in ein reading speichert, das ist dann Dein Einspeisezähler.

VG
   Christian

Hallo Christian.

Danke für den Lösungsweg.
Könntest du mir beim Syntax helfen? Hab nun folgendes versucht, leider mit einem Syntaxfehler:

mMe4.0_Einspeisung:mMe4.0_Power_cur.* { if (ReadingsVal("MQTT2_DVES_0A7700","mMe4.0_Power_cur",0) < 0) ( monotonic {ReadingsVal($name, "mMe4.0_Power_cur", 0)})}

ch.eick

Zitat von: oli82 am 22 September 2022, 13:49:46
Hallo Christian.

Danke für den Lösungsweg.
Könntest du mir beim Syntax helfen? Hab nun folgendes versucht, leider mit einem Syntaxfehler:
Hi Oli,
versuch mal folgendes, was ich aber auch nicht getestet habe ;-)

mMe4.0_Einspeisung:mMe4.0_Power_cur.* monotonic { my $Power=ReadingsVal($name,"mMe4.0_Power_cur",0);; ($Power < 0) ? $Power : 0;;}

Bei dem ganz rechten $Power könntest Du auch mal noch durch 60 Teilen, damit Du Wh bekommst oder auch zusätzlich /1000 für kWh

mMe4.0_Einspeisung:mMe4.0_Power_cur.* monotonic { my $Power=ReadingsVal($name,"mMe4.0_Power_cur",0);; ($Power < 0) ? $Power/60/1000 : 0;;}

Dann kann es aber sein, dass Du sehr kleine Werte bekommst. Meine WRs zählen Wh und bei der Anzeige wandle ich dann in kWh um.
Für die momentan Werte sind sicherlich W , ohne Nachkommastellen, eine schöne Größe und bei den Zählern dann kWh , auch ohne Nachkommastellen.

Viel Spaß beim Testen
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

oli82

Zitat von: ch.eick am 22 September 2022, 16:27:04
Viel Spaß beim Testen
    Christian

Guten Morgen Christian.
Danke für den Code.
Die Zählung funktioniert jetzt, allerdings addiert er die negativen Werte auf, was ja keinen Sinn macht ;)
Habe jetzt erstmal den Wert positiv umgerechnet und Arbeite mit der Wattminute. Nächster Schritt sind dann die W- und kWh.

Viele Grüße
Oli

ch.eick

Zitat von: oli82 am 23 September 2022, 08:14:13
Guten Morgen Christian.
Danke für den Code.
Die Zählung funktioniert jetzt, allerdings addiert er die negativen Werte auf, was ja keinen Sinn macht ;)
Habe jetzt erstmal den Wert positiv umgerechnet und Arbeite mit der Wattminute. Nächster Schritt sind dann die W- und kWh.

Viele Grüße
Oli
Moin,
es wäre schon richtig, wenn Du eine immer größer werdende Zahl mit negativem Vorzeichen bekommen würdest.
Bei mir im Haus haben alle Verbraucher ein negatives Vorzeichen und somit die Einspeisung auch. Das vereinfacht später die Berechnungen.
Nur bei der Anzeige, oder in Diagrammen könnte man das dann mit abs() einfach mal kurz umkehren.

Die Berechnung für Wh und kWh war in meiner Formel bereits drin. Wobei da auch Wh sinnvoll wären und nur bei der Anzeige kurz in kWh umgerechnet wird.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick