Ich lasse mir ja per Telegram eine Push-Nachricht inkl. Bild auf mein Handy zusenden, wenn es an der Haustür geklingelt hat. Nun kann es aber auch interessant sein, Gespräche mit dem DoorPi über das Handy zu führen, wenn man nicht zuhause ist.
Auch dafür bietet der DoorPi eine Möglichkeit, nämlich mit dem kleinen Kommando "file_call_value:", das an entsprechender Stelle und mit entsprechendem Datei-Link versehen in die doorpi.ini einzufügen ist.
Maßnahmen im DoorPi
Zunächst muss im Verzeichnis "/usr/local/etc/DoorPi" eine Datei (z.B. "rufumleitung.txt") angelegt werden, in die die anzurufende Rufnummer eingetragen wird.
Bei mir ist das die in der FRITZ!Box hinterlegte Nummer 11 für den Gruppenruf der SIP-Türsprechanlage. Nano anschließend mit "Strg-X" und "J" beenden und der Datei "rufumleitung.txt" mit
die notwendigen Ausführungs-, Schreib- und Leserechte verpassen.
In der
doorpi.ini wird nun der Befehl
ersetzt durch
Code: Alles auswählen
[EVENT_OnKeyPressed_onboardpins.0]
10 = file_call_value:/usr/local/etc/DoorPi/rufumleitung.txt
Das war's auch schon.
Maßnahmen auf der CCU
Auf der CCU sollte
CUxD installiert und das Gerät "
CUxD.CUX2801001:1.CMD_EXEC" eingerichtet sein. Hier eine Kurzanleitung zur Einrichtung des CUxD-Geräts:
- Unter CUxD-Gerätetyp das Gerät "(28) System-Exec" auswählen und den Rest am besten unverändert lassen (Seriennummer: 1, etc.).
- Anschließend auf "Gerät auf CCU erzeugen!" klicken.
- Danach in WebUI in den Posteingang für neue Geräte gehen und den neuen Gerätetyp bestätigen.
- Zur Sicherheit CCU neu booten.
Weitere Informationen zum Thema findet ihr an
dieser Stelle. Wer mag, kann dem Gerätetyp unter Geräte auch noch einen neuen Namen geben. Bei mir heißt er z.B. "CCU CUxD Exec" bzw. der entsprechende Kanal 1 "CCU CUxD Exec 1". Das ist aber nicht notwendig. Man kann den Eintrag auch unverändert lassen, da der Aufruf stets mit
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC") erfolgt, also unabhängig vom vergebenen WebUI-Namen ist.
Damit nun automatisch zwischen internem und externen Ruf umgeschaltet werden kann, empfiehlt sich das Beschreiben der obigen Datei "rufumleitung.txt" z.B. in Abhängigkeit von einer Änderung des Anwesenheitszustands. Zudem muss die CCU die notwendigen Rechte erhalten, um auf die Datei "rufumleitung.txt" zugreifen zu können.
Falls ihr noch eine CCU2 oder älter habt, sollte als erstes das Addon "ssh-keydir" unter Zusatzsoftware installiert werden. Dieses findet sich z.B.
hier zum Download. Nach der Installation von "ssh-keydir" einen Neustart der CCU durchführen. Für die CCU3 ist "ssh-keydir" obsolet, da dessen Funktionalität bereits integriert ist. Anschließend ist es notwendig, sich als
root auf der CCU einzuloggen und folgende Kommandos einzeln nacheinander auszuführen:
Code: Alles auswählen
1. mount -o remount,rw /
2. ssh-keygen -b 2048 -t rsa
3. Nach Hinweis "Enter file in which to save the key (/root/.ssh/id_rsa):" Return drücken
4. Nach Hinweis "Enter passphrase (empty for no passphrase):" Return drücken
5. Nach Hinweis "Enter same passphrase again:" Return drücken
6. cat /root/.ssh/id_rsa.pub | ssh pi@<IP-Adresse des DoorPi> 'cat >>/home/pi/.ssh/authorized_keys'
wobei "<IP-Adresse des DoorPi>" mit der IP des DoorPi (z.B. 192.168.0.20) zu ersetzen ist. Abschließend wird man noch nach dem Passwort für die Shell des DoorPi gefragt. Nun ist die CCU in der Lage, ohne weitere Passwort-Abfrage die Datei "rufumleitung.txt" auf dem DoorPi-Raspberry zu beschreiben.
Als nächstes wird ein kleines WebUI-Programm auf der CCU erstellt, dass in Abhängigkeit von einer Änderung der Anwesenheits-Systemvariablen ausgeführt wird.
In diesem Programm wird jeweils ein kleines Skript bei Änderung auf An- oder Abwesenheit mit folgendem Inhalt aufgerufen:
Code: Alles auswählen
! Rufumleitung DoorPi bei Anwesenheit
! Version 1.0, Autor: dtp
! Telefonnummer, auf die DoorPi-Anrufe bei Anwesenheit umgeleitet werden
string phone = "11"; ! z.b. Rufnummer für die Gruppenfunktion der SIP-Türsprechanlage
! Einwahldaten des DoorPi
string login = "pi@192.xxx.xxx.xxx";
! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("echo "#phone#" | ssh "#login#" 'cat > /usr/local/etc/DoorPi/rufumleitung.txt'");
Code: Alles auswählen
! Rufumleitung DoorPi bei Abwesenheit
! Version 1.0, Autor: dtp
! Telefonnummer, auf die DoorPi-Anrufe bei Abwesenheit umgeleitet werden
string phone = "0123456789"; ! eigene Handynummer
! Einwahldaten des DoorPi
string login = "pi@192.xxx.xxx.xxx";
! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("echo "#phone#" | ssh "#login#" 'cat > /usr/local/etc/DoorPi/rufumleitung.txt'");
Gruß,
Thorsten