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. Visualisierung
  4. Bild in VIS einbinden (Script upload)

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    112

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

Bild in VIS einbinden (Script upload)

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vis
17 Beiträge 4 Kommentatoren 2.1k Aufrufe 4 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.
  • Mr. BurnsM Offline
    Mr. BurnsM Offline
    Mr. Burns
    schrieb am zuletzt editiert von Mr. Burns
    #7

    Ich denke das mache ich...wenn auch nicht bewusst.

    
    // Bild speichern
    function saveImage() {
        request.get({url: source_url, encoding: 'binary'}, function (err, response, body) {
            fs.writeFile(dest_path, body, 'binary', function(err) {
    
            if (err) {
                log('Fehler beim Bild speichern: ' + err, 'warn');
            } else {
                log('Webcam Bild gespeichert');
                sendImage(dest_path);
            }
          }); 
        });
        setState(Klingel, false);
    }
    

    Ich speichere das Billd unter:

    
    '/opt/iobroker/iobroker-data/files/vis.0/main/img/ipcam2.jpg'
    
    

    Aber wie gesagt, in VIS lässt es sich nicht einbinden.

    ChaotC 1 Antwort Letzte Antwort
    0
    • Mr. BurnsM Mr. Burns

      Die Kamera ist im Netzwerk. Aber die leifert ein Live-Bild. Mich interessiert, wer das letzte mal bei uns geklingelt hat. Bisher hab ich das per Script von der Homematic auf der CCU gespeichert und dann per Netzwerk darauf zugegriffen.

      Jetzt hab ich ein ioBroker script. Funktioniert alles...bis auf das Bild anzeigen.

      Das mit dem Script, hab ich nicht wirklich verstanden. Ich kann es mit dem vorhandenen Script doch überall hinschreiben. Warum verschieben?

      NegaleinN Offline
      NegaleinN Offline
      Negalein
      Global Moderator
      schrieb am zuletzt editiert von
      #8

      @Mr-Burns sagte in Bild in VIS einbinden (Script upload):

      wer das letzte mal bei uns geklingelt hat

      geht es zufällig um eine Doorbird?

      ° Node.js: 20.17.0 NPM: 10.8.2
      ° Proxmox, Ubuntu 22.04.3 LTS
      ° Fixer ---> iob fix

      HomoranH 1 Antwort Letzte Antwort
      0
      • NegaleinN Negalein

        @Mr-Burns sagte in Bild in VIS einbinden (Script upload):

        wer das letzte mal bei uns geklingelt hat

        geht es zufällig um eine Doorbird?

        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #9

        @Negalein Hilft uns das hier weiter?

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        NegaleinN 1 Antwort Letzte Antwort
        0
        • Mr. BurnsM Offline
          Mr. BurnsM Offline
          Mr. Burns
          schrieb am zuletzt editiert von
          #10

          Ist eine Mobotix T26...aber ich denke unabhängig.
          Ist halt ein jpg Bild.

          1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @Negalein Hilft uns das hier weiter?

            NegaleinN Offline
            NegaleinN Offline
            Negalein
            Global Moderator
            schrieb am zuletzt editiert von
            #11

            @Homoran sagte in Bild in VIS einbinden (Script upload):

            Hilft uns das hier weiter?

            Ja, denn wäre es eine Doorbird hätte ich ihm gleich die passenden Links für Vis liefern können.

            ° Node.js: 20.17.0 NPM: 10.8.2
            ° Proxmox, Ubuntu 22.04.3 LTS
            ° Fixer ---> iob fix

            1 Antwort Letzte Antwort
            0
            • Mr. BurnsM Mr. Burns

              Ich denke das mache ich...wenn auch nicht bewusst.

              
              // Bild speichern
              function saveImage() {
                  request.get({url: source_url, encoding: 'binary'}, function (err, response, body) {
                      fs.writeFile(dest_path, body, 'binary', function(err) {
              
                      if (err) {
                          log('Fehler beim Bild speichern: ' + err, 'warn');
                      } else {
                          log('Webcam Bild gespeichert');
                          sendImage(dest_path);
                      }
                    }); 
                  });
                  setState(Klingel, false);
              }
              

              Ich speichere das Billd unter:

              
              '/opt/iobroker/iobroker-data/files/vis.0/main/img/ipcam2.jpg'
              
              

              Aber wie gesagt, in VIS lässt es sich nicht einbinden.

              ChaotC Offline
              ChaotC Offline
              Chaot
              schrieb am zuletzt editiert von
              #12

              @Mr-Burns
              Ich denke mal da mit dem Befehl irgendwas nicht stimmt.
              Hast du dir die beiden Dinger hier mal durchgelesen?
              https://forum.iobroker.net/topic/25541/gelöst-wie-writefile-in-js-script-nutzen/9
              https://forum.iobroker.net/topic/25541/gelöst-wie-writefile-in-js-script-nutzen/36
              Ich nutze bei dem Befehl keine Pfadangabe wie du aufgeführt hast.
              Probier doch einfach mal von mir den Codeschnipsel und schiebe das Bild in den anderen Ordner.

              ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

              1 Antwort Letzte Antwort
              0
              • Mr. BurnsM Offline
                Mr. BurnsM Offline
                Mr. Burns
                schrieb am zuletzt editiert von
                #13

                Ich versuch es mal aufzubröseln:
                Du liest in deiner internen Variable „bild1“ dein Bild (Pfad)ein (oder sind es Bildinformationen?).
                - Der pfad ist je relativ. Wo liegt das Bild denn da genau? Im Javaordner?

                Dann schreibst du:
                Was ist 0_userdata.0? Ein unterorder?
                alarm1.jpg ist dein „neuer“ name und „bild1“ die herkunft?

                Wie triggerst du das 2. Script? Ich muss auch wissen, wo ich das Kamerabild im ersten script ablegen muss, damit das 2. script das Bild findet.

                Wo liegt dein Bild dann in VIS?

                Versteh nicht warum das so kompliziert ist. (Bzw. für mich)

                ChaotC 1 Antwort Letzte Antwort
                0
                • Mr. BurnsM Mr. Burns

                  Ich versuch es mal aufzubröseln:
                  Du liest in deiner internen Variable „bild1“ dein Bild (Pfad)ein (oder sind es Bildinformationen?).
                  - Der pfad ist je relativ. Wo liegt das Bild denn da genau? Im Javaordner?

                  Dann schreibst du:
                  Was ist 0_userdata.0? Ein unterorder?
                  alarm1.jpg ist dein „neuer“ name und „bild1“ die herkunft?

                  Wie triggerst du das 2. Script? Ich muss auch wissen, wo ich das Kamerabild im ersten script ablegen muss, damit das 2. script das Bild findet.

                  Wo liegt dein Bild dann in VIS?

                  Versteh nicht warum das so kompliziert ist. (Bzw. für mich)

                  ChaotC Offline
                  ChaotC Offline
                  Chaot
                  schrieb am zuletzt editiert von
                  #14

                  @Mr-Burns
                  Ich gebe dir mal das ganze Script:

                  var sperre = false;  //verhindert das doppeltes Drücken das Script stoppt
                  var timeout1, timeout2, timeout3, timeout4, timeout5, timeout6, timeout7, timeout8, timeout9, timeout10, timeout11;
                  var fs = require('fs');
                  
                  
                  on({id: 'sonoff.0.Eingang.POWER2', val: true}, function (obj) {
                    if(!sperre) {
                      sperre = true;
                      setState("tr-064-community.0.states.ring"/*ring*/, '**610, 15'); //Klingelt 15 Sekunden auf dem Telefon
                       // Speichert das erste Bild bei Klingeln
                      exec('wget --output-document /tuer/alarm1.jpg \'http://192.168.8.95:8765/picture/1/current/?_username=xxxxx&_signature=xxxxx\'');
                      // Es wird 2500ms gewartet um dieses speichern auszuführen
                      timeout1 = setTimeout(function () {
                        // Und hier wird es versendet
                        sendTo("email", "send", {
                       text: '',
                       to: 'xxxx@gmail.com',
                       subject: 'Klingel',
                       attachments:[
                          {path: '/tuer/alarm1.jpg', cid: "file1"},
                        ]
                        });
                        sendTo("email", "send", {
                       text: '',
                       to: 'xxxx@gmail.com',
                       subject: 'Klingel',
                       attachments:[
                          {path: '/tuer/alarm1.jpg', cid: "file1"},
                        ]
                        });
                        
                      }, 2500);
                      
                      // Nach dem ersten Bild wird nach 5000ms das nächste Bild gespeichert
                      timeout2 = setTimeout(function () {
                        exec('wget --output-document /tuer/alarm2.jpg \'http://192.168.8.95:8765/picture/1/current/?_username=xxxx&_signature=xxxx\'');
                        // Es wird 2500ms gewartet um dieses speichern auszuführen
                        timeout3 = setTimeout(function () {
                          // Und hier wird es versendet
                          sendTo("email", "send", {
                       text: '',
                       to: 'xxxx@gmail.com',
                       subject: 'Klingel',
                       attachments:[
                          {path: '/tuer/alarm2.jpg', cid: "file1"},
                        ]
                          });
                          sendTo("email", "send", {
                       text: '',
                       to: 'xxxx@gmail.com',
                       subject: 'Klingel',
                       attachments:[
                          {path: '/tuer/alarm2.jpg', cid: "file1"},
                        ]
                        });
                        
                        }, 2500);
                      }, 5000);
                      
                      timeout4 = setTimeout(function () {
                        exec('wget --output-document /tuer/alarm3.jpg \'http://192.168.8.95:8765/picture/1/current/?_username=xxxx&_signature=xxxx\'');
                      }, 10000);
                     
                     
                      timeout5 = setTimeout(function () {
                        exec('wget --output-document /tuer/alarm4.jpg \'http://192.168.8.95:8765/picture/1/current/?_username=xxxx&_signature=xxxx\'');
                      }, 10000);
                     
                      }
                  
                       setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Tuer"}'); 
                             // oder
                             //setState("vis.0.control.instance", 'FFFFFFFF');
                             //setState("vis.0.control.data",     'DemoView');
                             //setState("vis.0.control.command",  'changeView'); // muss immer letzte sein
                             
                             // Setze View auf Kamerabild
                              timeout6 = setTimeout(function () {
                                        setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Info"}');
                             }, 60000); // Nach 60 Sekunden, zeige wieder Start View
                      timeout7 = setTimeout(function () {
                      setState("alexa2.0.Echo-Devices.G2Axxxx.Commands.speak-volume"/*speak-volume*/, 70, true);
                      }, 500); // Setzt Alexa auf 90%
                      timeout8 = setTimeout(function () {
                      setState("alexa2.0.Echo-Devices.G2Axxxx.Commands.speak"/*speak*/, 'Es ist jemand an der Tür');
                      }, 1000); // Sprachansage
                      timeout9 = setTimeout(function () {
                      setState("alexa2.0.Echo-Devices.G2Axxxx.Commands.speak-volume"/*speak-volume*/, 30, true);
                      }, 5000); // Setzt Alexa auf 50%
                      timeout10 = setTimeout(function() {
                         sperre = false;
                      }, 5000); //Zeit für Klingelsperre 1.Zeile
                      timeout11 = setTimeout(function () {
                           const bild1 = fs.readFileSync('/tuer/alarm1.jpg');
                           writeFile('0_userdata.0','alarm1.jpg', bild1);
                           const bild2 = fs.readFileSync('/tuer/alarm2.jpg');
                           writeFile('0_userdata.0','alarm2.jpg', bild2);
                           const bild3 = fs.readFileSync('/tuer/alarm3.jpg');
                           writeFile('0_userdata.0','alarm3.jpg', bild3);
                           const bild4 = fs.readFileSync('/tuer/alarm4.jpg');
                           writeFile('0_userdata.0','alarm4.jpg', bild4);
                      }, 5000); 
                  });
                  
                  

                  Ich speicher also das Bild im Ordner /tuer/ und verschiebe das dann in den Ordner 0_userdata.0. Du kannst auch den Ordner vis.0 nehmen wenn dir das lieber ist.
                  Der Ordner 0_userdata wurde mit dem Scriptupdate eingeführt und ich verwende den für solche Zwecke. Leider ist der VisEditor noch nicht so weit das man dort Daten über den Dateimanager hochladen kann.

                  alarm#.jpg ist der Name unter dem ich das Bild im Ordner tuer speichere und das verschiebe ich dann in den userdata Ordner und benenne es um. Das umbenennen muss nicht unbedingt sein, aber ich habe das irgendwann mal gemacht weil ich gedacht habe das hilft mir die Bilder zu unterscheiden. Ist aber Blödsinn (den ich noch nicht korrigiert habe).

                  ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                  1 Antwort Letzte Antwort
                  0
                  • Mr. BurnsM Offline
                    Mr. BurnsM Offline
                    Mr. Burns
                    schrieb am zuletzt editiert von
                    #15

                    Danke, ich probiere es aus und melde mich zurück. Versuch es heute Abend...

                    Gruß

                    1 Antwort Letzte Antwort
                    0
                    • Mr. BurnsM Offline
                      Mr. BurnsM Offline
                      Mr. Burns
                      schrieb am zuletzt editiert von
                      #16

                      Da bin ich wieder. Es funktioniert. Vielen Dank für eure unterstützung.

                      Wichtig zu wissen wäre noch:

                      1. Timer (TimeOut) ist notwendig, da das holen des Bildes von der Kamera länger dauert als das Kopieren.
                      2. Der Pfad in VIS muss angegeben werden, da der Dateimanager nur bis /VIS.0 anzeigen kann (0_userdata.0 lässt sich aber einbinden)

                      Das man das so machen muss, ist das jetzt ein bug oder ein feature?

                      //Einlesen des Bildes (+informationen) und in die Datenbank übernehmen (für VIS)
                              timeout_VIS = setTimeout(function () {                                  //Zeitverzögert das Bild kopiere, da das Speichern länger als das kopieren dauert
                              const bild = fs.readFileSync('/opt/ipcam/ipcam2.jpg');                  // Lesen des Bildes(+Informationen)
                              writeFile('0_userdata.0','ipcam2.jpg', bild);                           // Schreibe Bild in Userdaten (VIS: /0_userdata.0/ipcam2.jpg   wird nicht über Explorer gefunden)
                          }, 5000);                                                                   // Zeitverzögerung in ms (5sec)
                      

                      Noch mal danke für die Hilfe und Geduld!

                      ChaotC 1 Antwort Letzte Antwort
                      1
                      • Mr. BurnsM Mr. Burns

                        Da bin ich wieder. Es funktioniert. Vielen Dank für eure unterstützung.

                        Wichtig zu wissen wäre noch:

                        1. Timer (TimeOut) ist notwendig, da das holen des Bildes von der Kamera länger dauert als das Kopieren.
                        2. Der Pfad in VIS muss angegeben werden, da der Dateimanager nur bis /VIS.0 anzeigen kann (0_userdata.0 lässt sich aber einbinden)

                        Das man das so machen muss, ist das jetzt ein bug oder ein feature?

                        //Einlesen des Bildes (+informationen) und in die Datenbank übernehmen (für VIS)
                                timeout_VIS = setTimeout(function () {                                  //Zeitverzögert das Bild kopiere, da das Speichern länger als das kopieren dauert
                                const bild = fs.readFileSync('/opt/ipcam/ipcam2.jpg');                  // Lesen des Bildes(+Informationen)
                                writeFile('0_userdata.0','ipcam2.jpg', bild);                           // Schreibe Bild in Userdaten (VIS: /0_userdata.0/ipcam2.jpg   wird nicht über Explorer gefunden)
                            }, 5000);                                                                   // Zeitverzögerung in ms (5sec)
                        

                        Noch mal danke für die Hilfe und Geduld!

                        ChaotC Offline
                        ChaotC Offline
                        Chaot
                        schrieb am zuletzt editiert von
                        #17

                        @Mr-Burns Freut mich zu hören.

                        Stimmt übrigens mit dem Timeout. Das war mir total entfallen.

                        Der Weg ist ein Feature. Das hat damit zu tun das nicht einfach wild irgendwas in die Ordner geschrieben wird und das System liest die unkontrolliert ein.

                        ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                        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

                        779

                        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