NEWS
Kamerabild abholen mit javascript
-
Hallo Miteinander,
ich bin gerade dabei, alle meine Progs von der Homematic nach iobroker rüberzubringen. Heute war das Prog zum 'Bild an Telegram schicken bei Bewegung' dran.
Nachdem ich einen ganzen Tag lang nun alles Mögliche probiert habe und im Forum nichts Vergleichbares gefunden habe, hier mein Sachverhalt:- iobroker auf Raspi
- beim javascript-Adapter "exec-Befehl" freigegeben
Wenn ich mit
wget -q -O '/home/pi/webcam.jpg' 'http://user:pass@192.168.178.61/Streaming/Channels/1/picture'oder
wget http://user:pass@192.168.178.61/Streaming/Channels/1/picture -O webcam.jpg -nd -A jpeg,jpg,bmp,gif,pngin putty versuche, ein Bild meiner Kamera abzulegen, funzt alles wunderbar.
Der gleiche Befehl mit Blockly jedoch:
führt zu keinem Effekt. Es wird keine Datei geschrieben. (Betrifft natürlich alle Varianten/Schreibweisen).Ich habe nun alle möglichen Varianten probiert, aber es geht nicht. Interessanterweise funzt der Befehl als Teil eines Homematic-Programms jedoch zuverlässig seit Jahren.
Wer weiß einen Rat?
Gruß
Erol -
Danke für den Code, läuft aber leider auch nicht.
Hier mal js-code:schedule("* * * * *", function () { timeout = setTimeout(function () { exec("wget -q -O 'webcam.jpg' 'http://user:pass@192.168.178.61/Streaming/Channels/1/picture'"); }, 2000); console.log('gelaufen'); });Mal eine doofe Frage: da es mit dem wget-Befehl in putty (eingeloggt als user "pi") geht und über die javascript-Instanz nicht: kann es es etwas mit den Rechten zu tun haben? D.h. der user iobroker (darunter läuft doch die js-Instanz) hat keine ausreichenden Schreibrechte und schreibt daher die jpg nicht?
Sorry für die vllt. total bekloppte Frage, aber ich bin kein Linux-Experte
-
Bei mir läuft das von "TheDuke" verlinkte auch problemlos.
Deine Aussage "läuft leider auch nicht" ist wenig hilfreich :-(
Was genau läuft nicht?
Mal für die JS Instanz das loggen auf Debug gestellt und geschaut was genau bei Script Ausführung passiert?
Denke du nutzt ein Linux System, mal ins SYSLOG / Messages log geschaut wenn das Script gelaufen ist ob es irgendwelche write Error oder Zugriffsfehler gibt?
-
Ich hole meine Fotos für Telegram wie folgend:
request.get({url: 'http://192.168.x.x:81/image/cam2?q=50&s=50', encoding: 'binary'}, function (err, response, body) { // fs.writeFile("/tmp/snap.jpg", body, 'binary', function(err) { fs.writeFile("c:/iobroker/tmp/snap.jpg", body, 'binary', function(err) { if (err) { console.error(err); } else { console.log('Snapshot sent'); sendTo('telegram.0', 'c:/iobroker/tmp/snap.jpg'); } }); });Gruss
