// Datenpunkte anlegen (Kann unter Umständen auskommentiert werden, wenn die Datenpunkte manuell angelegt wurden.)
createState( trigger_auto, false, {name: 'Datenpunkt zur autmatischen Auslösung'});
createState( trigger_manu, false, {name: 'Datenpunkt zur manuellen Auslösung'});
createState( trigger_more_img, false, {name: 'Datenpunkt zur Abfrage weiterer Bilder'});
createState( disable, false, {name: 'Aktivierung/Deaktivierung des Versands per telegram'});
// Variablendeklaration und Initialisierung bei Scriptstart
var stateTrigger_auto = getState(trigger_auto).val;
var stateTrigger_manu = getState(trigger_manu).val;
var stateTrigger_more_img = getState(trigger_more_img).val;
var stateDisable = getState(disable).val;
var request = require('request');
var fs = require('fs');
var timer;
// Funktionen
// -------------------------------------------
// Funktion Bilder versenden
function sendImage (pfad) {
setTimeout(function() {
sendTo('telegram.4', {
text: pfad,
// reply_markup: {
// keyboard: [
// ['Mehr Bilder', 'Danke']
// ],
// resize_keyboard: true,
// one_time_keyboard: true
// }
});
log('Webcam Bild per telegram verschickt.');
}, 2000);
}
// Funktion Bilder speichern
function saveImage() {
//get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
httpGet(cam_img, { responseType: 'arraybuffer' }, async (err, response) => {
writeFile(img_path + 'cam1_1.jpg', body, 'binary', function(err) {
if (err) {
log('Fehler beim Speichern von Bild 1: ' + err, 'warn');
} else {
log('Bild 1 gespeichert.');
sendImage(img_path + 'cam1_1.jpg');
}
});
});
if (timer) {
clearTimeout(timer);
timer = null;
}
timer = setTimeout(function () {
//get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
httpGet(cam_img, { responseType: 'arraybuffer' }, async (err, response) => {
writeFile(img_path + 'cam1_2.jpg', body, 'binary', function(err) {
if (err) {
log('Fehler beim Speichern von Bild 2: ' + err, 'warn');
} else {
log('Bild 2 gespeichert.');
}
});
});
}, interval);
timer = setTimeout(function () {
// get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
httpGet(cam_img, { responseType: 'arraybuffer' }, async (err, response) => {
writeFile(img_path + 'cam1_3.jpg', body, 'binary', function(err) {
if (err) {
log('Fehler beim Speichern von Bild 3: ' + err, 'warn');
} else {
log('Bild 3 gespeichert.'); }
});
});
}, 2 * interval);
}
// Trigger für die verschiedenen Aktionen
// -------------------------------------------
// trigger_auto
on(trigger_auto, function(dp) {
stateTrigger_auto = dp.newState.val;
stateDisable = getState(disable).val;
if (stateTrigger_auto === true && stateDisable === false) {
saveImage();
// setState(trigger_auto, false); // Option zum Zurücksetzen des Triggers. Standardmäßig auskommentiert, da sich der Bewegungsmelder automatisch zurück setzt. Bei Bedarf "//" am Zeilenafang entfernen.
}
});
// trigger_more_img
on(trigger_more_img, function(dp) {
stateTrigger_more_img = dp.newState.val;
if (stateTrigger_more_img === true) {
sendImage(img_path + 'cam1_2.jpg');
sendImage(img_path + 'cam1_3.jpg');
setState(trigger_more_img, false);
}
});
// trigger_manu
on(trigger_manu, function(dp) {
stateTrigger_manu = dp.newState.val;
if (stateTrigger_manu === true) {
saveImage();
setState(trigger_manu, false);
}
});