Raspberry Pi: So bauen Sie Ihr eigenes Überwachungssystem

Im Zusammenspiel mit einer Kamera und der Software Motion lässt sich aus dem Raspberry Pi ein Überwachungssystem zum Schutz der eigenen Wohnung kreieren.

Ein Überwachungssystem für die eigene Wohnung muss nicht teuer sein. Es genügen ein Raspberry Pi, eine Kamera und die im Betriebssystem Raspbian vorhandene Software Motion. Ebenfalls hilfreich ist das Betriebssystem MotionEyeOS, das speziell für das Zusammenspiel mit einem Raspberry Pi oder einem ODROID konzipiert wurde. Die von uns verwendete Raspbian-Version stammt vom April 2017 und umfasst alle verfügbaren Updates. Außerdem kam ein Kameramodul zum Einsatz.

Welcher Raspberry Pi lässt sich am besten zu einem Überwachungssystem umfunktionieren?
Vor dem Einsatz der Software Motion müssen zunächst alle Fragen zur Hardware geklärt werden. Mittlerweile gibt es nämlich verschiedene Geräte, die mehr oder weniger direkt zur Raspberry-Pi-Gruppe gehören. Abhängig von den individuellen Ansprüchen und Vorlieben bietet sich jeweils ein anderes Modell an:

Ein wichtiges Auswahlkriterium ist in diesem Zusammenhang der Stromverbrauch. In Bezug hierauf treten die Geräte A+ und Zero positiv hervor. Diese bieten zwar im Vergleich zu den Versionen 2 und 3 eine recht geringe Leistung, doch eignet sich diese ohne Einschränkung für das Arbeiten mit Motion.

Die Bedeutung von WLAN für die Überwachung
Einige Nutzer, die ein Überwachungssystem planen, sind sich unsicher, ob hierfür eine WLAN-Verbindung überhaupt benötigt wird. Grundsätzlich kann ein solches System auch ohne WLAN genutzt werden, da die Bilder auf der SD-Karte abgespeichert werden können. Allerdings muss dann jedes Mal die SD-Karte entnommen werden, wenn Sie sich die Aufnahmen ansehen möchten. Das ist zeitaufwendig und durchaus lästig. Mittels WLAN lassen sich die Aufnahmen an ein externes Speichermedium senden und können dort leicht abgerufen oder angesehen werden. Außerdem ist Motion in der Lage, Sie mittels einer E-Mail darüber zu informieren, wenn eine Bewegung im zu überwachenden Bereich festgestellt wurde. Somit ist das WLAN ein wichtiges Element bei der Planung des Überwachungssystems.

Welche Kamera eignet sich für ein Überwachungssystem am besten?
Solange eine Kamera über den V4L-Treiber verfügt, kann Motion mit ihr arbeiten. Somit kann im Grunde jede Webcam mit USB für das Projekt genutzt werden. Das war früher anders, da V4L eine ganze Zeit lang nicht offiziell unterstützt wurde, sodass ein Kameramodul nicht ohne Weiteres angeschlossen und genutzt werden konnte. Es wurden Hacks gebraucht, die das Einrichten möglich machten. Doch selbst dann war es noch vergleichsweise kompliziert. Heute können solche Kameramodule deutlich leichter eingesetzt werden, weswegen sie in immer mehr Überwachungssystemen eine wichtige Rolle spielen. Nutzer haben bei einem solchen Modul die Wahl zwischen klassischen Kameras und NoIR-Versionen. Die NoIR-Module sind vor allem für Nachtsichtaufnahmen geeignet, da sie über einen Infrarotfilter verfügen. Tagsüber allerdings sehen die Bilder gelegentlich etwas seltsam aus.

Die Konfiguration des Raspbian Pi
Zunächst muss Raspbian umfassend konfiguriert sein, bevor Sie sich dem Kameramodul widmen können. Hierfür ist es ratsam, eine WLAN-Netzwerkkarte per GUI zu konfigurieren. Hierdurch wird erreicht, dass der Raspberry selbst bei ausgeschalteter grafischer Oberfläche eine WLAN-Verbindung herstellt. Zusätzlich muss verhindert werden, dass sich die grafische Schnittstelle automatisch aktiviert. Hierfür aktivieren Sie per Mausklick unter Menü -> Einstellungen -> Raspberry-Pi-Konfiguration bei System in der Zeile Boot die Option Zum CLI. Dabei kommt Ihnen zugute, dass Motion keine GUI benötigt und somit nicht unnötig Ressourcen verbraucht werden.

Des Weiteren empfiehlt es sich, ein neues Passwort zu wählen. Das ist insbesondere dann der Fall, wenn Netzwerk und Raspberry Pi miteinander kommunizieren können sollen. Hierbei kann Motion selbst dann genutzt werden, wenn keine automatische Anmeldung erfolgt. Außerdem ist es wichtig, den SSH-Server zu aktivieren, damit auch aus der Distanz auf den Raspberry Pi zugegriffen werden kann. Das ist bei Raspberry-Pi-Konfiguration möglich, und auch später können mithilfe der Kommandozeile raspi-config Einstellungen vorgenommen oder geändert werden.

Eine weitere Aufgabe bei der Konfiguration besteht darin, die IP-Adresse des Raspberry Pi zu bestimmen, da eine feste IP für den Einsatz im Überwachungssystem sinnvoll ist. In aktuellen Routern kann festgelegt werden, dass eine bestimmte IP-Adresse immer einer bestimmten Mac-Adresse zugewiesen wird. Die aktuelle IP-Adresse lässt sich über die Kommandozeile ifconfig herausfinden. Zudem ermitteln Sie auf diesem Weg die Mac- und Hardware-Adresse. Wenn eine feste IP-Adresse vergeben wurde und ein SSH-Server zum Einsatz kommt, kann das Gerät ganz ohne Bildschirm genutzt und konfiguriert werden.

Die Vorbereitung des Kameramoduls für den Einsatz im Überwachungssystem
Wenn alle individuell gewünschten Einstellungen am System vorgenommen wurden, kann die eigentliche Arbeit am Kameramodul beginnen. Um es zu aktivieren, muss im Konfigurationsprogramm der Befehl sudo raspi-config eingegeben und das Modul über Interface Options aktiviert werden. Anschließend muss über den Befehl sudo modprobe bcm2835-v4l2 dafür gesorgt werden, dass das Modul mittels V4L-Treiber angesprochen werden kann. Gelegentlich kommt es hier zu einer Fehlermeldung, dann muss zusätzlich der Befehl sudo modprobe v4l2_common eingegeben werden. Nach diesen Schritten kann ein Neustart des Systems erforderlich werden.

Die Installation von Motion
Motion stellt direkt eine Verbindung mit dem konfigurierten Gerät her und analysiert den vorhandenen Videostream. Eine Pixeländerung wird hierbei als Bewegung wahrgenommen. Abhängig davon, welche Einstellungen bei der Konfiguration vorgenommen wurden, führt das zu einer bestimmten Folge von Aktionen. Jetzt ist das System auf Motion vorbereitet und die Software kann mittels sudo apt install motion installiert werden. Anschließend wird eine Frage gestellt, die einfach bestätigt werden muss, und schon installiert sich das System innerhalb weniger Minuten von selbst. Nach erfolgreicher Installation startet Motion allerdings nicht zwangsläufig von selbst. Wenn das gewünscht wird, muss das mittels /etc/default/motion festgelegt werden. Daraufhin werden zwei Zeilen angezeigt, von der die start_motion_daemon=no auf start_motion_daemon=yes geändert werden muss. Anschließend wird die Software automatisch gestartet und ist in der Lage, Bewegungen zu erkennen. Bevor Daemon startet, muss allerdings eine Konfiguration vorgenommen werden. Wenn die Software manuell gestartet wird, kann getestet werden, ob nach der Installation alles reibungslos läuft.

Der Einsatz von Motion beginnt
Über sudo motion kann der Start der Software von Hand erfolgen. Das sudo sorgt in diesem Fall dafür, dass nur der Nutzer root die Erlaubnis hat, die Standardkonfigurationsdatei zu lesen. Wenn hingegen eine conf-Datei im Home-Verzeichnis angelegt wird, haben auch andere Nutzer Zugriff auf die Datei. Wird hierbei keine Fehlermeldung angezeigt, ist mit der Hardware alles in Ordnung. Das lässt sich auch über den Browser überprüfen. Auf diesem Weg kann das Bild angesehen werden, das die Kamera aktuell anzeigt. Hierbei ist zu beachten, dass ausschließlich der lokale Rechner diese Bilder ansehen kann. Daher muss zunächst Motion mittels sudo killall motion geschlossen und anschließend per sudo nano /etc/motion/motion.conf die Standardkonfigurationsdatei geöffnet werden. Hier muss die Zeile stream_localhost on in stream_localhost off umbenannt werden. Der entsprechende Parameter wird über # Live Stream Server aufgerufen.

In einem nächsten Schritt wird Motion neu gestartet und in demselben Netzwerk die IP-Adresse des Raspberry Pi eingegeben. Wenn VLC installiert wurde, steht eine Alternative zum Öffnen des Streams zur Verfügung. Hierfür muss unter Medien Netzwerkstream die dazugehörige URL eingegeben werden. Das gilt selbst dann, wenn die Kamera ohne Monitor eingerichtet werden soll. Nur so kann die Kamera in eine Position gebracht werden, in der ein größtmöglicher Bereich abgedeckt ist.

Das gibt es über die Konfigurationsdatei zu wissen
Im Folgenden soll es um einige der zentralen Parameter der Konfigurationsdatei gehen. Um eine optimale Feinabstimmung zu erreichen, muss die Datei sehr genau angepasst und immer wieder verändert werden. Alle Parameter können in diesem Artikel nicht benannt und erläutert werden, doch die wichtigsten von ihnen sollen kurz angesprochen und erklärt werden.

Gleich zu Beginn ist die Zeile videodevice /dev/video0 zu finden. Das ist richtig, solange nur eine Kamera mit dem Raspberry Pi verbunden ist. Prinzipiell ist Motion jedoch problemlos in der Lage, mehrere Kameras parallel zu koordinieren. Hierfür ist es nötig, mit unterschiedlichen Konfigurationsdateien zu arbeiten und Motion via sudo motion -c /Pfad/zu/meiner/konfigurations-datei.conf mitzuteilen, welchen Pfad die jeweilige Datei nutzt. Wenn Sie weiter nach unten gehen, finden Sie die Angaben width 320 und height 240. Diese geben die Breite und die Höhe des angezeigten und von Motion abgespeicherten Bildes an. Es ist wichtig, die Maximalwerte der verwendeten Kamera zu kennen und nicht darüber hinaus zu gehen. Außerdem sollte die Größe der Bilder berücksichtigt werden, damit häufige Bewegungen nicht zu einem Mangel an Speicherplatz führen. Zunächst sollten kleine Größen ausgewählt werden. Wenn diese nicht ausreichen, kann die Größe auch im Nachhinein noch angepasst werden.

Ebenfalls angezeigt wird framerate 2. Dieser Wert gibt die maximale Zahl an Bildern an, die pro Sekunde aufgenommen und abgespeichert werden können. Wenn sich diese Zahl erhöht, werden mehr Bilder aufgenommen. Das bringt zwar Vorteile mit sich, kostet jedoch auch jede Menge Speicherplatz. Deswegen sollte auch hier zunächst klein angefangen und bei Bedarf mit wachsenden Zahlen gearbeitet werden. Standardmäßig ist der Parameter auto_brightness ausgeschaltet. Gerade Kameras im unteren Preissegment passen die Helligkeit nicht automatisch an. Wenn es hierbei zu Problemen kommt, kann Motion die benötigten Einstellungen selbst wählen. Außerdem können über die Parameter brightness, contrast, hue und saturation weitere individuelle Einstellungen und Anpassungen an der Bildqualität vorgenommen werden.

