SVG+dblog: Definition für mehrere Devices in einem Plot

Begonnen von blueberry63, 10 April 2014, 14:34:46

Vorheriges Thema - Nächstes Thema

blueberry63

Hallo,

könnte mir jemand zeigen, wie man einen Plot definiert (fhem.cfg+plotfile), wo mit mehrere Devices in einer Grafik gearbeitet wird?

So funktioniert es bei mir mit zwei Grafiken:

fhem.cfg:
Zitat
define wl_Motion SVG myDB:myHZ_motion:HISTORY
attr wl_Motion label "Helligkeit:Min $data{min1}, Max $data{max1}, Aktuell $data{currval1}"
attr wl_Motion plotfunction <b>BewMelder1</b>:brightness::

define wl2_Motion SVG myDB:myHZ_motion:HISTORY
attr wl2_Motion label "Bewegung:Min $data{min1}, Max $data{max1}, Aktuell $data{currval1}"
attr wl2_Motion plotfunction <b>Motion1Verlauf</b>:state::

myHZ_motion:
Zitat
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 ytics
set y2tic ("AUS" 0, "EIN" 1)
set title '<L1>'
set grid xtics y2tics

set ylabel "AN/AUS"
set y2label "Helligkeit"

#DbLog <SPEC1>

plot \
  1:2 ls l1 axes x1y2 title 'Motion' with lines

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

betateilchen

Du brauchst doch im gplot Editor einfach weitere Zeilen hinzufügen, die genau so aussehen wie die erste? Und in jeder weiteren Zeile den gewünschten Devicenamen verwenden.

Wenn ich heute abend zu Hause bin, kann ich Dir ein Beispiel mit Wetterdaten zeigen.

Im Prinzip vermehren  sich die Zeilen "#DbLog ..." und die plot Zeilen "1:2..." entsprechend der Anzahl der Devices.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

blueberry63

Mehrere Werte eines Device bekomme ich ohne Probleme hin. Aber wenn die Werte von unterschiedlichen Devices kommen, funktioniert es eben nicht (hatte ich natürlich ausprobiert, bevor ich hier gepostet habe).

Ein Beispiel würde mir wahrscheinlich helfen, dann sehe ich bestimmt meinen Fehler.

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

betateilchen

machs doch mal umgekehrt, zeig doch mal Dein nicht funktionierendes Beispiel, vielleicht sehe ICH da was ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

blueberry63

OK, hier die Konfig meines 1. Versuches, die Werte von zwei Devices in einem Plot darzustellen

fhem.cfg:
Zitat
define wl_Motion SVG myDB:myHZ_motion:HISTORY
attr wl_Motion label "Helligkeit/Bewegung:Min $data{min1}, Max $data{max1}, Aktuell $data{currval1}"
attr wl_Motion plotfunction Motion1Verlauf:state:: BewMelder1:brightness::

myHZ_motion.gplot
Zitat
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 ytics
set y2tic ("AUS" 0, "EIN" 1)
set title '<L1>'
set grid xtics y2tics

set ylabel "AN/AUS"
set y2label "Helligkeit"

#DbLog <SPEC1>:$val=($val=~"EIN"?1:0)
#DbLog <SPEC2>

plot \
  1:2 ls l1 axes x1y2 title 'Motion' with lines \
  1:2 ls l2 axes x1y2 title 'Helligkeit' with lines

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Puschel74

Hallo,

so habe ich den weblink definiert:

define wl_Heizung_HM SVG myDbLog:temp_hmdb:HISTORY
attr wl_Heizung_HM fixedrange 5days
attr wl_Heizung_HM label "Heizung Vorlauf Aktuell: $data{currval1} Ruecklauf Aktuell: $data{currval2}"
attr wl_Heizung_HM plotfunction Keller_Heizung_Vorlauf Keller_Heizung_Ruecklauf Wasserpumpe Freigabe
attr wl_Heizung_HM room 05_Plots_Heizkessel


Das ist meine temp_hmdb dazu:
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 ytics nomirror
set y2tics
#set ytics
set title '<L1>'
set grid xtics y2tics
set yrange [-0.20:1.2]

set y2label "°C"
set ylabel "Ein/Aus"

#DbLog <SPEC1>:temperature::
#DbLog <SPEC2>:temperature::
#DbLog <SPEC3>:state:::$val=~s/(Ein|Aus|dim)(\d*).*/$1eq"Ein"?1:($1eq"dim"?$2*0.01:0)/eg
#DbLog <SPEC4>:state:::$val=~s/(on|off).*/$1eq"on"?1.05:0.05/eg

plot \
  1:2 ls l0 axes x1y2 title 'Temperatur Vorlauf (°C)' with lines
  1:2 ls l2 axes x1y2 title 'Temperatur Ruecklauf (°C)' with lines
  "< awk '{print $1, $3~/dim.*/? 1 : 0; }' <IN>"\
        using 1:2 ls l1 axes x1y1 title 'Wasserpumpe (Ein/Aus)' with steps
  "< awk '{print $1, $3~/dim.*/? 1 : 0; }' <IN>"\
        using 1:2 ls l3 axes x1y1 title 'Freigabe (Ein/Aus)' with steps


Und so sieht der Plot aus (siehe Screenshot).

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

betateilchen

vier verschiedene Devices...


# Created by FHEM/98_SVG.pm, 2014-01-10 22:44:22
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 '<L1>'
set ytics
set y2tics ("0" 0, "25" 25,"50" 50, "75" 75, "100" 100)
set grid y2tics
set ylabel "Temperatur °C"
set y2label "Feuchte %"
set y2range [0:100]
set y3label "Druck hPa"
set y3range [950:1050]

#DbLog out_Balkon:temperature::
#DbLog BMP180:pressure-nn::
#DbLog out_Balkon:humidity::
#DbLog out_Regen_Rain:state::
#DbLog sunDummy:state::
#DbLog out_Balkon:dewpoint::

plot "<IN>" using 1:2 axes x1y1 title 'T' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y3 title 'P' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'H' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title ' ' ls l2fill lw 1 with steps,\
     "<IN>" using 1:2 axes x1y2 title ' ' ls l4fill lw 0.2 with steps,\
     "<IN>" using 1:2 axes x1y1 title ' ' ls l0 lw 0.2 with lines

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

blueberry63

@Puschel74Q@betateilchn

Ihr habt mir geholfen, nach einigem Ausprobieren habe ich den Plot hinbekommen  :D

DANKE!

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

jove01

Hallo
da ich langsam verzweifel, bitte ich um Eure Hilfe:
Ich bin von der Fritzbox umgezogen auf eine RaspberryPI mit #DBLog. Dabei setzte ich nochmals alles neu auf.

Mein großes Problem ist am Anfang ein Plot für einen FHT. Genauer um das Fenster und das Thermostat darzustellen. Im Gegensatz zum Filelog bekomme ich einfach nicht die Umwandlung der state in 0 und 1 nach obigem und anderen Beispielen hin.
###    Gerät FHT80B
#
define Chr_Heizung FHT 4953
attr Chr_Heizung IODev CUL_0
attr Chr_Heizung event-on-change-reading .*
attr Chr_Heizung event-on-update-reading state
attr Chr_Heizung group Temperaturen
attr Chr_Heizung icon heizung.0
attr Chr_Heizung room 02 Devices,Christoph


###########################################################
#
#      weblink / SVG
###########################################################
   
define wl_Chr_Heizung SVG myDbLog:0_svg_Chr_Heizung:HISTORY
attr wl_Chr_Heizung label "Raum Christoph - aktuelle Temperatur: $data{currval1}"
attr wl_Chr_Heizung room 03_Plots


und dann
set y2label "Zu / Offen"
set y2range [-0.20:1.2]

#DbLog Chr_Heizung:temperature
#DbLog Chr_Heizung:desired-temp
#DbLog Chr_Fenster:state:::$val=~s/(Open|Closed).*/$1eq"Open"?1.05:0.05/eg

plot "<IN>" using 1:2 axes x1y1 title 'Temperatur' ls l0fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Soll-Temperatur' ls l1 lw 1 with lines,\
     "< awk '{print $1, $3~/dim.*/? 1 : 0; }' <IN>"\
        using 1:2 ls l3 axes x1y1 title 'Fenster' with steps


Die Datenbank sieht korrkt aus (READING = "state", VALUE = "Open" bzw. "Closed") , wobei mich die Anzahl der Einträge noch stört, aber das ist ein anderes Thema.

Mit diesen Einstellungen bekomme ich für das Fenster nur einen Strich am unteren Rand des Plots. Der Wechsel von Closed auf Open ist dabei ganz schwach zu sehen.

Ich hoffe auf Eure Hilfe

vg
Jürgen
Aktuelles FHEM auf Raspi 3 und dbLog
CUL 433
HMLan Rolladensteuerung

Puschel74

Hallo,

#DbLog Chr_Fenster:state:::$val=~s/(Open|Closed).*/$1eq"Open"?1.05:0.05/eg
Versuch mal anstelle von state das Reading Window.

#DbLog Chr_Fenster:Window:::$val=~s/(Open|Closed).*/$1eq"Open"?1.05:0.05/eg

Ungetestet.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

jove01

Hallo Puschel74

vielen Dank für die schnelle und frühe Antwort.

Dein Vorschlag hat leider nicht weitergeholfen. Das hatte ich vorher auch schon getestet. Aber die Antwort hat mich veranlasst, nochmals ganz genau den Code zu zu studieren.

Es war mein Fehler: Die Scalierung habe ich auf die rechten Achse gebracht, im Original war es links. Das hatte ich nicht angepasst. (Den Plot-Editor kann ich im Moment nicht nutzen, da mir falsche Readings (wahrscheinlich wegen fehlender aktueller Daten) die gplot-File zerschießen.

Nochmals Danke :)
Aktuelles FHEM auf Raspi 3 und dbLog
CUL 433
HMLan Rolladensteuerung