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. Praktische Anwendungen (Showcase)
  4. Tür Kamera bei Klingel

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Tür Kamera bei Klingel

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
13 Beiträge 7 Kommentatoren 3.9k Aufrufe 12 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.
  • Meister-xM Offline
    Meister-xM Offline
    Meister-x
    schrieb am zuletzt editiert von
    #3

    danke für die Info -werd es gleich mal versuchen.

    Mein grösseres Problem ist das meine Aussen-Kamera per JPG zwar im VIS am PC angezeigt wird aber nicht am Tablet ….

    Vielleicht hat einer eine Lösung ?

    Danke

    1 Antwort Letzte Antwort
    0
    • ChaotC Offline
      ChaotC Offline
      Chaot
      schrieb am zuletzt editiert von
      #4

      Am elegantesten wird es wenn du die Kamera als View in VIS einbindest.

      Bei meinem Klingelscript wird das alles automatisch abgearbeitet.

      var sperre = false;  //verhindert das doppeltes Drücken das Script stoppt
      
      on({id: 'sonoff.0.Eingang.POWER2', change: "any"}, function (obj) {
        if(!sperre) {
          sperre = true;
           sendTo('phantomjs.0', 'send', {
          url:                    'http://192.168.8.95:8765/picture/2/current/?_username=xxxxxx&_signature=xxxxxxx',
          output:                 'picture.png',  // default value
          width:                  800,            // default value
          height:                 600,            // default value
          timeout:                2000,           // default value
          zoom:                   1,              // default value
      
          'clip-top':             0,              // default value
          'clip-left':            0,              // default value
          'clip-width':           800,            // default value is equal to width
          'clip-height':          600,            // default value is equal to height
          'scroll-top':           0,              // default value
          'scroll-left':          0,              // default value
      
          online:                 true           // default value
      }, function (result) {
          if (result.error) {
              console.error(JSON.stringify(result.error));
          }
          if (result.stderr) {
              console.error(result.stderr);
          }
          if (result.stdout) {
              console.log(result.stdout);
          }
          console.log(result.output);
      
      });
      timeout = setTimeout(function () {
      sendTo("email", "send", {
           text: '',
           to: 'xxxxx@gxxx.com',
           subject: 'Klingel',
           attachments:[
              {path: '/opt/iobroker/node_modules/iobroker.phantomjs/picture.png', cid: "file1"},
            ]
      
       }); //Mail mit Bild Empfänger 1
       sendTo("email", "send", {
           text: '',
           to: 'xxxxxxxx@gxxxxx.com',
           subject: 'Klingel',
           attachments:[
              {path: '/opt/iobroker/node_modules/iobroker.phantomjs/picture.png', cid: "file1"},
            ]
      
       }); //Mail mit Bild Empfänger 2
       }, 5000); // Verzögert den Mailversand bis das Bild gespeichert ist
      
           setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Tuer"}'); 
                 // oder
                 //setState("vis.0.control.instance", 'FFFFFFFF');
                 //setState("vis.0.control.data",     'DemoView');
                 //setState("vis.0.control.command",  'changeView'); // muss immer letzte sein
      
                 // Setze View auf Kamerabild
                 setTimeout(function () {
                            setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Info"}');
                 }, 60000); // Nach 60 Sekunden, zeige wieder Start View
          setState("tr-064.0.states.ring"/*ring*/, '**611, 15'); //Klingelt 15 Sekunden auf dem Telefon
          sendTo("pushover", "send", {
             message: 'Klingel',
                file: "/opt/iobroker/node_modules/iobroker.phantomjs/picture.png",   
                sound: ""
          }); //Klingelinfo über Pushover
          timeout = setTimeout(function () {
          setState("alexa2.0.Echo-Devices.G2AxxxxxLLE.Player.volume"/*volume*/, 90, true);
          }, 500); // Setzt Alexa auf 90%
          timeout = setTimeout(function () {
          setState("alexa2.0.Echo-Devices.G2AxxxxxLLE.Commands.speak"/*speak*/, 'Es ist jemand an der Tür');
          }, 1000); // Sprachansage
          timeout = setTimeout(function () {
          setState("alexa2.0.Echo-Devices.G2AxxxxxLLE.Player.volume"/*volume*/, 50, true);
          }, 1500); // Setzt Alexa auf 50%
          setTimeout(function() {
             sperre = false;
          }, 5000); //Zeit für Klingelsperre 1.Zeile
        }  
      });
      

      Beim Drücken des Klingelknopfes passiert folgendes:

      • Es wird ein Snapshot erstellt

      • dieser wird an zwei Mailadressen versendet

      • über die Fritzbox wird das Dect Telefon angerufen (als Klingelsignal)

      • Alexa äußert sich

      • die View am Tablet wird für 60 Sekunden auf das Kamerabild geschaltet.

      Zusätzlich wird der Klingelknopf für 5000 ms gesperrt um zu verhindern das das Script durch schnelles Drücken gestoppt wird.

      Meine Kamera hat nur einen rstp Stream der auch so nicht verwendbar ist. Deshalb läuft nebenher noch Motineye das mir den Stream umsetzt.

      ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

      1 Antwort Letzte Antwort
      0
      • Meister-xM Offline
        Meister-xM Offline
        Meister-x
        schrieb am zuletzt editiert von
        #5

        Dankeschön- ist ja echt toll !

        Für einen Anfänger wie mich sehr umfangreich -werde es versuchen - nur ohne Mail.

        Was für Adapter für Video benötige ich noch ?

        1 Antwort Letzte Antwort
        0
        • T Offline
          T Offline
          tege0
          schrieb am zuletzt editiert von
          #6

          Hallo,

          super Umsetzung, könntest du die auch als Blockly Ausgeben und/oder per Telgramm das Bild verschicken?

          Vielen Dank

          1 Antwort Letzte Antwort
          0
          • ChaotC Offline
            ChaotC Offline
            Chaot
            schrieb am zuletzt editiert von
            #7

            @tege0

            Das Versenden per Telegramm ist sicher möglich. Aber da ich Telegramm nicht nutze kann ich das auf die Schnelle so nicht erklären was da zu machen wäre.

            Als Blockly umsetzen?

            Ich wüsste nicht wie man das konvertieren könnte. Umgekehrt geht, aber von JS nach Blockly :?:

            @Meister-x

            Die Viedoausgabe hängt von deiner Kamera ab.

            In meinem Fall liefert die billige Chinesenkamera nur einen RSTP-Stream den ich direkt im ioBroker nicht nutzen konnte. So musste ich auf dem Server noch motionEye installieren und den Stream umwandeln.

            Manche Kameras liefern auch ein mjpg-Stream. Den kannst du direkt in VIS verwenden. Dann brauchst du auch keinen zusätzlichen Adapter im ioBroker

            Für das Bild benötige ich noch den "phantom.js" Adapter. Aber wenn du das Bild direkt vorliegen hast musst du nur den Speicerort beim Mailversand anpassen und kannst dir den Umweg vermutlich auch sparen.

            Wenn du den Mailversand auch nicht brauchst kannst du den Bereich:

             sperre = true;
                 sendTo('phantomjs.0', 'send', {
                url:                    'http://192.168.8.95:8765/picture/2/current/?_username=xxxxxx&_signature=xxxxxxx',
                output:                 'picture.png',  // default value
                width:                  800,            // default value
                height:                 600,            // default value
                timeout:                2000,           // default value
                zoom:                   1,              // default value
            
                'clip-top':             0,              // default value
                'clip-left':            0,              // default value
                'clip-width':           800,            // default value is equal to width
                'clip-height':          600,            // default value is equal to height
                'scroll-top':           0,              // default value
                'scroll-left':          0,              // default value
            
                online:                 true           // default value
            }, function (result) {
                if (result.error) {
                    console.error(JSON.stringify(result.error));
                }
                if (result.stderr) {
                    console.error(result.stderr);
                }
                if (result.stdout) {
                    console.log(result.stdout);
                }
                console.log(result.output);
            
            });
            timeout = setTimeout(function () {
            sendTo("email", "send", {
                 text: '',
                 to: 'xxxxx@gxxx.com',
                 subject: 'Klingel',
                 attachments:[
                    {path: '/opt/iobroker/node_modules/iobroker.phantomjs/picture.png', cid: "file1"},
                  ]
            
             }); //Mail mit Bild Empfänger 1
             sendTo("email", "send", {
                 text: '',
                 to: 'xxxxxxxx@gxxxxx.com',
                 subject: 'Klingel',
                 attachments:[
                    {path: '/opt/iobroker/node_modules/iobroker.phantomjs/picture.png', cid: "file1"},
                  ]
            
             }); //Mail mit Bild Empfänger 2
             }, 5000); // Verzögert den Mailversand bis das Bild gespeichert ist
            

            weglassen.

            ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

            1 Antwort Letzte Antwort
            0
            • FredFF Online
              FredFF Online
              FredF
              Most Active Forum Testing
              schrieb am zuletzt editiert von
              #8

              @tege0:

              Hallo,

              super Umsetzung, könntest du die auch als Blockly Ausgeben und/oder per Telgramm das Bild verschicken?

              Vielen Dank `

              Ich habe auch eine Instar und nutze diese javascript hier aus dem Forum.

              Der Trigger ist ein Zigbee Kontakt und die Bilder werden nur gesendet wenn niemand zuhause ist (Unifi Adapter).

              // Telegram Bild senden durch Klingel oder Text to command
              var source_url = 'http://192.168.xx.xx:80/tmpfs/auto.jpg?usr=xxx&pwd=xxx', //IP Adresse der Instar mit user und password
                  dest_path = 'G:/Kam/'; //Speicherort für das Bild
              
              var Nachricht = "Es hat an der Haustüre geklingelt"; // Nachricht, welche mit dem Bild gesendet wird
              
              var request = require('request');
              var fs      = require('fs');
              
              //var timer = null;
              var count = 0;
              
              // Bild an telegram schicken
              function sendImage (pfad) {
                      sendTo('telegram.0', pfad);
                      //log('Webcam Bild per telegram verschickt');
                      //sendTo("telegram.0", Nachricht);    // <-- nach der Timeout funktion ausführen
              }
              
              // Bild speichern
              function saveImage() {
                  request.get({url: source_url, encoding: 'binary'}, function (err, response, body) {
                      fs.writeFile(dest_path + 'image2.jpg', body, 'binary', function(err) {
              
                      if (err) {
                          //log('Fehler beim Bild speichern: ' + err, 'warn');
                      } else {
                          //log('Webcam Bild gespeichert');
                          sendImage(dest_path + 'image2.jpg');
                      }
                    }); 
                  });
              }
              
              //Trigger
              // 3 Bilder senden wenn Bewegung erkannt und keiner zu Hause ist
              on({id: "zigbee.0.xxxx.isopen"/*Is open*/, val: true}, function () {
              //    if (getState("javascript.0.Unifi.Anwesenheit.UAP.Chef"/*WLAN Anwesenheit (UAP) - Chef*/).val === false) {
                  count = 3;
                  counter();
                  timer = setInterval(counter, 3000);
                  }
              );
              
              function counter() {
                  saveImage();
                  count--;
                  if(count === 0 && timer) clearInterval(timer);
              }   
              
              1 Antwort Letzte Antwort
              1
              • D Offline
                D Offline
                danw
                schrieb am zuletzt editiert von
                #9

                @Chaot:

                In meinem Fall liefert die billige Chinesenkamera nur einen RSTP-Stream den ich direkt im ioBroker nicht nutzen konnte. So musste ich auf dem Server noch motionEye installieren und den Stream umwandeln. `

                Schau dir mal ONVIF (https://en.wikipedia.org/wiki/ONVIF + https://github.com/futomi/node-onvif) an.

                It's not a Bug, it's a Feature

                1 Antwort Letzte Antwort
                0
                • ChaotC Offline
                  ChaotC Offline
                  Chaot
                  schrieb am zuletzt editiert von
                  #10

                  @danw Aber dann muss ich den Stream doch trotzdem umwandeln um ihn in VIS darzustellen.

                  Deshalb habe ich mich für motionEye entschieden. ONVIF kann zwar mehr, aber das sind überwiegend Funktionen die ich benötige.

                  ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                  1 Antwort Letzte Antwort
                  0
                  • J Offline
                    J Offline
                    jensus11
                    schrieb am zuletzt editiert von jensus11
                    #11

                    Hi,
                    ich versuche mir auch ein Script zurecht zu basteln, klappt leider nicht.
                    Kann da mal jemand rüber schauen?

                    var sperre = false;  //verhindert das doppeltes Drücken das Script stoppt
                    
                    on({id: "hm-rpc.0.OEQ0124924.1.STATE"/*Is open*/, val: true}, function () {
                        if (getState("javascript.0.Unifi.Anwesenheit.UAP.Chef"/*WLAN Anwesenheit (UAP) - Chef*/).val === false) {
                        
                        sendTo('phantomjs.0', 'send', {
                        url:                    'http://192.168.1.XX:XXX/picture/1/current/',
                        output:                 'picture.png',  // default value
                        width:                  800,            // default value
                        height:                 600,            // default value
                        timeout:                2000,           // default value
                        zoom:                   1,              // default value
                    
                        online:                 true           // default value
                    }, function (result) {
                        if (result.error) {
                            console.error(JSON.stringify(result.error));
                        }
                        if (result.stderr) {
                            console.error(result.stderr);
                        }
                        if (result.stdout) {
                            console.log(result.stdout);
                        }
                        console.log(result.output);
                    
                    }),
                    
                    // Bild an telegram schicken
                    function sendImage (pfad) {
                            sendTo('telegram.0', '/opt/iobroker/node_modules/iobroker.phantomjs/test.png');
                            log('Webcam Bild per telegram verschickt');
                            //sendTo("telegram.0", Nachricht);    // <-- nach der Timeout funktion ausführen
                    },
                    
                        sendTo("pushover", "send", {
                           message: 'Klingel',
                              file: "/opt/iobroker/node_modules/iobroker.phantomjs/test.png",   
                              sound: ""
                        }, //Klingelinfo über Pushover
                    
                        setTimeout(function() {
                           sperre = false;
                         }, 5000); //Zeit für Klingelsperre 1.Zeile
                      }  
                    });
                    

                    Zeile 44 meckert er immer.

                    danke.

                    ChaotC 1 Antwort Letzte Antwort
                    0
                    • J jensus11

                      Hi,
                      ich versuche mir auch ein Script zurecht zu basteln, klappt leider nicht.
                      Kann da mal jemand rüber schauen?

                      var sperre = false;  //verhindert das doppeltes Drücken das Script stoppt
                      
                      on({id: "hm-rpc.0.OEQ0124924.1.STATE"/*Is open*/, val: true}, function () {
                          if (getState("javascript.0.Unifi.Anwesenheit.UAP.Chef"/*WLAN Anwesenheit (UAP) - Chef*/).val === false) {
                          
                          sendTo('phantomjs.0', 'send', {
                          url:                    'http://192.168.1.XX:XXX/picture/1/current/',
                          output:                 'picture.png',  // default value
                          width:                  800,            // default value
                          height:                 600,            // default value
                          timeout:                2000,           // default value
                          zoom:                   1,              // default value
                      
                          online:                 true           // default value
                      }, function (result) {
                          if (result.error) {
                              console.error(JSON.stringify(result.error));
                          }
                          if (result.stderr) {
                              console.error(result.stderr);
                          }
                          if (result.stdout) {
                              console.log(result.stdout);
                          }
                          console.log(result.output);
                      
                      }),
                      
                      // Bild an telegram schicken
                      function sendImage (pfad) {
                              sendTo('telegram.0', '/opt/iobroker/node_modules/iobroker.phantomjs/test.png');
                              log('Webcam Bild per telegram verschickt');
                              //sendTo("telegram.0", Nachricht);    // <-- nach der Timeout funktion ausführen
                      },
                      
                          sendTo("pushover", "send", {
                             message: 'Klingel',
                                file: "/opt/iobroker/node_modules/iobroker.phantomjs/test.png",   
                                sound: ""
                          }, //Klingelinfo über Pushover
                      
                          setTimeout(function() {
                             sperre = false;
                           }, 5000); //Zeit für Klingelsperre 1.Zeile
                        }  
                      });
                      

                      Zeile 44 meckert er immer.

                      danke.

                      ChaotC Offline
                      ChaotC Offline
                      Chaot
                      schrieb am zuletzt editiert von
                      #12

                      @jensus11 Was mir auffällt ist, das du für das Speichern des Bildes keinen Timeout gesetzt hast. Also versuchst du zu versenden solange er noch das Bild speichert. Das hat bei mir nicht funktioniert.
                      Ob das jetzt dein Problem ist kann ich aber nicht erkennen.

                      ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                      1 Antwort Letzte Antwort
                      0
                      • J Offline
                        J Offline
                        jensus11
                        schrieb am zuletzt editiert von
                        #13

                        Das kommt wenn ich speichern drücke.
                        Ich denke etwas stimmt mit den Klammern nicht.

                        2.3.2019, 08:21:51.712	[info ]: javascript.0 Stop script script.js.Meldungen_Alarme.Klingel
                        2.3.2019, 08:21:51.715	[info ]: javascript.1 Stop script script.js.Meldungen_Alarme.Klingel
                        2.3.2019, 08:21:51.725	[info ]: javascript.0 Start javascript script.js.Meldungen_Alarme.Klingel
                        2.3.2019, 08:21:51.725	[error]: javascript.0 script.js.Meldungen_Alarme.Klingel compile failed:
                        at script.js.Meldungen_Alarme.Klingel:44
                        
                        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

                        723

                        Online

                        32.6k

                        Benutzer

                        82.0k

                        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