FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: floxx am 24 November 2017, 13:35:08

Titel: Erstes Plot für Anwesenheit fast fertig ;)
Beitrag von: floxx am 24 November 2017, 13:35:08
Hallo,

ich habe mein erste PLOT erstellt für meine Anwesenheiten (Presence mit Geofancy) und habe da noch ein kleines Problem wo ihr sicher die Lösung wisst.

Soll:
- bei home oder asleep soll der Wert 0.9 sein
- bei Absent soll der Wert 0.1 sein

Ist:
- bei Present ist der Wert 0.9
- bei Absent und asleep 0.1

Filtern tue ich momentan mittels logfile auf "home" da dort nur home,absent, asleep enthalten ist. Ich bräuchte beim Filter: $fld[2]=~"home"?0.9:0.1   noch den Wert asleep aber weis nicht wie ?

SVG RAW:

defmod SVG_FileLog_Presence_Florian_1 SVG FileLog_Presence_Florian:SVG_FileLog_Presence_Florian_1:CURRENT
attr SVG_FileLog_Presence_Florian_1 room 20_Residents


PLOT:

# Created by FHEM/98_SVG.pm, 2017-11-23 21:45:58
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Anwesenheit Florian'
set ytics "ab" 0.1, "an" 0.9
set y2tics "ab" 0.1, "an" 0.9
set grid y2tics
set ylabel "-wesend"
set y2label "-wesend"
set yrange [0:1]
set y2range [0:1]

#FileLog_Presence_Florian 3:Florian.*::$fld[2]=~"home"?0.9:0.1

plot "<IN>" using 1:2 axes x1y2 title 'Florian' ls l1fill lw 2 with lines

Titel: Antw:Erstes Plot für Anwesenheit fast fertig ;)
Beitrag von: Frank_Huber am 24 November 2017, 13:38:45
einfach dahinter setzen
Beispiel:
ETA_Kessel_1_Status:Kessel_1_Status:::$val=($val=~'Heizen'?3:($val=~'Glutabbrand'?2:($val=~'Glutabbrand.wegen.Entaschung'?2:($val=~'Entaschen'?2:($val=~'Zünden'?2:($val=~'Vorwärmen'?1:($val=~'Füllen'?1:0)))))))
Titel: Antw:Erstes Plot für Anwesenheit fast fertig ;)
Beitrag von: floxx am 24 November 2017, 13:51:20
danke für die Antwort aber dein Beispiel ist für mich zu verwirrend, ist mein erstes Plot :(
Titel: Antw:Erstes Plot für Anwesenheit fast fertig ;)
Beitrag von: Frank_Huber am 24 November 2017, 13:59:14
Ja, da sind evtl zuviele Faktoren. So hatte ich mich an meinen Heizungskessen herangetastet.

Kurzform:
($val=~'x'?1:($val=~'xx'?2:($val=~'xxx'?3:0)))
Ein x = 1
Zwei x = 2
Drei x = 3
Alles andere  0

Du machst so lange deine "Umwandlungen" dahinter, bis du alle definiert hast, nach dem letzten dann den Default Wert für alles andere.
Titel: Antw:Erstes Plot für Anwesenheit fast fertig ;)
Beitrag von: floxx am 24 November 2017, 17:03:20
Danke für deine Gute Erklärung, eigtl. ganz simpel :) habs nun umgebaut aber mit "show preprocessed input" kann man sich ja das Ergebnis anzeigen lassen, leider wird immer 0.1 gesetzt.

Sollte ja so eigtl stimme oder sehe ich meinen Fehler nicht?
$val=($val=~'home'?0.9:($val=~'asleep'?0.9:0.1))
Titel: Antw:Erstes Plot für Anwesenheit fast fertig ;)
Beitrag von: Frank_Huber am 24 November 2017, 21:20:42
Warte, du hast ja filelog... Mein Beispiel ist von dblog.
Nimm mal wie du es zuerst hattest und füge nur die anderen Werte ein.

#FileLog_Presence_Florian 3:Florian.*::$fld[2]=~"home"?0.9:($fld[2]=~"asleep"?0.9:0.1)