Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Javascript - Bild / Url lokal speichern

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Javascript - Bild / Url lokal speichern

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO @bitwicht last edited by

      @bitwicht said in Javascript - Bild / Url lokal speichern:

      formatDate(obj.state.lc, 'TT.MM.JJJJ_hh:mm:ss')

      und in Zeile 5 kannst du diesen Teil

      formatDate(obj.state.lc, 'TT.MM.JJJJ_hh:mm:ss')
      

      gegen

      formatDate(new Date(), 'TT.MM.JJJJ_hh:mm:ss')
      

      tauschen

      1 Reply Last reply Reply Quote 0
      • B
        bitwicht last edited by bitwicht

        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);
                }
                });
            });
        });
        
        1 Reply Last reply Reply Quote 0
        • B
          bitwicht last edited by

          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

          Wal 1 Reply Last reply Reply Quote 0
          • Wal
            Wal Developer @bitwicht last edited by

            @bitwicht sagte in Javascript - Bild / Url lokal speichern:

            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:

            Versuch macht kluch ! 😉

            1 Reply Last reply Reply Quote 0
            • B
              bitwicht last edited by bitwicht

              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}]
                          });
                      }
                      
                    });
                  });
              });
              
              OliverIO 1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @bitwicht last edited by

                @bitwicht

                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

                1 Reply Last reply Reply Quote 0
                • B
                  bitwicht last edited by

                  @Wal

                  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?

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @bitwicht last edited by

                    @bitwicht @Wal
                    Ich verwende nur noch CRON und nix mehr was der Wizard da so produziert.
                    CRON ist zum Einen wesentlich kürzer und zum Anderen weniger fehleranfällig.
                    Hier hatten immer mal wieder Anwender Probleme mit den Schedules aus dem Wizard, die durch CRON ganz einfach gelöst werden konnten.

                    Wal 1 Reply Last reply Reply Quote 0
                    • B
                      bitwicht last edited by

                      @Codierknecht

                      OK, mit Cron wären es:

                      '1 0 1,16 * *'
                      

                      Um 00:01 am 1 und 16 im jeden Monat

                      Codierknecht 1 Reply Last reply Reply Quote 0
                      • Codierknecht
                        Codierknecht Developer Most Active @bitwicht last edited by

                        @bitwicht
                        Exakt - kurz und knackig 😁

                        1 Reply Last reply Reply Quote 0
                        • Wal
                          Wal Developer @Codierknecht last edited by

                          @codierknecht ,
                          ich verwende auch nur Cron, aber ich wollte das der Themenstarter auch noch etwas selbst herausfinden muss, sonst hat das alles keinen Lerneffekt und beim nächsten Skript steht er wieder auf der Matte. 😉

                          1 Reply Last reply Reply Quote 1
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          837
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

                          4
                          28
                          1305
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo