Willst auch DU mitwirken bei DoorPi3, dann melde dich hier: https://www.doorpi.org/forum/index.php?thread/1503-es-wird-weiter-gehen-doorpi-soll-zu-neuem-leben-erwachen/
Update: 18.01.2022
Da viele meine Projekte auf meiner Seite verfolgen (vielen Dank, das motiviert ungemein ) jedoch das Problem hatten, dass DoorPi nach meiner doch schon älteren Anleitung nicht funktionierte, so habe ich mich entschlossen das Projekt neu aufzugreifen und habe hierzu ein Video gemacht. (siehe oben)
Das Problem bei aktuellen Images liegt in Python2, denn das ist seit dem 2021-10-30 nicht mehr in aktuellen Images drin. Ihr könnt entweder ein älteres Image nehmen und es entsprechend updaten oder Ihr nutzt das Script von dem User rookie aus dem DoorPi Forum, der euch die Arbeit ungemein vereinfacht hat gegenüber damals.
Hier der Link: https://www.doorpi.org/forum/index.php?thread/1478-installation-mit-aktuellem-raspberryos/
Und hier die Zusammenfassung:
Ihr benötigt git:
sudo apt-get -y install git
Anschließend ladet Ihr euch die Inhalte herunter:
sudo git clone https://github.com/rookie10/doorpi-config.git /tmp/doorpicon
Intallation:
sudo /tmp/doorpicon/doorpi-config.sh
Und starten:
sudo doorpi-config
Und schon könnt Ihr mit meiner Anleitung (siehe unten) nach dem Abschnitt Installation forfahren
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
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.
Das war dann wohl das Zeichen, dass ich mich damit beschäftige
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.
- altes Headset
- Netzwerkkabel
- RFID (RDM6300) + Chips die registriert werden
- Miniverstärker
- USB-Soundkarte
- PiFace (wäre auch anders gegangen mit GPIO-Pins aber macht die Sache angenehmer)
- 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 Ihr 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.
(ab hier könnt Ihr nach der Installation (Update oben) fortfahren!)
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 eine 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:
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 Homeassistant.
- 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 Homeassistant 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 der 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!
In der Testphase hatte ich zusätzlich noch eine Funkklingel deshalb der kleine Zettel. Recht schlicht und unauffällig.
Viel Spaß beim nachbauen. Falls Ihr fragen habt, einfach hier hinterlassen.
Hier gehts weiter: