Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. Javascript - Bild / Url lokal speichern

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    886

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Javascript - Bild / Url lokal speichern

Scheduled Pinned Locked Moved Einsteigerfragen
28 Posts 4 Posters 2.2k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    bitwicht
    wrote on last edited by
    #1

    Hallo zusammen.

    Ich habe folgenden Shell Befehl:

    curl http://192.168.0.18/raw.jpg -o /test-$(date +%Y%m%d).jpg
    

    Ich könnte den Befehl als Shell-Script speichern und aufrufen, was ich nicht sehr toll finde.

    Wie schreibe ich den Befehl als Javascript, dass ich diesen direkt im JS-Adapter ausführen kann?

    lg Bit

    OliverIOO 1 Reply Last reply
    0
    • B bitwicht

      Hallo zusammen.

      Ich habe folgenden Shell Befehl:

      curl http://192.168.0.18/raw.jpg -o /test-$(date +%Y%m%d).jpg
      

      Ich könnte den Befehl als Shell-Script speichern und aufrufen, was ich nicht sehr toll finde.

      Wie schreibe ich den Befehl als Javascript, dass ich diesen direkt im JS-Adapter ausführen kann?

      lg Bit

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      wrote on last edited by
      #2

      @bitwicht

      https://www.kindacode.com/article/using-axios-to-download-images-and-videos-in-node-js/

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      1 Reply Last reply
      0
      • B Offline
        B Offline
        bitwicht
        wrote on last edited by
        #3

        @OliverIO

        Danke, das habe ich auch schon gefunden aber ich verstehe es nicht:

        const axios = require("axios").default;
        
        const downloadFile = async (url, path) => {
          try {
            const response = await axios({
              method: "GET",
              url: url,
              responseType: "stream",
            });
            // Do something with the response
          } catch (err) {
            // Handling errors
          }
        };
        fs.createWriteStream( http://192.168.0.18/raw.jpg, options )
        

        Wenn ich das als Script eingebe, kommt nur ein Fehler.
        Ich ich verstehe auch nicht wie ich das Zielverzeichnis eingebe.

        WalW 1 Reply Last reply
        0
        • B bitwicht

          @OliverIO

          Danke, das habe ich auch schon gefunden aber ich verstehe es nicht:

          const axios = require("axios").default;
          
          const downloadFile = async (url, path) => {
            try {
              const response = await axios({
                method: "GET",
                url: url,
                responseType: "stream",
              });
              // Do something with the response
            } catch (err) {
              // Handling errors
            }
          };
          fs.createWriteStream( http://192.168.0.18/raw.jpg, options )
          

          Wenn ich das als Script eingebe, kommt nur ein Fehler.
          Ich ich verstehe auch nicht wie ich das Zielverzeichnis eingebe.

          WalW Online
          WalW Online
          Wal
          Developer
          wrote on last edited by
          #4

          @bitwicht ,
          ich speichere meine Klingelbilder auch lokal ab.

          var request = require('request');
          var fs      = require('fs');
          var bell = true;
          var snap = '';
          
          function sendImage() {
              request.get({url: 'http://192.168.55.55:9100/?action=snapshot', encoding: 'binary'}, function (err, response, body) {
                  fs.writeFile(snap, body, 'binary', function(err) {
          
                  if (err) {
                      console.error(err);
                  } else {
                      console.log('Snapshot sent');
                      sendTo('telegram.0', {text: snap, caption: 'Jemand klingelt an der Haustür !!!'});   
                      sendTo("email", {
                          to:      "x.xxx@gmx.de",
                          subject: "Message from ioBroker",
                          text:    "Jemand klingelt an der Haustür !!!",
                          attachments: [{path: snap}]
                      });
                  }
                });
              });
          }
          
          on({id: "mqtt.0.piface.input.DoorBell_1", val: true}, function (obj) {
              if (bell) {
                  snap = '/opt/iobroker/snapshots/snap_' + formatDate(obj.state.lc, 'TT.MM.JJJJ_hh:mm:ss') + '.jpg';
                  sendImage();
              }
              bell = false;
              setTimeout(function() {
                  bell = true;
                }, 120000);
          });
          

          Snap ist der Dateiname und Ordner unter dem ich das Bild speichern möchte.
          Mit request.get hole ich mir das aktuelle Bild und speichere unter Snap ab und ist unter "/opt/iobroker/snapshot/snap_Datum/Zeit.jpg " zu finden.
          Der Ordner "/opt/iobroker/snapshot" muss vorhanden sein.
          Den Telegram und E-Mail Teil kannst du ignorieren.

          Gruß
          Walter

          DoorIO-Adapter
          wioBrowser-Adapter und wioBrowser

          1 Reply Last reply
          0
          • B Offline
            B Offline
            bitwicht
            wrote on last edited by
            #5

            @Wal

            Danke, ich verstehe leider nicht wie man das Script ändern muss.

            var request = require('request');
            var fs      = require('fs');
            var bell = true;
            var snap = '';
             
            function sendImage() {
                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 {
                        console.log('Snapshot sent');
            //            sendTo('telegram.0', {text: snap, caption: 'Jemand klingelt an der Haustür !!!'});   
            //            sendTo("email", {
            //               to:      "x.xxx@gmx.de",
            //                subject: "Message from ioBroker",
            //                text:    "Jemand klingelt an der Haustür !!!",
            //                attachments: [{path: snap}]
            //            });
                    }
                  });
                });
            }
             
            on({id: "mqtt.0.piface.input.DoorBell_1", val: true}, function (obj) {
                if (bell) {
                    snap = '/opt/iobroker/snapshots/snap_' + formatDate(obj.state.lc, 'TT.MM.JJJJ_hh:mm:ss') + '.jpg';
                    sendImage();
                }
                bell = false;
                setTimeout(function() {
                    bell = true;
                  }, 120000);
            });
            

            Wenn ich das so ändere, geht es nicht.

            Ich glaube dein Trigger ist die Dorbell, aber ich will ja nur das das Script einfach läuft wenn der Adapter es aufruft

            WalW 1 Reply Last reply
            0
            • B bitwicht

              @Wal

              Danke, ich verstehe leider nicht wie man das Script ändern muss.

              var request = require('request');
              var fs      = require('fs');
              var bell = true;
              var snap = '';
               
              function sendImage() {
                  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 {
                          console.log('Snapshot sent');
              //            sendTo('telegram.0', {text: snap, caption: 'Jemand klingelt an der Haustür !!!'});   
              //            sendTo("email", {
              //               to:      "x.xxx@gmx.de",
              //                subject: "Message from ioBroker",
              //                text:    "Jemand klingelt an der Haustür !!!",
              //                attachments: [{path: snap}]
              //            });
                      }
                    });
                  });
              }
               
              on({id: "mqtt.0.piface.input.DoorBell_1", val: true}, function (obj) {
                  if (bell) {
                      snap = '/opt/iobroker/snapshots/snap_' + formatDate(obj.state.lc, 'TT.MM.JJJJ_hh:mm:ss') + '.jpg';
                      sendImage();
                  }
                  bell = false;
                  setTimeout(function() {
                      bell = true;
                    }, 120000);
              });
              

              Wenn ich das so ändere, geht es nicht.

              Ich glaube dein Trigger ist die Dorbell, aber ich will ja nur das das Script einfach läuft wenn der Adapter es aufruft

              WalW Online
              WalW Online
              Wal
              Developer
              wrote on last edited by Wal
              #6

              @bitwicht ,

              var request = require('request');
              var fs      = require('fs');
              var snap = '';
              
              on({id: "mqtt.0.piface.input.DoorBell_1", val: true}, function (obj) {
                  snap = '/opt/iobroker/snapshots/snap_' + formatDate(obj.state.lc, '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);
                          }
                      }
                  });
              });
              

              Das müsste die kurze Version sein.

              mqtt.0.piface.input.DoorBell_1
              

              ist der Trigger um die Datei zu speichern, das musst du mit deinem Trigger ersetzen.

              Gruß
              Walter

              DoorIO-Adapter
              wioBrowser-Adapter und wioBrowser

              1 Reply Last reply
              0
              • B Offline
                B Offline
                bitwicht
                wrote on last edited by
                #7

                @Wal

                ich habe ja keinen trigger.

                Ich will das Script im JS-Adapter eingeben und der soll das Script jeden 1ten eines Monats ein mal ausführen.

                Ich will jeden 1ten des Monats ein Bild von der Wasseruhr.

                lg
                Bit.

                WalW 1 Reply Last reply
                0
                • B bitwicht

                  @Wal

                  ich habe ja keinen trigger.

                  Ich will das Script im JS-Adapter eingeben und der soll das Script jeden 1ten eines Monats ein mal ausführen.

                  Ich will jeden 1ten des Monats ein Bild von der Wasseruhr.

                  lg
                  Bit.

                  WalW Online
                  WalW Online
                  Wal
                  Developer
                  wrote on last edited by
                  #8

                  @bitwicht ,
                  dann ist dein Trigger jeden 1sten im Monat.

                  Gruß
                  Walter

                  DoorIO-Adapter
                  wioBrowser-Adapter und wioBrowser

                  1 Reply Last reply
                  0
                  • B Offline
                    B Offline
                    bitwicht
                    wrote on last edited by
                    #9

                    @Wal

                    wenn ich das script starte kommt:
                    12:31:58.629 error javascript.0 (305518) script.js.Skript_1 compile failed: at script.js.Skript_1:12

                    CodierknechtC 1 Reply Last reply
                    0
                    • B bitwicht

                      @Wal

                      wenn ich das script starte kommt:
                      12:31:58.629 error javascript.0 (305518) script.js.Skript_1 compile failed: at script.js.Skript_1:12

                      CodierknechtC Offline
                      CodierknechtC Offline
                      Codierknecht
                      Developer Most Active
                      wrote on last edited by
                      #10

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

                      das script

                      Und wie sieht das jetzt aus?

                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                      HmIP|ZigBee|Tasmota|Unifi
                      Zabbix Certified Specialist
                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                      1 Reply Last reply
                      0
                      • B Offline
                        B Offline
                        bitwicht
                        wrote on last edited by bitwicht
                        #11

                        hier - einfach kopiert:

                        var request = require('request');
                        var fs      = require('fs');
                        var snap = '';
                         
                        on({id: "mqtt.0.piface.input.DoorBell_1", val: true}, function (obj) {
                            snap = '/opt/iobroker/snapshots/snap_' + formatDate(obj.state.lc, '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);
                                    }
                                }
                            });
                        });
                        

                        error javascript.0 (305518) script.js.Skript_1 compile failed: at script.js.Skript_1:12

                        WalW 1 Reply Last reply
                        0
                        • B bitwicht

                          hier - einfach kopiert:

                          var request = require('request');
                          var fs      = require('fs');
                          var snap = '';
                           
                          on({id: "mqtt.0.piface.input.DoorBell_1", val: true}, function (obj) {
                              snap = '/opt/iobroker/snapshots/snap_' + formatDate(obj.state.lc, '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);
                                      }
                                  }
                              });
                          });
                          

                          error javascript.0 (305518) script.js.Skript_1 compile failed: at script.js.Skript_1:12

                          WalW Online
                          WalW Online
                          Wal
                          Developer
                          wrote on last edited by Wal
                          #12

                          @bitwicht ,
                          Klammer zu wenig.

                          var request = require('request');
                          var fs      = require('fs');
                          var snap = '';
                          
                          on({id: "mqtt.0.piface.input.DoorBell_1", val: true}, function (obj) {
                                  snap = '/opt/iobroker/snapshots/snap_' + formatDate(obj.state.lc, '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);
                                  }
                                });
                              });
                          });
                          

                          Gruß
                          Walter

                          DoorIO-Adapter
                          wioBrowser-Adapter und wioBrowser

                          1 Reply Last reply
                          0
                          • B Offline
                            B Offline
                            bitwicht
                            wrote on last edited by
                            #13

                            @Wal

                            Danke, jetzt habe ich nur noch einen Fehler.
                            Das Script lässt sich starten.

                            Wenn ich im Adapter einen Cron bzw. Zeit Assistenten einstellt - einfach , jede Minute fügt er folgende Zeile hinzu:

                            '* * * * *'var request = require('request');
                            

                            dann lässt sich das script nicht mehr starten:
                            error javascript.0 (305518) script.js.Skript_1 compile failed: at script.js.Skript_1:1

                            Bilder legt er auch keine ab.

                            Ich wollte das der Cron bzw. Zeit Assistenten das Script starten und as Bild gespeichert wird.

                            CodierknechtC WalW 2 Replies Last reply
                            0
                            • B bitwicht

                              @Wal

                              Danke, jetzt habe ich nur noch einen Fehler.
                              Das Script lässt sich starten.

                              Wenn ich im Adapter einen Cron bzw. Zeit Assistenten einstellt - einfach , jede Minute fügt er folgende Zeile hinzu:

                              '* * * * *'var request = require('request');
                              

                              dann lässt sich das script nicht mehr starten:
                              error javascript.0 (305518) script.js.Skript_1 compile failed: at script.js.Skript_1:1

                              Bilder legt er auch keine ab.

                              Ich wollte das der Cron bzw. Zeit Assistenten das Script starten und as Bild gespeichert wird.

                              CodierknechtC Offline
                              CodierknechtC Offline
                              Codierknecht
                              Developer Most Active
                              wrote on last edited by Codierknecht
                              #14

                              @bitwicht

                              Ich wollte das der Cron bzw. Zeit Assistenten das Script starten und as Bild gespeichert wird.

                              Dann wäre Dein Trigger nicht

                              on({id: "mqtt.0.piface.input.DoorBell_1", val: true}, function (obj) {
                              

                              sondern stattdessen

                              schedule("* * * * *", function () {
                              

                              Dann muss aber noch der Dateiname anders generiert werden ...

                              Statt

                                      snap = '/opt/iobroker/snapshots/snap_' + formatDate(obj.state.lc, 'TT.MM.JJJJ_hh:mm:ss') + '.jpg';
                              
                              

                              dann

                                      snap = '/opt/iobroker/snapshots/snapshot.jpg';
                              
                              

                              denn Du willst vermutlich nicht hunderte oder gar tausende Bilder ablegen, sondern die Datei immer wieder überschreiben.

                              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                              HmIP|ZigBee|Tasmota|Unifi
                              Zabbix Certified Specialist
                              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                              B 1 Reply Last reply
                              0
                              • B bitwicht

                                @Wal

                                Danke, jetzt habe ich nur noch einen Fehler.
                                Das Script lässt sich starten.

                                Wenn ich im Adapter einen Cron bzw. Zeit Assistenten einstellt - einfach , jede Minute fügt er folgende Zeile hinzu:

                                '* * * * *'var request = require('request');
                                

                                dann lässt sich das script nicht mehr starten:
                                error javascript.0 (305518) script.js.Skript_1 compile failed: at script.js.Skript_1:1

                                Bilder legt er auch keine ab.

                                Ich wollte das der Cron bzw. Zeit Assistenten das Script starten und as Bild gespeichert wird.

                                WalW Online
                                WalW Online
                                Wal
                                Developer
                                wrote on last edited by
                                #15

                                @bitwicht ,
                                habe heute meinen humanen Tag.
                                Habe den Schedule 1sten im Monat aus Blockly kopiert, ich denke der stimmt.

                                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);
                                        }
                                        });
                                    });
                                });
                                

                                Gruß
                                Walter

                                DoorIO-Adapter
                                wioBrowser-Adapter und wioBrowser

                                1 Reply Last reply
                                0
                                • CodierknechtC Codierknecht

                                  @bitwicht

                                  Ich wollte das der Cron bzw. Zeit Assistenten das Script starten und as Bild gespeichert wird.

                                  Dann wäre Dein Trigger nicht

                                  on({id: "mqtt.0.piface.input.DoorBell_1", val: true}, function (obj) {
                                  

                                  sondern stattdessen

                                  schedule("* * * * *", function () {
                                  

                                  Dann muss aber noch der Dateiname anders generiert werden ...

                                  Statt

                                          snap = '/opt/iobroker/snapshots/snap_' + formatDate(obj.state.lc, 'TT.MM.JJJJ_hh:mm:ss') + '.jpg';
                                  
                                  

                                  dann

                                          snap = '/opt/iobroker/snapshots/snapshot.jpg';
                                  
                                  

                                  denn Du willst vermutlich nicht hunderte oder gar tausende Bilder ablegen, sondern die Datei immer wieder überschreiben.

                                  B Offline
                                  B Offline
                                  bitwicht
                                  wrote on last edited by
                                  #16

                                  @codierknecht

                                  var fs      = require('fs');
                                  var snap = '';
                                   
                                  schedule("* * * * *", function () {
                                          snap = '/var/www/html/wasseruhr-haus/' + formatDate(obj.state.lc, '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);
                                          }
                                        });
                                      });
                                  });
                                  

                                  kommt der fehler:
                                  error javascript.0 (305518) at Object.<anonymous> (script.js.Skript_1:5:61)

                                  Das er an den Dateinamen das Datum hängt ist OK.
                                  Ich habe es aktuell auf Minute, dass ich sehen ob er Bilder macht.
                                  das würde ich dann auf monatlich umstellen.

                                  CodierknechtC OliverIOO 2 Replies Last reply
                                  0
                                  • B bitwicht

                                    @codierknecht

                                    var fs      = require('fs');
                                    var snap = '';
                                     
                                    schedule("* * * * *", function () {
                                            snap = '/var/www/html/wasseruhr-haus/' + formatDate(obj.state.lc, '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);
                                            }
                                          });
                                        });
                                    });
                                    

                                    kommt der fehler:
                                    error javascript.0 (305518) at Object.<anonymous> (script.js.Skript_1:5:61)

                                    Das er an den Dateinamen das Datum hängt ist OK.
                                    Ich habe es aktuell auf Minute, dass ich sehen ob er Bilder macht.
                                    das würde ich dann auf monatlich umstellen.

                                    CodierknechtC Offline
                                    CodierknechtC Offline
                                    Codierknecht
                                    Developer Most Active
                                    wrote on last edited by
                                    #17

                                    @bitwicht
                                    Du hast das Ändern des Dateinamens nicht übernommen.
                                    Das Objekt obj ist nur im Trigger vorhanden und nicht im Schedule.

                                    Nimm den Code von @Wal und ändere sein Schedule auf "* * * * *". Dann erhältst Du testweise jede Minute ein Bild.
                                    Wenn das passt, kannst Du das Schedule auf "5 0 1 * *" ändern. Das wird dann um 00:05 Uhr an jedem 1. eines Monats ausgeführt.

                                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                    HmIP|ZigBee|Tasmota|Unifi
                                    Zabbix Certified Specialist
                                    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                    1 Reply Last reply
                                    1
                                    • B bitwicht

                                      @codierknecht

                                      var fs      = require('fs');
                                      var snap = '';
                                       
                                      schedule("* * * * *", function () {
                                              snap = '/var/www/html/wasseruhr-haus/' + formatDate(obj.state.lc, '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);
                                              }
                                            });
                                          });
                                      });
                                      

                                      kommt der fehler:
                                      error javascript.0 (305518) at Object.<anonymous> (script.js.Skript_1:5:61)

                                      Das er an den Dateinamen das Datum hängt ist OK.
                                      Ich habe es aktuell auf Minute, dass ich sehen ob er Bilder macht.
                                      das würde ich dann auf monatlich umstellen.

                                      OliverIOO Offline
                                      OliverIOO Offline
                                      OliverIO
                                      wrote on last edited by
                                      #18

                                      @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

                                      Meine Adapter und Widgets
                                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                      Links im Profil

                                      1 Reply Last reply
                                      0
                                      • B Offline
                                        B Offline
                                        bitwicht
                                        wrote on last edited by bitwicht
                                        #19

                                        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
                                        0
                                        • B Offline
                                          B Offline
                                          bitwicht
                                          wrote on last edited by
                                          #20

                                          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

                                          WalW 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          435

                                          Online

                                          32.6k

                                          Users

                                          82.1k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe