Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. telegram

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    telegram

    This topic has been deleted. Only users with topic management privileges can see it.
    • haus-automatisierung
      haus-automatisierung Developer Most Active @michihorn last edited by 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);
                }
            });
          }
      });
      
      OliverIO M 3 Replies Last reply Reply Quote 1
      • OliverIO
        OliverIO @haus-automatisierung last edited by OliverIO

        @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'
        });
        
        1 Reply Last reply Reply Quote 1
        • M
          michihorn @OliverIO last edited by

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

          1 Reply Last reply Reply Quote 0
          • M
            michihorn @haus-automatisierung last edited by

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

            1 Reply Last reply Reply Quote 0
            • M
              michihorn @haus-automatisierung last edited by

              @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)
              
              OliverIO 1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @michihorn last edited by 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 1 Reply Last reply Reply Quote 0
                • M
                  michihorn @OliverIO last edited by 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

                  OliverIO 1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @michihorn last edited by

                    @michihorn

                    Trage da einfach mal anstatt dessen

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

                    Ein.

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      michihorn @OliverIO last edited by michihorn

                      @oliverio sagte in telegram:

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

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

                      haus-automatisierung OliverIO 2 Replies Last reply Reply Quote 0
                      • haus-automatisierung
                        haus-automatisierung Developer Most Active @michihorn last edited by

                        @michihorn Ist die Doku der Funktion unvollständig?

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          michihorn @haus-automatisierung last edited by

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

                          1 Reply Last reply Reply Quote 0
                          • OliverIO
                            OliverIO @michihorn last edited by

                            @michihorn

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

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate
                            FAQ Cloud / IOT
                            HowTo: Node.js-Update
                            HowTo: Backup/Restore
                            Downloads
                            BLOG

                            868
                            Online

                            31.9k
                            Users

                            80.2k
                            Topics

                            1.3m
                            Posts

                            3
                            20
                            531
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo