ich bin neu im Thema Python und hoffe auf eure Hilfe. Ich habe ein Skript welches den Monitor bei Bewegung einschalten soll und nach 5 Minuten wieder ausschalten soll (Am liebsten mit ner Schleife das die 5 min. immer von neuem beginnen wenn eine Bewegung erkannt wird, aber soweit bin ich noch lange nicht). das Skript ist in der rc.local als Autostart daher die 120 sek. Wartezeit für den Bootvorgang.
Mein Problem liegt darin, dass dass Skript den Monitor nach 5 min. ausschaltet und nach 1 min. selbstständig wieder einschaltet. Es soll aber aus bleiben bis eine Bewegung erkannt wird und erst dann wieder einschalten
Code: Alles auswählen
#!/usr/bin/python
# Import der Python libraries
import RPi.GPIO as GPIO
import time
import datetime
import subprocess
import os
# Angabe der PIN Nummern
GPIO.setmode(GPIO.BOARD)
# GPIO Pin an dem die Dataleitung liegt steckt
GPIO_PIR = 7
# GPIO als "Input" festlegen
GPIO.setup(GPIO_PIR,GPIO.IN)
Current_State = 0
Previous_State = 0
try:
# erst mal schlafen bis der bootvorgang abgeschlossen ist
time.sleep(120)
# Warten bis Sensor sich meldet
while GPIO.input(GPIO_PIR)==1:
Current_State = 0
subprocess.Popen('echo PIR bereit | wall', shell=True)
# Schleife bis CTRL+C
while True :
#Status von Sensor auslesen
Current_State = GPIO.input(GPIO_PIR)
if Current_State==1 and Previous_State==0:
# Kommando zum anschalten, Frambuffer erneuern
os.system("vcgencmd display_power 1")
time.sleep(300)
Previous_State=1
elif Current_State==0 and Previous_State==1:
# Ausschalten des Monitors
os.system("vcgencmd display_power 0")
Previous_State=0
# Warten
time.sleep(0.1)
except KeyboardInterrupt:
print " Exit"
GPIO.cleanup()