Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Snapshot der Kamera wenn es klingelt?

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Snapshot der Kamera wenn es klingelt?

    This topic has been deleted. Only users with topic management privileges can see it.
    • Tolkin
      Tolkin last edited by

      Hey,
      ich habe mehrere IP-Kameras im Einsatz, an der Haustür ist eine Ctronics Security PoE-Sicherheits-Dome-IP-Kamera 2 installiert. Alle Kameras sind in der Surveillance Station der Synology eingebunden. In der Surveillance Station kann ich über ein Foto-Button ein Snapshot erstellen. Dieser Snapshot landet dann im Surveillance Verzeichnis der Synology. An der Hausklingel habe ich ein HM-Sen-DB-PCB Klingelsensor angeschlossen. Push-Nachrichten über Pushover bekomme ich schon wenn es klingelt, jetzt möchte ich noch ein Foto der Kamera bekommen, wenn jemand geklingelt hat. Kann mir vielleicht jemand Tipps zur Umsetzung geben?

      Vielen Dank

      S 1 Reply Last reply Reply Quote 0
      • S
        saeft_2003 Most Active @Tolkin last edited by

        @Tolkin

        Ich speichere einen snapshot direkt mit dem exec block ab und verschicke danach das Bild per telegram.

        Ist eigentlich recht simple. So lautet der wget Befehl bei mir.

        wget --no-check-certificate --output-document /tmp/dafangEingang.jpg https://root:passwort@192.168.178.62/cgi-bin/currentpic.cgi
        
        
        1 Reply Last reply Reply Quote 0
        • Meistertr
          Meistertr Developer last edited by Meistertr

          const fs = require('fs');
          
          let lastMessage= Date.now();
            
          const URL_vorne = 'http://192.168.178.22/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=kiqjhwoq&user=xxxxx&password=xxxxxx';
          
          createState('Sonderfunktionen.KlingelBild1', "", {
              read: true,
              type: 'string',
              write: true,
              name: "Klingelbild1",
              role: "value" 
          });
          createState('Sonderfunktionen.KlingelBild2', "", {
              read: true,
              type: 'string',
              write: true,
              name: "Klingelbild3",
              role: "value"
          });
          createState('Sonderfunktionen.KlingelBild3', "", {
              read: true,
              type: 'string',
              write: true,
              name: "Klingelbild3", 
              role: "value"
          });
          createState('Sonderfunktionen.Klingeldialog', false, {
              read: true,
              type: 'boolean',
              write: true,
              name: "Klingeldialog", 
              role: "switch"
          });
          saveImage()
          
          
          var KlingelBilder = ["","",""];
          function saveImage() {
              var time = new Date();
           
              // Bildnamen erzeugen
              var Name = 'Eing_'+time.getFullYear()+time.getMonth()+time.getDate()+'_'+time.getHours()+time.getMinutes()+time.getSeconds()+'.jpg';
              request.get({url: URL_vorne, encoding: 'binary'}, function (err, response, body) {
                  if(err) {
                      log('Beim holen des Bildes ist ein Fehler aufgetreten!');
                  } else
                  {   fs.writeFile('/tmp/tmp.jpg', body, 'binary', function(err) {   
                          if (err) {
                              log('Fehler beim Speichern von Bild /tmp/tmp.jpg   Fehler:' + err, 'warn');
                           } else {
                              var data = fs.readFileSync('/tmp/tmp.jpg');
                              writeFile('vis.0', 'KameraBilder/' + Name, data, function (error) {
                                  if(error) {
                                      log('Fehler beim Speichern von Bild KameraBilder/' + Name +'   Fehler:' + err, 'warn');
                                  } else {
                                      // Bilder durchrotieren. An position 0 steht immer das letzte Bild
                                      log('Bild wurde als KameraBilder/' + Name +' gespeichert');
                                      KlingelBilder[2] = KlingelBilder[1];
                                      KlingelBilder[1] = KlingelBilder[0];
                                      KlingelBilder[0] = '/vis.0/KameraBilder/' + Name;
                                      setState('javascript.0.Sonderfunktionen.KlingelBild1', KlingelBilder[0]);
                                      setState('javascript.0.Sonderfunktionen.KlingelBild2', KlingelBilder[1]);
                                      setState('javascript.0.Sonderfunktionen.KlingelBild3', KlingelBilder[2]);
                                      
                                      openDialog()
          
                                      //send Bild to Telegramm
                                      sendTo('telegram.0', {text: 'opt/iobroker/iobroker-data/files/vis.0/KameraBilder/' + Name, caption: 'Es hat Geklingelt'});
                                  }
          
                              });
                           }
                      });
                  }
              });
           
          }
          
          function ring(){
          
              if((Date.now() - lastMessage) >= 10000 ) saveImage();
           
              lastMessage= Date.now();
          }
          //Klingel
          subscribe({
              id: 'hm-rpc.2.001FDA499xxxxx.1.PRESS_LONG'
          }, function (obj) {
          if(obj.newState.val) ring();
          });
           
          subscribe({
              id: 'hm-rpc.2.001FDA499xxxx.1.PRESS_SHORT'
          }, function (obj) {
          if(obj.newState.val)ring();
          });
          
          

          so sieht meine Lösung aus, vorteil: die Bilder kann man dann auch in vis darstellen

          haselchen 1 Reply Last reply Reply Quote -1
          • haselchen
            haselchen Most Active @Meistertr last edited by haselchen

            @Tolkin

            Geht auch kürzer mit Bild auf Telegram 🙂
            Kamera ist mit Motion Eye eingebunden. http.... ist der Snapshot Pfad.

            var timeout, timeout1, timeout2;
            var fs = require('fs');
            
            on({id: 'hm-rpc.1.XXXXX.1.PRESS_SHORT', change: "any"}, function (obj) {
             var value = obj.state.val;
             var oldValue = obj.oldState.val;
             timeout = setTimeout(function () {
               exec('wget --output-document /opt/iobroker/iobroker-data/tmp/alarm.jpg \'http://192.XXX.XXX.XXX:XXXX/picture/1/current/\'');
              }, 800);
             timeout1 = setTimeout(function () {
                const bild = fs.readFileSync('/opt/iobroker/iobroker-data/tmp/alarm.jpg');
                writeFile('vis.0','alarm.jpg', bild);
              }, 2000);
             timeout2 = setTimeout(function () {
               sendTo("telegram.1", "send", {
                   text: '/opt/iobroker/iobroker-data/files/vis.0/alarm.jpg'
               });
             }, 5000);
             // ab hier so oft wiederholen wie man es möchte
            });
            
            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate
            FAQ Cloud / IOT
            HowTo: Node.js-Update
            HowTo: Backup/Restore
            Downloads
            BLOG

            466
            Online

            32.1k
            Users

            80.7k
            Topics

            1.3m
            Posts

            iobroker ip-kamera iobrocker surveillance station kamera synology
            4
            4
            1205
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo