Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Frage] Klingel Bild per Mail versenden / Snapshot von Cam per Email versenden

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Frage] Klingel Bild per Mail versenden / Snapshot von Cam per Email versenden

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

      Hallo !

      Ich möchte gerne, dass meine Foscam FI 9805 W bei auslösen der Klingeltasters mir das Bild per Mail zusendet.

      Geht dies und wenn ja, wie….

      Also der Befehl für den SNAP lautet bei meinem Modell :

      http://192.168.178.51:88/cgi-bin/CGIPro ... XX&pwd=XXX

      meine Klingel hört auf : hm-rpc.0.MEQ0656994.1.PRESS_SHORT

      Email Adresse soll an : bild@klingelbild.de gesendet werden.

      Reichen die Angaben um was zu basteln oder fehlt noch eine Information ?

      Was ich bemerkt habe, das Bild benötigt ca. 5 Sekunden bis es im Browser vollständig angezeigt wird....

      Ich hoffe auf Eure Hilfe 🙂

      CU

      SigiMOE

      1 Reply Last reply Reply Quote 0
      • bahnuhr
        bahnuhr Forum Testing Most Active last edited by

        anbei mal code wo das Bild per telegram verschickt wird; vielleicht hilfts weiter.

        ! ````
        // Haustür: Bild senden wenn es klingelt.
        ! //Variablen
        var request = require('request');
        var fs = require('fs');

        ! function weiter() {
        View_change ('Haustuer', 0);
        setTimeout(function() {
        View_change ('Titel', 0);
        }, 30000);
        ! //Bild senden mit Telegram
        request.get({url: 'http://192.168.xxx.xx:88//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=xxx&pwd=xxx', encoding: 'binary'}, function (err, response, body) {
        fs.writeFile("c:/tmp/snap.jpg", body, 'binary', function(err) {
        if (err) {
        console.error(err);
        } else {
        console.log('Snapshot sent');
        sendTo('telegram.0', {text: 'c:/tmp/snap.jpg', caption: 'Haustür: Es klingelt.'});
        }
        });
        });
        }
        ! /on({id: "hm-rpc.0.LEQ0029078.1.INSTALL_TEST", val: true, ack: true}, function() { // Klingel HM Taster
        log("Auslöser Klingel-IT");
        weiter ();
        });
        /
        ! on({id: "hm-rpc.0.LEQ0029078.1.PRESS_SHORT", val: true, ack: true}, function() { // Klingel HM Taster
        log("Auslöser Klingel-PS");
        weiter ();
        });
        ! on({id: "hm-rpc.0.LEQ0029078.1.PRESS_LONG", val: true, ack: true}, function() { // Klingel HM Taster
        log("Auslöser Klingel-PL");
        weiter ();
        });
        ! on({id: "hm-rpc.0.KEQ1075351.1.STATE", val: true}, function() { // Haustür wird geöffnet
        View_change ('Titel', 2000); // sofort View Titel wieder anzeigen
        });
        ! ````

        mfg

        Dieter

        1 Reply Last reply Reply Quote 0
        • S
          SigiMOE last edited by

          Hi,

          ich bin es nochmal, leider bin ich immer noch kein schritt weiter gekommen…., habe aber auch eine neue CAM

          Ich möchte gerne, dass meine Hikvision DS-2CD2342WD-I bei auslösen der Klingeltasters mir das Bild per Mail zusendet.

          Geht dies und wenn ja, wie....

          Also der Befehl für den SNAP lautet bei meinem Modell :

          http://192.168.178.70/Streaming/channels/101/picture

          meine Klingel hört auf : hm-rpc.0.MEQ0656994.1.PRESS_SHORT

          Email Adresse soll an : bild@klingelbild.de gesendet werden.

          Reichen die Angaben um was zu basteln oder fehlt noch eine Information ?

          Was ich bemerkt habe, das Bild benötigt ca. 5 Sekunden bis es im Browser vollständig angezeigt wird....

          Ich hoffe auf Eure Hilfe 🙂

          CU

          SigiMOE

          1 Reply Last reply Reply Quote 0
          • Dutchman
            Dutchman Developer Most Active Administrators last edited by

            @SigiMOE:

            Hi,

            ich bin es nochmal, leider bin ich immer noch kein schritt weiter gekommen…., habe aber auch eine neue CAM

            Ich möchte gerne, dass meine Hikvision DS-2CD2342WD-I bei auslösen der Klingeltasters mir das Bild per Mail zusendet.

            Geht dies und wenn ja, wie....

            Also der Befehl für den SNAP lautet bei meinem Modell :

            http://192.168.178.70/Streaming/channels/101/picture

            meine Klingel hört auf : hm-rpc.0.MEQ0656994.1.PRESS_SHORT

            Email Adresse soll an : bild@klingelbild.de gesendet werden.

            Reichen die Angaben um was zu basteln oder fehlt noch eine Information ?

            Was ich bemerkt habe, das Bild benötigt ca. 5 Sekunden bis es im Browser vollständig angezeigt wird....

            Ich hoffe auf Eure Hilfe 🙂

            CU

            SigiMOE `

            Schonmal mit blockly dein Glück versucht ?

            Helfen dir lösungs Richtungen oder brauste eine Endlösung?

            Greetz

            Dutch

            Sent from my iPhone using Tapatalk

            1 Reply Last reply Reply Quote 0
            • S
              SigiMOE last edited by

              am liebsten eine Endlösung, aber eine Richtung wäre zumindest hilfreich.

              Nein Blockly habe ich nur ansatzweise mal versucht, aber richtig schlau werde ich leider nicht.

              Bin eben nur ein Kaufmann und Nutzer 😉 , leider kein IT Profi

              1 Reply Last reply Reply Quote 0
              • S
                SigiMOE last edited by

                keiner eine Idee, bzw. Hilfe für mich ?

                1 Reply Last reply Reply Quote 0
                • B
                  BasGo last edited by

                  Mal eben schnell aus dem eigenen Scripte-Fundus zusammengeschoben:

                  function sendMailWithAttachment(subject, msg, attachment) {
                      sendTo("email", {
                          to:         "empfaenger@email.de",
                          subject:    subject,
                          text:       msg,
                          html:       "
                  
                  " + msg + "
                  
                  ![](cid:image1)
                  
                  ",
                          attachments: [{path: attachment, cid: "image1"}]
                      });
                  }
                  
                  function sendPictureByMail(subject, message) {
                  	// URL mit der man das Bild bekommt
                  	var req = 'http://ip-der-kamera:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=BENUTZER&pwd=PASSWORT';
                      request.get({url: req, encoding: 'binary'}, function (err, response, body) {
                          fs.writeFile('/tmp/snap.jpg', body, 'binary', function(err) {
                              if (!err) {
                                  sendMailWithAttachment(subject, message, '/tmp/snap.jpg');
                              }
                          }); 
                      });
                  }
                  
                  subscribe({id: "hhm-rpc.0.MEQ0656994.1.PRESS_SHORT" , val: true}, function (obj) {
                          sendPictureByMail('Es hat geklingelt', 'Hier ein aktuelles Bild:');
                  });
                  
                  

                  Ich hoffe, dass du damit was anfangen kannst? 8-)

                  VG

                  Bastian

                  1 Reply Last reply Reply Quote 0
                  • S
                    SigiMOE last edited by

                    hi,

                    ich bekomme folgenden Fehler :

                    21:06:09.770 [error] javascript.0 script.js.common.Klingel.EmailK compile failed: SyntaxError: Unexpected identifier

                    Skript :

                    ! ````
                    function sendMailWithAttachment(subject, msg, attachment) {
                    sendTo("email", {
                    to: "iobrokertestxxx@gmail.com",
                    subject: subject, hallo
                    text: msg, test
                    html: "
                    ! " + msg + "
                    !
                    ! ",
                    attachments: [{path: attachment, cid: "image1"}]
                    });
                    }
                    ! function sendPictureByMail(subject, message) {
                    // URL mit der man das Bild bekommt
                    var req = 'http://192.168.178.21/Streaming/channels/102/picture';
                    request.get({url: req, encoding: 'binary'}, function (err, response, body) {
                    fs.writeFile('/tmp/snap.jpg', body, 'binary', function(err) {
                    if (!err) {
                    sendMailWithAttachment(subject, message, '/tmp/snap.jpg');
                    }
                    });
                    });
                    }
                    ! subscribe({id: "hhm-rpc.0.MEQ0656994.1.PRESS_SHORT" , val: true}, function (obj) {
                    sendPictureByMail('Es hat geklingelt', 'Hier ein aktuelles Bild:');

                    1 Reply Last reply Reply Quote 0
                    • B
                      BasGo last edited by

                      @SigiMOE:

                      hi,

                      ich bekomme folgenden Fehler :

                      21:06:09.770 [error] javascript.0 script.js.common.Klingel.EmailK compile failed: SyntaxError: Unexpected identifier

                      Skript :

                      function sendMailWithAttachment(to, subject, msg, attachment) {
                          sendTo("email", {
                              to:         to,
                              subject:    subject,
                              text:       msg,
                              html:       "
                      
                      " + msg + "
                      
                      ![](cid:image1)
                      
                      ",
                              attachments: [{path: attachment, cid: "image1"}]
                          });
                      }
                      
                      function sendPictureByMail(uri, to, subject, message) {
                          request.get({url: uri, encoding: 'binary'}, function (err, response, body) {
                              fs.writeFile('/tmp/snap.jpg', body, 'binary', function(err) {
                                  if (!err) {
                                      sendMailWithAttachment(to, subject, message, '/tmp/snap.jpg');
                                  }
                              }); 
                          });
                      }
                      
                      subscribe({id: "hhm-rpc.0.MEQ0656994.1.PRESS_SHORT" , val: true}, function (obj) {
                              sendPictureByMail('http://192.168.178.21/Streaming/channels/102/picture', 'iobrokertestxxx@gmail.com', 'Hallo', 'Test');
                      ```` `  
                      

                      Nimm dein "Hallo" und "Test" wieder raus und setze es unten in den Aufruf der Funktion sendPictureByMail(…) rein. Der Einfachheit halber habe ich die Adresse fürs Bild und die E-Mail-Adresse auch mal in den Aufruf verschoben. Das Schema ist wie folgt:

                      sendPictureByMail('<adresse fürs/bild="">', '<e-mail-empfänger', '<betreff="">', '<text>');</text></e-mail-empfänger',></adresse> 
                      

                      Mehr als diese eine Zeile solltest du nicht ändern müssen.

                      VG

                      Bastian

                      1 Reply Last reply Reply Quote 0
                      • S
                        SigiMOE last edited by

                        hm habe jetzt genau diese Zeilen als Skript :

                        function sendMailWithAttachment(to, subject, msg, attachment) {
                            sendTo("email", {
                                to:         to,
                                subject:    subject,
                                text:       msg,
                                html:       "
                        
                        " + msg + "
                        
                        ![](cid:image1)
                        
                        ",
                                attachments: [{path: attachment, cid: "image1"}]
                            });
                        }
                        
                        function sendPictureByMail(uri, to, subject, message) {
                            request.get({url: uri, encoding: 'binary'}, function (err, response, body) {
                                fs.writeFile('/tmp/snap.jpg', body, 'binary', function(err) {
                                    if (!err) {
                                        sendMailWithAttachment(to, subject, message, '/tmp/snap.jpg');
                                    }
                                }); 
                            });
                        }
                        
                        subscribe({id: "hhm-rpc.0.MEQ0656994.1.PRESS_SHORT" , val: true}, function (obj) {
                                sendPictureByMail('http://192.168.178.21/Streaming/channels/102/picture', 'iobrokertestxxx@gmail.com', 'Hallo', 'Test');
                        

                        und es kommt beim Starten immer noch dieser Fehler :

                        07:41:53.679 [error] javascript.0 script.js.common.Klingel.Email compile failed: SyntaxError: Unexpected end of input

                        was habe ich falsch gemacht ?

                        1 Reply Last reply Reply Quote 0
                        • D
                          dtp last edited by

                          Na, auf jeden Fall fehlt da schon mal ein

                          });
                          

                          am Ende des Skripts.

                          1 Reply Last reply Reply Quote 0
                          • S
                            spaceduck last edited by

                            Ich häng mich hier mal dran da ich auch eine Möglichkeit suche das Kamerabild per Mail zu versenden. Sobald ich das Script aus Post #10 auslöse kommt bei mir folgende Fehlemeldung im Log:

                            javascript.0	2017-07-02 19:21:40.878	error	at Object.change (/volume1/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3045:37)
                            javascript.0	2017-07-02 19:21:40.878	error	at Object.stateChange (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:253:17)
                            javascript.0	2017-07-02 19:21:40.878	error	at checkPatterns (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:581:17)
                            javascript.0	2017-07-02 19:21:40.878	error	at getObjectEnums (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3229:28)
                            javascript.0	2017-07-02 19:21:40.878	error	at getObjectEnums (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3229:28)
                            javascript.0	2017-07-02 19:21:40.878	error	at getObjectEnums (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3210:17)
                            javascript.0	2017-07-02 19:21:40.878	error	at /volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:585:48
                            javascript.0	2017-07-02 19:21:40.878	error	at Object.callback (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1325:48)
                            javascript.0	2017-07-02 19:21:40.878	error	at Object. (script.js.common.Klingel_-_Kamerabild:24:9)
                            javascript.0	2017-07-02 19:21:40.878	error	at sendPictureByMail (script.js.common.Klingel_-_Kamerabild:14:5)
                            javascript.0	2017-07-02 19:21:40.878	error	ReferenceError: request is not defined
                            javascript.0	2017-07-02 19:21:40.877	error	message hm-rpc.0.MEQ0045011.1.PRESS_SHORT [object Object] request is not defined
                            javascript.0	2017-07-02 19:21:40.839	error	at Object.change (/volume1/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3045:37)
                            javascript.0	2017-07-02 19:21:40.839	error	at Object.stateChange (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:253:17)
                            javascript.0	2017-07-02 19:21:40.839	error	at checkPatterns (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:581:17)
                            javascript.0	2017-07-02 19:21:40.839	error	at getObjectEnums (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3229:28)
                            javascript.0	2017-07-02 19:21:40.839	error	at getObjectEnums (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3229:28)
                            javascript.0	2017-07-02 19:21:40.839	error	at getObjectEnums (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3210:17)
                            javascript.0	2017-07-02 19:21:40.839	error	at /volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:585:48
                            javascript.0	2017-07-02 19:21:40.839	error	at Object.callback (/volume1/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1325:48)
                            javascript.0	2017-07-02 19:21:40.839	error	at Object. (script.js.common.Klingel_-_Kamerabild:24:9)
                            javascript.0	2017-07-02 19:21:40.839	error	at sendPictureByMail (script.js.common.Klingel_-_Kamerabild:14:5)
                            javascript.0	2017-07-02 19:21:40.839	error	ReferenceError: request is not defined
                            javascript.0	2017-07-02 19:21:40.838	error	message hm-rpc.0.MEQ0045011.1.PRESS_SHORT [object Object] request is not defined
                            

                            Kann damit jemand was anfangen? Ich steh grad auf dem Schlauch was da falsch laufen könnte.

                            MfG Jan

                            1 Reply Last reply Reply Quote 0
                            • frankjoke
                              frankjoke last edited by

                              Seit nodejs 4.x ist 'request' ein eigenes modul und muss deshalb mit

                              var request = require('request');
                              
                              

                              definiert werden.

                              Ich bin mir nicht sicher ob nicht auch ein Eintrag in der Javascript-Adapter-Konfig notwendig ist.

                              1 Reply Last reply Reply Quote 0
                              • S
                                spaceduck last edited by

                                Danke Dir… Das war's.

                                Zusätzlich musste ich noch fs definieren, dann lief das Script. Bild wird direkt als Anhang versendet.

                                var fs = require('fs');
                                
                                1 Reply Last reply Reply Quote 0
                                • D
                                  Dice19 last edited by

                                  HI,

                                  wollte das für mich übernehmen nur bei mir kommt eine andere Fehlermeldung wenn jemand drauf schauen könnte…..

                                  Danke Euch

                                  Tobias

                                  Error 1 at row 1 col 39 near ^ sendMailWithAttachment(subject, msg, attachment) {
                                      sendTo("email", {
                                  
                                  Parse following code failed:
                                  function sendMailWithAttachment(subject, msg, attachment) {
                                      sendTo("email", {
                                          to:         "XXX@gmail.com",
                                          subject:    subject,
                                          text:       msg,
                                          html:       "
                                  
                                  " + msg + "
                                  
                                  ![](cid:image1)
                                  
                                  ",
                                          attachments: [{path: attachment, cid: "image1"}]
                                      });
                                  }
                                  
                                  function sendPictureByMail(subject, message) {
                                     // URL mit der man das Bild bekommt
                                     var req = 'http://192.168.178.48/tmpfs/auto.jpg?user=XXX&pwd=XXX';
                                      request.get({url: req, encoding: 'binary'}, function (err, response, body) {
                                          fs.writeFile('/tmp/snap.jpg', body, 'binary', function(err) {
                                              if (!err) {
                                                  sendMailWithAttachment(subject, message, '/tmp/snap.jpg');
                                              }
                                          }); 
                                      });
                                  }
                                  
                                  subscribe({id: "HM-Sen-DB-PCB NEQ095XXXX:1.PRESS_SHORT" , val: true}, function (obj) {
                                          sendPictureByMail('Es hat geklingelt', 'Hier ein aktuelles Bild:');
                                  });
                                  

                                  geändert: Code in Code-Tags; Homoran (Mod.)

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    marschmello last edited by

                                    Hallo,

                                    ich habe hierzu eine Nachfrage. Ich benutze die Befehle request.get und fs.writeFile schon erfolgreich in einem Script um meine Kameras bei Bedarf ab zu fragen.

                                    Ich habe nun noch eine weitere Kamera per WLAN hinzugefügt und bekomme leider kein Bild abgespeichert bzw es wird ein jpg abgespeichert, welches aber in der Dateigröße deutlich kleiner ist als alle anderen und auch nicht zu öffnen geht.

                                    Leider meldet der Request auch keine Fehler. Ich bin Ratlos.

                                    Die gleiche Kamera hatte ich vorher im Lan angeschlossen und es war kein Problem ein

                                    Bild zu erzeugen und zu speichern.

                                    Muss man andere Befehle benutzen , wenn die Kamera über WLAN angesprochen wird?

                                    Weiß jemand Rat?? :roll:

                                    Lg Ralf

                                    var url_snapshot3 = "http://192.168.XX.XX/snapshot.cgi?usr=XXXX&pwd=XXXXX";//Auffahrt
                                    
                                    request.get({url: url_snapshot3, encoding: 'binary'}, function (err, response, body)
                                            {
                                             if (body) {
                                                    log('Request - alles ok');
                                                } else {
                                                    log('Request meldet Fehler!', 'error');  
                                                }   
                                    
                                            fs.writeFile("/home/pi/Bilder/AlleKameras/NEU.jpg", body, 'binary', function(err) 
                                                {
                                                if (err) 
                                                    {
                                                    console.error(err);
                                                    log("Fehler Foto 5");
                                                    } 
                                                else     
                                                    {
                                                    console.log('Foto 5 OK');
                                                    }
                                                });
                                    
                                            });
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • C
                                      chrizzel last edited by

                                      @marschmello:

                                      Hallo,

                                      ich habe hierzu eine Nachfrage. Ich benutze die Befehle request.get und fs.writeFile schon erfolgreich in einem Script um meine Kameras bei Bedarf ab zu fragen.

                                      Ich habe nun noch eine weitere Kamera per WLAN hinzugefügt und bekomme leider kein Bild abgespeichert bzw es wird ein jpg abgespeichert, welches aber in der Dateigröße deutlich kleiner ist als alle anderen und auch nicht zu öffnen geht.

                                      Leider meldet der Request auch keine Fehler. Ich bin Ratlos.

                                      Die gleiche Kamera hatte ich vorher im Lan angeschlossen und es war kein Problem ein

                                      Bild zu erzeugen und zu speichern.

                                      Muss man andere Befehle benutzen , wenn die Kamera über WLAN angesprochen wird?

                                      Weiß jemand Rat?? :roll:

                                      Lg Ralf `

                                      Hi Ralf,

                                      ich habe keine Ahnung vom Programmieren, aber dafür ein ähnliches Problem in meiner alten FHEM Installation gehabt. Bei mir waren es die deutlich längeren Laufzeiten über WLAN.

                                      Dadurch wurde zwar eine .jpg Datei erzeugt, aber diese war vor ihrer Weiterverarbeitung quasi nicht zuende geschrieben und daher nicht lesbar.

                                      Ich hatte damals eine Zeitverzögerung eingebaut um das Problem zu lösen.

                                      beste Grüße

                                      Chris

                                      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

                                      892
                                      Online

                                      32.0k
                                      Users

                                      80.4k
                                      Topics

                                      1.3m
                                      Posts

                                      10
                                      17
                                      3227
                                      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