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

    @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
              • 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 Offline
                  CodierknechtC Offline
                  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 Offline
                      CodierknechtC Offline
                      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

                        647

                        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