Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Fehler: Bild via Telegram verschicken

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Fehler: Bild via Telegram verschicken

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      t1m0 last edited by 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-automatisierung Wal 2 Replies Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @t1m0 last edited by

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

        T 1 Reply Last reply Reply Quote 0
        • Wal
          Wal Developer @t1m0 last edited by

          @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);
          });
          
          1 Reply Last reply Reply Quote 0
          • T
            t1m0 @haus-automatisierung last edited by 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-automatisierung 1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @t1m0 last edited by

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

              T 1 Reply Last reply Reply Quote 0
              • T
                t1m0 @haus-automatisierung last edited by

                @haus-automatisierung 🙆 danke!

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                439
                Online

                31.8k
                Users

                80.0k
                Topics

                1.3m
                Posts

                3
                6
                265
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo