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. Skripten / Logik
  4. JavaScript
  5. Skript läuft seit heute nicht mehr

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    208

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

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

Skript läuft seit heute nicht mehr

Skript läuft seit heute nicht mehr

Scheduled Pinned Locked Moved JavaScript
21 Posts 6 Posters 2.0k Views 4 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.
  • G Offline
    G Offline
    Gezi70
    wrote on last edited by Gezi70
    #1

    Hallo zusammen, ich habe seit einigen Jahren folgendes Skript (aus dem Forum), welches mir die Bilder meiner Kamera per Telegram zusendet.

    // JavaScript zur Verwendung in ioBroker
    //
    // Das Script speichert bei Auslösung (z.B. durch einen Bewegungsmelder) drei Bilder einer Überwachungskamera in frei definierbaren Zeitabständen und versendet das erste Bild per telegram.
    // Über telegram können dann bei Bedarf auch die weiteren zwei Bilder abgefragt werden. Natürlich ist auch eine manuelle Auslösung (ohne Bewegungsmelder) per telegram möglich.
    // Der Automatische Versand der Bilder kann über telegram auch aktiviert/ deaktiviert werden. 
    //
    // Mehr Infos zum Script und dessen Einrichtung hier:  
      
    // Hier können Einstellungen vorgenommen werden:
     
    // Variablen
    var cam_img = 'http://xxxxxxxxxxx/snap.jpg';   // Pfad zum Kamerabild (Im Beispiel eine Foscam)
    var trigger_auto = 'hm-rpc.1.MEQ1797611.1.MOTION';  // Datenpunkt zur autmatischen Auslösung (Status des Bewegungsmelders, Fenster-/ Türkontakt oder der Türklingel)
    var trigger_manu = '0_userdata.0.notify.telegram.cam.trigger_manu'; // Datenpunkt zur manuellen Auslösung (wird bei Bedarf automatisch angelegt)
    var trigger_more_img = '0_userdata.0.notify.telegram.cam.trigger_more_img'; // Datenpunkt zur Abfrage weiterer Bilder (wird bei Bedarf automatisch angelegt)
    var disable = '0_userdata.0.notify.telegram.cam.disable';   // Aktivierung/Deaktivierung des Versands per telegram (wird bei Bedarf automatisch angelegt)
    var interval = '3000';  // Verzögerung der weiteren Aufnahmen in Millisekunden
    var img_path = '/opt/iobroker/temp/cam/';   // Pfad zum lokalen Speicherort der aufgenommenen Bilder. Bilder werden bei jeder Auslösung überschrieben. Pfad muss schon vorhanden sein!
     
     
    // -------------------------------------------
    // Ab hier braucht in der Regel nichts mehr geändert zu werden. Also Finger weg wenn du nicht weißt was du tust. :) 
    // -------------------------------------------
     
    // Datenpunkte anlegen (Kann unter Umständen auskommentiert werden, wenn die Datenpunkte manuell angelegt wurden.)
    //createState( trigger_auto, false, {name: 'Datenpunkt zur autmatischen Auslösung'});
    //createState( trigger_manu, false, {name: 'Datenpunkt zur manuellen Auslösung'});
    //createState( trigger_more_img, false, {name: 'Datenpunkt zur Abfrage weiterer Bilder'});
    //createState( disable, false, {name: 'Aktivierung/Deaktivierung des Versands per telegram'});
     
    // Variablendeklaration und Initialisierung bei Scriptstart
    var stateTrigger_auto = getState(trigger_auto).val;
    var stateTrigger_manu = getState(trigger_manu).val;
    var stateTrigger_more_img = getState(trigger_more_img).val;
    var stateDisable = getState(disable).val;
    var request = require('request');
    var fs      = require('fs');
    var timer;
     
     
    // Funktionen
    // -------------------------------------------
     
    // Funktion Bilder versenden
    function sendImage (pfad) {
        setTimeout(function() {
            sendTo('telegram.1', {
        text:   pfad,
        reply_markup: {
            keyboard: [
                ['Mehr Bilder', 'Danke']
            ],
            resize_keyboard:   true,
            one_time_keyboard: true
        }
    });
            log('Webcam Bild per telegram verschickt.');
        }, 2000);
    }
     
    // Funktion Bilder speichern
    function saveImage() {
        request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
            fs.writeFile(img_path + 'cam1_1.jpg', body, 'binary', function(err) {
            if (err) {
                log('Fehler beim Speichern von Bild 1: ' + err, 'warn');
            } else {
                log('Bild 1 gespeichert.');
                sendImage(img_path + 'cam1_1.jpg');
            }
          }); 
        });
         
        if (timer) {
            clearTimeout(timer);
            timer = null;
        } 
        timer = setTimeout(function () {
            request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
                fs.writeFile(img_path + 'cam1_2.jpg', body, 'binary', function(err) {
                if (err) {
                    log('Fehler beim Speichern von Bild 2: ' + err, 'warn');
                } else {
                    log('Bild 2 gespeichert.');
            }
          }); 
        });
            }, interval);
        timer = setTimeout(function () {
            request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
                fs.writeFile(img_path + 'cam1_3.jpg', body, 'binary', function(err) {
                if (err) {
                    log('Fehler beim Speichern von Bild 3: ' + err, 'warn');
                } else {
                    log('Bild 3 gespeichert.');        }
          }); 
        });
            }, 2 * interval);
    }
     
     
    // Trigger für die verschiedenen Aktionen
    // -------------------------------------------
     
    // trigger_auto
    on(trigger_auto, function(dp) {
        stateTrigger_auto = dp.newState.val;
        stateDisable = getState(disable).val;
        if (stateTrigger_auto === true && stateDisable === false) {
            saveImage();
            // setState(trigger_auto, false);     // Option zum Zurücksetzen des Triggers. Standardmäßig auskommentiert, da sich der Bewegungsmelder automatisch zurück setzt. Bei Bedarf "//" am Zeilenafang entfernen.
        }
    });
     
    // trigger_more_img
    on(trigger_more_img, function(dp) {
        stateTrigger_more_img = dp.newState.val;
        if (stateTrigger_more_img === true) {
            sendImage(img_path + 'cam1_2.jpg');
            sendImage(img_path + 'cam1_3.jpg');
            setState(trigger_more_img, false);
        }
    });
     
    // trigger_manu
    on(trigger_manu, function(dp) {
        stateTrigger_manu = dp.newState.val;
        if (stateTrigger_manu === true) {
            saveImage();
            setState(trigger_manu, false);
        }
    });
    

    Seit gestern abend bekomme ich keine Bilder mehr, und im Log steht folgender Text:

    javascript.0	23:58:40.864	info	Stopping script script.js.common.Kamera.Kameraskript_neu
    javascript.0	23:58:42.240	info	Start JavaScript script.js.common.Kamera.Kameraskript_neu (Javascript/js)
    javascript.0	23:58:42.247	warn	script.js.common.Kamera.Kameraskript_neu: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
    javascript.0	23:58:42.247	info	script.js.common.Kamera.Kameraskript_neu: registered 3 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
    

    Kann mir bitte jemand aus der Patsche helfen? Ich bin im Programmieren eine totale Null...
    Gerne auch als Blockly, dann kann ich vielleicht geistig etwas besser folgen.

    Ich danke euch schon mal.

    wendy2702W 1 Reply Last reply
    0
    • G Gezi70

      Hallo zusammen, ich habe seit einigen Jahren folgendes Skript (aus dem Forum), welches mir die Bilder meiner Kamera per Telegram zusendet.

      // JavaScript zur Verwendung in ioBroker
      //
      // Das Script speichert bei Auslösung (z.B. durch einen Bewegungsmelder) drei Bilder einer Überwachungskamera in frei definierbaren Zeitabständen und versendet das erste Bild per telegram.
      // Über telegram können dann bei Bedarf auch die weiteren zwei Bilder abgefragt werden. Natürlich ist auch eine manuelle Auslösung (ohne Bewegungsmelder) per telegram möglich.
      // Der Automatische Versand der Bilder kann über telegram auch aktiviert/ deaktiviert werden. 
      //
      // Mehr Infos zum Script und dessen Einrichtung hier:  
        
      // Hier können Einstellungen vorgenommen werden:
       
      // Variablen
      var cam_img = 'http://xxxxxxxxxxx/snap.jpg';   // Pfad zum Kamerabild (Im Beispiel eine Foscam)
      var trigger_auto = 'hm-rpc.1.MEQ1797611.1.MOTION';  // Datenpunkt zur autmatischen Auslösung (Status des Bewegungsmelders, Fenster-/ Türkontakt oder der Türklingel)
      var trigger_manu = '0_userdata.0.notify.telegram.cam.trigger_manu'; // Datenpunkt zur manuellen Auslösung (wird bei Bedarf automatisch angelegt)
      var trigger_more_img = '0_userdata.0.notify.telegram.cam.trigger_more_img'; // Datenpunkt zur Abfrage weiterer Bilder (wird bei Bedarf automatisch angelegt)
      var disable = '0_userdata.0.notify.telegram.cam.disable';   // Aktivierung/Deaktivierung des Versands per telegram (wird bei Bedarf automatisch angelegt)
      var interval = '3000';  // Verzögerung der weiteren Aufnahmen in Millisekunden
      var img_path = '/opt/iobroker/temp/cam/';   // Pfad zum lokalen Speicherort der aufgenommenen Bilder. Bilder werden bei jeder Auslösung überschrieben. Pfad muss schon vorhanden sein!
       
       
      // -------------------------------------------
      // Ab hier braucht in der Regel nichts mehr geändert zu werden. Also Finger weg wenn du nicht weißt was du tust. :) 
      // -------------------------------------------
       
      // Datenpunkte anlegen (Kann unter Umständen auskommentiert werden, wenn die Datenpunkte manuell angelegt wurden.)
      //createState( trigger_auto, false, {name: 'Datenpunkt zur autmatischen Auslösung'});
      //createState( trigger_manu, false, {name: 'Datenpunkt zur manuellen Auslösung'});
      //createState( trigger_more_img, false, {name: 'Datenpunkt zur Abfrage weiterer Bilder'});
      //createState( disable, false, {name: 'Aktivierung/Deaktivierung des Versands per telegram'});
       
      // Variablendeklaration und Initialisierung bei Scriptstart
      var stateTrigger_auto = getState(trigger_auto).val;
      var stateTrigger_manu = getState(trigger_manu).val;
      var stateTrigger_more_img = getState(trigger_more_img).val;
      var stateDisable = getState(disable).val;
      var request = require('request');
      var fs      = require('fs');
      var timer;
       
       
      // Funktionen
      // -------------------------------------------
       
      // Funktion Bilder versenden
      function sendImage (pfad) {
          setTimeout(function() {
              sendTo('telegram.1', {
          text:   pfad,
          reply_markup: {
              keyboard: [
                  ['Mehr Bilder', 'Danke']
              ],
              resize_keyboard:   true,
              one_time_keyboard: true
          }
      });
              log('Webcam Bild per telegram verschickt.');
          }, 2000);
      }
       
      // Funktion Bilder speichern
      function saveImage() {
          request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
              fs.writeFile(img_path + 'cam1_1.jpg', body, 'binary', function(err) {
              if (err) {
                  log('Fehler beim Speichern von Bild 1: ' + err, 'warn');
              } else {
                  log('Bild 1 gespeichert.');
                  sendImage(img_path + 'cam1_1.jpg');
              }
            }); 
          });
           
          if (timer) {
              clearTimeout(timer);
              timer = null;
          } 
          timer = setTimeout(function () {
              request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
                  fs.writeFile(img_path + 'cam1_2.jpg', body, 'binary', function(err) {
                  if (err) {
                      log('Fehler beim Speichern von Bild 2: ' + err, 'warn');
                  } else {
                      log('Bild 2 gespeichert.');
              }
            }); 
          });
              }, interval);
          timer = setTimeout(function () {
              request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
                  fs.writeFile(img_path + 'cam1_3.jpg', body, 'binary', function(err) {
                  if (err) {
                      log('Fehler beim Speichern von Bild 3: ' + err, 'warn');
                  } else {
                      log('Bild 3 gespeichert.');        }
            }); 
          });
              }, 2 * interval);
      }
       
       
      // Trigger für die verschiedenen Aktionen
      // -------------------------------------------
       
      // trigger_auto
      on(trigger_auto, function(dp) {
          stateTrigger_auto = dp.newState.val;
          stateDisable = getState(disable).val;
          if (stateTrigger_auto === true && stateDisable === false) {
              saveImage();
              // setState(trigger_auto, false);     // Option zum Zurücksetzen des Triggers. Standardmäßig auskommentiert, da sich der Bewegungsmelder automatisch zurück setzt. Bei Bedarf "//" am Zeilenafang entfernen.
          }
      });
       
      // trigger_more_img
      on(trigger_more_img, function(dp) {
          stateTrigger_more_img = dp.newState.val;
          if (stateTrigger_more_img === true) {
              sendImage(img_path + 'cam1_2.jpg');
              sendImage(img_path + 'cam1_3.jpg');
              setState(trigger_more_img, false);
          }
      });
       
      // trigger_manu
      on(trigger_manu, function(dp) {
          stateTrigger_manu = dp.newState.val;
          if (stateTrigger_manu === true) {
              saveImage();
              setState(trigger_manu, false);
          }
      });
      

      Seit gestern abend bekomme ich keine Bilder mehr, und im Log steht folgender Text:

      javascript.0	23:58:40.864	info	Stopping script script.js.common.Kamera.Kameraskript_neu
      javascript.0	23:58:42.240	info	Start JavaScript script.js.common.Kamera.Kameraskript_neu (Javascript/js)
      javascript.0	23:58:42.247	warn	script.js.common.Kamera.Kameraskript_neu: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
      javascript.0	23:58:42.247	info	script.js.common.Kamera.Kameraskript_neu: registered 3 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
      

      Kann mir bitte jemand aus der Patsche helfen? Ich bin im Programmieren eine totale Null...
      Gerne auch als Blockly, dann kann ich vielleicht geistig etwas besser folgen.

      Ich danke euch schon mal.

      wendy2702W Online
      wendy2702W Online
      wendy2702
      wrote on last edited by
      #2

      @gezi70 bemühe mal die Suche.

      Das gab es hier schon mehrfach.

      Bitte keine Fragen per PN, die gehören ins Forum!

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

      G 1 Reply Last reply
      0
      • wendy2702W wendy2702

        @gezi70 bemühe mal die Suche.

        Das gab es hier schon mehrfach.

        G Offline
        G Offline
        Gezi70
        wrote on last edited by Gezi70
        #3

        @wendy2702 das habe ich schon mehrfach getan. Aber ich kann aus den anderen Skripten nicht auf dieses spezielle ableiten. Deshalb habe ich auch diesen neuen Thread aufgemacht, in der Hoffnung dass mir jemand in diesem Skript die Umstellung vornehmen kann. Wie bereits gesagt, steige ich geistig bei Skripten total aus.
        Wenn ich das Skript durchsehe, finde ich "request" nur in der Zeile 36. Aber wie muss ich das durch was ersetzen? das erschließt sich mir nicht...

        arteckA 1 Reply Last reply
        0
        • G Gezi70

          @wendy2702 das habe ich schon mehrfach getan. Aber ich kann aus den anderen Skripten nicht auf dieses spezielle ableiten. Deshalb habe ich auch diesen neuen Thread aufgemacht, in der Hoffnung dass mir jemand in diesem Skript die Umstellung vornehmen kann. Wie bereits gesagt, steige ich geistig bei Skripten total aus.
          Wenn ich das Skript durchsehe, finde ich "request" nur in der Zeile 36. Aber wie muss ich das durch was ersetzen? das erschließt sich mir nicht...

          arteckA Offline
          arteckA Offline
          arteck
          Developer Most Active
          wrote on last edited by
          #4

          @gezi70 https://forum.iobroker.net/topic/75085/gelöst-umbau-von-request-auf-httpget-für-mehrere-snapshot/6?_=1726200215698

          zigbee hab ich, zwave auch, nuc's genauso und HA auch

          G 1 Reply Last reply
          0
          • arteckA arteck

            @gezi70 https://forum.iobroker.net/topic/75085/gelöst-umbau-von-request-auf-httpget-für-mehrere-snapshot/6?_=1726200215698

            G Offline
            G Offline
            Gezi70
            wrote on last edited by
            #5

            @arteck Vielen Dank für den Link.
            Ich habe jetzt die mir offensichtlichen Zeilen 63/64, 79/80 und 90/91 entsprechend dem Link umgeändert. Aber trotzdem meckert er noch, dass ich auf httpGet umstellen soll. Wo habe ich da noch etwas übersehen?

            // JavaScript zur Verwendung in ioBroker
            //
            // Das Script speichert bei Auslösung (z.B. durch einen Bewegungsmelder) drei Bilder einer Überwachungskamera in frei definierbaren Zeitabständen und versendet das erste Bild per telegram.
            // Über telegram können dann bei Bedarf auch die weiteren zwei Bilder abgefragt werden. Natürlich ist auch eine manuelle Auslösung (ohne Bewegungsmelder) per telegram möglich.
            // Der Automatische Versand der Bilder kann über telegram auch aktiviert/ deaktiviert werden. 
            //
            // Mehr Infos zum Script und dessen Einrichtung hier:  
              
            // Hier können Einstellungen vorgenommen werden:
             
            // Variablen
            var cam_img = 'http://xxxxxxxx/snap.jpg';   // Pfad zum Kamerabild (Im Beispiel eine Foscam)
            var trigger_auto = 'hm-rpc.1.MEQ1797611.1.MOTION';  // Datenpunkt zur autmatischen Auslösung (Status des Bewegungsmelders, Fenster-/ Türkontakt oder der Türklingel)
            var trigger_manu = '0_userdata.0.notify.telegram.cam.trigger_manu'; // Datenpunkt zur manuellen Auslösung (wird bei Bedarf automatisch angelegt)
            var trigger_more_img = '0_userdata.0.notify.telegram.cam.trigger_more_img'; // Datenpunkt zur Abfrage weiterer Bilder (wird bei Bedarf automatisch angelegt)
            var disable = '0_userdata.0.notify.telegram.cam.disable';   // Aktivierung/Deaktivierung des Versands per telegram (wird bei Bedarf automatisch angelegt)
            var interval = '3000';  // Verzögerung der weiteren Aufnahmen in Millisekunden
            var img_path = '/opt/iobroker/temp/cam/';   // Pfad zum lokalen Speicherort der aufgenommenen Bilder. Bilder werden bei jeder Auslösung überschrieben. Pfad muss schon vorhanden sein!
             
             
            // -------------------------------------------
            // Ab hier braucht in der Regel nichts mehr geändert zu werden. Also Finger weg wenn du nicht weißt was du tust. :) 
            // -------------------------------------------
             
            // Datenpunkte anlegen (Kann unter Umständen auskommentiert werden, wenn die Datenpunkte manuell angelegt wurden.)
            //createState( trigger_auto, false, {name: 'Datenpunkt zur autmatischen Auslösung'});
            //createState( trigger_manu, false, {name: 'Datenpunkt zur manuellen Auslösung'});
            //createState( trigger_more_img, false, {name: 'Datenpunkt zur Abfrage weiterer Bilder'});
            //createState( disable, false, {name: 'Aktivierung/Deaktivierung des Versands per telegram'});
             
            // Variablendeklaration und Initialisierung bei Scriptstart
            var stateTrigger_auto = getState(trigger_auto).val;
            var stateTrigger_manu = getState(trigger_manu).val;
            var stateTrigger_more_img = getState(trigger_more_img).val;
            var stateDisable = getState(disable).val;
            var request = require('request');
            var fs      = require('fs');
            var timer;
             
             
            // Funktionen
            // -------------------------------------------
             
            // Funktion Bilder versenden
            function sendImage (pfad) {
                setTimeout(function() {
                    sendTo('telegram.1', {
                text:   pfad,
                reply_markup: {
                    keyboard: [
                        ['Mehr Bilder', 'Danke']
                    ],
                    resize_keyboard:   true,
                    one_time_keyboard: true
                }
            });
                    log('Webcam Bild per telegram verschickt.');
                }, 2000);
            }
             
            // Funktion Bilder speichern
            function saveImage() {
                httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                    fs.writeFile(img_path + 'cam1_1.jpg', response.data, 'binary', function(err) {
                    if (err) {
                        log('Fehler beim Speichern von Bild 1: ' + err, 'warn');
                    } else {
                        log('Bild 1 gespeichert.');
                        sendImage(img_path + 'cam1_1.jpg');
                    }
                  }); 
                });
                 
                if (timer) {
                    clearTimeout(timer);
                    timer = null;
                } 
                timer = setTimeout(function () {
                    httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                        fs.writeFile(img_path + 'cam1_2.jpg', response.data, 'binary', function(err) {
                        if (err) {
                            log('Fehler beim Speichern von Bild 2: ' + err, 'warn');
                        } else {
                            log('Bild 2 gespeichert.');
                    }
                  }); 
                });
                    }, interval);
                timer = setTimeout(function () {
                    httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                        fs.writeFile(img_path + 'cam1_3.jpg', response.data, 'binary', function(err) {
                        if (err) {
                            log('Fehler beim Speichern von Bild 3: ' + err, 'warn');
                        } else {
                            log('Bild 3 gespeichert.');        }
                  }); 
                });
                    }, 2 * interval);
            }
             
             
            // Trigger für die verschiedenen Aktionen
            // -------------------------------------------
             
            // trigger_auto
            on(trigger_auto, function(dp) {
                stateTrigger_auto = dp.newState.val;
                stateDisable = getState(disable).val;
                if (stateTrigger_auto === true && stateDisable === false) {
                    saveImage();
                    // setState(trigger_auto, false);     // Option zum Zurücksetzen des Triggers. Standardmäßig auskommentiert, da sich der Bewegungsmelder automatisch zurück setzt. Bei Bedarf "//" am Zeilenafang entfernen.
                }
            });
             
            // trigger_more_img
            on(trigger_more_img, function(dp) {
                stateTrigger_more_img = dp.newState.val;
                if (stateTrigger_more_img === true) {
                    sendImage(img_path + 'cam1_2.jpg');
                    sendImage(img_path + 'cam1_3.jpg');
                    setState(trigger_more_img, false);
                }
            });
             
            // trigger_manu
            on(trigger_manu, function(dp) {
                stateTrigger_manu = dp.newState.val;
                if (stateTrigger_manu === true) {
                    saveImage();
                    setState(trigger_manu, false);
                }
            });
            
            haus-automatisierungH HomoranH 2 Replies Last reply
            0
            • G Gezi70

              @arteck Vielen Dank für den Link.
              Ich habe jetzt die mir offensichtlichen Zeilen 63/64, 79/80 und 90/91 entsprechend dem Link umgeändert. Aber trotzdem meckert er noch, dass ich auf httpGet umstellen soll. Wo habe ich da noch etwas übersehen?

              // JavaScript zur Verwendung in ioBroker
              //
              // Das Script speichert bei Auslösung (z.B. durch einen Bewegungsmelder) drei Bilder einer Überwachungskamera in frei definierbaren Zeitabständen und versendet das erste Bild per telegram.
              // Über telegram können dann bei Bedarf auch die weiteren zwei Bilder abgefragt werden. Natürlich ist auch eine manuelle Auslösung (ohne Bewegungsmelder) per telegram möglich.
              // Der Automatische Versand der Bilder kann über telegram auch aktiviert/ deaktiviert werden. 
              //
              // Mehr Infos zum Script und dessen Einrichtung hier:  
                
              // Hier können Einstellungen vorgenommen werden:
               
              // Variablen
              var cam_img = 'http://xxxxxxxx/snap.jpg';   // Pfad zum Kamerabild (Im Beispiel eine Foscam)
              var trigger_auto = 'hm-rpc.1.MEQ1797611.1.MOTION';  // Datenpunkt zur autmatischen Auslösung (Status des Bewegungsmelders, Fenster-/ Türkontakt oder der Türklingel)
              var trigger_manu = '0_userdata.0.notify.telegram.cam.trigger_manu'; // Datenpunkt zur manuellen Auslösung (wird bei Bedarf automatisch angelegt)
              var trigger_more_img = '0_userdata.0.notify.telegram.cam.trigger_more_img'; // Datenpunkt zur Abfrage weiterer Bilder (wird bei Bedarf automatisch angelegt)
              var disable = '0_userdata.0.notify.telegram.cam.disable';   // Aktivierung/Deaktivierung des Versands per telegram (wird bei Bedarf automatisch angelegt)
              var interval = '3000';  // Verzögerung der weiteren Aufnahmen in Millisekunden
              var img_path = '/opt/iobroker/temp/cam/';   // Pfad zum lokalen Speicherort der aufgenommenen Bilder. Bilder werden bei jeder Auslösung überschrieben. Pfad muss schon vorhanden sein!
               
               
              // -------------------------------------------
              // Ab hier braucht in der Regel nichts mehr geändert zu werden. Also Finger weg wenn du nicht weißt was du tust. :) 
              // -------------------------------------------
               
              // Datenpunkte anlegen (Kann unter Umständen auskommentiert werden, wenn die Datenpunkte manuell angelegt wurden.)
              //createState( trigger_auto, false, {name: 'Datenpunkt zur autmatischen Auslösung'});
              //createState( trigger_manu, false, {name: 'Datenpunkt zur manuellen Auslösung'});
              //createState( trigger_more_img, false, {name: 'Datenpunkt zur Abfrage weiterer Bilder'});
              //createState( disable, false, {name: 'Aktivierung/Deaktivierung des Versands per telegram'});
               
              // Variablendeklaration und Initialisierung bei Scriptstart
              var stateTrigger_auto = getState(trigger_auto).val;
              var stateTrigger_manu = getState(trigger_manu).val;
              var stateTrigger_more_img = getState(trigger_more_img).val;
              var stateDisable = getState(disable).val;
              var request = require('request');
              var fs      = require('fs');
              var timer;
               
               
              // Funktionen
              // -------------------------------------------
               
              // Funktion Bilder versenden
              function sendImage (pfad) {
                  setTimeout(function() {
                      sendTo('telegram.1', {
                  text:   pfad,
                  reply_markup: {
                      keyboard: [
                          ['Mehr Bilder', 'Danke']
                      ],
                      resize_keyboard:   true,
                      one_time_keyboard: true
                  }
              });
                      log('Webcam Bild per telegram verschickt.');
                  }, 2000);
              }
               
              // Funktion Bilder speichern
              function saveImage() {
                  httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                      fs.writeFile(img_path + 'cam1_1.jpg', response.data, 'binary', function(err) {
                      if (err) {
                          log('Fehler beim Speichern von Bild 1: ' + err, 'warn');
                      } else {
                          log('Bild 1 gespeichert.');
                          sendImage(img_path + 'cam1_1.jpg');
                      }
                    }); 
                  });
                   
                  if (timer) {
                      clearTimeout(timer);
                      timer = null;
                  } 
                  timer = setTimeout(function () {
                      httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                          fs.writeFile(img_path + 'cam1_2.jpg', response.data, 'binary', function(err) {
                          if (err) {
                              log('Fehler beim Speichern von Bild 2: ' + err, 'warn');
                          } else {
                              log('Bild 2 gespeichert.');
                      }
                    }); 
                  });
                      }, interval);
                  timer = setTimeout(function () {
                      httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                          fs.writeFile(img_path + 'cam1_3.jpg', response.data, 'binary', function(err) {
                          if (err) {
                              log('Fehler beim Speichern von Bild 3: ' + err, 'warn');
                          } else {
                              log('Bild 3 gespeichert.');        }
                    }); 
                  });
                      }, 2 * interval);
              }
               
               
              // Trigger für die verschiedenen Aktionen
              // -------------------------------------------
               
              // trigger_auto
              on(trigger_auto, function(dp) {
                  stateTrigger_auto = dp.newState.val;
                  stateDisable = getState(disable).val;
                  if (stateTrigger_auto === true && stateDisable === false) {
                      saveImage();
                      // setState(trigger_auto, false);     // Option zum Zurücksetzen des Triggers. Standardmäßig auskommentiert, da sich der Bewegungsmelder automatisch zurück setzt. Bei Bedarf "//" am Zeilenafang entfernen.
                  }
              });
               
              // trigger_more_img
              on(trigger_more_img, function(dp) {
                  stateTrigger_more_img = dp.newState.val;
                  if (stateTrigger_more_img === true) {
                      sendImage(img_path + 'cam1_2.jpg');
                      sendImage(img_path + 'cam1_3.jpg');
                      setState(trigger_more_img, false);
                  }
              });
               
              // trigger_manu
              on(trigger_manu, function(dp) {
                  stateTrigger_manu = dp.newState.val;
                  if (stateTrigger_manu === true) {
                      saveImage();
                      setState(trigger_manu, false);
                  }
              });
              
              haus-automatisierungH Offline
              haus-automatisierungH Offline
              haus-automatisierung
              Developer Most Active
              wrote on last edited by
              #6

              @gezi70 sagte in Skript läuft seit heute nicht mehr:

              var request = require('request');

              Die Zeile löst das aus.

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

              G 1 Reply Last reply
              0
              • G Gezi70

                @arteck Vielen Dank für den Link.
                Ich habe jetzt die mir offensichtlichen Zeilen 63/64, 79/80 und 90/91 entsprechend dem Link umgeändert. Aber trotzdem meckert er noch, dass ich auf httpGet umstellen soll. Wo habe ich da noch etwas übersehen?

                // JavaScript zur Verwendung in ioBroker
                //
                // Das Script speichert bei Auslösung (z.B. durch einen Bewegungsmelder) drei Bilder einer Überwachungskamera in frei definierbaren Zeitabständen und versendet das erste Bild per telegram.
                // Über telegram können dann bei Bedarf auch die weiteren zwei Bilder abgefragt werden. Natürlich ist auch eine manuelle Auslösung (ohne Bewegungsmelder) per telegram möglich.
                // Der Automatische Versand der Bilder kann über telegram auch aktiviert/ deaktiviert werden. 
                //
                // Mehr Infos zum Script und dessen Einrichtung hier:  
                  
                // Hier können Einstellungen vorgenommen werden:
                 
                // Variablen
                var cam_img = 'http://xxxxxxxx/snap.jpg';   // Pfad zum Kamerabild (Im Beispiel eine Foscam)
                var trigger_auto = 'hm-rpc.1.MEQ1797611.1.MOTION';  // Datenpunkt zur autmatischen Auslösung (Status des Bewegungsmelders, Fenster-/ Türkontakt oder der Türklingel)
                var trigger_manu = '0_userdata.0.notify.telegram.cam.trigger_manu'; // Datenpunkt zur manuellen Auslösung (wird bei Bedarf automatisch angelegt)
                var trigger_more_img = '0_userdata.0.notify.telegram.cam.trigger_more_img'; // Datenpunkt zur Abfrage weiterer Bilder (wird bei Bedarf automatisch angelegt)
                var disable = '0_userdata.0.notify.telegram.cam.disable';   // Aktivierung/Deaktivierung des Versands per telegram (wird bei Bedarf automatisch angelegt)
                var interval = '3000';  // Verzögerung der weiteren Aufnahmen in Millisekunden
                var img_path = '/opt/iobroker/temp/cam/';   // Pfad zum lokalen Speicherort der aufgenommenen Bilder. Bilder werden bei jeder Auslösung überschrieben. Pfad muss schon vorhanden sein!
                 
                 
                // -------------------------------------------
                // Ab hier braucht in der Regel nichts mehr geändert zu werden. Also Finger weg wenn du nicht weißt was du tust. :) 
                // -------------------------------------------
                 
                // Datenpunkte anlegen (Kann unter Umständen auskommentiert werden, wenn die Datenpunkte manuell angelegt wurden.)
                //createState( trigger_auto, false, {name: 'Datenpunkt zur autmatischen Auslösung'});
                //createState( trigger_manu, false, {name: 'Datenpunkt zur manuellen Auslösung'});
                //createState( trigger_more_img, false, {name: 'Datenpunkt zur Abfrage weiterer Bilder'});
                //createState( disable, false, {name: 'Aktivierung/Deaktivierung des Versands per telegram'});
                 
                // Variablendeklaration und Initialisierung bei Scriptstart
                var stateTrigger_auto = getState(trigger_auto).val;
                var stateTrigger_manu = getState(trigger_manu).val;
                var stateTrigger_more_img = getState(trigger_more_img).val;
                var stateDisable = getState(disable).val;
                var request = require('request');
                var fs      = require('fs');
                var timer;
                 
                 
                // Funktionen
                // -------------------------------------------
                 
                // Funktion Bilder versenden
                function sendImage (pfad) {
                    setTimeout(function() {
                        sendTo('telegram.1', {
                    text:   pfad,
                    reply_markup: {
                        keyboard: [
                            ['Mehr Bilder', 'Danke']
                        ],
                        resize_keyboard:   true,
                        one_time_keyboard: true
                    }
                });
                        log('Webcam Bild per telegram verschickt.');
                    }, 2000);
                }
                 
                // Funktion Bilder speichern
                function saveImage() {
                    httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                        fs.writeFile(img_path + 'cam1_1.jpg', response.data, 'binary', function(err) {
                        if (err) {
                            log('Fehler beim Speichern von Bild 1: ' + err, 'warn');
                        } else {
                            log('Bild 1 gespeichert.');
                            sendImage(img_path + 'cam1_1.jpg');
                        }
                      }); 
                    });
                     
                    if (timer) {
                        clearTimeout(timer);
                        timer = null;
                    } 
                    timer = setTimeout(function () {
                        httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                            fs.writeFile(img_path + 'cam1_2.jpg', response.data, 'binary', function(err) {
                            if (err) {
                                log('Fehler beim Speichern von Bild 2: ' + err, 'warn');
                            } else {
                                log('Bild 2 gespeichert.');
                        }
                      }); 
                    });
                        }, interval);
                    timer = setTimeout(function () {
                        httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                            fs.writeFile(img_path + 'cam1_3.jpg', response.data, 'binary', function(err) {
                            if (err) {
                                log('Fehler beim Speichern von Bild 3: ' + err, 'warn');
                            } else {
                                log('Bild 3 gespeichert.');        }
                      }); 
                    });
                        }, 2 * interval);
                }
                 
                 
                // Trigger für die verschiedenen Aktionen
                // -------------------------------------------
                 
                // trigger_auto
                on(trigger_auto, function(dp) {
                    stateTrigger_auto = dp.newState.val;
                    stateDisable = getState(disable).val;
                    if (stateTrigger_auto === true && stateDisable === false) {
                        saveImage();
                        // setState(trigger_auto, false);     // Option zum Zurücksetzen des Triggers. Standardmäßig auskommentiert, da sich der Bewegungsmelder automatisch zurück setzt. Bei Bedarf "//" am Zeilenafang entfernen.
                    }
                });
                 
                // trigger_more_img
                on(trigger_more_img, function(dp) {
                    stateTrigger_more_img = dp.newState.val;
                    if (stateTrigger_more_img === true) {
                        sendImage(img_path + 'cam1_2.jpg');
                        sendImage(img_path + 'cam1_3.jpg');
                        setState(trigger_more_img, false);
                    }
                });
                 
                // trigger_manu
                on(trigger_manu, function(dp) {
                    stateTrigger_manu = dp.newState.val;
                    if (stateTrigger_manu === true) {
                        saveImage();
                        setState(trigger_manu, false);
                    }
                });
                
                HomoranH Do not disturb
                HomoranH Do not disturb
                Homoran
                Global Moderator Administrators
                wrote on last edited by
                #7

                @gezi70 sagte in Skript läuft seit heute nicht mehr:

                var request = require('request');

                zeile 36

                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 -

                1 Reply Last reply
                0
                • haus-automatisierungH haus-automatisierung

                  @gezi70 sagte in Skript läuft seit heute nicht mehr:

                  var request = require('request');

                  Die Zeile löst das aus.

                  G Offline
                  G Offline
                  Gezi70
                  wrote on last edited by Gezi70
                  #8

                  @haus-automatisierung kannst du mir bitte einen Tip geben wie ich das noch ändern muss? Ich sitze hier tatsächlich wie der Ochse vorm neuen Tor...
                  Wenn ich mir dieses (schon geänderte Skript aus dem oben erwähnten Beitrag ansehe, kommt in Zeile 27 / 28 auch dieses var request vor...

                  haus-automatisierungH 1 Reply Last reply
                  0
                  • G Gezi70

                    @haus-automatisierung kannst du mir bitte einen Tip geben wie ich das noch ändern muss? Ich sitze hier tatsächlich wie der Ochse vorm neuen Tor...
                    Wenn ich mir dieses (schon geänderte Skript aus dem oben erwähnten Beitrag ansehe, kommt in Zeile 27 / 28 auch dieses var request vor...

                    haus-automatisierungH Offline
                    haus-automatisierungH Offline
                    haus-automatisierung
                    Developer Most Active
                    wrote on last edited by
                    #9

                    @gezi70 Die Zeile einfach komplett entfernen

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

                    G 1 Reply Last reply
                    0
                    • haus-automatisierungH haus-automatisierung

                      @gezi70 Die Zeile einfach komplett entfernen

                      G Offline
                      G Offline
                      Gezi70
                      wrote on last edited by Gezi70
                      #10

                      @haus-automatisierung ich habe diese Zeile jetzt auskommentiert und die Meldung taucht zumindest nicht mehr auf.
                      Aber jetzt löst gar nichts mehr aus. Bei der jetzt fehlerhaften Version des Ursprungs Skriptes bekam ich zumindest noch ein Bild bei der Auslösung durch den BWM (Homematic Aktor). Allerdings konnte ich keine mehr anfordern. Jetzt wird nichts mehr ausgelöst.

                      javascript.0	11:35:06.090	error	at saveImage (script.js.common.Kamera.Kameraskript_httpGet:64:5)
                      javascript.0	11:35:06.090	error	at Object.<anonymous> (script.js.common.Kamera.Kameraskript_httpGet:111:9)
                      javascript.0	11:35:30.461	error	at saveImage (script.js.common.Kamera.Kameraskript_httpGet:64:5)
                      javascript.0	11:35:30.461	error	at Object.<anonymous> (script.js.common.Kamera.Kameraskript_httpGet:111:9)
                      

                      Das umgeänderte Skript sieht jetzt folgendermaßen aus:

                      // JavaScript zur Verwendung in ioBroker
                      //
                      // Das Script speichert bei Auslösung (z.B. durch einen Bewegungsmelder) drei Bilder einer Überwachungskamera in frei definierbaren Zeitabständen und versendet das erste Bild per telegram.
                      // Über telegram können dann bei Bedarf auch die weiteren zwei Bilder abgefragt werden. Natürlich ist auch eine manuelle Auslösung (ohne Bewegungsmelder) per telegram möglich.
                      // Der Automatische Versand der Bilder kann über telegram auch aktiviert/ deaktiviert werden. 
                      //
                      // Mehr Infos zum Script und dessen Einrichtung hier:  
                        
                      // Hier können Einstellungen vorgenommen werden:
                       
                      // Variablen
                      var cam_img = 'http://xxxxxxxxxxx/snap.jpg';   // Pfad zum Kamerabild (Im Beispiel eine Foscam)
                      var trigger_auto = 'hm-rpc.1.MEQ1797611.1.MOTION';  // Datenpunkt zur autmatischen Auslösung (Status des Bewegungsmelders, Fenster-/ Türkontakt oder der Türklingel)
                      var trigger_manu = '0_userdata.0.notify.telegram.cam.trigger_manu'; // Datenpunkt zur manuellen Auslösung (wird bei Bedarf automatisch angelegt)
                      var trigger_more_img = '0_userdata.0.notify.telegram.cam.trigger_more_img'; // Datenpunkt zur Abfrage weiterer Bilder (wird bei Bedarf automatisch angelegt)
                      var disable = '0_userdata.0.notify.telegram.cam.disable';   // Aktivierung/Deaktivierung des Versands per telegram (wird bei Bedarf automatisch angelegt)
                      var interval = '3000';  // Verzögerung der weiteren Aufnahmen in Millisekunden
                      var img_path = '/opt/iobroker/temp/cam/';   // Pfad zum lokalen Speicherort der aufgenommenen Bilder. Bilder werden bei jeder Auslösung überschrieben. Pfad muss schon vorhanden sein!
                       
                       
                      // -------------------------------------------
                      // Ab hier braucht in der Regel nichts mehr geändert zu werden. Also Finger weg wenn du nicht weißt was du tust. :) 
                      // -------------------------------------------
                       
                      // Datenpunkte anlegen (Kann unter Umständen auskommentiert werden, wenn die Datenpunkte manuell angelegt wurden.)
                      //createState( trigger_auto, false, {name: 'Datenpunkt zur autmatischen Auslösung'});
                      //createState( trigger_manu, false, {name: 'Datenpunkt zur manuellen Auslösung'});
                      //createState( trigger_more_img, false, {name: 'Datenpunkt zur Abfrage weiterer Bilder'});
                      //createState( disable, false, {name: 'Aktivierung/Deaktivierung des Versands per telegram'});
                       
                      // Variablendeklaration und Initialisierung bei Scriptstart
                      var stateTrigger_auto = getState(trigger_auto).val;
                      var stateTrigger_manu = getState(trigger_manu).val;
                      var stateTrigger_more_img = getState(trigger_more_img).val;
                      var stateDisable = getState(disable).val;
                      //var request = require('request');
                      var fs      = require('fs');
                      var timer;
                       
                       
                      // Funktionen
                      // -------------------------------------------
                       
                      // Funktion Bilder versenden
                      function sendImage (pfad) {
                          setTimeout(function() {
                              sendTo('telegram.1', {
                          text:   pfad,
                          reply_markup: {
                              keyboard: [
                                  ['Mehr Bilder', 'Danke']
                              ],
                              resize_keyboard:   true,
                              one_time_keyboard: true
                          }
                      });
                              log('Webcam Bild per telegram verschickt.');
                          }, 2000);
                      }
                       
                      // Funktion Bilder speichern
                      function saveImage() {
                          httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                              fs.writeFile(img_path + 'cam1_1.jpg', response.data, 'binary', function(err) {
                              if (err) {
                                  log('Fehler beim Speichern von Bild 1: ' + err, 'warn');
                              } else {
                                  log('Bild 1 gespeichert.');
                                  sendImage(img_path + 'cam1_1.jpg');
                              }
                            }); 
                          });
                           
                          if (timer) {
                              clearTimeout(timer);
                              timer = null;
                          } 
                          timer = setTimeout(function () {
                              httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                                  fs.writeFile(img_path + 'cam1_2.jpg', response.data, 'binary', function(err) {
                                  if (err) {
                                      log('Fehler beim Speichern von Bild 2: ' + err, 'warn');
                                  } else {
                                      log('Bild 2 gespeichert.');
                              }
                            }); 
                          });
                              }, interval);
                          timer = setTimeout(function () {
                              httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                                  fs.writeFile(img_path + 'cam1_3.jpg', response.data, 'binary', function(err) {
                                  if (err) {
                                      log('Fehler beim Speichern von Bild 3: ' + err, 'warn');
                                  } else {
                                      log('Bild 3 gespeichert.');        }
                            }); 
                          });
                              }, 2 * interval);
                      }
                       
                       
                      // Trigger für die verschiedenen Aktionen
                      // -------------------------------------------
                       
                      // trigger_auto
                      on(trigger_auto, function(dp) {
                          stateTrigger_auto = dp.newState.val;
                          stateDisable = getState(disable).val;
                          if (stateTrigger_auto === true && stateDisable === false) {
                              saveImage();
                              // setState(trigger_auto, false);     // Option zum Zurücksetzen des Triggers. Standardmäßig auskommentiert, da sich der Bewegungsmelder automatisch zurück setzt. Bei Bedarf "//" am Zeilenafang entfernen.
                          }
                      });
                       
                      // trigger_more_img
                      on(trigger_more_img, function(dp) {
                          stateTrigger_more_img = dp.newState.val;
                          if (stateTrigger_more_img === true) {
                              sendImage(img_path + 'cam1_2.jpg');
                              sendImage(img_path + 'cam1_3.jpg');
                              setState(trigger_more_img, false);
                          }
                      });
                       
                      // trigger_manu
                      on(trigger_manu, function(dp) {
                          stateTrigger_manu = dp.newState.val;
                          if (stateTrigger_manu === true) {
                              saveImage();
                              setState(trigger_manu, false);
                          }
                      });
                      
                      haus-automatisierungH 1 Reply Last reply
                      0
                      • G Gezi70

                        @haus-automatisierung ich habe diese Zeile jetzt auskommentiert und die Meldung taucht zumindest nicht mehr auf.
                        Aber jetzt löst gar nichts mehr aus. Bei der jetzt fehlerhaften Version des Ursprungs Skriptes bekam ich zumindest noch ein Bild bei der Auslösung durch den BWM (Homematic Aktor). Allerdings konnte ich keine mehr anfordern. Jetzt wird nichts mehr ausgelöst.

                        javascript.0	11:35:06.090	error	at saveImage (script.js.common.Kamera.Kameraskript_httpGet:64:5)
                        javascript.0	11:35:06.090	error	at Object.<anonymous> (script.js.common.Kamera.Kameraskript_httpGet:111:9)
                        javascript.0	11:35:30.461	error	at saveImage (script.js.common.Kamera.Kameraskript_httpGet:64:5)
                        javascript.0	11:35:30.461	error	at Object.<anonymous> (script.js.common.Kamera.Kameraskript_httpGet:111:9)
                        

                        Das umgeänderte Skript sieht jetzt folgendermaßen aus:

                        // JavaScript zur Verwendung in ioBroker
                        //
                        // Das Script speichert bei Auslösung (z.B. durch einen Bewegungsmelder) drei Bilder einer Überwachungskamera in frei definierbaren Zeitabständen und versendet das erste Bild per telegram.
                        // Über telegram können dann bei Bedarf auch die weiteren zwei Bilder abgefragt werden. Natürlich ist auch eine manuelle Auslösung (ohne Bewegungsmelder) per telegram möglich.
                        // Der Automatische Versand der Bilder kann über telegram auch aktiviert/ deaktiviert werden. 
                        //
                        // Mehr Infos zum Script und dessen Einrichtung hier:  
                          
                        // Hier können Einstellungen vorgenommen werden:
                         
                        // Variablen
                        var cam_img = 'http://xxxxxxxxxxx/snap.jpg';   // Pfad zum Kamerabild (Im Beispiel eine Foscam)
                        var trigger_auto = 'hm-rpc.1.MEQ1797611.1.MOTION';  // Datenpunkt zur autmatischen Auslösung (Status des Bewegungsmelders, Fenster-/ Türkontakt oder der Türklingel)
                        var trigger_manu = '0_userdata.0.notify.telegram.cam.trigger_manu'; // Datenpunkt zur manuellen Auslösung (wird bei Bedarf automatisch angelegt)
                        var trigger_more_img = '0_userdata.0.notify.telegram.cam.trigger_more_img'; // Datenpunkt zur Abfrage weiterer Bilder (wird bei Bedarf automatisch angelegt)
                        var disable = '0_userdata.0.notify.telegram.cam.disable';   // Aktivierung/Deaktivierung des Versands per telegram (wird bei Bedarf automatisch angelegt)
                        var interval = '3000';  // Verzögerung der weiteren Aufnahmen in Millisekunden
                        var img_path = '/opt/iobroker/temp/cam/';   // Pfad zum lokalen Speicherort der aufgenommenen Bilder. Bilder werden bei jeder Auslösung überschrieben. Pfad muss schon vorhanden sein!
                         
                         
                        // -------------------------------------------
                        // Ab hier braucht in der Regel nichts mehr geändert zu werden. Also Finger weg wenn du nicht weißt was du tust. :) 
                        // -------------------------------------------
                         
                        // Datenpunkte anlegen (Kann unter Umständen auskommentiert werden, wenn die Datenpunkte manuell angelegt wurden.)
                        //createState( trigger_auto, false, {name: 'Datenpunkt zur autmatischen Auslösung'});
                        //createState( trigger_manu, false, {name: 'Datenpunkt zur manuellen Auslösung'});
                        //createState( trigger_more_img, false, {name: 'Datenpunkt zur Abfrage weiterer Bilder'});
                        //createState( disable, false, {name: 'Aktivierung/Deaktivierung des Versands per telegram'});
                         
                        // Variablendeklaration und Initialisierung bei Scriptstart
                        var stateTrigger_auto = getState(trigger_auto).val;
                        var stateTrigger_manu = getState(trigger_manu).val;
                        var stateTrigger_more_img = getState(trigger_more_img).val;
                        var stateDisable = getState(disable).val;
                        //var request = require('request');
                        var fs      = require('fs');
                        var timer;
                         
                         
                        // Funktionen
                        // -------------------------------------------
                         
                        // Funktion Bilder versenden
                        function sendImage (pfad) {
                            setTimeout(function() {
                                sendTo('telegram.1', {
                            text:   pfad,
                            reply_markup: {
                                keyboard: [
                                    ['Mehr Bilder', 'Danke']
                                ],
                                resize_keyboard:   true,
                                one_time_keyboard: true
                            }
                        });
                                log('Webcam Bild per telegram verschickt.');
                            }, 2000);
                        }
                         
                        // Funktion Bilder speichern
                        function saveImage() {
                            httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                                fs.writeFile(img_path + 'cam1_1.jpg', response.data, 'binary', function(err) {
                                if (err) {
                                    log('Fehler beim Speichern von Bild 1: ' + err, 'warn');
                                } else {
                                    log('Bild 1 gespeichert.');
                                    sendImage(img_path + 'cam1_1.jpg');
                                }
                              }); 
                            });
                             
                            if (timer) {
                                clearTimeout(timer);
                                timer = null;
                            } 
                            timer = setTimeout(function () {
                                httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                                    fs.writeFile(img_path + 'cam1_2.jpg', response.data, 'binary', function(err) {
                                    if (err) {
                                        log('Fehler beim Speichern von Bild 2: ' + err, 'warn');
                                    } else {
                                        log('Bild 2 gespeichert.');
                                }
                              }); 
                            });
                                }, interval);
                            timer = setTimeout(function () {
                                httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {
                                    fs.writeFile(img_path + 'cam1_3.jpg', response.data, 'binary', function(err) {
                                    if (err) {
                                        log('Fehler beim Speichern von Bild 3: ' + err, 'warn');
                                    } else {
                                        log('Bild 3 gespeichert.');        }
                              }); 
                            });
                                }, 2 * interval);
                        }
                         
                         
                        // Trigger für die verschiedenen Aktionen
                        // -------------------------------------------
                         
                        // trigger_auto
                        on(trigger_auto, function(dp) {
                            stateTrigger_auto = dp.newState.val;
                            stateDisable = getState(disable).val;
                            if (stateTrigger_auto === true && stateDisable === false) {
                                saveImage();
                                // setState(trigger_auto, false);     // Option zum Zurücksetzen des Triggers. Standardmäßig auskommentiert, da sich der Bewegungsmelder automatisch zurück setzt. Bei Bedarf "//" am Zeilenafang entfernen.
                            }
                        });
                         
                        // trigger_more_img
                        on(trigger_more_img, function(dp) {
                            stateTrigger_more_img = dp.newState.val;
                            if (stateTrigger_more_img === true) {
                                sendImage(img_path + 'cam1_2.jpg');
                                sendImage(img_path + 'cam1_3.jpg');
                                setState(trigger_more_img, false);
                            }
                        });
                         
                        // trigger_manu
                        on(trigger_manu, function(dp) {
                            stateTrigger_manu = dp.newState.val;
                            if (stateTrigger_manu === true) {
                                saveImage();
                                setState(trigger_manu, false);
                            }
                        });
                        
                        haus-automatisierungH Offline
                        haus-automatisierungH Offline
                        haus-automatisierung
                        Developer Most Active
                        wrote on last edited by
                        #11

                        @gezi70 sagte in Skript läuft seit heute nicht mehr:

                        httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {

                        Ich hatte das restliche Script gar nicht angeschaut. Der Aufruf von httpGet ist falsch. Siehe Doku.

                        https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httpget

                        httpGet(cam_img, { responseType: 'arraybuffer' }, async (err, response) => {
                        

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

                        G 1 Reply Last reply
                        0
                        • haus-automatisierungH haus-automatisierung

                          @gezi70 sagte in Skript läuft seit heute nicht mehr:

                          httpGet({url: cam_img, encoding: 'binary'}, function (err, response) {

                          Ich hatte das restliche Script gar nicht angeschaut. Der Aufruf von httpGet ist falsch. Siehe Doku.

                          https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httpget

                          httpGet(cam_img, { responseType: 'arraybuffer' }, async (err, response) => {
                          
                          G Offline
                          G Offline
                          Gezi70
                          wrote on last edited by
                          #12

                          @haus-automatisierung ich habe das jetzt entsprechend geändert und es wird das erste Bild geschickt und wohl die beiden anderen auch gespeichert.

                          javascript.0	12:25:50.097	info	script.js.common.Kamera.Kameraskript_httpGet: Bild 1 gespeichert.
                          javascript.0	12:25:52.099	info	script.js.common.Kamera.Kameraskript_httpGet: Webcam Bild per telegram verschickt.
                          javascript.0	12:25:53.073	info	script.js.common.Kamera.Kameraskript_httpGet: Bild 2 gespeichert.
                          javascript.0	12:25:56.323	info	script.js.common.Kamera.Kameraskript_httpGet: Bild 3 gespeichert.
                          

                          Aber bei der Eingabe der Kommandos in Telegram werden diese nicht abgerufen und an mich geschickt. Muss ich da noch etwas umstellen?

                          haus-automatisierungH 2 Replies Last reply
                          0
                          • G Gezi70

                            @haus-automatisierung ich habe das jetzt entsprechend geändert und es wird das erste Bild geschickt und wohl die beiden anderen auch gespeichert.

                            javascript.0	12:25:50.097	info	script.js.common.Kamera.Kameraskript_httpGet: Bild 1 gespeichert.
                            javascript.0	12:25:52.099	info	script.js.common.Kamera.Kameraskript_httpGet: Webcam Bild per telegram verschickt.
                            javascript.0	12:25:53.073	info	script.js.common.Kamera.Kameraskript_httpGet: Bild 2 gespeichert.
                            javascript.0	12:25:56.323	info	script.js.common.Kamera.Kameraskript_httpGet: Bild 3 gespeichert.
                            

                            Aber bei der Eingabe der Kommandos in Telegram werden diese nicht abgerufen und an mich geschickt. Muss ich da noch etwas umstellen?

                            haus-automatisierungH Offline
                            haus-automatisierungH Offline
                            haus-automatisierung
                            Developer Most Active
                            wrote on last edited by
                            #13

                            @gezi70 Du rufst sendImage ja auch nur beim ersten Bild auf.

                            Warum nutzt Du überhaupt JavaScript? Das geht doch mitterweile alles in Blockly...

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

                            1 Reply Last reply
                            0
                            • G Gezi70

                              @haus-automatisierung ich habe das jetzt entsprechend geändert und es wird das erste Bild geschickt und wohl die beiden anderen auch gespeichert.

                              javascript.0	12:25:50.097	info	script.js.common.Kamera.Kameraskript_httpGet: Bild 1 gespeichert.
                              javascript.0	12:25:52.099	info	script.js.common.Kamera.Kameraskript_httpGet: Webcam Bild per telegram verschickt.
                              javascript.0	12:25:53.073	info	script.js.common.Kamera.Kameraskript_httpGet: Bild 2 gespeichert.
                              javascript.0	12:25:56.323	info	script.js.common.Kamera.Kameraskript_httpGet: Bild 3 gespeichert.
                              

                              Aber bei der Eingabe der Kommandos in Telegram werden diese nicht abgerufen und an mich geschickt. Muss ich da noch etwas umstellen?

                              haus-automatisierungH Offline
                              haus-automatisierungH Offline
                              haus-automatisierung
                              Developer Most Active
                              wrote on last edited by
                              #14

                              @gezi70 sagte in Skript läuft seit heute nicht mehr:

                              Aber bei der Eingabe der Kommandos in Telegram werden diese nicht abgerufen und an mich geschickt.

                              Achso Du meinst die Tastatur die da angeboten wird? Die weiteren Bilder werden nach Script ja nur verschickt, wenn 0_userdata.0.notify.telegram.cam.trigger_more_img auf true gesetzt wird.

                              Wie auch immer das passieren soll mit der Tastatur. Da würde ich in Blockly mit dem "Frage-Block" arbeiten. Habe ich extra für solche Themen programmiert 🙂

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

                              G 1 Reply Last reply
                              0
                              • haus-automatisierungH haus-automatisierung

                                @gezi70 sagte in Skript läuft seit heute nicht mehr:

                                Aber bei der Eingabe der Kommandos in Telegram werden diese nicht abgerufen und an mich geschickt.

                                Achso Du meinst die Tastatur die da angeboten wird? Die weiteren Bilder werden nach Script ja nur verschickt, wenn 0_userdata.0.notify.telegram.cam.trigger_more_img auf true gesetzt wird.

                                Wie auch immer das passieren soll mit der Tastatur. Da würde ich in Blockly mit dem "Frage-Block" arbeiten. Habe ich extra für solche Themen programmiert 🙂

                                G Offline
                                G Offline
                                Gezi70
                                wrote on last edited by Gezi70
                                #15

                                @haus-automatisierung weil ich das Skript irgendwo hier gefunden habe und es funktionierte. 😉 Leider hab ich keine Ahnung wie ich das in Blockly umsetzen kann...
                                Die Bilder sind ja schon abgespeichert. Matthias, kannst du mir bitte einen Tipp geben, wie ich mittels Blockly diese aus dem Pfad abrufen kann? Ich meine nur den Befehl zum abrufen des Bildes. Mal sehen ob ich das in ein Blockly basteln kann...

                                haus-automatisierungH 1 Reply Last reply
                                0
                                • G Gezi70

                                  @haus-automatisierung weil ich das Skript irgendwo hier gefunden habe und es funktionierte. 😉 Leider hab ich keine Ahnung wie ich das in Blockly umsetzen kann...
                                  Die Bilder sind ja schon abgespeichert. Matthias, kannst du mir bitte einen Tipp geben, wie ich mittels Blockly diese aus dem Pfad abrufen kann? Ich meine nur den Befehl zum abrufen des Bildes. Mal sehen ob ich das in ein Blockly basteln kann...

                                  haus-automatisierungH Offline
                                  haus-automatisierungH Offline
                                  haus-automatisierung
                                  Developer Most Active
                                  wrote on last edited by haus-automatisierung
                                  #16

                                  @gezi70 Sorry, bin gerade unterwegs und kann das nicht mal eben zeigen. Im ioBroker-Master-Kurs habe ich dazu viele Beispiele gezeigt.

                                  Guck mal das an:

                                  https://forum.iobroker.net/topic/74606/javascript-8-3-0-log-trigger-file-events-und-warnungen

                                  https://forum.iobroker.net/topic/75178/test-adapter-telegram-3-4-1-blockly-bausteine-für-fragen

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

                                  G 1 Reply Last reply
                                  0
                                  • haus-automatisierungH haus-automatisierung

                                    @gezi70 Sorry, bin gerade unterwegs und kann das nicht mal eben zeigen. Im ioBroker-Master-Kurs habe ich dazu viele Beispiele gezeigt.

                                    Guck mal das an:

                                    https://forum.iobroker.net/topic/74606/javascript-8-3-0-log-trigger-file-events-und-warnungen

                                    https://forum.iobroker.net/topic/75178/test-adapter-telegram-3-4-1-blockly-bausteine-für-fragen

                                    G Offline
                                    G Offline
                                    Gezi70
                                    wrote on last edited by
                                    #17

                                    @haus-automatisierung das Skript läuft wieder. Irgendwie waren die dafür angelegten Datenpunkte auf true, hätten aber false sein müssen.

                                    M 1 Reply Last reply
                                    0
                                    • G Gezi70

                                      @haus-automatisierung das Skript läuft wieder. Irgendwie waren die dafür angelegten Datenpunkte auf true, hätten aber false sein müssen.

                                      M Offline
                                      M Offline
                                      Meto304
                                      wrote on last edited by
                                      #18

                                      @gezi70
                                      Hi, ich stehe vor dem gleichen Problem wie du und würde mich freuen, wenn du deinen Code posten könntest.

                                      Danke

                                      HomoranH 1 Reply Last reply
                                      0
                                      • M Meto304

                                        @gezi70
                                        Hi, ich stehe vor dem gleichen Problem wie du und würde mich freuen, wenn du deinen Code posten könntest.

                                        Danke

                                        HomoranH Do not disturb
                                        HomoranH Do not disturb
                                        Homoran
                                        Global Moderator Administrators
                                        wrote on last edited by
                                        #19

                                        @meto304 sagte in Skript läuft seit heute nicht mehr:

                                        ich stehe vor dem gleichen Problem

                                        ganz sicher?
                                        ist es nämlich meistens nicht.

                                        Was genau ist alles gleich?

                                        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 -

                                        M 1 Reply Last reply
                                        0
                                        • HomoranH Homoran

                                          @meto304 sagte in Skript läuft seit heute nicht mehr:

                                          ich stehe vor dem gleichen Problem

                                          ganz sicher?
                                          ist es nämlich meistens nicht.

                                          Was genau ist alles gleich?

                                          M Offline
                                          M Offline
                                          Meto304
                                          wrote on last edited by
                                          #20

                                          @homoran vielen Dank für die Reaktion:

                                          63/64, 79/80 und 90/91 waren identisch..
                                          bei Zeile 36 weiß ich nicht was rein muss

                                          M 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

                                          107

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          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