So werden Bewegungen erkannt
Besondere Aufmerksamkeit sollte der Sektion # Motion Detection Settings zukommen. So gibt der Parameter threshold beispielsweise an, wie viele Pixel sich an einem Bild verändern müssen, um als Bewegung zu gelten. Standardmäßig ist dieser Wert auf 1500 gestellt. Allerdings wächst die Zahl der Pixel insgesamt an, wenn Anpassungen an der Breite und Höhe des jeweiligen Bildes vorgenommen werden. Von Haus aus geht das System von 76 800 Pixeln pro Bild (320 x 240) aus. Wenn jetzt das Bild angepasst wird (zum Beispiel 640 x 480), steigt auch die Zahl der Pixel auf 307 200 an. Da die Software aber immer noch mit den standardmäßigen 1500 Pixeln arbeitet, wird das gesamte Überwachungssystem deutlich sensibler und reagiert schneller.

Registrierte Bewegungen werden aufgenommen und im jpg-Format gespeichert. Außerdem wird eine swf-Datei erstellt, die einen kleinen Film der Bewegungen bietet. Über target_dir kann festgelegt werden, wo diese Dateien abgespeichert werden sollen. Falls keine Anpassungen vorgenommen werden, lautet der Speicherort /var/lib/motion. Es ist ratsam, nicht mit den Standardeinstellungen zu arbeiten, sondern individuelle Anpassungen für das Abspeichern vorzunehmen. Dabei ist empfehlenswert, die Dateien auf einem separaten Speichermedium ablegen zu lassen, um so eine Überlastung des Dateisystems zu verhindern.

Ebenfalls hier zu finden ist snapshot_filename. Hierüber kann der Dateiname ganz nach Wunsch festgelegt werden. Von Haus aus werden die Dateinamen mit einem Zeitstempel versehen und entsprechend abgelegt. Das ist bereits zweckmäßig und bedarf nicht zwangsläufig einer individuellen Anpassung. Zudem gibt es die Sektion # External Commands, Warnings and Logging. Hier lässt sich festlegen, dass eine Bewegung immer eine bestimmte Aktion des Systems zur Folge hat. Das könnte zum Beispiel sein, dass eine E-Mail an Sie verschickt wird oder dass ein bestimmtes Geräusch ausgegeben wird.

Automatisches Starten von Motion
Üblicherweise ist es am praktischsten, einen automatischen Start als Daemon ausführen zu lassen. Gelegentlich wird aber mit zwei Kameras gearbeitet, die am Raspberry Pi hängen und jeweils eigene Konfigurationsdateien verwenden. Um dies zu erreichen, müssen die entsprechenden Konfigurationsdateien nach der Zeile daemon=on abgesucht werden. Diese Einstellung sorgt dafür, dass bei einem Neustart von Motion per Hand das Terminal freigegeben wird. Skripte können unter Raspbian Jessie mittels /etc/init.d/rc.local weiterlaufen, was deutlich bequemer als systemd ist. Hier müssten nämlich Befehle wie im Terminal eingegeben werden. Es empfiehlt sich, komplette Pfade wie /usr/bin/motion anzugeben. Über den Befehl which motion kann die Position einzelner ausführbarer Dateien abgefragt werden. Jetzt können parallel verschiedene Kameras mit eigener Konfigurationsdatei genutzt werden. Nicht zuletzt ist es über einen Cronjob möglich, Befehle zur Uhrzeit einzugeben und das Überwachungssystem somit beispielsweise nur nachts laufen zu lassen.

