so, ich habe es gelöst bekommen... mein Fehler war die Annahme das die Schleife erst nach dem timeout weiter abgearbeitet wird. Die Schleife wird weiter abgearbeitet und die Funktion inner halb des Timeout nach ablauf des Timeout.
Also muß sich der Timeout bei jedem Durchlauf der Schleife erhöhen.
var screenon = "fullybrowser.0.xxx_xxx_xxx_xxx.Info.isScreenOn"/*isScreenOn*/;
var timestamp;
on(screenon, function(dp) {
if(dp.state.val) {
timestamp = formatDate(new Date(), "JJJJ.MM.TT SS:mm:ss");
for(let i=1;i <= 10; ++i) {
setTimeout(function() {
snapshot(timestamp, i);
},i*2000);
}
var info_text = 'neue Bilder im Archive';
console.log('Snapshot sent');
sendTo('telegram.0', {text: info_text });
}
});
function snapshot(timestamp, prefix){
// log(timestamp + "_" + prefix);
var request = require('request');
var fs = require('fs');
request.get({url: 'http://192.xxx.xxx.xxx:2323/?cmd=getCamshot&password=xxx, encoding: 'binary'}, function (err, response, body) {
fs.writeFile("/home/iobroker/" + timestamp + "_" + prefix + ".jpg", body, 'binary', function(err) {
if (err) {
console.error(err);
}
});
});
}