[98_SVG.pm] SVG ignoriert die erste Zeile aus FileLog Datei

Begonnen von betateilchen, 28 August 2026, 10:50:28

Vorheriges Thema - Nächstes Thema

betateilchen

Gegeben ist folgendes FileLog:

2026-08-23_00:00:00 buddha mileage: 4612
2026-08-23_00:00:00 buddha statMileageDay: 0
2026-08-23_23:59:04 buddha mileage: 4613
2026-08-23_23:59:02 buddha statMileageDay: 1
2026-08-24_23:59:03 buddha mileage: 4613
2026-08-24_23:59:02 buddha statMileageDay: 0
2026-08-25_23:59:02 buddha mileage: 4613
2026-08-25_23:59:02 buddha statMileageDay: 0
2026-08-26_23:59:02 buddha mileage: 4613
2026-08-26_23:59:02 buddha statMileageDay: 0
2026-08-27_23:59:04 buddha statMileageDay: 28
2026-08-27_23:59:05 buddha mileage: 4641

Das führt im SVG zum Fehlen der Darstellung von "mileage" am 23.08., erkennbar auch im preprocessed output:

get log_buddha CURRENT INT 2026-08-23_00:00:00 2026-08-29_23:59:59 4:buddha.mileage\x3a:: 4:buddha.statMileageDay\x3a::

2026-08-23_23:59:04 4613
2026-08-24_23:59:03 4613
2026-08-25_23:59:02 4613
2026-08-26_23:59:02 4613
2026-08-27_23:59:05 4641
#4:buddha.mileage\x3a::
2026-08-23_00:00:00 0
2026-08-23_23:59:02 1
2026-08-24_23:59:02 0
2026-08-25_23:59:02 0
2026-08-26_23:59:02 0
2026-08-27_23:59:04 28
#4:buddha.statMileageDay\x3a::

Wenn ich manuell die erste Zeile im FileLog verdopple

2026-08-23_00:00:00 buddha mileage: 4612
2026-08-23_00:00:00 buddha mileage: 4612
2026-08-23_00:00:00 buddha statMileageDay: 0
2026-08-23_23:59:04 buddha mileage: 4613
2026-08-23_23:59:02 buddha statMileageDay: 1
2026-08-24_23:59:03 buddha mileage: 4613
2026-08-24_23:59:02 buddha statMileageDay: 0
2026-08-25_23:59:02 buddha mileage: 4613
2026-08-25_23:59:02 buddha statMileageDay: 0
2026-08-26_23:59:02 buddha mileage: 4613
2026-08-26_23:59:02 buddha statMileageDay: 0
2026-08-27_23:59:04 buddha statMileageDay: 28
2026-08-27_23:59:05 buddha mileage: 4641

ist zumindest der preprcessed output inhaltlich korrekt, auch wenn die Zeile nur einmal auftaucht:

get log_buddha CURRENT INT 2026-08-23_00:00:00 2026-08-29_23:59:59 4:buddha.mileage\x3a:: 4:buddha.statMileageDay\x3a::

2026-08-23_00:00:00 4612
2026-08-23_23:59:04 4613
2026-08-24_23:59:03 4613
2026-08-25_23:59:02 4613
2026-08-26_23:59:02 4613
2026-08-27_23:59:05 4641
#4:buddha.mileage\x3a::
2026-08-23_00:00:00 0
2026-08-23_23:59:02 1
2026-08-24_23:59:02 0
2026-08-25_23:59:02 0
2026-08-26_23:59:02 0
2026-08-27_23:59:04 28
#4:buddha.statMileageDay\x3a::

Eine Leerzeile am Anfang des FileLog reicht nicht aus, offenbar tritt der Verlust beim Lesen und/oder Verarbeiten der echten Werte auf.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Ich konnte das leider nicht nachstellen, bei mir wird direkt 4612 fuer mileage ausgegeben.
Auch gruebeln mit debugging ueber die Suche in FileLog_seekTo hat mich nicht weitergebracht.
Ich brauche mehr Hinweise/Hilfe.

betateilchen

Zitat von: rudolfkoenig am 29 August 2026, 11:54:13Ich brauche mehr Hinweise/Hilfe.

Das Einzige, was ich noch bieten könnte, wäre das SVG device und das gplot File.
Wenn Du mir sagst, was Dir noch weiterhelfen könnte, werde ich das gerne liefern.

defmod SVG_log_buddha_1 SVG log_buddha:SVG_log_buddha_1:CURRENT
attr SVG_log_buddha_1 fixedrange week

# Created by FHEM/98_SVG.pm, 2026-08-28 10:29:53
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 "gesamt"
set y2label "pro Tag"
set yrange {"[".($data{min1}-10).":".($data{currval1}+10)."]"}

#log_buddha 4:buddha.mileage\x3a::
#log_buddha 4:buddha.statMileageDay\x3a::

plot "<IN>" using 1:2 axes x1y1 title 'km' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'diff' ls l1 lw 1 with fsteps

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!