Der Einsatz von MotionEyeOS
Das Betriebssystem MotionEyeOS wurde so konzipiert, dass es sich speziell für die Arbeit mit Motion anbietet. Es gibt jeweils eigene Varianten für ODROID und Raspberry Pi, die problemlos bei GitHub heruntergeladen werden können. Zudem wird hier der entsprechende Quellcode exakt angegeben. Nutzer profitieren hierbei von der geringen Größe des Downloads, der bei der Raspberry-Pi-Version beispielsweise bei 71 Megabyte liegt. Wenn die Datei entpackt wurde, ist das vorhandene img-Abbild etwa 230 Megabyte groß. Dieses Image kann wie jedes andere Bild behandelt und bei Bedarf auf die SD-Karte transferiert werden. Das ist beispielsweise mit dem Tool Etcher besonders bequem möglich. Allerdings sind hierfür Root-Rechte erforderlich. Zumeist genügt sudo. Hierbei muss aber darauf geachtet werden, dass der richtige Datenträger ausgewählt wird, da dieser ohne zusätzliche Nachfrage überschrieben wird.

Unter Linux bietet sich das Script writeimage.sh an. Dieses Tool macht es möglich, Netzwerkverbindungen herzustellen oder statische IP-Adressen zu vergeben. Wenn das Script ohne Parameter aufgerufen wird, steht hierfür eine Hilfe-Option zur Verfügung. Dazu ist es zumeist nötig, mittels chmod +x writeimage.sh dafür zu sorgen, dass die Datei ausführbar wird. Eine größtmögliche Sicherheit bei diesem Vorgehen bietet Etcher, allerdings steht hier keine WLAN-Konfiguration zur Verfügung, was aber für die Verwendung von MotionEyeOS zwingend notwendig ist. Wenn unter Etcher eine Netzwerkverbindung bereitstehen soll, muss diese per Hand konfiguriert werden. Mit einem Kabel ist eine Netzwerkverbindung ganz leicht herzustellen. Beachtet werden muss allerdings, dass sich MotionEyeOS automatisch neu startet, wenn keine Netzwerkverbindung gefunden wird. Das führt zu einer unendlichen Neustartschleife, wenn weder WLAN noch ein Kabel oder eine fixe IP-Adresse zur Verfügung stehen.

Beim ersten Start ist Geduld gefragt
Planen Sie ein, dass die erste Verwendung von MotionEyeOS etwas Zeit in Anspruch nehmen wird. Die tatsächliche Dauer hängt unter anderem von dem verwendeten Gerät ab. Zunächst findet eine Konfiguration des Systems statt. Wird mit einem Netzwerk und einem Bildschirm gearbeitet, so wird zudem die IP-Adresse angezeigt. Gleichzeitig findet der Start eines SSH-Servers statt. Wenn Anmeldedaten abgefragt werden, muss admin ohne Passwort angegeben werden. Das sollte aber unbedingt direkt geändert werden. Die IP-Adresse des Systems muss anschließend in den Browser eingegeben werden. Hier kann eine Anmeldung mit admin und ohne Passwort erfolgen. Anschließend wird oben links auf die drei Balken geklickt und schon befinden Sie sich im Konfigurationsbereich.

Hier besteht die Möglichkeit, Passwörter für Administratoren und Nutzer festzulegen beziehungsweise zu verändern. Außerdem kann exakt festgelegt werden, in welchen Zeiträumen die Kamera arbeiten soll. Auch die maximale Dauer zur Speicherung von Bildern und Videos kann hier exakt angegeben werden. Hierbei ist es prinzipiell möglich, MotionEyeOS mit mehreren Kameras gleichzeitig arbeiten zu lassen. Wenn auf die entsprechende Kamera geklickt wird, erscheinen verschiedene Schaltflächen, über die die gespeicherten Bilder und Videos zu erreichen sind. Hier besteht die Möglichkeit, einzelne Bilder anzusehen, zu löschen oder herunterzuladen. Bis MotionEyeOS genutzt werden kann, vergehen nur ein paar Minuten. Allerdings kann keine umfassende Konfiguration über den Browser vorgenommen werden. Stattdessen steht nur eine eingeschränkte Konfiguration zur Verfügung. Für größere Anpassungen müssen dann die Kommandozeilen durchsucht und die Dokumentation studiert werden.


Tag: