Ich habe ein mir unverständliches Verhalten bei Verwendung von 'steps' im SVG-Plot bemerkt. Mit Daten einer Datei 'dummy_data.log':
2026-01-17_00:00:00 AA BB 1
2026-01-17_08:00:00 AA BB 2.5
2026-01-17_16:00:00 AA BB 3
2026-01-17_23:59:59 AA BB 0.5
und einer SVG-Definition
defmod SVG_dummy_FileLog_1 SVG dummy_FileLog:SVG_dummy_FileLog_1:CURRENTund dieser automatisch (bis auf die y-Grenzen) erzeugten gplot Datei:
# Created by FHEM/98_SVG.pm, 2026-01-17 13:36:49
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 "Humidity"
set y2label "Temperature"
set y2range [0:4]
#dummy_FileLog 4:.*::
plot "<IN>" using 1:2 axes x1y2 title 'Line 1' ls l0 lw 3 with pointsbekomme ich für die Modi 'points', 'lines' und 'steps' diese Plots:
p0.png
p1.png
p2.png
Den letzten Plot versteh ich nicht.
Ich habe hier im Forum keinen Hinweis dazu gefunden.
EDIT:
Außer natürlich dem letzten Beitrag ,,Plot mit ,steps' sollte jetzt enden". Aber das will man ja gerade nicht, wenn in der Zukunft liegende Daten geplottet werden. Und um die ging es mir mit meinen realen Daten: ich wollte die heutigen (und morgigen) EPEX Strombörsenpreise darstellen.
EDIT2:
Offensichtlich hat mich hier die kürzliche Änderung von rudolfkoenig erwischt. Erklärt auch, warum es mir jetzt erst auffiel.
Wenn möglich, sollte die letzte waagerechte Linie nur gezeichnet werden, wenn der Datenpunkt nicht in der Zukunft liegt.
EDIT3:
Ich habe in 98_SVG.pm die Zeile 2025
$ret .= sprintf(" %d,%d %d,%d", $lx,$ly, $x+$nx,$ly);geändert zu
$ret .= sprintf(" %d,%d %d,%d", $lx,$ly, $x+$nx,$ly) if ($lx < $x+$nx);weiß aber nicht, ob das hinreichend nebenwirkungsfrei ist. Jedenfalls wird dann keine letzte waagerechte Linie nach links gezogen.