Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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.1k

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

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

[Frage] Bild per telegram verschicken?

Scheduled Pinned Locked Moved Skripten / Logik
93 Posts 31 Posters 33.8k Views 8 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    thomassch
    wrote on last edited by
    #24

    nun eine Version inkl. Speicherung der letzten Bilder im VIS.0 Verzeichnis


    29.05.2016 Änderung auf Request !


    damit kann man nun auch eine Webseite machen mit diesen Bildern….

    Die Verzögerungen sind notwendig, damit man erst kopiert wenn die Bilder auch von der Cam Webseite geladen wurden.

    ... fehlt jetzt nur noch eine bessere History - ich möchte gerne beim Click auf einer der Bilder

    a) auf die WebCam Seite gehen können

    b) ein größeres Bild des gespeicherten Bildes sehen..

    bin über jede Anregung dankbar.

    Gruss

    thomassch

    // Script: TelegramBild
    // Script: Bild und Text per Telegram verschicken, wenn ein Sensor auslöst
    // Script: 15.05.2016
    // Script: V0.81
    // Autor: thomassch
    // Grundidee: http://forum.iobroker.net/viewtopic.php?f=21&t=2609&p=24557&hilit=telegram#p24557
    // Verwendet: https://github.com/kevva/download
    
    // weiteres: https://github.com/calvinmetcalf/copyfiles
    
    // IPCams: Instar 5907HD / 6012HD
    
    // History
    // 29.05.2016 V0.81  download Funktion entfernt und durch request ersetzt
    
    var logging = true;
    var request = require('request');    // Modul Request muss in Javascript-Einstellungen vorhanden sein
    var fs      = require('fs');
    var xCopyFiles = require('copyfiles'); // Modul Copyfiles zum Dateikopieren über Javascript-Einstellungen
    
    var dest = '/images/';
    var foto_urlFlur   =    "http://192.xxx.xxx.xxx/tmpfs/snap.jpg?usr=admin&pwd=Instar"; // IP Webcam Snapshot Innen Flur
    var foto_urlGarage =    "http://192.xxx.xxx.xxx/tmpfs/snap.jpg?usr=admin&pwd=Instar"; // IP Webcam Snapshot Garage
    var foto_urlGarten =    "http://192.xxx.xxx.xxx/tmpfs/snap.jpg?usr=admin&pwd=Instar"; // IP Webcam Snapshot Kellertür
    var foto_urlWohn   =    "http://192.xxx.xxx.xxx/tmpfs/snap.jpg?usr=admin&pwd=Instar"; // IP Webcam Snapshot Wohnzimmer
    var txtaction = "..."; // Telegram Text
    var xBildpfad = "..."; // Bild mit Pfad
    
    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, txtUrlOrt, 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 von Cam downloaden
            myDownload(txtUrlOrt, dest, txtBild+".jpg");
    
            // Bild versenden
            setTimeout(function(){
                sendTo('telegram.0', dest+txtBild);
                if (logging)  log("TelegramBild.xaktionCam - Bild versendet" + dest+txtBild+'.jpg', "info");
            }, 6000); // 6 sek warten bevor man das JPG verschickt
    
            // Bild kopieren in VIS Verzeichnis für Anzeige im Webübersichtsbild      
            setTimeout(
                function()
                {
                    xBildpfad = dest+txtBild+".jpg";
                    if (logging)  log("TelegramBild.xaktionCam - CopyFiles xBildpfad: "+ xBildpfad, "info");
                    new xCopyFiles([xBildpfad,'/iobroker/iobroker-data/files/vis.0/main/Haus'],true,function (err){ 
                        if (logging)  log("TelegramBild.xaktionCam - CopyFiles err: "+ err, "info"); 
                        if (err) {
                           if (logging)  log("TelegramBild.xaktionCam - CopyFiles Error", "info");
                        } else {
                           if (logging)  log("TelegramBild.xaktionCam - CopyFiles ok", "info");
                        }
                    });
            }, 30000); // 20 sek warten bevor man das JPG umkopiert   
        }
    
    }
    
    // Funktion zum Download von WebCam Website
    function myDownload(mySource, myDest, myBildName)
    {
        // dann Bild von Cam Laden
        request.get({url: mySource, encoding: 'binary'}, function (err, response, body) {
            fs.writeFile(myDest + myBildName + ".jpg", body, 'binary', function(err) {
                if (err) {
                    if (logging) log("TelegramBild.xaktionCam - Fehler beim Bild: "+ myBildName + "speichern", "warn");
                    } else {
                    if (logging) log("TelegramBild.xaktionCam - Bild: " + myBildName + " gespeichert", "info");
                }
            });
        });
    }
    
    // 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);
    
          // erst mal aktuelle Bilder von den Cams holen
          myDownload(foto_urlFlur,   dest, "BildAlarmFlur");
          myDownload(foto_urlGarage, dest, "BildAlarmGarage");
          myDownload(foto_urlGarten, dest, "BildAlarmGarten");
          myDownload(foto_urlWohn,   dest, "BildAlarmWohnzimmer");
    
          // Die Bilder per Telegramm nach 20 sekunden verschicken
          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
    
          // und nun alle 4 umkopieren
          // Bild kopieren in VIS Verzeichnis für Anzeige im Webübersichtsbild      
          setTimeout(
            function()
            {
                new xCopyFiles([dest+"BildAlarmFlur.jpg"      ,'/iobroker/iobroker-data/files/vis.0/main/Haus'],true,function (err){ });
                new xCopyFiles([dest+"BildAlarmGarage.jpg"    ,'/iobroker/iobroker-data/files/vis.0/main/Haus'],true,function (err){ });
                new xCopyFiles([dest+"BildAlarmGarten.jpg"    ,'/iobroker/iobroker-data/files/vis.0/main/Haus'],true,function (err){ });
                new xCopyFiles([dest+"BildAlarmWohnzimmer.jpg",'/iobroker/iobroker-data/files/vis.0/main/Haus'],true,function (err){ });
            }, 30000); // 30 sek warten bevor man das JPG umkopiert
    
      }
    }
    
    // Auslöser
    on({id: "hm-rpc.0.LEQxxx.1.STATE",          val: true}, function(obj) { xaktionCam(obj, "Die Innentür wurde "       ,"geöffnet",""      , foto_urlFlur  ,   "BildFlur"); }); // Innentür
    on({id: "hm-rpc.0.MEQxxx.1.MOTION",         val: true}, function(obj) { xaktionCam(obj, "Garten Bewegungsmelder "   ,"ausgelöst",""     , foto_urlGarten,   "BildGarten"); }); // Garten
    on({id: "hm-rpc.0.MEQxxx.1.PRESS_SHORT",    val: true}, function(obj) { xaktionCam(obj, "Klingelsensor "            ,"es klingelt",""   , foto_urlGarage,   "BildKlingel"); }); // Klingelsensor
    on({id: "hm-rpc.0.MEQxxx.1.STATE",          val: true}, function(obj) { xaktionCam(obj, "Garagentor "               ,"wird geöffnet","" , foto_urlGarage,   "BildGaragentor"); }); // Garagentor
    on({id: "hm-rpc.0.MEQxxx.1.STATE",          val: true}, function(obj) { xaktionCam(obj, "Haustür "                  ,"wird geöffnet","" , foto_urlGarage,   "BildHausTuer"); }); // Garagentor
    on({id: "hm-rpc.0.MEQxxx.1.STATE",          val: true}, function(obj) { xaktionCam(obj, "Waschraum Tür "            ,"wird geöffnet","" , foto_urlGarten,   "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!!!"); });
    
    

    hier noch das Widget

    [{"tpl":"tplHtml","data":{"hm_id":65535,"digits":6,"factor":1,"html":"BildGarten.jpg","visibility-cond":"==","visibility-val":1,"refreshInterval":"0","gestures-offsetX":0,"gestures-offsetY":0},"style":{"width":"166px","height":"14px","left":"318px","top":59,"background":"","color":"white","font":"normal normal normal 16px/normal Arial","border":"","padding":"3px","z-index":1,"font-size":"small"},"widgetSet":"basic"},{"tpl":"tplHtml","data":{"hm_id":65535,"digits":6,"factor":1,"html":"BildHausTuer.jpg","visibility-cond":"==","visibility-val":1,"refreshInterval":"0","gestures-offsetX":0,"gestures-offsetY":0},"style":{"width":"166px","height":"14px","left":"630px","top":59,"background":"","color":"white","font":"normal normal normal 16px/normal Arial","border":"","padding":"3px","z-index":1,"font-size":"small"},"widgetSet":"basic"},{"tpl":"tplHtml","data":{"hm_id":65535,"digits":6,"factor":1,"html":"BildKlingel.jpg","visibility-cond":"==","visibility-val":1,"refreshInterval":"0","gestures-offsetX":0,"gestures-offsetY":0},"style":{"width":"166px","height":"14px","left":"8px","top":279,"background":"","color":"white","font":"normal normal normal 16px/normal Arial","border":"","padding":"3px","z-index":1,"font-size":"small"},"widgetSet":"basic"},{"tpl":"tplHtml","data":{"hm_id":65535,"digits":6,"factor":1,"html":"BildGaragentor.jpg","visibility-cond":"==","visibility-val":1,"refreshInterval":"0","gestures-offsetX":0,"gestures-offsetY":0},"style":{"width":"166px","height":"14px","left":"321px","top":281,"background":"","color":"white","font":"normal normal normal 16px/normal Arial","border":"","padding":"3px","z-index":1,"font-size":"small"},"widgetSet":"basic"},{"tpl":"tplHtml","data":{"hm_id":65535,"digits":6,"factor":1,"html":"BildWaschRaumTuer.jpg","visibility-cond":"==","visibility-val":1,"refreshInterval":"0","gestures-offsetX":0,"gestures-offsetY":0},"style":{"width":"166px","height":"14px","left":"630px","top":280,"background":"","color":"white","font":"normal normal normal 16px/normal Arial","border":"","padding":"3px","z-index":1,"font-size":"small"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"hm_id":65535,"digits":"","factor":1,"min":0,"max":1,"step":0.01,"src":"/vis.0/main/Haus/BildGaragentor.jpg","refreshInterval":"30000","visibility-cond":"==","visibility-val":1,"refreshOnWakeUp":"false","refreshOnViewChange":"false","gestures-offsetX":0,"gestures-offsetY":0,"stretch":true,"visibility-oid":""},"style":{"left":"322.5px","top":300,"width":"310px","height":"190px"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"hm_id":65535,"digits":"","factor":1,"min":0,"max":1,"step":0.01,"src":"/vis.0/main/Haus/BildWaschRaumTuer.jpg","refreshInterval":"30000","visibility-cond":"==","visibility-val":1,"refreshOnWakeUp":"false","refreshOnViewChange":"false","gestures-offsetX":0,"gestures-offsetY":0,"stretch":true,"visibility-oid":""},"style":{"left":"634px","top":300,"width":"310px","height":"190px"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"hm_id":65535,"digits":"","factor":1,"min":0,"max":1,"step":0.01,"src":"/vis.0/main/Haus/BildAlarmFlur.jpg","refreshInterval":"30000","visibility-cond":"==","visibility-val":1,"refreshOnWakeUp":"false","refreshOnViewChange":"false","gestures-offsetX":0,"gestures-offsetY":0,"stretch":true,"visibility-oid":""},"style":{"left":"11px","top":"547px","width":"238px","height":"128px"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"hm_id":65535,"digits":"","factor":1,"min":0,"max":1,"step":0.01,"src":"/vis.0/main/Haus/BildAlarmGarten.jpg","refreshInterval":"30000","visibility-cond":"==","visibility-val":1,"refreshOnWakeUp":"false","refreshOnViewChange":"false","gestures-offsetX":0,"gestures-offsetY":0,"stretch":true,"visibility-oid":""},"style":{"left":"497px","top":"547px","width":"238px","height":"128px"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"hm_id":65535,"digits":"","factor":1,"min":0,"max":1,"step":0.01,"src":"/vis.0/main/Haus/BildAlarmWohnzimmer.jpg","refreshInterval":"30000","visibility-cond":"==","visibility-val":1,"refreshOnWakeUp":"false","refreshOnViewChange":"false","gestures-offsetX":0,"gestures-offsetY":0,"stretch":true,"visibility-oid":""},"style":{"left":"739px","top":"547px","width":"238px","height":"128px"},"widgetSet":"basic"},{"tpl":"tplHtml","data":{"hm_id":65535,"digits":6,"factor":1,"html":"BildAlarmFlur.jpg","visibility-cond":"==","visibility-val":1,"refreshInterval":"0","gestures-offsetX":0,"gestures-offsetY":0},"style":{"width":"166px","height":"14px","left":"8px","top":527,"background":"","color":"#e0a800","font":"normal normal normal 16px/normal Arial","border":"","padding":"3px","z-index":1,"font-size":"small"},"widgetSet":"basic"},{"tpl":"tplHtml","data":{"hm_id":65535,"digits":6,"factor":1,"html":"BildAlarmGarage.jpg","visibility-cond":"==","visibility-val":1,"refreshInterval":"0","gestures-offsetX":0,"gestures-offsetY":0},"style":{"width":"166px","height":"14px","left":"251px","top":"527px","background":"","color":"#e0a800","font":"normal normal normal 16px/normal Arial","border":"","padding":"3px","z-index":1,"font-size":"small"},"widgetSet":"basic"},{"tpl":"tplHtml","data":{"hm_id":65535,"digits":6,"factor":1,"html":"BildAlarmGarten.jpg","visibility-cond":"==","visibility-val":1,"refreshInterval":"0","gestures-offsetX":0,"gestures-offsetY":0},"style":{"width":"166px","height":"14px","left":"494px","top":"527px","background":"","color":"#e0a800","font":"normal normal normal 16px/normal Arial","border":"","padding":"3px","z-index":1,"font-size":"small"},"widgetSet":"basic"},{"tpl":"tplHtml","data":{"hm_id":65535,"digits":6,"factor":1,"html":"BildAlarmWohnzimmer.jpg","visibility-cond":"==","visibility-val":1,"refreshInterval":"0","gestures-offsetX":0,"gestures-offsetY":0},"style":{"width":"166px","height":"14px","left":"735px","top":"527px","background":"","color":"#e0a800","font":"normal normal normal 16px/normal Arial","border":"","padding":"3px","z-index":1,"font-size":"small"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"hm_id":65535,"digits":"","factor":1,"min":0,"max":1,"step":0.01,"src":"/vis.0/main/Haus/BildAlarmGarage.jpg","refreshInterval":"30000","visibility-cond":"==","visibility-val":1,"refreshOnWakeUp":"false","refreshOnViewChange":"false","gestures-offsetX":0,"gestures-offsetY":0,"stretch":true,"visibility-oid":""},"style":{"left":"254px","top":"547px","width":"238px","height":"128px"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"hm_id":65535,"digits":"","factor":1,"min":0,"max":1,"step":0.01,"src":"/vis.0/main/Haus/BildKlingel.jpg","refreshInterval":"30000","visibility-cond":"==","visibility-val":1,"refreshOnWakeUp":"false","refreshOnViewChange":"false","gestures-offsetX":0,"gestures-offsetY":0,"stretch":true,"visibility-oid":""},"style":{"left":"11px","top":300,"width":"310px","height":"190px"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"hm_id":65535,"digits":"","factor":1,"min":0,"max":1,"step":0.01,"src":"/vis.0/main/Haus/BildHausTuer.jpg","refreshInterval":"30000","visibility-cond":"==","visibility-val":1,"refreshOnWakeUp":"false","refreshOnViewChange":"false","gestures-offsetX":0,"gestures-offsetY":0,"stretch":true,"visibility-oid":""},"style":{"left":"634px","top":80,"width":"310px","height":"190px"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"hm_id":65535,"digits":"","factor":1,"min":0,"max":1,"step":0.01,"src":"/vis.0/main/Haus/BildGarten.jpg","refreshInterval":"30000","visibility-cond":"==","visibility-val":1,"refreshOnWakeUp":"false","refreshOnViewChange":"false","gestures-offsetX":0,"gestures-offsetY":0,"stretch":true,"visibility-oid":""},"style":{"left":"321.5px","top":80,"width":"310px","height":"190px"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"hm_id":65535,"digits":"","factor":1,"min":0,"max":1,"step":0.01,"src":"/vis.0/main/Haus/BildFlur.jpg","refreshInterval":"30000","visibility-cond":"==","visibility-val":1,"refreshOnWakeUp":"false","refreshOnViewChange":"false","gestures-offsetX":0,"gestures-offsetY":0,"stretch":true,"visibility-oid":""},"style":{"left":"9px","top":80,"width":"310px","height":"190px"},"widgetSet":"basic"},{"tpl":"tplHtml","data":{"hm_id":65535,"digits":6,"factor":1,"html":"BildFlur.jpg","visibility-cond":"==","visibility-val":1,"refreshInterval":"0","gestures-offsetX":0,"gestures-offsetY":0},"style":{"width":"166px","height":"14px","left":7,"top":58,"background":"","color":"white","font":"normal normal normal 16px/normal Arial","border":"","padding":"3px","z-index":1,"font-size":"small"},"widgetSet":"basic"}]
    

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

    1 Reply Last reply
    0
    • P Offline
      P Offline
      pix
      wrote on last edited by
      #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 Reply Last reply
      0
      • T Offline
        T Offline
        thomassch
        wrote on last edited by
        #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 Reply Last reply
        0
        • M Offline
          M Offline
          Michmu
          wrote on last edited by
          #27

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

          1 Reply Last reply
          0
          • S Offline
            S Offline
            Solear
            wrote on last edited by
            #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 Reply Last reply
            0
            • M Offline
              M Offline
              Michmu
              wrote on last edited by
              #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 Reply Last reply
              0
              • M Offline
                M Offline
                Michmu
                wrote on last edited by
                #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 Reply Last reply
                0
                • S Offline
                  S Offline
                  Solear
                  wrote on last edited by
                  #31

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

                  iobroker als LXC unter Proxmox

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    Michmu
                    wrote on last edited by
                    #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 Reply Last reply
                    0
                    • P Offline
                      P Offline
                      pix
                      wrote on last edited by
                      #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 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        Michmu
                        wrote on last edited by
                        #34

                        Hi Pix, der Script funktioniert 100% ig 😄

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

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          Solear
                          wrote on last edited by
                          #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 Reply Last reply
                          0
                          • M Offline
                            M Offline
                            Michmu
                            wrote on last edited by
                            #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 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              Solear
                              wrote on last edited by
                              #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 Reply Last reply
                              0
                              • M Offline
                                M Offline
                                Michmu
                                wrote on last edited by
                                #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 Reply Last reply
                                0
                                • P Offline
                                  P Offline
                                  pix
                                  wrote on last edited by
                                  #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 Reply Last reply
                                  0
                                  • D Offline
                                    D Offline
                                    dtp
                                    wrote on last edited by
                                    #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 Reply Last reply
                                    0
                                    • M Offline
                                      M Offline
                                      Michmu
                                      wrote on last edited by
                                      #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 Reply Last reply
                                      0
                                      • juergen2908J Offline
                                        juergen2908J Offline
                                        juergen2908
                                        wrote on last edited by
                                        #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 Reply Last reply
                                        0
                                        • juergen2908J Offline
                                          juergen2908J Offline
                                          juergen2908
                                          wrote on last edited by
                                          #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 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          585

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe