Danke für Deine Antworten.
Zu den Themen:
Das Deine .log nicht von meiner abweicht, habe ich jetzt auch festgestellt. Es ist jedoch so, dass ich bei der ersten Bearbeitung im Hauptforum von "cubeschrauber" eine .log bekommen habe, in der zu sehen ist, das als SIP Server mit einer "Asterisk" gearbeitet wird. Als SIP Value wird 180 zurückgegeben, nicht 183 wie bei uns. Dort funktioniert das Abspielen der .wav Datei, auch für mich nachvollziehbar.
Hier der meines Erachtens wichtige Teil der Logdatei:
Entscheidend sind die Zeilen:
2015-10-08 19:12:53,417 [INFO]
2015-10-08 19:12:53,431 [INFO]
denn dort ist zu erkennen, dass die .wav tatsächlich abgespielt wird.
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 192.168.100.221:5060;branch=z9hG4bK.KlQy75VsD;received=192.168.100.124;rport=5060
From: "DoorPi" <sip:doorpi@192.168.100.220>;tag=-xp0zmE8~
To: sip:10@192.168.100.220;tag=as6a894609
Call-ID: VyaBuq-G8t
CSeq: 21 INVITE
Server: Asterisk PBX 1.8.13.1~dfsg1-3+deb7u3
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Contact: <sip:10@192.168.100.220:5060>
Content-Length: 0
2015-10-08 19:12:53,412 [INFO] [doorpi.sipphone.from_linphone] channel [0xe4e920] [479] bytes parsed
2015-10-08 19:12:53,413 [INFO] [doorpi.sipphone.from_linphone] Found transaction matching response.
2015-10-08 19:12:53,414 [INFO] [doorpi.sipphone.from_linphone] New client dialog [0xea9568] , local tag [-xp0zmE8~], remote tag [as6a894609]
2015-10-08 19:12:53,415 [INFO] [doorpi.sipphone.from_linphone] Dialog [0xea9568]: now updated by transaction [0xe3e810].
2015-10-08 19:12:53,416 [INFO] [doorpi.sipphone.from_linphone] op [0x73302b40] : set_or_update_dialog() current=[(nil)] new=[0xea9568]
2015-10-08 19:12:53,417 [INFO] [doorpi.sipphone.from_linphone] Op [0x73302b40] receiving call response [180], dialog is [0xea9568] in state [BELLE_SIP_DIALOG_EARLY]
2015-10-08 19:12:53,418 [INFO] [doorpi.sipphone.from_linphone] Doing SDP offer/answer process of type outgoing
2015-10-08 19:12:53,419 [INFO] [doorpi.sipphone.from_linphone] Linphone core [0xe24810] notifying [display_status]
2015-10-08 19:12:53,419 [INFO] [doorpi.sipphone.from_linphone] ms_filter_unlink: MSRtpRecv:0x73302e28,0-->MSVoidSink:0x733293f0,0
2015-10-08 19:12:53,420 [INFO] [doorpi.sipphone.from_linphone] speex_lib_ctl init with neon ? 0
2015-10-08 19:12:53,430 [INFO] [doorpi.sipphone.from_linphone] Configuring resampler input with rate=[44100], nchannels=[2]
2015-10-08 19:12:53,431 [INFO] [doorpi.sipphone.from_linphone] MSFilePlayer[0xe85540]: /home/pi/bigbenstrikes.wav opened: rate=44100,channel=2
2015-10-08 19:12:53,432 [INFO] [doorpi.sipphone.from_linphone] configuring resampler output to rate=[44100], nchannels=[2]
2015-10-08 19:12:53,433 [INFO] [doorpi.sipphone.from_linphone] ms_filter_link: MSFilePlayer:0xe85540,0-->MSDtmfGen:0xe8a450,0
2015-10-08 19:12:53,433 [INFO] [doorpi.sipphone.from_linphone] Priority used: 99
Alles anzeigen
Einen Verdacht hierzu habe ich noch: Bitte nicht verärgert sein, aber ich frage es trotzdem einmal.
Besteht die Möglichkeit, dass Deine .wav Datei keine vom Standardrufton abweichende Melodie beinhaltet, Du also lediglich einen Rufton während der Rufphase hörst?
Sollte das so sein, könnte das der Rufton der Fritzbox sein, nicht der Deiner .wav Datei.
Meine .wav habe ich als Anhang beigelegt. Die Lautstärke habe ich um 25dB reduziert, da der Ton sonst noch einige Häuser weiter zu hören wäre.
Zum Record File:
Es werden auch bei mir Recordfiles erzeugt und zwar wird vom Klingeltasterdruck an aufgezeichnet. Jedoch ist während der Rufphase nur der Rufton zu hören. Das Mikrofon ist leider nicht scharfgeschaltet.
Fehler in der mailto.py
Die Anweisung "import subprocess as subprocess" passt nicht zur Programmzeile "retcode = sub.call(command, shell=True)". Dort muss "sub.call" durch "subprocess.call" ersetzt werden.
import subprocess as subprocess
def createSnapshot():
snapshot_file = '/tmp/doorpi.jpg'
size = doorpi.DoorPi().config.get_string('DoorPi', 'snapshot_size', '1280x720')
#command = "fswebcam --no-banner -r " + size + " " + snapshot_file
command = "php /usr/local/etc/DoorPi/tools/take_snapshot_doorpi.php" + " " + snapshot_file
try:
retcode = sub.call(command, shell=True)
Modifikation in der mailto.py für den Einsatz von php anstelle von fswebcam
#command = "fswebcam --no-banner -r " + size + " " + snapshot_file
command = "php /usr/local/etc/DoorPi/tools/take_snapshot_doorpi.php" + " " + snapshot_file
Fehler in der take_snapshot.py
Mit jedem Aufruf von take_snapshot wird ein Snapshot erzeugt und im vorgesehenen Verzeichnis abgelegt. Die Anzahl habe ich auf 10 Snapshots begrenzt. Das Problem taucht auf, wenn der 11. Snapshot erzeugt wird. Dann wird die alte Datei 10.jpg ersetzt und nicht die 1.jpg. Das bleibt auch bei allen weiteren Snapshots so. Ich habe das so verstanden, dass die Dateien 1.jpg - 10.jpg rollierend ersetzt werden sollen.
Hierfür habe ich dann bei mir den Zweig:
elif (lastNr == max) :
lastNr = 1
eingefügt. Damit werden die .jpg dann rollierend ersetzt.
def take_snapshot(size, path, max):
if not os.path.exists(path):
logger.info('Path (%s) does not exist - creating it now', path)
os.makedirs(path)
lastFile = getLastFilename(path)
lastNr = 1
if (len(lastFile) > 0):
lastNr = int(lastFile[:lastFile.rfind(".jpg")])
if (lastNr+1 <= max):
lastNr = lastNr + 1
elif (lastNr == max):
lastNr = 1
else:
lastNr = 1
imageFilename = path + str(lastNr) + ".jpg"
Alles anzeigen
Modifikation in der take_snapshot.py für den Einsatz von php anstelle von fswebcam
# command = "fswebcam --top-banner -b --font luxisr:20 -r " + size + " " + imageFilename
command = "php /usr/local/etc/DoorPi/tools/PHP5/take_snapshot_doorpi.php" + " " + imageFilename
Abschließend noch die php Scripts.
Da ich nicht wirklich ein Programmierer bin, bitte ich um Nachsicht bei der Bewertung der Scripts. Es geht nur geradeaus mit dem, was ich mir zusammen gesucht habe.
take_snapshot_doorpi.php
Hier wird ein Snapshot der raspicam erzeugt. Über argv[1] wird beim Aufruf mitgegeben, wo der Snapshot abgelegt werden soll. Dadurch kann das Script sowohl für mailto.py als auch take_snapshot.py verwendet werden.
<?php
#! /usr/bin/php -q
$snapshot_file = $argv[1];
$url="http://192.168.xxx.xxx:9000/?action=snapshot";
copy($url,$snapshot_file);
fhem_Rolltor.php
Der FHEM Host erhält eine UDP und erzeugt letztendlich einen Tastendruck zur Betätigung des Rolltors.
<?php
#! /usr/bin/php -q
$timestamp = time();
$datum = date("Ymd-Hi", $timestamp);
$fhemhost = "192.168.xxx.xxx";
$fhemport = 7072;
$fsock = fsockopen($fhemhost, $fhemport, $errno, $errstr, 30);
$fcmd = "set FB_1_P7 off\r\nquit\r\n";
fwrite($fsock, $fcmd);
Alles anzeigen
Hoffentlich habe ich die Punkte verständlich rüberbringen können.
Gruß
Ewald