FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: abc2006 am 17 November 2017, 11:14:12

Titel: negatives Regex für Filelog, die zweite
Beitrag von: abc2006 am 17 November 2017, 11:14:12
Hi,
Es gibt einen Thread, der sich damit beschäftigt, gewisse .. Events vom Filelog auszuschließen:
https://forum.fhem.de/index.php/topic,18400.msg122379.html#msg122379

Ich möchte zwei DEVICES vom Filelog ausschließen:

eines für einen PID ( heisst PID_FUBO)
eines für meine DS18B20 (heissen DS18B20_Vorlauftemperatur, DS18B20_Aussentemperatur)
eines für "den Rest".

Nun scheitere ich an der Regex für "Alle Events, ausser denen von den Devices, die PID.* oder DS18B20.* heissen.
Kann jemand helfen?

Habe bereits getestet, aber (?!DS18B20.*) funktioniert nicht.
Auch mit regexr.com habe ich nicht mal eine dort funktionierende Lösung gefunden..


Danke schonmal für eure Hilfe,
grüße,
Stephan
Titel: Antw:negatives Regex für Filelog, die zweite
Beitrag von: mumpitzstuff am 17 November 2017, 13:55:27
(?!DS18B20_|PID_).*
Titel: Antw:negatives Regex für Filelog, die zweite
Beitrag von: abc2006 am 20 November 2017, 13:56:14
Hi,

DEF:   ./log/EVTS-%m-%Y.log (?!DS18B20_|PID_).*


funktioniert leider nicht:


2017-11-20_13:54:33 DF_controlVL cmd_1
2017-11-20_13:54:33 PID_FUBO processing
2017-11-20_13:54:36 DS18B20_Vorlauf_Waermepumpe T: 24.187
2017-11-20_13:54:36 DS18B20_Vorlauf_Waermepumpe temperature: 24.187
2017-11-20_13:54:38 DS18B20_Aussentemperaturfuehler T: 4.187
2017-11-20_13:54:38 DS18B20_Aussentemperaturfuehler temperature: 4.187


hier noch ein list:

Internals:
   CFGFN
   DEF        ./log/EVTS-%m-%Y.log (?!DS18B20_|PID_).*
   NAME       FileLog_EVTS
   NR         497
   NTFY_ORDER 50-FileLog_EVTS
   REGEXP     (?!DS18B20_|PID_).*
   STATE      active
   TYPE       FileLog
   currentlogfile ./log/EVTS-11-2017.log
   logfile    ./log/EVTS-%m-%Y.log
   READINGS:
     2017-11-20 13:55:34   linesInTheFile  118
Attributes:


Grüße,
Stephan
Titel: Antw:negatives Regex für Filelog, die zweite
Beitrag von: mumpitzstuff am 21 November 2017, 00:14:22
Und damit?

^(?!DS18B20|PID).*
Titel: Antw:negatives Regex für Filelog, die zweite
Beitrag von: Happy Fhem User am 21 November 2017, 21:14:13
Hehe, RegEx Kniffeleien. Probier mal:

([^_]*(?<!DS18B20)(?<!PID)_)+[^_]*

So sollte die RegEx an jedem "_" schauen, ob davor kein DS18B20 und kein PID steht.

Zumindestens auf der Kommandozeile hat es geklappt:

perl -e 'my $s="2017-11-20_13:54:36 DS18B20_Vorlauf_Waermepumpe T: 24.187"; print $s=~/^([^_]*(?<!DS18B20)_)+[^_]*$/';

Und mir kein Treffer geliefert...
Titel: Antw:negatives Regex für Filelog, die zweite
Beitrag von: abc2006 am 30 November 2017, 11:30:29
Hi,
funktioniert, lässt allerdings nur Devices mit _ im Namen durch...

define bumms dummy
set bumms 17


erscheint nicht im Log...
Titel: Antw:negatives Regex für Filelog, die zweite
Beitrag von: rudolfkoenig am 01 Dezember 2017, 22:02:15
Ich habe notify und FileLog mit dem ignoreRegexp Attribut erweitert.
Titel: Antw:negatives Regex für Filelog, die zweite
Beitrag von: abc2006 am 01 Dezember 2017, 22:14:29
Geil, dann brauch ich nicht weiterbasteln  ;D

Grüße,
Stephan
Titel: Antw:negatives Regex für Filelog, die zweite
Beitrag von: abc2006 am 02 Dezember 2017, 00:39:06
Hi,

noch eine kleine Frage/Gedankenanstoß:

Imho werden FileLogs oft zum SVG-plotten verwendet.
Wenn SVG ein Problem mit Zeilenumbrüchen hat, was hältst du dann davon, im FileLog direkt auf Zeilenumbrüche zu prüfen und diese ggf. durch Leerzeichen zu ersetzen?

Für den Fall, dass das nicht gewünscht sein könnte, hatte ich diesen Ansatz mit einem zusätzlichen Attribut:


my $SVGLog = AttrVal($ln,"SVGLog",0);

if($isSVGLog){

$t =~ s/\n/ /g;
$n =~ s/\n/ /g;
$s =~ s/\n/ /g;
}
Titel: Antw:negatives Regex für Filelog, die zweite
Beitrag von: abc2006 am 02 Dezember 2017, 09:55:33
Hey,

Was mir aufgefallen ist: könnte man die Vorbelegung von SET auf was ungefährliches ändern?

also von set FileLogXY absorb FileLogAB
auf set FileLog XY reopen, z.b.?

Grüße,
Stephan
Titel: Antw:negatives Regex für Filelog, die zweite
Beitrag von: rudolfkoenig am 03 Dezember 2017, 21:04:48
ZitatWas mir aufgefallen ist: könnte man die Vorbelegung von SET auf was ungefährliches ändern?
Ist leider zu viel Aufwand, weil diese Werte in FHEMWEB nochmal sortiert werden, und diese Routine wird auch fuer andere Listen verwendet. Habe aber die Argumente fuer reopen und clear entfernt :)

Zitat... was hältst du dann davon, im FileLog direkt auf Zeilenumbrüche zu prüfen und diese ggf. durch Leerzeichen zu ersetzen?
Ich habe das eingebaut, und bin etwas gespannt, wieviele Leute sich deswegen beschweren werden.
Leider wird FHEM bei weitem nicht nur so verwendet, wie ich das mir vorstelle.
Titel: Antw:negatives Regex für Filelog, die zweite
Beitrag von: abc2006 am 03 Dezember 2017, 21:32:14
super, danke!

Grüße,
Stephan