Hallo Zusammen,
ich habe mir einen kleinen Klima Pi gebaut. Ich lese mit einem Python Script die Daten eines DHT22 Sensors und will diese in eirn RRD Datenbak schreiben. Wenn ich ein rrdtool lastupdate schreibe wird mir auch der letzte Datensatz angezeit. Bei einem rrdtool dump steht dann allerdings nur NAN .
Hier mal mein Python Script
Python
import Adafruit_DHT
import sys
sys.path.append('/path/to/rrdtool/lib/python2.6/site-packages/')
import rrdtool
import time
from time import sleep
while True:
print ('Sensor auslesen')
sensor = Adafruit_DHT.DHT22
gpio = 4
#Daten sammeln
humidity, temperature = Adafruit_DHT.read_retry(sensor, gpio)
print ('Sensor wurde ausgelesen')
print ('Temp={0:0.1f}*C Humidity={1:0.1f}%'.format(temperature, humidity))
print ('Rohdaten :'(temperature))
print ('Rohdaten :'(humidity))
roundtemperature = round(temperature)
roundhumidity = round(humidity)
print (roundtemperature)
print (roundhumidity)
print ('Schreibe in die Datenbank')
rrdtool.update("klima.rrd",("N:"+str(roundtemperature)))
#rrdtool.update("luft.rrd",("N:"+str(roundhumidity)))
print ('warte 300 Sek')
time.sleep(300)
Alles anzeigen
rrdtool lastupdate klima.rrd sagt
rrdtool dump klima.rrd sagt aber
Code
<!-- 2022-08-17 03:00:00 CEST / 1660698000 --> <row><v>NaN</v></row>
<!-- 2022-08-17 04:00:00 CEST / 1660701600 --> <row><v>NaN</v></row>
<!-- 2022-08-17 05:00:00 CEST / 1660705200 --> <row><v>NaN</v></row>
<!-- 2022-08-17 06:00:00 CEST / 1660708800 --> <row><v>NaN</v></row>
<!-- 2022-08-17 07:00:00 CEST / 1660712400 --> <row><v>NaN</v></row>
<!-- 2022-08-17 08:00:00 CEST / 1660716000 --> <row><v>NaN</v></row>
<!-- 2022-08-17 09:00:00 CEST / 1660719600 --> <row><v>NaN</v></row>
<!-- 2022-08-17 10:00:00 CEST / 1660723200 --> <row><v>NaN</v></row>
<!-- 2022-08-17 11:00:00 CEST / 1660726800 --> <row><v>NaN</v></row>
<!-- 2022-08-17 12:00:00 CEST / 1660730400 --> <row><v>NaN</v></row>
<!-- 2022-08-17 13:00:00 CEST / 1660734000 --> <row><v>NaN</v></row>
<!-- 2022-08-17 14:00:00 CEST / 1660737600 --> <row><v>NaN</v></row>
</database>
</rra>
</rrd>
Alles anzeigen
wenn ich das richtig verstehe werden die Daten nicht in die Datenbank übernommen. Die RRD Datenbank sihet via rrdtool info so aus:
Code
pi@Klimalogger:~ $ rrdtool info klima.rrd
filename = "klima.rrd"
rrd_version = "0003"
step = 300
last_update = 1660737818
header_size = 1208
ds[temp].index = 0
ds[temp].type = "GAUGE"
ds[temp].minimal_heartbeat = 600
ds[temp].min = -3.0000000000e+01
ds[temp].max = 1.0000000000e+02
ds[temp].last_ds = "30"
ds[temp].value = 3.3791592600e+03
ds[temp].unknown_sec = 0
rra[0].cf = "AVERAGE"
rra[0].rows = 100
rra[0].cur_row = 79
rra[0].pdp_per_row = 1
rra[0].xff = 5.0000000000e-01
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[1].cf = "MIN"
rra[1].rows = 2400
rra[1].cur_row = 1846
rra[1].pdp_per_row = 12
rra[1].xff = 5.0000000000e-01
rra[1].cdp_prep[0].value = inf
rra[1].cdp_prep[0].unknown_datapoints = 0
rra[2].cf = "MAX"
rra[2].rows = 2400
rra[2].cur_row = 675
rra[2].pdp_per_row = 12
rra[2].xff = 5.0000000000e-01
rra[2].cdp_prep[0].value = -inf
rra[2].cdp_prep[0].unknown_datapoints = 0
rra[3].cf = "AVERAGE"
rra[3].rows = 2400
rra[3].cur_row = 1744
rra[3].pdp_per_row = 12
rra[3].xff = 5.0000000000e-01
rra[3].cdp_prep[0].value = 0.0000000000e+00
rra[3].cdp_prep[0].unknown_datapoints = 0
Alles anzeigen