FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Salvi5 am 05 Januar 2022, 05:43:20

Titel: [erledigt] Strom, Verbrauch berechnen
Beitrag von: Salvi5 am 05 Januar 2022, 05:43:20
Moin,
ich hoffe ich bin im richtigen Forum.
Normalerweise bitte ich bei Problemen nur um einen kleinen Schubs in die richtige Richtung, aber dieses Mal bin ich wirklich zu blöd.
Ich habe meinen Stromzähler mit einem IR-Lesegerät ausgerüstet. Funktioniert Top!
Das Gerät liefert mir genau den aktuellen Zählerstand per MQTT. Dieser aktualisiert sich nicht nach einer bestimmten Zeitspanne, sondern immer nach 0,1 kW Verbrauch.
Ich habe seit gestern nachmittag aus meiner Sicht alles mögliche gesucht, getestet, probiert und zusammengefügt, ich weiß jedoch nicht, wie ich die Zeitspanne zwischen den 0,1 kW in eine Berechnung einfüge, um den aktuellen Verbrauch auszurechnen. In diesem Fall bitte ich um ein möglichst passendes Stück Code um genau das zu erreichen, denn ich bin mit meinem halbseidenen Programmierlatein am Ende.

Gruß Mike
Titel: Antw:Strom, Verbrauch berechnen
Beitrag von: Salvi5 am 05 Januar 2022, 08:37:20
Nochmal Moin!
Der frische Schnee hat offenbar geholfen, ich habe das jetzt über ein DOIF gelöst:
defmod Strom_IR_Lesekopf_ESP32_DOIF_1 DOIF ([Strom_IR_Lesekopf_ESP32:"^STROM_Total_inZ1:.*$"]) \
\
(setreading Strom_IR_Lesekopf_ESP32 lastValue [Strom_IR_Lesekopf_ESP32:STROM_Total_inZ1])\
({ fhem "setreading Strom_IR_Lesekopf_ESP32 Verbrauch_Wh ".(100/(time()-ReadingsNum("Strom_IR_Lesekopf_ESP32","Timestamp",0))*3600) })\
({ fhem "setreading Strom_IR_Lesekopf_ESP32 Timestamp ".time_str2num(ReadingsTimestamp("Strom_IR_Lesekopf_ESP32", "STROM_Total_inZ1",0)) })
attr Strom_IR_Lesekopf_ESP32_DOIF_1 do always

setstate Strom_IR_Lesekopf_ESP32_DOIF_1 initialized
setstate Strom_IR_Lesekopf_ESP32_DOIF_1 2022-01-05 08:31:45 Device Strom_IR_Lesekopf_ESP32
setstate Strom_IR_Lesekopf_ESP32_DOIF_1 2022-01-05 08:31:42 cmd 0
setstate Strom_IR_Lesekopf_ESP32_DOIF_1 2022-01-05 08:31:45 e_Strom_IR_Lesekopf_ESP32_events Laufzeit: 0
setstate Strom_IR_Lesekopf_ESP32_DOIF_1 2022-01-05 08:31:42 mode enabled
setstate Strom_IR_Lesekopf_ESP32_DOIF_1 2022-01-05 08:31:42 state initialized

Ich hatte erst ein wait von einer Sekunde vor dem dritten Ausführungsteil, das habe ich jetzt mal rausgenommen, um das Ergebnis nicht zu sehr zu verfälschen. Wenns nicht funktioniert, mache ich es wieder rein.

Es funktioniert ja jetzt so weit, aber wenn hier irgend jemand eine ordentliche Lösung hätte, wäre ich trotzdem dankbar...

Gruß Mike
Titel: Antw:Strom, Verbrauch berechnen
Beitrag von: Beta-User am 05 Januar 2022, 08:45:23
Aus der commandref (https://fhem.de/commandref_modular.html#readingFnAttributes) zum readingFnAttribut "event-aggregator":
ZitatOne would typically use the linear method with the mean function for quantities continuously varying over time like electric power consumption, temperature or speed.
Titel: Antw:Strom, Verbrauch berechnen
Beitrag von: Damian am 05 Januar 2022, 10:12:44
Das sieht mir unnötig kompliziert aus.

Ich würde erstmal setzen:

attr Strom_IR_Lesekopf_ESP32 oldreadings STROM_Total_inZ1

und dann definieren:

DOIF {[Strom_IR_Lesekopf_ESP32:STROM_Total_inZ1];set_State(100/::OldReadingsAge("Strom_IR_Lesekopf_ESP32","STROM_Total_inZ1",0)*3600)}

Im Status sollte der errechnete Verbrauch stehen.
Titel: Antw:Strom, Verbrauch berechnen
Beitrag von: Frank_Huber am 05 Januar 2022, 10:40:50
Die Frage ist ja auch, wie oft muss/will man den Verbrauch in KWh loggen?

Ich logge die aktuelle Leistung W mit. Alles älter 3 Tage wird aus der DB gelöscht.

Die KWh logge ich einmal am Tag kurz vor der Geisterstunde mittels dummy.
(im Dummy ist immer der KWh Wert des Vortages drin. aktell minus Vortag = Tagesverbrauch.)
Titel: Antw:Strom, Verbrauch berechnen
Beitrag von: Salvi5 am 05 Januar 2022, 10:42:02
Zitat von: Damian am 05 Januar 2022, 10:12:44
Das sieht mir unnötig kompliziert aus.

Ich würde erstmal setzen:

attr Strom_IR_Lesekopf_ESP32 oldreadings STROM_Total_inZ1

und dann definieren:

DOIF {[Strom_IR_Lesekopf_ESP32:STROM_Total_inZ1];set_State(100/::OldReadingsAge("Strom_IR_Lesekopf_ESP32","STROM_Total_inZ1",0)*3600)}

Im Status sollte der errechnete Verbrauch stehen.


Vielen Dank, es sah mir auch zu kompliziert aus :-)

Ich probiere das heute Nachmittag...

Gruß Mike
Titel: Antw:Strom, Verbrauch berechnen
Beitrag von: Damian am 05 Januar 2022, 11:20:59
Zitat von: Frank_Huber am 05 Januar 2022, 10:40:50
Die Frage ist ja auch, wie oft muss/will man den Verbrauch in KWh loggen?

Ich logge die aktuelle Leistung W mit. Alles älter 3 Tage wird aus der DB gelöscht.

Die KWh logge ich einmal am Tag kurz vor der Geisterstunde mittels dummy.
(im Dummy ist immer der KWh Wert des Vortages drin. aktell minus Vortag = Tagesverbrauch.)

Mir reicht der aktuelle Verbrauch im 5 Minuten-Takt, genauso bei der Stromerzeugung, beides mit einer einfache Übersicht der letzten Tage ohne Log.
Titel: Antw:Strom, Verbrauch berechnen
Beitrag von: Frank_Huber am 05 Januar 2022, 13:27:19
Zitat von: Damian am 05 Januar 2022, 11:20:59
Mir reicht der aktuelle Verbrauch im 5 Minuten-Takt, genauso bei der Stromerzeugung, beides mit einer einfache Übersicht der letzten Tage ohne Log.
das schaut schon super aus. macht in dem Umfang aber auch nur mit PV Sinn. ;-)

Und bis ich das mit DOIF hinbekomme müsste ich erstmal bei Dir für paar Monate ins Studium gehen. *lach*
mir reicht ein Verbrauchswert pro Tag/Woche/Monat.
aber Danke trotzdem für das DOIF Modul! das nutze ich sehr gerne (im Classic Mode)
Titel: Antw:Strom, Verbrauch berechnen
Beitrag von: Damian am 05 Januar 2022, 15:06:35
Zitat von: Frank_Huber am 05 Januar 2022, 13:27:19
das schaut schon super aus. macht in dem Umfang aber auch nur mit PV Sinn. ;-)

Und bis ich das mit DOIF hinbekomme müsste ich erstmal bei Dir für paar Monate ins Studium gehen. *lach*
mir reicht ein Verbrauchswert pro Tag/Woche/Monat.
aber Danke trotzdem für das DOIF Modul! das nutze ich sehr gerne (im Classic Mode)

Wenn man bereits die entsprechenden Daten hat, dann sind das lediglich zwei Definitionszeilen. Der Stromverbrauch ist auch ohne PV-Anlage, oder vielleicht gerade dann, interessant. :) Besonderes Perlwissen für die Darstellung ist nicht erforderlich.
Titel: Antw:Strom, Verbrauch berechnen
Beitrag von: sash.sc am 05 Januar 2022, 15:53:27
Benutze doch das Statistic Modul.


Gruß Sascha
Titel: Antw:Strom, Verbrauch berechnen
Beitrag von: Salvi5 am 07 Januar 2022, 16:59:19
Moin.
Nur um den Thread abzuschließen:
Ich habe es nicht zuverlässig hinbekommen, den Zählerstand in den Verbrauch umzurechnen, bin aber im Laufe der Suche auf den ElectricityCalculator gestoßen. Der tut nach diversen Verständnisschwierigkeiten meinerseits nun genau das was ich wollte, und sogar noch ein bisschen mehr.
Vielen Dank für alle Vorschläge!

Gruß Mike
Titel: Antw:[erledigt] Strom, Verbrauch berechnen
Beitrag von: stera am 16 Januar 2022, 11:04:58
Hallo,

wenn ich das richtig lese, benutzt du ein ESP mit Tasmota? Dann lass es doch in dem Script gleich berechnen. Schickst du es nicht per MQTT?

Innerhalb von Fhem kannst du dann ja noch das Statistik-Modul laufen lassen, wenn dein Zähler das nicht schon selbst erledigt.

Gruß,
Stefan
Titel: Antw:[erledigt] Strom, Verbrauch berechnen
Beitrag von: Damian am 16 Januar 2022, 11:43:32
Hier ein Beispiel, wie man den aktuellen Tagesverbrauch für mehrere Zähler errechnen kann:

