RRDGraph - Daten nicht mitteln

Gast #4629559
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.
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
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:
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
JA recht hast du aber nur halb "MAX" ist es hatte ich auch mehrfach 
ausprobiert hatte aber nix gebracht was noch fehlte ist ein :step=300 
für die 5min Auflösung.
Gast
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

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.