Seite 1 von 1

rrd tool Update

Verfasst: Freitag 22. Juli 2022, 06:42
von HoLaHe
Hallo zusammen,

ich habe einen Raspberry Pi 3B mit einem DHT22 Sensor verbunden, Ich habe mir ein python Script geschrieben welches Die Daten ausliest und diese dann in einen "rrd Datenbank" speichern soll. Ich bekomme jedoch beim ausführen der Python Datei einen Fehler angezeigt, kann mir jamnd sagen was ich falsch mache? Ich bin noch Python Anfänger :wink:

sudo python rrd.py
File "/home/pi/rrd.py", line 29
rrdtool.update("temp.rrd", "N:" + "temperature")
TabError: inconsistent use of tabs and spaces in indentation

Hier mal mein Script:
import rrdtool
import Adafruit_DHT

#Sensor-Daten
DHT_SENSOR = Adafruit_DHT.DHT22
DHT_PIN = 17

#Datenbanken_erstellen
rrdtool.create(
"temp.rrd",
"--start", "now",
"--step", "300",
"RRA:AVERAGE:0.5:1:1200",
"DS:temp:GAUGE:600:-273:5000")

rrdtool.create(
"luft.rrd",
"--start", "now",
"--step", "300",
"RRA:AVERAGE:0.5:1:1200",
"DS:luft:GAUGE:600:-273:5000")


#Messdaten holen und wegspeichern
while True:
humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN)

if humidity is not None and temperature is not None:
rrdtool.update("temp.rrd", "N:" + "temperature")
rrdtool.update("luft.rrd", "N:" + "humidity")

else:
print("Failed to retrieve data from humidity sensor")

time.sleep(300)

Re: rrd tool Update

Verfasst: Freitag 22. Juli 2022, 08:00
von Sirius3
Die Fehlermeldung bedeutet, dass Du in Zeile 29 Tabs statt Leerzeichen benutzt hast, was man aber an dem Code, den Du gepostet hast, nicht mehr nachvollziehen kann, weil dort alles korrekterweise mit Leerzeichen eingerückt wird.
Achte immer darauf, keine Tab-Zeichen zu verwenden. Stelle Deinen Editor so ein, dass die Tab-Taste automatisch Leerzeichen erzeugt.

"temperature" und "humidity" sollen wahrscheinlich keine Strings sein, benutzt f-Strings: f"N:{temperature}"

Re: rrd tool Update

Verfasst: Freitag 22. Juli 2022, 08:28
von HoLaHe
Hallo Sirius3

danke für die Tips.

Wenn ich dirch richtig verstanden habe sollte es jetzt so aussehen?
import rrdtool
import update as rrd_update
import Adafruit_DHT

#Sensor-Daten
DHT_SENSOR = Adafruit_DHT.DHT22
DHT_PIN = 17

#Datenbanken_erstellen
rrdtool.create(
"temp.rrd",
"--start", "now",
"--step", "300",
"RRA:AVERAGE:0.5:1:1200",
"DS:temp:GAUGE:600:-273:5000")

rrdtool.create(
"luft.rrd",
"--start", "now",
"--step", "300",
"RRA:AVERAGE:0.5:1:1200",
"DS:luft:GAUGE:600:-273:5000")


#Messdaten holen
while True:
humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN)

if humidity is not None and temperature is not None:
rrdtool.update temp.rrd f"N:{temperature}
rrdtool.update luft.rrd f"N:{humidity})

else:
print("Failed to retrieve data from humidity sensor")

time.sleep(300)
dann bekomm ich einen Syntax Fehler

Re: rrd tool Update

Verfasst: Freitag 22. Juli 2022, 09:10
von __deets__
Du musst den Code mit Code Tags posten. Nicht als Zitat.

Re: rrd tool Update

Verfasst: Freitag 22. Juli 2022, 09:10
von Sirius3
Weil jetzt Klammern, Kommas und Anführungszeichen fehlen. Arbeite ein Python-Grundlagentutorial durch, wo solche Dinge erklärt werden.