Türklingel - DoorPi

Sooo... wieder ein neues Projekt, was ich euch nicht vorenthalten möchte = unsere Türklingel.

Jetzt fragt Ihr euch, was ist an einer Türklingel so besonders. Ich will es mal so ausdrücken, es ist nichts besonderes daran, dass ein Knopf gedrückt wird und an einer anderen Stelle ein Signal Hundegebell, Kindergeschrei etc. auslöst lol

Hat man dann eine Gegensprechanlage, ist das schon cool. Erschreckend, wenn man die Person schon vorab in einem Livebild durch eine Kamera sehen kann, aber was, wenn damit noch deutlich mehr geht mit einem kleinen Mini-PC? Richtig, ich rede von einem Raspberry Pi.

Wie bin ich auf das Projekt gekommen? Eigentlich Zufall. Ich habe einfach mal geschaut, was es so für Projekte gibt und hatte u.A. auch mal DoorPi entdeckt jedoch nie Zeit dazu.

Da bei uns das Thema Klingel etwas unglücklich gelöst war, da der Klingelknopf im Hof drin war und wir zwecks Hund das Hoftor hin und wieder mal abschließen, so wünschte sich meine Frau etwas besseres. Ihr Wunsch beinhaltet neben dem normalen Klingelsignal noch eine Gegensprechanlage auf allen Etagen und fände es nett, wenn wir dazu noch sehen könnten wer vor der Tür steht. Fast zeitgleich fragte mich unabhängig ein Arbeitskollege, ob ich schon etwas von dem Projekt DoorPi gehört hätte. cul

Das war dann wohl das Zeichen, dass ich mich damit beschäftige a065

Wie immer... ran an den Speck... ein Blick auf: https://www.doorpi.org und es war "grob" klar, was ich brauche und was gemacht werden muss.

Meine Teileliste:

- Raspberry Pi (in meinem Fall B+ völlig ausreichen) inkl. natürlich SD-Karte etc.
  Raspberry Pi Model B ports 1880x1080

- altes Headset
- Netzwerkkabel
- RFID (RDM6300) + Chips die registriert werden
  rdm6300

- Miniverstärker
  foxnovo high power
- USB-Soundkarte
  usb soundkarte

- PiFace (wäre auch anders gegangen mit GPIO-Pins aber macht die Sache angenehmer)
  piface

- Außenklingeneinheit (günstig für 5 Euro aus eBay geschossen)

 

Wie immer braucht Ihr Raspbian mit all euren Einstellungen wie IP, Name des Pi's, eurem Passwort, Ländereinstellungen etc.

Sobald Ihre damit durch seid kommt auch schon die Installation, da es verschiedene Wege gibt, wie man das Ding installieren kann, würde ich euch die oben erwähnte Seite ans Herz legen, denn was anderes habe ich auch nicht gemacht und kann es an der Stelle sicher nicht besser erklären.

Hier die Auswahl der Installationen:

https://www.doorpi.org/forum/lexicon/lexicon/6-installation/

Sobald die Grundinstallation durch ist, kommt auch schon eure Konfiguration und ab hier seid Ihr so frei, wie es nur geht.

Die Konfiguration könnt Ihr im Web durchführen (einfach IP von eurem DoorPi im Web eintragen) oder auf Consolenebene in der doorpi.ini.

 

Was ich euch definitiv gleich ans Herz legen möchte, ist die Möglichkeit für das Debugging:

 

sudo doorpi_cli --trace 2> /tmp/doorpi_trace.log


Mit diesem Command (DoorPi-Dienst muss natürlich vorher gestoppt sein) könnt Ihr DoorPi starten und ein Log generieren, hat mir schon sehr oft geholfen! Darin könnt Ihr z.B. auch herausfinden, wie die Soundkarte bei euch heißt um Sie dann bei uns in der doorpi.ini einzutragen, was z.B. in der Form aussehen kann:

[SIP-Phone]
capture_device = ALSA: USB Audio Device
playback_device = ALSA: USB Audio Device


Was ich bei mir alles haben wollte bzw. berücksichtigt habe waren folgende Punkte:

Klar Klingelknopf wird benötigt und reagiere (bei mir!) auf das Event "EVENT_OnKeyPressed_onboardpins.1":

- ein Relais auf dem PiFace verbindet den Schalter des kleinen Verstärkers und schaltet diesen somit ein
- da ich eine Fritzbox nutze als SIP-Server, so habe ich dort auch eine Gruppenrufnummer eingerichtet, der alle Geräte im Haus anruft
- da ich sowieso IP-Kameras rund ums Haus installiert habe zapfe ich diese an und mache ein Snapshot
- ab einem Fritzphone C4 kann man das Bild auch darüber streamen und anzeigen lassen
- eine Aufnahme des Gespräch soll gestartet werden

Siehe so ca. so bei mir aus;

[EVENT_OnKeyPressed_onboardpins.1]
10 = file_call_value:/usr/local/etc/DoorPi/tools/call.txt
20 = take_snapshot:http://<ip bzw. host>/snapshot.cgi?user=<benutzer>&pwd=<passwort>
30 = out:Verstaerker,1,0,120
40 = mqtt:<mqtt ip>,<mqtt port>,<top + action>,var1,var2

Kurze Erklärung hierzu:

