Babycam mit Raspberry Pi und Playstation Eye
Seit unsere Tochter klettern und laufen kann, tut sie das mit großem Vergnügen und steigt auch schon mal allein aus dem Bett aus, wenn sie keine Lust mehr auf Mittagsschlaf hat. Aus dem elterlichen Bett wohlgemerkt, denn für ihr Kinderbett mit den Gitterstäben ist sie offenbar zu freiheitsliebend Es kommt also vor, dass sie im Schlafzimmer umherläuft, ohne das wir das akustisch übers Babyfon mitbekommen. Wenn das Babyfon doch nur eine Kamera hätte …
Doch halt! Hier liegt doch noch ein ungenutzter Raspberry Pi der ersten Generation herum, einen USB-WLAN-Stick habe ich auch noch und ein paar alte Webcams - von denen leider keine so richtig unter Raspian funktionieren mag. Eine kurze Recherche ergibt, dass die günstigste lauffähige Alternative wohl eine Playstation Eye ist. Geklickt, geliefert, angesteckt: Funktioniert!
Anstelle einer USB-Webcam hätte ich natürlich auch ein Raspberry Pi Camera Module verwenden können, aber die Eye war schon für wenige Euro zu haben und damit einfach billiger. Allerdings musste ich die rote und die blaue LED an der Frontseite der Playstation Eye mit schwarzem Tape abkleben, die leuchten einfach viel zu hell.
Motion
Als Mittel der Wahl für die Aufnahme und das Streamen des Videosignals habe ich mich für Motion entschieden. Motion ist ein Tool, das eigentlich dafür gedacht ist, Bewegung in Videos zu erkennen, was z.B. für Überwachungskameras sinnvoll sein kann, für meinen Einsatzzweck aber nicht nötig ist.
Unter Raspian lässt sich Motion ganz einfach wie unter Debian installieren. Eine detailliertere Anleitung spare ich mir an dieser Stelle, die gibt es zuhauf im Netz. Wichtig ist auf jeden Fall, eine Kopie der Config-Datei anzulegen und diese anzupassen:
$ mkdir .motion
$ sudo cp /etc/motion/motion.conf ~/.motion/motion.conf
Ich hatte es zunächst vergeblich mit einer motion.conf
versucht, die ich mir aus einem der unzähligen How-Tos im Netz kopiert hatte - das klappte überhaupt nicht. Der Grund: Motion hat irgendwann diverse Konfigurations-Optionen umbenannt, und so passte die Config nicht mehr zu meiner Programmversion (3.2.12). Es gibt wirklich jede Menge Optionen, die wichtigsten, die ich angepasst habe
# V4L2_PIX_FMT_YUYV : 15 'YUYV'
v4l2_palette 15
width 640
height 480
output_pictures off
ffmpeg_output_movies on
ffmpeg_bps 500000
stream_port 8081 # Port, auf dem gestreamt wird
stream_localhost off # Restrict stream connections to localhost only
webcontrol_port 8080 # Simple Fernsteuerung im Browser
webcontrol_localhost off
Im Anschluss gilt es noch das Startup-Skript anzupassen, so dass Motion unmittelbar nach dem Hochfahren des Pi anfängt zu streamen. Dann steht unter http://192.168.xxx.xxx:8081
ein MJPEG-Stream zur Verfügung, der im Browser funktioniert, aber nicht in allen Videoplayern. Für Android gibt es beispielsweise MJPEG Viewer, so dass ich immer bequem auf dem Smartphone einen Blick auf das schlafende Kind werfen kann.
Bonus: Integration in Home Assistant
Da ich mir vor einiger Zeit einen Home Assistant-Server aufgesetzt habe, wollte ich das Videobild auch dort einbinden. Dafür gibt es die Komponente Generic MJPEG IP Camera, die bei mir allerdings öfter mal hängenblieb, d.h. das Bild veränderte sich nicht mehr.
Zum Glück gibt es ffmpeg
, das auf dem Home Assistant-Server installiert sein muss, und ebenfalls eine entsprechende Komponente dafür, die mit extra_arguments
konfiguriert werden muss, damit alles läuft.
- platform: ffmpeg
input: http://192.168.xxx.xx:8081
name: "Babycam"
extra_arguments: -input_format mjpeg
Mit diesem Setup gibt es auch unter Home Assistant keine Probleme mehr.
Die Babycam läuft jetzt schon seit einigen Monaten stabil. Von Beginn an wird der Raspberry Pi samt Cam über eine Schaltsteckdose manuell ein- und ausgeschaltet. Zukünftig ließe sich das z.B. über eine WLAN-Steckdose regeln - aber bis es soweit ist, brauchen wir die Cam hoffentlich gar nicht mehr. Sie werden so schnell erwachsen ;P
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt