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

      habe die Ausrufezeichen wieder geändert. ("wget –output-document /opt/ipcam/test.jpg http://IP:Port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=User&pwd=Pass")

      Jetzt kommt die Meldung nicht mehr.

      Aber die Datei ist nur 51 KB groß. Mit deiner Wget Zeile funktioniert es garnicht.

      Wenn ich den Link in den Browser gebe (http:// IP:Port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=User&pwd=Pass) hab ich direkt ein Bild und kann es mit Rechtsklick speichern (CGIProxy.fcgi.jpg)

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

        Warum nutzt du nicht request?

        http://forum.iobroker.net/viewtopic.php … 1d1#p26352

        Gruß

        Pix

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

          Hi Pix, der Script funktioniert 100% ig 😄

          Nur wie bekomme ich den Script am einfachsten aktiviert wenn ich klingel ?

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

            Ich bin zwar nicht pix, aber trotzdem:

            Du aktivierst das mit "on". Damit lauscht du auf den Sensor. Schau mal in den ersten paar Beiträgen hier auf Seite 1 des Threads, da sind einige Varianten zu sehen.

            Gesendet von iPhone mit Tapatalk

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

              Hab mir das so gedacht…. quasi mit einem Script einen Script Starten. Aber so wie ich es gemacht habe geht es nicht.

              var idKlingel = "hm-rpc.0.Mxxxxx.1.PRESS_SHORT"/Klingelsensor.PRESS_SHORT/; // Homematic Klingelsensor

              on({id: idKlingel, val: true}, function() // on lauscht auf Klingelsignal

              on Javascript.0.scriptEnabled.Skript3 true) ;

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

                Das musst du anders lösen, wenn du das auf 2 Skripte aufteilen willst. In Skript 1 stellst du einen Datenpunkt zur Verfügung, und in Skript 2 lauscht du per on auf diesen Datenscript auf eine Änderung.

                Aber ich glaube du machst dir das unnötig schwer.

                Packe dein

                var idKlingel = "hm-rpc.0.Mxxxxx.1.PRESS_SHORT"/*Klingelsensor.PRESS_SHORT*/; // Homematic Klingelsensor
                
                on({id: idKlingel, val: true}, function() // on lauscht auf Klingelsignal 
                

                in das Skript 3 von dir (was auch immer das ist).

                Poste doch mal konkreter was genau du gemacht hast und den Inhalt deiner relevanten Skripte, aber nutze bitte die Codetags```
                <code>[code][/code]</code>

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

                  Das ist der Skript der die Webcam Bilder auf Telegram schickt.

                  
                  /* 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://19XXXXXX:838//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=Ipxxxxx&pwd=xxxxx', // 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 + 'image1.jpg', body, 'binary', function(err) {
                  
                          if (err) {
                              log('Fehler beim Bild speichern: ' + err, 'warn');
                          } else {
                              log('Webcam Bild gespeichert');
                              sendImage(dest_path + 'image1.jpg');
                          }
                        }); 
                      });
                  }
                  
                  // bei Skriptstart ausführen
                  saveImage();
                  
                  // selbständig Skript wieder anhalten (nach 12s)
                  setStateDelayed('javascript.' + instance +  '.scriptEnabled.' + name.slice(10), false, 12*1000);
                  
                  

                  Ich möchte einmal die möglichkeit haben per Text-> Kommando die Bilder auf Telegram anzufordern und das bei jedem Klingeln ein Bild geschickt wird.

                  Die Variante per Text-> Kommando funktioniert ohne Probleme. (Der Script wird gestartet…Bild verschickt... Script beendet.

                  Jetzt brauche ich halt eine möglichkeit bei jedem Klingeln den Script zu starten. habe es auch per Szene probiert. Bekomm ich aber auch nicht hin 😢

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

                    Hallo,

                    die Variante mit dem abgeschalteten Skript ist nur ein Weg nach Rom. Normalerweise braucht man keine Skripts zu deaktivieren (es gibt Ausnahmen).

                    Aber jetzt zu deinem Fall:

                    Da das Skript ja deaktiviert ist, kannst du darin natürlich keine Kommandos setzen, die es aufwecken sollen.

                    Du musst ein weiteres Skript anlegen und darin mit einem Trigger den Datenpunkt scriptEnabled vom schlafenden Skript auf true setzen.

                    Nehmen wir an das schlafen Skript heißt Bildspeicherung und liegt in javascript.0.common.

                    Dann

                    var idKlingel = "hm-rpc.0.Mxxxxx.1.PRESS_SHORT"/*Klingelsensor.PRESS_SHORT*/; // Homematic Klingelsensor
                    var idSkript = 'javascript.0.common.Bildspeicherung.scriptEnabled'; // Skript, dass aktiviert werden soll
                    
                    on({id: idKlingel, 
                          val: true}, 
                    function(obj) { // on lauscht auf Klingelsignal, also ist der TRIGGER / AUSLÖSER
                        setState(idSkript, true);
                    }
                    
                    

                    Du musst jetzt nur den Namen und den Pfad ggf. anpassen.

                    Gruß

                    Pix

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

                      Nur mal so nebenbei. Den https://www.doorpi.org/forum/ von motom001 kennt ihr?

                      Ich habe DoorPi auf einem Raspi 3 samt Kamera-Modul im Briefkasten im Einsatz. Damit lasse ich mir dann per Telegram beim Klingeln und beim Einwurf von Post Bilder zusenden. https://www.doorpi.org/forum/thread/63-push-nachrichten-von-doorpi/?pageNo=1 habe ich die Konfiguration von Telegram kurz beschrieben. Mir persönlich gefällt es besser, dass diese Lösung autark von der HomeMatic und dem ioBroker ist, so dass ich auch bei einem Ausfall dieser beiden Systeme weiterhin meine Push-Nachrichten erhalte. Trotzdem ist eine sehr gute Intergration in die HomeMatic möglich.

                      Bis dann,

                      Thorsten

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

                        Hi Pix,

                        es hat geklappt.Danke für deine Mühe.Ich hoffe das Morgenfrüh der Postbote klingelt :lol:

                        Ich musste nur Kleinigkeiten ändern.

                        var idKlingel = "hm-rpc.0.MXXXXX.1.PRESS_SHORT"/*Klingelsensor.PRESS_SHORT*/; // Homematic Klingelsensor
                        var idSkript = 'scriptEnabled.common.Webcambild'; // Skript, dass aktiviert werden soll
                        
                        on({id: idKlingel, 
                              val: true}, 
                        function(obj) { // on lauscht auf Klingelsignal, also ist der TRIGGER / AUSLÖSER
                            setState(idSkript, true);
                        });
                        

                        Danke und einen Schönen Abend noch!

                        1 Reply Last reply Reply Quote 0
                        • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            591
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

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