RRDTool und Regenmesser - Grafik passt nicht zu den Werten

Begonnen von dad401, 26 Juni 2018, 19:53:18

Vorheriges Thema - Nächstes Thema

dad401

Hallo,

ich hoffe mir kann jemand in diesem Forum weiterhelfen. RRDTool sollte nicht so unbekannt sein.

Ich habe mir einen Regensensorempfänger mit einem Arduino gebaut, welcher die Messwerte in absoluten mm ausgibt. Das ganze möchte ich nun per RRDTool visualisieren.
Ich messe alle 5min einen Wert und habe die RRD-Datenbank in Python wie folgt angelegt:
       ret = rrdtool.create("%s" % (rrd_file),
                             "--step","%s" % (300),
                             "--start",'0',
                             "DS:raingauge:DERIVE:%s:0:U" % (300 * 6),
                             "RRA:AVERAGE:0.5:1:2016",
                             "RRA:AVERAGE:0.5:6:1488",
                             "RRA:AVERAGE:0.5:16:1656",
                             "RRA:AVERAGE:0.5:60:1752",
                             "RRA:AVERAGE:0.5:120:1752",
                             "RRA:AVERAGE:0.5:300:1752",
                             "RRA:MIN:0.5:1:2016",
                             "RRA:MIN:0.5:6:1488",
                             "RRA:MIN:0.5:16:1656",
                             "RRA:MIN:0.5:60:1752",
                             "RRA:MIN:0.5:120:1752",
                             "RRA:MIN:0.5:300:1752",
                             "RRA:MAX:0.5:1:2016",
                             "RRA:MAX:0.5:6:1488",
                             "RRA:MAX:0.5:16:1656",
                             "RRA:MAX:0.5:60:1752",
                             "RRA:MAX:0.5:120:1752",
                             "RRA:MAX:0.5:300:1752")

Der Sensor gibt mir Werte wie: 33,50 (mm). Pro Wippe wird um 0,25 mm erhöht. Da DERIVE von RRDTool nicht mit Float arbeitet, gebe ich die Werte mit 100 multipliziert an RRDTool weiter.
Folgende Werte wurden z.B. eingefügt:
06/25/18 20:15:10 = collectRainGauge => N:3650
06/25/18 20:20:07 = collectRainGauge => N:3650
06/25/18 20:25:11 = collectRainGauge => N:3675
06/25/18 20:30:10 = collectRainGauge => N:3675


D.h. es gab eine Änderung von 0,25mm, also ein Update RRDTool mit dem Wert 25. Die Grafik liefert aber einen Wert von 80m im entsprechenden Zeitraum (siehe Anlage). Die Grafik wird im Grunde mit folgenden Parametern erstellt (eine Umrechnung auf mm, also / 100 habe ich erstmal weggelassen):
            $options=array(
                "--vertical-label", "mm / 100",
                "--title","Niederschlagsmenge (Zeitraum: $term)",
                "-w", $width,
                "-h", $height,
                "-s", "now - $term",
                "-e", "now",
                "--full-size-mode",
                "DEF:raingauge=$rrd_file:raingauge:AVERAGE",
                "CDEF:rainph=raingauge,100,/,3600,*",
                "CDEF:rainpd=rainph,100,/,24,*",
                "CDEF:rainpm=rainpd,30,*",
                "VDEF:totalrain=rainpm,AVERAGE",
                "LINE2:raingauge#0000FF:Regenmenge\\n",
                "GPRINT:totalrain:Total %6.0lf mm/Monat");


Wo liegt mein Denkfehler?
--
aktuelles FHEM auf einem RPI3 mit
HM-MOD-RPI-PCB, CUL868, nanoCUL (868MHz), Signalduino (433MHz), SignalESP (433 MHz) zur Nutzung folgender Systeme:
FS20/Homematic/IT-Steckdosen/OW/Sonstiges

dad401

Ich glaube den Fehler gefunden zu haben.

Die 80 m = 0,08 werden von RRDTool bei DERIVE so berechnet: 25 / 300 (Sekunden = Messinterval) = 0,083 pro Sekunde.  Nun fehlt mir dennoch eine vernünftige Darstellung der Niederschlagsmenge pro Stunde/Tag/Monat. Die Berechnung hier im Graphen ganz unten verstehe ich nicht. Nehmen wir an, es bleibt bei 25 (0,25 mm) am Tag, dann würde die Berechnung 0,08 * 3600 (Sekunden pro Tag) liefern = 288 (2,88mm). Am Tag hat es aber nur 25 (0,25mm) geregnet  :o
--
aktuelles FHEM auf einem RPI3 mit
HM-MOD-RPI-PCB, CUL868, nanoCUL (868MHz), Signalduino (433MHz), SignalESP (433 MHz) zur Nutzung folgender Systeme:
FS20/Homematic/IT-Steckdosen/OW/Sonstiges