Hallo,
beim Überarbeiten meiner fhem Umgebung bin ich nun bei den gplots. Quick&dirty Implementation (irgendwo gefunden, cut'n paste, funktioniert, nicht drüber nachdenken) sollen hinterfragt und bereinigt werden. Hier mal was ich bisher gefunden habe am Beispiel einer meiner gplot-Dateien.
#================================================
# Created by FHEM/98_SVG.pm, 2013-09-19 12:14:57
#================================================
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel "Zeit [h]"
set title '<TL>'
set ylabel '<L1>'
set y2label '<L2>'
set yrange [0:]
set y2range [0:]
set ytics nomirror
set y2tics
set grid y2tics
#set format y "%.1f"
#set format y2 "%.1f"
#================================================
#================================================
# if you need a ':' in regex or function replace it by '\x3a'
# syntax: <col/spec>:<regexp>:<default>:<fn> (@fld,0-based,NO space)
# <SPEC1>:attr:0:[int|delta-h,delta-d|$fld[3]=~"on"?0.9:0.1]
#================================================
#================================================
#DbLog <SPEC1>:current:::
#DbLog <SPEC1>:current::delta-h:
#================================================
#================================================
# colors
# l0 ... red l0fill ... red
# l1 ... green l1fill ... green
# l2 ... blue l2fill ... blue
# l3 ... magenta l3fill ... magenta
# l4 ... brown l4fill ... yellow
# l5 ... black l5fill ... cyan
# l6 ... olive l6fill ... black
# l7 ... gray
# l8 ... yellow
#================================================
# line types
# points
# lines
# steps
# fsteps
# histeps
# bars
#================================================
#================================================
plot "<IN>" using 1:2 axes x1y1 title 'Leistung/h' ls l0 lw 2 with lines,\
"<IN>" using 1:2 axes x1y2 title 'Leistung/h' ls l7 lw 1 with steps
#================================================
Wie ihre seht sind die Linienfarben nicht konsistent.
Eine weiter Erfahrung ist, dass regex bei DbLog angewandt werden kann. Hier anhand einer Zeile einer anderen gplot-Datei.
#================================================
#DbLog <SPEC1>:cum_day:::$val=~s/^CUM_DAY\x3a\s([0-9]+?(\.[0-9]*)?)/$1/eg
#================================================
Der Inhalt von
cum_day ist
CUM_DAY: 9.614 CUM: 183.427 COST: 1.81
Es sollte zwar noch nicht implementiert sein, aber es funktioniert. Also Anwendung auf eigene Gefahr.
Was nicht funktioniert ist
lookaround.
Und nun meine Fragen:
- in den plot-Anweisunden, was bedeutet using 1:2? Ich konnte dazu nichts finden und ein Verändern der Werte ergaben keine sichtbaren Veränderungen geschweige denn erklärebare.
- bzgl cum_day und dessen Inhalt (siehe oben) - wenn ich im Titel dann $data{currval1} benutze bekomme ich den gesamten Inhalt von cum_day. Kann ich hier regex zum Extrahieren von Daten verwenden?
Danke und ciao
walter
using 1:2 bedeutet verwende fuer die zwei Achsen die Spalten 1und 2. Ist de-facto nur dann relevant, falls man nicht SVG oder gnuplot-scroll sondern den "echten" gplot als plotMode verwendet. Muesste in jedem gnuplot Handbuch beschrieben sein.
Die zweite Frage sollte von jemanden mit DbLog Kenntnissen beantwortet werden.