Überwachngskamera mit Raspberry Pi und Motion

Photo by Tobias Tullius on Unsplash

Hier im Blog habe ich ja bereits mehrere Artikel zum Raspberry Pi und Motion geschrieben. Das Ziel war immer eine Überwachungskamera mit dem Pi zu bauen.
(:arrow: alle Artikel n)

Nach wie vor ist für diesen Zweck am besten motioneyeos geeignet. ( zum Blog-Beitrag ➡ motioneyeos – Überwachungskamera mit dem Raspberry ganz einfach.

Jedoch gibt es auch Einsatzzwecke bei denen man mehr Funktionalitäten des Betriebssystems nutzen möchte / muss. Bei motioneyeos ist das leider nicht möglich, weshalb ich bei einem meiner Projekte auf Raspbian Stretch Lite setze.

Das erfordert natürlich die manuelle Installation und Konfiguration von Motion. Zu Glück sind endlich V4L (Video4Linux) in Raspbian enthalten und das umständliche Installieren dieser Treiber ist nicht mehr erforderlich. 🙂

Die Installation ist dadurch sehr einfach geworden und erfordert keine großen Konfigurationen mehr.
Bevor es aber losgeht ist das Kamera Modul unbedingt zu aktivieren.

sudo raspi-config

Kamera aktivieren
Kamera aktivieren
Kamera aktivieren
Kamera aktivieren

Die Funktionsfähigkeit der Kamera, kann noch schnell über die Konsole geprüft werden, bevor es weitergeht.

raspistill -o test.jpg

Nun ist Motion darn. Mit dem folgenden Befehl wird es auf dem Pi installiert.

sudo aptitude install motion


Die abhängigen Pakete werden automatisch mit installiert.

Soll Motion beim Booten des Pi automatisch gestartet werden, muss das in der Datei /etc/default/motion eingestellt werden.
Der Wert ist von „no“ auf „yes“ zu ändern

# set to 'yes' to enable the motion daemon
start_motion_daemon=no

# set to 'yes' to enable the motion daemon
start_motion_daemon=yes

Ist der Schalter „start_motion_deamon“ weiterhin auf „no“ wird beim manuellen Starten von Motion ein Hinweis ausgegeben:

Not starting motion daemon, disabled via /etc/default/motion ... (warning).

Im nächsten Schritt sollte die Standardkonfigurationsdatei von Motion im Verzeichnis /etc/motion/motion.conf angepasst werden.

sudo nano /etc/motion/motion.conf

Wichtig zu ändern sind insbesondere die folgenden Einstellungen:

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

# Image width (pixels). Valid range: Camera dependent, default: 352
width 1920

# Image height (pixels). Valid range: Camera dependent, default: 288
height 1080

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

Das target_dir habe ich geändert auf einen neu angelegten Ordner im Verzeichnis des Benutzers „pi„. Der Name des Ordners ist unerheblich. Zudem kann der Ordner auch auf einem NAS liegen und über fstab beim Starten des Pis gemountet werden. Hier im Blog habe ich das schon ein paar mal beschrieben
https://strobelstefan.de/?s=fstab.
Die Auflösung euerer Kamera müsst ihr prüfen und bei width und heigth eintragen.

Und zum Testen der Kamera und zur Feinjustierung ist es vielleicht ganz hilfreich auch den Stream zu aktivieren:

# The mini-http server listens to this port for requests (default: 0 = disabled)
stream_port 8081

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

Auf der Seite von Kenneth Lavrsen sind alle weiteren Einstellungen aufgelistet und beschrieben. ➡ http://www.lavrsen.dk/foswiki/bin/view/Motion/ConfigFileOptions

Anschließend aktiviert man noch den V4L-Treiber für das Kamera-Modul auf dem Pi und lässt diesen auch bei jedem Neustart mitladen.

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

Das wars! 😎

Motion wird über die folgenden Befehle gesteuert

sudo service motion start
sudo service motion restart
sudo service motion stopp

Die verwendeten Systemressourcen für Motion lassen sich z.B. über das kleine Programm „htop“ sehr gut abfragen.

Motion - Systemressourcen
Motion – Systemressourcen


Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


Photo by Tobias Tullius on Unsplash

MotionPiOS – Kamerakachelübersicht

HTML - Kamerübersicht für Motion

Wer mehrere Raspberry Kameras sein Eigen nennt, möchte vielleicht alle in einer Kachelübersicht in seinem bevorzugten Browser anschauen.

Der hier dargestellte Code ist ein Beispiel, wie so etwas aussehen könnte.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
  "http://www.w3.org/TR/html4/frameset.dtd">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Kamera - Kachelübersicht</title>
	
<style>
    #wrap { width: 780px; height: 450px; padding: 0; overflow: hidden; }
    #frame { width: 1920px; height: 1080px; border: 1px solid black; }
    #frame {
        -ms-zoom: 1.0;
        -moz-transform: scale(0.5);
        -moz-transform-origin: 0 0;
        -o-transform: scale(1.0);
        -o-transform-origin: 0 0;
        -webkit-transform: scale(0.4);
        -webkit-transform-origin: 0 0;
    }
</style>	
	
  </head>

<table>
<tr>
	<td>
		<h3>Kamera 1</h3>
		<div id="wrap">
			<iframe id="frame" src="http://192.168.2.2:8081" allowfullscreen="" frameborder="0"  scrolling="no" align="centre">
			</iframe>                
		</div>
	</td>
	<td>
		<h3>Kamera 2</h3>
		<div id="wrap">
			<iframe id="frame" src="http://192.168.2.3:8081" allowfullscreen="" frameborder="0"  scrolling="no" align="centre">
			</iframe>                
		</div>
	</td>
</tr>
<tr>
	<td>
		<h3>Kamera 3</h3>
		<div id="wrap">
			<iframe id="frame" src="http://192.168.2.3:8081" allowfullscreen="" frameborder="0"  scrolling="no" align="centre">
			</iframe>                
		</div>
	</td>
	<td>
		<h3>&Uuml;bersicht Kameras - View</h3>
		<ul>
			<li>Kamera 1 - 192.168.178.37</li>
			<li>Kamera 2 - 192.168.178.26</li>
			<li>Kamera 3 - 192.168.178.38</li>
		</ul>
		
		<h3>&Uuml;bersicht Kameras - Admin</h3>
		<ul>
			<li>Kamera 1</li>
			<li>Kamera 2</li>
			<li>Kamera 3</li>
		</ul>
	</td>
</tr>
</table>

</html>


Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


motioneyeos in VLC anschauen

motioneyeos - Kamera-Stream in VLC anzeigen

