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
    10
    1
    308

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

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 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
            • B Offline
              B Offline
              bitwicht
              schrieb am zuletzt editiert von
              #24

              @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?

              CodierknechtC 1 Antwort Letzte Antwort
              0
              • B bitwicht

                @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?

                CodierknechtC Online
                CodierknechtC Online
                Codierknecht
                Developer Most Active
                schrieb am zuletzt editiert von
                #25

                @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.

                "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

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

                  @Codierknecht

                  OK, mit Cron wären es:

                  '1 0 1,16 * *'
                  

                  Um 00:01 am 1 und 16 im jeden Monat

                  CodierknechtC 1 Antwort Letzte Antwort
                  0
                  • B bitwicht

                    @Codierknecht

                    OK, mit Cron wären es:

                    '1 0 1,16 * *'
                    

                    Um 00:01 am 1 und 16 im jeden Monat

                    CodierknechtC Online
                    CodierknechtC Online
                    Codierknecht
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #27

                    @bitwicht
                    Exakt - kurz und knackig :grin:

                    "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
                    • CodierknechtC Codierknecht

                      @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.

                      WalW Online
                      WalW Online
                      Wal
                      Developer
                      schrieb am zuletzt editiert von
                      #28

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

                      Gruß
                      Walter

                      DoorIO-Adapter
                      wioBrowser-Adapter und wioBrowser

                      1 Antwort Letzte Antwort
                      1
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      643

                      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