Anwahl einer externen Rufnummer mit DoorPI
Normalerweise hatte ich unsere Türsprechanlage so konfiguriert, dass eine Interne Nummer von der Fritzbox angesteuert wird z.B. **610.
Über die DoorPI Konfiguration kann man jedoch auch eine externe Rufnummern bzw. das Handy anleuten lassen:
[EVENT_OnKeyPressed_onboardpins.1]
10 = ipsrpc_setvalue:12345,True
20 = call:0944112345
Hier wird mit dem Tastendruck eine Symcon Variable für den Gong sowie die LED-Leiste angesteuert, sowie der Ruf auf eine Externe Nummer.
Rufumleitung in der Fritzbox einstellen.
In der Fritzbox kann über die Menüpunkte Telefonie → Rufbehandlung → Rufumleitung eine neue Umleitung eingetragen werden:
Diese kann dann von der Oberfläche aus sowie jedem Fritz Dect Telefon de-/aktiviert werden.
Damit wird die obige Aktion 20 vom Festnetz aufs Handy geleitet, was dann mit geringer Lautstärke neben uns liegt.
Damit der Türgong abgeschaltet wird, muss jedoch eine Szene in Symcon erstellt werden.
Rufumleitung der Türsprechanlage (Silent Mode) in Symcon
Hier mein Aktionsskript in Symcon, welches meine Rufumleitung steuert.
Aktiviert man die Szene, wird der Gong deaktiviert, sowie die Festnetznummer aufs Handy geleitet.
Die grün-blinkende LED-Leiste stört nicht weiter und soll sogar bleiben.
<?php //Dokumentation: https://www.symcon.de/service/dokumentation/konzepte/skripte/aktionsskripte/ SetValue($_IPS['VARIABLE'], $_IPS['VALUE']); if (GetValue(23456) == true) { // Aktiviere Szene. SetValueBoolean(12345, false); $einAus = "on"; } else { // Deaktiviere Szene. SetValueBoolean(12345, true); $einAus = "off"; } $fritzbox_ip = '192.168.XXX.X'; $password = 'FRITZBOXPASSWORT'; $ch = curl_init('http://192.168.XXX.X/login_sid.lua'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $login = curl_exec($ch); $session_status_simplexml = simplexml_load_string($login); if ($session_status_simplexml->SID != '0000000000000000') { $SID = $session_status_simplexml->SID; } else { $challenge = $session_status_simplexml->Challenge; $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $password, "UCS-2LE", "UTF-8")); curl_setopt($ch, CURLOPT_POSTFIELDS, "response={$response}&page=/login_sid.lua"); $sendlogin = curl_exec($ch); $session_status_simplexml = simplexml_load_string($sendlogin); if ($session_status_simplexml->SID != '0000000000000000') { $SID = $session_status_simplexml->SID; } else { echo "Fehler: Login fehlgeschlagen"; return; } } //$einAus = "on"; //echo "http://{$fritzbox_ip}/fon_num/rul_list.lua?sid={$SID}"; //echo ($einAus == "on" ? "&rul_0=0&rul_1=0&" : "") . "apply="; $ch = curl_init("http://{$fritzbox_ip}/fon_num/rul_list.lua?sid={$SID}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $rc1=curl_setopt($ch, CURLOPT_POSTFIELDS, ($einAus == "on" ? "&rul_0=1&rul_1=1&" : "&rul_0=0&rul_1=0&") . "apply="); $rc2=curl_exec($ch); curl_close($ch); ?>
In der ersten IF-Abfrage sorge ich dafür, dass die ganze Szene de-/aktiviert werden kann. Über den Status der 12345 Variable steuere ich dann Gong & Blinklicht.
Das Blinklicht hat zusätzlich eine Erkennung, ob und auf welchem Wert es VOR der Haustüraktion stand, sodass es nach ca. 20x Blinken dorthin zurückkehren kann.
Dann beginnt eine komplexere Initialisierung der CURL Befehle für die Fritzbox. In den letzten 5 Zeilen wird dann endgültig die Rufumleitung de-/aktiviert.
Den genauen Befehl musste ich auch erst aus der Fritzbox-Oberfläche mit den Entwicklertools des Chrome-Browsers ermitteln.
Hier die finale Szene auf der Visualisierung, womit wir mit einem Klick die Türsprechanlage umleiten können:
Die Szene könnte natürlich auch zeitlich gesteuert werden, da die Schlafzeiten aber oftmals unterschiedlich sind, machen wir den einen Schaltvorgang bisher manuell am Wandtablet, PC oder eines der Smartphones.