RRDGraph - Daten nicht mitteln

Gast #4629559
Lesenswert?

Moin,

Ich hab ein kleineres Problem mit dem RRDGraph dieser mittelt mir die 
Daten die Tagesansicht ist noch ok, aber ab der anzeige einer ganzen 
Woche werden die Daten anhand der Datenpunkte gemittelt, gibt es da eine 
Möglichkeit das zu verhindern ?

An den Daten kann es nicht liegen ich habe diese in Mysql und diese 
stimmen, unten ist der befehl den ich nutze, leider ist das FAQ vom 
RRDTool etwas blöd geschrieben ich hab es nicht herausfinden können.

rrdtool graph Schlafzimmer-year.png --imgformat=PNG --start=-1year 
--width=903 --height=245 -v "Schlafzimmer-28.06.2016-11:16:58" 
DEF:temp=<sqldatastuf>=1:avg:AVERAGE LINE1:temp#FF0000:temp 
DEF:licht=<sqldata>:avg:AVERAGE LINE1:licht#00FF00:licht

mfg K.J.
#4629812
Lesenswert?

Bei RRD Datenbanken könnte es an deren Definition liegen. Immerhin 
besteht eine solche Datenbank auf mehreren Tabellen mit jeweils 
festgelegtem Intervall und Zeithorizont. Die nächstgröbere Tabelle 
entsteht durch Zusammenfassung mehrerer Samples der vorherigen.

Eine Grafik kann aber nur jene Tabelle verwenden, die den gesamten 
darzustellenden Zeithorizont umfasst, verwendet also je nach 
Zeithorizont von Grafik und Datenbankdefinition nicht unbedingt jene 
Auflösung, die du gerne hättest.

Auf SQL habe ich das noch nicht verwendet und weiss nicht, wie sich das 
abbildet.
Gast #4630225
Lesenswert?

Bin leider nicht so der Experte mit SQL aber soweit hab ich das 
hinbekommen, die werte werden als Double(20) gespeichert das ist die 
Vorgabe von RRD geht sicher auch anders.

Struktur ist im Anhang,

RRDKeyID ist ne Vorgabe vom RRDTool das ist die ID der DB da man auch 
mehrere einzelne Einträge machen kann pro DB da hab ich aber drauf 
verzichtet da sonst die DB übers Jahr riesig wird, nehme für alles eine 
ID und schreibe nur ganze Zeile in die DB.

RRDTime ist der Timestab in UNIX-Zeit und der Rest die einzelnen 
Sensoren, schreiben mache ich alle 5min. eine neue Zeile in die DB, 
Öfter macht auch kein sin das kleinste was ich Auflöse sind die Tages 
Daten, ich wollte das mal Testen so kann ich auch andere Tools nutzen 
zum Auswerten, und ich kann Fehlerkorrekturen machen was bei den 
herkömmlichen RRD DBs ziemlich Kompliziert ist.

Infos: http://oss.oetiker.ch/rrdtool/doc/rrdgraph_libdbi.en.html

Momentan mache ich das ganze mit PHP, hab seit Jahren die RRD 
Datenbanken in Benutzung aber da ist das oben genante nicht so einfach 
vielleicht wird es auch mit PHP7 einfacher da gibt es dann endlich PHP 
Libs für das RRDTool, hab es aber noch nicht getestet PHP7 lässt sich 
momentan nicht auf ARM Bauen ;-(

Es ist auch Schneller mit SQL da dauert das Generieren vom 20 Graphen 
~15sec mit den RRDDatenbanken fast ~30sec
Angehängte Dateien:
#4630507
Lesenswert?

K. J. schrieb:
> Ich hab ein kleineres Problem mit dem RRDGraph dieser mittelt mir die
> Daten die Tagesansicht ist noch ok, aber ab der anzeige einer ganzen
> Woche werden die Daten anhand der Datenpunkte gemittelt, gibt es da eine
> Möglichkeit das zu verhindern ?

Ja.

> rrdtool graph Schlafzimmer-year.png --imgformat=PNG --start=-1year
> --width=903 --height=245 -v "Schlafzimmer-28.06.2016-11:16:58"
> DEF:temp=<sqldatastuf>=1:avg:AVERAGE LINE1:temp#FF0000:temp
> DEF:licht=<sqldata>:avg:AVERAGE LINE1:licht#00FF00:licht

Einmal darfst du raten, wofür das "AVERAGE" in der Definition der 
Datenquelle steht.

RTFM!
Gast #4644935
Lesenswert?

hab es soweit fertig ich hänge das einfach mal an ist Script generiert 
deswegen ist es leider etwas unübersichtlich, aber vielleicht kann es 
jemand gebrauchen.

Bild im Anhang

rrdtool graph /var/www/img/rrd/Abstellkammer-month.png --imgformat=PNG 
--start=-1month --width=903 --height=345 -v 
"Abstellkammer-11.07.2016-21:29:44"  -c GRID#9F9F9F -c BACK#FFFFFF -c 
SHADEA#FFFFFF -c SHADEB#FFFFFF -c CANVAS#FFFFFF -c MGRID#000000 -c 
FONT#000000 -c AXIS#000000 -c FRAME#000000 -c ARROW#000000 
DEF:temp=<<<SQLGEDÖNS>>>:avg:MAX:step=300 LINE1:temp#FF0000:"temp(°C)" 
GPRINT:temp:MIN:"Min\: %2.1lf" GPRINT:temp:LAST:"Last\: %2.1lf" 
GPRINT:temp:AVERAGE:"Mean\: %2.1lf" GPRINT:temp:MAX:"Max\: %2.1lf\j" 
DEF:licht=<<<SQLGEDÖNS>>>:avg:MAX:step=300 
LINE1:licht#00FF00:"licht(%/10)" GPRINT:licht:MIN:"Min\: %2.1lf" 
GPRINT:licht:LAST:"Last\: %2.1lf" GPRINT:licht:AVERAGE:"Mean\: %2.1lf" 
GPRINT:licht:MAX:"Max\: %2.1lf\j"

MFG
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren