Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    324

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

Javascript - Bild / Url lokal speichern

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
28 Beiträge 4 Kommentatoren 2.1k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • 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
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • B Offline
      B Offline
      bitwicht
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
        0
        • B Offline
          B Offline
          bitwicht
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #8

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

            Gruß
            Walter

            DoorIO-Adapter
            wioBrowser-Adapter und wioBrowser

            1 Antwort Letzte Antwort
            0
            • B Offline
              B Offline
              bitwicht
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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 Online
                CodierknechtC Online
                Codierknecht
                Developer Most Active
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • B Offline
                  B Offline
                  bitwicht
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                    0
                    • B Offline
                      B Offline
                      bitwicht
                      schrieb am zuletzt editiert von
                      #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 Antworten Letzte Antwort
                      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 Online
                        CodierknechtC Online
                        Codierknecht
                        Developer Most Active
                        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von
                            #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 Antworten Letzte Antwort
                            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 Online
                              CodierknechtC Online
                              Codierknecht
                              Developer Most Active
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              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
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                • B Offline
                                  B Offline
                                  bitwicht
                                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                  0
                                  • B Offline
                                    B Offline
                                    bitwicht
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    0
                                    • B bitwicht

                                      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 Online
                                      WalW Online
                                      Wal
                                      Developer
                                      schrieb am zuletzt editiert von
                                      #21

                                      @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 ! ;-)

                                      Gruß
                                      Walter

                                      DoorIO-Adapter
                                      wioBrowser-Adapter und wioBrowser

                                      1 Antwort Letzte Antwort
                                      0
                                      • B Offline
                                        B Offline
                                        bitwicht
                                        schrieb am zuletzt editiert von bitwicht
                                        #22

                                        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}]
                                                    });
                                                }
                                                
                                              });
                                            });
                                        });
                                        
                                        OliverIOO 1 Antwort Letzte Antwort
                                        0
                                        • B 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}]
                                                      });
                                                  }
                                                  
                                                });
                                              });
                                          });
                                          
                                          OliverIOO Offline
                                          OliverIOO Offline
                                          OliverIO
                                          schrieb am zuletzt editiert von
                                          #23

                                          @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

                                          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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          574

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe