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. Telegram CAM Script anpassen aber wie ?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.0k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Telegram CAM Script anpassen aber wie ?

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 2 Kommentatoren 310 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.
  • V Offline
    V Offline
    V8Turbo
    schrieb am zuletzt editiert von
    #1

    Hallo, habe irgendwo bei Google mal das CAM Script gefunden und wollte wissen ob man das irgendwie umbauen kann das es NUR dem abfragenden User das Bild sendet und nicht allen die in der BOT Gruppe sind... ?

    // 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://xxxxx/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=xxxxx&password=xxxxx';   // Pfad zum Kamerabild (Im Beispiel eine Foscam)
    var trigger_auto = 'hm-rpc.0.JEQXXXXXXX.1.MOTION';  // Datenpunkt zur autmatischen Auslösung (Status des Bewegungsmelders, Fenster-/ Türkontakt oder der Türklingel)
    var trigger_manu = 'javascript.0.notify.telegram.cam.trigger_manu'; // Datenpunkt zur manuellen Auslösung (wird bei Bedarf automatisch angelegt)
    var trigger_more_img = 'javascript.0.notify.telegram.cam.trigger_more_img'; // Datenpunkt zur Abfrage weiterer Bilder (wird bei Bedarf automatisch angelegt)
    var disable = 'javascript.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.0', {
        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);
        }
    });
    
    crunchipC 1 Antwort Letzte Antwort
    0
    • V V8Turbo

      Hallo, habe irgendwo bei Google mal das CAM Script gefunden und wollte wissen ob man das irgendwie umbauen kann das es NUR dem abfragenden User das Bild sendet und nicht allen die in der BOT Gruppe sind... ?

      // 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://xxxxx/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=xxxxx&password=xxxxx';   // Pfad zum Kamerabild (Im Beispiel eine Foscam)
      var trigger_auto = 'hm-rpc.0.JEQXXXXXXX.1.MOTION';  // Datenpunkt zur autmatischen Auslösung (Status des Bewegungsmelders, Fenster-/ Türkontakt oder der Türklingel)
      var trigger_manu = 'javascript.0.notify.telegram.cam.trigger_manu'; // Datenpunkt zur manuellen Auslösung (wird bei Bedarf automatisch angelegt)
      var trigger_more_img = 'javascript.0.notify.telegram.cam.trigger_more_img'; // Datenpunkt zur Abfrage weiterer Bilder (wird bei Bedarf automatisch angelegt)
      var disable = 'javascript.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.0', {
          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);
          }
      });
      
      crunchipC Abwesend
      crunchipC Abwesend
      crunchip
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #2

      @v8turbo https://github.com/iobroker-community-adapters/ioBroker.telegram/blob/master/docs/en/README.md

      umgestiegen von Proxmox auf Unraid

      V 1 Antwort Letzte Antwort
      0
      • crunchipC crunchip

        @v8turbo https://github.com/iobroker-community-adapters/ioBroker.telegram/blob/master/docs/en/README.md

        V Offline
        V Offline
        V8Turbo
        schrieb am zuletzt editiert von V8Turbo
        #3

        @crunchip
        Meinst du das "sendTo('telegram', {user: 'UserName', text: 'Test message'}," ?? Das geht nicht, habe ich schon probiert... Das Script kennt UserName nicht.


        In dem Telegram Menü Script fragt der irgendwie den username ab (oder??). Wie gesagt habe von den Scripten nicht so viel ahnung...

        var STATEVAL = getState('telegram.0.communicate.request').val,
            TELEUSER = STATEVAL.substring(1,STATEVAL.indexOf("]"));sendTo('telegram.0', {
            user: TELEUSER,
            text:   'Funktion wählen',
            reply_markup: {
                keyboard: [
                    ['Tor zu', 'Tor auf'],
                    ['Tor freigeben' ,'Tor sperren'],
                    ['Kamera']
                ],
                resize_keyboard:   true,
                one_time_keyboard: false
            }
        });
        

        Hatte ich versucht in das Kamera Script einzubauen aber da kommt eine Fehlermeldung das die Werte nicht passen.

        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

        681

        Online

        32.6k

        Benutzer

        82.3k

        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