ich schaffe es leider nicht, den Inhalt einer Datei für meine IF Anweisung zu verwenden.
Ich habe momentan eine Skript, das immer in einer Schleife läuft, das funktioniert soweit wunderbar. Jetzt möchte ich aber die Schleife raus haben und das ganze über einen Cronjob laufen lassen.
Mein momentanes Skript sieht wie folgt aus. Ich schicke nur den relevanten Teil um den es geht. Wenn jemand den ganzen Zusammenhang wissen will, kann ich gerne auch den ganze Code schicken.
Code: Alles auswählen
UPPER = 23
LOWER = 21
luefter_an = False
while True:
netzwerkschranktemp = sensorauslesen()
if luefter_an == True and netzwerkschranktemp < LOWER:
luefter_an = False
gpio.output(11, gpio.HIGH)
if luefter_an == False and netzwerkschranktemp > UPPER:
luefter_an = True
gpio.output(11, gpio.LOW)
time.sleep(899)
Das ganze funktioniert wie oben zu sehen wunderbar. Alle 15 Min läuft die Schleife.
Jetzt will ich das ganze aber auf einen Cronjob umbauen und dazu benötige ich eine Datei um den Zustand zu speichern.
Ich habe bisher folgendes probiert:
Code: Alles auswählen
file = open("netzwerkschrank.txt", "r")
luefter_an = (file.read())
file.close
if luefter == True and netzwerkschranktemp < LOWER:
file = open("netzwerkschrank.txt", "w")
file.write("False")
file.close
gpio.output(11, gpio.HIGH)
if luefter == 'aus' and netzwerkschranktemp > UPPER:
file = open("netzwerkschrank.txt", "w")
file.write("True")
file.close
gpio.output(11, gpio.LOW)
Beides funktioniert leider nicht.if luefter == "True" and.....
Lese ich die Datei aus, dann wird auch der Inhalt ausgelesen. Je nachdem ob ich beim ersten Start True oder False rein schreibe.
Auch habe ich das ganze nochmal anders getestet:
Auch hier wir die Datei sauber ausgelesen entweder mit "an" oder mit "aus".if luefter == 'an' and netzwerkschranktemp < LOWER:
file = open("netzwerkschrank.txt", "w")
file.write("aus")
file.close
gpio.output(11, gpio.HIGH)
if luefter == 'aus' and netzwerkschranktemp > UPPER:
file = open("netzwerkschrank.txt", "w")
file.write("an")
file.close
gpio.output(11, gpio.LOW)
In allen Fällen, wird aber nichts in die Datei geschrieben.
Ich habe mir ein paar Print ausgaben dazu gebaut um zu sehen, ob überhaupt in die IF Abfrage gesprungen wird. Das ist leider nicht der Fall.
Ich vermute, dass hier mit dem Dateityp und der IF Abfrage irgendwas nicht stimmt.
Vielleicht kann mir jemand einen Tipp in die richtige Richtung geben.
Danke