Hallo Freunde. Mein problem momentan:
Starte ich WebIOPi im "Debug-Modus" so führt er die Funktion "subprocess.call" so aus, wie ich es gerne hätte und alles funktioniert top.
Sobald ich aber WebIOPi "richtig" starte(mittels sudo service webiopi start) funktioniert das ganze nicht mehr. Ich bin total überfragt, vorallem weil der Debug-Modus keine Fehler anzeigt.
Hier einmal mein Script, falls das etwas hilft.
Python
#!/usr/bin/python
# -*- coding: utf-8 -*-
import webiopi
import datetime
from time import sleep
import os
import subprocess
import time
GPIO = webiopi.GPIO
Gruen = 17 # GPIO pin using BCM numbering
Gelb = 27
Rot = 22
Alarmausgang = 23
Alarmeingang = 24
test = 7
# Funktionen der GPIO's setzen
def setup():
# set the GPIO used by the light to output
GPIO.setFunction(Gruen, GPIO.OUT)
GPIO.setFunction(Rot, GPIO.OUT)
GPIO.setFunction(Gelb, GPIO.OUT)
GPIO.setFunction(Alarmausgang, GPIO.OUT)
GPIO.setFunction(Alarmeingang, GPIO.IN)
webiopi.sleep(1)
# Alarm aktiviert + kein Kontakt = Email
def loop():
if (GPIO.digitalRead(Alarmeingang) == GPIO.LOW) and (GPIO.digitalRead(Alarmausgang) == GPIO.HIGH):
os.system("fswebcam -r 640x480 -d /dev/video0 -v /home/pi/alarm.jpg")
subprocess.Popen('sudo python Alarmmail.py', shell=True)
subprocess.Popen('sudo python yowsup-cli -c config.example -s Meine Handynummer "Ein Alarm wurde aktiviert. Überprüfe deine Mails. Ich habe dir ein Bild gesendet."', shell=True)
#Wenn der Alarm aktiviert wird fängt die rote LED im 0.4s Abstand zu blinken
if (GPIO.digitalRead(Alarmausgang) == GPIO.HIGH):
GPIO.digitalWrite(Rot, GPIO.HIGH)
webiopi.sleep(0.4)
GPIO.digitalWrite(Rot, GPIO.LOW)
webiopi.sleep(0.4)
#Wenn der Alarm deaktiviert wurde, wird die rote Zustandled ausgestellt
if (GPIO.digitalRead(Alarmausgang) == GPIO.LOW):
GPIO.digitalWrite(Rot, GPIO.LOW)
# Funktionen bei Beendigung zurücksetzen
def destroy():
GPIO.digitalWrite(Gruen, GPIO.LOW)
GPIO.digitalWrite(Rot, GPIO.LOW)
GPIO.digitalWrite(Gelb, GPIO.LOW)
GPIO.digitalWrite(Alarmausgang, GPIO.LOW)
Alles anzeigen