NEWS
wget lädt nur eine 0kb Datei aus Stream
-
Kann ich das Script so wie es ist nehmen und nur die URL anpassen?
Welche Einheit hat der Timeout von 300 (Ist das einer?) ?
Benutze leider nur mit Blockly.Kann ich das so in Blockly integrieren mit einem Trigger?
Wobei ich es trotzdem interessant finde, warum er das Bild nicht richtig speichert.
-
@arteck Wieso nicht warten bis der Stream fertig ist statt ein fixes (möglicherweise unnötig langes oder zu kurzes) Timeout?
-
@David-G sagte in wget lädt nur eine 0kb Datei aus Stream:
wget -v /opt/iobroker/snapshot/snapshoot.jpg 'http://192.168.xxxxx/snapshot.jpg?user=xxxx&pwd=xxxxx&strm=1'
Müsste der Befehl nicht
wget -v -O /opt/iobroker/snapshot/snapshoot.jpg 'http://192.168.xxxxx/snapshot.jpg?user=xxxx&pwd=xxxxx&strm=1'
sein (also Ausgabe-Dateiname per -O angeben)?
==> https://wiki.ubuntuusers.de/wget/Obiger Befehl würde versuchen,
/opt/iobroker/snapshot/snapshoot.jpg
herunter zu laden, was keinen Sinn macht. -
Ja, das srimmt.
Ist auch der letzte Stand. Nur eben mit einem Bild was man nicht öffnen kann.
sudo wget -o /opt/iobroker/snapshot/bild1.jpg 'http://192.168.xxxxx/snapshot.jpg?user=xxxx&pwd=xxxxx&strm=1'
-
Unter Windows konnte ich die Bilddateien jetzt öffnen.
WinSCP öffnet sie im Editor.Ihr Inhalt ist:
--2020-11-12 11:18:57-- http://192.168.xx.xx/snapshot.jpg?user=xx&pwd=xxx&strm=1 Verbindungsaufbau zu 192.168.xx.xx:80 … verbunden. HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK Länge: 26564 (26K) [image/jpeg] snapshot.jpg?user=xxx&pwd=xxxx&strm=1: Keine Berechtigung Schreiben nach »snapshot.jpg?user=xxxx&pwd=xxxxx&strm=1« nicht möglich (Keine Berechtigung).
-
@David-G großes O, nicht kleines o. Und bitte lass das
sudo
weg, das verhaut dir nur die Berechtigungen. -
Danke, das war es.
Das sudo hatte ich schon weg.
Das kleine -o war das Problem.Hab grad erfolgreich das Bild per Telegram bekommen.
-
Bei mir geht es auch um wget, allerdings bekomme ich die Datei einfach nicht auf meinen USB Stick von der FritzBox gespeichert. Im User "pi" ist der Stick unter /media/fritzbox-usb eingebunden. Ich kann auch von der Konsole zugreifen. Führe ich jetzt z.B. den Befehl
wget --output-document /media/fritzbox-usb/snapshot.png 'http://192.168.178.225/capture'
aus, wird die Datei nicht gespeichert. Wenn ich das Bild in den /tmp Ordner via
wget --output-document /tmp/snapshot.png 'http://192.168.178.225/capture'
speichere, geht es ohne Probleme. Was mache ich falsch?
Von der Konsole kann ich auf den Mountpunkt zugreifen.
-
@AlCalzone gute frage.....
let axios = require('axios'); var fs = require('fs'); let bild1 = "/opt/iobroker/iobroker-data/bild.jpg"; sendImage1(); async function sendImage1() { const writer = fs.createWriteStream(bild); const response = await axios({ url: 'http://192.168.xxxxx/snapshot.jpg?user=xxxx&pwd=xxxxx&strm=1', method: 'get', responseType: 'stream' }) response.data.pipe(writer); return new Promise((resolve, reject) => { writer.on('finish', resolve => { sendTo('telegram.0', { text : bild, disable_notification: true }); }) }) }
-
@david-g
Nachdem mich das Thema mit der leeren Datei nach einem wget nun ebenfalls 2 Tage beschäftigt hat, habe ich in meinem Fall die folgende Ursache festgestellt:
Die http-Quelle, von der ich das Bild hole (bei mir Motioneye), hat die gleiche IP-Adresse wie der ioBroker, der das Bild abholt. Beide laufen in einem Docker-Container des Host-Rechners (bei mir ein QNAP-NAS) - und in dieser Konfiguration kann es passieren, dass keine Kommunikation zwischen den beiden Docker-Instanzen möglich ist. Dies ist z. B. in den 'Docker Docs' (siehe hier) beschrieben.
Ich habe dementsprechend Motioneye neu installiert mit der Netzwerkeinstellung "Bridge". Damit erhält Motioneye eine eigene IP-Adresse, und der Zugriff vom ioBroker klappt dann reibungslos