Bei Alarm -> Anruf, telefonisches Alarm-/ Meldesystem

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Antworten
Dre@s
Beiträge: 21
Registriert: 22.11.2009, 14:14
Wohnort: Stolpen Sa., Deutschland

Bei Alarm -> Anruf, telefonisches Alarm-/ Meldesystem

Beitrag von Dre@s » 12.09.2010, 23:02

>> Asterisk & Fritzbox als Alarmserver für die Homematic CCU <<

Diese Anleitung stellt eine Möglichkeit vor, Alarme aus HomeputerCL auf einem WLAN/SIP- fähigen
Handy mittels Alarmanruf auszugeben. Funktioniert auch ohne externen SIP-Provider, ohne Telefoniekosten, nur
mit der Fritzbox und dem Telefon per WLAN.

Ich weise ausdrücklich darauf hin, das Änderungen an der Firmware der Fritzbox zum Erlöschen der
Garantie führen kann und auf eigene Gefahr erfolgt.
Ich übernehme keinerlei Haftung für Schäden die aus der Verwendung dieser Anleitung entstehen.


Voraussetzungen:
1. FritzBox oder alternativ einen Linux-PC
2. Asterisk (Open Source)
3. Homematic CCU, ggf. HomeputerCL
4. WLAN-/SIP- fähiges Handy / Telefon

1.) Installation von Asterisk auf der FritzBox oder alternativ auf einen Linux-Rechner
gemäß Anleitung Link: http://www.juerging.net/projekte/Fritzbox-Asterisk/

Telnet der FB de-/aktivieren: über Telefon eingeben #96*7* (zum ausschalten #96*8*)
Console starten: mit Putty oder Windows telnet 192.168.178.1
Zum Anmelden im Webinterface (http://fritz.box) eingestelltes Passwort eingeben

In der Console eingeben:

Code: Alles auswählen

cd /var
wget http://spblinux.de/fbox.new/cfg_asterisk16
chmod 755 cfg_asterisk16
./cfg_asterisk16 install (mit USB-Stick, ./cfg_asterisk16 usb_install)
Ich selbst habe Asterisk auf einem USB-Stick an der FB installiert und als Netzwerk-
Laufwerk sowie FTP über die Konfigurationsoberfläche der FB freigegeben, das hat die
Konfiguration von Asterisk und spätere Änderungen ungemein erleichtert.

2.) Handy als SIP-Telefon in der Konfigurationsoberfläche der Fritzbox unter
Telefoniegeräte > Neues Gerät einrichten > Telefon > LAN/WLAN (IP-Telefon) anmelden

unter Internettelefonie neues Internettelefon definieren:
Internettelefonie-Anbieter: anderer Anbieter
Internetrufnummer: 46
Benutzername: 46
Kennwort: YourPasswordHere
Registrar: 192.168.178.1:5061
Internetrufnummer für die Anmeldung verwenden aktivieren
alles andere so belassen
Wiederum unter Telefoniegeräte >> LAN/WLAN (IP-Telefon) einstellen das das Telefon
unter der eingehenden Nummer 46 regieren soll

Link zur Anleitung: http://knevels.org/2009/06/23/wlan-hand ... ox-nutzen/

3.) Umleitung des Spooldirectories auf den USB-Stick (für die Verwendung der von
Homeputer automatisch erstellten Alarm- Call-Files), Bsp:

Code: Alles auswählen

	[directories]
	.
	.
	astspooldir => /var/media/ftp/Name_des_USB_Sticks_hier_eingeben/addons/home/spool/asterisk
4.) Änderung des SIP-Ports für Asterisk in der sip.conf, Bsp:
(Der SIP-Port von Asterisk muß 5061 sein, da 5060 bereits von der Fritz!Box selbst
belegt ist.)

Code: Alles auswählen

	[general]
	bindport=5061
	bindaddr=0.0.0.0
und Anlegen der Telefone in der sip.conf, Bsp:

Code: Alles auswählen

	; Softphone XLite
	[46]
	type=friend
	context=SIPTEL
	username=46
	secret=YourPasswordHere
	host=dynamic
	nat=yes                        
	callerid="SIP PC-Softphone" <46>
	domain=192.168.178.1
	mailbox=46
	canreinvite=yes                
	disallow=all
	allow=gsm                      
	allow=ulaw
	allow=alaw
5.) Erstellung eines Dialplanes in der extensions.conf, Bsp:
(Der hier vorgestellte Dialplan wird bei abnehmen des Hörers vom Telefon, also
bei erfolgreicher Verbindung, abgearbeitet und bewirkt die akustische Ausgabe
eines entsprechenden Meldungstextes. Bedingung ist die Installation einer
Sprachengine, siehe hierzu entspr. Anleitung in nachfolgenden Links.)

