NEWS
[gelöst] Bildanzeige veraltet
-
Ja danke den Hinweis mit writefile habe ich gefunden.
Ich möchte aber ungerne ein weitere Skript anlegen.
Denn aktuell mache ich alles in Blockly. -
Ich habe dieses problem immer noch nicht in den Griff bekommen
Leider verstehe ich zu wenig von dem JavaScript aus deinem Link. @Glasfaser
Daraus kann ich mir kein passendes Skript für mich bauen.Ich stehe also vor dem Problem:
vis kann keine Dateien anzeigen die höher liegen als "/iobroker-data/files/".
Javascript (Blockly bei mir) darf unterhalb dieses Ordners aber keine Dateien ablegen.Kann ich vielleicht einen Symlink erstellen? (Unter Windows?)
-
-
@Glasfaser
Danke, das verstehe ich zumindest ansatzweise.Ich habe mal mein Blockly Skript in JS konvertiert und folgenden Block eingefügt:
const bild1 = fs.readFileSync(folder,'snap01.jpg'); writeFile('0_userdata.0','alarm1.jpg', bild1);
var Empfaenger, Satz, date, timeout8, folder, timeout9, timeout10, timeout7, timeout2, timeout3, timeout4, timeout6, timeout, timeout5; var fs = require('fs'); const path = require('path'); on({id: "javascript.0.TEST.bDummy"/*BOOL dummy*/, change: "ne"}, function (obj) { if (getState("javascript.0.TEST.bDummy").val == true) { setState("javascript.0.TEST.bDummy", false); Satz = 'Satz1'; folder = 'D:\\ioBroker\\Besucherfotos\\TEST\\'; // Neues Verzeichnis auf D mit Datum erstellen exec(('md ' + String(folder))); console.debug("exec: " + ('md ' + String(folder))); console.warn((['### Verzeichnis für Besucherfotos erstellt (',folder,')'].join(''))); // Snapshot 1 holen exec((['wget --output-document ',folder,'snap01.jpg http://ioBroker:XXXXXX@10.0.0.21/ISAPI/Streaming/channels/101/picture'].join(''))); console.debug("exec: " + (['wget --output-document ',folder,'snap01.jpg http://ioBroker:XXXXXX@10.0.0.21/ISAPI/Streaming/channels/101/picture'].join(''))); timeout = setTimeout(function () { // Snapshots für VIS ablegen const bild1 = fs.readFileSync(path.join(folder,'snap01.jpg')); writeFile(path.join('vis.0/snapshots/',Satz),'/snap01.jpg', bild1, function (errorWRITE) {}); }, 2000); } }); function errorDEL() { // function falls Fehler beim Löschen console.error(('### Fehler beim Löschen (IPcam Snapshot)')); }; function errorWRITE() { // function falls Fehler beim Schreiben console.error(('### Fehler beim Datei schreiben (IPcam Snapshot)')); };
Wie lege ich denn als Ziel dann einen Ordner fest?
Also anstatt "0_userdata.0" möchte ich die Bilder dann unter "D:/ioBroker/NUC/iobroker-data/files/vis.0/snapshots/" ablegenDer snapshot wird von der Kamera geholt und unter "folder" abgelegt.
Unter "vis.0/snapshots/',Satz" liegt dann aber kein Bild.
Die function "errorDEL()" wird nicht aufgerufen. -
Meins sieht so aus , damit Kopiere ich in Vis.0
const bild1 = fs.readFileSync('/tmp/carport1.jpg'); writeFile('vis.0','/klingelbild/carport1.jpg', bild1);
-
Ich kann leider Windows nicht bei mir testen ... habe alles auf der Synology.
Versuche mal den Baustein mit reinzunehmen , damit kannst du direkt das Foto hinterlegen:
exec('wget --output-document /opt/iobroker/iobroker-data/tmp/Snapshot.jpg \'http://ioBroker:XXXXXX@10.0.0.21/ISAPI/Streaming/channels/101/picture\'');
Nimm eine leer JS und führe es dort aus ... direkt starten !!
-
@Glasfaser sagte in Bildanzeige veraltet:
Meins sieht so aus , damit Kopiere ich in Vis.0
const bild1 = fs.readFileSync('/tmp/carport1.jpg'); writeFile('vis.0','/klingelbild/carport1.jpg', bild1);
OK, das scheint es gewesen zu sein !
So funktioniert mein Test Skript. Mal sehen ob mein "Produktiv Skript" das auch richtig umsetzt.Vielen Dank
-
Hast du oben meine Beitrag gesehen ... mit dem Direktlink
-
Ja, den wget output benutze ich ja schon um den snap in meinem "D:" Ordner abzulegen.
Ich meine ich hatte es so auch schon versucht direkt unter vis.0 abzulegen.
Das ging glaube ich nicht. -
Sorry habe tmp nicht getauscht .. war ein Versuchsschnipsel ...
aber kommst du jetzt weiter ... oder soll ich dir mein gesamt Skript senden !!!
-
Es funktioniert jetzt alles !!
Danke dir.Ich markiere als gelöst.
-
Freut mich ...
war aber schon lange her ... von 2019