@ple:
Das müsste so eigentlich laufen, 3 Bilder mit 3 Sekunden Pause dazwischen.
Ist dein Trigger anders, dass er immer auslöst? Wie sieht dein Trigger aus? `
Ich habe bei mir jetzt den Pfad rausgenommen (iobroker läuft auf einer Synology) Als Trigger hatte ich eine Steckdose benutzt, damit ich nicht immer raus laufen muss zum probieren. 😄
Jedenfalls funktioniert es jetzt so wie gewünscht. Prima, Danke !
Sieht jetzt so aus bei mir.
// Telegram Bild senden durch Klingel oder Text to command
var source_url = 'http://192.168.180.50:80/cgi-bin/snapshot.cgi?loginuse=[xxx]&loginpas=[xxx]', //Adresse der IpKamera
dest_path = '';
var Nachricht = "Es hat an der Haustüre geklingelt"; // Nachricht, welche mit dem Bild gesendet wird
var request = require('request');
var fs = require('fs');
//var timer = null;
var count = 0;
// Bild an telegram schicken
function sendImage (pfad) {
sendTo('telegram.0', pfad);
//log('Webcam Bild per telegram verschickt');
//sendTo("telegram.0", Nachricht); // <-- nach der Timeout funktion ausführen
}
// Bild speichern
function saveImage() {
request.get({url: source_url, encoding: 'binary'}, function (err, response, body) {
fs.writeFile(dest_path + 'image2.jpg', body, 'binary', function(err) {
if (err) {
//log('Fehler beim Bild speichern: ' + err, 'warn');
} else {
//log('Webcam Bild gespeichert');
sendImage(dest_path + 'image2.jpg');
}
});
});
}
//Trigger
// 3 Bilder senden wenn Bewegung erkannt und keiner zu Hause ist
on({id: "hm-rpc.0.xxx.1.MOTION"/*Bewegungsmelder Gartentür.MOTION*/, val: true}, function () {
// if (getState("javascript.0.MyStates.anwesenheit"/*anwesenheit*/).val === false) {
count = 3;
counter();
timer = setInterval(counter, 3000);
}
);
function counter() {
saveImage();
count--;
if(count === 0 && timer) clearInterval(timer);
}