FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: t1me2die am 07 August 2018, 17:07:25

Titel: [gelöst] RegEx für einen speziellen Logeintrag bauen
Beitrag von: t1me2die am 07 August 2018, 17:07:25
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
Titel: Antw:RegEx für einen speziellen Logeintrag bauen
Beitrag von: Otto123 am 07 August 2018, 18:46:42
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
Titel: Antw:[gelöst] RegEx für einen speziellen Logeintrag bauen
Beitrag von: t1me2die am 08 August 2018, 21:39:03
Danke Otto, klappt wunderbar!

Gruß
Mathze