FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Pati_Alpha am 10 November 2016, 11:38:55

Titel: FileLog - Nur Einträge welche String enthalten
Beitrag von: Pati_Alpha am 10 November 2016, 11:38:55
Hallo,

mal wieder eine Anfängerfrage von mir:
Ich überprüfe ob Google erreichbar ist ( IP: 8.8.8.8 ) per WOL und möchte mir immer loggen lassen, wenn es NICHT erreichbar ist.
Dazu habe ich aus dem Wiki die Syntax übernommen und folgenden Code benutzt:

define FileLog_Google FileLog /opt/fhem/log/Google-%Y-%m.log Google:(false).*


Allerdings loggt er dann garnichts mehr.

Wenn ich nur das hier nehme:

define FileLog_Google FileLog /opt/fhem/log/Google-%Y-%m.log Google

kriege ich bei (simuliertem) Ausfall der Internetverbindung so etwas ins Log:
2016-11-10_11:37:19 Google isRunning: false
2016-11-10_11:37:19 Google off



Ich bin mir sicher, dass es nur irgendwo ein Sternchen zu viel oder zu wenig ist, aber ich weiß nicht wo. :( Ich möchte eben nur die Einträge haben, die "false" beinhalten, denn sonst spammt es mir alle 30 Sekunden ein "true" ins log.


Danke euch!!
Titel: Antw:FileLog - Nur Einträge welche String enthalten
Beitrag von: marvin78 am 10 November 2016, 12:14:21
Na offensichtlich heißt dein Event ja nicht false sondern isRunning: false. Das Regex musst du also entsprechend gestalten

So könnte es gehen (ohne genau zu wissen, wie das Event aussieht - das siehst du im Event-Monitor):

define FileLog_Google FileLog /opt/fhem/log/Google-%Y-%m.log Google:.isRunning:.false.*
Titel: Antw:FileLog - Nur Einträge welche String enthalten
Beitrag von: Pati_Alpha am 10 November 2016, 13:36:19
Ich dachte er würde so nur nach dem String "false" suchen, denn das wäre ja ideal.
Hier im Wiki steht das (ganz unten) auch eigentlich so erklärt:
http://www.fhemwiki.de/wiki/Readings_in_verschiedene_Log-Dateien_aufsplitten

Wenn ich dein Beispiel reinpacke loggt er wieder nichts. :/
Titel: Antw:FileLog - Nur Einträge welche String enthalten
Beitrag von: marvin78 am 10 November 2016, 13:41:43
Du solltest eben schauen, wie das Event wirklich aussieht (wie oben erwähnt). Du kannst nicht einfach einen Begriff rein werfen. Es handelt sich hier, wie in der Doku beschrieben, um einen Regex. Was du machen kannst, ist das hier:

define FileLog_Google FileLog /opt/fhem/log/Google-%Y-%m.log Google.*false.*

Aber nur dann, wenn es egal ist, was vor und nach dem false steht.

Bitte mit regulären Ausdrücken beschäftigen!

https://danielfett.de/de/tutorials/tutorial-regulare-ausdrucke/
Titel: Antw:FileLog - Nur Einträge welche String enthalten
Beitrag von: Pati_Alpha am 10 November 2016, 16:17:34
Das funktioniert wunderbar. :) Danke sehr!