Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. [gelöst] Dynamische URL aus Datenpunkt als View-Hintergrund

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

[gelöst] Dynamische URL aus Datenpunkt als View-Hintergrund

Scheduled Pinned Locked Moved Visualisierung
vis
30 Posts 6 Posters 6.9k Views 10 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.
  • opossumO opossum

    Hallo, @basti97,

    ja, das funktioniert noch. Habe gerade geschaut, wurde um gestern um 02:30 Uhr heruntergeladen und kopiert.

    Basti97B Online
    Basti97B Online
    Basti97
    Most Active
    wrote on last edited by
    #21

    @opossum Super Danke also brauche ich nur das Script einfügen und dann habe ich das Bild. Ich probiere es mal aus.

    Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

    1 Reply Last reply
    0
    • opossumO opossum

      Hallo,
      wir (@Glasfaser und ich) haben es nun hinbekommen. Mittels Script hole ich mir jeden Tag den Link zum Bild. Dann mache ich einen Download, wobei der Dateiname fest vergeben ist. Das Script erneuert die Datei also einmal in 24 Stunden. Auf den Views habe ich den Hintergrund auf diese Datei eingetragen.
      Man muss in den Einstellungen des Javascript-Adapters folgendes Modul hinzufügen:
      request

      Hier das Script:

      schedule('10 0 * * *' , function()
      {
      const id_uri = 'javascript.0.Bild';
      var uri = getState(id_uri).val; 
      var fs = require('fs');
      var request = require('request');
      
      createState('javascript.0.Bild', "");
      createState('javascript.0.Title', "");
      BilddesTages();
      function BilddesTages(){
              var url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=de-DE';
              request(url, function (err, state, body){
                  if (body) {
                      body = JSON.parse(body);
                      var bild = "https://bing.com/" + body.images[0].url;
                      var title = body.images[0].title;
                      setState("javascript.0.Bild", bild);
                      setState("javascript.0.Title", title);
                  } else {
                  }
              });
      }
      exec('rm -f /media/backup/bild.jpg');
      setTimeout(function(){
      var download = function(uri, filename, callback){
        request.head(uri, function(err, res, body){
          console.log('content-type:', res.headers['content-type']);
          console.log('content-length:', res.headers['content-length']);
          request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
        });
      };
      download(uri, '/media/backup/bild.jpg', function(){
        console.log('Bild heruntergeladen');
       
      setTimeout(function(){
      const bild1 = fs.readFileSync('/media/backup/bild.jpg');
      writeFile('vis.0','/main/img/bild_des_tages/bild.jpg', bild1);
      console.log('Bild kopiert')
      }, 30000);           
      });
      }, 30000);
      });
      
      

      Ich habe dabei den Pfad /media/backup als Downloadpfad genommen, vor dem Download wird die vorhandene Datei gelöscht. Das Script kopiert dann die Datei von /media/backup/ nach /opt/iobroker/iobroker-data/files/vis.0/main/img/bild_des_tages/. Der Link auf die Datei in der View sieht wie folgt aus:

      url(http://192.168.1.100:8082/vis.0/main/img/bild_des_tages/bild.jpg)
      

      04cd2131-2754-41fc-8a49-1b98f8c1f684-image.png
      … und die View sieht dann wie folgt aus:
      82665c25-21ee-4283-89dd-4e596a129a82-image.png

      Basti97B Online
      Basti97B Online
      Basti97
      Most Active
      wrote on last edited by
      #22

      @opossum said in [gelöst] Dynamische URL aus Datenpunkt als View-Hintergrund:

      Hallo,
      wir (@Glasfaser und ich) haben es nun hinbekommen. Mittels Script hole ich mir jeden Tag den Link zum Bild. Dann mache ich einen Download, wobei der Dateiname fest vergeben ist. Das Script erneuert die Datei also einmal in 24 Stunden. Auf den Views habe ich den Hintergrund auf diese Datei eingetragen.
      Man muss in den Einstellungen des Javascript-Adapters folgendes Modul hinzufügen:
      request

      Hier das Script:

      schedule('10 0 * * *' , function()
      {
      const id_uri = 'javascript.0.Bild';
      var uri = getState(id_uri).val; 
      var fs = require('fs');
      var request = require('request');
      
      createState('javascript.0.Bild', "");
      createState('javascript.0.Title', "");
      BilddesTages();
      function BilddesTages(){
              var url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=de-DE';
              request(url, function (err, state, body){
                  if (body) {
                      body = JSON.parse(body);
                      var bild = "https://bing.com/" + body.images[0].url;
                      var title = body.images[0].title;
                      setState("javascript.0.Bild", bild);
                      setState("javascript.0.Title", title);
                  } else {
                  }
              });
      }
      exec('rm -f /media/backup/bild.jpg');
      setTimeout(function(){
      var download = function(uri, filename, callback){
        request.head(uri, function(err, res, body){
          console.log('content-type:', res.headers['content-type']);
          console.log('content-length:', res.headers['content-length']);
          request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
        });
      };
      download(uri, '/media/backup/bild.jpg', function(){
        console.log('Bild heruntergeladen');
       
      setTimeout(function(){
      const bild1 = fs.readFileSync('/media/backup/bild.jpg');
      writeFile('vis.0','/main/img/bild_des_tages/bild.jpg', bild1);
      console.log('Bild kopiert')
      }, 30000);           
      });
      }, 30000);
      });
      
      

      Ich habe dabei den Pfad /media/backup als Downloadpfad genommen, vor dem Download wird die vorhandene Datei gelöscht. Das Script kopiert dann die Datei von /media/backup/ nach /opt/iobroker/iobroker-data/files/vis.0/main/img/bild_des_tages/. Der Link auf die Datei in der View sieht wie folgt aus:

      url(http://192.168.1.100:8082/vis.0/main/img/bild_des_tages/bild.jpg)
      

      04cd2131-2754-41fc-8a49-1b98f8c1f684-image.png
      … und die View sieht dann wie folgt aus:
      82665c25-21ee-4283-89dd-4e596a129a82-image.png

      Ist es das aktuelle???

      Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

      opossumO 1 Reply Last reply
      0
      • Basti97B Basti97

        @opossum said in [gelöst] Dynamische URL aus Datenpunkt als View-Hintergrund:

        Hallo,
        wir (@Glasfaser und ich) haben es nun hinbekommen. Mittels Script hole ich mir jeden Tag den Link zum Bild. Dann mache ich einen Download, wobei der Dateiname fest vergeben ist. Das Script erneuert die Datei also einmal in 24 Stunden. Auf den Views habe ich den Hintergrund auf diese Datei eingetragen.
        Man muss in den Einstellungen des Javascript-Adapters folgendes Modul hinzufügen:
        request

        Hier das Script:

        schedule('10 0 * * *' , function()
        {
        const id_uri = 'javascript.0.Bild';
        var uri = getState(id_uri).val; 
        var fs = require('fs');
        var request = require('request');
        
        createState('javascript.0.Bild', "");
        createState('javascript.0.Title', "");
        BilddesTages();
        function BilddesTages(){
                var url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=de-DE';
                request(url, function (err, state, body){
                    if (body) {
                        body = JSON.parse(body);
                        var bild = "https://bing.com/" + body.images[0].url;
                        var title = body.images[0].title;
                        setState("javascript.0.Bild", bild);
                        setState("javascript.0.Title", title);
                    } else {
                    }
                });
        }
        exec('rm -f /media/backup/bild.jpg');
        setTimeout(function(){
        var download = function(uri, filename, callback){
          request.head(uri, function(err, res, body){
            console.log('content-type:', res.headers['content-type']);
            console.log('content-length:', res.headers['content-length']);
            request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
          });
        };
        download(uri, '/media/backup/bild.jpg', function(){
          console.log('Bild heruntergeladen');
         
        setTimeout(function(){
        const bild1 = fs.readFileSync('/media/backup/bild.jpg');
        writeFile('vis.0','/main/img/bild_des_tages/bild.jpg', bild1);
        console.log('Bild kopiert')
        }, 30000);           
        });
        }, 30000);
        });
        
        

        Ich habe dabei den Pfad /media/backup als Downloadpfad genommen, vor dem Download wird die vorhandene Datei gelöscht. Das Script kopiert dann die Datei von /media/backup/ nach /opt/iobroker/iobroker-data/files/vis.0/main/img/bild_des_tages/. Der Link auf die Datei in der View sieht wie folgt aus:

        url(http://192.168.1.100:8082/vis.0/main/img/bild_des_tages/bild.jpg)
        

        04cd2131-2754-41fc-8a49-1b98f8c1f684-image.png
        … und die View sieht dann wie folgt aus:
        82665c25-21ee-4283-89dd-4e596a129a82-image.png

        Ist es das aktuelle???

        opossumO Offline
        opossumO Offline
        opossum
        wrote on last edited by opossum
        #23

        Hallo, @basti97 ,
        stelle das aktuelle Script zur Sicherheit hier noch mal ein, um 02:30 Uhr wird das Bild täglich heruntergeladen.

        schedule('30 2 * * *' , function()
        {
        var fs = require('fs');
        //Neue URL holen
        const id_uri = '0_userdata.0.Bild';
        var uri = getState(id_uri).val; 
        //Löschen Bild vom Vortag
        exec('rm -f /media/bild.jpg');
        //Neues Bild Download
        setTimeout(function(){
        var download = function(uri, filename, callback){
          request(uri, function(err, res, body){
            console.log('content-type:', res.headers['content-type']);
            console.log('content-length:', res.headers['content-length']);
            request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
          });
        };
        download(uri, '/media/bild.jpg', function(err){
            if(err) {
                console.log('Fehler beim Herunterladen des Bildes');
            } else {
                console.log('Bild heruntergeladen');
            }
        // Bild kopieren in VIS Verzeichnis für Anzeige im Webübersichtsbild      
        setTimeout(function(){
        const bild1 = fs.readFileSync('/media/bild.jpg');
        delFile('vis.0', '/main/img/bild_des_tages/bild.jpg', function (err) {}); 
        writeFile('vis.0','/main/img/bild_des_tages/bild.jpg', bild1);
        console.log('Bild kopiert')
        }, 30000);           
        });
        }, 30000);
        });
        

        Habe die Datenpunkte mittlerweile in den Userdata-Bereich umgezogen.

        Habe jetzt noch ein zusätzliches Script, das mir die Bildurl täglich 02.15 Uhr in meine Datenpunkte schreibt.

        schedule('15 2 * * *' , function()
        {
        createState('0_userdata.0.Bild_des_Tages.Bild', "");
        createState('0_userdata.0.Bild_des_Tages.Title', "");
        BilddesTages();
        function BilddesTages(){
                var url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=de-DE';
                request(url, function (err, state, body){
                    if (body) {
                        body = JSON.parse(body);
                        var bild = "https://bing.com/" + body.images[0].url;
                        var title = body.images[0].title;
                        setState("0_userdata.0.Bild_des_Tages.Bild", bild);
                        setState("0_userdata.0.Bild_des_Tages.Title", title);
                    } else {
                    }
                });
        }
        });
        

        Liegt daran, dass ich auf meiner VIS einen Copyrighthinweis eingebaut habe. Man weiß ja nie.

        https://schlepper-petersdorf.jimdofree.com/

        Basti97B 2 Replies Last reply
        0
        • opossumO opossum

          Hallo, @basti97 ,
          stelle das aktuelle Script zur Sicherheit hier noch mal ein, um 02:30 Uhr wird das Bild täglich heruntergeladen.

          schedule('30 2 * * *' , function()
          {
          var fs = require('fs');
          //Neue URL holen
          const id_uri = '0_userdata.0.Bild';
          var uri = getState(id_uri).val; 
          //Löschen Bild vom Vortag
          exec('rm -f /media/bild.jpg');
          //Neues Bild Download
          setTimeout(function(){
          var download = function(uri, filename, callback){
            request(uri, function(err, res, body){
              console.log('content-type:', res.headers['content-type']);
              console.log('content-length:', res.headers['content-length']);
              request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
            });
          };
          download(uri, '/media/bild.jpg', function(err){
              if(err) {
                  console.log('Fehler beim Herunterladen des Bildes');
              } else {
                  console.log('Bild heruntergeladen');
              }
          // Bild kopieren in VIS Verzeichnis für Anzeige im Webübersichtsbild      
          setTimeout(function(){
          const bild1 = fs.readFileSync('/media/bild.jpg');
          delFile('vis.0', '/main/img/bild_des_tages/bild.jpg', function (err) {}); 
          writeFile('vis.0','/main/img/bild_des_tages/bild.jpg', bild1);
          console.log('Bild kopiert')
          }, 30000);           
          });
          }, 30000);
          });
          

          Habe die Datenpunkte mittlerweile in den Userdata-Bereich umgezogen.

          Habe jetzt noch ein zusätzliches Script, das mir die Bildurl täglich 02.15 Uhr in meine Datenpunkte schreibt.

          schedule('15 2 * * *' , function()
          {
          createState('0_userdata.0.Bild_des_Tages.Bild', "");
          createState('0_userdata.0.Bild_des_Tages.Title', "");
          BilddesTages();
          function BilddesTages(){
                  var url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=de-DE';
                  request(url, function (err, state, body){
                      if (body) {
                          body = JSON.parse(body);
                          var bild = "https://bing.com/" + body.images[0].url;
                          var title = body.images[0].title;
                          setState("0_userdata.0.Bild_des_Tages.Bild", bild);
                          setState("0_userdata.0.Bild_des_Tages.Title", title);
                      } else {
                      }
                  });
          }
          });
          

          Liegt daran, dass ich auf meiner VIS einen Copyrighthinweis eingebaut habe. Man weiß ja nie.

          Basti97B Online
          Basti97B Online
          Basti97
          Most Active
          wrote on last edited by
          #24

          @opossum Super Danke und die beiden Scripte muss ich dann einfach einfügen. Wird eigentlich ein Datenpunk benötigt?

          Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

          opossumO 1 Reply Last reply
          0
          • Basti97B Basti97

            @opossum Super Danke und die beiden Scripte muss ich dann einfach einfügen. Wird eigentlich ein Datenpunk benötigt?

            opossumO Offline
            opossumO Offline
            opossum
            wrote on last edited by
            #25

            Hallo, @basti97,

            ja, ich habe die beiden Datenpunkte 0_userdata.0.Bild_des_Tages.Bild und 0_userdata.0.Bild_des_Tages.Title angelegt.

            https://schlepper-petersdorf.jimdofree.com/

            Basti97B 1 Reply Last reply
            0
            • opossumO opossum

              Hallo, @basti97,

              ja, ich habe die beiden Datenpunkte 0_userdata.0.Bild_des_Tages.Bild und 0_userdata.0.Bild_des_Tages.Title angelegt.

              Basti97B Online
              Basti97B Online
              Basti97
              Most Active
              wrote on last edited by
              #26

              @opossum Also muss ich sie per Hand in den Ordner erstellen oder geht das automatisch??

              Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

              GlasfaserG 1 Reply Last reply
              0
              • Basti97B Basti97

                @opossum Also muss ich sie per Hand in den Ordner erstellen oder geht das automatisch??

                GlasfaserG Online
                GlasfaserG Online
                Glasfaser
                wrote on last edited by
                #27

                @basti97 sagte in [gelöst] Dynamische URL aus Datenpunkt als View-Hintergrund:

                geht das automatisch??

                Jipp ,deswegen ist das drin :

                createState
                

                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                Basti97B 1 Reply Last reply
                0
                • GlasfaserG Glasfaser

                  @basti97 sagte in [gelöst] Dynamische URL aus Datenpunkt als View-Hintergrund:

                  geht das automatisch??

                  Jipp ,deswegen ist das drin :

                  createState
                  
                  Basti97B Online
                  Basti97B Online
                  Basti97
                  Most Active
                  wrote on last edited by
                  #28

                  @glasfaser Dankeschön 🙂

                  Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

                  1 Reply Last reply
                  0
                  • opossumO opossum

                    Hallo, @basti97 ,
                    stelle das aktuelle Script zur Sicherheit hier noch mal ein, um 02:30 Uhr wird das Bild täglich heruntergeladen.

                    schedule('30 2 * * *' , function()
                    {
                    var fs = require('fs');
                    //Neue URL holen
                    const id_uri = '0_userdata.0.Bild';
                    var uri = getState(id_uri).val; 
                    //Löschen Bild vom Vortag
                    exec('rm -f /media/bild.jpg');
                    //Neues Bild Download
                    setTimeout(function(){
                    var download = function(uri, filename, callback){
                      request(uri, function(err, res, body){
                        console.log('content-type:', res.headers['content-type']);
                        console.log('content-length:', res.headers['content-length']);
                        request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
                      });
                    };
                    download(uri, '/media/bild.jpg', function(err){
                        if(err) {
                            console.log('Fehler beim Herunterladen des Bildes');
                        } else {
                            console.log('Bild heruntergeladen');
                        }
                    // Bild kopieren in VIS Verzeichnis für Anzeige im Webübersichtsbild      
                    setTimeout(function(){
                    const bild1 = fs.readFileSync('/media/bild.jpg');
                    delFile('vis.0', '/main/img/bild_des_tages/bild.jpg', function (err) {}); 
                    writeFile('vis.0','/main/img/bild_des_tages/bild.jpg', bild1);
                    console.log('Bild kopiert')
                    }, 30000);           
                    });
                    }, 30000);
                    });
                    

                    Habe die Datenpunkte mittlerweile in den Userdata-Bereich umgezogen.

                    Habe jetzt noch ein zusätzliches Script, das mir die Bildurl täglich 02.15 Uhr in meine Datenpunkte schreibt.

                    schedule('15 2 * * *' , function()
                    {
                    createState('0_userdata.0.Bild_des_Tages.Bild', "");
                    createState('0_userdata.0.Bild_des_Tages.Title', "");
                    BilddesTages();
                    function BilddesTages(){
                            var url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=de-DE';
                            request(url, function (err, state, body){
                                if (body) {
                                    body = JSON.parse(body);
                                    var bild = "https://bing.com/" + body.images[0].url;
                                    var title = body.images[0].title;
                                    setState("0_userdata.0.Bild_des_Tages.Bild", bild);
                                    setState("0_userdata.0.Bild_des_Tages.Title", title);
                                } else {
                                }
                            });
                    }
                    });
                    

                    Liegt daran, dass ich auf meiner VIS einen Copyrighthinweis eingebaut habe. Man weiß ja nie.

                    Basti97B Online
                    Basti97B Online
                    Basti97
                    Most Active
                    wrote on last edited by
                    #29

                    @opossum Ich habe noch eine Frage? Um den Scripten einen Namen zu geben. Was macht das erste und zweite Script?
                    Ich könnte mir folgendes vorstellen: 1 Script. Bild abspeichern
                    2 Script. altes Bild löschen

                    ist das so richtig?? 🙂

                    Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

                    GlasfaserG 1 Reply Last reply
                    0
                    • Basti97B Basti97

                      @opossum Ich habe noch eine Frage? Um den Scripten einen Namen zu geben. Was macht das erste und zweite Script?
                      Ich könnte mir folgendes vorstellen: 1 Script. Bild abspeichern
                      2 Script. altes Bild löschen

                      ist das so richtig?? 🙂

                      GlasfaserG Online
                      GlasfaserG Online
                      Glasfaser
                      wrote on last edited by
                      #30

                      @basti97

                      Was macht das erste und zweite Script?

                      Hat er doch beschrieben !?:

                      um 02:30 Uhr wird das Bild täglich heruntergeladen.

                      zusätzliches Script, das mir die Bildurl täglich 02.15 Uhr in meine Datenpunkte schreibt.

                      Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                      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

                      666

                      Online

                      32.4k

                      Users

                      81.4k

                      Topics

                      1.3m

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

                      • Don't have an account? Register

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