Philipp238
Posts: 1
Joined: Thu Nov 23, 2017 9:43 pm

HDMI CEC Powerstatus

Thu Nov 23, 2017 10:05 pm

Hallo zusammen,

ich habe auf meinen Raspberry ein Script laufen welches mir den Bildschirm über HDMI CEC ein und ausschaltet. Das ganze wird über einen Bewegungsmelder gesteuert und funktioniert super.
Allerdings soll der Bildschirm auch noch über eine PHP-Script ein und wieder ausgeschalten werden.
Wenn nun allerdings jemand am Bewegungsmelder vorbeikommt wird das Script aktiviert und ganz normal abgearbeitet. Was zu folge hat, dass der Bildschrim wieder ausgeht, wenn sich niemand mehr bewegt.
Ist es möglich den Powerstatus abzufragen und wenn dieser bereits auf "on" steht, dass das Script pausiert wird bis der Powerstatus wieder auf "off" gesetzt wird?

Hier der bisherige Code:

Code: Select all

#!/usr/bin/python

# Import der Python libraries
import RPi.GPIO as GPIO
import time
import datetime
import subprocess

# GPIO definieren,
PIR_PIN = 7
Led = 11


#Board Mode
GPIO.setmode(GPIO.BOARD)


print "Displayausgabe (CTRL-C zum Beenden)"
print "========================================="

#GPIO als Input definieren
GPIO.setup(PIR_PIN, GPIO.IN)
#Led GPIOs definieren
GPIO.setup(Led, GPIO.OUT)
GPIO.output(Led, GPIO.HIGH)

Read  = 0
State = 0


print "%s: Sensor initialisieren ..." % datetime.datetime.now()

 # Warten bis Sensor sich meldet
while GPIO.input(PIR_PIN) !=0:
   time.sleep(0.1)
print "%s: Fertig! Warte auf Bewegung..."  % datetime.datetime.now()

 # Schleife bis CTRL+C
def MOTION (PIR_PIN):
   print " %s: Bewegung erkannt!" % datetime.datetime.now()
   GPIO.output(Led, GPIO.LOW) #LED an
# Standby deaktivieren
#1. standby to weak up from standby 
#2. wake up from standby to on n. LPD
   subprocess.Popen('echo "on 0" | sudo cec-client -s -d 1', shell=True)
   subprocess.Popen('echo "on 0" | sudo cec-client -s -d 1', shell=True)
   time.sleep(0.5)
   subprocess.Popen('sudo chvt 6 && sudo chvt 7', shell=True)


try:
  #Ereignis definieren:
  GPIO.add_event_detect(PIR_PIN, GPIO.RISING, callback=MOTION)
  while True:
# Standby aktivieren
     subprocess.Popen('echo "standby 0" | sudo cec-client -s -d 1', shell=True)
     print "%s: Fertig! Warte auf Bewegung..."  % datetime.datetime.now()
     GPIO.output(Led, GPIO.HIGH)#LED aus

     time.sleep(60)

except KeyboardInterrupt:
         print "Exit"
         GPIO.cleanup()

Ich hoffe mir kann jemand weiterhelfen :)

Gruß
Philipp

smartifahrer
Posts: 1038
Joined: Sat Feb 13, 2016 8:10 am

Re: HDMI CEC Powerstatus

Sun Nov 26, 2017 9:00 am

Vielleicht hilft dir das weiter viewtopic.php?t=97492

Return to “Deutsch”