Code: Alles auswählen

	[pa-call-file]
	exten => 10,1,Answer()
	exten => 10,n,Wait(1)
	exten => 10,n,Playback(pa-message)
	exten => 10,n,Wait(1)
	exten => 10,n,Hangup()
6.) Erstellung eines Bash-Scriptes für die Verbindung HomeputerCL <-> Fritzbox
und Ausführung des Scriptes im Hintergrund. (Hatte versucht das Script periodisch
mittels System.Exec über die WebUI der CCU laufen zu lassen was aber zum hängen
bis zum Totalausfall der CCU führte. Deshalb läuft das Script jetzt eigenständig
in einer progr. Endlosschleife. Die Crontab der CCU ließ sich dazu leider nicht
verwenden ohne zusätzliche Installation), Bsp:

Code: Alles auswählen

	#!/bin/sh
	while [ -1 -le 1 ] ; do
	if [ -e ./alarm_log.txt ];
	  then
	    rm ./alarm_log.txt
	   sleep 1
	    touch alarm_log.txt
	  else
	    touch alarm_log.txt
	fi
	#
	if [ -e ./alarm.call ];
	  then
	     ftpput -u root -p YourPasswordHere fritz.box Name_des_USB-Sticks_hier_eingeben/addons/home/spool/asterisk/outgoing ./alarm.call
	    date +%d.%m.%Y-%H:%M:%S 1>alarm_log.txt
	    echo "Alarm wurde gesendet !"  1>>alarm_log.txt
	   sleep 5
	    rm ./alarm.call
	  else
	    date +%d.%m.%Y-%H:%M:%S 1>alarm_log.txt
	    echo "Kein Alarm vorhanden !" 1>>alarm_log.txt
	fi
	sleep 60
	 done
	exit 0
Start des Scriptes in der Console im aktuellen Verzeichnis mit

Code: Alles auswählen

	./call_alarm.sh &
7.) Erzeugung entspr. Callfiles in HomeputerCL gemäß nachfolg. Schema, Bsp:

Code: Alles auswählen

	//So siehts dann im Callfile aus
	//Channel: SIP/46
	//callerid: TESTALARM
	//MaxRetries: 2
	//RetryTime: 60
	//WaitTime: 30
	//Context: pa-call-file
	//Extension: 10

	Data:= ""
	Datei:= ""

	Datei:= "alarm.call"
	 wenn Nicht Dateivorhanden(Datei) dann
	  Data:= "Channel: SIP/" + AlarmTextTelNr
	  SchreibeDatei(Datei,Data,2)
	  Data:= "callerid: " + AlarmTextTel
	  SchreibeDatei(Datei,Data,2)
	  Data:= "MaxRetries: 2"
	  SchreibeDatei(Datei,Data,2)
	  Data:= "RetryTime: 60"
	  SchreibeDatei(Datei,Data,2)
	  Data:= "WaitTime: 30"
	  SchreibeDatei(Datei,Data,2)
	  Data:= "Context: pa-call-file"
	  SchreibeDatei(Datei,Data,2)
	  Data:= "Extension: 10"
	  SchreibeDatei(Datei,Data,2)
	endewenn
Das ganze funktioniert nun folgendermaßen:

HomeputerCL erstellt bei Auslösung eines Alarmes ein Callfile nach dem Schema siehe Pkt. 7, im Callfile steht unter CallerID der String
der Alarmmeldung (wird ansonsten verwendet um dem Anrufer mitzuteilen wer anruft). Das Bash-Script welches im minütlichen Intervall läuft
verschiebt das erzeugte Callfile in das Spoolverzeichnis von Asterisk auf dem USB-Stick an der Fritzbox. Asterisk erkennt das Verhandensein
eines Callfiles und führt die darin definierte Rufnummernwahl aus. Das Telefon klingelt wenn nicht abgenommen wird 3-mal, im Display erscheint
die definierte Alarmmeldung als Text. Wenn eine Sprachengine installiert wurde kann die Alarmeldung auch als Text to Speech bei Abnahme des
Hörers ausgegeben werden.

Weitere Informationen zu Asterisk erhalten Sie unter:
Asterisk 1.4 + 1.6 das Buch Link: http://www.das-asterisk-buch.de/2.1/bk01-toc.html

Die Windows Version des PC-Softphones X-Lite 3.0 erhalten Sie unter:
http://xlite.counterpath.com/download/win32_100106

Viel Spaß beim probieren

HomputerCL Studio V. 3.1/100901
VisuWin V. 2.03/100828
ExecEngineWin V. 2.1/100412
Modtab. V. 1.22/100825
CCU Firmware V. 1.502
PC Windows Vista Home Premium SP1
Dateianhänge
13092010015.jpg
Was denkt ein Computer? - "Gott ist gross, der Mensch ist klein, ich muss wohl dazwischen sein ..."

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“