Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Frage] Bild per telegram verschicken?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Frage] Bild per telegram verschicken?

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

      Würde mich auch interessieren

      Gesendet von meinem HUAWEI CRR-L09 mit Tapatalk

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

        Ich bin auch sehr interessiert.

        Problemstellung:

        Raspi mit Raspicam. Wenn es klingelt, soll mir iobroker ein Bild per Telegram schicken.

        Es besteht ja offenbar die Möglichkeit, per Chatbefehl an Telegram mit einem Bild der Raspicam zu antworten:

        https://www.hackster.io/idreams/control … &offset=54

        Meine Idee jetzt:

        Einen Raspi mit der Raspicam ausrüsten, telegram installieren und den Bot bereit machen auf Befehle zu lauschen (Raspicam Foto aufnehmen und absenden).

        Mit iobroker könnte man dann den Befehl "!photo" als Nachricht an den Bot schicken der wiederum mit dem Foto antwortet.

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

          Es gibt neue Version von Telegram.
          ` > To send photo, just send a path to file instead of text:

          sendTo('telegram', 'absolute/path/file.png')
          
          ```` ` 
          1 Reply Last reply Reply Quote 1
          • S
            Solear last edited by

            Große Klasse, Bluefox!!! 🙂 🙂 Der absolute Knüller!!!

            Mein iobroker läuft im Raspi 3 Jessie. Dort habe ich eine Raspicam angeschlossen.

            Meine Homematic Klingel sendet schon immer per Pushover eine Nachricht, dass es geklingelt hat (gut wenn man im Garten ist, reagiert binnen 1-2 Sekunden!)

            Habe jetzt noch den Befehl angehängt, dass er über exec ein Foto von der Raspicam erzeugen soll (das dauert leider 6 Sekunden), dann 6 Sekunden wartet, und dann das Foto per Telegramm verschickt. Warte ich nicht, verschickt er das vorhandene alte Foto.

            Das heißt, ich bekomme per Pushover die Nachricht, dass es geklingelt hat und 6 Sekunden später das Foto. Nicht schön mit der langen Zeit, aber besser als nichts.

            Gibt es noch Vorschläge, den Code zu verbessern/verschönern? Oder wie man die Cam schneller dazu bekommt, ein Foto zu machen? Evtl. aus einem immer laufenden Stream etwas herausschneiden? Hat da jemand Erfahrung?

            // Grupppe Klingel/Pushover
            
            var idKlingel = "hm-rpc.0.MEQ004xxxx.1.PRESS_SHORT"/*Klingelsensor.PRESS_SHORT*/;   // Homematic Klingelsensor
            
            on({id: idKlingel, val: true}, function() {			// on lauscht auf Klingelsignal	
                    sendTo("pushover", "Es hat geklingelt");        // Sende Pushovernachricht
                    exec ("raspistill -o cam.jpg");                  // Erzeuge Photo von Raspicam unter /opt/cam.jpg
                    sendphoto();                                    // Rufe Funktion sendphoto auf
            });
            
            function sendphoto() {                      // Warteschleife, 6 Sekunden, damit das Bild erzeugt wird
                setTimeout(waittime, 6000);    
            }
            
            function waittime() {                       // Nach der Warteschleife, sende das Bild per Telegram
                sendTo('telegram', "/opt/cam.jpg")  
            }
            
            

            Auf jeden Fall total cool, Danke Bluefox! 😄

            1 Reply Last reply Reply Quote 1
            • P
              pix last edited by

              Hallo,

              ich bedanke mich auch für das Update. Läuft super, vielen Dank!

              Gruß

              Pix

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

                Hi, ich würde auch gerne das beim Klingeln an der Haustür ein Bild von meiner IPcam auf Telegram geschickt wird. Wo muss ich denn die Befehle eintragen ? Telegram habe ich per Iobroker admin installiert und eingerichtet.

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

                  Das funktioniert per Javascript-Adapter. Installiere diesen zuerst. Dann gehst du auf den neuen Reiter "Scripte" und legst ein neues Script an.

                  Mein Code (siehe mein Beitrag zuvor) holt sich ein Bild von der Raspicam. Wie man einen IP-Cam-Livestream kurz mitschneidet, weiß ich ehrlich gesagt nicht.

                  Es geht dann hauptsächlich um die Zeile

                          exec ("raspistill -o cam.jpg")                  // Erzeuge Photo von Raspicam unter /opt/cam.jpg
                  
                  

                  Die musst du entsprechend anpassen. Deine IP Cam könnte zB eine Schnappschussfunktion haben, den man per Webseitenaufruf anstößt, zB
                  > [http://192.168.1.44:88/cgi-bin/CGIProxy … d=Passwort](http://192.168.1.44:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=User&pwd=Passwort) bei der Foscam FI9900EP (lt. http://forum.iobroker.net/viewtopic.php … lit=stream)

                  Dann musst du herausfinden wie lange es dauert vom Schnappschussaufruf bis zum speichern des Bildes (in meinem Code die 6000 für 6 Sekunden durch eine entsprechende Wartezeit ersetzen) und das war es dann.

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

                    Um es mal zu testen habe ich folgendes in den Java Skript eingegeben. Leider bekomme ich keine Nachricht.

                    // Grupppe Klingel/Pushover
                    
                    var idKlingel = "hm-rpc.0.MEQ0277xx7.1.PRESS_SHORT"/*Klingelsensor.PRESS_SHORT*/;   // Homematic Klingelsensor
                    
                    on({id: idKlingel, val: true}, function() {         // on lauscht auf Klingelsignal   
                            sendTo('telegram', 'Es hat geklingelt');        // Sende Pushovernachricht
                    });
                    
                    1 Reply Last reply Reply Quote 0
                    • S
                      Solear last edited by

                      Ist in Telegram ein Bot eingerichtet und hast du vom Handy aus mal nach dem Namen des Unterbots gesucht und ihm etwas geschrieben? Nur so wird er aktiviert..

                      Gesendet von iPad mit Tapatalk

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

                        Den Bot habe ich in meinem Handy eingerichtet (gestartet, Passwort vergeben) er hat mich auch schon begrüßt (Halo Michael) oder muss ich ihn sonst noch aktivieren ?

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

                          Über den Botfather hast du ja sicher nach der Anleitung einen iobroker Bot eingerichtet. Den musst du in der Suche in der Telegram App finden und kurz ansprechen.

                          Ansonsten ist der Teleam Adapter korrekt eingerichtet?

                          Gesendet von iPad mit Tapatalk

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

                            Den Bot habe ich auch gefunden und wenn ich nachrichten schreibe werden sie in iobroker.admin / Objekte /Telegram / communicate/ request … in rot angezeigt

                            Also eingerichtet ist er meiner Meinung. Nur funktioniert der Script nicht beim Klingeln

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

                              ich bin ein Stück weiter. Die Nachrichten kommen auf Telegram an.

                              (Mein Fehler war: ich hatte die Scripte unter Global abgelegt und nicht unter common)

                              jetzt ist das Problem mit den Bildern noch da. Ich bekomme die Bilder nicht gespeichert.

                              ! ````
                              // Grupppe Klingel/Torfoto
                              ! var idKlingel = "hm-rpc.0.MEQ004XXX.1.PRESS_SHORT"/Klingelsensor.PRESS_SHORT/;
                              ! on({id: idKlingel, val: true}, function() {
                              exec ("wget --output-document image.jpg http://IP:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=Cam&pwd=Passwort");

                                  sendTo("telegram", "Es hat geklingelt");        // Sende Pushovernachricht
                                  sendphoto();                                    // Rufe Funktion sendphoto auf
                              

                              });

                              ! function waittime() { // Nach der Warteschleife, sende das Bild per Telegram
                              sendTo('telegram', "image.jpg");
                              }

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

                                @Michmu:

                                ich bin ein Stück weiter. Die Nachrichten kommen auf Telegram an.

                                (Mein Fehler war: ich hatte die Scripte unter Global abgelegt und nicht unter common)

                                jetzt ist das Problem mit den Bildern noch da. Ich bekomme die Bilder nicht gespeichert.

                                ! ````
                                // Grupppe Klingel/Torfoto
                                ! var idKlingel = "hm-rpc.0.MEQ004XXX.1.PRESS_SHORT"/Klingelsensor.PRESS_SHORT/;
                                ! on({id: idKlingel, val: true}, function() {
                                exec ("wget --output-document image.jpg http://IP:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=Cam&pwd=Passwort");

                                    sendTo("telegram", "Es hat geklingelt");        // Sende Pushovernachricht
                                    sendphoto();                                    // Rufe Funktion sendphoto auf
                                

                                });

                                ! function waittime() { // Nach der Warteschleife, sende das Bild per Telegram
                                sendTo('telegram', "image.jpg");
                                }
                                ```` `
                                Es kann sein, dass image.jpg woanders gespeichert wird. Versuch mal absolute Pfade zu verwenden.

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

                                  Also ich hole mir meine Fotos per download von der Kamera:

                                  
                                        var Download = require('download');
                                        var dest = '/images/';
                                        var foto_url0 = "http://camip:port/++image?cameraNum=0&width=1280&height=720&quality=50";
                                        new Download({mode: '777'}).get(foto_url0).dest(dest).rename("cam0.jpg").run()    
                                        setTimeout(function(){ 
                                              sendTo('telegram.0', '/images/cam0.jpg'); 
                                         }, 12000);
                                  
                                  

                                  Gruss

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

                                    Das geht aber nur, wenn man sich nicht an der Cam authentifizieren muss.

                                    Gesendet von iPhone mit Tapatalk

                                    1 Reply Last reply Reply Quote 0
                                    • coyote
                                      coyote Most Active last edited by

                                      Habe gestern den js-controller auf Version 0.8.10 hochgezogen, funktioniert es bei euch noch ein Bild zu Telegram zu senden?

                                      on({time: {hour: 9, minute: 6}}, function() {
                                      sendTo('telegram', '/opt/iobroker/foto/kamerabild.jpeg');
                                      log("Foto verschickt");
                                      });
                                      

                                      Im log steht noch "Foto verschickt" aber es kommt nichts mehr an. Text schicken geht ohne Probleme

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

                                        Bei mir ging und geht es. Neustart gemacht?

                                        Gesendet von iPhone mit Tapatalk

                                        1 Reply Last reply Reply Quote 0
                                        • coyote
                                          coyote Most Active last edited by

                                          Hmm ok.

                                          Javascript Instanz und Telegram Adapter schon neu gestartet. Ich versuche mal noch nen kompletten Neustart.

                                          Edit: Nein, leider kein Erfolg.

                                          Cubie jetzt komplett neu gestartet, bringt leider auch nix. Laut Log sollte es verschickt werden, Pfad und Bild sind auch vorhanden.

                                          Keine Ahnung wieso es plötzlich nicht mehr geht. Jemand noch ne Idee wo/wie ich den Fehler suchen kann?

                                          1 Reply Last reply Reply Quote 0
                                          • T
                                            thomassch last edited by

                                            Hi,

                                            nachdem ich ein wenig mit Cam Bildern und telegramm experimentiert habe, möchte ich Euch das Script gerne mal zur Verfügung stellen.

                                            Damit versende ich über Telegramm im Falle einer Sensorauslösung Einzel oder bei Alarm auch alle Webcam Bilder.

                                            Damit das funktioniert, sollte Eure instar Cam im Webbrowser über folgenden Aufruf ein Bild anzeigen:

                                            http://ip-der-cam/tmpfs/snap.jpg?usr=admin&pwd=instar
                                            

                                            Das Verschicken funktioniert über das speichern eines JPG Files in IOBroker, dazu wird die Funktion "download" verwendet.

                                            Ich habe ein wenig gebraucht rauszufinden, dass es eine extra JavaScript Funktion ist, die erst über das iobroker Terminal vorher manuell installiert werden muss.

                                            (bin halt noch nicht so geübt und Anfänger in Java)

                                            Dazu im IOBorker die Tablasche Terminal aufmachen und das eingeben:

                                            npm install download
                                            

                                            Danach bei Script Einstellungen "download" mit reinnehmen:
                                            1175_screenshot_at_mai_16_14-18-56.png

                                            Anschließend das Script übernehmen und ein wenig an Eure Cams anpassen.

                                            Im Script noch die IPs der Webcam anpassen bzw. beim Versenden aller WebCams dann die Anzahl der Cam Aufrufe anpassen.

                                            // Script: TelegramBild
                                            // Script: Bild und Text per Telegram verschicken, wenn ein Sensor auslöst
                                            // Script: 15.05.2016
                                            // Autor: thomassch
                                            // Grundidee: http://forum.iobroker.net/viewtopic.php?f=21&t=2609&p=24557&hilit=telegram#p24557
                                            
                                            // IPCams: Instar 5907HD / 6012HD
                                            
                                            var logging = true;
                                            var Download = require('download');  // Modul Download muss in Javascript-Einstellungen vorhanden sein
                                            var dest = '/images/';
                                            var foto_urlFlur   = "http://192.168.2.1/tmpfs/snap.jpg?usr=admin&pwd=instar"; // IP Webcam Snapshot Innen Flur
                                            var foto_urlGarage = "http://192.168.2.2/tmpfs/snap.jpg?usr=admin&pwd=instar"; // IP Webcam Snapshot Garage
                                            var foto_urlGarten = "http://192.168.2.3/tmpfs/snap.jpg?usr=admin&pwd=instar"; // IP Webcam Snapshot Kellertür
                                            var foto_urlWohn   = "http://192.168.2.4/tmpfs/snap.jpg?usr=admin&pwd=instar"; // IP Webcam Snapshot Wohnzimmer
                                            var txtaction = "..."; // Telegram Text
                                            
                                            if (logging) log("TelegramBild - Script start", "info");
                                            
                                            // Funktion zum Versenden einer Meldung und Bild über Telegramm
                                            // myObj   : Auslöseobjekt
                                            // myText  : wird im Telegramm als Objekttext (Klartext) angezeigt
                                            // txtTrue : wird bei auslösen = 1 im Telegram angezeigt
                                            // txtFalse: wird bei auslösen = 0 im Telegram angezeigt (hier nicht verwendet)
                                            // txtOrt  : Übergabe der WebCam Adresse
                                            // txtBild : lokaler Name für das Bild dass dann versendet wird
                                            
                                            // EInzelbild verschicken
                                            function xaktionCam(myObj, myText, txtTrue, txtFalse, txtOrt, txtBild)
                                            {
                                                if (logging) log("TelegramBild.xaktionCam - start", "info");
                                                if (myObj.newState.val === true) {
                                                    txtaction = txtTrue;
                                            
                                                    // erst mal Text
                                                    var myTel = myText + " " + txtaction;
                                                    if (logging) log("TelegramBild.xaktionCam - state = 1: " + myTel, "info");
                                                    setState("telegram.0.communicate.response", myTel);
                                            
                                                    // dann Bild verschicken
                                                    new Download({mode: '777'}).get(txtOrt).dest(dest).rename(txtBild+".jpg").run()
                                                    setTimeout(function(){
                                                        sendTo('telegram.0', dest+txtBild+'.jpg');
                                                        if (logging)  log("TelegramBild.xaktionCam - Bild versendet" + dest+txtBild+'.jpg', "info");
                                                    }, 6000); // 6 sek warten bevor man das JPG verschickt
                                                }
                                            
                                            }
                                            
                                            // Alle Cams aufnehmen und verschicken
                                            function xaktionCamAlle(myObj, myText)
                                            {
                                              if (logging) log("xaktionCamAlle - start", "info");
                                              if (myObj.newState.val === true) {
                                            
                                                  // erst mal Text
                                                  var myTel = myText;
                                                  if (logging) log("TelegramBild.xaktionCamAlle - state = 1: " + myTel, "info");
                                                  setState("telegram.0.communicate.response", myTel);
                                            
                                                  // dann Bild verschicken
                                                  new Download({mode: '777'}).get(foto_urlFlur).dest(dest).rename("BildAlarmFlur"+".jpg").run()
                                                  new Download({mode: '777'}).get(foto_urlGarage).dest(dest).rename("BildAlarmGarage"+".jpg").run()
                                                  new Download({mode: '777'}).get(foto_urlGarten).dest(dest).rename("BildAlarmGarten"+".jpg").run()
                                                  new Download({mode: '777'}).get(foto_urlWohn).dest(dest).rename("BildAlarmWohnzimmer"+".jpg").run()
                                            
                                                  setTimeout(
                                                    function()
                                                    {
                                                      sendTo('telegram.0', dest+"BildAlarmFlur"+'.jpg');
                                                      sendTo('telegram.0', dest+"BildAlarmGarage"+'.jpg');
                                                      sendTo('telegram.0', dest+"BildAlarmGarten"+'.jpg');
                                                      sendTo('telegram.0', dest+"BildAlarmWohnzimmer"+'.jpg');
                                                    }, 20000); // 20 sek warten bevor man das JPG verschickt
                                              }
                                            }
                                            
                                            // Auslöser
                                            on({id: "hm-rpc.0.LEQ1469465.1.STATE",          val: true}, function(obj) { xaktionCam(obj, "Die Innentür wurde "       ,"geöffnet",""      , foto_urlFlur  , "BildFlur"); }); // Innentür
                                            on({id: "hm-rpc.0.MEQ0100446.1.MOTION",         val: true}, function(obj) { xaktionCam(obj, "Garten Bewegungsmelder "   ,"ausgelöst",""     , foto_urlGarten, "BildGarten"); }); // Garten
                                            on({id: "hm-rpc.0.MEQ0656769.1.PRESS_SHORT",    val: true}, function(obj) { xaktionCam(obj, "Klingelsensor "            ,"es klingelt",""   , foto_urlGarage, "BildKlingel"); }); // Klingelsensor
                                            on({id: "hm-rpc.0.MEQ0812040.1.STATE",          val: true}, function(obj) { xaktionCam(obj, "Garagentor "               ,"wird geöffnet","" , foto_urlGarage, "BildGaragentor"); }); // Garagentor
                                            on({id: "hm-rpc.0.MEQ1408344.1.STATE",          val: true}, function(obj) { xaktionCam(obj, "Waschraum Tür "            ,"wird geöffnet","" , foto_urlGarage, "BildWaschRaumTuer"); }); // Waschraumtüre
                                            
                                            // AlarmEreignis
                                            on({id: "hm-rega.0.3047",  change:"ne"},                    function(obj) { xaktionCamAlle(obj, "!!! xxxx Alarm","ausgelöst xxxx !!!"); });
                                            on({id: "hm-rega.0.1790",  change:"ne"},                    function(obj) { xaktionCamAlle(obj, "!!! Voralarm","ausgelöst!!!"); });
                                            

                                            Jetzt fehlt mir eigentlich noch folgende Funktion:

                                            1. Ich würde gerne die aktuell gemachten Bilder und auch die letzten 10 Bilder speichern und auf einer Vis Seite anzeigen

                                            2. Eventuell bei Alarm für 10 Minuten, alle 15 sek Bilder erstellen und die ablegen - allerdings dann nicht auf IOBroker, sondern z.B. auf die Dropbox oder lokale NAS bei mir

                                            3. mit dem Telegram auch gleich einen Link auf die Vis Webseite schicken

                                            Vielleicht weiß jemand wie ich mit Javascript das JPG das ich gespeichert habe, gleich mal kopieren kann auf ein lokales Netzlaufwerk ???

                                            Gruss

                                            Thomas

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            427
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            31
                                            93
                                            31218
                                            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