FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: cyan am 02 Januar 2017, 19:59:25

Titel: Auswertung eines Logs per Email versenden
Beitrag von: cyan am 02 Januar 2017, 19:59:25
Hallo zusammen,

ich habe im Keller einen Pumpensumpf, aus dem eine Pumpe automatisch das (Grund-)Wasser abpumpt, wenn der Wasserstand eine bestimmte Höhe erreicht hat.

Um herauszufinden wie oft das der Fall ist, nutze ich einen TX25IT als Wassermelder (Bauanleitung: https://forum.fhem.de/index.php?topic=26335.0 (https://forum.fhem.de/index.php?topic=26335.0)). Befinden sich die beiden Drähte vom Channel 2 nicht im Wasser, wird als "Temperatur" -26,8° angezeigt. Sobald sie sich im Wasser befinden, steigt der Wert bis auf -15°. Die Drähte befinden sich knapp unterhalb der Höhe der separaten Schaltung, die die Pumpe anwirft - die Drähte stehen also einige Zeit im Wasser bevor die Pumpe anspringt.

Ich habe es geschafft, dass mir mit dem folgenden Code jeweile eine Email geschickt wird, sobald die Drähte im Wasser stehen und sobald sie nicht mehr im Wasser stehen (=Wasser abgepumpt):
define LaCrosse_7 LaCrosse 16
attr LaCrosse_7 IODev myJeeLink
attr LaCrosse_7 alias 7_Keller_Wasserstand
attr LaCrosse_7 event-on-change-reading state
attr LaCrosse_7 room LaCrosse
define FileLog_LaCrosse_7 FileLog ./log/LaCrosse_7-%Y.log LaCrosse_7
attr FileLog_LaCrosse_7 logtype text
attr FileLog_LaCrosse_7 room LaCrosse
define Alarm_Wasser DOIF ([LaCrosse_7:temperature2] > -25.0) ({ DebianMail('XXX@gmx.net','fhem: Wasserhoechststand','Der Wasserstand hat den Höchststand erreicht.','')} )
define Alarm_Wasserabgepumpt DOIF ([LaCrosse_7:temperature2] < -25.5) ({ DebianMail('XXX@gmx.net','fhem: Das Wasser wurde abgepumpt','Das Wasser wurde abgepumpt.','')} )


In der Email würde ich gerne die Zeitpunkte auflisten lassen, in denen sich der Wert auf <-25,5 (=Wasser wurde abgepumpt) geändert hat.

Welchen Code müsste ich einfügen, damit die Filelog entsprechend ausgewertet wird und die Auswertung in den Emailtext geschrieben würde? Weihnachtlich wäre es, wenn die Sortierung mit dem jüngsten Ereignis starten würde und in jeder Zeile auch noch die Zeitdifferenz zum vorletzten Ereignis stehen würde, also etwa so

Das Wasser wurde abgepumpt.
02.01.2017, 03:00 Uhr, Zeitdifferenz 24 Stunden
01.01.2017, 03:00 Uhr, Zeitdifferenz 22 Stunden
31.12.2016, 05:00 Uhr, ....


Der Filelog sieht so aus

2017-01-01_00:01:49 LaCrosse_7 battery: ok
2017-01-01_00:01:49 LaCrosse_7 temperature2: -26.7


Viele Grüße  :)
Matthias
Titel: Antw:Auswertung eines Logs per Email versenden
Beitrag von: cyan am 05 Januar 2017, 10:06:42
Keiner eine Idee?