NEWS
[gelöst] Bild wird nicht richtig gespeichert (EDIT) Jetzt nicht richtig versandt
-
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
-
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).
-
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.

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 specifiedAny Ideas?
Lg
Günther
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden