Posts by ChristianWilhelm

    Hallo zusammen, ich habe hier einen Raspberry Pi 3 B+ mitsamt LCD, schön verpackt in diesem Gehäuse. Jetzt wäre es doch eigentlich sinnvoll wenn das LCD nicht einfach nur ungenutzt vor sich hingammelt sondern als Kontrolldisplay fungieren würde. Dazu hätte ich gerne, dass ein ausgeführter Cronjob, bzw. das angestoßene Skript, irgendwelche "echo"-Meldungen auf eben diesem LCD ausgibt. Es ist das RPI-35LCD von Sertronics/BerryBase. Wie stelle ich das an? Kann man das irgendwie an ein tty umleiten? LG!

    Hallo zusammen, ich möchte gerne wieder ein ausführliches, bebildertes Tutorial erstellen.

    Das letzte (Kameraüberwachung) scheint ja mit ca. 2400 Zugriffen gut angekommen zu sein.


    Ich würde beschreiben, wie man Werbung aus dem Heimnetzwerk entfernt, unter Zuhilfenahme eines Raspberry Pi 3, der Software "PiHole" und einer Fritz!Box.

    Alles natürlich wieder mit Erklärungen und Screenshots.


    LG

    "Nun öffnen wir mitsudo /etc/motion/motion.conf

    die Konfigurationsdatei von motion und passen diese noch entsprechend an."



    da fehlt der Editor, vermutlich meintest Du "Nano" ;)

    Wurde ergänzt. Danke!


    Ich habe außerdem noch einen kleinen Abschnitt über "Datenschutz" hinzugefügt, ich hoffe, dass damit die Diskussion nun beendet ist und wir uns nun wieder dem Hauptthema "Kameraüberwachung" widmen können.;)

    Hallo Andreas,


    ich würde zunächst mal prüfen, welche IP-Adresse der Raspberry hat. Dazu im Terminal

    ifconfig

    eingeben.


    Anschließend von einem anderen Rechner aus diese angezeigte IP-Adresse anpingen.


    Klappt das alles schonmal, dann mit

    sudo service motion status

    prüfen, ob der motion-Dienst läuft.


    Wenn das alles i. O. ist, sollte die Kamera eigentlich mit

    http://ip-adresse:8081 erreichbar sein.


    Was gibt der Befehl

    ls /dev/video*

    aus? Da sollte ein "/dev/video0" in gelber Schrift zu sehen sein.


    Christian

    Hallo zusammen, die Überschrift ist etwas ungewöhnlich, ich komme gerade mit meinem Projekt nicht weiter.


    Da die Überwachungskamera, realisiert über einen RPi Zero und Raspbian Stretch Lite, alle paar Tage mal hängenbleibt, wollte ich sowohl auf dem Kamera- als auch auf dem Monitor-Raspberry einen Watchdog einrichten.


    Je länger ich mich aber mit dem Projekt beschäftige umso mehr kommen mir Zweifel, dass das der richtige Ansatz ist, Systemhänger mit Netzwerkweiten Watchdogs zu bekämpfen. Je mehr Geräte im Netzwerk aktiv sind, umso undurchsichtiger und komplizierter wird die Watchdogfummelei.


    Folgendes habe ich gemacht:


    Auf dem Kamera-Raspberry...

    • den watchdog installiert und aktiviert
    • per Cronjob alle 60 Sekunden eine Datei beschreiben lassen
    • per Watchdog die letzte Zugriffzeit auswerten lassen

    Wurde die Datei länger als 60 Sekunden nicht aktualisiert, startete der Kamera-Raspberry neu.


    So weit, so gut erstmal.


    Dann gibt es da noch den Monitor, der an einem RPi 3 B+ hängt. Das Kamerabild wird über den Chrome-Browser dargestellt. Hängt sich der Kamera-RPi auf, bleibt auch das Monitorbild für immer eingefroren, und verlangt einen Neustart.


    Daher probierte ich folgendes am Monitor-Raspberry:


    • Neustart per Fernzugriff bei einem Watchdog-Auslösen des Kamera-Raspberrys bekam ich über's Netzwerk nicht hin
    • habe es dann so eingerichtet, dass wenn der Kamera-Raspberry neu startete, dieser eine leere Datei an den Monitor-Raspberry schickte
    • per Cronjob wurde alle 60 Sekunden geprüft, ob die Datei existierte
    • wenn ja: Datei wurde gelöscht und der Monitor neu gestartet

    Da das ganze exponentiell unübersichtlich wird, wurde mir schnell klar.


    Es muss also eine intelligentere Lösung geben, dass mir bei hängenbleibender Kamera die Überwachungsmonitore nicht alle einfrieren.


    Gibt es dazu Gedanken oder Ideen?


    Danke


    LG

    Christian

    Teste mal mit deinem PI (und tcpdump) am Tenda, ob der icmp-request dort ankommt

    Hm, nein, sieht nicht so aus.


    Die aktuelle Konfiguration ist jetzt folgendermaßen:

    F!b: Ziel 192.168.2.0 Sub 255.255.255.0 Gateway 10.0.0.3

    Tenda: Ziel 10.0.0.0 Sub 255.0.0.0 Gateway 10.0.0.1


    Ping's aus dem 10er Netz scheinen im 192er Netz nicht anzukommen.

    Komisch ist aber, dass er sehr wohl weiß, dass er über 10.0.0.3 gehen muss, steht auch da.

    Spricht aber auch einiges dafür dass der Tenda NAT macht, weil es heißt: Last Login from 10.0.0.3 (tatsächlich kam der Login von 192.168.2.101).




    "Rückwärts", also aus dem 192er in das 10er Netz hinein, klappt es...


    Okay, dankesehr für alle Beiträge und Tipps.

    Nach ewigem Hin- und Herrouten, Geräteneustarts, ändern von Einstellungen und Ping-Tests komme ich zu dem Schluss, dass es wohl am Tenda liegen muss, warum ich partout nicht vom 10er in's 192er Netz komme. Habe jetzt einiges an Routing-Einstellungen durchprobiert aber es klappt nicht.


    Ich warte jetzt auf meinen bestellten D-Link-WLAN-Accesspoint, der hat einen echten LAN-Anschluss, und somit dürfte dann mein Netz auch wieder überall erreichbar sein im 10er-Raum :)


    Danke!

    LG

    Christian

    Weil du uns die Subnetzmasken verschweigst

    10.0.0.0/8 und 192.168.2.0/24


    Hab jetzt mal geroutet und geroutet, der Datenverkehr klappt allerdings nur in eine Richtung.


    Befinde ich mich mit einem Gerät am Tenda mit der IP 192.168.2.xxx, komme ich ganz entspannt auf die Fritzbox und erreiche die 10.0.0.1.

    Bin ich allerdings im Netz 10.0.0.xxx, kann ich nicht auf den 192er-Raum zugreifen...


    Anbei noch meine aktuelle Konfiguration und Ping-Tests.


    Kann das der Tenda vielleicht gar nicht? =O


    Ping aus dem 10er Netz in das 192er:



    Konfigurationsoberfläche vom Tenda, aufgerufen aus dem 10er Netz:


    Routingeinstellungen in der Fritzbox:



    Routingeinstellungen am Tenda:


    Ping aus dem 192er auf das 10er Netz:


    Hallo zusammen, ich habe mein WLAN-Netzwerk mit einem zusätzlichen Accesspoint erweitert (für den Außenbereich; Garten und Garage). Es ist ein Tenda (150Mbps Wireless N Travel Router) für 10,- Euro :)


    Da das Gerät keinen LAN, sondern nur einen WAN-Port hat, und man diesen auch nicht umkonfigurieren kann, muss ich ein Routing einrichten.

    Weil: Wenn ich mit einem Handy oder Laptop am Tenda eingebucht bin, bekomme ich per DHCP eine 192er-Adresse am Endgerät, und sperre mich somit aus meinem 10er-Heimnetz aus, in dem alle Geräte laufen.

    Am WAN-Port selbst des Tenda ist die 10.0.0.3 als IP-Adresse fest eingestellt. Alle Versuche, das WLAN-Netz des Tenda mit einer 10er-IP-Adresse zu versehen, blockiert das Gerät sofort (Fehlermeldung: "IP vom WLAN darf nicht im selben Subnetz wie das WAN sein").


    Nun die Frage: Welche Daten muss ich in die Routingtabellen des Tenda und der Fritzbox eingeben, dass ich sowohl vom Fritzboxnetz (10er) auf das Tendanetz (192er) gelange, und auch umgekehrt?


    Danke für Infos und Hilfestellungen,

    LG,

    Christian.


    Tenda:


    Fritzbox:


    Netzwerkkonfiguration:


    Hallo zusammen,


    ich wollte mal testen, ob ich die WLAN-Anbindung meines Raspberry Pi Zero am Hauseingang noch etwas verbessern kann.

    Dazu suchte ich mir den günstigsten Adapter mit Antenne, außerdem kaufte ich mir noch ein Adapterkabel von Micro auf Standard-USB.


    Laut lsusb ist es ein "Ralink Technology, Corp. MT7601U Wireless Adapter", der ohne weiteres Zutun automatisch vom Zero erkannt und mit dem Interfacenamen "wlx00e129031be4" aktiviert wurde. Diesen steckte ich einfach per Adapterkabel (Micro-auf-Standard-USB) an den Zero. Die Antenne habe ich mit Pritt-Haftpunkten (Kaugummiähnlich) an die Wand geklatscht.








    Der Vergleich von Onboard-"Antenne" und externem USB-Adapter zeigte zunächst nur wenig Veränderung am Signalpegel:

    • Onboard-WiFi: -67 dBm
    • externe Antenne an USB: -66 dBm



    Gerade einmal 1 dBm Unterschied zwischen einer aufgedruckten Leiterbahn im Zero und einer externen Antenne? :/


    Dann der Geschwindigkeitstest mit einer Dateiübertragung. Ich schaufelte eine 1,4 GB große Logdatei vom Zero auf meinen Laptop. Zunächst mit dem Onboard-Wifi, dann über die externe Antenne. Zwischen Onboard und extern habe ich folgendermaßen gewechselt:

    1. sudo ifconfig wlan0 up
    2. sudo ifconfig wlx00e129031be4 down
    3. anschließend ein neues ssh-Fenster öffnen, da das aktuelle Fenster wegen der nicht mehr vorhandenen (alten) WiFi-Verbindung dann nicht mehr reagiert.
    4. dabei darf man nicht vergessen, dass man zuerst das andere WiFi aktiviert, und dann das zweite deaktiviert, andernfalls sperrt man sich aus, weil keine Verbindung mehr da ist.

    Dabei kam ich auf folgende Übertragungsgeschwindigkeiten (getestet mit rsync und dem Parameter --info=progress2) :

    • Onboard-Wifi: ca. 500 kB/Sekunde
    • externe Antenne an USB: ca. 1,7 MB/Sekunde




    Ganz guttun wird dem Raspberry und dem USB-Netzteil die geringere Sendeleistung, die nötig ist. Während das Onboard-WLAN laut dem Tool wavemon 1,26 Watt in den Äther rausbläst (entspricht ca. 250 mA), sind es mit der externen Antenne nur noch 0,1 Watt (entspricht ca. 20 mA).


    Fazit: Obwohl sich am Signalpegel kaum etwas ändert, erreicht man mit der externen USB-Antenne etwa die dreifache Datenrate und auch eine geringere Strombelastung für Platine und Netzteil.


    Für mich ist es ein Gewinn, weil ich für meine Webcam-Übertragung am Hauseingang jedes zusätzliche Kilobyte der WiFi-Datenrate gut gebrauchen kann.


    Ob sich die EUR 4,95 generell als WLAN-Verbesserung lohnen, kann ja jeder individuell entscheiden ;)


    LG

    Christian

    Soll jetzt kein Vorwurf sein, aber aus dem Grund habe ich von Anfang an das weit verbreitete Raspbian und das Tool „motion“ verwendet. Da habe ich dann den gewohnten Linux-Unterbau und kann jederzeit alle möglichen Diagnosetools nachinstallieren. Vielleicht eine Option für dich?

    Hat da jemand evtl ne idee sie ich das Pi-ZeroW eigenen Wlanmodul nutzten kann?

    Schau mal auf der SD-Karte in folgende Datei, falls es die bei MotionEyeOS geben sollte:

    /etc/wpa_supplicant/wpa_supplicant.conf

    Dort müsste in etwa folgendes stehen, bzw. ergänzt werden:

    Code
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    country=DE
    network={
            scan_ssid=1
            ssid="WLAN-Name"
            key_mgmt=WPA-PSK
            psk="kennwort"
    }

    Eine gut beschriebene Lösung einfach zu löschen, weil ein einzelner "Typ" gravierende Vorbehalte zur Vertrauenswürdigkeit von Google hat, empfinde ich auch als kindisch.

    Kindisch bin ich öfter mal. Ich bin Asperger-Autist und kann mit Kritik nicht umgehen. Das hat schon zu so mancher Kurzschlussreaktion geführt, so wie gestern Nacht.


    Vielen Dank für die Wiederherstellung des Beitrags.

    :danke_ATDE:


    so wie ich Deinen Beitrag einfach wiederhergestellt habe

    Vielleicht lässt sich ja auch mein früherer Benutzername wiederherstellen...? :/:love:

    Hallo zusammen, hier stelle ich mein erstes Raspberry-Projekt vor, eine:


    Kameraüberwachung des Hauseingangs mit Raspberry Pi Zero


    :!:Jeder, der das System nachbauen will ist herzlich eingeladen, sämtliche hier geposteten Informationen zu kopieren und zu verwenden :)


    Ich habe diesen Post bewusst so gestaltet dass man hier alle benötigten Informationen findet, und nicht noch mit 18 geöffneten Browsertabs sich mühsam von unterschiedlichen Internetseiten alles zusammensuchen muss. Sozusagen eine A-Z-Anleitung und Projektvorstellung aus einer Hand.


    Hier die Eckdaten des Projektes. Man kann:

    • mit einem Computer auf die gespeicherten Kameravideos (Bewegungserkennung) bequem zugreifen
    • mitbekommen was am Kamerastandort los ist/war, auch wenn man nicht zu Hause ist/war
    • Kameravideos in seinem Google-Drive-Account, die automatisch hochgeladen werden, wiederfinden und abspielen
    • den Videostream von überall auf der Welt beobachten, zum Beispiel vom Smartphone aus
    • per "Fernwartung" (SSH) auf den Raspberry zugreifen um Konfigurationen vorzunehmen, sowohl vom lokalen Netzwerk aus, als auch vom Internet
    • einen großen Sichtbereich abdecken, dank 120-Grad-Weitwinkelkamera
    • einen nahezu beliebigen Standort wählen, da drahtlose WLAN-Anbindung
    • eine preisgünstige Videoüberwachung mitsamt Aufzeichnung realisieren

    Hier noch ein paar Impressionen des fertigen Projekts:


    Videodateien der Bewegungserkennung in Nautilus


    Livestream am Handy


    Da kommt noch 'ne schöne Aufputzsteckdose,

    und eine saubere Verdrahtung hin, keine Angst :)


    Dieses Kameramodell passt zwar vorne durch das

    Gehäuseloch, hält aber erstens nicht richtig weil das

    Loch viel größer ist als das Objektiv, außerdem müsste

    die Kamera hinten auf dem Flachbandkabel sitzen, und

    nicht vorne. Für eine Montage im Kameraloch ist das

    Flachbandkabel also genau um 180 Grad verdreht und

    eine Montage im weißen Deckel somit nicht möglich.

    Glücklicherweise waren auf der Rückseite des

    Flachbandkabels zwei doppelseitige Klebebänder,

    die werden schon gewusst haben, warum ;)


    Schnell noch ein Loch in den

    weißen Deckel gebohrt, und mit

    einem Winkel an der Dachsparre

    befestigt. So lässt sich die Kamera

    für Wartungsarbeiten ohne

    Aufwand aus dem Clip-Verschluss

    des Deckels abnehmen.




    Also, los gehts.

    Die verwendete Hardware

    Ich habe folgende Komponenten eingesetzt:


    Für die Kamera:

    • Raspberry Pi Zero mit Gehäuse: RPIZ-ZWPC
    • Netzteil, 1A, mit Micro-USB-Anschluss: 8003512
    • Kameramodul: RPIZ-CAM-WA (Beim Kameramodul empfehle ich allerdings eine original Raspberry-Kamera, zum Beispiel diese hier: RASP CAN 2, inklusive Zero-Adapter RPIZ CAM FL3,8. Ist zwar teurer, aber meine Erfahrungswerte haben mittlerweile gezeigt, dass sich die Billig-Kameras gerne mal festfressen und daraufhin das ganze System hängenbleibt)
    • SD-Karte mit 32 GB, damit auch jede Menge Fotos und Videos draufpassen*: 740617274707

    Alles zusammen kostet ca. 40,- Euro.


    * (meine SD-Karte ist von HAMA und vom Händler im Ort, weil ich die bestellte SD-Karte gekillt habe, deswegen also nicht wundern wenn auf den Fotos eine Hama-SD-Karte auftaucht)


    Wem eine Überwachung per Handy und Computer nicht reicht, der kann sich zusätzlich noch einen Monitor an die Wand klatschen:

    ** (vielleicht etwas übertrieben für eine einfache Streamdarstellung, aber ich plane noch weitere Aufgaben für diesen Raspberry)


    *** Anmerkung: Für zukünftige Projekte würde ich persönlich ein IPS-Display verwenden statt des oben genannten LCD's. Das Bild ist nur erkennbar, wenn man rechts neben dem Monitor steht, bei der Betrachtung von links wird ein Negativ-Effekt sichtbar und die Farben kehren sich um. Die Auflösung von 480x320 ist außerdem zu gering, teilweise passen Fensterdialoge von Raspbian nichtmal komplett auf's Bild und man muss mit der Tab-Taste navigieren und erraten, ob man auf der richtigen Schaltfläche ist. Die Aktualisierungsrate dieses Displays liegt bei gefühlt 3 Frames pro Sekunde, also für Videostreaming dann doch eher ungeeignet. Ich empfehle daher eine Mindestauflösung von 800x480 und ein Blickwinkelunabhängiges IPS-Display mit HDMI-Ansteuerung. Tja, wiedermal am falschen Ende gespart :)


    Zum Konfigurieren und Installieren verwendete ich:

    • Laptop mit Ubuntu 18.04.02 LTS

    Vorbereiten der SD-Karte

    Zunächst habe ich mir Raspbian Stretch Lite heruntergeladen.


    forum-raspberrypi.de/attachment/20589/


    Unter "Laufwerke" und "Laufwerksabbild wiederherstellen" (Ubuntu) wurde dann das Betriebssystem-Image auf die SD-Karte geschrieben.



    Um für die folgenden Änderungen auf die SD-Karte zugreifen zu können, nimmt man diese nach dem Image-Schreibvorgang kurz aus dem Computer und steckt sie dann wieder rein. Die Karte wird dann automatisch von Ubuntu in's Dateisystem eingehängt.


    WLAN


    Als erstes wird der WLAN-Zugang eingerichtet. Dazu geht man in's Terminal mit STRG+ALT+T, und bearbeitet die entsprechende Konfigurationsdatei direkt auf der SD-Karte mit folgendem Befehl:

    sudo nano /media/<benutzername>/rootfs/etc/wpa_supplicant/wpa_supplicant.conf


    forum-raspberrypi.de/attachment/20590/


    und passt diese folgendermaßen an:

    Code
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    country=DE
    network={
        ssid="<netzwerkname>"
        scan_ssid=1
        psk="<schlüssel>"
        key_mgmt=WPA-PSK
    }

    "scan=ssid=1" ist normalerweise nicht nötig, habe ich aber eingefügt, weil mein WLAN unsichtbar ist und keine SSID übermittelt. Gespeichert und geschlossen wird die Datei mit STRG+O, Enter, STRG+X.


    SSH


    Anschließend muss man noch dafür sorgen, dass man zu jeder Zeit in einem Terminalfenster per SSH auf den Raspberry zugreifen kann. Um dies zu ermöglichen, wechselt man auf der SD-Karte in die Boot-Partition mit

    cd /media/<benutzername>/boot/

    und fügt dort mit den Befehlen

    touch ssh

    und STRG+C eine neue leere Datei ein.


    Abschließend schmeißt man die SD-Karte wieder aus dem Dateisystem mit folgenden Befehlen:

    umount /media/<benutzername>/boot/

    und

    umount /media/<benutzername>/rootfs/


    Jetzt wird die SD-Karte aus dem Computer entnommen und in den (stromlosen, nicht eingesteckten) Raspberry Zero gesteckt.

    Zugriff auf den Zero über's Netzwerk überprüfen

    Nachdem der Raspberry Pi Zero mit Strom versorgt wurde und gebootet hat (erkennbar an der flackernden grünen LED während des Startvorgangs), sollte er sich aus dem Netzwerk ansprechen lassen. Im LAN taucht der Zero normalerweise mit "raspberrypi" auf. Auf der Fritz!Box kann man das leicht überprüfen, in dem man im Menü auf "Heimnetz" und "Netzwerk" klickt. Dort werden alle Netzwerkgeräte aufgelistet.

    IP-Adresse und Netzwerkname des Zero festlegen

    Ich persönlich empfinde die Konfigurationsarbeit als einfacher, wenn bestimmte Netzwerkgeräte feste IP-Adressen haben. Zum Beispiel meine Raspberrys. Andere Geräte, wie etwa Smartphones oder Computer, werden bei mir per DHCP automatisch mit IP's versorgt.


    Um die IP-Adresse des Zero fest einzustellen, verbinden wir uns zunächst per SSH in einem Terminal mit dem Raspberry. Der Befehl dazu lautet:

    ssh pi@raspberrypi

    Die folgende Abfrage bestätigt man dann mit "yes" und Enter. Anschließend ist noch das Standardkennwort "raspberry" erforderlich, und wir sind drin! :)


    Um eine ganz bestimmte IP-Adresse für den Zero festzulegen, öffnet man die entsprechende Konfigurationsdatei mit dem Befehl

    sudo nano /etc/dhcpcd.conf

    In der Datei habe ich dann folgenden Abschnitt hinzugefügt bzw. die entsprechenden Zeilen angepasst und auskommentiert:

    Code
    interface wlan0
    static ip_address=10.0.0.206/8
    static routers=10.0.0.1
    static domain_name_servers=10.0.0.1

    ...wobei hier die 206 frei gewählt wurde und für den Raspberry Zero steht. Die Datei wird wieder mit STRG+O, Enter, STRG+X gespeichert und geschlossen.


    Für das standardmäßige 192er-Netz der Fritz!Box sähe das ganze z. B. folgendermaßen aus:

    Code
    interface wlan0
    static ip_address=192.168.178.206/24
    static routers=192.168.178.1
    static domain_name_servers=192.168.178.1


    Jetzt legen wir noch einen Netzwerknamen für den Zero fest. Im Terminal rufen wir dazu

    sudo raspi-config

    auf. Mit den Pfeiltasten navigieren wir zu "Network Options", wählen mit der Tab-Taste "Select" und bestätigen mit Enter. Jetzt wählen wir "Hostname" und bestätigen wieder mit "Select". Der folgende Hinweis kann mit Enter bestätigt werden. Jetzt fordert uns der Raspberry auf: Please enter a hostname". Ich habe "eg-haustuer-aussen" gewählt. Nachdem der Name eingetippt wurde, wird mit "Ok" bestätigt.



    Damit nicht jeder Unbefugte an unserem Schätzchen herumfuchteln kann, legen wir nun noch ein neues Passwort für den Zero fest. Dazu wählen wir den Menüpunkt "Change User Password", geben zweimal hintereinander das neue Passwort ein, und bestätigen dann mit "Ok".


    Nun wird noch der CSI-Port (Kameraanschluss für das Flachbandkabel) aktiviert. Dazu geht man in das Menü "Interfacing Options" und anschließend auf "Camera" und "Select". Hier kann dann der Anschluss mit "Enable" aktiviert werden.




    Jetzt noch den RaspberryPi neu starten.


    Nun ist der Zero ab sofort im Netzwerk mit der von uns festgelegten IP-Adresse und unserem gewählten Namen erreichbar. Ich zum Beispiel erreiche meinen Raspberry entweder mit

    ssh pi@eg-haustuer-aussen

    oder mit

    ssh pi@10.0.0.206

    Montageort wählen

    Bevor die Kamera endgültig am finalen Platz montiert wird, empfehle ich eine Überprüfung der WLAN-Signalstärke mit wavemon, dieses nette Tool lässt sich mit

    sudo apt-get install wavemon

    schnell installieren und benötigt weder Einrichtung noch Konfiguration.


    Nachdem das Tool mit

    wavemon

    im Terminal auf einer SSH-Sitzung aufgerufen wurde, kann man am Laptop schön mitverfolgen wie sich mit wechselnden Kamerapositionen die WLAN-Signalstärke ändert und den Montageort dementsprechend festlegen.


    Meine Experimente haben gezeigt, dass ein "signal level" von weniger als ca. -75 dBm nicht mehr hinnehmbar ist, die Übertragungsraten werden dann zu gering, und auch das Anmelden per SSH dauert dann eine Ewigkeit. Ab etwa -80 bis -85 dBm geht dann fast gar nix mehr, hier beginnt der Videostream sporadisch für mehrere Sekunden auszusetzen. Die "link quality" kann auch weit nach unten gehen - solange der obere Balken grün bleibt, funktioniert alles.


    Kameraüberwachungsprogramm "motion" installieren

    Wir verbinden uns im Terminal wieder per SSH, in meinem Fall lautet der Befehl dazu:

    ssh pi@eg-haustuer-aussen

    Dann noch das Kennwort eintippen, und wir sind wiedermal "drin" ;)


    Betriebssystem aktualisieren


    Anschließend bringen wir das Betriebssystem auf den neuesten Stand mit

    sudo apt-get update

    und

    sudo apt-get upgrade

    Je nach Internetanbindung kann der Upgradevorgang schon eine Weile dauern.


    Kernelmodule beim Systemstart laden, damit die Kamera erkannt wird


    Im Terminal die folgenden zwei Zeilen eintragen, und mit Enter bestätigen:

    Code
    echo "v4l2_common" | sudo tee -a /etc/modules
    echo "bcm2835-v4l2" | sudo tee -a /etc/modules


    Danach wird die Kamera bei jedem Neustart erkannt.


    motion installieren


    Nun wird motion installiert. Dies geschieht ganz einfach mit dem Befehl

    sudo apt-get install motion


    Verzeichnisse erstellen und vorbereiten


    Nach abgeschlossener Installation müssen wir noch ein paar Konfigurationsanpassungen und Einrichtungen vornehmen. Zunächst erstellen wir zwei Verzeichnisse. Eines für die Aufnahmen der Kamera, und ein weiteres für Log-Dateien.


    Wir erstellen ein Kameraverzeichnis und vergeben die entsprechenden Schreibrechte für motion:

    Code
    mkdir /home/pi/cam/
    sudo chgrp motion /home/pi/cam/
    chmod g+rwx /home/pi/cam/


    Dann noch das Logverzeichnis erstellen und wieder die entsprechenden Schreibrechte für motion vergeben:

    Code
    mkdir /home/pi/log/
    sudo chgrp motion /home/pi/log/
    chmod g+rwx /home/pi/log/


    In der Standardeinstellung sind Kameradateien und Logdatei in einem einzigen Verzeichnis untergebracht, ich habe es aber lieber getrennt, damit beim Synchronisieren mit Google Drive nicht jedesmal dutzende Megabyte an Logdaten übertragen werden müssen und damit es übersichtlicher bleibt. Außerdem verhindert man so, dass versehentlich auch die Logdatei mitgelöscht wird, wenn man meint, den Videoordner leerräumen zu müssen (Alle Dateien markieren + löschen + dabei die motion.log übersehen).


    motion nach Neustart immer ausführen


    Damit motion bei jedem Neustart ausgeführt wird, muss die entsprechende Konfigurationsdatei mit

    sudo nano /etc/default/motion

    geöffnet und angepasst werden. Wir ändern folgene Zeile von "no" auf "yes":

    start_motion_daemon=yes


    Konfigurationsdatei von motion anpassen


    Bevor wir an der Datei herumexperimentieren, machen wir zunächst eine Sicherungskopie mit

    sudo cp /etc/motion/motion.conf /etc/motion/motion.conf.backup


    Nun öffnen wir mit

    sudo nano /etc/motion/motion.conf

    die Konfigurationsdatei von motion und passen diese noch entsprechend an.


    Starten in daemon mode auf "on" stellen:

    Code
    # Start in daemon (background) mode and release terminal (default: off)
    daemon on


    Speicherort für die Logdatei:

    Code
    # Use a file to save logs messages, if not defined stderr and syslog is used. ($
    logfile /home/pi/log/motion.log


    Bilddrehung, falls die Kamera kopfüber hängt oder verdreht ist:

    Code
    # Rotate image this number of degrees. The rotation affects all saved images as
    # well as movies. Valid values: 0 (default = no rotation), 90, 180 and 270.
    rotate 180


    Auflösung und Framerate - hier muss man etwas herumexperimentieren. Wie das geht, erläutere ich weiter unten. Zwar können die allermeisten Kameramodule Full HD mit 30 Bildern pro Sekunde liefern, diese Datenmenge aber in's WLAN zu pressen ist mit einem Zero nahezu unmöglich - dafür ist er zu leistunggschwach und auch die onboard-WLAN-Antenne bei größeren Entfernungen zum Accesspoint nicht mehr ausreichend. Ist die Kamera um 90 oder 270 Grad verdreht, muss man width (320 statt 480) und height (480 statt 320) vertauschen, da ja sozusagen sonst vom Quer- ins Hochformat gewechselt wird. Folgende Einstellungen klappen bei mir sehr gut:

    Code
    # Image width (pixels). Valid range: Camera dependent, default: 352
    width 480
    
    # Image height (pixels). Valid range: Camera dependent, default: 288
    height 320
    
    # Maximum number of frames to be captured per second.
    # Valid range: 2-100. Default: 100 (almost no limit).
    framerate 10


    Nun zur Empfindlichkeit für die Bewegungserkennung. Bei einem Wert von 500 (vorausgesetzt die oben genannte Auflösung wird verwendet) reagiert die Bewegungserkennung bereits auf Katzen oder Igel. Falls nur auf Menschen oder Fahrzeuge reagiert werden soll, muss man den Wert entsprechend raufdrehen - auf 1000 oder noch mehr.

    Code
    # Threshold for number of changed pixels in an image that
    # triggers motion detection (default: 1500)
    threshold 500


    Damit auch wirklich ein komplettes Ereignis in einer Videodatei gespeichert, und nicht vorne oder hinten abgeschnitten wird, habe ich noch "pre_capture" und "post_capture" angepasst:

    Code
    # Specifies the number of pre-captured (buffered) pictures from before motion
    # was detected that will be output at motion detection.
    # Recommended range: 0 to 5 (default: 0)
    # Do not use large values! Large values will cause Motion to skip video frames $
    # cause unsmooth movies. To smooth movies use larger values of post_capture ins$
    pre_capture 5
    
    # Number of frames to capture after motion is no longer detected (default: 0)
    post_capture 50


    Die Ausgabe von Fotos nach einem Ereignis habe ich abgeschaltet und statt dessen die Videoausgabe aktiviert. Diese Einstellung kann man je nach Wunsch ein- oder ausschalten:

    Code
    # Output 'normal' pictures when motion is detected (default: on)
    # Valid values: on, off, first, best, center
    # When set to 'first', only the first picture of an event is saved.
    # Picture with most motion of an event is saved when set to 'best'.
    # Picture with motion nearest center of picture is saved when set to 'center'.
    # Can be used as preview shot for the corresponding movie.
    output_pictures off


    Falls Bewegungen erkannt werden, wird eine Videodatei mit dem Ereignis erstellt:

    Code
    # Use ffmpeg to encode movies in realtime (default: off)
    ffmpeg_output_movies on


    Den Videocodec habe ich von mpeg4 auf mp4 umgestellt, da einige Geräte im Haus dieses Videoformat nicht wiedergeben konnten (zum Beispiel ein Raspberry Pi 3 B+ mit Raspbian):

    Code
    # Codec to used by ffmpeg for the video compression.
    ffmpeg_video_codec mp4


    Am linken und rechten unteren Bildschirmrand kann man sich frei wählbare Informationen einblenden lassen. Bei mir steht links unten der Kamerastandort, und rechts unten das Datum und die Uhrzeit. Damit man den Text auch auf kleinen Bildschirmen noch gut lesen kann, wurde die Schriftgröße mit "text_double on" vergrößert.


    Im folgenden Abschnitt kann man das Ausgabeverzeichnis für Fotos und Videos festlegen:

    Code
    # Target base directory for pictures and films
    # Recommended to use absolute path. (Default: current working directory)
    target_dir /home/pi/cam


    Der Dateiname von ausgegebenen Videos lässt sich ebenfalls nahezu beliebig anpassen. Selbst wenn sich Punkte oder Doppelpunkte im Dateinamen befinden (wegen der besseren Lesbarkeit von Datums- und Zeitangaben) läuft alles tadellos - ich habe es erfolgreich getestet. Die Videodateien mit den Sonderzeichen im Namen lassen sich ohne Probleme im Netzwerk herumkopieren, auf Google Drive hochladen, am Handy betrachten oder per E-Mail versenden.

    Code
    # File path for motion triggered ffmpeg films (movies) relative to target_dir
    # Default: %v-%Y%m%d%H%M%S
    # File extensions(.mpg .avi) are automatically added so do not include them
    movie_filename %d.%m.%Y-%H:%M:%S


    Nun müssen wir noch den Zugriff auf den Kamerastream (= das Livebild) erlauben, und setzen dazu folgende Einstellung:

    Code
    # Restrict stream connections to localhost only (default: on)
    stream_localhost off


    Damit nicht jeder Nutzer auf das Livebild zugreifen kann, habe ich den Videostream mit einem Passwort geschützt:

    Code
    # Set the authentication method (default: 0)
    # 0 = disabled
    # 1 = Basic authentication
    # 2 = MD5 digest (the safer authentication)
    stream_auth_method 1
    
    # Authentication for the stream. Syntax username:password
    # Default: not defined (Disabled)
    stream_authentication pi:geheimespasswort


    Nachdem alles angepasst ist, wird die motion.conf mit STRG+O, Enter und STRG-X gespeichert und geschlossen.


    Dann wird mit

    sudo reboot

    der Zero neu gestartet. Bis ein Livebild geliefert wird, dauert es nach dem Einschalten bzw. Neustart etwa 30 Sekunden.


    Normalerweise müsste man jetzt schon ein Livebild bekommen. Wir testen das im Browser an einem Computer mit folgender Eingabe in der Adresszeile:

    http://eg-haustuer-aussen:8081 + Enter.

    Den Netzwerknamen muss man dann natürlich durch den selbst gewählten ersetzen.

    Herumexperimentieren mit den motion.conf-Einstellungen

    Bildgröße und Framerate


    Um feststellen zu können, wie viel Bildschirmauflösung und Frameraten das ganze System leisten kann, "spielen" wir nun etwas mit der Konfiguration herum. Nachdem eine Änderung gemacht ist wird der motion-Dienst neu gestartet und anschließend geprüft, wieviele CPU-Ressourcen dieser verbrät.


    Zunächst öffnen wir wieder unsere Konfiguration mit

    sudo nano /etc/motion/motion.conf

    Im Abschnitt "height" und "width" kann dann schrittweise eine höhere Auflösung getestet werden, zum Beispiel height 720 und width 1280.

    Code
    # Image width (pixels). Valid range: Camera dependent, default: 352
    width 1280
    
    # Image height (pixels). Valid range: Camera dependent, default: 288
    height 720
    
    # Maximum number of frames to be captured per second.
    # Valid range: 2-100. Default: 100 (almost no limit).
    framerate 10


    Nachdem die Bildschirmauflösung geändert wurde, verlassen wir die Datei mit STRG+O, Enter, STRG-X. Anschließend wird der motion-Dienst mit

    sudo service motion restart

    neu gestartet. Am Betrachtungscomputer muss man den Livestream aktualisieren (meistens Taste F5), damit dieser wieder startet und aktuelle Bilder liefert.


    Wichtig: Bei mir ist es so, dass motion nur offizielle Auflösungen unterstützt (wie z. B. 1280x720). Werte die dazwischen liegen oder "krumm" sind (z. B. 1597x889), werden nicht akzeptiert und der motion-Dienst startet nicht (feststellbar mit dem Befehl "top", siehe nächster Absatz).


    Mit dem Befehl

    top

    lässt sich am Zero die aktuelle CPU-Auslastung anzeigen. Falls der motion-Dienst nahe an der 100-%-Marke liegt, waren die vorherigen Einstellungen zuviel des Guten, und man muss eine geringere Auflösung wählen. Auf diese Art kann man etwas mit Bildgrößen und Frameraten herumexperimentieren, bis die idealen Werte gefunden sind. Bei mir liegt die CPU-Last von "motion" mit einer gewählten Auflösung von 1280x720 und einer Framerate von 10 bei durchschnittlich 92 %. Daher verwende ich 480x320 bei 10 Frames pro Sekunde. Hier beansprucht der motion-Dienst dann nur noch ca. 15 % CPU und es bleibt auch noch für andere Aufgaben (SSH, WLAN-Upload, etc...) genug Rechenzeit übrig.



    Trotz allem ist eine Verzögerung feststellbar, vom Auftreten des realen Ereignisses vor der Kamera, bis zur Anzeige am Monitor. Ist die WLAN-Anbindung perfekt, vergeht etwa eine halbe Sekunde, bei schlechtem WLAN-Signal sind es etwa 3 bis 4 Sekunden bevor man sieht, was an der Haustür los ist.


    Empfindlichkeit der Bewegungserkennung


    Bevor man die motion.conf 20-mal öffnet und ändert, kann man die Empfindlichkeit der Bewegungserkennung auch einfacher feststellen. Dazu lassen wir uns auf dem Livebild die Variable "changed pixels" anzeigen. Dies erzeugt auf dem Webcambild eine Zahl die angibt, wieviele Pixel sich gerade ändern, wenn sich etwas durch das Bild bewegt. Ich habe mir dazu in der motion.conf einen Debugmodus gebastelt, der so ziemlich alle relevanten Werte auf das Livebild draufpackt. Der entsprechende Abschnitt der motion.conf sieht folgendermaßen aus:



    Wie man sieht, gibt es "text_right" zweimal. Je nachdem ob man nur Uhrzeit und Datum, oder alle Informationen angezeigt haben möchte, kommentiert man entweder die eine oder die andere Zeile mit ";" aus. Auf dem Webcambild sieht mein DEBUG-MODE dann folgendermaßen aus:



    Wichtig ist hier der Parameter "CHANGED PX". Man kann jetzt entweder warten, bis der Gartenigel anfängt seine Runde zu drehen, oder selbst für Pixeländerungen im Bild sorgen. Die Anzeige "CHANGED PX" behält man währenddessen (zum Beispiel am Laptop) genau im Blick und erhält so einen Richtwert für die optimale Einstellung. Bei mir hat sich "500" bewährt. Die Kamera reagiert noch nicht auf Laub oder Schattenspiele, aber auf Katzen. Dieser Wert wird dann in der motion.conf in folgendem Abschnitt eingetragen:

    Code
    # Threshold for number of changed pixels in an image that
    # triggers motion detection (default: 1500)
    threshold 500


    Anschließend wieder den motion-Dienst mit

    sudo service motion restart

    neu starten, und die Bewegungserkennung sollte ab jetzt zuverlässig funktionieren.

    Einrichten einer automatischen Synchronisierung zu Google Drive

    Damit, aus welchen Gründen auch immer, keine Beweismittel verloren gehen (zum Beispiel wenn der Postbote aus Langeweile den Briefkasten runterreißt), habe ich noch einen automatischen Google-Drive-Upload eingerichtet - hier sind die Daten von überall aus abrufbar und auch besser aufgehoben als auf einer nicht ganz so zuverlässigen SD-Karte, die mitsamt dem Raspberry draußen Wind und Wetter ausgesetzt ist.


    Programm herunterladen


    Nun rufen wir mit einem PC den Link https://github.com/gdrive-org/gdrive auf, scrollen runter bis zum Abschnitt "Downloads" und laden uns die Datei "gdrive-linux-rpi" auf den (ganz normalen, nicht Raspberry) Computer herunter.


    forum-raspberrypi.de/attachment/20587/


    Diese heruntergeladene Datei müssen wir jetzt auf den Raspberry schicken. Das passiert mit folgendem Befehl (Netzwerkname des Raspberrys einfach ersetzen):

    scp gdrive-linux-rpi pi@eg-haustuer-aussen:/home/pi/


    Wenn alles geklappt hat, befindet sich jetzt die Datei gdrive-linux-rpi auf unserem Raspberry im Homeverzeichnis /home/pi/.


    Aus Bequemlichkeitsgründen bzw. wegen der besseren Lesbarkeit habe ich die Datei in "gdrive" umbenannt mit:

    mv /home/pi/gdrive-linux-rpi /home/pi/gdrive


    Damit die Datei auch aufgerufen werden kann und ihre Arbeit verrichtet, wird sie mit

    chmod +x /home/pi/gdrive

    ausführbar gemacht.


    Ich bin mir jetzt nicht Hundertprozentig sicher wo die Datei gdrive hingehört, aber ich denke im Verzeichnis /usr/local/bin ist sie gut aufgehoben, weil auch die $PATH-Variable darauf zeigt und das Programm deswegen ohne Angabe eines kompletten Pfades aufgerufen werden kann. Also hin damit:

    sudo mv /home/pi/gdrive /usr/local/bin/

    Nun hat gdrive seinen Bestimmungsort erreicht und ist von nun an bereit zum Werkeln.


    gdrive und Google Drive konfigurieren


    Zunächst muss gdrive mit dem eigenen Google-Drive-Account verbunden werden bzw. die nötigen Rechte erhalten. Mit dem Befehl

    gdrive about

    startet man die Einrichtung.


    Anschließend öffnet man den angezeigten Link im Browser, erteilt Google die Zugriffsrechte, und trägt den Verifizierungscode im Terminal ein.



    Ist die Einrichtung abgeschlossen, überprüfen wir nochmal mit

    gdrive about

    die Konfiguration. Die Ausgabe sollte dann in etwa so aussehen:




    Jetzt richten wir in Google Drive einen neuen Ordner ein, in dem die Kameravideos und -fotos gespeichert werden.


    In meinem Fall habe ich folgende Verzeichnisstruktur auf Google Drive angelegt:


    /Überwachungskameras Videos und Fotos/eg-haustuer-aussen/



    Es kommen sicher noch weitere Überwachungskameras dazu, hier werden dann weitere entsprechende Unterordner auf Google Drive erstellt, zum Beispiel "eg-gartentor-eingang" oder "ug-garage-einfahrt".


    Videos aus der motion-detection automatisch auf Google Drive hochladen


    Mein Zero an der Haustür ist so programmiert, dass er täglich um Mitternacht einen Abgleich mit Google Drive macht. Sind neue Bewegungserkennungs-Videos hinzugekommen, werden diese automatisch in die Cloud hochgeladen.


    Das automatisierte Hochladen ist in zwei Teile ausgelagert:

    1. ein Skript, welches eine Verbindung zu Google Drive aufbaut und die Dateien hochlädt
    2. eine zeitgesteuerte Aufgabe, die das Skript zu festgelegten Zeiten startet

    Zunächst starten wir mit der Erstellung des Skripts. Dazu wird im Homeverzeichnis (/home/pi/) mit dem Befehl

    nano /home/pi/sync-camfiles-to-google-drive.sh

    eine leere Datei erstellt.


    Diese Datei "befüllen" wir nun so, wie im folgenden Abschnitt zu sehen. Die lange unleserliche ID in Zeile 10 teilt dem Programm gdrive mit, in welches Verzeichnis die Dateien hochgeladen werden sollen. Wie man diese ID herausfindet, wird nach dem Quellcode-Abschnitt gezeigt.

    Bash
    #!/bin/sh
    
    # Skript überträgt neue Camvideos und Fotos, die aus der motion detection vom Dienst motion stammen, auf google drive
    
    # Aktuelles Datum und aktuelle Uhrzeit in log-Datei schreiben
    datum=$(date +"%d.%m.%Y %H:%M:%S")
    echo "\n\n\n${datum}\n###################" >> sync-camfiles-to-google-drive.log
    
    # Synchronisierung beginnen und Meldungen in log-Datei schreiben
    gdrive sync upload /home/pi/cam/ 1OeMNDpb9LPUGnC****************** >> sync-camfiles-to-google-drive.log


    Bei mir entspricht die ID "1OeMNDpb9LPUGnC******************" aus Zeile 10 dem Ordner "eg-haustuer-aussen" auf Google Drive. An diese ID kommt man relativ einfach mit dem Befehl

    gdrive list --query "name contains 'eg-haustuer-aussen'"

    den wir in einem zweiten Terminalfenster ausführen. Den Text "eg-haustuer-aussen" muss man dann natürlich mit dem Ordnernamen ersetzen, zu dem man die entsprechende ID haben will. Die Ausgabe sieht dann etwa so aus:



    Diese ID markieren wir mit der Maus und drücken anschließend STRG+SHIFT+C um diese zu kopieren.


    Dann wechseln wir wieder in's andere Terminal zu unserem Skript, und fügen die ID mit der Tastenkombination STRG+SHIFT+V an der entsprechenden Stelle ein.


    Mit den bereits bekannten Tastenkombinationen STRG+O, Enter, und STRG+X wird die Datei gespeichert und geschlossen. Die Log-Datei in Zeile 7 muss nicht extra erstellt werden, sondern wird vom Skript automatisch angelegt.


    Bevor das Skript gestartet werden kann, müssen wir es noch mit

    chmod +x sync-camfiles-to-google-drive.sh

    ausführbar machen.


    Nun testen wir erstmal das Skript, bevor wir es automatisiert ablaufen lassen. Dazu rufen wir es auf mit:

    ./sync-camfiles-to-google-drive.sh

    Je nachdem wieviele Dateien schon von der Kamera auf die SD-Karte geschrieben wurden, und auch je nach Internetanbindung, dauert der Uploadvorgang auch schon mal ein paar Minütchen. Wir warten geduldig ab, bis wir wieder an der Eingabeaufforderung landen. Anschließend sehen wir uns mit

    nano sync-camfiles-to-google-drive.log

    die Logdatei an, die in etwa so aussehen müsste:



    Auf Google Drive sieht das Ganze dann so aus:



    Google-Drive-Synchronisierung automatisieren


    Damit wir uns nicht immer einloggen und das Skript per Hand starten müssen, legen wir einen entsprechenden Job an, der das automatisch für uns erledigt. Zunächst rufen wir

    crontab -e

    auf.


    In die letzte Zeile tragen wir ein:

    Code
    # Täglich um Mitternacht Kameravideos und -Fotos mit Google Drive synchronisieren
    0 0 * * * /home/pi/sync-camfiles-to-google-drive.sh

    Wichtig: Nach der letzten Zeile Enter drücken, um noch eine Leerzeile einzufügen, ansonsten zickt eventuell die Job-Ausführung.


    Gespeichert wird wieder mit STRG+O, Enter, STRG+X.


    Das war's. Von nun an werden immer Punkt Mitternacht alle neu angefallenen Videos mit Google Drive synchronisiert.

    Webcam-Livestream am Computer anzeigen

    Man kann den Livestream entweder in einem normalen Browserfenster öffnen, oder sich aber auch ein kleines Skript basteln, welches den Browser ohne Menüleiste und in minimaler Ansicht darstellt. So spart man Platz und man kann gleich mehrere Webcams auf dem Bildschirm platzsparend unterbringen.


    Wir wechseln also wieder vom Raspberry an den normalen Computer, öffnen ein Terminal, und erstellen eine leere Datei im Home-Verzeichnis:

    nano show-livestream-eg-haustuer-aussen.sh

    Das "eg-haustuer-aussen" natürlich wieder nach eigenen Vorstellungen anpassen ;)


    Da ich ein Fan von Chrome und Chromium bin, habe ich das ganze auch über diesen Browser realisiert.


    Mit der Option --app startet der Browser in minimaler Ansicht, mit --window-size legt man die Fenstergröße fest. Der Schalter --disable-extensions schaltet alle Erweiterungen ab.

    Bash
    #!/bin/sh
    /snap/bin/chromium -app=http://pi:geheimeskennwort@eg-haustuer-aussen:8081 --window-size=480,320 --disable-extensions

    "geheimeskennwort" und "eg-haustuer-aussen" müssen natürlich noch ersetzt werden.


    Und wieder das alte Lied: Speichern und schließen mit STRG+O, Enter, STRG+X.


    Jetzt noch eine ausführbare Datei draus machen:

    chmod +x show-livestream-eg-haustuer-aussen.sh


    Damit der Dateimanager "Nautilus" unter Ubuntu die sh-Datei bei einem Aufruf auch ausführt und nicht nur als Textdatei darstellt, ist folgende Anpassung nötig:

    • Nautilus öffnen
    • Auf "Dateien" und "Einstellungen" gehen
    • Im Reiter "Verhalten" bei "Ausführbare Textdateien" den Punkt "Ausführen" anwählen

    Nun sieht man nach einem Doppelklick auf die sh-Datei den Livestream der Kamera in einem kleinen Browserfenster. Und wenn es nicht gerade dunkel wäre, würde man sogar ein Bild sehen :)




    Fernzugriff einrichten mit einer Fritz!Box (7560)

    DynDNS


    Zunächst müssen wir sicherstellen, dass wir immer Zugriff auf die externe IP-Adresse der Fritz!Box haben, die sich in der Regel alle 24 Stunden ändert. Dafür richten wir uns bei einem DynDNS-Anbieter ein Konto ein. Ich habe ddnss.de gewählt.


    Nachdem man im Dashboard "Neuen Host erstellen" gewählt hat...



    ...vergibt man einen Namen und die Domain.



    Anschließend legt man fest ob IPv4 oder v6 verwendet werden soll...



    Dann noch auf "Jetzt erstellen" klicken und der Host ist eingerichtet.



    Den Hostnamen müssen wir uns merken bzw. kopieren, diesen brauchen wir gleich für die Einrichtung der Fritz!Box.


    Fritz!Box für Fernzugriff konfigurieren


    DynDNS aktivieren


    Damit die Fritz!Box auf DynDNS-Anfragen reagiert, müssen wir ihr unseren DynDNS-Anbieter noch bekannt geben. Die Einrichtung geschieht im Menüpunkt "Freigaben" unter "DynDNS". Die Informationen, die hier rein müssen, erfährt man beim DynDNS-Anbieter. Bei DynDNS klickt man dazu auf den Schraubenschlüssel auf der rechten Seite.



    Diese Informationen müssen wir nun an der entsprechenden Stelle in der Fritz!Box eintragen und mit "Übernehmen" aktivieren:



    Kamera aus dem Internet erreichbar machen


    Zunächst wählen wir auf der Benutzeroberfläche der Fritz!Box:

    Internet / Freigaben / Gerät für Freigabe hinzufügen



    In der Dropdown-Liste oben wählen wir unseren Raspberry (in meinem Fall eg-haustuer-aussen) und klicken dann rechts unten auf die Schaltfläche "Neue Freigabe".



    Im folgenden Fenster müssen diese Einstellungen gemacht werden:

    • Portfreigabe
    • Anwendung: Andere Anwendung
    • Bezeichnung: Frei wählbar, in meinem Fall "Überwachungskamera"
    • Protokoll TCP
    • Port an Gerät: 8081 bis 8081 (je nachdem, wie es in der motion.conf eingestellt ist)
    • Port extern: Frei wählbar. Ich habe die interne IP-Adresse des Raspberry gewählt, plus eine "81" hinten dran. Weil ich weiß, dass der Raspberry unter der IP 10.0.0.206 erreichbar ist, lässt sich so der Port leicht merken. Kommen noch weitere Raspberrys hinzu, bekommen diese die Ports 20781, 20881, 20981, und so weiter. Wenn der Port außerhalb des zulässigen Bereichs ist (maximal 65535), meldet sich die Fritz!Box sowieso und meckert.


    Dann bestätigen wir mit OK, nochmals mit OK und mit "Übernehmen".


    Anschließend erscheinen folgende Einträge in der Fritz!Box:



    Raspberry per SSH aus dem Internet erreichbar machen


    Das, was wir eben für die Kamera gemacht haben, wiederholen wir nochmals für den SSH-Fernzugriff.

    Dazu klicken wir im Menüpunkt "Freigaben" und "Portfreigaben" auf den Bearbeiten-Bleistift rechts neben unserem Raspberry und wählen "Neue Freigabe".


    Im folgenden Fenster müssen diese Einstellungen gemacht werden:

    • Portfreigabe
    • Anwendung: Andere Anwendung
    • Bezeichnung: Frei wählbar, in meinem Fall "SSH"
    • Protokoll TCP
    • Port an Gerät: 22 bis 22
    • Port extern: Frei wählbar. Ich habe wieder die interne IP-Adresse des Raspberry gewählt, plus eine "22" hinten dran. Weil ich weiß, dass der Raspberry unter der IP 10.0.0.206 erreichbar ist, lässt sich so der Port leicht merken. Kommen noch weitere Raspberrys hinzu, bekommen diese die Ports 20722, 20822, 20922, und so weiter...


    Jetzt wieder OK, OK und Übernehmen klicken.


    Wir erhalten dann folgende Darstellung:



    Fertig - von nun an lässt sich der Raspberry Zero aus dem Internet erreichen, entweder um das Kamera-Livebild anzusehen, oder sich per SSH draufzuschalten um Konfigurationen vornehmen zu können.


    Das Livebild der Kamera lässt sich folgendermaßen betrachten:


    Man tippt seine DynDNS-Adresse, gefolgt vom Port, in die Adresszeile des Browsers ein, zum Beispiel:

    mein-gewählter-hostname.ddnss.org:20681


    Da ich in der motion.conf meine Webcam mit Benutzername und Passwort gesichert habe, tippen wir diese beiden Zeilen noch ein:



    Wenn die Kamera jetzt nicht zu Testzwecken im Dachboden, sondern außen an der Tür hängen würde, wäre auch das Livebild das Richtige 8o



    Fernzugriff auf den Raspberry mit SSH


    Da ich kein Windows-Fan (mehr) bin, zeige ich den Fernzugriff am Beispiel von Linux bzw. Ubuntu.


    Man öffnet am Computer an einem x-beliebigen Standort auf der Welt ein Terminal (STRG+ALT+T) und tippt folgenden Befehl ein:

    ssh -p 20622 pi@mein-gewählter-hostname.ddnss.org


    Mit der Option "-p" teile ich der SSH-Verbindung mit, welchen Port sie benutzen soll. Die "20622" muss man dann natürlich durch den Wert ersetzen, den man in der Fritz!Box bei den Portfreigaben eingetragen hat.



    Dann noch das Raspberry-Kennwort eintippen, und wir sind drin :)


    Datenschutz-Vorkehrungen


    Noch bevor ein Besucher in den Überwachungsbereich der Kamera eintritt, sollte gut sichtbar ein Schild angebracht werden. Der Inhalt könnte etwa folgendermaßen aussehen. Entsprechende Angaben sind dann natürlich noch zu ergänzen bzw. zu ersetzen:



    Viel Spaß bei der Umsetzung!


    LG

    Christian


    PS: Sobald ich wieder Zeit und Lust habe, beschreibe ich noch die Installation und Einrichtung des Überwachungsmonitors in der Wohnung.

    ...und einen einzigen Typ, der bei 100A 50mA ausgibt.

    Es gibt zwei 100-A-Typen. Einen der je nach Last soundsoviel Strom durchlässt an den Messpins, und einen anderen der 0...1V ausgibt. Ich würde letzteren nehmen (SCT-013-000V) weil sich damit der Meßschaltungsaufbau nicht unnötig verkompliziert und ein einfacher AD-Wandler ausreicht.


    PS: Chinaware hin oder her, mit ePacket ist der Artikel innerhalb 14 Tagen da :thumbup::thumbup: