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
    819

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

    leider verliert der Adapter immer mal wieder den Token.

    Das passiert eigentlich nur, wenn man die Instanz per setObject z.B. aus Scripts heraus regelmäßig neustartet. Was man nie tun sollte, ...

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

    @haus-automatisierung Das tue ich bewusst nicht, bislang hatte ich die Fehlermeldung nicht. Ich habe einen zweiten IOB für mein privates Haus laufen, mit der selben Installation, dort habe ich den fehler nicht

    haus-automatisierungH 1 Antwort Letzte Antwort
    0
    • M michihorn

      @haus-automatisierung Das tue ich bewusst nicht, bislang hatte ich die Fehlermeldung nicht. Ich habe einen zweiten IOB für mein privates Haus laufen, mit der selben Installation, dort habe ich den fehler nicht

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

      @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.

      🧑‍🎓 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
      • M michihorn

        Hallöchen
        ich habe den Telegram Adapter 4.0.1 am laufen, leider verliert der Adapter immer mal wieder den Token.
        Aktuell läuft der Adapter, produziert aber viele Fehler, vielleicht hat jemand einen Tip für mich.

        elegram.0
        2025-05-09 10:45:05.822	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        
        telegram.0
        2025-05-09 10:45:05.786	debug	Send message to [Michael]: "undefined"
        
        telegram.0
        2025-05-09 10:45:05.785	debug	Received command "send": {"caption":"Boot Bewegung 10:45:05","type":"photo"}
        
        telegram.0
        2025-05-09 10:45:05.783	silly	States system redis pmessage io.messagebox.system.adapter.telegram.0/io.messagebox.system.adapter.telegram.0:{"command":"send","message":{"caption":"Boot Bewegung 10:45:05","type":"photo"},"from":"system.adapter.javascript.0","_id":47698352}
        
        telegram.0
        2025-05-09 10:45:02.644	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        
        telegram.0
        2025-05-09 10:45:02.616	debug	Send message to [Michael]: "undefined"
        
        telegram.0
        2025-05-09 10:45:02.616	debug	Received command "send": {"caption":"Doorbell Bewegung 10:45:02","type":"photo"}
        
        telegram.0
        2025-05-09 10:45:02.615	silly	States system redis pmessage io.messagebox.system.adapter.telegram.0/io.messagebox.system.adapter.telegram.0:{"command":"send","message":{"caption":"Doorbell Bewegung 10:45:02","type":"photo"},"from":"system.adapter.javascript.0","_id":47698351}
        
        telegram.0
        2025-05-09 10:44:55.837	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        
        telegram.0
        2025-05-09 10:44:55.793	debug	Send message to [Michael]: "undefined"
        
        telegram.0
        2025-05-09 10:44:55.792	debug	Received command "send": {"caption":"Boot Bewegung 10:44:55","type":"photo"}
        
        telegram.0
        2025-05-09 10:44:55.790	silly	States system redis pmessage io.messagebox.system.adapter.telegram.0/io.messagebox.system.adapter.telegram.0:{"command":"send","message":{"caption":"Boot Bewegung 10:44:55","type":"photo"},"from":"system.adapter.javascript.0","_id":47698350}
        
        telegram.0
        2025-05-09 10:44:52.870	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        
        telegram.0
        2025-05-09 10:44:52.766	debug	Send message to [Michael]: "undefined"
        
        telegram.0
        2025-05-09 10:44:52.765	debug	Received command "send": {"caption":"Doorbell Bewegung 10:44:52","type":"photo"}
        
        telegram.0
        2025-05-09 10:44:52.756	silly	States system redis pmessage io.messagebox.system.adapter.telegram.0/io.messagebox.system.adapter.telegram.0:{"command":"send","message":{"caption":"Doorbell Bewegung 10:44:52","type":"photo"},"from":"system.adapter.javascript.0","_id":47698349}
        
        telegram.0
        2025-05-09 10:44:45.814	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        
        telegram.0
        2025-05-09 10:44:45.788	debug	Send message to [Michael]: "undefined"
        
        telegram.0
        2025-05-09 10:44:45.787	debug	Received command "send": {"caption":"Boot Bewegung 10:44:45","type":"photo"}
        
        telegram.0
        2025-05-09 10:44:45.780	silly	States system redis pmessage io.messagebox.system.adapter.telegram.0/io.messagebox.system.adapter.telegram.0:{"command":"send","message":{"caption":"Boot Bewegung 10:44:45","type":"photo"},"from":"system.adapter.javascript.0","_id":47698348}
        
        telegram.0
        2025-05-09 10:44:42.626	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        
        telegram.0
        2025-05-09 10:44:42.598	debug	Send message to [Michael]: "undefined"
        
        telegram.0
        2025-05-09 10:44:42.597	debug	Received command "send": {"caption":"Doorbell Bewegung 10:44:42","type":"photo"}
        
        telegram.0
        2025-05-09 10:44:42.596	silly	States system redis pmessage io.messagebox.system.adapter.telegram.0/io.messagebox.system.adapter.telegram.0:{"command":"send","message":{"caption":"Doorbell Bewegung 10:44:42","type":"photo"},"from":"system.adapter.javascript.0","_id":47698347}
        
        telegram.0
        2025-05-09 10:44:35.810	error	Failed sending [chatId - 6105180270]: Error: ETELEGRAM: 400 Bad Request: message text is empty
        
        telegram.0
        2025-05-09 10:44:35.772	debug	Send message to [Michael]: "undefined"
        
        telegram.0
        2025-05-09 10:44:35.771	debug	Received command "send": {"caption":"Boot Bewegung 10:44:35","type":"photo"}
        
        telegram.0
        2025-05-09 10:44:35.770	silly	States system redis pmessage io.messagebox.system.adapter.telegram.0/io.messagebox.system.adapter.telegram.0:{"command":"send","message":{"caption":"Boot Bewegung 10:44:35","type":"photo"},"from":"system.adapter.javascript.0","_id":47698346}
        
        telegram.0
        2025-05-09 10:44:32.767	silly	Objects user redis pmessage */cfg.o.script.js.SYSTEM.Motion_Doorbell:{"_id":"script.js.SYSTEM.Motion_Doorbell","type":"script","common":{"name":"Motion_Doorbell","expert":true,"engineType":"Javascript/js","enabled":true,"engine":"system.adapter.javascript.0","source":"/*****Bewegung Doorbell ****************************************************\r\n* Mai 2025\r\n* Adapter: \r\n* geä:\r\n*************************************************************************/\r\n\r\nconst idmotion = \"reolink.1.sensor.motion\"\r\nconst camurl = 'http://192.168.188.122/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=roadking04&width=800&height=600'\r\n\r\non({ id: idmotion, change:\"any\" }, function (obj) {\r\n if (obj.state.val == true) {\r\n log(\"Motion Doorbell\")\r\n\r\n httpGet(camurl, { responseType: 'arraybuffer' }, async (err, response) => {\r\n if (!err) {\r\n writeFile('vis.0', '/Doorbell/Doorbell.jpg', response.data, (err) => {\r\n if (err) {\r\n console.error(err);\r\n }\r\n });\r\n } else {\r\n console.error(err);\r\n }\r\n });\r\n }\r\n readFile('vis.0', '/Doorbell/Doorbell.jpg', function (err, img) {\r\n var ereignis_text = formatDate(new Date(obj.state.ts), \"hh:mm:ss\");\r\n sendTo(\"telegram.0\", {\r\n text: img,\r\n caption: \"Doorbell Bewegung \" + ereignis_text,\r\n type: \"photo\"\r\n });\r\n delFileAsync('vis.0', '/Doorbell/Doorbell.jpg')\r\n });\r\n \r\n});","debug":false,"verbose":false},"native":{},"from":"system.adapter.admin.0","user":"system.user.admin","ts":1746780272756,"acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}
        

        Ich möchte erwähnen, das bis gersten, diese Fehlermeldung nicht vorhanden war. Zwischendurch habe ich nun den Adapter mal neu installiert.

        Gruß
        Michael

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

        @michihorn sagte in telegram:

        ETELEGRAM: 400 Bad Request: message text is empty

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

        🧑‍🎓 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 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

                                      706

                                      Online

                                      32.6k

                                      Benutzer

                                      82.0k

                                      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