Eine Überwachungskamera lässt sich mit Bordmitteln auch auf älteren Raspberry Pi Modellen recht gut betreiben.
Beitrag auf der neuen Website:
➡ Ressourcenschonende Überwachungskamera mit einem Raspberry Pi
In einem meiner letzten Beiträge habe ich beschrieben, wie man mit einem Raspberry Pi und einer Kamera eine kleine Überwachungskamera mit motion und Syncthing konfigurieren kann. Dieses Setup funktioniert aber evtl. bei einer schwachen Hardware nicht sehr zuverlässig.
Ältere Hardware kann aber durchaus noch als Überwachungskamera verwendet werden, jedoch ohne motion.
Die Hardware
- Raspberry Pi Zero W oder Raspberry Pi Model B Rev 2
- Raspberry Pi Camera V1.3
Die Tools
- raspistill
- raspivid
Die neue Raspberry Pi Camera 3 funktioniert nicht mehr mit dem kleinen Tool raspistill und raspivid, es wird libcamera verwendet.
- https://www.raspberrypi.com/products/camera-module-3/
- https://www.raspberrypi.com/documentation/computers/camera_software.html
Das Betriebssystem Raspberry Pi OS bringt bereits alle notwendigen Tools mit einen Livestream von der Kamera auf den eingenen PC zu holen. Die Installation von weiteren Apps ist damit nicht mehr notwendig.
Die Kamera ist am Pi anzuschließen und in den Einstellungen zu aktivieren
sudo raspi-config
Interface Options --> Legacy Camera --> Enable


