Hi,
das LogFile meines Rasenroboters enthält z.B. folgende Zeilen
2020-04-09_10:00:00 Dolly mower-status: ok_cutting
2020-04-09_11:45:00 Dolly mower-status: ok_searching
2020-04-11_11:46:00 Dolly mower-status: ok_charging
Der Plot soll während "ok_cutting" eine 1 enthalten, ansonsten 0.
Da "ok_cutting" nur einmal ab Beginn des Mähens vorkommt, sehe ich im Plot nur einen schmalen vertikalen Strich um 10:00:00 Uhr, egal wie ich den Plot-Type angebe (oder übersehe ich da etwas?). Ich möchte aber, dass der Plot um 10:00:00 Uhr ("ok_cutting") auf 1 geht, und erst um 11:45:00 ("ok_searching") wieder auf 0.
Deshalb war meine Idee, im Feld "Function" eine Alternative anzugeben, also etwas in der Art
( [$fld[3]=~"ok_cutting" ODER [$fld[3]=~"ok_searching" ) ?1:0
Ich habe das u.a. so versucht:
([$fld[3]=~"ok_cutting"|[$fld[3]=~"ok_searching")?1:0
[$fld[3]=~"ok_cutting"|"ok_searching"?1:0
Bislang ohne Erfolg. ==> Wie wäre die Lösung?
([$fld[3]=~"ok_cutting|ok_searching")?1:0
Das attr addLog von Filelog könnte eine Alternative sein. https://fhem.de/commandref.html#FileLogattr
Zitat([$fld[3]=~"ok_cutting"|[$fld[3]=~"ok_searching")?1:0
Das [ am Anfang ist irritierend, entweder ist es ein Copy&Paste oder ein Syntaxfehler.
Wenn ich unsicher bin, ob ein Expression funktioniert, probiere ich es direkt in der Kommandozeile aus, in der Art:
fhem> { my $f="ok_cutting";; ($f=~"ok_cutting"|$f=~"ok_searching")?1:0 }
1
fhem> { my $f="ok_searching";; ($f=~"ok_cutting"|$f=~"ok_searching")?1:0 }
1
fhem> { my $f="ok_charging";; ($f=~"ok_cutting"|$f=~"ok_searching")?1:0 }
0
Zitat von: rudolfkoenig am 11 April 2020, 14:10:32
Das [ am Anfang ist irritierend, entweder ist es ein Copy&Paste oder ein Syntaxfehler.
jepp, übersehen.
Hat geklappt. Besten Dank für die Hilfe.
Jetzt weiß ich auch, warum ich bei meinen Versuchen völlig erfolglos war: wenn man den Plot-Cache löscht sieht man hinterher tatsächlich auch aktuelle Ergebnisse ... ::) ::) ::)