ich bin noch recht neu beim programmieren mit python..
Also ich habe jetzt ein Skript geschrieben und wenn ich es in Python2 über Run Module (F5) starte läuft es wie es soll, heißt die event detect werden immer erkannt.
Wenn ich aber über den LX Terminal das Skript starte wird es zwar ausgeführt aber anscheinend nur einmal und beendet sich dann wieder?
Ich will das Programm dauerhaft im Hintergrund ausführen.
Code: Alles auswählen
#!/usr/bin/env python
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
import time
import soco
import sys
from soco.discovery import by_name
Arbeitszimmer = by_name("Arbeitszimmer")
Wohnzimmer = by_name("Wohnzimmer")
Bad = by_name("Bad")
Kueche = by_name("Kueche")
GPIO.setup(22, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_UP)
def SchalterArbeitszimmer(channel):
status_Arbeitszimmer = Arbeitszimmer.get_current_transport_info()
status_Wohnzimmer = Wohnzimmer.get_current_transport_info()
status_Bad = Bad.get_current_transport_info()
status_Kueche = Kueche.get_current_transport_info()
if GPIO.input(22) == GPIO.HIGH :
Arbeitszimmer.unjoin()
Arbeitszimmer.stop()
elif status_Arbeitszimmer['current_transport_state'] == 'PLAYING' : status_Bad = Bad.get_current_transport_info()
elif Bad.group.coordinator.player_name == "Bad" and status_Bad['current_transport_state'] == 'PLAYING' :
Arbeitszimmer.join(Bad)
Arbeitszimmer.volume = 15
elif Kueche.group.coordinator.player_name == "Kueche" and status_Kueche['current_transport_state'] == 'PLAYING' :
Arbeitszimmer.join(Kueche)
Arbeitszimmer.volume = 15
elif Wohnzimmer.group.coordinator.player_name == "Wohnzimmer" and status_Wohnzimmer['current_transport_state'] == 'PLAYING' :
Arbeitszimmer.join(Wohnzimmer)
Arbeitszimmer.volume = 15
else:
Arbeitszimmer.unjoin()
Arbeitszimmer.play_uri('x-rincon-mp3radio://http://addrad.io/4WRMHX')
Arbeitszimmer.volume = 15
Arbeitszimmer.play()
GPIO.add_event_detect(22, GPIO.BOTH, callback = SchalterArbeitszimmer, bouncetime = 200)
def SchalterKueche(channel):
status_Arbeitszimmer = Arbeitszimmer.get_current_transport_info()
status_Wohnzimmer = Wohnzimmer.get_current_transport_info()
status_Bad = Bad.get_current_transport_info()
status_Kueche = Kueche.get_current_transport_info()
if GPIO.input(23) == GPIO.HIGH :
Kueche.unjoin()
Kueche.stop()
elif status_Kueche['current_transport_state'] == 'PLAYING' : status_Bad = Bad.get_current_transport_info()
elif Bad.group.coordinator.player_name == "Bad" and status_Bad['current_transport_state'] == 'PLAYING' :
Kueche.join(Bad)
Kueche.volume = 15
elif Arbeitszimmer.group.coordinator.player_name == "Arbeitszimmer" and status_Arbeitszimmer['current_transport_state'] == 'PLAYING' :
Kueche.join(Arbeitszimmer)
Kueche.volume = 15
elif Wohnzimmer.group.coordinator.player_name == "Wohnzimmer" and status_Wohnzimmer['current_transport_state'] == 'PLAYING' :
Kueche.join(Wohnzimmer)
Kueche.volume = 15
else:
Kueche.unjoin()
Kueche.play_uri('x-rincon-mp3radio://http://addrad.io/4WRMHX')
Kueche.volume = 15
Kueche.play()
GPIO.add_event_detect(23, GPIO.BOTH, callback = SchalterKueche, bouncetime = 200)
def SchalterBad(channel):
status_Arbeitszimmer = Arbeitszimmer.get_current_transport_info()
status_Wohnzimmer = Wohnzimmer.get_current_transport_info()
status_Bad = Bad.get_current_transport_info()
status_Kueche = Kueche.get_current_transport_info()
if GPIO.input(24) == GPIO.HIGH :
Bad.unjoin()
Bad.stop()
elif status_Bad['current_transport_state'] == 'PLAYING' : status_Bad = Bad.get_current_transport_info()
elif Arbeitszimmer.group.coordinator.player_name == "Arbeitszimmer" and status_Arbeitszimmer['current_transport_state'] == 'PLAYING' :
Bad.join(Arbeitszimmer)
Bad.volume = 15
elif Kueche.group.coordinator.player_name == "Kueche" and status_Kueche['current_transport_state'] == 'PLAYING' :
Bad.join(Kueche)
Bad.volume = 15
elif Wohnzimmer.group.coordinator.player_name == "Wohnzimmer" and status_Wohnzimmer['current_transport_state'] == 'PLAYING' :
Bad.join(Wohnzimmer)
Bad.volume = 15
else:
Bad.unjoin()
Bad.play_uri('x-rincon-mp3radio://http://addrad.io/4WRMHX')
Bad.volume = 15
Bad.play()
GPIO.add_event_detect(24, GPIO.BOTH, callback = SchalterBad, bouncetime = 200)