Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Frage] Bild per telegram verschicken?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

[Frage] Bild per telegram verschicken?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
93 Beiträge 31 Kommentatoren 33.8k Aufrufe 8 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • P Offline
    P Offline
    pix
    schrieb am zuletzt editiert von
    #25

    Auch hier kurz der Hinweis:

    seit dem letzten großen Javascript-Update gibt es möglicherweise Probleme mit der Download Lib. Deshalb lieber request nutzen, wie hier beschrieben:

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

    Gruß

    Pix

    ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

    1 Antwort Letzte Antwort
    0
    • T Offline
      T Offline
      thomassch
      schrieb am zuletzt editiert von
      #26

      @pix:

      Auch hier kurz der Hinweis:

      seit dem letzten großen Javascript-Update gibt es möglicherweise Probleme mit der Download Lib. Deshalb lieber request nutzen, wie hier beschrieben:

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

      Gruß

      Pix `

      Danke Pix, habe es mit Request angepasst, funktioniert…

      ******* iobroker auf Intel PC, Raspberry PI4 + Homematic CCU *******

      1 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        Michmu
        schrieb am zuletzt editiert von
        #27

        Kann jemand mir vieleicht Helfen den Skript zum verschicken des Webcam Bildes Per Telegram zu erstellen ? Ich trete auf der Stelle.

        1 Antwort Letzte Antwort
        0
        • S Offline
          S Offline
          Solear
          schrieb am zuletzt editiert von
          #28

          @Michmu:

          Kann jemand mir vieleicht Helfen den Skript zum verschicken des Webcam Bildes Per Telegram zu erstellen ? Ich trete auf der Stelle. `

          Woran scheitert es genau, und was hast du gemacht, wie sieht dein Script aus bzw. deine Versuche?

          Telegram ist eingerichtet, mit Adapter, botfather eingerichtet und Bot erzeugt und funktioniert an sich (andere iobroker Meldungen kommen an?)

          Bei mir läuft es so vom Script:

          // ###################################################
          // Webcamfoto schicken
          
          on("telegram.0.communicate.request", function (obj) {
             if  (obj.newState.val == "[Henrik]torfoto" || obj.newState.val == "[Henrik]/torfoto") {      
                 getfoto(); 
                 setState("telegram.0.communicate.request","leer");
             }
          });
          
          function getfoto() {
                  exec ("wget --user=xxxxxx --password=xxxxxx -N -P /home/henrik/iobroker/cache http://192.168.1.148/dms?nowprofileid=1.jpg");
                  sendphoto();                                    // Rufe Funktion sendphoto auf
          
                  setState("telegram.0.communicate.request","leer");
          
                  sendTo('telegram', 'Was noch?' +
                             '\n' + '/haus' +
                             '\n' + '/haupthahn' +
                             '\n' + '/heckehatti' +
                             '\n' + '/reboot');
          
          }
          
          function sendphoto() {                      // Warteschleife, 3 Sekunden, damit das Bild erzeugt wird
              setTimeout(waittime, 3000);    
          }
          
          function waittime() {                       // Nach der Warteschleife, sende das Bild per Telegram
              sendTo('telegram', "/home/henrik/iobroker/cache/dms?nowprofileid=1.jpg");  
          }
          
          

          iobroker als LXC unter Proxmox

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            Michmu
            schrieb am zuletzt editiert von
            #29

            "Es hat geklingelt" wird zu Telegram geschickt, Eine test.jpg wird angelegt ( aber nur 51 kb groß) also kein Bild und sonst nichts

            // Grupppe Klingel/Torfoto
            
            var idKlingel = "hm-rpc.0.MEQ004xxxxx.1.PRESS_SHORT"/*Klingelsensor.PRESS_SHORT*/;   
            
            on({id: idKlingel, val: true}, function() {
                    exec ("wget --output-document /opt/ipcam/test.jpg http://IP:Port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=User&pwd=Pass");
            
                    sendTo("telegram", "Es hat geklingelt");        // Sende Pushovernachricht
            
            });
            
            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/ipcam/test.jpg");  
            }
            
            1 Antwort Letzte Antwort
            0
            • M Offline
              M Offline
              Michmu
              schrieb am zuletzt editiert von
              #30

              Wenn ich den (funktionierenden Befehl unter Linux) einfüge : wget –output-document /opt/ipcam/test.jpg "http://IP:Port//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=Cam&pwd=Pass"

              Zeigt er folgendes an:
              976_unbenaknnt.png

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                Solear
                schrieb am zuletzt editiert von
                #31

                Vergleiche mal deine wget Zeile mit meiner, da sind noch Unterschiede, zB bei den Anführungszeichen.

                iobroker als LXC unter Proxmox

                1 Antwort Letzte Antwort
                0
                • M Offline
                  M Offline
                  Michmu
                  schrieb am zuletzt editiert von
                  #32

                  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 Antwort Letzte Antwort
                  0
                  • P Offline
                    P Offline
                    pix
                    schrieb am zuletzt editiert von
                    #33

                    Warum nutzt du nicht request?

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

                    Gruß

                    Pix

                    ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                    1 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      Michmu
                      schrieb am zuletzt editiert von
                      #34

                      Hi Pix, der Script funktioniert 100% ig 😄

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

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        Solear
                        schrieb am zuletzt editiert von
                        #35

                        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

                        iobroker als LXC unter Proxmox

                        1 Antwort Letzte Antwort
                        0
                        • M Offline
                          M Offline
                          Michmu
                          schrieb am zuletzt editiert von
                          #36

                          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 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            Solear
                            schrieb am zuletzt editiert von
                            #37

                            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>

                            iobroker als LXC unter Proxmox

                            1 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              Michmu
                              schrieb am zuletzt editiert von
                              #38

                              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 Antwort Letzte Antwort
                              0
                              • P Offline
                                P Offline
                                pix
                                schrieb am zuletzt editiert von
                                #39

                                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

                                ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                                1 Antwort Letzte Antwort
                                0
                                • D Offline
                                  D Offline
                                  dtp
                                  schrieb am zuletzt editiert von
                                  #40

                                  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

                                  ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

                                  1 Antwort Letzte Antwort
                                  0
                                  • M Offline
                                    M Offline
                                    Michmu
                                    schrieb am zuletzt editiert von
                                    #41

                                    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 Antwort Letzte Antwort
                                    0
                                    • juergen2908J Offline
                                      juergen2908J Offline
                                      juergen2908
                                      schrieb am zuletzt editiert von
                                      #42

                                      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 Antwort Letzte Antwort
                                      0
                                      • juergen2908J Offline
                                        juergen2908J Offline
                                        juergen2908
                                        schrieb am zuletzt editiert von
                                        #43

                                        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 Antwort Letzte Antwort
                                        0
                                        • R Offline
                                          R Offline
                                          ralalla
                                          schrieb am zuletzt editiert von
                                          #44

                                          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 ?

                                          ioBroker auf Intel NUC mit Proxmox / PiVCCU auf Pi3

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          741

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe