Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Bilder in Telegram, variablen und Funktionen

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Bilder in Telegram, variablen und Funktionen

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Sebastian last edited by

      Hi,

      hoffe mir kann hier irgendwer erklären warum das nicht so funktioniert wie erwartet.

      Ich möchte mit Telegram ein Bid verschicken. Das funktioniert so auch problemlos

      var DoorbirdImagePath = "/home/pi/DoorbirdPics/2017-09-09_12h46m46s_20.6grad_DailyPic12am.jpg";
          sendTo('telegram.0', {
          text:                   DoorbirdImagePath,
          caption:                'Snapshot',
          disable_notification:   true,
          });
      
      

      Lasse ich den FilePfad aber in einer globalen Funktion erstellen und über return in die Variable schreiben. Schickt Telegram nur den Pfad als text.

      Die variable "DoorbirdImagePath" sieht aber in beiden versionen gleich aus. Selbst wenn ich den von der Fuktion erstellten pfad verwenden und, wie oben, direkt zuweise funktioniert es.

      var DoorbirdImagePath = saveDoorbirdImage("DailyPic12am");
         sendTo('telegram.0', {
          text:                   DoorbirdImagePath,
          caption:                'Snapshot',
          disable_notification:   true,
          });
      

      hat jamand eine Idee wo da der unterschied liegt?

      Gruß

      Sebastian

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        Was wird angezeigt?

        var DoorbirdImagePath = saveDoorbirdImage("DailyPic12am");
        
        console.log(DoorbirdImagePath); // <<== Hier?
        
           sendTo('telegram.0', {
            text:                   DoorbirdImagePath,
            caption:                'Snapshot',
            disable_notification:   true,
            });
        
        1 Reply Last reply Reply Quote 0
        • S
          Sebastian last edited by

          Hi Bluefox, danke für die schnelle reaktion.

          Wenn ich das hier ausführe:

              var DoorbirdImagePath = saveDoorbirdImage("DailyPic12am");
              console.log("#1#" + DoorbirdImagePath);
          
              sendTo('telegram.0', {
              text:                   DoorbirdImagePath,
              caption:                'Snapshot',
              disable_notification:   true,
              }); 
          
              var DoorbirdImagePath = "/home/pi/DoorbirdPics/2017-09-09_12h46m46s_20.6grad_DailyPic12am.jpg";
              console.log("#2#" + DoorbirdImagePath);
              sendTo('telegram.0', {
              text:                   DoorbirdImagePath,
              caption:                'Snapshot',
              disable_notification:   true,
              });
          

          Steht im Log das hier. Die Pfade sind verschieden, da der eine aktuell ist und der zweite fest zugewiesen wurde. Den zweiten Pfad habe ich aus Telegram von einem vorherigen test kopiert.
          ` > 13:47:34.288 [info] javascript.0 script.js.In_Arbeit.DoorbirdImg: #1#/home/pi/DoorbirdPics/2017-09-13_13h47m34s_13.8grad_DailyPic12am.jpg

          13:47:34.288 [info] javascript.0 script.js.In_Arbeit.DoorbirdImg: #2#/home/pi/DoorbirdPics/2017-09-09_12h46m46s_20.6grad_DailyPic12am.jpg `

          Gruß

          Sebastian

          1 Reply Last reply Reply Quote 0
          • F
            Fitti last edited by

            @Sebastian:

            Steht im Log das hier. Die Pfade sind verschieden, da der eine aktuell ist und der zweite fest zugewiesen wurde. Den zweiten Pfad habe ich aus Telegram von einem vorherigen test kopiert.
            ` > 13:47:34.288 [info] javascript.0 script.js.In_Arbeit.DoorbirdImg: #1#/home/pi/DoorbirdPics/2017-09-13_13h47m34s_13.8grad_DailyPic12am.jpg

            13:47:34.288 [info] javascript.0 script.js.In_Arbeit.DoorbirdImg: #2#/home/pi/DoorbirdPics/2017-09-09_12h46m46s_20.6grad_DailyPic12am.jpg
            Was mich jedoch jetzt wundert. Stimmen denn die Pfade zum Bild?

            Probiere doch mal den Ordner /tmp/<dein_bild_name>.jpg. Vielleicht darf der Task nicht auf /home/pi zugreifen, wenn er automatisiert ist - das glaube ich sogar sehr, da wahrscheinlich der telegramm task nicht als pi ausgeführt wird.

            Kannst ja testweise erst mal ein Bild da rein kopieren und dir den Namen zusammenbasteln.</dein_bild_name>

            1 Reply Last reply Reply Quote 0
            • S
              Sebastian last edited by

              Hi Fitti,

              hab's mal mit /tmp/ getestet. Selbes Ergebnis.

              Pfad direkt zuweisen geht, über die Funktion geht nicht.

              Scheint also nix mit den Rechten zu tz zu haben.

              Gruß

              Sebastian

              1 Reply Last reply Reply Quote 0
              • Bluefox
                Bluefox last edited by

                ` > Pfad direkt zuweisen geht, über die Funktion geht nicht.

                Scheint also nix mit den Rechten zu tz zu haben. `
                Das kann nicht sein. Dann sind irgendwelche Unicode-Zeichen im Pfad drin oder am Ende ein Lehrzeichen…

                1 Reply Last reply Reply Quote 0
                • F
                  Fitti last edited by

                  Hmm- prinzipiell geht das schon - nutze es ja selbst in meinen Skripten.

                  Das Problem muss also noch irgendwo anders liegen… entweder wirklich einfach nur in einem "Sonderzeichen" oder in der eigentlichen Logik.

                  Mich machen noch Deine unterschiedlichen Pfade skeptisch.

                  Kannst Du dir nicht einfach das Bild selber holen, abspeichern und dann verwenden?

                  Dann bist Du sicher, das richtige Bild zu haben. Und wenn Du es nur Testweise durchführst.

                  Ich mache das so (orig-skript - läuft bei mir):

                          var request = require('request');
                          var fs      = require('fs');
                          request.get({url: 'http://192.168.1.321/tmpfs/auto.jpg?usr=XXX&pwd=XXX', encoding: 'binary'}, function (err, response, body) {
                              fs.writeFile("/tmp/snap.jpg", body, 'binary', function(err) {
                                  if (err) {
                                      console.error(err);
                                  } else {
                                      var info_text = 'Ein neues Bild';
                                      console.log('Snapshot sent');
                                      sendTo('telegram.0', {text: '/tmp/snap.jpg', caption: info_text });
                                  }
                              });
                          });
                  
                  

                  http://192.168.1.321/tmpfs/auto.jpg?usr=XXX&pwd=XXX muss natürlich an Deine Umgebung angepasst werden. Diese URL im Browser eingegeben, muss ein BILD anzeigen (kein Video).

                  Versuchs doch mal damit.

                  1 Reply Last reply Reply Quote 0
                  • S
                    Sebastian last edited by

                    Fehler gefunden. Danke Euch für Eure Hilfe.

                    Anscheinend wurde das Bild verschickt bevor es überhaupt richtig gespeichert war.

                    Mit einer Sekunde Verzögerung zwischen speichern und "senden an Telegram" funktioniert es problemlos.

                    setTimeout(function() {
                        sendTo('telegram.0', {
                        text:                   DoorbirdImagePath,
                        caption:                'Es hat aktuell'+getState("hm-rpc.0.KEQ0174317.1.TEMPERATURE"/*Aussenthermometer Status.TEMPERATURE*/).val + '°C.',
                        disable_notification:   true,
                        });
                    }, 1000);
                    

                    Gruß und Danke nochmals

                    Sebastian

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    728
                    Online

                    31.6k
                    Users

                    79.5k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    1815
                    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