defmod di_zaehler DOIF DEF TPL_stat ({ [00:01];;\
  set_Reading("$2_zaehler",[?$1:$2]);;\
  set_Reading("$2_tagesverbrauch",get_Reading("$2_heute",0),1);;\
  set_Reading("$2_heute",0,1);;\
}\
\
{set_Reading ("$2_heute",int(([$1:$2]-get_Reading("$2_zaehler"))*1000)/1000,1);;}\
\
reset_$2 {\
set_Reading ("$2_zaehler",[?$1:$2]);;\
set_Reading ("$2_heute",0);;\
set_Reading ("$2_tagesverbrauch",0);;\
}\
\
)\
## Syntax TPL_stat (<Device>,<Reading>)\
TPL_stat (Stromzaehler,total_c)\
TPL_stat (Stromzaehler,total_f)\
TPL_stat (CUL_WZ,total)

Die zu errechnenden Zähler werden einfach jeweils mit TPL_stat (<Zähler_Device>,<Reading>) eingefügt, der erste Teil der Definition bleibt gleich. Hier im Beispiel für drei Zähler.

Im Reading "<Zaehler_Reading>_heute" befindet sich der aktuelle Verbrauch von heute des Zählers, im Reading "<Zaehler_Reading>_tagesverbrauch" der jeweilige Tagesverbrauch des Zählers.

Das Konzept lässt sich für Monats- oder Jahresverbrauch mit paar Zeilen erweitern. Die fertigen Module zu dem Thema haben mir nicht zugesagt.
Titel: Aw: [erledigt] Strom, Verbrauch berechnen
Beitrag von: juergen012 am 28 Juli 2023, 12:30:56
Hallo, ich möchte gerne dem Stromverbrauch meiner TS011F_din_smart_relay protokollieren. Nachdem ich mit dem Statistics-Modul und mit dem  Average-Modul nicht so richtig "warm" wurde, bin ich bei meiner Suche auf diesen Thread gestoßen. Leider gelingt mir nicht den Code von Damian in mein Fhem einzufügen. Wenn ich ihn so wie auf der Website ein RAW eingebe wird mir angezeigt, dass der Code übernommen wurde. Er ist aber nicht vorhanden. Wenn ich die backlashes entferne, wird mir "di_zaehler DOIF: DEF TPL: no right bracket: ({ [00:01];" angezeigt.
Kann mir jemand helfen? Was mache ich falsch??
Beste Grüße
Jürgen K.
Titel: Aw: [erledigt] Strom, Verbrauch berechnen
Beitrag von: Damian am 28 Juli 2023, 18:24:02
Du kannst den aktuellen Code über Raw-Definition (Pluszeichen neben der Eingabezeile) von hier übernehmen:

https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-,_Monats-_und_Jahresstatistik_f%C3%BCr_Strom-,_Gas-,_Wasserz%C3%A4hler_und_andere_Z%C3%A4hler
Titel: Aw: [erledigt] Strom, Verbrauch berechnen
Beitrag von: juergen012 am 29 Juli 2023, 16:53:54
Hallo!
Vielen Dank! Mich bringt das aber nicht weiter. Bin wohl zu blöd..
Beste Grüße j.
Titel: Aw: [erledigt] Strom, Verbrauch berechnen
Beitrag von: RalfRog am 29 Juli 2023, 18:17:14
Zitat von: juergen012 am 28 Juli 2023, 12:30:56...
Leider gelingt mir nicht den Code von Damian in mein Fhem einzufügen. Wenn ich ihn so wie auf der Website ein RAW eingebe wird mir angezeigt, dass der Code übernommen wurde. Er ist aber nicht vorhanden. Wenn ich die backlashes entferne, wird mir "di_zaehler DOIF: DEF TPL: no right bracket: ({ [00:01];" angezeigt.
Kann mir jemand helfen? Was mache ich falsch??
....

Ich war mal neugierig wie es geht, da ich noch nie per RAW-Definition etwas übernommen habe.
Den beschriebenen Effekt "dass der Code übernommen wurde. Er ist aber nicht vorhanden" hatte ich beim ersten Versuch mit dem Code aus Beitrag #12 auch. Wenn ich das letzte "\" wegnehme geht es bei mir.

Gruß Ralf
Titel: Aw: [erledigt] Strom, Verbrauch berechnen
Beitrag von: Damian am 30 Juli 2023, 09:42:06
Zitat von: RalfRog am 29 Juli 2023, 18:17:14Ich war mal neugierig wie es geht, da ich noch nie per RAW-Definition etwas übernommen habe.
Den beschriebenen Effekt "dass der Code übernommen wurde. Er ist aber nicht vorhanden" hatte ich beim ersten Versuch mit dem Code aus Beitrag #12 auch. Wenn ich das letzte "\" wegnehme geht es bei mir.

Ich habe das Code-Beispiel angepasst. Vermutlich war im Original noch eine Leerzeile drin, die beim Kopieren untergegangen ist.
Titel: Aw: [erledigt] Strom, Verbrauch berechnen
Beitrag von: juergen012 am 30 Juli 2023, 13:09:51
SUPER! Klappt jetzt! Danke1
Gruß