FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Wolfi am 13 Februar 2016, 12:47:43

Titel: Summe aus einer filelog berechnen
Beitrag von: Wolfi am 13 Februar 2016, 12:47:43
Hallo,

Wie kann man aus einer filelog eine Summe berechnen und in FHEM ausgeben bzw . Anzeigen?

Mein filelog: FileLog_AktuellerVerbrauch_cumDay     (text file)

2015-11-24_00:00:22 CM160 cumDay 7.5917 kWh
2015-11-25_00:00:14 CM160 cumDay 7.6698 kWh
2015-11-26_00:00:21 CM160 cumDay 8.5463 kWh
2015-11-27_00:00:21 CM160 cumDay 7.1037 kWh
2015-11-28_00:00:21 CM160 cumDay 4.5929 kWh

Möchte einfach die Summe der kWh Werte und in FHEM ANZEIGEN und vieleicht später für weitere Berechnungen.

Für eure Hilfe jetzt schon Danke.
Gruß
Titel: Antw:Summe aus einer filelog berechnen
Beitrag von: franky08 am 13 Februar 2016, 12:55:49
Aus der Log. geht das wohl nicht, du kannst aber mit ReadingsVal("CM160","cumDay",0) den Wert aus dem device auslesen und dann weiter verwenden.

VG
Frank
Titel: Antw:Summe aus einer filelog berechnen
Beitrag von: Wolfi am 13 Februar 2016, 13:50:22
Es müsste doch möglich sein wert für wert auszulesen und zu addieren  oder weiter zu verarbeiten?

Die Plot Module machen doch auch nichts anderes.



Titel: Antw:Summe aus einer filelog berechnen
Beitrag von: raspklaus am 13 Februar 2016, 16:53:08
sorry, dass ich mich hier melde.

Es soll eine aktuellere cm160 geben. Weiss jemand woher man die bekommt ?
Titel: Antw:Summe aus einer filelog berechnen
Beitrag von: crusader am 13 Februar 2016, 21:39:07
Zitat von: Wolfi am 13 Februar 2016, 13:50:22
Es müsste doch möglich sein wert für wert auszulesen und zu addieren  oder weiter zu verarbeiten?

Die Plot Module machen doch auch nichts anderes.

Du kannst die Routine myAverage aus dem Wiki:

http://www.fhemwiki.de/wiki/Gleitende_Mittelwerte_berechnen_und_loggen
(http://www.fhemwiki.de/wiki/Gleitende_Mittelwerte_berechnen_und_loggen)
umschreiben.

Im einfachsten Fall die letzte Zeile von 'return $avg;' auf 'return $cum;' ändern, dann stimmt bloss der Name der Routine nicht mehr  :( .

Der offset wird übrigens in Sekunden angegeben. Man kann also auch einfach für die Summe der letzten x Tage

{x*myAverage(x*86400,logfile,cspec);;}

aufrufen.