Mein Projekt | Klingelanlage für zwei Haushalte

  • Moin zusammen,


    hier eine kurze Beschreibung meines Projektes. Ich werde versuchen, immer mal wieder "Merkwürdigkeiten" hier zu dokumentieren, damit Andere nicht so lange suchen müssen wie ich.


    Und wenn jemand Input oder Ideen hat, bin ich sehr dankbar.


    -----------------------------------------


    Herleitung:


    Ich wohne in einem Zwei-Familien Haus gemeinsam mit meinen Eltern. Wir teilen uns einen Eingangsbereich mit Türsprechstation, jedoch hat jeder seine eigene Klingel. Bisher ist das über eine Auerswald TK-Anlage mit entsprechender Torstation gelöst. Ausgehend von dem Fakt, das auf dem Festnetz eh nur noch Oma anruft und die Anzahl der Endgeräte (wer braucht denn noch Fax??) in den letzten Jahren drastisch gesunken ist, habe ich die verbliebenen zwei Telefone (je Partei eines) direkt auf den Speedport geklemmt und möchte die TK-Anlage abschalten.


    Auf der Suche nach Ersatz für eine Türsprechstelle (die letzte verbliebene Anwendung auf der TK-Anlage) bin ich dann an meine Grenzen gestossen. Ich habe kein Gerät im Bereich bis ~1.000€ gefunden, das meine Wünsche umgesetzt hätte:


    Wunschliste "Muss"


    - 2 Klingelknöpfe am Tor
    - Gemeinsames Innengerät mit hohem WAF
    - Kamerabild auf das Innengerät
    - Separate Innen-Wecker / Klingeln je Partei
    - Benachrichtigung auf´s iPhone
    - Öffnen von Tür und Einfahrttor per RFID
    - Helligkeitssensorgesteuerte Beleuchtung


    Wunschliste "Könnte"


    - Interaktives Display am Tor
    - Öffnen Tor per iPhone vorhalten (NFC/BLE)
    - Verbinden mit dem Tor aus der Ferne
    - Sprechen mit dem Paketboten
    - Tor öffnen
    - "Briefkastensensoren" mit Einwurfbenachrichtigung


    -----------------------------------------
    Im Moment bin ich am Experimentieren. Meine Bauteile:


    - Raspberry Pi 3b+
    - PiFace digital2
    - RDM 6300 RFID-Leser (Gleicher Tag wie die Alarmanlage)
    - RC522 NFC-Leser
    - Nextion-Display
    - Raspberry-Kamera mit Fisheye-Linse
    - Knöpfe, LED´s, etc.


    Meine aktuellen gedanklichen Baustellen:


    1.) SIP-Telefonie: Aufgrund eines Hybridanschlusses bin ich an einen Speedport gebunden. Und wenn ich überlege, wie oft ich in den Jahren den Router gewechselt habe, will ich die Klingel unabhängig von einer Fritzbox betreiben. Auch eine Asterisk will ich nicht aufsetzen sondern die Klingel direkt per SIP beim Provider registrieren. Das hakt noch.


    2.) Innenstation: Ich hab noch keine Idee, wie ich die Innenstation realisiere. Ich hätte gern ein Tablet / Touchscreen, das Eventgesteuert aufwacht und dann das Bild der Torkamera anzeigt. Zusätzlich müssen zwei Schaltflächen oder Tasten vorhanden sein, um das Tor zu öffnen. Bisher ist das (ohne Video) in der alten Anlage mit einem Telefon und Tastenkombination gelöst, die Erfahrung zeigt, das es Dort keine Sprachverbindung braucht. Die Tastenkombination war zu aufwändig, so das meine Eltern immer mit dem Schlüssel zum Tor gelaufen sind. Das muss also ganz einfach werden.



    Ich nutze mal den nächsten Post, um nach und nach meine Installationsschritte zu dokumentieren. Werde also immer erweitern.

  • Mein Installationsweg, getestet mit Buster Lite


    Installation Raspberry
    --------------------------
    Image von https://www.raspberrypi.org/downloads/raspbian/ laden und mit Win32DiskImager auf eine Micro-SD "brennen"
    Nach Boot mit User pi und Kennwort Raspberry (Achtung, amerikanische Tastatur, z und y vertauscht!!) anmelden


    sudo su und raspiconfig ausführen und die Grundeinstellung vornehmen


    Installation DoorPi
    --------------------------
    sudo su


    apt-get remove python-pip python-rpi.gpio


    apt-get install python-dev


    apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade


    easy_install pip || (wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python) && sudo easy_install pip


    pip install linphone4raspberry python-daemon


    pip install doorpi


    Erster Start: doorpi_cli --trace


    Nextion Keyboard einfügen
    --------------------------
    from_nextion.py nach /usr/local/lib/python2.7/dist-packages/doorpi/keyboard kopieren


    RDM6300 Keyboard einfügen und UART bearbeiten
    --------------------------
    from_RDM6300.py nach /usr/local/lib/python2.7/dist-packages/doorpi/keyboard kopieren


    nano /boot/cmdline.txt

    Erste Zeile: dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
    Ersetzen durch: dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
    [/i]


    nano /boot/config.txt
    [/i]
    Hier trägt man folgende Zeilen ein:

    dtoverlay=pi3-disable-bt
    enable_uart=1
    force_turbo=1

    Speichern, schließen und neustarten.


    Installation MJPG Streamer:
    --------------------------
    Die im Lexikon hinterlegte Anleitung hat einen Fehler produziert und nicht funktioniert. Anbei der Weg, wie es unter Stretch funktioniert hat:


    Anleitung: https://github.com/cncjs/cncjs…-Setup-&-FFMpeg-Recording


    Wenn man den mjpg_streamer beim booten automatisch gestartet haben möchte der sollte folgende Datei anlegen:

    • sudo nano /etc/init.d/mjpg_streamer

    Mit diesem Inhalt.



    Shell-Script


    • #!/bin/sh
    • # /etc/init.d/mjpg_streamer
    • ### BEGIN INIT INFO
    • # Provides: mjpg_streamer
    • # Required-Start: $all
    • # Required-Stop: $all
    • # Default-Start: 2 3 4 5
    • # Default-Stop: 0 1 6
    • # Short-Description: MJPG_Streamer_autostart
    • ### END INIT INFO
    • start()
    • {
    • modprobe bcm2835-v4l2
    • sleep:2
    • echo "Starting mjpg-streamer..."
    • /usr/local/bin/mjpg_streamer -i "input_uvc.so -r 1280x720 -d /dev/video0 -f 30 -q 80" -o "output_http.so -p 9000 -w /usr/local/share/mjpg-streamer/WWW" >/dev/null 2>&1 &
    • }
    • stop()
    • {
    • echo "Stopping mjpg-streamer..."
    • kill -9 $(pidof mjpg_streamer) >/dev/null 2>&1
    • }
    • case "$1" in
    • start)
    • start
    • ;;
    • stop)
    • stop
    • ;;
    • restart)
    • stop
    • start
    • ;;
    • *)
    • echo "Usage: $0 {start|stop|restart}"
    • ;;
    • esac
    • exit 0

    Nun muss man noch das script ausführbar machen.


    • sudo chmod +x /etc/init.d/mjpg_streamer


    Mit diesem Befehl wird die eben erstellte Autostart-Datei in den Autostart eingetragen:

    • sudo update-rc.d mjpg_streamer Defaults



    Pushover mit Bild
    -----------------------------


    Shell Script zur Snapshotaufnahme

    #!/bin/bash
    wget http://127.0.0.1:8080/?action=snapshot -O snapshot.jpg
    python pushoverb.py

    Phyton Script zum Pushover mit Bild Versand


    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    import requests
    r = requests.post("https://api.pushover.net/1/messages.json", data = {
    "token": "a78jnxfovzzj4i4mh8keqmegjs695h",
    "user": "umJSytLkp71HJZqXxBDJCt8W6B7rd6",
    "message": "Türklingel"
    },
    files = {
    "attachment": ("image.jpg", open("snapshot.jpg", "rb"), "image")
    })
    print(r.text)