NEWS
Fehler bei Telegram "Snapshot" sent
-
Hallo,
hat vielleicht jemand eine Lösung für folgende ERROR : {'errno':-13,'code':'EACCES','syscall':'open','path':'/opt/download.jpg'}Ich würde mir gern via Telegram "Snapshot" von meine Überwachung Kamera senden bekomme ich aber immer das gleiche ERROR. Ich bin mir nicht sicher dass ich den Iobroker als ROOT installiert habe und ist vielleicht hier das problem ??
Also beim JS Adapter is "EXEC" angehängt also daran liegt es nicht.Folgende script will ich werden:
var request = require('request'); var fs = require('fs'); request.get({url: 'http://192.XX.0.XX:XX/picture/1/current/', encoding: 'binary'}, function (err, response, body) { fs.writeFile("/opt/download.jpg", body, 'binary', function(err) { if (err) { console.error(err); } else { var info_text = 'Ein neues Bild'; console.log('Snapshot sent'); sendTo('telegram.0', {text: '/opt/download.jpg', caption: info_text }); } }); });
-
@Novak Evtl. fehlende Zugriffsrechte im Ordner /opt ?
-
@FREDF und wie kann ich es korrigieren? Ich meine soll ich den Admin quasi mein Termial User als ROOT User ändern??
Danke dir für die Antwort im Voraus.
-
Nein, ich würde als root erstmal
chmod -R 777 /opt/
in einem Terminal setzen und dann das Script nochmal ausprobieren.
Wenn es dann läuft kannst du die Rechte auf den User einschränken, unter dem iobroker läuft.
Ansonsten hat dann eben jeder User auf der Maschine Lese- und Schreibberechtigungen auf /opt. -
Du brauchst auf jeden Fall eine Pause zwischen dem Abruf des Bildes von der Kamera und dem Aufruf von Telegram, da die Bereitstellung des jpg Sekunden dauern kann.
Ich habe in meiner Lösung mit 5 Sekunden eine guten Zuverlässigkeit erreicht.Es gibt im Forum mehrere Themen dazu, wobei es aber mit Blockly umgesetzt wird.
Das könntest du leicht in js übernehmen. -