Motion

Wir haben ein ūü¶Ē Igelhaus gebaut und w√ľrden gerade im Herbst beobachten, ob ein Igel einzieht oder nicht. Da keiner von uns die ganze Zeit vor dem Igelhaus warten m√∂chte, war die Idee eine IP-Kamera anzubringen und dann zu schauen, ob das Igelhaus bezogen wird.

Ich möchte euch im Folgenden erläutern, wie ihr mit Motion, einem Raspberry Pi Zero 2 und einer Kamera eine IP-Kamera baut.

Zunächst einmal verwenden wir das aktuelle Raspberry Pi OS Bookworm in der 64 Bit Lite Variante. Dazu verwenden wir den Raspberry Pi Imager und selektieren unter OS Wählen -> Raspberry Pi OS (other) Raspberry Pi OS Lite (64-bit) aus. Am besten stellt ihr mit dem ⚙-Symbol noch mindestens WLAN und eine Art des Zugriffs ein, damit ihr komplett Headless auf den Raspberry Pi zugreifen könnt. Nachdem ihr die SD-Karte vorbereitet habt, schließt ihr nun die Kamera am Raspberry-Pi an, steckt die SD-Karte ein und versorgt den Raspberry Pi mit Strom.

Verbindet euch jetzt mit dem Raspberry Pi und sorgt erst einmal daf√ľr, dass das System auf dem neusten Stand ist.

sudo apt update
sudo apt upgrade -y

F√ľr die IP-Kamera installieren wir dann Motion. Im Vergleich zu anderen Anleitungen, die ich im Internet gefunden habe, ben√∂tigen wir allerdings seit Bullseye (Vorg√§nger von Bookworm) libcamera und m√ľssen das zus√§tzlich installieren (siehe [3]). Also den folgenden Codeblock ausf√ľhren.

sudo apt install libcamera-tools libcamera-v4l2 motion -y

Wenn ihr jetzt alles richtig gemacht habt, dann k√∂nnt ihr Motion mit dem folgenden Befehl starten. Das libcamerify erm√∂glicht es motion mit libcamera zu starten, w√§hrend ihr ohne einen Fehler bekommen w√ľrdet.

sudo libcamerify motion

Ihr solltet dann so eine ähnliche Ausgabe bekommen.

[0:motion] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion/motion.conf
[0:motion] [NTC] [ALL] motion_startup: Logging to file (/var/log/motion/motion.log)
[0:00:59.734985081] [713] ERROR IPAModule ipa_module.cpp:172 Symbol ipaModuleInfo not found
[0:00:59.735449664] [713] ERROR IPAModule ipa_module.cpp:292 v4l2-compat.so: IPA module has no valid info
[0:00:59.735948258] [713]  INFO Camera camera_manager.cpp:284 libcamera v0.1.0+52-a858d20b
[0:00:59.883998987] [714]  WARN RPiSdn sdn.cpp:39 Using legacy SDN tuning - please consider moving SDN inside rpi.denoise
[0:00:59.890065341] [714]  INFO RPI vc4.cpp:387 Registered camera /base/soc/i2c0mux/i2c@1/ov5647@36 to Unicam device /dev/media3 and ISP device /dev/media0
[0:00:59.893818987] [713]  INFO Camera camera.cpp:1213 configuring streams: (0) 640x480-YUV420
[0:00:59.894656279] [714]  INFO RPI vc4.cpp:549 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 640x480-SGBRG10_1X10 - Selected unicam format: 640x480-pGAA
[0:00:59.898540654] [713]  INFO Camera camera.cpp:1213 configuring streams: (0) 640x480-YUV420
[0:00:59.899285601] [714]  INFO RPI vc4.cpp:549 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 640x480-SGBRG10_1X10 - Selected unicam format: 640x480-pGAA

Damit wir jetzt von eurem Smartphone oder Laptop auf die Kamera zugreifen k√∂nnen, m√ľssen wir allerdings noch die Konfiguration anpassen. Dazu beenden wir mit Strg + C die Ausf√ľhrung von Motion und √∂ffnen die motion.conf-Datei.

sudo nano /etc/motion/motion.conf

Dort schalten wir den Zugriff auf das Webinterface und das Streaming im Netzwerk frei, indem wir folgende Anpassungen machen (Die Zeile mit dem Minus soll durch die mit dem Plus ersetzt werden). Danach mit Strg + X beenden und mit Enter speichern.

- webcontrol_localhost on
+ webcontrol_localhost off

- stream_localhost on
+ stream_localhost off

Wenn ihr jetzt nochmal Motion startet mit sudo libcamerify motion, dann solltet ihr √ľber die IP-Adresse eures Raspberry Pis auf die Kamera zugreifen k√∂nnen. Die IP-Adresse findet ihr in der Regel mit ip addr. Und dann k√∂nnt ihr unter http://IP_ADDRESSE:8080 auf die Kamera zugreifen.

Als letztes wollen wir jetzt noch Motion automatisch beim Starten des Raspberry Pis starten. Dazu kommt systemd zum Einsatz, wof√ľr wir den motion-Dienst anpassen m√ľssen. Dazu √∂ffnen wir die Datei.

sudo nano /lib/systemd/system/motion.service

Passen folgende Zeile an und speichern mit Strg + X und Enter.

- ExecStart=/usr/bin/motion
+ ExecStart=/usr/bin/libcamerify /usr/bin/motion

Da der Dienst unter dem motion-User gestartet wird, m√ľssen wir zun√§chst die Logs entfernen, weil dort nach unseren ersten Starts nur root (mittels sudo) Schreibrechte hat. Anschlie√üend k√∂nnen wir dann den Dienst aktivieren und starten.

sudo find /var/log/motion -delete
sudo mkdir /var/log/motion
sudo chown motion:motion /var/log/motion
sudo systemctl enable motion.service
sudo systemctl start motion.service

Ab jetzt solltet ihr immer beim Start eine IP-Kamera aus eurem Raspberry Pi erstellt haben. Wo ihr das Bild unter http://IP_ADDRESSE:8080 sehen k√∂nnt. Ihr k√∂nnt ja mal in den Kommentaren schreiben, wof√ľr ihr die Kamera so im Einsatz habt. Ich hoffe, die Anleitung hat geholfen. Wenn ihr Fragen oder Anregungen habt, dann immer gerne her damit ‚̧ԳŹ. Ansonsten k√∂nnt ihr mir auch gerne einen Kaffee ‚ėē ausgeben.


[1]: https://motion-project.github.io

[2]: https://www.raspberrypi.com/software/

[3]: https://github.com/motioneye-project/motioneye/issues/2425