Türklingel Überwachung

Der Paketbote (DHL) kommt immer dann, wenn ich im Garten bin und die Klingel nicht höre. Man müsste doch was machen könnten, um eine Nachricht zu bekommen, wenn jemand klingelt…

* direkt was an die Klingel anschliessen und das dann irgendwie übermitteln. * ein Babyfon nutzen * Geräusch/Tonanalyse

Nachdem ich mich mit FFT, Mikrofonaufnahme und so weiter beschäftigt hatte, ging die Bestellung für ein Elektret Mikrofon nach China. Es sollte ein ESP werden, der Transportabel ist, und vielleicht noch mehr macht.

Nachdem mein Paystation-Eye ja auch ein Mikrofon hat - das allerdings von Snips benutzt wird - konnte ich da ja schon mal loslegen.

Ja, es funktioniert. Die Software hört jeweils 0.1s zu, analysiert dann und bei bestimmten Frequenzen wird dann ein Signal getriggert. Das funktioniert sowohl mit Türklingel als auch mit dem Telefon. Um die korrekten Frequenzen raus zu finden habe ich am Mac ein kostenloses FFT-Programm gefunden, die Daten dann ausgeben lassen und mit try and error gespielt.

Die Information an mein Handy übermitteln war das nächste Problem.

Anrufen ist theoretisch einfach. Aber sowohl ein direkter Aufruf mit

baresip -e "/dial sip: 00482635552362@192.168.178.1"

als auch, nachdem ich das Modul cons.so in ~/.baresip/conf eingetragen hatte mit

echo -n 00482635552362 | nc -u 127.0.0.1 5555

führt dazu, dass man im baresip drin ist und sich das Ding auch nach Annehmen oder Ablehnen des Anrufs nicht beendet. Gefrustet hab ich es dann wohl auf die schlimmst mögliche Art gemacht. Ich starte den Anruf und kille den Prozess nach einigen Sekunden. Dann starte ich das Auflegen und kille auch das nach einer Sekunde und zum Schluss beende ich baresip mit - ja genau einem kill. Steinigt mich nicht, gebt mir eine bessere Idee :o)

Jetzt ohne kill, aber nicht viel besser. Und auch hier habe ich am Handy beim Anruf einen anderen Klingelton eingestellt, damit ich weiß, warum der Anruf sofort wieder aufhört, bevor ich dran gehen kann. Ob die Einstellung im handy 'keine Mailbox' was bringt - dass ich also keine SMS über verpasste Anrufe bekomme muss ich noch probieren.

#!/bin/bash
baresip -e "/dial sip: 00482635552362@192.168.178.1" &
#echo "d 00482635552362" | nc 127.0.0.1 5555 &
sleep 8
echo "/hangup" | nc 127.0.0.1 5555 &
sleep 5
echo "/quit" | nc 127.0.0.1 5555 &

Die China Bestellung ist jetzt da, und ich brauche sie aktuell nicht mehr. Zusatzprogrammierung: Snips benötigt das Mikro ja nur, wenn ich zu Hause bin. Also beendet meine meine Abwesenheitserkennung das Zuhören von Snips und startet die Analyse der Klingeltöne und umgekehrt.
Klappt wohl noch nicht perfekt, da es bei zu schnellem anwesend/abwesend Wechsel einmal nicht funktioniert hat.

Damit es auch mit root-Rechten funktioniert, musste ich den .baresip Ordner nach root kopieren. Da es beim ersten mal einen coredump gab, ging nichts mehr. man musste erst die Datei „/tmp/dtmf.out“ löschen, dann war wieder alles gut.

Falls es noch nirgends steht: In .baresip/accounts muss man den Zugang zur fritz.box eintragen

Stand Juni 2020