negatives Regex für Filelog, die zweite

Begonnen von abc2006, 17 November 2017, 11:14:12

Vorheriges Thema - Nächstes Thema

abc2006

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
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

mumpitzstuff


abc2006

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
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

mumpitzstuff


Happy Fhem User

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...

abc2006

Hi,
funktioniert, lässt allerdings nur Devices mit _ im Namen durch...

define bumms dummy
set bumms 17


erscheint nicht im Log...
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

rudolfkoenig

Ich habe notify und FileLog mit dem ignoreRegexp Attribut erweitert.

abc2006

Geil, dann brauch ich nicht weiterbasteln  ;D

Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

abc2006

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;
}
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

abc2006

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
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

rudolfkoenig

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.

abc2006

FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX