Hallo zusammen,
ich habe bei mir einen Temperatur-Sensor an einem Android-Device. Dieses schickt periodisch die Temperatur per WBS an mein FHEM. Ich würde mir gerne ein Plot mit der Temperaturkurve erstellen lassen. Leider scheitere ich an der korrekten Konfiguration. Bisher habe ich:
define WBSTemp001 WBS Temperature 1032D8ED01080011
attr WBSTemp001 room Draußen
define FileLog_WBSTemp001 FileLog ./log/WBSTemp001-%Y.log WBSTemp001
attr FileLog_WBSTemp001 logtype Temperature:Temperatur,text:Log
attr FileLog_WBSTemp001 room Draußen
define wl_0 weblink fileplot FileLog_WBSTemp001:Temperature:CURRENT
Mein Temperature.gplot:
#
# Display the measured temperature via WBS
#
# FileLog definition:
# define <filelogname> FileLog ./log/fhem/<devname>-%Y.log <devname>
# Filelog example:
# ./log/WBSTemp001-%Y.log WBSTemp001
#
# Logfile record example:
#2013-09-16_21:11:11 WBSTemp001 Temperature:19.49
#
# Attribute 'small' is useful for gnuplot/-scroll only,
# if plotsize is less than 800,400
#set terminal png transparent small size <SIZE> crop
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 y2tics
set title '<L1>'
set grid xtics y2tics
set y2label "Temperatur in °C"
#FileLog 4:T\x3a|Temperature:0:
plot \
"< egrep 'T:|Temperature:' <IN>"\
using 1:4 axes x1y2 title 'Temperatur' with lines
Ein log-Eintrag sieht wie folgt aus:
2013-09-18_20:04:46 WBSTemp001 Temperature:19.18
Ich habe schon damit gespielt, welche Spalte als Quelle für den Plot verwendet werden soll, ohne Erfolg. Das Problem scheint ein fehlender Blank zwischen ":" und Temperaturwert zu sein. Wenn ich die Logdatei per Hand ändere und einen Blank einfüge, klappt es auch.
Ich habe gelesen, dass man auch Perl-Code verwenden kann, um den Temperaturwert auszuschneiden. Leider hat aber mein substr() nicht funktioniert. Woher weiß ich, ob die Funktion überhaut aufgerufen wurde?
Könnt ihr mit bitte weiterhelfen? Ich weiß nicht welche Konfiguration ich brauche um die Werte korrekt zu extrahieren.
Danke schon mal im Voraus!
Grüße
Thomas