Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Bild wird nicht richtig gespeichert (EDIT) Jetzt nicht richtig versandt

    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

    [gelöst] Bild wird nicht richtig gespeichert (EDIT) Jetzt nicht richtig versandt

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

      Hallo Leute,

      ich versuche gerade ein Bild meiner Webcam an Telegram zu senden. dazu habe ich im Forum einiges an Programmbeispielen gefunden.

      Leider macht es nicht das was es soll.

      Und zwar wird das Bild gelesen (Der Pfad stimmt, im Browser wird damit das gewünschte .jpg angezeigt.).

      Es werden auch die 4 verschiedenen Bilder erzeugt. Leider sind die alle korrupt, und können in der Windows Fotoanzeige nicht geöffnet werden.

      Damit klappt dann auch der Versand nicht. Also irgendwas geht schief beim Speichern der Fotos.

      Hat jemand einen Tipp woran das liegen könnte?

      Lg

      Günther

      Hier mein Programm:

      var request = require('request');
      var fs      = require('fs');
      var a = 1;
      
      function sendImage() {
          request.get({url: 'http://localhost/image0.jpg?resolution=640x480', encoding: 'binary'}, function (err, response, body) {
              fs.writeFile("/xampp/htdocs/magicmirror/Webcam_"+a+".jpg", body, 'binary', function(err) {
      
              if (err) {
                  console.error(err);
              } else {
                  console.log('Bild '+a+' gespeichert');
                  sendTo("telegram.0","/xampp/htdocs/magicmirror/Webcam_"+a+".jpg");
                  console.log('Bild '+a+' gesendet');
                  a = a + 1;
              }
            });
          });
      }
      on({id: "hm-rpc.1.0009156996014F.1.MOTION"/*G_MagicMirror_Bewegung:1.MOTION*/, change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        console.log('Änderung des Motion Zustandes erkannt');
        if (getState("hm-rpc.1.0009156996014F.1.MOTION").val === true) {
          console.log('Bild an Telegram versenden'); {
              // send 4 images: immediately, in 5, 15 and 30 seconds
              sendImage();
              setTimeout(sendImage, 5000);
              setTimeout(sendImage, 15000);
              setTimeout(sendImage, 30000);
          }
      }});
      

      IOBroker auf Windows 10:

      Adapter mit latest Repository aktuell

      Node.js: v8.10.0

      npm: 5.8.0

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

        @Jeeper.at:

                    sendTo("telegram.0","/xampp/htdocs/magicmirror/Webcam_"+a+".jpg");
        
        ```` `  
        

        Das sieht für mich so aus, als würde ein String mit dem Pfad + Dateinamen gesendet, nicht der Inhalt der Datei (body).

        1 Reply Last reply Reply Quote 0
        • Jeeper.at
          Jeeper.at last edited by

          Hallo Paul,

          Das Senden ist der nächste Schritt. Die Datei wird bereits schlecht auf die Festplatte gespeichert. Lässt sich dort nicht öffnen.

          lg

          Günther

          1 Reply Last reply Reply Quote 0
          • Jeeper.at
            Jeeper.at last edited by

            So, ich habe das Problem mit der Datei nun umgangen. Ich habe dazu den PhantomJS Adapter genommen. Nun wird korrekterweise ein richtiger Screenshot erzeugt.

            Nur kann ich den jetzt nicht versenden.

            Ich habe das nun mit Blockly gelöst.

            1180_iobroker_telegram.png

            Das Bild wird richtig gespeichert. Es ist ein Apache und ein Tomcat installiert, sodass das Bild mit http erreichbar ist.

            Beim Versand kommt allerdings folgende Fehlermeldung:

            telegram.0
            2018-08-18 18:27:24.528
            error
            Cannot send photo [chatId - xyz]: Error: ETELEGRAM: 400 Bad Request: wrong file identifier/HTTP URL specified 
            

            Any Ideas?

            Lg

            Günther

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

              Ich würde es so versuchen:

              telegram in die Callback-Funktion von phantomjs (mit Ergebnissen anhaken) packen, damit das Erzeugen der Datei fertig ist, bevor sie verschickt werden soll. Bei telegram Meldung den Dateipfad angeben.

              1 Reply Last reply Reply Quote 0
              • Jeeper.at
                Jeeper.at last edited by

                Hallo Paul,

                der Tipp war Gold wert. Nun funktioniert es so wie geplant.

                Vielen Dank

                Günther

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

                Support us

                ioBroker
                Community Adapters
                Donate

                461
                Online

                31.9k
                Users

                80.2k
                Topics

                1.3m
                Posts

                2
                6
                508
                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