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. Skripten / Logik
  4. JavaScript
  5. Fehler: Bild via Telegram verschicken

NEWS

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

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

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

Fehler: Bild via Telegram verschicken

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 3 Kommentatoren 446 Aufrufe 2 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.
  • T Offline
    T Offline
    t1m0
    schrieb am zuletzt editiert von t1m0
    #1

    Grüße,

    ich musse leider mein System komplett neu aufsetzen. Seit dem funktioniert mein Script nicht mehr.
    Hat jemand eine Idee, woran dies liegt?

    
    
    var source_url = 'http://10.0.20.10:81/image/Haustuer', 
    
        dest_path = '/opt/iobroker/iobroker-data/files/_temp';
    
    var request = require('request');
    var fs      = require('fs');
    
    
    on({id: "doorbird.0.Doorbell.1.trigger"/*HM-Sen-DB-PCB PEQ0653647:1.PRESS_SHORT*/, val: true}, function (obj) {
        if (getState("vars.0.klingelfreigabe").val == true) {  //doppelklingel verhindern
            
           
            setState("vars.0.klingelfreigabe"/*klingelfreigabe*/, false);
            setStateDelayed("vars.0.klingelfreigabe"/*klingelfreigabe*/, true, 40000, true);
            //fuer 10 sekunden sperren
     setTimeout(function(){
      saveImage();
                        }, 2500);
        
    }
    //senden nach MILISEKDUNGEN 
    
    
    });
    
    
    
    
    
    
    
    function sendImage (pfad) {
        setTimeout(function() {
            setState("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, '');
            setStateDelayed("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, 'camera=Haustuer&snapshot', 100, false);
            setStateDelayed("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, '', 150, false);
            //Bild wird auf dem Server gespeichert und danach leeren damit der es abspielt
            sendTo('telegram.0', "Türklingel:");
            sendTo('telegram.0', pfad);
            sendTo('telegram', '/opt/iobroker/iobroker-data/files/doorbird.0/Doorbell1_1.jpg');
            log('Webcam Bild per telegram verschickt');
        }, 2 * 1000);
    }
    
    
    
    
    
    
    
    
    
    function saveImage() {
        request.get({url: source_url, encoding: 'binary'}, function (err, response, body) {
            fs.writeFile(dest_path + 'image1.jpg', body, 'binary', function(err) {
    
            if (err) {
                log('Fehler beim Bild speichern: ' + err, 'warn');
            } else {
                log('Webcam Bild gespeichert');
                sendImage(dest_path + 'image1.jpg');
            }
          }); 
        });
    }
    
    
    
    
    
    
    
    haus-automatisierungH WalW 2 Antworten Letzte Antwort
    0
    • T t1m0

      Grüße,

      ich musse leider mein System komplett neu aufsetzen. Seit dem funktioniert mein Script nicht mehr.
      Hat jemand eine Idee, woran dies liegt?

      
      
      var source_url = 'http://10.0.20.10:81/image/Haustuer', 
      
          dest_path = '/opt/iobroker/iobroker-data/files/_temp';
      
      var request = require('request');
      var fs      = require('fs');
      
      
      on({id: "doorbird.0.Doorbell.1.trigger"/*HM-Sen-DB-PCB PEQ0653647:1.PRESS_SHORT*/, val: true}, function (obj) {
          if (getState("vars.0.klingelfreigabe").val == true) {  //doppelklingel verhindern
              
             
              setState("vars.0.klingelfreigabe"/*klingelfreigabe*/, false);
              setStateDelayed("vars.0.klingelfreigabe"/*klingelfreigabe*/, true, 40000, true);
              //fuer 10 sekunden sperren
       setTimeout(function(){
        saveImage();
                          }, 2500);
          
      }
      //senden nach MILISEKDUNGEN 
      
      
      });
      
      
      
      
      
      
      
      function sendImage (pfad) {
          setTimeout(function() {
              setState("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, '');
              setStateDelayed("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, 'camera=Haustuer&snapshot', 100, false);
              setStateDelayed("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, '', 150, false);
              //Bild wird auf dem Server gespeichert und danach leeren damit der es abspielt
              sendTo('telegram.0', "Türklingel:");
              sendTo('telegram.0', pfad);
              sendTo('telegram', '/opt/iobroker/iobroker-data/files/doorbird.0/Doorbell1_1.jpg');
              log('Webcam Bild per telegram verschickt');
          }, 2 * 1000);
      }
      
      
      
      
      
      
      
      
      
      function saveImage() {
          request.get({url: source_url, encoding: 'binary'}, function (err, response, body) {
              fs.writeFile(dest_path + 'image1.jpg', body, 'binary', function(err) {
      
              if (err) {
                  log('Fehler beim Bild speichern: ' + err, 'warn');
              } else {
                  log('Webcam Bild gespeichert');
                  sendImage(dest_path + 'image1.jpg');
              }
            }); 
          });
      }
      
      
      
      
      
      
      
      haus-automatisierungH Offline
      haus-automatisierungH Offline
      haus-automatisierung
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      @t1m0 Nicht manuell nach files schreiben… Nimm irgendein anderes Verzeichnis. Und request am besten auch direkt loswerden

      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
      📚 Meine inoffizielle ioBroker Dokumentation

      T 1 Antwort Letzte Antwort
      0
      • T t1m0

        Grüße,

        ich musse leider mein System komplett neu aufsetzen. Seit dem funktioniert mein Script nicht mehr.
        Hat jemand eine Idee, woran dies liegt?

        
        
        var source_url = 'http://10.0.20.10:81/image/Haustuer', 
        
            dest_path = '/opt/iobroker/iobroker-data/files/_temp';
        
        var request = require('request');
        var fs      = require('fs');
        
        
        on({id: "doorbird.0.Doorbell.1.trigger"/*HM-Sen-DB-PCB PEQ0653647:1.PRESS_SHORT*/, val: true}, function (obj) {
            if (getState("vars.0.klingelfreigabe").val == true) {  //doppelklingel verhindern
                
               
                setState("vars.0.klingelfreigabe"/*klingelfreigabe*/, false);
                setStateDelayed("vars.0.klingelfreigabe"/*klingelfreigabe*/, true, 40000, true);
                //fuer 10 sekunden sperren
         setTimeout(function(){
          saveImage();
                            }, 2500);
            
        }
        //senden nach MILISEKDUNGEN 
        
        
        });
        
        
        
        
        
        
        
        function sendImage (pfad) {
            setTimeout(function() {
                setState("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, '');
                setStateDelayed("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, 'camera=Haustuer&snapshot', 100, false);
                setStateDelayed("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, '', 150, false);
                //Bild wird auf dem Server gespeichert und danach leeren damit der es abspielt
                sendTo('telegram.0', "Türklingel:");
                sendTo('telegram.0', pfad);
                sendTo('telegram', '/opt/iobroker/iobroker-data/files/doorbird.0/Doorbell1_1.jpg');
                log('Webcam Bild per telegram verschickt');
            }, 2 * 1000);
        }
        
        
        
        
        
        
        
        
        
        function saveImage() {
            request.get({url: source_url, encoding: 'binary'}, function (err, response, body) {
                fs.writeFile(dest_path + 'image1.jpg', body, 'binary', function(err) {
        
                if (err) {
                    log('Fehler beim Bild speichern: ' + err, 'warn');
                } else {
                    log('Webcam Bild gespeichert');
                    sendImage(dest_path + 'image1.jpg');
                }
              }); 
            });
        }
        
        
        
        
        
        
        
        WalW Offline
        WalW Offline
        Wal
        Developer
        schrieb am zuletzt editiert von
        #3

        @t1m0 ,
        hier mit "axios" und das Verzeichnis "/opt/iobroker/snapshots" habe ich mit "mkdir" manuell erzeugt.

        const fs      = require('fs');
        const axios   = require('axios');
        const camUrl = 'http://192.168.1.116:5000/api/doorbell/latest.jpg?h=600';
        var snap = '';
        var bell = true;
         
        async function sendImage() {
            const writer = fs.createWriteStream(snap);
            try {
                const response = await axios({
                    url: camUrl,
                    method: 'get',        
                    responseType: 'stream'
                })
            
                response.data.pipe(writer);
         
                return new Promise((resolve, reject) => {
                    writer.on('finish', resolve => {
                        sendTo('telegram.0', {text: snap, caption: 'Jemand klingelt an der Haustür !!!'});
                        sendTo("email", {
                            to:      "tuerklingel@gmx.net",
                            subject: "Message from ioBroker",
                            text:    "Jemand klingelt an der Haustür !!!",
                            attachments: [{path: snap}]
                        });
                    });        
                });   
            } catch (err) {
                console.log('Kamera hat ein problem');
            }
        }
        
        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);
        });
        

        Gruß
        Walter

        DoorIO-Adapter
        wioBrowser-Adapter und wioBrowser

        1 Antwort Letzte Antwort
        0
        • haus-automatisierungH haus-automatisierung

          @t1m0 Nicht manuell nach files schreiben… Nimm irgendein anderes Verzeichnis. Und request am besten auch direkt loswerden

          T Offline
          T Offline
          t1m0
          schrieb am zuletzt editiert von t1m0
          #4

          @haus-automatisierung
          @Wal

          Vielen Dank euch beiden!
          Script läuft wieder. Jedoch bekomme ich noch ein paar Fehlermeldungen :/

          javascript.0
          2024-07-07 22:49:38.285	warn	script.js.test2: setForeignState(id=mqtt.0.BlueIris.admin, state={"val":"","ack":false,"ts":1720385378285,"q":0,"from":"system.adapter.javascript.0","lc":1720385378285,"c":"script.js.test2"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
          
          javascript.0
          2024-07-07 22:49:38.235	warn	script.js.test2: setForeignState(id=mqtt.0.BlueIris.admin, state={"val":"camera=Haustuer&snapshot","ack":false,"ts":1720385378235,"q":0,"from":"system.adapter.javascript.0","lc":1720385378235,"c":"script.js.test2"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
          
          javascript.0
          2024-07-07 22:49:38.135	warn	script.js.test2: setForeignState(id=mqtt.0.BlueIris.admin, state={"val":"","ack":false,"ts":1720385378135,"q":0,"from":"system.adapter.javascript.0","lc":1720385378135,"c":"script.js.test2"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
          
          javascript.0
          2024-07-07 22:49:35.440	warn	script.js.test2: setForeignState(id=vars.0.klingelfreigabe, state={"val":false,"ack":false,"ts":1720385375440,"q":0,"from":"system.adapter.javascript.0","lc":1720385375440,"c":"script.js.test2"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
          

          So sieht das Script bei mir nun aus:

          const fs      = require('fs');
          const axios   = require('axios');
          const camUrl = 'http://10.0.20.10:81/image/Haustuer';
          var snap = '/opt/iobroker/snapshots/snap.jpg';
          
          
           
          async function sendImage() {
              const writer = fs.createWriteStream(snap);
              try {
                  const response = await axios({
                      url: camUrl,
                      method: 'get',        
                      responseType: 'stream'
                  })
              
                  response.data.pipe(writer);
           
                  return new Promise((resolve, reject) => {
                      writer.on('finish', resolve => {
                       
                          setState("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, '');
                          setStateDelayed("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, 'camera=Haustuer&snapshot', 100, false);
                          setStateDelayed("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, '', 150, false);
                          //Bild wird auf dem Server gespeichert und danach leeren damit der es abspielt
                          sendTo('telegram.0', "Türklingel:");
                          sendTo('telegram.0', {text: snap, caption: ''});
                          sendTo('telegram', '/opt/iobroker/iobroker-data/files/doorbird.0/Doorbell1_1.jpg');
                          
                          
                          
          
                      });        
                  });   
              } catch (err) {
                  console.log('Kamera hat ein problem');
              }
          }
           
          
          
          
          
          
          on({id: "doorbird.0.Doorbell.1.trigger"/*HM-Sen-DB-PCB PEQ0653647:1.PRESS_SHORT*/, val: true}, function (obj) {
              if (getState("vars.0.klingelfreigabe").val == true) {  //doppelklingel verhindern
                  
                 
                  setState("vars.0.klingelfreigabe"/*klingelfreigabe*/, false);
                  setStateDelayed("vars.0.klingelfreigabe"/*klingelfreigabe*/, true, 40000, true);
                  //fuer 10 sekunden sperren
           setTimeout(function(){
          
                  
                  sendImage();
          
            
                              }, 2500);
              
          }
          //senden nach MILISEKDUNGEN 
          
          
          });
          
          
          
          
          
          
          
          
          
          
          
          haus-automatisierungH 1 Antwort Letzte Antwort
          0
          • T t1m0

            @haus-automatisierung
            @Wal

            Vielen Dank euch beiden!
            Script läuft wieder. Jedoch bekomme ich noch ein paar Fehlermeldungen :/

            javascript.0
            2024-07-07 22:49:38.285	warn	script.js.test2: setForeignState(id=mqtt.0.BlueIris.admin, state={"val":"","ack":false,"ts":1720385378285,"q":0,"from":"system.adapter.javascript.0","lc":1720385378285,"c":"script.js.test2"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
            
            javascript.0
            2024-07-07 22:49:38.235	warn	script.js.test2: setForeignState(id=mqtt.0.BlueIris.admin, state={"val":"camera=Haustuer&snapshot","ack":false,"ts":1720385378235,"q":0,"from":"system.adapter.javascript.0","lc":1720385378235,"c":"script.js.test2"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
            
            javascript.0
            2024-07-07 22:49:38.135	warn	script.js.test2: setForeignState(id=mqtt.0.BlueIris.admin, state={"val":"","ack":false,"ts":1720385378135,"q":0,"from":"system.adapter.javascript.0","lc":1720385378135,"c":"script.js.test2"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
            
            javascript.0
            2024-07-07 22:49:35.440	warn	script.js.test2: setForeignState(id=vars.0.klingelfreigabe, state={"val":false,"ack":false,"ts":1720385375440,"q":0,"from":"system.adapter.javascript.0","lc":1720385375440,"c":"script.js.test2"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
            

            So sieht das Script bei mir nun aus:

            const fs      = require('fs');
            const axios   = require('axios');
            const camUrl = 'http://10.0.20.10:81/image/Haustuer';
            var snap = '/opt/iobroker/snapshots/snap.jpg';
            
            
             
            async function sendImage() {
                const writer = fs.createWriteStream(snap);
                try {
                    const response = await axios({
                        url: camUrl,
                        method: 'get',        
                        responseType: 'stream'
                    })
                
                    response.data.pipe(writer);
             
                    return new Promise((resolve, reject) => {
                        writer.on('finish', resolve => {
                         
                            setState("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, '');
                            setStateDelayed("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, 'camera=Haustuer&snapshot', 100, false);
                            setStateDelayed("mqtt.0.BlueIris.admin"/*BlueIris/admin/*/, '', 150, false);
                            //Bild wird auf dem Server gespeichert und danach leeren damit der es abspielt
                            sendTo('telegram.0', "Türklingel:");
                            sendTo('telegram.0', {text: snap, caption: ''});
                            sendTo('telegram', '/opt/iobroker/iobroker-data/files/doorbird.0/Doorbell1_1.jpg');
                            
                            
                            
            
                        });        
                    });   
                } catch (err) {
                    console.log('Kamera hat ein problem');
                }
            }
             
            
            
            
            
            
            on({id: "doorbird.0.Doorbell.1.trigger"/*HM-Sen-DB-PCB PEQ0653647:1.PRESS_SHORT*/, val: true}, function (obj) {
                if (getState("vars.0.klingelfreigabe").val == true) {  //doppelklingel verhindern
                    
                   
                    setState("vars.0.klingelfreigabe"/*klingelfreigabe*/, false);
                    setStateDelayed("vars.0.klingelfreigabe"/*klingelfreigabe*/, true, 40000, true);
                    //fuer 10 sekunden sperren
             setTimeout(function(){
            
                    
                    sendImage();
            
              
                                }, 2500);
                
            }
            //senden nach MILISEKDUNGEN 
            
            
            });
            
            
            
            
            
            
            
            
            
            
            
            haus-automatisierungH Offline
            haus-automatisierungH Offline
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #5

            @t1m0 Mach den Debug-Modus im Script aus… (oben rechts)

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            T 1 Antwort Letzte Antwort
            0
            • haus-automatisierungH haus-automatisierung

              @t1m0 Mach den Debug-Modus im Script aus… (oben rechts)

              T Offline
              T Offline
              t1m0
              schrieb am zuletzt editiert von
              #6

              @haus-automatisierung :ok_woman: danke!

              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

              472

              Online

              32.4k

              Benutzer

              81.5k

              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