Inhalt

Klingelanlage

Vor Jahren umgesetzt und nun endlich auch mal dokumentiert.

Das Problem war, dass ich die Klingel mit einer Gegensprechanlage ausstatten wollte, die über die DECT-Telefone im Haus lief. Die im Einsatz befindliche Fritz!Box kann das ja prinzipiell.

Klingel-Sprechanlage-Fritzbox-Telefon

Die Auerswald TFS-Universal-Plus wird im Briefkasten gegen die Öffnungen für die Gegensprechanlage geklebt und mittel 2-adrigem Kabel mit einem der Analoganschlüsse der Fritz!Box verbunden. In der Fritz!Box wird das neue Gerät als “Türsprechanlage” konfiguriert und soll (in meinem Fall) einen Rundruf an alle internen Telefne auslösen.

Konfiguration der Gegensprechanlage in der Fritz!Box

Nun sollte meine openHAB-Installation auch zumindest getriggert werden, wenn es an der Tür klingelt. Das wiederum ist etwas schwieriger, weil TR064-Binding von openHAB keine internen Anrufe mitbekommt, was wohl am Call-Monitor der Fritz!Box liegt…

Meine Idee war es nun die Fritz!Box in eine SIP-Telefonanlage zu verwandeln, eine Asterisk-Instanz an der Fritz!Box anmelden zu lassen, die dann auch den durch die Klingel ausgelösten internen Rundruf mitbekommt und dann einen REST-Request auf ein openHAB-Item macht.

Integration der openHAB-Instanz in die Installation

Der Fritz!Box muss beigebracht werden, wie sich ein VOIP-Client anmelden kann. Hierzu starten wir den Wizard über die Fritz!Box-Konfigurationsseite -> Telefonie -> Telefoniegeräte -> Neues Gerät einrichten

  • Neues “Telefon (mit und ohne Anrufbeantworter)” einrichten
    Telefoniegerät einrichten
  • Als Anschluss wird “LAN/WLAN (IP-Telefon)” gewählt
    Telefon anschließen
  • Benutzernamen und Passwort für die Anmeldung festlegen
    Vergabe der Anmeldedaten
  • Im nächsten Schritt wird die ausgehende Nummer eingerichtet. Da aktuell nicht raus telefoniert werden soll, ist die Wahl der Rufnummer hier egal.
  • Das neue Telefoniegerät soll auf eingehende Anrufe keiner Rufnummer reagieren.
  • Im letzten Schritt wird nochmal eine Zusammenfassung dargestellt. Diese sind zu überprüfen und zu “Übernehmen”.

Ich brauchte eine einfache Minimalinstallation von asterisk. Dies gestaltete sich allerdings etwas aufwändiger als gedacht, weshalb ich das Ganze in einem Docker-Container verpackt habe. Das Basisimage ist nicht mehr das Aktuellste, da es bei mir allerdings keine Verbindung nach außen hat, ist es meinen Anwendungsfall vertretbar. Die erforderlichen Konfigurationsdateien mit Platzhaltern habe ich ich hier abgelegt. Für die Installation auf Unraid habe ich ebenfalls das notwendige Template erstellt.

In openHAB wird ein Switch-Item benötigt, das durch Asterisk bei einem eingehenden Anruf auf ON gesetzt werden kann.

  Switch Doorbell_ringing "Klingel" (Doorbell) ["Status"]

Außerdem eine Regel, die den Switch nach 5 Sekunden wieder auf “off” stellt.

var Timer timerDoorbellReset = null

rule "When doorbell rings do ..."
when
    Item Doorbell_ringing changed to ON
then
    if(timerDoorbellReset!==null) {
        logInfo("Doorbell", "Delete timer...")
        timerDoorbellReset.cancel
        timerDoorbellReset = null
    }
    
    timerDoorbellReset = createTimer(now.plusSeconds(5)) [|
        Doorbell_ringing.postUpdate(OFF)
    ]

    // send notification...
    // blink some lights...
    // turn off the tv...
end

Vom Betätigen des Klingeltasters bis hin zum Signal in openHAB dauert es einige Sekunden, was für den einen oder anderen Paketauslieferer schon eine Geduldsprobe ist. Im Intranet der Dinge habe gelesen, dass es ebenso möglich ist einen Schaltkontakt an dem Gegensprechanlagen-Modul anzubinden, was dann vielleicht schneller das Klingelsignal überträgt.

Es ist damit nun möglich, auf das Klingeln an der Tür zu regieren mit:

  • Pausieren von TV oder Musikstreams
  • Notification auf TV und Lautsprecher
  • Push-Benachrichtigung aufs Handy
  • Foto des Eingangsbereiches, das ebenfalls aufs Handy geschickt wird

Titelbild von Greg Montani auf Pixabay.