FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Kuzl am 26 Februar 2014, 19:31:44

Titel: USB-Webcam in fhem
Beitrag von: Kuzl am 26 Februar 2014, 19:31:44
Hallo ich hoffe ihr könnt helfen.

Ich versuche schon einige Zeit in Fhem meine Webcam einzubinden. Diese ist an den Raspi angeschlossen auf dem FHEM läuft.
Was ich will ist eine relativ aktuelle (so ca. 5-10 Sekunden) abbildung der Webcam im Fhem Fronted.
Die Webcam wird bereits erkannt, kann auch Fotos damit machen z.b. mit fswebcam oder motion, wobei bei so vielen Bildern hintereinander motion die bessere Wahl ist, was die CPU-Auslastung betrifft.
Ich kann auch mit motion einen livestream starten, der allerdings komischerweise nur mit dem Firefox oder VLC-Player angezeigt wird (chrome nicht und auch weblink und IPCAM nicht)

Mitlerweile hab ich es so gelöst, dass ich mithilfe von HTMLSRV das Verzeichnis freigegeben habe und dann mit weblink image darauf zugreife
Ist nicht sehr elegant und es wird auch nicht aktualisiert.

Habt ihr bessere Ideen/Lösungsvorschläge?

Viele Grüße
Kuzl
Titel: Antw:USB-Webcam in fhem
Beitrag von: Gerhard am 26 Februar 2014, 19:47:37
Hi Kuzl,

versuche es mit iframe den Lifestream darzustellen.

hier eine INSTAR Cam:

define IpCamStream weblink iframe http://192.168.0.40/videostream.cgi?user=admin&pwd=&resolution=8&rate=23

oder eine webseite:

define Wetter weblink iframe http://www.wetteronline.de/cgi-bin/hpweather?PLZ=91350

Gerhard
Titel: Antw:USB-Webcam in fhem
Beitrag von: Kuzl am 26 Februar 2014, 20:03:49
Habs mal versucht.
Beim ersten Versuch direkt der Stream von motion => leeres weißes kästchen wird angezeigt (hab da nur http://localhost:8081 eingegeben muss ich da noch irgendwas dazu angeben?
Beim 2. Versuch die website aus dem HTMLSRV => wird leider nicht aktualisiert

mach ich etwas falsch?
Titel: Antw:USB-Webcam in fhem
Beitrag von: Kuzl am 26 Februar 2014, 20:14:07
ok habs grad hingekriegt mit einem HTML-Code:
<html>
<head>
<meta http-equiv="refresh" content="5">
<title>Titel</title>
</head>
<body>
<img src="http://localhost:8083/fhem/webcam/lastsnap.jpg" alt="Webcamfoto"></body>
</html>


allerdings noch nicht optimal, da immer die komplette Seite aktualisiert wird und nicht nur das Bild.

Noch eine Frage, ich sollte warscheinlich das Verzeichnis, in dem das Bild ist als Ramdisk einstellen oder?
wie mach ich das?
Titel: Antw:USB-Webcam in fhem
Beitrag von: Gerhard am 26 Februar 2014, 20:20:17
zitat:

Zitathab da nur http://localhost:8081 eingegeben muss ich da noch irgendwas dazu angeben?[/quote
ich kenne deine Cam nicht, aber irgendwo in der Beschreibung müsstest du es finden wie es geht.

irgendwo in Forum war ein Beitrag, wo VLC-Player in ein iframe (glaube ich) dargestellt wurde. den Beitrag finde ich gerade nicht.
vll meldet sich der Author!?

Gerhard
Titel: Antw:USB-Webcam in fhem
Beitrag von: det. am 26 Februar 2014, 20:31:00
Wenn es nicht heute Nacht sein muss, kann ich morgen in der Firma mal den Code aus dem RPI auslesen. Hab mit genau so einer USB Cam, FHEM und dem IPCAM Modul von Martin Fischer eine Schnee Höhenüberwachung für den Winterdienst gebastelt. Der RPI funktioniert prächtig seit Anfang November 2013 - geschneit hat's nicht...
Titel: Antw:USB-Webcam in fhem
Beitrag von: Kuzl am 26 Februar 2014, 20:56:47
Das wär super wenn du das machen könntest vielen Dank :)
Titel: Antw:USB-Webcam in fhem
Beitrag von: det. am 26 Februar 2014, 22:14:38
Dann sende ich Dir morgen die FHEM.cfg per pm
Titel: Antw:USB-Webcam in fhem
Beitrag von: Kuzl am 27 Februar 2014, 00:30:38
inzwischen hab ich eine gute Lösung gefunden, die sich selbst alle 5 Sekunden aktualisiert und alles andere in Ruhe lässt :)
ist als weblink mit HTML definiert
<html><head> <script LANGUAGE="JavaScript"><!-- function back() { history.go(-1); } //--></script> </head> <img name="dyn_bild" src="http://192.168.178.62:8083/fhem/webcam/lastsnap.jpg" width="320" height="240"> <script LANGUAGE="JavaScript"><!-- function reloadImage() { var now = new Date(); if (document.images) { document.images.dyn_bild.src = 'http://192.168.178.62:8083/fhem/webcam/lastsnap.jpg'; } setTimeout('reloadImage()',5000); } setTimeout('reloadImage()',5000); //--></script> <br> <a href="http://192.168.178.62:8083/fhem?detail=webcam">webcam</a> </body></html>

bin gespannt wie du das über IPCAM machst :)
Titel: Antw:USB-Webcam in fhem
Beitrag von: derben am 09 Juni 2014, 21:16:10
Hey ich bräuchte hierzu mal ne Hilfe:

Ich hab ne Logitech Cam an meine Bubi angeschlossen
Auf der Console kann ich bildet machen per:

fswebcam --device /dev/video0 -r 1680x1080 -d /dev/video0 -v /tmp/Büro.jpeg

So was und welche Schritte sind hier nötig um das so elegant hinzubekommen wie ihr?
Ich würde gern eine Seite Aufrufen - z.B. Garten und hier sehe ich dann das Bild welches sich alle 15 Sekunden aktualisiert
und mein Eingang (/dev/video1) das Bild sich alle 5 Sekunden aktualisiert

Wer kann helfen - schritt für schritt ? (Alternativ ne Anleitung / Link wo ich selber was machen kann)

Danke euch
Titel: Antw:USB-Webcam in fhem
Beitrag von: Kuzl am 11 Juni 2014, 11:17:49
Hallo derben,

sry für die späte Antwort, bin im Moment sehr im stress und komme zu gar nichts :D
Also als nächstes musst du dir das programm "motion" einrichten; wie das geht steht zu genüge im internet.
ob der Webcamserver vernünftige bilder schickt siehst du dir am besten mit dem vlc-player an.
Wichtig ist, dass du in der config von motion alles andere ausschaltest. deine SD-Karte wird es dir danken wenn sie nicht alle paar Sekunden ein Bild speichern muss :D

Wenn das richtig funktioniert kannst du es mit diesem Code in FHEM einbinden. Bei mir funktioniert er, hab aber auch schon von anderen gehört so geht es bei ihnen nicht. Wenns bei dir nicht geht probier den code von weiter oben ;)


define webcam weblink htmlCode <html>\
<img name="dyn_bild" src="http://192.168.178.62:8081" width="240" height="320">\
<br>\
<a href="http://192.168.178.62:8083/fhem?detail=webcam">webcam</a>   \
</body></html>
Titel: Antw:USB-Webcam in fhem
Beitrag von: drdownload am 11 Juni 2014, 11:47:23
Kann man eigentlich bei motion einstellen dass nur bei Zugriff auf dass Bild oder Stream die Kamera auch eingeschaltet wird?
Titel: Antw:USB-Webcam in fhem
Beitrag von: Kuzl am 11 Juni 2014, 12:09:51
Davon hab ich leider keine Ahnung, müsstest du einfach mal die config durchschaun.
Allerdings wird ja nur beim aufruf auch gestreamt, das heißt es belastet die CPU nur dann merklich mehr, wenn du auch das Bild irgendwo ansiehst.
Titel: Antw:USB-Webcam in fhem
Beitrag von: drdownload am 11 Juni 2014, 17:33:30
Ich schmökere gerade in den Konfig-Beispielen, Problem ist, dass wenn meine USB-Webcam permanent läuft sie schon sehr warm wird, wer weiß wie lange sie das überlebt und für das reine Event Bewegung habe ich ja richtige Bewegungsmelder.
Titel: Antw:USB-Webcam in fhem
Beitrag von: derben am 12 Juni 2014, 21:44:35
Danke - für alle Neulinge hier ne Schritt für Schritt Anleitung:

Anleitung:
Für Bilder machen:

Befehl:
apt-get fswebcam
fswebcam --device /dev/video0 -r 1680x1080 -d /dev/video0 -v /tmp/Bild.jpeg

Hier kann man einfach ein Bild machen und schauen ob es funktioniert.

---
Motion Einrichtung:

http://www.karesyk.de/webcam-server-einrichten/
Ohne Apache.

Per Browser / VLC auf : 192.168.178.165:8081
und das Bild kommt.

--

FHEM Config: (IP Anpassen!)

# Webcam Balkon
define Webcam_Balkon weblink htmlCode <html>\
<img name="dyn_bild" src="http://192.168.178.165:8081" width="640" height="480">\
<br>\
<a href="http://192.168.178.165:8083/fhem?detail=webcam">webcam</a>   \
</body></html>
attr Webcam_Balkon room Terrasse,.Wetter

Fertig.

Grüße und besten Dank vom Ben
Titel: Antw:USB-Webcam in fhem
Beitrag von: Spiff am 15 August 2015, 14:21:40
Hi,

