NEWS
Bild speichern Datum+Zeit Variable
-
Hallo ich habe ein tolles script im web gefunden um Bilder einer Kamera zu speichern und per Telegramm zu senden.
Ich verwende es für meine Klingel.
Leider werden die Bilder auf dem immer überschrieben, das möchte ich nicht.
Also habe ich dem Bild einen String aus Datum und Zeit beigemischt und dachte das geht. Geht auch, leider immer nur wenn man das Script neu startet. Ich habe für die Klingel noch ein Blockly und dachte ich kann damit das Script neu starten. Da kommt dann kein Bild mit.Beim Schreiben ist mir ein Gedanke gekommen. Das Script erstellt ja Datum+Zeit in einer Variable, natürlich muss diese wieder gelehrt werden denke ich???
Kann mir da jemand helfen?
-
@lutzer sagte in Bild speichern Datum+Zeit Variable:
Kann mir da jemand helfen?
Kann bestimmt Jemand, wenn Du Dein Script und oder Blockly hier rein stellen würdest...
-
Hier das Script, ich hoffe damit den Urheber nicht zu verletzen:
var cam_img = 'http://........................'; var trigger_auto = '#Variablen.0.BriefkastenSchlitz'; var img_path = '/opt/iobroker/temp/cam/'; var img_name = 'Briefkasten '; var img_typ = '.jpg'; //var timeInMs = Date.now(); var today = new Date(); var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate(); var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds(); var dateTime = date+' '+time; createState( trigger_auto, false, {name: 'Datenpunkt zur autmatischen Auslösung'}); var stateTrigger_auto = getState(trigger_auto).val; var request = require('request'); var fs = require('fs'); var timer; function sendImage (pfad) { setTimeout(function() { sendTo('telegram.0', { text: pfad, }); log('Webcam Bild per telegram verschickt.'); }, 2000); } function saveImage() { request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) { fs.writeFile(img_path + img_name + dateTime + img_typ, body, 'binary', function(err) { if (err) { log('Fehler beim Speichern von Bild 1: ' + err, 'warn'); } else { log('Bild 1 gespeichert.'); sendImage(img_path + img_name + dateTime + img_typ); } }); }); if (timer) { clearTimeout(timer); timer = null; } } on(trigger_auto, function(dp) { stateTrigger_auto = dp.newState.val; stateDisable = getState(disable).val; if (stateTrigger_auto === true) { saveImage(); } });
-
Ich kann Dir das Skript von Uhla empfehlen ,
so in etwa : Link Text
-
@lutzer
Die Berechnung von dateTime (Zeilen 8 bis 11) gehört in die Funktion saveImage(). Dafür gibt es allerdings die Funktion formatDate() des Javascript-Adapters. -
@Glasfaser danke schau ich mir an, ist nur für mich mit try&error aufwendig alles umzubasteln.
@paul53 Danke wenn ich die Variablen für die Zeit mit runter in die Funktion nehme klappt es so wie ich es wollte. Jetzt schaue ich mir das mit der Zeit noch mal an.
Wenn ich jetzt ein Bild einer andern Kamera mit versenden möchte. Ist dieser Aufbau gut oder muss man da im Skript ganz anders ran gehen?