Moin liebe Leute,
ich versuche seit etwas längerer Zeit auf einen gewissen Logeintrag zu reagieren:
2018.08.07 16:53:40 2: ESPEasy fl_Luefter: WARNING: http://192.168.178.105:80/control?cmd=gpio,12,0: empty answer received
Und zwar würde ich genau auf diesen Teil des Eintrages
fl_Luefter: WARNING
prüfen wollen.
Sobald der Eintrag im Log erscheint soll ein Notify los laufen und irgendwas machen:
Mein Notify dazu schaut wie folgt aus, jedoch wird es leider nicht getriggert!
Internals:
CFGFN
DEF n_fl_Luefter:.*fl_Luefter: WARNING.*
{
my $try = (ReadingsNum("fl_Luefter","try",0));
if (ReadingsVal("fl_Luefter","Relay","") eq "off")
{ fhem "set fl_Luefter on"; }
else
{ fhem "set fl_Luefter off"; }
fhem "setreading fl_Luefter try $try";
}
NAME n_fl_Luefter
NOTIFYDEV n_fl_Luefter
NR 64804
NTFY_ORDER 50-n_fl_Luefter
REGEXP n_fl_Luefter:.*fl_Luefter:
STATE active
TYPE notify
Helper:
DBLOG:
state:
myDbLog:
TIME 1533323445.45657
VALUE active
READINGS:
2018-08-07 16:58:42 state active
Attributes:
DbLogExclude .*
readLog 1
room QNAP
Im RegEx sehe ich, dass er das WARNING nicht mit drin hat, wahrscheinlich Aufgrund des Leerzeichens zwischen "fl_Luefter:" und "WARNING:"
Bitte verratet mir, wie ich den RegEx schreiben muss, damit er korrekt triggert, ich weiß leider nicht genau, wonach ich suchen soll.
Da diese Logmeldung nur sporadisch und selten geschrieben wird, kann ich leider diese auch nicht reproduzieren (oder ich weiß einfach nicht wie!).
Gruß
Mathze
Hi,
ein Leerzeichen kannst Du durch . "matchen" Der Punkt steht für jedes Zeichen.
Notify triggert durch Events und nicht durch Logs, erscheint denn dies auch im Eventmonitor?
https://wiki.fhem.de/wiki/Notify
Das könnte gehen
fl_Luefter:.WARNING.*
Es kann sein dass Du dies brauchst https://fhem.de/commandref.html#addStateEvent
Mit trigger kannst Du den Event simulieren.
Insgesamt wird das sicher schwierig.
Gruß Otto
Danke Otto, klappt wunderbar!
Gruß
Mathze