Guten Tag zusammen,
ich komm leider nicht weiter. Habe bereits auch schon viel im Internet gesucht und vieles getestet doch es klappt einfach nicht. Ich habe 2 Python3 Skripte die einzeln wunderbar funktionieren, aber ich bekomm diese nicht in den Autostart. Habe es jetzt über verschiedene Wege versucht. rc.local oder auch über crontab, selbst über service unit geht es nicht.
In der rc.local steht folgendes
In der luefter.py werden im Grunde nur 3 Eingänge überwacht, die wenn ein Eingang kommt den Ausgang ansteuert,
#!/usr/bin/python3
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM) # GPIO Nummern statt Board Nummern
GPIO.setwarnings(False)
Relai_1 = 24 # Relai zum Lüfter schalten
Eingang_1 = 20 # Lichtschalter Bad
Eingang_2 = 21 # Lichtschalter Abstellkammer
Eingang_3 = 19 # Relai vom Feuchtigkeitsskript
GPIO.setup(Relai_1, GPIO.OUT) # GPIO Modus zuweisen
GPIO.setup(Eingang_1, GPIO.IN, pull_up_down = GPIO.PUD_UP) # GPIO als Eingang anlegen
GPIO.setup(Eingang_2, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(Eingang_3, GPIO.IN, pull_up_down = GPIO.PUD_UP)
# Endlosschleife
while 1:
if GPIO.input(Eingang_1) == GPIO.LOW or GPIO.input(Eingang_2) == GPIO.LOW or GPIO.input(Eingang_3) == GPIO.LOW:
GPIO.output(Relai_1, GPIO.LOW) # Lüfter an
time.sleep(60)
elif GPIO.input(Eingang_1) == GPIO.HIGH and GPIO.input(Eingang_2) == GPIO.HIGH and GPIO.input(Eingang_3) == GPIO.HIGH:
GPIO.output(Relai_1, GPIO.HIGH) # Lüfter aus
else:
print("Fehler aufgetreten!")
Alles anzeigen
In der feuchte.py werden 2 DHT22 ausgelesen und wenn die Luftfeuchtigkeit zu hoch ist, wird ein Ausgang angesteuert der dann als Eingang in luefter.py fungiert.
#!/usr/bin/python3
import time
import board
import adafruit_dht
import RPi.GPIO as GPIO
# Anlaben, wo was angeschaltet ist
dht_schrank = adafruit_dht.DHT22(board.D17)
dht_keller = adafruit_dht.DHT22(board.D22)
GPIO.setmode(GPIO.BCM) # GPIO Nummern statt Board Nummern
GPIO.setwarnings(False)
Relai_2 = 23 # Relai zum Lüfter schalten
GPIO.setup(Relai_2, GPIO.OUT) # GPIO Modus zuweisen
luefter = 0 # Variable auf Null setzen
GPIO.output(Relai_2, GPIO.HIGH) # Lüfter standart aus
while True:
try:
# Feuchtigkeit auslesen
feuchte_schrank = dht_schrank.humidity
feuchte_keller = dht_keller.humidity
feuchte_keller = int(feuchte_keller) #Stringwert auf Zahl ändern
feuchte_schrank = int(feuchte_schrank)
if (feuchte_keller < 65) or (feuchte_schrank > 65):
luefter = luefter + 1
else:
luefter = 0
GPIO.output(Relai_2, GPIO.HIGH) # Lüfter aus
if luefter > 5:
GPIO.output(Relai_2, GPIO.LOW) # Lüfter an
#print ("Luefter an")
except RuntimeError as error:
# Ausgabe wenn ein Fehler aufgetreten ist
print(error.args[0])
time.sleep(5.0)
Alles anzeigen
Habe eben schon viel gelesen und chmod +x wurde auf beide Dateien bereits ausgeführt und Verweise sonst, die feste Pfade verlangen habe ich auch keine.
Wo steckt der Fehler? Wer kann mir da etwas helfen. Ich zerbrech mit hier einfach den Kopf und finde den Fehler nicht.
Vielen Dank im Vorraus.