Rrdtool

DonConto

Commander
Registriert
Juli 2004
Beiträge
2.220
Hi, vielleicht kennt sich hier jemand mit RRDTOOL aus und kann mir ein paar Fragen beantworten oder behilflich sein.

Ich versuche Temperatur und Luftfeuchtewerte zu loggen und in graphisch darzustellen. Ich bekomme es aber nicht hin, dass mir ein Graph angezeigt wird. Zwar das nackte Template, aber eben ohne die Daten.

Ich fange mal damit an, was ich nicht verstehe:

root@frickelpi:~# rrdtool lastupdate /usr/local/share/pilight/default/rrd/am2302.rrd
am2302t am2302h

1408464725: 24.10 40.90
root@frickelpi:~#

Ich versteh das so: rrdtool lastupdate zeigt mir den letzten Wert an, der in die DB geschrieben wurde - inkl. Unix Timestamp. Der Timestamp passt (19.08.2014 18:12:05). Die Werte, 24.1 für die Temperatur und 40.9 für die Luftfeuchte passen auch. Soweit so gut.

Jetzt wollte ich mir mal alle Werte anzeigen lassen. Ich glaube fetch wäre hier angebracht:

root@frickelpi:~# rrdtool fetch /usr/local/share/pilight/default/rrd/am2302.rrd AVERAGE

Jetzt folgt eine lange Ausgabe mit vielen Werten. Die letzten sind:

1408464600: 2.4200000000e+01 4.0619792300e+01
1408464660: 2.4200000000e+01 4.0689608962e+01
1408464720: 2.4109227782e+01 4.0881544437e+01
1408464780: 2.4190310388e+01 4.0719379223e+01
1408464840: 2.4200000000e+01 4.0879686823e+01
1408464900: 2.4200000000e+01 4.0717905710e+01
1408464960: nan nan

Frage 1: Wieso sehe ich den Wert von rrdtool lastupdate nicht?
Frage 2: Kann das am Parameter Average liegen?
Frage 3: Wieso zeigt er mit hier Zehnerpotenzen an und nicht den Wert wie bei rrdtool lastupdate?

Jetzt zum Erzeugen des Graphen. Hier habe ich mich an einem Beispiel aus dem Internet bedient. Ich habe noch nicht alle Parameter nachgelesen, meine aber, dass das soweit stimmen könnte :-)

Code:
/usr/bin/rrdtool graph /usr/local/share/pilight/default/humidity.png -a PNG -b 1024 --start -600 -A \
-l -10 -u 60 -t "Luftfeuchte" --vertical-label "%" -w 600 -h 200 \
DEF:g1=/usr/local/share/pilight/default/rrd/am2302.rrd:am2302h:AVERAGE \
DEF:gmin=/usr/local/share/pilight/default/rrd/am2302.rrd:am2302h:MIN \
DEF:gmax=/usr/local/share/pilight/default/rrd/am2302.rrd:am2302h:MAX \
VDEF:g1a=g1,AVERAGE \
VDEF:gmina=gmin,MINIMUM \
VDEF:gmaxa=gmax,MAXIMUM \
LINE2:g1#ff0000:"Luftfeuchte" \
GPRINT:g1a:"aktuell\: %5.2lf " \
GPRINT:gmina:"tiefste\: %5.2lf " \
GPRINT:gmaxa:"hoechste\:      %5.2lf " > /dev/null


Frage 4: Was hat dieses %5.2lf zu bedeuten?
Frage 5: Was mache ich falsch? :-)

Der Graph sieht übrigens so aus:

humidity.png

Frage 6: Wieso endet der Graph um 15 Uhr? Müsste er nicht "now" enden? Das könnte zumindest der Grund sein, wieso ich nix sehe :-)
Ergänzung ()

Ok, Frage 5 kann ich wohl beantworten. Es lag an einer Einstellung des Webservers, der Bilder aus seinem eigenen Cache geliefert hat und nicht vom Filesystem. Er hat also nie das aktuelle PNG ausgeliefert sondern die Version, die er beim ersten Aufruf in den Cache geladen hat.

Die anderen Fragen sind aber noch offen :-)
 
Zur Frage 1) Das Update ist um 1408464725, die Datenbankintervalle (...720, ...780) passen dazu nicht, also werden die Datenbankeinträge interpoliert.
Frage 3) Weil die so in der Datenbank gespeichert werden
Frage 4) 5 Stellen vor dem Komma und 2 danach
 
Zurück
Oben