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. ioBroker Allgemein
  4. telegram

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    823

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

telegram

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
20 Beiträge 3 Kommentatoren 1.2k Aufrufe 3 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.
  • haus-automatisierungH haus-automatisierung

    @michihorn sagte in telegram:

    Ich habe einen zweiten IOB für mein privates Haus laufen

    Aber nicht mit dem gleichen Token, sondern einem zusätzlichen Bot, oder? Das gleiche Token für mehrere Instanzen nutzen funktioniert nicht.

    M Offline
    M Offline
    michihorn
    schrieb am zuletzt editiert von
    #6

    @haus-automatisierung Nee, das ist klar es war ein eigener Token ;-)

    1 Antwort Letzte Antwort
    0
    • haus-automatisierungH haus-automatisierung

      @michihorn sagte in telegram:

      ETELEGRAM: 400 Bad Request: message text is empty

      Zeig am besten mal, wie genau Du die Nachricht zusammenbaust und sendest.

      M Offline
      M Offline
      michihorn
      schrieb am zuletzt editiert von michihorn
      #7

      @haus-automatisierung

      /*****Bewegung Doorbell ****************************************************
      * Mai 2025
      * Adapter: 
      * geä:
      *************************************************************************/
      
      const idmotion = "reolink.1.sensor.motion"
      const camurl = 'http://192.168.188.122/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=rxxxxxg04&width=800&height=600'
      
      on({ id: idmotion, change:"any" }, function (obj) {
          if (obj.state.val == true) {
          log("Motion Doorbell")
      
          httpGet(camurl, { responseType: 'arraybuffer' }, async (err, response) => {
              if (!err) {
                  writeFile('vis.0', '/Doorbell/Doorbell.jpg', response.data, (err) => {
                      if (err) {
                          console.error(err);
                      }
                  });
              } else {
                  console.error(err);
              }
          });
         }
          readFile('vis.0', '/Doorbell/Doorbell.jpg', function (err, img) {
              var ereignis_text = formatDate(new Date(obj.state.ts), "hh:mm:ss");
              sendTo("telegram.0", {
                  text: img,
                  caption: "Doorbell Bewegung " + ereignis_text,
                  type: "photo"
              });
              delFileAsync('vis.0', '/Doorbell/Doorbell.jpg')
          });
          
      });
      

      Aktuell ist das jetzt die Fehlermeldung

      elegram.0
      	2025-05-09 12:12:09.035	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:12:03.582	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:11:59.114	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:11:53.525	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:11:49.124	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:11:48.590	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:11:40.331	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:11:36.294	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:11:30.005	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:11:23.893	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:11:19.774	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:11:13.677	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:11:10.434	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:11:04.927	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:10:59.677	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:10:53.561	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:10:49.077	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:10:44.206	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      telegram.0
      	2025-05-09 12:10:42.514	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
      
      OliverIOO haus-automatisierungH 2 Antworten Letzte Antwort
      0
      • M michihorn

        @haus-automatisierung

        /*****Bewegung Doorbell ****************************************************
        * Mai 2025
        * Adapter: 
        * geä:
        *************************************************************************/
        
        const idmotion = "reolink.1.sensor.motion"
        const camurl = 'http://192.168.188.122/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=rxxxxxg04&width=800&height=600'
        
        on({ id: idmotion, change:"any" }, function (obj) {
            if (obj.state.val == true) {
            log("Motion Doorbell")
        
            httpGet(camurl, { responseType: 'arraybuffer' }, async (err, response) => {
                if (!err) {
                    writeFile('vis.0', '/Doorbell/Doorbell.jpg', response.data, (err) => {
                        if (err) {
                            console.error(err);
                        }
                    });
                } else {
                    console.error(err);
                }
            });
           }
            readFile('vis.0', '/Doorbell/Doorbell.jpg', function (err, img) {
                var ereignis_text = formatDate(new Date(obj.state.ts), "hh:mm:ss");
                sendTo("telegram.0", {
                    text: img,
                    caption: "Doorbell Bewegung " + ereignis_text,
                    type: "photo"
                });
                delFileAsync('vis.0', '/Doorbell/Doorbell.jpg')
            });
            
        });
        

        Aktuell ist das jetzt die Fehlermeldung

        elegram.0
        	2025-05-09 12:12:09.035	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:12:03.582	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:11:59.114	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:11:53.525	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:11:49.124	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:11:48.590	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:11:40.331	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:11:36.294	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:11:30.005	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:11:23.893	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:11:19.774	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:11:13.677	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:11:10.434	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:11:04.927	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:10:59.677	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:10:53.561	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:10:49.077	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:10:44.206	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        telegram.0
        	2025-05-09 12:10:42.514	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        
        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von OliverIO
        #8

        @michihorn

        Da ist ein Zeitfehler drin.

        Httpget
        Und Readfile wird relativ zeitnah hintereinander ändernaufgerufen.
        Es ist nicht gesichert, das die callbacks genau auch so in der Reihenfolge fertig sind.

        D.h. Das Bild das du mit HTTPget abrufst ist wahrscheinlich noch nicht vorhanden, wenn du den readfile/telegram Befehl aufrufst.
        Daher auch die Meldung mit undefined oder message empty.

        Wenn du auf die Verwendung der callback Versionen der Funktionen verzichtest und mit await arbeitest, wird es viel logischer von der Abarbeitung her.

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        M 1 Antwort Letzte Antwort
        1
        • M michihorn

          @haus-automatisierung

          /*****Bewegung Doorbell ****************************************************
          * Mai 2025
          * Adapter: 
          * geä:
          *************************************************************************/
          
          const idmotion = "reolink.1.sensor.motion"
          const camurl = 'http://192.168.188.122/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=rxxxxxg04&width=800&height=600'
          
          on({ id: idmotion, change:"any" }, function (obj) {
              if (obj.state.val == true) {
              log("Motion Doorbell")
          
              httpGet(camurl, { responseType: 'arraybuffer' }, async (err, response) => {
                  if (!err) {
                      writeFile('vis.0', '/Doorbell/Doorbell.jpg', response.data, (err) => {
                          if (err) {
                              console.error(err);
                          }
                      });
                  } else {
                      console.error(err);
                  }
              });
             }
              readFile('vis.0', '/Doorbell/Doorbell.jpg', function (err, img) {
                  var ereignis_text = formatDate(new Date(obj.state.ts), "hh:mm:ss");
                  sendTo("telegram.0", {
                      text: img,
                      caption: "Doorbell Bewegung " + ereignis_text,
                      type: "photo"
                  });
                  delFileAsync('vis.0', '/Doorbell/Doorbell.jpg')
              });
              
          });
          

          Aktuell ist das jetzt die Fehlermeldung

          elegram.0
          	2025-05-09 12:12:09.035	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:12:03.582	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:11:59.114	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:11:53.525	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:11:49.124	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:11:48.590	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:11:40.331	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:11:36.294	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:11:30.005	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:11:23.893	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:11:19.774	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:11:13.677	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:11:10.434	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:11:04.927	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:10:59.677	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:10:53.561	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:10:49.077	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:10:44.206	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          telegram.0
          	2025-05-09 12:10:42.514	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
          
          haus-automatisierungH Online
          haus-automatisierungH Online
          haus-automatisierung
          Developer Most Active
          schrieb am zuletzt editiert von haus-automatisierung
          #9

          @michihorn Das geht so nicht, Du übergibst die Daten aus readFile direkt an Telegam. Also Binärdaten. Der Telegram-Adapter kann damit aber nicht umgehen und hätte gerne einen Pfad. Dafür habe ich die Funktion createTempFile eingebaut.

          Und @OliverIO hat auch Recht - am besten mit einem weiteren Trigger auf geändert Bild-Dateien reagieren (oder sich den Umweg über das Datei-Management von ioBroker komplett sparen, wenn Du die Datei eh direkt wieder löschen willst).

          Vorschlag 1)

          const idmotion = 'reolink.1.sensor.motion';
          const camurl = 'http://192.168.188.122/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=rxxxxxg04&width=800&height=600';
           
          on({ id: idmotion, change: 'any' }, (obj) => {
            if (obj.state.val == true) {
              log('Motion Doorbell'):
           
              httpGet(camurl, { responseType: 'arraybuffer' }, async (err, response) => {
                  if (!err) {
                      writeFile('vis.0', '/Doorbell/Doorbell.jpg', response.data, (err) => {
                          if (err) {
                              console.error(err);
                          }
                      });
                  } else {
                      console.error(err);
                  }
              });
            }
          });
          
          onFile('vis.0', '/Doorbell/*.jpg', true, async (id, fileName, size, data, mimeType) => {
            const ereignis_text = formatDate(new Date(), 'hh:mm:ss');
          
            sendToAsync('telegram.0', {
                text: createTempFile(fileName, data),
                caption: `Doorbell Bewegung ${ereignis_text}`,
                type: 'photo'
            });
          });
          

          Vorschlag 2:

          const idmotion = 'reolink.1.sensor.motion';
          const camurl = 'http://192.168.188.122/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=rxxxxxg04&width=800&height=600';
           
          on({ id: idmotion, change: 'any' }, (obj) => {
              if (obj.state.val == true) {
                log('Motion Doorbell'):
             
                httpGet(camurl, { responseType: 'arraybuffer' }, async (err, response) => {
                    if (!err) {
                        const ereignis_text = formatDate(new Date(obj.state.ts), 'hh:mm:ss');
          
                        sendToAsync('telegram.0', {
                            text: createTempFile(fileName, response.data),
                            caption: `Doorbell Bewegung ${ereignis_text}`,
                            type: 'photo'
                        });
                    } else {
                        console.error(err);
                    }
                });
              }
          });
          

          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
          📚 Meine inoffizielle ioBroker Dokumentation

          OliverIOO M 3 Antworten Letzte Antwort
          1
          • haus-automatisierungH haus-automatisierung

            @michihorn Das geht so nicht, Du übergibst die Daten aus readFile direkt an Telegam. Also Binärdaten. Der Telegram-Adapter kann damit aber nicht umgehen und hätte gerne einen Pfad. Dafür habe ich die Funktion createTempFile eingebaut.

            Und @OliverIO hat auch Recht - am besten mit einem weiteren Trigger auf geändert Bild-Dateien reagieren (oder sich den Umweg über das Datei-Management von ioBroker komplett sparen, wenn Du die Datei eh direkt wieder löschen willst).

            Vorschlag 1)

            const idmotion = 'reolink.1.sensor.motion';
            const camurl = 'http://192.168.188.122/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=rxxxxxg04&width=800&height=600';
             
            on({ id: idmotion, change: 'any' }, (obj) => {
              if (obj.state.val == true) {
                log('Motion Doorbell'):
             
                httpGet(camurl, { responseType: 'arraybuffer' }, async (err, response) => {
                    if (!err) {
                        writeFile('vis.0', '/Doorbell/Doorbell.jpg', response.data, (err) => {
                            if (err) {
                                console.error(err);
                            }
                        });
                    } else {
                        console.error(err);
                    }
                });
              }
            });
            
            onFile('vis.0', '/Doorbell/*.jpg', true, async (id, fileName, size, data, mimeType) => {
              const ereignis_text = formatDate(new Date(), 'hh:mm:ss');
            
              sendToAsync('telegram.0', {
                  text: createTempFile(fileName, data),
                  caption: `Doorbell Bewegung ${ereignis_text}`,
                  type: 'photo'
              });
            });
            

            Vorschlag 2:

            const idmotion = 'reolink.1.sensor.motion';
            const camurl = 'http://192.168.188.122/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=rxxxxxg04&width=800&height=600';
             
            on({ id: idmotion, change: 'any' }, (obj) => {
                if (obj.state.val == true) {
                  log('Motion Doorbell'):
               
                  httpGet(camurl, { responseType: 'arraybuffer' }, async (err, response) => {
                      if (!err) {
                          const ereignis_text = formatDate(new Date(obj.state.ts), 'hh:mm:ss');
            
                          sendToAsync('telegram.0', {
                              text: createTempFile(fileName, response.data),
                              caption: `Doorbell Bewegung ${ereignis_text}`,
                              type: 'photo'
                          });
                      } else {
                          console.error(err);
                      }
                  });
                }
            });
            
            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von OliverIO
            #10

            @haus-automatisierung

            Ein File handle sollte gemäß Doku auch gehen.
            Vgl. Beispiel
            https://github.com/iobroker-community-adapters/ioBroker.telegram/blob/master/docs/en/README.md#explicit-types-of-messages

            sendTo('telegram.0', 'send', {
                text: fs.readFileSync('/opt/path/picture.png'),
                type: 'photo'
            });
            

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            1 Antwort Letzte Antwort
            1
            • OliverIOO OliverIO

              @michihorn

              Da ist ein Zeitfehler drin.

              Httpget
              Und Readfile wird relativ zeitnah hintereinander ändernaufgerufen.
              Es ist nicht gesichert, das die callbacks genau auch so in der Reihenfolge fertig sind.

              D.h. Das Bild das du mit HTTPget abrufst ist wahrscheinlich noch nicht vorhanden, wenn du den readfile/telegram Befehl aufrufst.
              Daher auch die Meldung mit undefined oder message empty.

              Wenn du auf die Verwendung der callback Versionen der Funktionen verzichtest und mit await arbeitest, wird es viel logischer von der Abarbeitung her.

              M Offline
              M Offline
              michihorn
              schrieb am zuletzt editiert von
              #11

              @oliverio Ja stimmt, zumindest machmal, aber jetzt weiß ich ja woran es gelegen hat. Danke

              1 Antwort Letzte Antwort
              0
              • haus-automatisierungH haus-automatisierung

                @michihorn Das geht so nicht, Du übergibst die Daten aus readFile direkt an Telegam. Also Binärdaten. Der Telegram-Adapter kann damit aber nicht umgehen und hätte gerne einen Pfad. Dafür habe ich die Funktion createTempFile eingebaut.

                Und @OliverIO hat auch Recht - am besten mit einem weiteren Trigger auf geändert Bild-Dateien reagieren (oder sich den Umweg über das Datei-Management von ioBroker komplett sparen, wenn Du die Datei eh direkt wieder löschen willst).

                Vorschlag 1)

                const idmotion = 'reolink.1.sensor.motion';
                const camurl = 'http://192.168.188.122/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=rxxxxxg04&width=800&height=600';
                 
                on({ id: idmotion, change: 'any' }, (obj) => {
                  if (obj.state.val == true) {
                    log('Motion Doorbell'):
                 
                    httpGet(camurl, { responseType: 'arraybuffer' }, async (err, response) => {
                        if (!err) {
                            writeFile('vis.0', '/Doorbell/Doorbell.jpg', response.data, (err) => {
                                if (err) {
                                    console.error(err);
                                }
                            });
                        } else {
                            console.error(err);
                        }
                    });
                  }
                });
                
                onFile('vis.0', '/Doorbell/*.jpg', true, async (id, fileName, size, data, mimeType) => {
                  const ereignis_text = formatDate(new Date(), 'hh:mm:ss');
                
                  sendToAsync('telegram.0', {
                      text: createTempFile(fileName, data),
                      caption: `Doorbell Bewegung ${ereignis_text}`,
                      type: 'photo'
                  });
                });
                

                Vorschlag 2:

                const idmotion = 'reolink.1.sensor.motion';
                const camurl = 'http://192.168.188.122/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=rxxxxxg04&width=800&height=600';
                 
                on({ id: idmotion, change: 'any' }, (obj) => {
                    if (obj.state.val == true) {
                      log('Motion Doorbell'):
                   
                      httpGet(camurl, { responseType: 'arraybuffer' }, async (err, response) => {
                          if (!err) {
                              const ereignis_text = formatDate(new Date(obj.state.ts), 'hh:mm:ss');
                
                              sendToAsync('telegram.0', {
                                  text: createTempFile(fileName, response.data),
                                  caption: `Doorbell Bewegung ${ereignis_text}`,
                                  type: 'photo'
                              });
                          } else {
                              console.error(err);
                          }
                      });
                    }
                });
                
                M Offline
                M Offline
                michihorn
                schrieb am zuletzt editiert von
                #12

                @haus-automatisierung Danke für die Überarbeitung des Scriptes, ich habe jetzt mal die Variante eingebaut. Danke

                1 Antwort Letzte Antwort
                0
                • haus-automatisierungH haus-automatisierung

                  @michihorn Das geht so nicht, Du übergibst die Daten aus readFile direkt an Telegam. Also Binärdaten. Der Telegram-Adapter kann damit aber nicht umgehen und hätte gerne einen Pfad. Dafür habe ich die Funktion createTempFile eingebaut.

                  Und @OliverIO hat auch Recht - am besten mit einem weiteren Trigger auf geändert Bild-Dateien reagieren (oder sich den Umweg über das Datei-Management von ioBroker komplett sparen, wenn Du die Datei eh direkt wieder löschen willst).

                  Vorschlag 1)

                  const idmotion = 'reolink.1.sensor.motion';
                  const camurl = 'http://192.168.188.122/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=rxxxxxg04&width=800&height=600';
                   
                  on({ id: idmotion, change: 'any' }, (obj) => {
                    if (obj.state.val == true) {
                      log('Motion Doorbell'):
                   
                      httpGet(camurl, { responseType: 'arraybuffer' }, async (err, response) => {
                          if (!err) {
                              writeFile('vis.0', '/Doorbell/Doorbell.jpg', response.data, (err) => {
                                  if (err) {
                                      console.error(err);
                                  }
                              });
                          } else {
                              console.error(err);
                          }
                      });
                    }
                  });
                  
                  onFile('vis.0', '/Doorbell/*.jpg', true, async (id, fileName, size, data, mimeType) => {
                    const ereignis_text = formatDate(new Date(), 'hh:mm:ss');
                  
                    sendToAsync('telegram.0', {
                        text: createTempFile(fileName, data),
                        caption: `Doorbell Bewegung ${ereignis_text}`,
                        type: 'photo'
                    });
                  });
                  

                  Vorschlag 2:

                  const idmotion = 'reolink.1.sensor.motion';
                  const camurl = 'http://192.168.188.122/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=rxxxxxg04&width=800&height=600';
                   
                  on({ id: idmotion, change: 'any' }, (obj) => {
                      if (obj.state.val == true) {
                        log('Motion Doorbell'):
                     
                        httpGet(camurl, { responseType: 'arraybuffer' }, async (err, response) => {
                            if (!err) {
                                const ereignis_text = formatDate(new Date(obj.state.ts), 'hh:mm:ss');
                  
                                sendToAsync('telegram.0', {
                                    text: createTempFile(fileName, response.data),
                                    caption: `Doorbell Bewegung ${ereignis_text}`,
                                    type: 'photo'
                                });
                            } else {
                                console.error(err);
                            }
                        });
                      }
                  });
                  
                  M Offline
                  M Offline
                  michihorn
                  schrieb am zuletzt editiert von
                  #13

                  @haus-automatisierung sagte in telegram:

                  Dafür habe ich die Funktion createTempFile eingebaut.

                  Das Script moniert den fileName
                  text: createTempFile(fileName, response.data),

                  javascript.0	15:04:31.098	error	
                  
                  ReferenceError: fileName is not defined
                  
                  javascript.0	15:04:31.099	error	
                  
                      at Object.<anonymous> (script.js.SYSTEM.Motion_Doorbell:26:40)
                  
                  OliverIOO 1 Antwort Letzte Antwort
                  0
                  • M michihorn

                    @haus-automatisierung sagte in telegram:

                    Dafür habe ich die Funktion createTempFile eingebaut.

                    Das Script moniert den fileName
                    text: createTempFile(fileName, response.data),

                    javascript.0	15:04:31.098	error	
                    
                    ReferenceError: fileName is not defined
                    
                    javascript.0	15:04:31.099	error	
                    
                        at Object.<anonymous> (script.js.SYSTEM.Motion_Doorbell:26:40)
                    
                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von OliverIO
                    #14

                    @michihorn

                    Ok, Du hast überhaupt keine Ahnung von JavaScript?

                    Filename ist eine variable in der der Dateiname zu deinem Bild steht.
                    Also entweder die Daten die aus dem httprequest kommen als Datei speichern oder besser doch wieder das file handle wie in deinem ursprünglichen Beispiel übergeben.

                    Kann es leider nicht selbst nachstellen.

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    M 1 Antwort Letzte Antwort
                    0
                    • OliverIOO OliverIO

                      @michihorn

                      Ok, Du hast überhaupt keine Ahnung von JavaScript?

                      Filename ist eine variable in der der Dateiname zu deinem Bild steht.
                      Also entweder die Daten die aus dem httprequest kommen als Datei speichern oder besser doch wieder das file handle wie in deinem ursprünglichen Beispiel übergeben.

                      Kann es leider nicht selbst nachstellen.

                      M Offline
                      M Offline
                      michihorn
                      schrieb am zuletzt editiert von michihorn
                      #15

                      @oliverio Ich lerne jeden Tag dazu. Es ist noch kein Meister vom Himmel gefallen. ;-)
                      Die Variante2 von Hausautomatik habe ich so übernommen. Die Variable fileName war nicht in der Definition angegeben und es ist nicht klar wo wird die Variable "gefüllt", ergo moppert das Script. Leider gibt es auch keine Sendung per Telegram. Ich schaue mir das später nochmal an. Danke erstmal

                      OliverIOO 1 Antwort Letzte Antwort
                      0
                      • M michihorn

                        @oliverio Ich lerne jeden Tag dazu. Es ist noch kein Meister vom Himmel gefallen. ;-)
                        Die Variante2 von Hausautomatik habe ich so übernommen. Die Variable fileName war nicht in der Definition angegeben und es ist nicht klar wo wird die Variable "gefüllt", ergo moppert das Script. Leider gibt es auch keine Sendung per Telegram. Ich schaue mir das später nochmal an. Danke erstmal

                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        schrieb am zuletzt editiert von
                        #16

                        @michihorn

                        Trage da einfach mal anstatt dessen

                        createTempFile('telegram-image.png', response.data)

                        Ein.

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        M 1 Antwort Letzte Antwort
                        0
                        • OliverIOO OliverIO

                          @michihorn

                          Trage da einfach mal anstatt dessen

                          createTempFile('telegram-image.png', response.data)

                          Ein.

                          M Offline
                          M Offline
                          michihorn
                          schrieb am zuletzt editiert von michihorn
                          #17

                          @oliverio sagte in telegram:

                          createTempFile('telegram-image.png', response.data)

                          und wo wird telegram-image.png "gefüllt"? Mit response.data?

                          haus-automatisierungH OliverIOO 2 Antworten Letzte Antwort
                          0
                          • M michihorn

                            @oliverio sagte in telegram:

                            createTempFile('telegram-image.png', response.data)

                            und wo wird telegram-image.png "gefüllt"? Mit response.data?

                            haus-automatisierungH Online
                            haus-automatisierungH Online
                            haus-automatisierung
                            Developer Most Active
                            schrieb am zuletzt editiert von
                            #18

                            @michihorn Ist die Doku der Funktion unvollständig?

                            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                            📚 Meine inoffizielle ioBroker Dokumentation

                            M 1 Antwort Letzte Antwort
                            0
                            • haus-automatisierungH haus-automatisierung

                              @michihorn Ist die Doku der Funktion unvollständig?

                              M Offline
                              M Offline
                              michihorn
                              schrieb am zuletzt editiert von
                              #19

                              @haus-automatisierung Aus meiner Sicht schon, ich werde mich am Montag mal in Ruhe damit beschäftigen.
                              Viele Grüße ;-)

                              1 Antwort Letzte Antwort
                              0
                              • M michihorn

                                @oliverio sagte in telegram:

                                createTempFile('telegram-image.png', response.data)

                                und wo wird telegram-image.png "gefüllt"? Mit response.data?

                                OliverIOO Offline
                                OliverIOO Offline
                                OliverIO
                                schrieb am zuletzt editiert von
                                #20

                                @michihorn

                                Das ist nur der temporäre Dateiname.
                                Gefüllt wird das durch diese Funktion.
                                Der Inhalt kommt von response.data

                                Meine Adapter und Widgets
                                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                Links im Profil

                                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
                                FAQ Cloud / IOT
                                HowTo: Node.js-Update
                                HowTo: Backup/Restore
                                Downloads
                                BLOG

                                730

                                Online

                                32.6k

                                Benutzer

                                82.1k

                                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