Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Frage] Bild per telegram verschicken?

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    355

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

[Frage] Bild per telegram verschicken?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
93 Beiträge 31 Kommentatoren 34.6k 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.
  • T Offline
    T Offline
    thomassch
    schrieb am zuletzt editiert von
    #21

    Hi,

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

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

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

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

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

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

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

    Dazu im IOBorker die Tablasche Terminal aufmachen und das eingeben:

    npm install download
    

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

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

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

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

    Jetzt fehlt mir eigentlich noch folgende Funktion:

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

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

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

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

    Gruss

    Thomas

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

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

      Hey, danke für das Skript!

      Wie lange dauert es bei dir vom Auslösen bis zum Ankommen des Bildes bei Telegram?

      Schneller als 2 Sekunden?

      iobroker als LXC unter Proxmox

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

        @Solear:

        Hey, danke für das Skript!

        Wie lange dauert es bei dir vom Auslösen bis zum Ankommen des Bildes bei Telegram?

        Schneller als 2 Sekunden? `

        Hab es nicht gestoppt - die Bilder sind aber 2-3 sekunden später auf der Platte …

        da ich die Verzögerung drin habe, sind die 10-20 Sekunden später auch per Telegram auf meinen Handy...

        (ich denke aber die Zeit richtet sich nach der Auslastung von Telegram.)

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

        1 Antwort Letzte Antwort
        0
        • T Offline
          T Offline
          thomassch
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • 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 :D

                              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 :cry:

                                      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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          324

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          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
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe