Hallo Leute
ich bekomme die Fehlermeldung "IndentationError: expected an indented block" und check einfach nicht, was am Layout meines Codes falsch ist.
Ich habe ihn schon mit dem Pyhton Checker geprüft und versucht ihn durch probieren zu reparieren. Leider ohne Erfolg.
Der Fehler ist in Line 36 "lines = sensor.readlines().
Es wäre sehr cool, wenn mir jemand auf die Sprünge helfen könnte.
Gruß,
Sebastian
Python
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import fnmatch
import time
import MySQLdb
import logging
from datetime import datetime
import RPi.GPIO as GPIO
logging.basicConfig(filename='/home/pi/solarueberwachung/DS18B20_error.log',
level=logging.DEBUG,
format='%(asctime)s %(levelname)s %(name)s %(message)s')
logger=logging.getLogger(__name__)
def insertDB(datetime, temperature, pumpe):
query = "INSERT INTO solarueberwachung (datetime, SolarVorlauf, SolarRuecklauf, SpeicherUnten, SpeicherOben, Pumpe) VALUES (%s, %s, %s, %s, %s, %s);"
args = (datetime, temperature[2], temperature[1], temperature[0], temperature[3], pumpe)
try:
con = MySQLdb.connect(host='localhost',database='solarueberwachung',user='solarueberwachung',password='solarueberwachung')
cursor = con.cursor()
cursor.execute(query, args)
con.commit()
finally:
cursor.close()
con.close()
# Get readings from sensors and store them in MySQL
now = datetime.now() # datetime = Klasse, in der die Funktion "now()" aufgerufen wird. Diese gibt ein Objekt an die Var "now" weiter.
zeitstempel = now.strftime('%Y-%m-%d %H:%M:%S') # gibt das aktuelle Datum + Uhrzeit aus
#print datetime
datetime = []
sensornummer = []
temperature = []
IDs = []
for sensorname in os.listdir("/sys/bus/w1/devices"):
if fnmatch.fnmatch(sensorname, '28-*'):
with open("/sys/bus/w1/devices/" + sensorname + "/w1_slave") as sensor:
lines = sensor.readlines()
if lines[0].find("YES"):
pok = lines[1].find('=')
temperature.append(lines[1][pok+1:pok+3])
IDs.append(sensorname)
datetime.append(zeitstempel)
if sensorname == '28-ff4f421f64ff': #hier eigene Sensor-IDs eintragen
sensornummer.append("Sensor 4")
if sensorname == '28-d64e421f64ff': #hier eigene Sensor-IDs eintragen
sensornummer.append("Sensor 1")
if sensorname == '28-ef93431f64ff': #hier eigene Sensor-IDs eintragen
sensornummer.append("Sensor 5")
if sensorname == '28-0000053bba61': #hier eigene Sensor-IDs eintragen
sensornummer.append("Solar Ruecklauf")
else:
logger.error("Error reading sensor with ID: %s" % (sensorname))
GPIO.setmode(GPIO.BCM)
GPIO.setup(27, GPIO.IN)
led = GPIO.input(27)
if led == 0: #der LDR liefert den reziproken Wert, daher wird dieser in der nächsten Zeile umgedreht
led = 1
print "Pumpe ist an"
else:
led = 0
print "Pumpe ist aus"
if (len(temperature)>0):
insertDB(zeitstempel, temperature, led)
print(IDs, sensornummer, zeitstempel, temperature)
Display More