Dear all, I´m new to python and rrdtool. I created the following python script to access some sensors on my raspberry. So, sensors are working fine and i get results in terminal. Now I tried to insert those data into an rrd databas but I always get the failure posted later on: Verwendete Sensoren:
DHT22 (temperature, humidity) BMP085 (pressure, temperature) BH1750FVI (light) In the terminal I get: T1: 13.10 °C Druck: 960.00 hPa Druck NN: 1003.21 hPa Helligkeit : 0.0 lx T2: 12.40 °C LF: 61.30 Traceback (most recent call last): File „./wetter_sens_ab_rdd.py“, line 62, in data1 = „N:%.2f:%.2f:%.2f:%.2f:%.2f:%.2f“ % (t1, t2, lf, druck, dnn, he1) TypeError: float argument required, not function Using the script: #!/usr/bin/python # -*- coding: utf-8 -*- from Adafruit_BMP085 import BMP085 import smbus import time import sys import Adafruit_DHT import re, os, rrdtool bmp = BMP085(0x77) bmp = BMP085(0x77, 3) # ULTRAHIRES Mode t1 = bmp.readTemperature() druckr = bmp.readPressure() altitude = 364 dnn = druckr / pow(1.0 – altitude/44330.0, 5.255) druck = druckr/100 DEVICE = 0x23 # Default device I2C address POWER_DOWN = 0x00 # No active state POWER_ON = 0x01 # Power on RESET = 0x07 # Reset data register value CONTINUOUS_LOW_RES_MODE = 0x13 CONTINUOUS_HIGH_RES_MODE_1 = 0x10 CONTINUOUS_HIGH_RES_MODE_2 = 0x11 ONE_TIME_HIGH_RES_MODE_1 = 0x20 ONE_TIME_HIGH_RES_MODE_2 = 0x21 ONE_TIME_LOW_RES_MODE = 0x23 bus = smbus.SMBus(1) # Rev 2 Pi uses 1 def convertToNumber(data): return ((data[1] + (256 * data[0])) / 1.2) def he1(addr=DEVICE): data = bus.read_i2c_block_data(addr,ONE_TIME_HIGH_RES_MODE_1) return convertToNumber(data) lf, t2 = Adafruit_DHT.read_retry(22, 14) print „T1: %.2f °C“ % t1 print „Druck: %.2f hPa“ % druck print „Druck NN: %.2f hPa“ % (dnn / 100.0) print „Helligkeit : “ + str(he1()) + “ lx“ if lf is not None and t2 is not None: print „T2: %.2f °C“ % t2 print „LF: %.2f“ % lf #alt:print ‚T2 = {0:0.1f}°C LF = {1:0.1f}%‘.format(t2, lf) else: print ‚Lesefehler! Neu probieren‘ sys.exit(1) data1 = „N:%.2f:%.2f:%.2f:%.2f:%.2f:%.2f“ % (t1, t2, lf, druck, dnn, he1) rrdtool.update( „%s/wetter.rrd“ % (os.path.dirname(os.path.abspath(__file__))), data1) end of script. RRD database: wetter.rrd I put some more sensores in case I want to add some additionl ones) temp 1 t1 temp 2 t2 temp 3 t3 temp 4 t4 wind richtung wr wind geschw wg Druck (NN) dnn regen 1 r1 regen 2 r2 regen 3 r3 luftfeuchte lf helligkeit he1 Abfragen jede Minute, alle 60s Speichern 10 Tage = 14400 Werte dann reduzieren auf 1 Wert pro Tag Aufbewahren 50 Jahre: 18000 Werte rrdtool create wetter.rrd \ –step ’60‘ \ ‚DS:t1:GAUGE:60:-40:80‘ \ ‚DS:t2:GAUGE:60:-40:80‘ \ ‚DS:t3:GAUGE:60:-40:80‘ \ ‚DS:t4:GAUGE:60:-40:80‘ \ ‚DS:wr:GAUGE:60:0:360‘ \ ‚DS:wg:GAUGE:60:0:100‘ \ ‚DS:dnn:GAUGE:60:850:1250‘ \ ‚DS:r1:GAUGE:60:0:100‘ \ ‚DS:r2:GAUGE:60:0:100‘ \ ‚DS:r3:GAUGE:60:0:100‘ \ ‚DS:lf:GAUGE:60:0:100‘ \ ‚DS:he1:GAUGE:60:0:1000‘ \ ‚RRA:AVERAGE:0.5:1:14400‘ \ ‚RRA:MIN:0.5:1440:18000‘ \ ‚RRA:MAX:0.5:1440:18000‘ \ ‚RRA:AVERAGE:0.5:1440:18000‘ Maybe s.b. can give some hints. I´m really new to all this stuff, so I´m very happy to have the sensores running. Next step is to get a database and than get some nice graphs. Best regardings, Stefan -- View this message in context: http://rrd-mailinglists.937164.n2.nabble.com/pi-rrdtool-python-temperature-tp7583334.html Sent from the RRDtool Users Mailinglist mailing list archive at Nabble.com. _______________________________________________ rrd-users mailing list rrd-users@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users