gplot - Erkenntnisse und Fragen

Begonnen von wkarl, 02 September 2014, 08:35:09

Vorheriges Thema - Nächstes Thema

wkarl

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
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

rudolfkoenig

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.