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!!
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.*
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. :/
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/
Das funktioniert wunderbar. :) Danke sehr!