Hallo zusammen,
ich habe nach wie vor die Anforderung, meine beiden potentialfreien Klingeltaster über den Rpi und SIP mit der Fritzbox zu verbinden, d.h. Klingeltaster sollen SIP-Call starten und dann unterschiedliche Telefone klingeln lassen. Das funktioniert mit dem Tool spickt einzeln auch ganz gut. Jetzt möchte ich aber bei Klingeln gleichzeitig abfragen (Postboten-Syndrom, klingeln meist parallel), ohne dafür einen separaten Raspberry für die zweite Klingel einsetzen zu müssen. Mein Python-Skript sieht wie unten beschrieben aus, ich dachte dass es mit Thread gehen müsste, aber es wird immer nur die zuerst gedrückte Klingel ausgewertet und abgearbeitet. Hat jemand eine Idee, wie man das mit einem Skript und einem Raspberry hinbekommt?
Skript:
#!/usr/bin/python
import os
import RPi.GPIO as GPIO
import time
import thread
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
Klingelt1 =0
Klingelt2 =0
while True:
if(GPIO.input(23) ==1 and Klingelt1 ==0):
Klingelt1 = 1
print "Start Klingel 1"
thread.start_new_thread(os.system,('./sipcmd -P sip -p5061 -u 623 -c ***** -w fritz.box -x "c**624;w300;h"',))
#thread.start_new_thread(os.system,('touch test1',))
if(GPIO.input(23) ==0 and Klingelt1 ==1):
print "Ende Klingel 1"
Klingelt1 = 0
if(GPIO.input(24) ==1 and Klingelt2 ==0):
Klingelt2 = 1
print "Start Klingel 2"
thread.start_new_thread(os.system,('./sipcmd -P sip -p5061 -u 623 -c ***** -w fritz.box -x "c**52;w300;h"',))
#thread.start_new_thread(os.system,('touch test2',))
if(GPIO.input(24) ==0 and Klingelt2 ==1):
print "Ende Klingel 2"
Klingelt2 = 0
#print "Sleep 1 sec"
time.sleep(0.05)
GPIO.cleanup()