In einem meiner früheren Beiträgen habe ich das Projekt motionseyeos kurz vorgestellt. ( ➡ motioneyeos – Überwachungskamera mit dem Raspberry ganz einfach . Mit dieser angepassten Betriebssystemversion ist es auch für Anfänger sehr leicht aus einem Raspberry Pi eine kleine Überwachungskamera zu basteln.

Den Stream der Kamera kann man damit ganz einfach über jeden Webbrowser anschauen. Dazu ist lediglich die IP-Adresse und der Port 8081 in die Adresszeile eines beliebigen Webbrowsers einzutragen.

Aber es besteht auch die Möglichkeit den Stream in VLC anzuschauen. ( ➡ http://www.videolan.org/vlc/) den es für ziemliche viele Plattformen gibt.

motioneyeos

Die Datei ist mit der Endung „.xspf“ abzuspeichern damit der Stream gleich in VLC geöffnet wird.

<?xml version="1.0" encoding="UTF-8"?>
<playlist xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/" version="1">
	<title>motioneyeos</title>
	<trackList>
		<track>
			<location>http://192.168.12.100:8081/</location>
			<extension application="http://www.videolan.org/vlc/playlist/0">
				<vlc:id>0</vlc:id>
				<vlc:option>network-caching=1000</vlc:option>
			</extension>
		</track>
	</trackList>
	<extension application="http://www.videolan.org/vlc/playlist/0">
			<vlc:item tid="0"/>
	</extension>
</playlist>


Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


motioneyeos – Überwachungskamera mit dem Raspberry ganz einfach

motioneyeos - Kamera hinzufügen

Einer der häufigeren Einsatzgebiete des Raspberry Pis ist wahrscheinlich die Verwendung als Überwachungskamera.

Dabei wird meistens Raspbian und das kleine Tool „motion“ verwendet, um aus dem Pi eine Überwachungskamera zu basteln. Je nach Erfahrung des Benutzers kann die Konfiguration ein wenig Zeit und auch Nerven in Anspruch nehmen. Mit der neuen Raspbian Version Jessie vielleicht ein wenig mehr als zuvor. Ich bin selbst ein wenig Leid geprüft, was das betrifft 🙂
Hier im Blog habe ich einige Anleitungen zu diesem Thema verfasst.

Aber es gibt auch eine weitaus einfacher und schnellere Möglichkeit, um aus dem kleinen Pi eine Überwachungskamera zu machen. An der Hardware ändert sich nichts, der entscheidende Unterschied, es wird ein speziell für diesen Einsatzzweck entwickeltes Betriebssystem verwendet.
Das Betriebssystem nennt sich „motioneyeos“ und kann von der offiziellen GitHub-Seite für jedes Pi-Modell heruntergeladen werden.
https://github.com/ccrisan/motioneyeos/releases

motioneyeos“ ist eine sehr abgespecktes Betriebssystem, dass nur dazu dient den Raspberry Pi auf ganz einfache Weise in eine Überwachungskamera zu verwandeln.
Die Installation ist denkbar einfach, das Image von der offiziellen Seite herunterladen und mit einem Tool, z.B. Win32DiskImager, auf die SD-Karte schreiben.

Anschließend steckt ihr die SD-Karte in euren Pi, verbindet diesen mit einem LAN-Kabel mit eurem Netzwerk und zum Schluss noch an den Strom anschließen.
Nun ein paar Minuten warten, bis „motioneyeos“ installiert wird und dann könnt ihr über einen beliebigen Webbrowser die Administrationsoberfläche öffnen.
Dazu gebt ihr lediglich die IP-Adresse des Pis ein, und schon gehts los.
Die Installationsanleitung gibt es auch im offiziellen Wiki des Projekts
https://github.com/ccrisan/motioneyeos/wiki/Installation

Nach der sehr einfachen Installation und der ersten Anmeldung gelangt ihr auf die sehr aufgeräumte Konfigurationsseite eurer neuen Überwachungskamera.

motioneyeos
motioneyeos

Die Konfigurationsmöglichkeiten sind sehr gut in einzelne Abschnitte strukturiert und können jederzeit über den Webbrowser administriert werden.

Als erstes solltet ihr im Reiter „General Settings“ das Passwort für den Administrator und auch die Zeitzone anpassen.

motioneyeos - General Settings
motioneyeos – General Settings

Weitere Einstellungen, die danach zu prüfen und ggfs. anzupassen sind,

  • Network – falls ihr WLAN auf dem Pi verwenden möchtet
  • Services – Remotezugriffe einrichten
motioneyeos - Network & Services
motioneyeos – Network & Services

Im Abschnitt „Video Streaming“ wird eingestellt, wie man Zugriff auf das Livebild des Pi erhält.

motioneyeos - Video Streaming
motioneyeos – Video Streaming

Sämtliche anderen Einstellungen sind gut beschrieben. Ansonsten gibt es für jede Konfigurationsmöglichkeit eine kleine Hilfe wie im Screenshot dargestellt.

motioneyeos - Hilfe
motioneyeos – Hilfe

Ich habe an den Pi zum Speichern der Bilder und Videos einen externen Datenträger (USB-Stick) angeschlossen
motioneyeos erkennt den Stick normalerweise automatisch und im Bereich „File Storage“ lässt sich dieser einbinden.

motioneyeos - File Storage
motioneyeos – File Storage

Ein weiteres tolles und gut gelungenes Feature von motioneyeos ist das Einbinden mehrere Überwachungskameras. Betreibt man mehrere motioneyeos-Kameras im Netzwerk kann man diese in einer „Haupt“-Installation zusammenfassen. Änderungen müssen dann nicht auf jedem Pi separat durchgeführt werden, sondern können von der einen „Haupt-„Installation durchgeführt werden.

motioneyeos
motioneyeos

Mein Fazit:

Super gelungenes System, dass genau das erfüllt was es verspricht. Eine Möglichkeit einfach und schnell aus einem Pi eine Überwachungskamera zu machen.

Mögliche Hardware

Möchtet ihr ein oder mehrere Überwachungskamera mit motioneyeos in Betrieb nehmen, dann ist dar Raspberry Pi Zero vollkommen ausreichend für euer Projekt.


Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


Motion mit mehreren Kameras

Beim Durchstöbern meiner alten Computersachen bin ich kürzlich auf zwei etwas ältere Webcams gestoßen. Bevor ich die weiter verstauben lasse, habe ich mir gedacht, diese an meinen Raspberry Pi anzuschließen, auf dem bereits Motion läuft. In meinen beiden früheren Beiträgen habe ich bereits aufgezeigt, wie man das Rpi-Kameranmodul an den kleinen PC anschließt und konfiguriert.

Ich habe die folgenden beiden Webcams getestet

  • Logitech QuickCam for Notebook Deluxe
  • Logitech QuickCam Pro 4000

Ich habe mich für die Erste entscheiden, die QuickCam for Notebook Deluxe

Eigentlich ist die Konfiguration einer zweiten Kamera keine große Sache. Es wird neben einer motion.conf-Datei für jede Kamera eine weitere Konfigurationsdatei benötigt. Die Konfigurationsdatei für jedde angeschlossene Kamera heißt threadx.conf ( x ist durch eine Zahl zu ersetzen).
motion-thread

Ich habe mir die Konfiguration recht einfach gemacht. An meinem Pi war bereits das Kamera-Modul angeschlossen und sämtliche UV4L-Pakete installiert.
Deshalb funktionieren die nachfolgenden Befehle bei mir „out-of-the-box“ und meine Webcam wurde auch sofort erkannt.

Mit dem Befehl kann man prüfen, ob die USB-Kamera auch vom Pi erkannt wird

lsusb


In der Liste sollte irgendwo die Logitec-Kamera auftauchen.

Eine Überprüfung wo die beiden Kameras, Webcam und Pi-Kameraboard, zu finden sind ist mit dem Befehl möglich.

v4l2-ctl --list-devices

Bei mir wurde die USB-Kamera auf /dev/video0 eingebunden und das Pi-Kameraboard war auf /dev/video1 zu finden. Diese beiden Informationen sind für die weitere Konfiguration zwingend erforderlich.

Thread-Dateien anlegen

Ich habe mir das Leben einfach gemacht und meine bestehende motion.conf-Datei einfach zweimal kopiert und in thread1.conf und thread2.conf umbenannt. Anschließend habe ich die motion.conf editiert. Dort müssen die folgenden Parameter aus kommentiert werden. Diese sind pro Kamera in der jeweiligen thread-Datei anschließend einzutragen.

# Videodevice to be used for capturing  (default /dev/video0)
# for FreeBSD default is /dev/bktr0
# CHANGED
; videodevice /dev/video0

# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
# CHANGED
;target_dir /mnt/pics/motion

# The mini-http server listens to this port for requests (default: 0 = disabled)
# CHANGED
;webcam_port 8081

Besonders wichtig, in der motion-conf findet ihr am Ende die Einstellungen für die thread-Dateien.

# Remember: If you have more than one camera you must have one
# thread file for each camera. E.g. 2 cameras requires 3 files:
# This motion.conf file AND thread1.conf and thread2.conf.
# Only put the options that are unique to each camera in the
# thread config files. 
; thread /usr/local/etc/thread1.conf
; thread /usr/local/etc/thread2.conf
; thread /usr/local/etc/thread3.conf
; thread /usr/local/etc/thread4.conf


Tragt ein, wo ihr die thread-Dateien für eure Kamera ablegt, damit Motion diese auch findet. Dabei könnt ihr den Pfad beliebig wählen, z.B. das Home-Verzeichnis eures Benutzers.
; thread /usr/local/etc/thread1.conf
wird dann zu
thread /usr/local/etc/thread1.conf

thread1.conf

In dieser Datei müsst ihr nur die folgenden Parameter prüfen und auf die Kamera abstimmen

videodevice /dev/video0

target_dir /mnt/pics/motion1

webcam_port 8081

text_left Camera 1

# Image width (pixels). Valid range: Camera dependent, default: 352
width Wert-Eintragen

# Image height (pixels). Valid range: Camera dependent, default: 288
height Wert-Eintragen


Auch die Einstellungen für den E-Mail-Versand, solltet ihr das aktiviert haben, lässt sich individuell pro thread-Datei anpassen.

thread2.conf

videodevice /dev/video1

target_dir /mnt/pics/motion2

webcam_port 8082

text_left Camera 2

# Image width (pixels). Valid range: Camera dependent, default: 352
width Wert-Eintragen

# Image height (pixels). Valid range: Camera dependent, default: 288
height Wert-Eintragen

Nach den Anpassungen lässt sich Motion wie gewohnt starten und die Kamera-Streams auf den beiden Ports 8081 und 8082 anschauen.


Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


Stream einer Motion-Überwachungskamera anschauen

Motion Stream VLC

In meinem Beitrag „Raspberry Pi Kamera-Modul mit Motion als kleine Überwachungskamera habe ich aufgezeigt, wie man mit Hilfe des Raspberry Pis und des Kameramoduls sehr einfach eine Überwachungskamera basteln kann.

Wie kann ich aber den Stream meiner Motion-Kamera bequem und einfach auf meinem Rechner anschauen?
Das Einfachste, ist die IP-Adresse des Pis plus Port in einem beliebigen Webbrowser eingeben und schon kann man den Stream anschauen.

http://127.0.0.1:8081

Es gibt aber noch weitere Möglichkeiten, wie man den Stream öffnen und anschauen kann.

VLC

VLC bietet die Möglichkeit den Netzwerk-Stream zu öffnen und darzustellen.

Im nachfolgenden Abschnitt ist der Code dafür dargestellt. Es ist lediglich die IP-Adresse 127.0.0.1 gegen die richtige IP-Adresse Pi-Kamera zu ändern.
Wenn alles passt, dann ist das Ganze als xspf-Datei irgendwo auf der Festplatte abzuspeichern. Anschließend kann die Datei mit VLC geöffnet werden.

Motion Stream VLC
Motion Stream VLC

HTML iframe

Dies ist eine etwas dirty-Lösung, wenn man mehrere Pi-Kameras im Netzwerk betreibt, dann kann man mit Hilfe von iframe den Stream auf einem Bildschirm darstellen.

Motion Stream iframe
Motion Stream iframe

Weitere Beiträge zu Raspberry Pi und Überwachungskamera hier im Blog

Möchtet ihr eine Überwachungskamera mit einem Raspberry Pi installieren, solltet ihr euch die folgenden beiden Beiträge anschauen. Eine sehr einfache Möglichkeit ist die Verwendung eines Raspberry Pi Zero und motioneyeos.

motioneyeos – Überwachungskamera mit dem Raspberry ganz einfach
motioneyeos in VLC anschauen


Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


Motion mit UV4L auf dem Raspberry Pi

In meinem früheren Post habe ich dargestellt, wie man Motion auf dem Raspberry Pi installiert und zusammen mit dem Kameramodul als Überwachungskamera nutzen kann. ➡ Raspberry Pi Kamera-Modul mit Motion als kleine Überwachungskamera
Diese Anleitung kann man auch nach wie vor nutzen, wenn man Raspbian Wheezy auf dem Pi installiert. Will man aber das neue Raspbian Jessie installieren, dann gibt es mit einigen Paketen noch Probleme. Leider sind nämlich noch nicht alle erforderlichen Pakete für Jessie in den Repositories vorhanden.

Aber es gibt zum Glück ein gute Alternative, damit man Motion auch mit Jessie nutzen kann. Es wird dafür das Treibersammlung UV4L aus den Repositories von Wheezy verwendet. Nachfolgend wird aufgezeigt, wie das Ganze funktioniert.

UV4L installieren

curl http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc | sudo apt-key add -

Das trägt die folgende Zeile in /etc/apt/source.list ein.

deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy main

source.list
source.list

Nun kann mann die erforderlichen UV4L-Pakete installieren.

sudo aptitude update && sudo aptitude install uv4l uv4l-raspicam uv4l-raspicam-extras

Eine kleine Prüfung zeigt, ob alles korrekt installiert ist. Der Service uv4l_raspicam wird neugestartet. Kommt keine Fehlermeldung, dann funktioniert alles.

sudo service uv4l_raspicam restart

Mit dem folgenden Befehl kann man bereits erste Bilder mit der Kamera aufnehmen.

dd if=/dev/video0 of=snapshot.jpeg bs=11M count=1

Es ist dabei zu beachten, dass die Kamera als /dev/video1 registriert wird. Führt man gleich danach, ohne einen Neustart Motion aus, dann wird dort die Kamera ggfs. als /dev/video1 registriert, was eine Anpassung der Konfigurationsdatei erforderlich machen könnte. Wir werden aber versuchen das zu vermeiden 🙂

Motion installieren und konfigurieren

Motion lässt sich aus den Repositories installieren.

sudo aptitude install motion

Eine Beispielkonfiguration von Motion bekommt man von der Homepage des Projekts via wget.
Ich habe auf meinem Pi die Konfigurationsdatei in das Verzeichnis /home/pi/motion gespeichert. In den nachfolgenden Schritten wird deshalb dieses Verzeichnis verwendet.

wget http://linux-projects.org/downloads/examples/motion.conf

Bevor wir weitermachen, starten wir den Pi neu. Damit umgehen wir evtl. das oben beschriebenen Problem mit der Registration des Kameramoduls als /dev/video1.

sudo reboot

Neustart erfolgreich, dann starten wir den Treiber von UV4L im Hintergrund.

uv4l --driver raspicam --auto-video_nr

Hier aber trotzdem noch auf die Ausgabe achten. Lauten die Zeilen wie folgt, dann funktioniert alles wie es soll.

[notice] [core] Device detected!
[notice] [core] Registering device node /dev/video0

Und endlich können wir Motion starten.

LD_PRELOAD=/usr/lib/uv4l/uv4lext/armv6l/libuv4lext.so motion -c /home/pi/motion/motion.conf

Kontrollieren, ob Motion erfolgreich gestartet wurde, sieht man direkt nach dem Start auf den Konsole
2016-01-28_174254

Über top kann man schauen den Prozess Motion überwachen.

top

top - Motion
top – Motion

Im Webbrowser kann unter der Adresse http://ip-adresse-des-pis:8081 sollte der Kamera-Stream aufzurufen sein.

Motion lässt sich an die eigenen Bedürfnisse recht einfach anpassen. Da die Datei motion.conf recht gut kommentiert ist, ist diese Aufgabe recht schnell erledigt. Weitere Informationen finden sich auf der Seite des Entwicklers ➡ http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome

Die neue Konfiguration lässt sich gleich testen. Zuerst ist Motion zu stoppen und dann erneut, mit der neuen Konfigurationsdatei neu zu starten.

sudo /etc/init.d/motion stop


LD_PRELOAD=/usr/lib/uv4l/uv4lext/armv6l/libuv4lext.so motion -c /home/pi/motion/motion.conf


Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


Automatischer Start von Motion mit einem cron-Job

Damit Motion auch automatisch bei jedem Start des Raspberry Pis automatisch startet, kann man noch einen crontab anlegen.

crontab -e

@reboot LD_PRELOAD=/usr/lib/uv4l/uv4lext/armv6l/libuv4lext.so motion -c /home/pi/motion/motion.conf 

Weitere Informationen zu Motion hier im Blog

Motion mit E-Mail-Versand

Ich habe vor kurzem eine kleine Überwachungskamera mit meinem Pi gebastelt, die auch nach einigen Tagen noch wunderbar funktioniert. Da ich die Bilder aber nur daheim im Netzwerk betrachten kann, habe ich noch zusätzlich einen E-Mail-Versand eingerichtet. Dadurch werden die erstellten Bilder automatisch an eine E-Mail-Adresse gesendet, die ich weltweit abrufen kann.

Für das Vorhaben benötigt ihr neben dem Pi und einer Camera auch eine E-Mail-Adresse bei einem irgendeinem Provider. Ich habe mich hier für Strato entschieden, da ich meine Bilder nicht an ein ausländisches Unternehmen geben möchte.

ACHTUNG:
Es gibt eine neuen Beitrag zum E-Mail-Versand hier im Blog:
E-Mail-Versand für den Raspberry Pi konfigurieren


Inhaltsverzeichnis

MTA Postfix
Motion an E-Mail-Versand anpassen
Quellen
Nachtrag Januar 2016
Nachtrag Januar 2018
Nachtrag Oktober 2018

MTA Postfix

Der E-Mail-Versand funktioniert bei mir über den Mail Transfer Agent (MTA) Postfix, der in den Repositories enthalten ist und sich einfach und flexibel anpassen lässt.

Ich habe die folgenden Pakete installiert.

sudo aptitude install postfix libsasl2-modules bsd-mailx cyrus-imapd-2.2 cyrus-admin-2.2 sasl2-bin

postfix-Konfiguration
postfix-Konfiguration
postfix-Konfiguration
postfix-Konfiguration
postfix-Konfiguration
postfix-Konfiguration

Damit über Postfix auch Anhänge versendet werden können ist das Paket „heirloom-mailx“ unbedingt zu installieren. Fehlt dies, wird nur reiner Text per E-Mail versendet.

sudo aptitude install heirloom-mailx

Nach dem Herunterladen der Pakete werden die Programme installiert. Dabei ist bei Postfix anzugeben, dass ihr eure Mails über einen ISP versenden wollt.

Die Konfiguration von Postfix ist über ein paar Dateien im Verzeichnis /etc/postfix/ vorzunehmen. Die Hauptkonfigurationsdatei ist die main.cf die wir mit dem Editor nano bearbeiten.

sudo nano /etc/postfix/main.cf

Scrollt ganz an das Ende der Datei und fügt dort die folgenden Zeilen ein.

relayhost= smtp.strato.de:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_enforce_tls = no
smtp_tls_enforce_peername = no
smtpd_tls_security_level = may


Schließt und Speichert die Datei dann ab.

Sollten beim Versuch des E-Mail-Versands Meldungen zu IPv6 kommen, dann könnt ihr in der main.cf die Zeile

inet_protocols = ipv4


eintragen, um das zu lösen.

ipv6 - Fehlermeldung deaktivieren
ipv6 – Fehlermeldung deaktivieren

Nach der Bearbeitung der main.cf ist eine neue Datei mit dem Namen sasl_passwd im gleichen Verzeichnis anzulegen, worauf wir auch mit dem Eintrag smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd verweisen. Die Datei enthält den Benutzernamen und das Passwort eurer E-Mail-Adresse.

sudo nano /etc/postfix/sasl_passwd


Der Inhalt der Datei setzt sich zusammen aus

E-Mail-Server:Port E-Mail-Adresse:Passwort


An einem Beispiel ist das recht einfach darzustellen:

smtp.strato.de:587 :passwort


Ganz wichtig hierbei ist, dass der E-Mail-Server-Eintrag gleich dem Eintrag der main.cf entspricht. Schließt und speichert die Datei dann ab. Die sasl_passwd ist anschließend noch in eine db-Datei umzuwandeln, bevor Postfix neugestartet werden kann.

sudo postmap /etc/postfix/sasl_passwd
sudo /etc/init.d/postfix restart


Den Status von postfix könnt ihr euch jederzeit mit dem Befehl anzeigen lassen:

sudo service postfix status

Wird euch keine Fehlermeldung ausgegeben, können wir den ersten Versuch zum Versenden einer E-Mail unternehmen. Gebt dazu den folgenden Befehl auf der Konsole ein:

echo "Das Leben ist schön." | mailx -s "Hello World" e-mail-adresse


Wenn alles richtig konfiguriert ist solltet ihr eine Nachricht in eurem Postfach finden. Kommt dort keine Mail an, dann ist die Log-Datei zu analysieren, die sich im Verzeichnis /var/log findet.

cat /var/log/mail.info


Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


Motion an E-Mail-Versand anpassen

Funktioniert der E-Mail-Versand über Postfix, ist Motion noch anzupassen.
Öffnet die Konfigurationsdatei der Applikation mit einem Editor uns sucht dort nach dem Entrag on_picture_save. Ersetzt die Zeile durch:

echo 'webcam alert' | mail -a %f -s "Webcam Alert" e-mail-adresse


Die Nachricht könnt ihr auch noch personalisieren.

  • Betreff = Webcam Alert
  • Body = webcam alert

Ihr müsst beachten, dass bei dieser Konfiguration nur Bilder per E-Mail versendet werden. Standardmäßig erstellt die angepasste motion-Konfiguration (motion.mmalcam.con) jedoch nur Video-Dateien. Da ich die Video zum Anschauen aber angenehm finde, habe ich noch den Eintrag editier:

output_pictures off


wird zu

output_pictures on


Hier gibt es auch mehrere Möglichkeiten, was als Bild gespeichert werden kann. Die Beschreibung aus der Konfig-Datei lautet:
# 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.

Hat man einen Fehler bei der Konfiguration gemacht, kann man Postfix auf Werkseinstellungen zurücksetzen. Dafür einfach den Befehl auf der Konsole ausführen:

sudo dpkg-reconfigure postfix 

Quellen

Nachtrag Januar 2016

Nachdem seit einigen Wochen Raspbian Jessie zur Verfügung steht, wollte ich wie oben beschrieben Motion installieren. Leider scheinen noch nicht alle benötigten Pakete für Jessie in den Repositories vorhanden zu sein.
Möchte man aber trotzdem Jessie und Motion zusammen verwenden, dann sollte das evtl. mit V4L2-Treiber für das Raspberry Pi-Kameramodul möglich sein. Eine Anleitung gibts hier im Blog ➡ Motion mit UV4L auf dem Raspberry Pi

Nachtrag Januar 2018

Die beiden Pakete „cyrus-imapd-2.2 cyrus-admin-2.2“ sind nicht mehr über die Standard-Repositories zu installieren, werden aber für dieses Vorhaben nicht zwingend benötigt.
Der Installationsbefehl lt. also

sudo aptitude install postfix libsasl2-modules bsd-mailx sasl2-bin

Nachtrag Oktober 2018

Im oben beschrieben Manual ist es nach wie vor möglich, dass andere Benutzer die Möglichkeit haben die Anmeldedaten für eure E-Mail-Adresse zu sehen. Damit ich Zukunft das nur privilegierte User können (= sudo nano …) können die Rechte mit diesen Befehlen angepasst werden:

sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

Zudem wir als Absender der Benutzername und der Hostname des Pi verwendet.
Beispiel:
Benutzername pi
Hostname: raspberry
Als Absender der E-Mail wird dann pi@raspberry angezeigt.
Mit einer weiteren Datei kann für jeden Benutzer eine eigene Absenderkennung hinterlegt werden. Dazu ist folgendes zu machen:

Öffnet die main.cf und fügt die folgende Zeile hinzu

sender_canonical_maps = hash:/etc/postfix/sender_canonical

Damit sieht der einzufügenden Block so aus

relayhost= smtp.strato.de:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
sender_canonical_maps = hash:/etc/postfix/sender_canonical
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_enforce_tls = no
smtp_tls_enforce_peername = no
smtpd_tls_security_level = may

Anschließend erstellt ihr die Datei „sender_canonical“ im Verzeichnis „/etc/postfix/

sudo nano /etc/postfix/sender_canonical

In dieser Datei tragt ihr dann für jeden Benutzernamen eine Absender-Adresse ein, z.B.

pi

Speichert die Datei und erstellt die db-Datei

sudo postmap /etc/postfix/sender_canonical
sudo service postfix restart

oder für ausführlichere Informationen

sudo systemctl restart postfix.service

Das wars, nun sollten die E-Mails von der Adresse kommen

Raspberry Pi Kamera-Modul mit Motion als kleine Überwachungskamera

Seit kurzem bin ich stolzer Besitzer eines Raspberry Pi NoIR Kamera-Modul und einem dazu passenden Case. Für die Infrarotkamera habe ich mich entschieden, da ich irgendwann einmal damit Nachtaufnahmen machen möchte.
Alle Informatinen zur Kamera findet ihr auf der Raspberry Pi Website unter dem Tag Pi NoIR oder ihr klickt auf diesen Link
http://www.raspberrypi.org/tag/pi-noir/.

Die neue Kamera wird bei mir aktuell als kleine Überwachungskamera zusammen mit dem Programm Motion eingesetzt.

Vorbereitung

Bevor überhaupt die Kamera und das Programm Motion konfiguriert werden können, ist die Kamera am Raspberry Pi anzuschließen und zu aktivieren.

Eine Videoanleitung zeigt wie das Kamera-Modul am Raspberry zu befestigen ist.
https://www.youtube.com/watch?v=GImeVqHQzsE

Nachdem die Kamera mit dem Pi verbunden ist, schließt ihr den Mini-Computer an einem Bildschirm an und startet das Gerät. Die Kamera ist noch zu aktivieren, wechselt dazu auf die Konsole und gebt den Befehl ein.

sudo raspi-config


Das ruft die Anfangskonfiguration auf, wo ihr über das Setupmenü das Kamera-Modul aktivieren, enablen, könnt.
Die Kamera ist nun voll funktionsfähig und kann getestet werden.

Test der Kamera

Wurde die Kamera aktiviert ist sie sofort einsatzbereit und kann mit Befehle über die Konsole getestet werden.

raspistill -o test.jpg


Das -o definiert den Speicherort bzw. den Dateinamen des aufgenommenen Bildes.

Foto mit Kamera aufnehmen
Foto mit Kamera aufnehmen

Weitere Kommandos zum Aufnehmen von Fotos sind z.B.

Zeitraffer-Aufnahmen

Mit dem Befehl lassen sich über einen definierten Zeitraum in bestimmten Zeitabständen Bilder aufnehmen:

raspistill -o img_%04d.jpg -tl 5000 -t 36000


Das Kommando ist aus mehreren einzel Befehlen zusammengesetzt

  • Das -o ist bereits vom ersten Befehl bekannt und definiert den Speicherort bzw. den Dateinamen des aufgenommenen Bildes.
  • raspistill img_%04d.jpg benennt die aufgenommenen Bilder fortlaufend als 4-stellige Zahl.
  • 5000 definiert die Zeitabstände zum Aufnehmen der Fotos, alle 5 Sekunden wird ein Bild erstellt.
  • 36000 definiert die Zeitdauer, wie lange alle 5 Sekunden ein Bild aufgenommen wird.

Zeitraffer-Aufnahmen als Video

Die Zeitraffer-Aufnahmen stellen eine Vielzahl an einzelnen Bildern dar, die auch in ein Video zusammengeführt werden können. Dafür verwendet ihr den Befehl, um den Film video.mp4 zu erstellen.

ffmpeg -qscale 5 -r 4 -b 9600 -i img_%04d.jpg video.mp4

Installation und Konfiguration von Motion

Wird die Kamera zur Überwachung verwendet, soll sie nur Bilder erstellen, wenn sich im Erfassungsbereich etwas bewegt. Motion erstellt zusätzlich aus den aufgenommenen Bildern ein Video und speichert diese in einem definierten Verzeichnis ab.
Hier ist zwingend zu beachten, dass die Version von Motion aus den Repositories nicht verwendet werden kann. Das dort enthaltenen Paket erkennt das Kamera-Modul nicht und bringt den Feher /dev/video0. device or directory not found.

Zuvor sind jedoch einige Pakete mit denen Abhängigkeiten bestehen zu installieren.

sudo apt-get install ffmpeg libav-tools libavcodec53 libavdevice53 libavfilter2 libavformat53 libavutil51 libdc1394-22 libdirac-encoder0 libgsm1 libmp3lame0 libmysqlclient18 libopencv-core2.3 libopencv-imgproc2.3 libpostproc52 libpq5 libraw1394-11 libschroedinger-1.0-0 libspeex1 libswscale2 libtheora0 libva1 libvpx1 libx264-123 libxvidcore4 mysql-common libjpeg62 screen

Nach der erfolgreichen Installation der Pakete ist Motion an der Reihe. Die angepasste Version wurde auf Dropbox bereitgestellt und kann von dort heruntergeladen und anschließend installiert werden.

wget https://www.dropbox.com/s/xdfcxm5hu71s97d/motion-mmal.tar.gz
tar zxvf motion-mmal.tar.gz
sudo mv motion /usr/local/bin/

Achtung!
Bei mir hat kürzlich der Dropbox-Link nicht mehr funktioniert. Eine weitere Downloadmögliochkeit bietet dieser Link:
https://www.dropbox.com/s/0gzxtkxhvwgfocs/motion-mmal.tar.gz

Erstellt noch einige Ordner, damit Motion die Bilder bzw. Videos dort ablegen kann.

mkdir /home/pi/motion
mkdir /home/pi/motion/video
sudo mv motion-mmalcam.conf /home/pi/motion/motion-mmalcam.conf
cd motion


Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


Einige Anpassungen der Config-Datei sind vor dem ersten Starten von Motion noch erforderlich.
Öffnet die Konfigurationsdatei mit dem Editor nano und passt folgende an:

nano /home/pi/motion/motion-mmalcam.conf

  • Speicherort der Log-Files:
    logfile /home/pi/motion/motion.log

  • Log-File - Speicherort
    Log-File – Speicherort

    Den Inhalt der Log-Datei könnt ihr euch mit dem Befehl anzeigen lassen:

    cat motion.log

  • Speicherort der aufgenommenen Videos

    target_dir /home/pi/motion/video

  • target_dir
    target_dir
  • output_pictures off

  • output_pictures
    output_pictures
  • Anzahl Bilder pro Sekunde

    framerate 4

  • framerate
    framerate

    Jetzt können wir Motion mit dem Befehl starten

    sudo motion -c /home/pi/motion/motion-mmalcam.conf


    Die Bilder werden im Ordner video als ein Film im avi-Format abgespeichert.

    Möchte man Motion bei jedem Start des Pi ebenfalls mitstarten, wird ein chron-Job dafür benötigt.

    crontab -e


    Am Ende der Datei fügt ihr den Eintrag hinzu:

    @reboot screen -S Motion -dmS sudo motion -c /home/pi/motion/motion-mmalcam.conf

    Motion bietet euch auch die Möglichkeit die Bilder der Kamera auf euern PC oder euer Smartphone zu streamen. Ihr benötigt dafür lediglich ➡ https://www.videolan.org/. Als Netzwerkadresse gebt ihr ein

    http://ip-adresse-des-pi:8081


    Streaming
    Streaming

    Netzwerkadresse
    Netzwerkadresse

    Möchtet ihr Motion stoppen, genügt der Befehl:

    screen -S Motion -X quit

    Weitere Beiträge zu Raspberry Pi und Überwachungskamera hier im Blog

    Möchtet ihr eine Überwachungskamera mit einem Raspberry Pi installieren, solltet ihr euch die folgenden beiden Beiträge anschauen. Eine sehr einfache Möglichkeit ist die Verwendung eines Raspberry Pi Zero und motioneyeos.

    motioneyeos – Überwachungskamera mit dem Raspberry ganz einfach
    motioneyeos in VLC anschauen

    Bildquelle: Gemeinfrei-ähnlich freigegeben durch unsplash.comTobias Tullius