FHEM - Hausautomations-Systeme > RFXTRX

Logfile-Größe bei Sensoren reduzieren

<< < (2/2)

Ralph:
Habe hierin
http://forum.fhem.de/index.php/topic,16988.msg110999.html#msg110999
mal eine Lösung für Fensterkontakte beschrieben.

Vielleicht könnt Ihr das modifizieren.

joshi04:
Hallo Zusammen,

dieses Thema ist zwar auch schon etwas älter, aber vielleicht hilft es jemandem.

Bei Sensoren, die viele unterschiedliche Werte in jeweils eine neue Zeile schreiben, wollte ich erreichen, dass
- sich der Log verkürzt.
- nur ein neuer Eintrag eingetragen wird, wenn sich etwas geändert hat.
- ich das minimale Intervall festlegen kann.
- eine Zeile jeweils alle mir relevanten Werte enthält, was die Übersichtlichkeit im Log erhöht.
Das ganze sollte das Ziel haben, dass sich die Auswertung und Anzeige deutlich verkürzt.

Entsprechend hier meine Beispielkonfiguration für meinen Ofen in der Küche:
Zunächst die Definition:

--- Code: ---define KU_Ofen TRX_WEATHER REVOLT_2c1f 1 1 0
attr KU_Ofen IODev Remote_RFXTRXUSB

--- Ende Code ---

Dann ein Dummy-Device, dass später die Werte aufnehmen wird und nur dann einen Eintrag generiert, wenn sich etwas ändert:

--- Code: ---define KU_Ofen_Readings dummy
attr KU_Ofen_Readings event-on-change-reading state

--- Ende Code ---

Das Log-File:

--- Code: ---define FileLog_KU_Ofen FileLog ./log/KU_Ofen-%Y.log KU_Ofen_Readings
attr FileLog_KU_Ofen logtype text

--- Ende Code ---

Das entsprechende Diagramm mit passendem Label:

--- Code: ---define SVG_KU_Ofen SVG FileLog_KU_Ofen:Revolt:CURRENT
attr SVG_KU_Ofen alias Stromverbrauch Küche Ofen
attr SVG_KU_Ofen label "min $data{min1}W / max $data{max1}W / $data{currval1}W"

--- Ende Code ---

Und natürlich das wichtigste, das setzten des Readings mit einem Intervall von minimal 10 sec:

--- Code: ---define KU_Ofen_Set at +*00:00:10 { my $KU_Ofen_I= ReadingsVal("KU_Ofen","energy_current",0) ;; my $KU_Ofen_pf= ReadingsVal("KU_Ofen","energy_pf",0) ;; my $KU_Ofen_P= ReadingsVal("KU_Ofen","energy_power",0) ;; my $KU_Ofen_cons= ReadingsVal("KU_Ofen","energy_total",0) ;; my $KU_Ofen_fr= ReadingsVal("KU_Ofen","frequency",0) ;; my $KU_Ofen_state= ReadingsVal("KU_Ofen","state",0) ;; my $KU_Ofen_V= ReadingsVal("KU_Ofen","voltage",0) ;; fhem("set KU_Ofen_Readings P: $KU_Ofen_P cT: $KU_Ofen_cons I: $KU_Ofen_I V: $KU_Ofen_V fr: $KU_Ofen_fr pf: $KU_Ofen_pf state: $KU_Ofen_state");;}

--- Ende Code ---


Heraus kommen dann Readings, die in etwas so aussehen:

--- Code: ---KU_Ofen_Readings P: 0.8 W cT: 1.1700 kWh I: 0 A V: 236 V fr: 50 Hz pf: 1 state: EPOW: 0.8 ESUM: 1.1700

--- Ende Code ---
Ich muss leider gestehen, dass dieses nicht mir eingefallen ist, leider finde ich die Quelle nicht mehr. Der Auto möge es mir bitte verzeihen.
Netter wäre es sicherlich noch, wenn man das in eine entsprechende Funktion verpackt, dazu bin ich allerdings noch nicht gekommen.
Einbauen ließen sich sicherlich auch noch Rundungen o.ä., um die Daten zu glätten und noch weiter zu verschlanken.

Schöne Grüße,
John

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln