- USB Webcam an Raspberry Pi anschließen
- FHEM Starter-Guide: Mein eigener Smart Home Server
- Mehrere USB Webcams an einen Rechner anschließen (Raspberry Pi)
- USB Webcam - Kamera an Raspberry Pi anschließen: Bilder mit fswebcam
- Smart Home in der Küche: WMF Dampfgarer Vitalis mit Cook Assist
- Smart Home in der Küche: WMF Dampfgarer Vitalis mit Cook Assist
- Mehrere USB Webcams an einen Rechner anschließen (Raspberry Pi)
USB Webcam: Regelmäßige Fotos & in FHEM einbinden: So geht’s!
Hier zeigen wir, wie man mit einer Webcam unter Linux (z.B. am Raspberry Pi) regelmäßig ein Bild sichert – außerdem zeigen wir, wie man die Bilder in den Smart-Home Server FHEM einbauen kann. Wer seinem Smart Home auch “Augen” verpassen möchte, kann dafür auf zahlreiche IP-Kameras oder einfache USB-Webcams zurückgreifen. IP Kameras lassen sich in der Regel überall platzieren, wenn eine LAN- oder WLAN-Verbindung vorhanden ist. Über die jeweilige IP-Adresse der Kamera lässt sich dann in der Regel das Bild oder auch ein Video-Stream abrufen.
Eine USB Webcam wie in unserem Beispiel hier ist in der Regel deutlich günstiger, muss aber mit einem USB Kabel direkt an den Rechner angeschlossen werden, daher lässt sie sich nicht überall einfach platzieren.
» Teil 1: Webcam an Raspberry Pi anschließen
USB Webcam: Bilder regelmäßig oder bei Bedarf sichern
Wenn die Kamera erfolgreich am Rechner angeschlossen ist (wir gehen in unserem Beispiel von einem Linux Rechner aus), sollte man über die Konsole mit dem Programm fswebcam bereits die ersten Bilder der Kamera sichern können. Um die Bilder anschließend auch noch in FHEM zu integrieren, gibt es verschiedene Lösungen: So kann man zum Beispiel mit einem Cronjob in regelmäßigen Abständen ein Bild speichern oder nur bei Bedarf, wenn man auch eine Webseite auf dem Rechner aufruft, die nur dann ein neues Bild erzeugt und speichert.
» In regelmäßigen Abständen Bilder speichern und anzeigen
» Mit PHP: Bild nur bei Bedarf erstellen
» FHEM: Webcam-Foto bei Aktion machen (notify)
» Mehr zum OpenSource Smart Home Server “FHEM”
Regelmäßige Webcam-Fotos: Bilder automatisch erstellen
Diese Variante ist die einfachere Version: Wenn man bereits das erste Bild mit fswebcam erfolgreich speichern und ansehen konnte, muss man nur noch einen Cronjob einrichten: Damit führt Linux dann in einem gewählten, regelmäßigen Abstand eine bestimme Aktion aus – wir nutzen das, um alle fünf Minuten ein Bild mit fswebcam zu speichern (und das letzte Bild der Einfachheit halber zu überschreiben).
Damit FHEM auf das Bild später zugreifen kann, sollte man es in dem Ordner /opt/fhem/www/ speichern: Der Befehl zum Aufruf von fswebcam sieht also so aus:
fswebcam /opt/fhem/www/webcambild.jpg
Möchte man das Bild nicht für den FHEM Smart Home Server nutzen, kann man es natürlich auch woanders speichern: Gibt man den Datei-Namen für das Bild ohne Pfad an (nur “webcmbild.jpg”), wird es im aktuellen Ordner – meist der Home-Ordner des Benutzers – gespeichert.
Per Cronjob lässt sich das das Speichern der Bilder jetzt automatisieren – dazu muss (wenn noch nicht vorhanden) man das Cron-Modul aber zunächst installieren:
sudo apt-get update sudo apt-get install cron
Anschließend kann man mit dem folgenden Befehl den Cron-Editor starten:
sudo crontab -e
Gibt man jetzt eine der nächsten Zeilen als Beispiel ein, wird entweder jede Minute, alle 5 Minuten oder alle 10 Minuten ein Bild von der Webcam aufgenommen und automatisch gespeichert:
Alle 5 Minuten ein neues Bild:
*/5 * * * * fswebcam /opt/fhem/www/pgm2/webcambild.jpg
Dieser Befehl erzeugt jetzt alle 5 Minuten neu ein Bild mit der Kamera und speichert es unter dem am Ende genannten Pfad ab. Möchte man mehr oder weniger Bilder, muss man nur den Wert zu Beginn anpassen:
Alle 10 Minuten ein neues Bild:
*/10 * * * * fswebcam /opt/fhem/www/pgm2/webcambild.jpg
Jede Minute ein neues Bild:
* * * * * fswebcam /opt/fhem/www/pgm2/webcambild.jpg
Nachdem man die Zeile eingegeben hat, speichert man die Änderungen an der Crontabelle: Der Cron-Editor nutzt normalerweise “vi” zum Eingeben, daher kann man ihn durch die Eingabe von “:wq” (Doppelpunkt, w und q hintereinander eingeben) beenden, wenn man danach “Enter” drückt (mehr zu den vi Befehlen).
WebCam Bild in FHEM einbauen
Möchte man das Bild jetzt auch in FHEM anzeigen, muss man jetzt das Bild der WebCam in FHEM noch dort definieren – dabei muss man aber die IP-Adresse “192.168.1.2” gegen die eigene Adresse des Rechners tauschen.
define Webcam weblink image 192.168.1.2:8083/fhem/www/pgm2/webcambild.jpg attr Webcam htmlattr width="640" height="360"
Liegt das Bild auf dem gleichen Rechner, kann man die IP Adresse auch weglassen:
define Webcam weblink image /fhem/www/pgm2/webcambild.jpg attr Webcam htmlattr width="640" height="360"
Mit den Attributen width und height wird die Größe des Fensters für das Bild angegeben. Dies sollte passen zu der Auflösung gewählt werden, mit der fswebcam das Bild erstellt – denn die Auflösung lässt sich auch einstellen!
Webcam Bild nur bei Bedarf speichern (ideal für FHEM)
Dieses Beispiel ist etwas komplizierter in der Einrichtung als die Variante per Cronjob, speichert aber ein Bild nur bei Bedarf: Dieser Tipp dient als Beispiel, wie man das Bild erst dann erstellt, wenn man eine eigene Webseite auf dem Raspberry Pi öffnet, an dem die Webcam angeschlossen ist. Das ist aber nicht schwer: Nachdem man mit einem einzigen Befehl PHP installiert hat, muss man sich um fast nichts mehr kümmern – die Webseite selber besteht zunächst nur aus zwei Zeilen, um das Bild zu erstellen und dann anzuzeigen.
Der Befehl für das Speichern eines Webcam-Fotos wird nur dann ausgeführt, wenn die aktuelle Seite in auch tatsächlich angesehen wird: So speichert die Kamera nur dann ein Bild, wenn man auch wirklich den Raum ansehen möchte. Auch wenn man in unserem oben genannten Beispiel nicht mehr Platz verbraucht, da das Bild immer wieder überschrieben wird, ist dieses Vorgehen oft sinnvoller: Die SD Karte im Raspberry Pi ist anfällig für häufige Schreibzugriffe und hält dadurch in der Regel deutlich weniger lang.
Auch diese Methode ist für den Smart Home Server FHEM geeignet: Die PHP-Webseite, die das Bild erzeugt und speichert, lässt sich ganz einfach als “weblink” definieren und einbauen: Ruft man dann die FHEM Seite auf, wird das Bild aktuelle Bild gespeichert und angezeigt
Vorbereitung:
Zunächst haben wir auf unserem Raspberry Pi PHP5 installiert – dabei wird automatisch der Apache Webserver aktiviert, der dann unter Port 80 aufgerufen werden: Wenn man FHEM unter 192.168.1.2:8083 erreicht, erreicht man die PHP Seiten des Apache dann parallel dazu unter 192.168.1.2:80. Alle Dateien für den Apache liegen unter /var/www/ – zum Beispiel die nach der Installation zum ersten Start angezeigte Datei “index.html”.
PHP auf dem Raspberry Pi installieren:
Zunächst muss PHP auf dem Raspberry Pi installiert werden – wie das geht, zeigen wir in diesem Artikel. Anschließend kann man unter /var/www/ die Datei index.html ansehen oder verändern. Es macht jedoch Sinn, einen neuen Ordner für die Webcam-Bilder anzulegen und diesem zum ersten Test sämtliche Datei-Rechte zu geben:
sudo mkdir webcam-bilder sudo chmod 0777 webcam-bilder
In diesem Ordner haben wir dann mit dem Editor nano (oder dem vi Editor) eine Datei “bild.php” erstellt:
cd webcam-bilder nano bild.php
Die Datei startet über den PHP-Befehl exec das Programm fswebcam und speichert ein Bild mit dem Namen “bild.jpg”. Anschließend wird eine HTML-Seite ausgegeben, die das frisch erstellte Bild auch anzeigt. Achtung: Ein erneuter Aufruf der Datei überschreibt das erste Bild – wer das nicht möchte, muss die Datei etwas anpassen!
Inhalt der Datei bild.php
<?php exec('fswebcam -r 1280x720 --no-banner /var/www/webcam-bilder/bild.jpg'); echo '<html><body style="margin:0;padding:0;"><img src="bild.jpg"/></body>'; ?>
Damit das funktioniert, müssen jetzt noch die Rechte angepasst werden – zuerst muss der Apache-User “www-data” zur Video-Gruppe hinzugefügt werden, damit er auch die Kamera nutzen darf:
sudo adduser www-data video
Anschließend kann man die Datei bild.php schon über die Konsole aufrufen: Dann sollte das Bild “bild.jpg” automatisch erstellt werden. Zum Starten der Datei bild.php über die Konsole gibt man diesen Befehl ein:
php bild.php
Damit man das Bild später auch überschreiben kann, kann man noch die Bildrechte ändern:
sudo chmod 0777 bild.jpg
Jetzt muss der Rechner einmal neugestartet werden, damit der Apache-User auch die richtigen Gruppen-Rechte besitzt, anschließend lässt sich das Bild nicht nur über die Konsole, sondern auch mit einem Browser aufrufen – dazu braucht man die IP-Adresse des Raspberry Pi – als Beispiel nehmen wir hier die Adresse 192.168.1.2: Die Adresse zum Eingeben in den Browser wäre dann “192.168.1.2/webcam-bilder/bild.php”.
Automatisch erstelltes Webcam-Bild in FHEM einfügen
Um jetzt das WebCam Bild auch in FHEM anzeigen zu können, dient der FHEM Befehl Weblink: Damit kann man eine Webseite direkt als kleines Fenster in einem Raum in FHEM anzeigen lassen:
define Webcam weblink iframe 192.168.1.2:80/webcam-bilder/bild.php attr Webcam htmlattr width="640" height="360"
Wichtig ist hier, dass nicht das Bild selber eingefügt wird, sondern die PHP-Datei, die das Bild erst beim Aufruf von der Kamera holt und dann speichert, bevor sie es selber anzeigt.
FHEM: Webcam-Foto bei einer Aktion machen
Möchte man mit FHEM automatisch ein Foto mit der Webcam machen, wenn eine bestimmte Aktion eintritt (zum Beispiel, wenn ein Tür-Sensor eine Tür-Öffnung registriert, ein Bewegungsmelder in FHEM eine Bewegung anzeigt oder ein Schalter betätigt wurde), kann man das Foto direkt aus FHEM machen lassen: Dazu gibt man den Linux-Befehl, der das Foto mit dem Programm fswebcam erzeugt, direkt in FHEM ein:
system("fswebcam /var/www/bilder-webcam/bild.jpg")
Hier muss nur der Pfad für das Bild gewählt werden: Wichtig ist hier, dass der User “fhem” Schreibrechte auf dem Ordner braucht oder der Ordner mit “sudo chmod 777 bilder-webcam” Schreibrechte für alle Nutzer hat. Damit der User hem auch noch Zugriff auf die Kamera bekommt, muss er der Gruppe “video” zugefügt werden:
sudo adduser fhem video
Anschließend kann man einen Notify erstellen, der in unserem Beispiel zum Beispiel auf einen Türöffnungs-Sensor reagiert und ein Foto mit der Webcam macht, wenn jemand die Tür öffnet:
define act_on_terassentuer notify IT_0011101011010 {\ if("$EVENT" eq "on") {\ fhem("set myMPD playfile alarm-terrassentuer.mp3");;\ sleep 1;;\ system("fswebcam /var/www/bilder-webcam/Techniktuer.jpg") }\ }
In diesem Beispiel wird mit dem MPD zunächst ein Soundfile abgespielt und dann mit der Webcam ein Foto von der Person gemacht, die gerade die Tür öffnet. Dies lässt sich noch mit der Bluetooth-Personenerkennung kombinieren: Dann würde FHEM nur dann ein Foto machen und einen Ton abspielen, wenn niemand der bekannten Personen zu hause ist.
- datenschutz (4x gelesen)
- pc-einsteigerkurs (3x gelesen)
- windows-beschleunigen (2x gelesen)
- windows-schneller-starten-autostart-aufraeumen (2x gelesen)
- windows-defragmentieren-und-aufraeumen (1x gelesen)
Mehr Tipps zu USB Webcam: Regelmäßige Fotos ...
-
Android Bildschirm auf den Fernseher streamen
Mit der Cast Funktion von Android (die auch im Chrome Browser eingebaut ist) lassen sich Inhalte auf andere Geräte streamen: Zum Beispiel Googles ChromeCast Geräte....
-
Windows 11 Screenshot: Als Bild oder Video speichern!
Seit Windows 95 macht man den Windows Screenshot mit der "Drucken" Taste: Das Bildschirm-Foto wird in die Zwischenablage kopiert und lässt sich direkt in andere...
-
Windows 11: Kostenlose Texterkennung in Bildern
Windows 11 kommt mit praktischer, kostenloser Text-Erkennung: Diese Funktion, auch OCR genannt, kann Text auf Bildern erkennen und hervorheben. Damit lässt er sich in ein...
-
Smart Home: Mit der Webcam die Helligkeit ermitteln (z.B. für FHEM!)
Wie hell ist es eigentlich? Das kann für ein Smart Home wichtig sein: Sobald das smarte Zuhause weiß, wie hell es gerade in einem Zimmer...
-
Raspberry Pi friert ein: USB Webcam Schuld – Dieser Trick hilft!
Raspberry Pi: Mit angeschlossener USB-Webcam reagiert der Mini-Rechner plötzlich nicht mehr und friert ein: Er ist dann über das Netzwerk nicht mehr erreichbar - mit...
-
FHEM: JeeLink / LaCrosse Sensor: Batterie wechseln
Wer bei einem LaCrosse Temperatursensor die Batterien tauscht, muss eine Sache beachten - andernfalls wird die Hardware-ID zurückgesetzt und der Sensor wird unter einem neuen...
- auf dem Laptop gehts, mit dem Tower nicht
Hallo,ich habe ein Programm DESIGNER aus alten XP Zeiten, das ich weiter verwende. Es fu...
- langsamer gehts nicht mehr
- Möchte Prozessor austauschen. Gehts mit dem Sockel auch?
Hallo!ich wollte meinen Prozessor austauschen da mein PC nicht mehr so flott läuft. Ich habe ...
- System hängt ein paar Sekunden dann gehts weiter
Hallo, ich hab volgendes Problem.Mein System hängt 1 bis 2 Sekunden dann gehts weiter u...
- fhem 5.7.deb installation
USB Webcam: Regelmäßige Fotos & in FHEM einbinden: So geht's!