Hallo möchte einen Text ausgeben in einem Plott
aber leider bekomm ich es nicht hin .
Kann mir einer helfen ?
Der Log ist das :
2020-09-18_09:56:44 Tuer Zu
2020-09-18_09:57:11 Tuer Zu
2020-09-18_09:57:11 Tuer Auf
2020-09-18_09:57:11 Tuer Auf
2020-09-18_09:57:11 Tuer Zu
Die *.gplot:
# Created by FHEM/98_SVG.pm, 2020-09-15 21:29:41
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 '<TL>'
set ytics ("Zu" 0, "Auf" 1)
set y2tics ("Zu" 0, "Auf" 1)
set grid ytics
set ylabel ""
set y2label ""
set yrange [-0.1:1.1]
set y2range [-0.1:1.1]
#Logo8_1_FileLog_1 3:Logo8_1.*::
plot "<IN>" using 1:2 axes x1y2 title 'Line 1' ls l0 lw 1 with lines
hier die cfg:
define Logo8_1_doif DOIF ([Logo8_1:"^0$"] == on) (set Tuer on) DOELSE (set Tuer off)
define Tuer dummy
attr Tuer eventMap 1:1 0:0
attr Tuer webCmd 0:1
define Logo8_1_DOIF_1 DOIF ([Logo8_1:"^0$"]) (set Tuer Zu,set Tuer Auf) DOELSE (set Tuer Auf,set Tuer Zu)
define Tuer_FileLog_2 FileLog ./log/Tuer_FileLog_2.log Tuer:*
define SVG_Tuer_FileLog_2_1 SVG Tuer_FileLog_2:SVG_Tuer_FileLog_2_1:CURRENT
Bekomm aber immer nur unten u oben eine Linie:
Gruß Otto
Du musst mit fld Funktion die Werte numerisch umwandeln. Der Status ist in der 3. Spalte im Eventmonitor dann im Plot Editor:
- Spalte "Column" => 3 auswählen
- Spalte Regexp => Tuer.* oder Tuer:state
- Spalte DefaultValue leer
- Spalte Function => $fld[2]=~"Auf"?1:0
Mit der Funktion wird es getestet, ob das Feld ähnlich "Auf" ist und in dem Fall wird 1 zurückgegeben sonst 0.
Muss es unbedingt Zahl sein, geht kein Text (Auf/Zu Offen/Geschlossen)
Mit 0/1 hatte ich es schon aber mit Text wär`s mir lieber ?
Gruß Otto
Für den Graph (also, die Kurve selbst) müssen die Werte numerisch sein (wie sonst weisst man was grösser oder kleiner ist, und ob die Kurve nach oben oder unten gehen soll?). Aber auf der Achse kannst Du Auf und Zu haben.