das Beispiel von Kuzl weiter oben geht nicht, weil der Javascript-Teil auskommentiert ist.
Ich habe hier ein schön minimalistisches Beispiel, das gut funktioniert (auch mit Android 4.2 und WVC, dort gehen MJPEGs sonst nicht).
Es aktualisiert nur das Bild in einem vorgegebenen Intervall.

define dynPic weblink htmlCode <html> <head> <script LANGUAGE="JavaScript"> window.setInterval(function() {document.getElementById('dynamicImage').src = "http://xxx.xxx/image.jpg?random="+new Date().getTime();;}, 3000);; </script> </head> <body><img id="dynamicImage" src="http://xxx.xxx/image.jpg" width="960" height="720"></body>

Hinweise:
- im ersten Link muss hinter die Bildadresse das ?random bestehen bleiben. Damit wird erreicht, dass die Bilder selber eine eindeutige ID bekommen und der Browsercache nicht auf bereits vorhandene Bilder zugreift. Wenn die Adresse schon ein "?" enthält: "&" benutzen.
- die 3000 ist die Aktualisierungsangabe in Millisekunden
- bei mehreren Bildern auf einer Seite muss für jeden Bildcontainer eine eindeutige ID vergeben werden (dynamicImage; 2x im Beispiel vorhanden)

Gruß
Spiff
Titel: Antw:USB-Webcam in fhem
Beitrag von: oti am 26 September 2015, 12:11:41
Hallo,
klappt bei mir super, was mir gefehlt hat war die Unterscheidung zwischen einer internen Adresse (192.168.XXX.XXX) und einer externen Adresse (aaa.dyndns.org), um den Traffic nach außen zu minimieren.
Da die Ersetzung des Pfades durch eine Variable bei mir nicht geklappt hat (sowas wie http://$variable/image.jpg mit z. B. $ENV{'HTTP_HOST'}) habe ich das Skript wie folgt geändert:

htmlCode
<html>
<head>
  <script LANGUAGE="JavaScript">
    if(window.location.host == "aaa.dyndns.org") {
      window.setInterval(function() {document.getElementById('dynamicImage').src = "http://aaa.dyndns.org:8084/image.jpg?random="+new Date().getTime();;}, 5000);;
    }else{
      window.setInterval(function() {document.getElementById('dynamicImage').src = "http://192.168.xxx.xxx:8084/image.jpg?random="+new Date().getTime();;}, 1000);;
}
  </script>
</head>
<body>
  <img id="dynamicImage" src="http://192.168.xxx.xxx:8084/image.jpg" width="640">
  <script>
    if(window.location.host == "aaa.dyndns.org") { document.getElementById("dynamicImage").src = "http://aaa.dyndns.org:8084/image.jpg"; }
  </script> 
</body>


Ein weiterer Vorteil ist, dass ich unterschiedliche Reloadzeiten für intern und extern einstellen kann (im Beispiel 5 Sekunden extern und 1 Sekunde intern).
Mein Pad zu Hause an der Wand lädt also die Seite 192.168.xxx.xxx und wenn ich unterwegs bin, dann rufe ich die Seite aaa.dyndns.org auf.

Übrigens in Chrome kann man mit Rechtsklick auf das Bild und "Element untersuchen" schön sehen wie das Bild immer wieder neu geladen wird.

Vielleicht braucht es ja jemand... :-)

Gruß
OTi
Titel: Antw:USB-Webcam in fhem
Beitrag von: AGF am 26 September 2015, 16:30:14
Hallo Oti,
ich werde mir deine Info merken, vielleicht wird die irgendwie nützlich.
Titel: Antw:USB-Webcam in fhem
Beitrag von: oberfragger am 10 November 2015, 17:27:37
Hallo Oti,

den Code kann ich dann so in der FHEM.cfg übernehmen (also davor eine define xy) oder muss ich noch etwas machen. Der Code von Ben tuts aktuell bei mir auch ganz gut. Aber die Limitierung des Traffic finde ich eine nette Idee!

Danke@Ben
Titel: Antw:USB-Webcam in fhem
Beitrag von: nicor2k am 11 Januar 2016, 12:01:17
Hallo!

Ich habe jetzt auch eine WebCam an den Pi angeschlossen und hier einmal zwei Beispiele zusammengestellt, wie man sie schnell und einfach in FHEM integrieren kann - entweder, indem die Kamera alle 1, 5 oder 10 Minuten automatisch ein Bild speichert (Zeit einstellbar!) oder indem das Bild mit einem speziellen PHP Skript nur dann gespeichert und angezeigt wird, wenn man mit FHEM auch wirklich das Bild sehen will (das schont die SD Karte :) ). Das geht bestimmt auch ohne PHP, für mich war das so aber einfacher und die Load-Zeit hat sich im normalen FHEM Betrieb bei mir überhaupt nicht erhöht...

Hoffe, es hilft dem einen oder anderen!
http://www.computerhilfen.de/info/usb-kamera-in-fhem-einbinden-so-gehts.html