SVG: Fehlerhafte Darstellung bei steps

Begonnen von Dr. Boris Neubert, 22 April 2018, 21:11:55

Vorheriges Thema - Nächstes Thema

Dr. Boris Neubert

Hallo,

ich habe einen Plot, bei dem ich neben den Temperaturen im NAS auch den Zustand ein/aus des Lüfters anzeige, als gefüllter Bereich. Wenn der Lüfter gerade läuft, wird die Treppe nicht weitergezeichnet. Siehe Bild.

gplot-Datei:

# Created by FHEM/98_SVG.pm, 2017-12-12 16:32:48
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                                                                                                                                     
set y2tics                                                                                                                                     
set grid                                                                                                                                       
set ylabel ""                                                                                                                                 
set y2label ""                                                                                                                                 
set yrange 25:50]                                                                                                                             
set y2range [25:50]                                                                                                                           
                                                                                                                                               
#comp.nas.log 4:comp.nas.PeripheralTemp\x3a::                                                                                                 
#comp.nas.log 4:comp.nas.SystemTemp\x3a::                                                                                                     
#comp.nas.log 4:comp.nas.CPUTemp\x3a::                                                                                                         
#0.hr.vent.log 3:0.hr.vent.*:0:$fld[2]=~"on"?50:25                                                                                             
                                                                                                                                               
plot "<IN>" using 1:2 axes x1y2 title 'Peripheral Temperature' ls l1 lw 1 with steps,\                                                         
     "<IN>" using 1:2 axes x1y2 title 'System Temperature' ls l2 lw 1 with steps,\                                                             
     "<IN>" using 1:2 axes x1y2 title 'CPU Temperature' ls l0 lw 1 with steps,\                                                               
     "<IN>" using 1:2 axes x1y2 title 'Ventilation' ls l3fill lw 0.2 with steps 




get 0.hr.vent.log CURRENT INT 2018-04-21_21:05:00 2018-04-22_21:04:59 3:0.hr.vent.*:0:$fld[2]=~"on"?50:25

2018-04-22_00:09:34 50
2018-04-22_04:18:49 25
2018-04-22_10:27:31 50
#3:0.hr.vent.*:0:$fld[2]=~"on"?50:25


Ich meine, dass von 10:27 bis jetzt eine Treppenstufe gezeigt werden müsste.

Ich denke, dass das ein Fehler ist.

endPlotNow ist gesetzt.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

Hallo Boris,

ZitatIch meine, dass von 10:27 bis jetzt eine Treppenstufe gezeigt werden müsste.
Ich verstehe nicht, warum du dieser Ansicht bist.

Bei drei Datenpunkten werden mit steps 4 Linien gemalt, jeweils zwei fuer zwei benachbarte Datenpunkte.
- erste Linie: von 00:09 bis 04:18, Hoehe 50
- zweite Linie: um 04:18 von 50 auf 25
- dritte Linie: von 04:18 bis 10:27, Hoehe 25
- vierte Linie: um 10:27, von 25 auf 50.
Wegen l3fill wird die Flaeche unter der erste Linie gefuellt, der Rest kann nicht gefuellt werden.

Da fuer "jetzt" kein Datenpunkt vorliegt, wird auch nichts dahin gemalt.

frank

logproxy mit option predict sollte es machen.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Dr. Boris Neubert

Zitat von: rudolfkoenig am 24 April 2018, 21:52:18
Ich verstehe nicht, warum du dieser Ansicht bist.

Bei Steps ist das implizite Verständnis, dass der ausgewiesene Wert konstant bleibt, bis ein neuer Wert bekannt wird. Bei einem Wechsel des Wertes werden daher vertikale, zwischen den Wechselzeitpunkten horizontale Linien gezeichnet.

Da bis "jetzt" kein neuer Wert angefallen ist, kann die horizontale Linie bis "jetzt" schon gezeichnet werden (als letzter, zusätzlicher Schritt bei der Erstellung des Graphen bei steps). Eine Vorhersage des Wertes mit predict ist m.E. unnötig aufwendig.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

ZitatBei Steps ist das implizite Verständnis, dass der ausgewiesene Wert konstant bleibt, bis ein neuer Wert bekannt wird.
Das mag fuer bestimmte Anwender stimmen, ich moechte aber sehen, wann zuletzt Daten empfangen wurden. Mit "logproxy predict" gibt es eine Moeglichkeit deinen Wunsch zu erfuellen, wenn wir predict in SVG implementieren, dann gibt es keinen Weg, meine Variante zu haben.