NEWS
Klingelbild Script/Telegram Fehler
-
Hey,
ich habe seit heute folgendes Problem, die Bilder die ich mit meiner Camera aufnehme werden nicht gesendet, allerdings in der Pfadangabe ordnungsgemäss gespeichert,
Fehler
! ````
telegram.0 2018-11-21 15:03:23.277 error Cannot send photo [chatId - 796402639]: Error: ETELEGRAM: 400 Bad Request: IMAGE_PROCESS_FAILED
telegram.0 2018-11-21 15:03:23.235 error Cannot send photo [chatId - 796402639]: Error: ETELEGRAM: 400 Bad Request: IMAGE_PROCESS_FAILED
javascript.0 2018-11-21 15:03:23.112 info script.js.Klingel.Camera2: sendTo(adapter=telegram.0, cmd=[object Object], msg=undefined)
javascript.0 2018-11-21 15:03:20.111 info script.js.Klingel.Camera2: setTimeout(ms=3000)
telegram.0 2018-11-21 15:03:12.875 error Cannot send photo [chatId - 796402639]: Error: ETELEGRAM: 400 Bad Request: IMAGE_PROCESS_FAILED
telegram.0 2018-11-21 15:03:12.865 error Cannot send photo [chatId - 796402639]: Error: ETELEGRAM: 400 Bad Request: IMAGE_PROCESS_FAILED
javascript.0 2018-11-21 15:03:12.753 info script.js.Klingel.Camera2: sendTo(adapter=telegram.0, cmd=[object Object], msg=undefined)
javascript.0 2018-11-21 15:03:09.751 info script.js.Klingel.Camera2: setTimeout(ms=3000)
javascript.0 2018-11-21 15:03:06.742 info script.js.Klingel.Camera2: registered 1 subscription and 0 schedules
javascript.0 2018-11-21 15:03:06.742 info script.js.Klingel.Camera2: setTimeout(ms=10000)
javascript.0 2018-11-21 15:03:06.171 info script.js.Klingel.Camera2: subscribe: {"pattern":{"id":"hm-rpc.1.NEQ0955114.1.PRESS_SHORT","change":"any"},"name":"script.js.Klingel.Camera2"}
javascript.0 2018-11-21 15:03:06.108 info Start javascript script.js.Klingel.Camera2
javascript.0 2018-11-21 15:03:06.101 info Stop script script.js.Klingel.Camera2Als Script verwende ich dieses : >! ```` // ------------------------------------------------------------------------- // Dieses Script überwaht den Zustand eines Bewegungsmelders und speichert bei // Aktivierung ein Bild einer Überwachnungskamera in einem Vereichnis und sendet // dieses via Telegram.0-Adapter. Nach 10 Sek wird ein weiteres Bild erstellt und // gesendet. // Die Speicherung der Bilder erfolgt als "Stack", d.h. das aktuellste Bild bekommt // immer den Suffix "0" und es werden n Bilder mit den Suffixen 1..n-1 vorgehalten // Uhula 2017.11 // ------------------------------------------------------------------------- >! // ------------------------------------------------------------------------- // Konfiguration // ------------------------------------------------------------------------- // Objekt-ID des Bewegungsmelders const oidLichtBewmelderTuer = "hm-rpc.1.NEQ0955114.1.PRESS_SHORT"/*HM-Sen-DB-PCB NEQ0955114:1.PRESS_SHORT*/; // URL zur Kamera umn ein Image (jpg) zu erhalten const cam_url = "http://192.168.181.51/SSS_Get.php?stream=jpeg&camera=2&snapQual=0"; // Pfadangabe für die Speicherung der Bilder, der Pfad muss existieren const dest_path = '/cam/'; // Anzahl der Bilder, die vorgehalten werden sollen const imageCountMax = 9999; // Prefix für die Bildnamen const imageNamePre = "eingangstuer_"; >! // ------------------------------------------------------------------------- // Scriptteil // ------------------------------------------------------------------------- var request = require('request'); var fs = require('fs'); >! // Bild an telegram schicken function sendImage (path) { try { var stats = fs.statSync(path); var msg = formatDate(stats.birthtime,"DD.MM.YYYY hh:mm:ss") + " " + path.substring(path.lastIndexOf('/')+1); sendTo('telegram.0', { text: path, caption: msg, disable_notification: true }); } catch(err) { if (err.code != "ENOENT") log(err); } } >! // löscht eine Datei synchron (wartet auf das Ergebnis) function fsUnlinkSync(path) { try { var stats = fs.statSync(path); try { fs.unlinkSync(path); } catch(err) { if (err.code != "ENOENT") log(err); } } catch(err) { if (err.code != "ENOENT") log(err); } } >! // benennt eine Datei synchron um (wartet auf das Ergebnis) function fsRenameSync(oldPath, newPath) { try { var stats = fs.statSync(oldPath); try { fs.renameSync(oldPath, newPath); } catch(err) { if (err.code != "ENOENT") log(err); } } catch(err) { if (err.code != "ENOENT") log(err); } } >! // Bild speichern und senden function saveImage() { // Bild imageCountMax-1 löschen fsUnlinkSync( dest_path + imageNamePre + (imageCountMax-1) + ".jpg" ); // Bilder 0..imageCountMax-2 umbenennen for (var i=imageCountMax-2; i >= 0; i-- ) { fsRenameSync(dest_path + imageNamePre + i + ".jpg", dest_path + imageNamePre + (i+1) + ".jpg"); } // Bild 0 löschen var fname = imageNamePre + "0.jpg"; fsUnlinkSync( fname ); // Bild holen und speichern request.get({url: cam_url, encoding: 'binary'}, function (err, response, body) { fs.writeFile(dest_path + fname, body, 'binary', function(err) { if (err) { log('Fehler beim Bild speichern: ' + err, 'warn'); } else { // dem Filesystem 2 Sek Zeit zum Speichern lassen setTimeout(function() { sendImage(dest_path + fname); }, 3000); } }); }); } >! // sofort ein Bild senden und nach 10 Sek erneut function onEvent() { saveImage(); setTimeout(function() { saveImage(); }, 10 * 1000); } >! // Ereignisroutine on({id: oidLichtBewmelderTuer, change: "any"}, function (obj) { onEvent( obj ); }); >! // manuelle Ausführung (Test) onEvent();
Wer weiss rat für mich? Berechtigungen sind alle gesetzt mit 777
Läuft auf Synology ds218+ mit 8gb und bis gestern eigentlich ohne Probleme!
-
Verzeichnis / Platte voll ?
// Anzahl der Bilder, die vorgehalten werden sollen const imageCountMax = 9999;
-
Hat sich erledigt, im Script hat sich die IP durch Neukonfig geändert!
Soviele Sachen die man immer beachten muss