FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: Gisbert am 11 Februar 2026, 19:50:50

Titel: Balken-Diagramm bei fehlendem "Null"-Wert
Beitrag von: Gisbert am 11 Februar 2026, 19:50:50
Hallo,

ich hab ein Filelog, das bspw. folgende Einträge enthält:
2026-02-11_19:08:39 storedCam cam_path: HaustuerDaraus möchte ich eine Art Balkendiagramm machen, wenn die Kamera etwas auf den Speicher geschrieben hat.

Das SVG plot sieht derzeit so aus:
# Created by FHEM/98_SVG.pm, 2026-02-11 19:35:03
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 'Auslösung Kamera'
set ytics
set y2tics
set grid
set ylabel "a.u."
set y2label ""
set yrange [0:5]

#FileLog_Kamera 3:storedCam.cam_path\x3a::$fld[3]eq"Haustuer"?3:-0.1
#FileLog_Kamera 3:storedCam.cam_path\x3a::$fld[3]eq"Westseite"?2:-0.1
#FileLog_Kamera 3:storedCam.cam_path\x3a::$fld[3]eq"Ostseite"?1:-0.1

plot "<IN>" using 1:2 axes x1y1 title 'Haustür' ls l0fill lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'Westseite' ls l1fill lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'Ostseite' ls l2fill lw 1 with steps

Das funktioniert leider nur halb, da ich keine "Null"-Werte im Filelog hab - eben nur Werte, wenn eine der Kameras etwas auf den Speicher geschrieben hat. Ich hab mir meinen Kopf schon ein bisschen zerbrochen, zwischendurch bin ich eingenickt (Scherz beiseite) - aber ich hab noch keine gute Idee, wie ich es ohne großen Aufwand hinbekommen könnte. Mit viel Aufwand wird es irgendwie lösbar sein, aber da hab ich auch noch keine zündende Idee, die es sich lohnt auszuprobieren.

Ich hab schon daran gedacht, die log-Einträge so zu gestalten, so dass ich auch einen Null-Wert speichern könnte, so dass ich ein Balkendiagramm daraus basteln könnte:
2026-02-11_19:08:39 storedCam cam_path: Haustuer 1
Bevor ich aber in der Richtung weitermache, frage ich lieber, ob jemand schon eine Lösung oder Lösungsanstz hat.
Viele Grüße Gisbert
Titel: Aw: Balken-Diagramm bei fehlendem "Null"-Wert
Beitrag von: Prof. Dr. Peter Henning am 11 Februar 2026, 21:27:17
Eine allgemeine Lösung lässt sich nicht finden, weil ja die Anfangswerte je nach Anwendungsfall ganz unterschiedlich sein können. In der Regel mache ich das so, dass am Anfang jeden Jahres und jeden Monats "von Hand" ein Nullzeile eingetragen wird, beispielsweise die ersten vier Zeilen hier:
Zitat2026-01-01_00:00:00 E1.consumption EOM_report: Em1 0 Ey1 0 Em1+2 0 Ey1+2 0
2026-01-01_00:00:00 E2.consumption EOM_report: Em2 0 Ey2 0 Em1+2 0 Ey1+2 0
2026-01-01_00:00:00 E1.production EOM_report: Em1 0 Ey1 0 Em1+2 0 Ey1+2 0
2026-01-01_00:00:00 E2.production EOM_report: Em2 0 Ey2 0 Em1+2 0 Ey1+2 0
2026-01-31_23:59:56 E1.consumption EOM_report: Em1 0.093 Ey1 0.093 Em1+2 631.409 Ey1+2 631.409
2026-01-31_23:59:56 E2.consumption EOM_report: Em2 631.317 Ey2 631.317 Em1+2 631.409 Ey1+2 631.409
2026-01-31_23:59:56 E1.production EOM_report: Em1 148.383 Ey1 148.383 Em1+2 149.490 Ey1+2 149.490
2026-01-31_23:59:56 E2.production EOM_report: Em2 1.106 Ey2 1.106 Em1+2 149.490 Ey1+2 149.490
Das geht deshalb relativ einfach zu machen, weil das hier jeweils userReadings sind, die mehrere Datenwerte in einer Zeile zusammenfassen und von einem Perl-Programm erzeugt werden.

LG

pah