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.
    • juergen2908
      juergen2908 last edited by

      Hallo,

      danke für das tolle Skript. Habe es bei mir für eine Kamera im Einsatz und es funktioniert einwandfrei.

      Ich wollt jetzt meine 2. Kamera einbinden(anderes Modell) Maginon HDC 25.

      Ich schaffe es nicht ein bild zu versenden, es wird zwar die image2.jpg erzeugt, aber die Datei ist nur 1 kb groß und wird von Telegramm nicht versendet.

      Wenn man aber die Datei(über FileZilla) sich lokal rüberkopiert und unbenennt(Dateiendung), also von jpg auf txt, dann sieht man einen XML Code, wo drinnen steht :401 Unauthorized, was für mich soviel heißt, es werden keine Benutzerdaten beim http Aufruf mitübergeben.

      Interessanterweise habe ich diese cam auch in der vis im Einsatz, dort funktioniert der aufruf, ohne das ich nochmal benutzer und Passwort eingeben muss.

      Hier das Skript

      /* Testskript BILDSPEICHERUNG
      
      todo: zum Umbenennen der Datei gilp-rename nutzen
      
      soll bei Aktion Webcam Bild speichern und per telegram senden
      Skript ist normalerweise inaktiv und wird zur per ScriptEnabled ausgelöst
      erstellt 30.03.2016
      16.04.2016 nahc Update des telegram Adapters durch Bluefox ist es jetzt einfacher, Dateien zu senden
      25.05.2016 download Funktion entfernt und durch request ersetzt
      */
      
      var source_url = 'http://USER:PW@192.xxx.xxx.xxx:80/snapshot.jpg?user=user&pwd=xxxxxxxx!', // Kamerabild zB http://kameraserver:9090/image1.jpg
          dest_path = '/opt/ipcam/';
      
      var request = require('request');
      var fs      = require('fs');
      
      // Bild an telegram schicken (immer Dienst 3)
      function sendImage (pfad) {
          setTimeout(function() {
              sendTo('telegram', pfad);
              log('Webcam Bild per telegram verschickt');
          }, 2 * 1000);
      }
      
      // 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');
              }
            }); 
          });
      }
      
      // bei Skriptstart ausführen
      saveImage();
      
      // selbständig Skript wieder anhalten (nach 12s)
      setStateDelayed('javascript.' + instance +  '.scriptEnabled.' + name.slice(10), false, 12*1000);
      
      

      Hat vlt. irgendjemand eine Idee wo mein Fehler sein könnte?

      Bitte um Hilfe!

      LG

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

        Gelöst:

        Nach Stundenlangem Probieren, bin ich draufgekommen, dass der URL nicht gestimmt hat, trotzdem aber am iPad und PC am Browser funktioniert hatte :roll:

        der richtige URL für die Maginon HDC 25 ist:

        http://192.xxx.xxx.xxx/snapshot.jpg?user=username&pwd=passwort
        
        

        LG

        1 Reply Last reply Reply Quote 0
        • R
          ralalla last edited by

          Habe auch noch ein Problem mit dem Bild versenden.

          Bisher lief alles. Jetzt habe ich einen 2. Pi als Host eingerichtet und dort hin Telegramm verschoben.

          Das Bild wird aber immer noch auf dem anderen Pi gesichert, so erhalte ich dann nie ein Bild sondern immer nur die Bezeichnung mit Pfad.

          Wie trage ich im Skript den Speicherort für das Bild ein so das es auf dem 2. Pi also dem Host gesichert wird ?

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

            Grüß Euch,

            Habe jetzt schon wieder das ähnliche Problem bei meiner AvTech Kamera.

            http://192.xxx.xxx.xxx/cgi-bin/guest/Video.cgi?media=JPEG 
            
            

            ….sollte ja ohne Benutzerabfrage funktionieren, es kommt aber immer das Fenster für Benutzer und Kennwort.

            Jemand eine Idee?

            LG

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

              Ich meine irgendwo gelesen zu haben, dass du Benutzer und Kennwort mitgeben musst.

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

                Hi,

                ja, ich weiss aber den Parameter aber nicht :?

                LG

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

                  Und genau aus diesem Grund hab ich nur Foscam gekauft.

                  Hier sind die codes öffentlich.

                  Außerdem wollte ich nur eine Fa. haben.

                  wg. app und einheitlicher Darstellung auf dem Handy (ist aber ein anderes Thema).

                  mfg

                  1 Reply Last reply Reply Quote 0
                  • Mr. Burns
                    Mr. Burns last edited by

                    Hi zusammen,

                    Hab das Script etwas angepasst. Es funktioniert auch super! Aber, es gibt ja immer ein aber, ich bekomme immer einen Fehler im Log.

                    Es funktioniert aber…jemand ne Idee?

                    // Telegram Bild senden
                    
                    var source_url = 'http://192.XXX.XXX.XXX:XX/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=USER&pwd=PASSWORT', //Adresse der IpKamera
                        dest_path = '/opt/ipcam/';
                    var Trigger = "hm-rpc.1.LEQXXXXXXX.1.SENSOR"; //Trigger
                    var Nachricht = "Es hat an der Haustüre geklingelt"; // Nachricht, welche mit dem Bild gesendet wird
                    
                    var request = require('request');
                    var fs      = require('fs');
                    
                    // Bild an telegram schicken
                    function sendImage (pfad) {
                        setTimeout(function() {
                            sendTo('telegram.0', pfad);
                            sendTo("telegram.0", "send", { text: Nachricht});
                            log('Webcam Bild per telegram verschickt');
                        }, 2 * 1000);
                    }
                    
                    // 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
                    on ({id: Trigger, val: true}, function () {
                        saveImage();
                    });
                    

                    1040_bildschirmfoto_2017-02-20_um_20.08.35.png

                    1 Reply Last reply Reply Quote 0
                    • Mr. Burns
                      Mr. Burns last edited by

                      // Telegram Bild senden
                      
                      var source_url = 'http://192.XXX.XXX.XXX:XX/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=USER&pwd=PASSWORT', //Adresse der IpKamera
                          dest_path = '/opt/ipcam/';
                      var Trigger = "hm-rpc.1.LEQXXXXXXX.1.SENSOR"; //Trigger
                      var Nachricht = "Es hat an der Haustüre geklingelt"; // Nachricht, welche mit dem Bild gesendet wird
                      
                      var request = require('request');
                      var fs      = require('fs');
                      
                      // Bild an telegram schicken
                      function sendImage (pfad) {
                          setTimeout(function() {
                              sendTo('telegram.0', pfad);
                              log('Webcam Bild per telegram verschickt');
                          }, 2 * 1000);
                          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
                      on ({id: Trigger, val: true}, function () {
                          saveImage();
                      });
                      
                      1 Reply Last reply Reply Quote 0
                      • juergen2908
                        juergen2908 last edited by

                        Hi,

                        möchte das bild vom ipcam Verzeichnis in einer View anzeigen, wie lautet der Pfad?

                        LG

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

                          Hallo zusammen

                          Ich möchte nur bei Alarm ein Bild per Telegram haben .

                          Ich habe eine Instar 5709hd Kamera

                          Kann man sowas auch per Blocky lösen ?

                          Gesendet von iPad mit Tapatalk Pro

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

                            @juergen2908:

                            Hi,

                            möchte das bild vom ipcam Verzeichnis in einer View anzeigen, wie lautet der Pfad?

                            LG `

                            ich vermute, hier wirst Du es finden…. :

                            dest_path = '/opt/ipcam/';

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

                              Trete jetzt schon eine Weile auf der Stelle.

                              Habe bei var dest = '/surveillance/Ipcam/'; eingegeben.

                              Bekomme aber als Fehlermeldung:

                              20:10:45.760 [info] javascript.0 script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - start

                              20:10:45.761 [info] javascript.0 script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - state = 1: Die Innentür wurde geöffnet

                              20:10:45.835 [warn] javascript.0 script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - Fehler beim Bild: BildVorgarten.jpgspeichern

                              20:10:51.756 [info] javascript.0 script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - Bild versendet/surveillance/Ipcam/BildVorgarten.jpg

                              20:11:15.781 [info] javascript.0 script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - CopyFiles xBildpfad: /surveillance/Ipcam/BildVorgarten.jpg

                              20:11:15.790 [info] javascript.0 script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - CopyFiles err: undefined

                              20:11:15.791 [info] javascript.0 script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - CopyFiles ok

                              Was mache ich verkehrt?

                              In Telegram kommt auch nichts an. Wahrscheinlich weil kein Bild gespeichert wird, oder?

                              Und kann mir bitte jemand erklären, warum das Script in common angelegt werden muss?

                              1 Reply Last reply Reply Quote 0
                              • A
                                AST64 last edited by

                                Ist zwar schon älter, aber ich bräuchte etwas Hilfe.

                                Das Script wurde 1:1 übernommen angepasst und ich habe auch das Problem, dass kein Bild mitgesendet wird.

                                Es wird ein Bild im dest_path gespeichert … definitiv

                                Ich kann auch mit einem einfachen Trigger aus diesem Pfad ein Bild an Telegram versenden.

                                Also die Pfadangaben sowie die Erzeugung des Bildes funktioniert.

                                Aber im vollständigen Script wird nur die Nachricht versendet ... kein Bild.

                                Im LOG steht drin, dass er das Bild an Telegram geschickt hat.

                                04:26:59.718	[info]	javascript.0 Start javascript script.js.common.Skript1
                                04:26:59.719	[info]	javascript.0 script.js.common.Skript1: registered 1 subscription and 0 schedules
                                04:27:06.457	[info]	javascript.0 script.js.common.Skript1: Webcam Bild gespeichert
                                04:27:08.463	[info]	javascript.0 script.js.common.Skript1: Webcam Bild per telegram verschickt
                                

                                Stehe ein bisschen auf dem Schlauch, hab auch schon mit den Timeouts gespielt 😞

                                Vielen Dank schonmal

                                Andreas

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

                                  Zeig doch mal dein Script.

                                  Und das Bild liegt wirklich im Pfad wie im Script angegeben?

                                  Gibt es ein größenlimit ggf?

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    AST64 last edited by

                                    Kommando zurück …

                                    LÄUFT !!!! Prima.

                                    Und jetzt die Erklärung ...

                                    Während der Erstellung des Scripts in der Testphase wurde ein Bild erzeugt. Dieses Bild nutze ich zum überprüfen ... und es war auch ein Bild! ;-).

                                    Dies Bild konnte ich auch verschicken ...

                                    Als ich dann das gesamte Script in die Umgebung geschickt habe, wurde zwar wieder ein "Bild" erzeugt, aber dieses Mal habe ich es nicht mehr geprüft. Der Name war ja der Selbe ...

                                    Aus irgendeinem Grund war dieses Bild aber "Kaputt". Dies führe dazu, dass es auch nicht überschrieben werden konnte. Es wurde somit kein echtes Bild mehr gespeichert, sondern eben immer das kaputte File aufgerufen.

                                    Das passiert, weil das Script beim Speichern nur prüft, ob etwas gespeichert wurde. Habe mich also zu sehr auf das LOG verlassen.

                                    Ich werde eine Routine einbauen, welche beim Speichern immer ein neues File/Bild erzeugt. Damit kann ich dann auch eine History aufbauen.

                                    Vielen Dank für das Script ...

                                    1 Reply Last reply Reply Quote 0
                                    • A
                                      AST64 last edited by

                                      @kmxax

                                      Danke Alex … war schon sehr früh heute morgen, also "gestern". Bin eben erst erwacht!

                                      Ich denke, es wäre eine gute Idee, beim Speichern des Bilds den Namen des Timestamps oder eine fortlaufende Nummer zu vergeben und diese dann beim Versenden wieder aufzurufen. Ich bin schon länger raus aus dem Programmieren, also werde ich mich mal wieder einarbeiten!

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        AST64 last edited by

                                        So::::

                                        Ich lese nun die Zeit aus, formatiere sie und speichere das Bild.

                                        Hier wird nun jedesmal ein neues Bild erzeugt, welches letztlich auf der Platte auch identifiziert werden kann.

                                        Sieht dann so aus: 2017-07-23 15-02-08.jpg

                                        // Telegram Bild senden
                                        
                                        var source_url = 'http://192.168.xxx.xx/snapshot.cgi?user=xxxxx&pwd=xxxxx', //Adresse der IpKamera
                                            dest_path = '/Users/mm-ccu-vu/SnapShots/'; // Bei mir der Pfad in einem Ordner des MacMini
                                        var Trigger = "hm-rpc.1.NEQ1513396.17.STATE"; //Trigger (Testweise mit einem Schalter der Aussenbeleuchtung)
                                        var Nachricht = "Es hat geklingelt"; // Nachricht, zu dem Bild 
                                        
                                        var request = require('request');
                                        var fs      = require('fs');
                                        var picdate = formatDate(new Date(), "JJJJ-MM-TT SS-mm-ss")+'.jpg'; // DAS HABE ICH ERGÄNZT
                                        
                                        // Bild an telegram schicken
                                        function sendImage (pfad) {
                                            setTimeout(function() {
                                                sendTo('telegram', pfad);
                                                log('Webcam Bild per telegram verschickt');
                                            }, 2 * 1000);
                                            sendTo("telegram", 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 + picdate, body, 'binary', function(err) { // Hier wird der erzeugte Namen (picdate) mit dem Pfad zum Speichern übergeben!
                                        
                                                if (err) {
                                                    log('Fehler beim Bild speichern: ' + err, 'warn');
                                                } else {
                                                    log('Webcam Bild gespeichert');
                                                    sendImage(dest_path + picdate); // Hier hole ich mir den erzeugten Namen rein
                                                    //sendImage(dest_path + 'image2.jpg'); // So war es vorher!
                                                }
                                              }); 
                                            });
                                        }
                                        
                                        //Trigger
                                        on ({id: Trigger, val: true}, function () {
                                            saveImage();
                                        });
                                        
                                        

                                        Danke

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

                                          Mal ne Frage.

                                          Mit Telegram 4.2 wurde ja das Senden von sich selbst zerstörenden Bildern eingeführt. Ist euch da schon eine Möglichkeit bekannt, das auch per Bot zu realisieren? Also z.B., dass sich ein Bild nach 6 Stunden selbst löscht?

                                          Gruß,

                                          Thorsten

                                          1 Reply Last reply Reply Quote 0
                                          • A
                                            AST64 last edited by

                                            Werde mich mal damit beschäftigen ;). Kann aber dauern…

                                            Ich hätte aber auch noch mal eine frage in die Community.

                                            Mit meinem angepassten Script, werden ja nun die Screenshots wunderbar gespeichert. Sowohl ein Screenshot mit eigenen Namen (Datum/Uhrzeit) pro Auslösung der Cam in einen Ordner, als auch ein Screenshot mit immer den gleichen Namen (screenshot.jpg) zu Anzeige des letzten Auslösebildes.

                                            Hierdurch entstehen aber extrem viele Schreibprozesse auf der SD Karte.

                                            Nun habe ich schon mehrere Male gelesen, dass die SD Karten das nicht mögen und dadurch kaput gehen können.

                                            Stimmt das? Teure hochwertige Class 10 Karten kommen damit nicht klar?

                                            Wie macht ihr das denn? SSD oder HDD an den Raspi oder eher USB?

                                            Danke Andreas

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            542
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

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