Den Livestream kann man nach dem Neustart des Pi auf der CLI einfach starten:
raspivid -a 12 -t 0 -w 1280 -h 720 -vf -ih -fps 30 -l -o tcp://0.0.0.0:8081
Auf dem eigenen PC / Laptop kann man dann das Kamerabild sehr einfach in der App VLC ( ➡ https://www.videolan.org/vlc/) aufrufen:
tcp/h264://ip-addresse-raspberry-pi:8081

Nun ist es immer ein wenig umständlich sich erst auf dem Raspberry Pi per SSH einzulogen, um dann den raspivid-Befehl einzugeben, um das Kamera-Livebild anzusehen.
Zudem ist der Stream ohne eine Authentifizierung aufrufbar und kann damit von jedem im Gerät im eigenen Netzwerk angeschaut werden.
Gib mir gerne einen Kaffee ☕ aus!
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.
bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj
Um beide Nachteile zu vermeiden, kann der raspivid-Befehl direkt beim SSH-Zugriff auf den Raspberry Pi aufgerufen und der Kamerastream getunnelt werden.
Es wird dazu ein Eintrag in der ~/.ssh/config
erstellt. Damit kann die SSH-Verbindung sehr einfach auf der CLI mit dem Befehl ssh kamera aufgebaut werden.
Die Option RemoteCommand bietet die Möglichkeit, dass direkt ein Befehl an den Raspberry Pi übermittelt wird.
Nachdem nun raspivid gestartet wurde, wird der Kamerastream in einen SSH-Tunnel verpackt, der dann auf dem eigenen PC in VLC aufgerufen werden kann.
Anstatt aber die IP-Adresse des Raspberry Pis einzutragen, erfolgt der Aufruf mit localhost
tcp:/h264://127.0.0.1:18000
Der Eintrag in der ~/.ssh/config
-Datei kann wie folgt aussehen
nano .ssh/config
Host kamera
HostName ip-addresse-raspberry-pi
User benutzername
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.pub
LocalForward 18000 localhost:8081
RemoteCommand raspivid -a 12 -t 0 -w 1280 -h 720 -fps 30 -l -o tcp://127.0.0.1:8081
RequestTTY yes
Die Anmeldung an meinem Raspberry Pi ist nur mit einem SSH-Schlüssel möglich, der auf einem YubiKey gespeichert ist, deshalb sind noch die beiden Optionen eingetragen
- PreferredAuthentications publickey
- IdentityFile ~/.ssh/id_rsa.pub
Weitere Informationen zum YubiKey siehe ➡ YubiKey Themenseite
Nun kann man sich jederzeit das Livebild der Kamera anschauen und mehr nicht, was manchmal zu wenig sein kann.
Mit kleinen Shellskripten und Crontabs lassen sich aber Bilder oder Videos in regelmäßigen Abständen erstellen und per E-Mail versenden.
Anstatt einem Versand per E-Mail können die Bilder / Videos z.B. auch per rsync, rclone oder Syncthing auf einen anderen Server übertragen werden.
Für den Versand von E-Mails muss ein MTA, wie Postfix, auf dem Raspberry Pi installiert werden. In meinem Manual „Nextcloud Installation und Konfiguration“ wird die Installation und Konfiguration ausführlich beschrieben.
Speicherung Bilder
Alle Bilder und Videos werden auf einen externen USB-Stick im NTFS-Format gespeichert.
Herausfinden der UUID des externen USB-Sticks
sudo blkid
Ein Eintrag in der /etc/fstab
UUID=1112222333444 /mnt/motion ntfs defaults,auto,umask=000,users,rw 0 0
Zum Schluss ist noch der Mount Point zu erstellen
sudo nano mkdir /mnt/motion
Nun kann der externe USB-Stick eingebunden werden
sudo mount -a
Auf dem USB-Stick werden die Bilder in das Verzeichnis /mnt/motion/pictures
gespeichert, welches noch anzulegen ist
sudo mkdir /mnt/motion/pictures
Bilder aufnehmen
Das Skript camera.sh kann mithilfe von raspistill Bilder aufnehmen.
sudo mkdir /etc/scripts
sudo touch /etc/scripts/camera.sh
sudo chown root:root /etc/scripts/camera.sh
sudo chmod 0644 /etc/scripts/camera.sh
sudo chmod u+x /etc/scripts/camera.sh
sudo nano /etc/scripts/camera.sh
Der Inhalt der Datei
#!/usr/bin/env bash
DATE=$(date +"%Y-%m-%d_%H%M")
# Takes an image in FULL size
#raspistill -o /mnt/motion/pictures/$DATE.jpg -rot 90
# Takes an image in SMALL size
raspistill -q 10 -e jpg -o /mnt/motion/pictures/$DATE.jpg -rot 0
# Call Script
/bin/bash /etc/scripts/newest-file.sh
exit 0
Bilder per E-Mail versenden
Das Skript newest-file.sh kann das neueste Bild in einem bestimmten Verzeichnis, hier /mnt/motion/pictures/
, per E-Mail versenden.
sudo touch /etc/scripts/newest-file.sh
sudo chown root:root /etc/scripts/newest-file.sh
sudo chmod 0644 /etc/scripts/newest-file.sh
sudo chmod u+x /etc/scripts/newest-file.sh
sudo nano /etc/scripts/newest-file.sh
Der Inhalt des Skripts:
#!/usr/bin/env bash
# E-Mail where the log file should be mailed to
EMAIL="email@adresse.de"
picpath='/mnt/motion/pictures/'
newest=$(ls -rt ${picpath}*.jpg | tail -n1)
echo $(date +%Y-%m-%d_%H-%M-%S) '- Motion detected' | mutt ${EMAIL} -a $newest -s "imow"
exit 0
Die Skripte können gleich getestet werden. Dazu ist lediglich camera.sh
aufzurufen
sudo sh /etc/scripts/camera.sh
Damit das Ganze automatisiert abläuft, ist ein CRON Job zu serstellen. In diesem Beispiel wird das Skript um 9:00 Uhr ausgeführt.
sudo crontab -e
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
00 09 * * * /bin/bash /etc/scripts/camera.sh
Bilder regelmäßig automatisch löschen
Die aufgenommenen Bilder lassen sich in regelmäßigen Abständen automatisch löschen.
sudo touch /etc/scripts/autodelete.sh
sudo chown root:root /etc/scripts/autodelete.sh
sudo chmod 0644 /etc/scripts/autodelete.sh
sudo chmod u+x /etc/scripts/autodelete.sh
sudo nano /etc/scripts/autodelete.sh
Der Inhalt des Skripts
#!/usr/bin/env bash
#
# This scripts deletes files older than x days/minutes
#
###################################
# Variables
###################################
# Script name
MAINSCRIPT=$(basename -- "$0")
# Storage device as defined in your /etc/fstab.
picpath='/mnt/motion/pictures'
###################################
# Delete Old Files
###################################
find ${picpath}/*.* -type f -mmin +10800 -exec rm {} \;
exit 0
Der CRON Job dafür kann sein
sudo crontab -e
# Autodelete
00 08 * * * /bin/bash /etc/scripts/autodelete.sh
Raspberry Pi absichern
Der Raspberry Pi sollte noch ein wenig abgesichert werden, damit er etwas sicherer als Überwachungskamera engesetzt werden kann.
In meiner Anleitung „Nextcloud Installation und Konfiguration“ habe ich bereits einige Konfigurationen beschrieben:
Bei der Firewall ufw ist für den Kamerastream kein eigener Port zu öffnen, alles wird über den SSH-Port 22 übertragen.
Zu beachten ist, dass der Kamerastream via raspivid und das Skript camera.sh nicht gleichzeitig aufgerufen werden kann. Die Kamera wird entweder von raspivid oder vom Shell Skript verwendet.
Das bedeutet, läuft raspivid, kann das Skript camera.sh keine Bilder aufnehmen und umgekehrt!
Gib mir gerne einen Kaffee ☕ aus!
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.
bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj
Fazit
Der hier dargestellte Weg ermöglicht es eine bereits in die Jahre gekommene Hardware als Überwachungskamera schnell und einfach zu konfigurieren.
Die komfortablere Lösung mit mehr Funktionen ist aus meiner Sicht der von mit beschriebene Weg mit motion und Syncthing ➡ Überwachungskamera mit einem Raspberry Pi, motion und Syncthing in 20 Minuten.
Wenn es mal wieder Raspberry Pis zu kaufen gibt, dann ist ein Raspberry Pi 3 oder 4 dafür die richtige Wahl. Es lassen sich mit dieser Hardware einfach mehr Funktionen nutzen, die mit einem Zero oder ältereren Pi-Modellen nicht möglich sind.
Foto von Mich Smith auf Unsplash

ist absolut technik-begeistert und großer Fan von Linux und Open Source. Raspberry Pi Bastler der ersten Stunde und nach wie vor begeistert von dem kleinen Stück Hardware, auf dem er tolle Projekte umsetzt. Teilt hier seine Erfahrungen mit Nextcloud, Pi-hole, YubiKey, Synology und openmediavault und anderen spannenden IT-Themen. Nutzt Markdown und LaTeX zum Dokumentieren seiner Projekte und Gitea zum Versionieren. Sitzt vor einem 49“ Monitor, nutzt Windows und MacOS zum Arbeiten, Linux auf seinen Servern und virtuellen Maschinen und hört dabei Spotify und MP3s und Radio-Streams über seinen RadioPi.