NEWS
[Erledigt] WEB-Cam - exec Befehl
-
Hallo, ich habe eine Logitech WEB-Cam auf meinem Raspi (auf dem auch der ioBroker läuft) angeschlossen und "fswebcam" (nach diesem Link: https://tutorials-raspberrypi.de/raspberry-pi-ueberwachungskamera-webcam/) installiert.
Das klappt soweit super und ich kann auf dem Raspi in der Konsole per "fswebcam image.jpg" in dem Ordner in dem ich mich gerade befinde Bilder aufnehmen.Nun wollte ich per Blockly ein Foto aufnehmen lassen. Mit dem "exec" Befehl habe ich versucht den Befehl "fswebcam image.jpg" auszulösen. Nach dem LOG wird der Befehl auch ausgeführt. Nur es werden keine Bilder aufgenommen.
Benötigt der iobroker noch andere Rechte oder ist der Ansatz über exec falsch?
-
Ist nicht ganz der richtige Ansatz, oder?
Manchmal braucht es auch im Forum ein paar Tage bis jemand antwortet.
-
@LotharF Definitiv nicht, deswegen habe ich deinen Beitrag wieder hergestellt.
Wohin willst du die Bilder den Speichern, ein Screenshot deines Blockly wäre sicher nicht verkehrt. Man kann beim Exec befehl auch den Output des Befehls zurück geben lassen, dann sieht man was genau passiert.
-
Naja, ich dachte nur, bevor hier ne Karteileiche herumliegt ....
Ich möchte vn der Logitech WEB-Cam (angeschlossen an dem Raspberry auf dem auch der iobroker läuft) das Bild auf dem Raspberry zwischenspeichern ... und es kann gerne immer wieder überschrieben werden.
Wenn ich über Putty den Befehl absetze klappt es auch:
Nur wenn ich versuche das über Blockly zu realisieren komme ich nicht weiter.
Hab auch versucht das dann über Telegram zu verschicken ... was natürlich mangels Aufnahme auch nicht klappt:
Obwohl das LOG keinen Fehler ausspuckt habe ich aber kein Bild in dem Ordner:
Letztendlich möchte ich "nur" eine Aufnahme wenn der Kontakt ausgelöst wird.
Und das Bild sollte (wenn es geht) über Telegram verschickt werden.
Aber hier stoße ich an meine Grenzen. Da habe ich dann doch zu wenig Hintergrundwissen wie ich das hier realisieren kann.
Wenn mir da jemand unter die Arme greifen könnte wäre es schon super -
Scheint ja so, also wenn sonst keiner ne normale WEB-Cam wie ich angeschlossen hat
Ist dann wohl nicht möglich meine Vorstellung so umzusetzen? -
@LotharF Doch sicher, aber du hast meinen Vorschlag nach deinem Screenshot zu Urteilen nicht umgesetzt. Hack doch einfach mal beim exec "mit Ergebnissen" an, dann bekommst du auch den Output deines Befehls ins log und nicht nur die Meldung das exec ausgeführt wurde.
-
@LotharF Wohin speichert der Befehl denn die Bilder? Im aktuellen Verzeichnis? Das ist dann ggf. nicht da wo du erwartest. Gebe doch statt
image.jpg
mal einen vollständigen Dateipfad an, z.B./home/pi/image.jpg
. -
Naja, so direkt hast du das nicht geschrieben
Wenn ich nur den Haken bei "mit Ergebnissen" setze kommt nix.
Hab nach einer Suche dann noch nen "debug output" drangesetzt ... wo dann im LOG ne Zeile mehr kommt.
Ob das so richtig ist ... keine Ahnung. Ich bin leider noch Anfänger mit dem Script usw. Sonst bitte genau schreiben was ich wo wie machen / testen soll -
Ich dachte, ich bin der einzige, der fswebcam nutzt. Hab folgendes Script, welches aufgerufen wird, wenn der Bewegungsmelder im Flur schaltet und ich nicht da bin. Schickt das aufgenomme Bild per Telegram rum.
Der Exec Aufruf ist btw:
../usr/bin/fswebcam --no-banner -r 1280x960 --skip 8 /opt/iobroker/cam/alarm.jpg--> beim Raspi hat's ggf. andere Pfade
-
supi Ich dachte schon ich versuche das gaaaanz alleine
Du erzeugt dann das Bild im Ordner /usr/bin und kopierst das dann nach /opt/iobroker/cam ?
Was hast du denn bei dir vor dem /usr/bin noch stehen ?
Hast du irgendwelche Rechte vergeben müssen?
Sorry wenn ich so doof frage ... aber ich steige da noch nicht durch -
in /usr/bin liegt die fswebcam binary. Das Bild lege ich in /opt/iobroker/cam ab. Das kann aber auch jeder andere Ordner sein.
../usr/bin/fswebcam --no-banner -r 1280x960 --skip 8 /opt/iobroker/cam/alarm.jpgHier noch der Code vom Block:
<block xmlns="http://www.w3.org/1999/xhtml" type="procedures_defnoreturn" id="~pPk?PHjzu0{iCY*^,Mh" x="-1088" y="-312">
<field name="NAME">foto senden</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
<statement name="STACK">
<block type="timeouts_settimeout" id="%parHE%U;Jg[8keop7B#">
<field name="NAME">timeout</field>
<field name="DELAY">1500</field>
<field name="UNIT">ms</field>
<statement name="STATEMENT">
<block type="exec" id=")s4eqoL)+rnTyhSAl1/f">
<mutation with_statement="false"></mutation>
<field name="WITH_STATEMENT">FALSE</field>
<field name="LOG">log</field>
<value name="COMMAND">
<shadow type="text" id="xY6eq
nky[SMncjoLv.">
<field name="TEXT">../usr/bin/fswebcam --no-banner -r 1280x960 --skip 8 /opt/iobroker/cam/alarm.jpg</field>
</shadow>
</value>
<next>
<block type="timeouts_settimeout" id="%@nkC[RH(?Ec:@AGgZ:,">
<field name="NAME">timeout2</field>
<field name="DELAY">6</field>
<field name="UNIT">sec</field>
<statement name="STATEMENT">
<block type="telegram" id="d38k#q#az~Oi^iSLuj9.">
<field name="INSTANCE">.0</field>
<field name="LOG"></field>
<field name="SILENT">FALSE</field>
<field name="PARSEMODE">default</field>
<value name="MESSAGE">
<shadow type="text" id="at(q2i6A623??3sky7BI">
<field name="TEXT">/opt/iobroker/cam/alarm.jpg</field>
</shadow>
</value>
</block>
</statement>
</block>
</next>
</block>
</statement>
</block>
</statement>
</block> -
supercool ... danke
Das hat mir schon ein wenig geholfen ... nur bei mir wird immer noch kein Foto erzeugt
wenn ich mit putty auf den Raspi gehe, kann ich den Befehl "../usr/bin/fswebcam --no-banner -r 1280x960 --skip 8 /opt/iobroker/cam/alarm.jpg" so nicht ausühren.
Erst wenn ich "/usr/bin/fswebcam --no-banner -r 1280x960 --skip 8 /opt/iobroker/cam/alarm.jpg" ... also ohne die beiden Punkte davor das eingebe wird mit Putty ein Foto erzeugt.
Hab das dann beim Blockly ohne Punkte versucht ... was auch nicht klappt
Könnte da doch noch ein Rechteproblem bestehen? "fswebcam" hat bei mir 755 und root, der neue Ordner "cam" hat 775 und pi.
Oder muss ich noch was einstellen/installieren/ändern damit exec überhaupt funktioniert? -
@LotharF sagte in WEB-Cam - exec Befehl:
/opt/iobroker/cam/alarm.jpg
Hat der User
iobroker
Schreibzugriff auf diesen Ordner? -
Ich glaube dem fehlt der Schreibzugriff auf "video0".
Aber wie gebe ich dem dann die Rechte? Noch bin ich nicht so bewandert mit Linux
-
... und hat der user "iobroker" kein Passwort? ... oder eins was ich nicht kenne
ich wollte den iobroker-fixer laufen lassen der dann das Passwort vom "iobroker" wollte. Meins vom Admin nahm er aber nicht an -
@LotharF Nein, der hat kein Passwort, weil man sich als der auch nicht anmeldet. Wenn du den Fixer ausführst, solltest du das als der User tun, mit dem du normalerweise auf der Konsole arbeitest.
Wer hat denn Zugriff auf die Kamera?
ls -la /dev/video0
Wenn das zufällig eine Gruppe "video" ist, dann muss ioBroker zu dieser noch hinzugefügt werden:
sudo usermod -a -G video iobroker
Das sollten wir dann auch vom Installer/Fixer machen lassen.
-
jap, ist Video
hab den fixer mal laufen lassen und hinterher noch mal deine beiden Infos angewendet.
Wenn ich mich nun wieder als user "ibroker" anmelde, kann ich ein Foto aufnehmenÜber Blockly will es aber immer noch nicht. Vermutlich muss der neuen Ordner "cam" auch noch den "iobroker" zugeordnet werden? Wie mach ich das denn?
-
@LotharF ioBroker hat ja schon da rein geschrieben, also existiert Schreibzugriff.
Hast du dir mal die Ausgabe vom Exec aus Blockly (Haken "mit Ergebnissen") loggen lassen? -
Hab jetzt den Raspi mal Stromlos gemacht und neu hochgefahren.
Jetzt klappt es auch über das BlocklyDanke für deine tolle Hilfe. Ohne wäre ich sicher immer noch am verzweifeln
Hab wieder einiges dazugelernt. -
@LotharF Lass mich raten: Du hast weder den Adapter noch den Host neu gestartet nach den Gruppen-Änderungen?