WBS: Logfile unbrauchbar um Plot zu erstellen?

Begonnen von turmann, 22 September 2013, 17:35:17

Vorheriges Thema - Nächstes Thema

turmann

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