NEWS
Javascript - Bild / Url lokal speichern
-
Super, für Eure Mühe!
Es gehen jetzt beide Scripte ! (nur schade das ich es nicht verstehe).Lösung1:
var fs = require('fs'); var snap = ''; schedule("* * * * *", function () { snap = '/var/www/html/wasseruhr-haus/' + formatDate(new Date(), 'TT.MM.JJJJ_hh:mm:ss') + '.jpg'; request.get({url: 'http://192.168.0.18/img_tmp/raw.jpg', encoding: 'binary'}, function (err, response, body) { fs.writeFile(snap, body, 'binary', function(err) { if (err) { console.error(err); } }); }); });oder
Lösung2:
var request = require('request'); var fs = require('fs'); var snap = ''; var Monat; schedule('{"time":{"start":"00:00","exactTime":true},"period":{"months":1,"dates":"[1]"}}', async function () { Monat = formatDate(new Date(), "DD.MM.YYYY"); snap = '/opt/iobroker/snapshot/snap_' + Monat + '.jpg'; request.get({url: 'http://192.168.0.18/img_tmp/raw.jpg', encoding: 'binary'}, function (err, response, body) { fs.writeFile(snap, body, 'binary', function(err) { if (err) { console.error(err); } }); }); }); -
Ich will Eure Nerven ja nicht überstrapazieren, aber dieser E-Mail Versand ist auch ganz schick.
müsste ich das dann einfach als "else" anhängen:
if (err) { console.error(err); } else { sendTo("email", { to: "x.xxx@gmx.de", subject: "TEXT", text: "TEXT", attachments: [{path: snap}] }); }Ich glaube aber das attachments ist falsch
-
Ich will Eure Nerven ja nicht überstrapazieren, aber dieser E-Mail Versand ist auch ganz schick.
müsste ich das dann einfach als "else" anhängen:
if (err) { console.error(err); } else { sendTo("email", { to: "x.xxx@gmx.de", subject: "TEXT", text: "TEXT", attachments: [{path: snap}] }); }Ich glaube aber das attachments ist falsch
-
Hier noch das Script zusätzlich mit E-Mail versand (E-Mail Adapter muss installiert sein):
var fs = require('fs'); var snap = ''; schedule("* * * * *", function () { snap = '/var/www/html/wasseruhr-haus/' + formatDate(new Date(), 'TT.MM.JJJJ_hh:mm:ss') + '.jpg'; request.get({url: 'http://192.168.0.18/img_tmp/raw.jpg', encoding: 'binary'}, function (err, response, body) { fs.writeFile(snap, body, 'binary', function(err) { if (err) { console.error(err); } else { sendTo("email", { to: "hier-an-Emailadresse-eintragen", subject: "Betreff-Eintragen", text: "Tect-Eintargen", attachments: [{path: snap}] }); } }); }); }); -
Hier noch das Script zusätzlich mit E-Mail versand (E-Mail Adapter muss installiert sein):
var fs = require('fs'); var snap = ''; schedule("* * * * *", function () { snap = '/var/www/html/wasseruhr-haus/' + formatDate(new Date(), 'TT.MM.JJJJ_hh:mm:ss') + '.jpg'; request.get({url: 'http://192.168.0.18/img_tmp/raw.jpg', encoding: 'binary'}, function (err, response, body) { fs.writeFile(snap, body, 'binary', function(err) { if (err) { console.error(err); } else { sendTo("email", { to: "hier-an-Emailadresse-eintragen", subject: "Betreff-Eintragen", text: "Tect-Eintargen", attachments: [{path: snap}] }); } }); }); });das skript lädt aktuell das komplette bild erst in den Hauptspeicher und speichert es dann. solange genug Speicher da ist, kann man das lassen.
Behalt dir mal im Hinterkopf, das man hier optimieren könnte, falls es mit dem Speicher mal eng wird. Dann könnten die Daten gestreamt werden, da wird dann nur ein kleiner Teil im Hauptspeicher zwischengespeichert.
https://github.com/request/request#streaming -
zu deiner Zeitangabe noch eine Frage. Du schreibst:
{"time":{"start":"00:00","exactTime":true},"period":{"months":1,"dates":"[1]"}}',Wenn ich das im IOBroker eingebe kommt:
{"time":{"start":"00:00","end":"23:59","mode":"hours","interval":1},"period":{"months":"[1,2,3,4,5,6,7,8,9,10,11,12]","dates":"[1]"}}',Du schreibst months":1," wäre das dann nicht nur JAN ?
Muss ich bei months nicht alle Monate und dates nicht alle Tage spezifizieren?
-
zu deiner Zeitangabe noch eine Frage. Du schreibst:
{"time":{"start":"00:00","exactTime":true},"period":{"months":1,"dates":"[1]"}}',Wenn ich das im IOBroker eingebe kommt:
{"time":{"start":"00:00","end":"23:59","mode":"hours","interval":1},"period":{"months":"[1,2,3,4,5,6,7,8,9,10,11,12]","dates":"[1]"}}',Du schreibst months":1," wäre das dann nicht nur JAN ?
Muss ich bei months nicht alle Monate und dates nicht alle Tage spezifizieren?
-
-
@bitwicht
Exakt - kurz und knackig :grin: -