Hallo liebe Forum User,
ich hätte eine Frage zu einem kleinen Python Programm. Mit diesem möchte ich die Heizung überwachen und bei einer Störung eine Telefonanruf auslösen. Leider funktioniert die Schleife nicht richtig. Es wird im Log nicht immer "Störung Ende: " geschrieben.
# Hauptprogramm
a = 1
while a == 1:
if GPIO.input(18) == GPIO.LOW:
time.sleep (15)
#print ("1 LOW erkannt")
if GPIO.input(18) == GPIO.LOW:
write_log = wr_log("Störung Anfang: ")
make_call = call1()
make_call2 = call2()
while GPIO.input(18) == GPIO.LOW:
write_log3 = wr_log("Störung immer noch aktiv: ")
time.sleep(60)
write_log2 = wr_log("Störung Ende: ")
time.sleep (5)
Alles anzeigen
So wäre meine Logik:
Falls eine Störung erkannt wird (GPIO.LOW Port 18) soll noch 15 Sekunden gewartet werden, wenn die Störung dann immer noch aktiv ist, soll im Log Störung Anfang (Def) geschrieben werden, sowie die beiden Telefonanrufe getätigt werden. Danach soll überprüft werden ob die Störung immer nocht aktiv ist und am Ende, wenn die Störung behoben ist "Störung Ende" ins Log geschrieben werden.
Habt ihr vielleicht eine Idee, wo der Fehler liegt oder, wie das schöner abbildbar ist?
Vielen Dank im Voraus!