10 = da man anrufen kann wen man will habe ich eine Datei angelegt in welche ich Wahlweise Nummern hinterlegen z.B. Gruppenrufnummer fürs Haus, oder wenn ich nicht Zuhause bin meine Handy-Nr. ich rufe also nicht direkt einen Nummer an sondern die in der txt hinterlegten Nummer.

20 = hier wird ein Snapshot gemacht von meiner Außenkamera

30 = Verstärker wird eingeschalten und wieder aus nach 120 sec.

40 = ich generie ein Eintrag in meinen MQTT damit meine Hausautomation darauf reagieren kann

Ihr könnt natürlich noch unzählig viele Sachen mehr machen, Scripte ausführen etc. aber das benötige ich an der Stelle nicht.

 

SIP Clients:

- alle Clients sollen auf Anruf reagieren, also muss ich diese Geräte natürlich mit der Fritzbox koppeln, sei es via DECT (Fritzphone) oder WLAN (SIP-Clients auf Android)
- ich wollte via MFV Commands ausführen auf dem Pi, z.B. drücke die 1 um die Tür zu öffnen

Um auf dem C4 ein Bild anzeigen zu lassen muss die Türklingel in der Fritzbox hinterlegt werden und zwar in ähnlicher Form wie hier:

c4 bild

 

DoorPi muss nicht als SIPClient eingerichtet werden in der Fritzbox sondern als Türklingel

Die Vorteile, dei daraus entstehen = muss auf keine eingehende (eingerichtet) Rufnummer reagieren sondern nur auf die internen Rufnummern und hier kann eben das Livebild hinterlegt werden.

Und damit die Telefone überhaupt berechtigt sind muss natürlich hier auch die Berechtigung gegeben werden was bei mir in der Form ausschaut:

[AdminNumbers]
**610 = active #MikePhone
**611 = active #Wohnzimmer
**620 = active #MikeHandy
**621 = active #MikePC
**622 = active #Tablet1

Definition für das Schalten des Relais:

[onboardpins_OutputPins]
0 = Verstaerker
1 = Tueroeffner
7 = Blink_LED

[DTMF]
"1" = out:Tueroeffner,1,0,3

Hier ist in dem Fall der Output definiert und wird über DTMF ausgelöst. Sprich 1 für an und 0 wieder für aus nach 3 sec.

 

Hausautomation:

Ich hatte vor nicht allzu langer Zeit FHEM bei mir im Einsatz, wofür jemand sich die Mühe gemacht hat ein Modul zu schreiben, allerdings bin ich ehrlich, auch wenn ich mit FHEM in Verbindung Hausautomation groß geworden bin, habe ich den Mut zusammengefasst und den Schweinehund überwunden und alles neu gemacht in Homassistant.

- per MQTT angebunden
- auf Event reagieren z.B. Telegram Nachricht schicken mit dem Bild vom Snapshot bzw. einfach nur Text z.B. "es klingelt"
  - geplant ist hier noch on top, das ich mich an die alte Klingel mit anbinde und die "normale" Klingel mit klingelt und nicht nur die Telefone
  - vllt. auch noch über die Player (da Multiroom ja eh schon vorhanden ist) die Musik unterbrechen und einen Klingelsound abspielen
  - noch eine Idee ist, dass ich über XBMC das Livebild anzeigen lasse und falls ein Film läuft dieser natürlich pausiert wird und die Hintergrundbeleuchtung eingeschalten

 

Ich denke hier brauch ich nicht nähere darauf eingehen, denn wer Homeassitant am Start hat, weiß normal auch, wie man MQTT einbindet und die damit verbundenen Sensoren.

Sonstiges:

- Tür öffnen über RFID-Chips

 

Ich habe versteckt noch eine RFID Anbindung geschaffen, dass (natürlich muss die Tür aufgeschlossen sein) wir via Aktivierung eines Summers die Tür öffnen können. Sieht in der Config dann entsprechend so aus:

[rdm6300_InputPins]
1234567 = out:Tueroeffner,1,0,3
7654321 = out:Tueroeffner,1,0,3

 Bezugnehmend auf den (wie oben bei DTMF) schon definiertem Türöffner aktiviere ich diesen, sobald ein Chip mit der hinterlegten ID sich anmeldet.

Hier noch der Configauschnitt von der RFID Definition:

[rdm6300_keyboard]
baudrate = 9600
bouncetime = 2000
dismisstime = 5
polarity = 0
port = /dev/ttyAMA0
pressed_on_keydown = True

 

Ich denke ich konnte euch schon einen kleinen Einblick geben, wie es umgesetzt werden kann. Eurer Phantasie ist natürlich fast keine Grenze gesetzt.

Im eingebauten Zustand wollte ich natürlich KEIN Netzwerk draußen via LAN-Kabel zur Verfügung stellen und per W-LAN war mir das zu unsicher, wie gut die Verbindung bis dort hin ist, daher habe ich mich dazu entschlossen das Pi im Keller in einen Sicherungskasten zu setzen, bei dem Optik eher zweitranging ist und führe nach draußen eben abgeschirmtes Netzwerkkabel. Gleich vorweg, es muss wirklich GUT geschirmt sein, sonst habt ihr Megaprobleme mit Störgeräuschen!

door pi 002

 

In der Testphase hatte ich zusätzlich noch eine Funkklingel loldeshalb der kleine Zettel. Recht schlicht und unauffällig.

 

door pi 001

 

Viel Spaß beim nachbauen. Falls Ihr fragen habt, einfach hier hinterlassen.