NEWS
[gelöst] Probs im VIS nach Update .js-controller
-
Heute habe ich obige Updates (default, nicht latest) gemacht und seit dem seltsames Verhalten/Fehler festgestellt.
Aufgefallen zuerst im VIS, da dort bestimme Files nicht mehr aktualisiert wurden.
Versucht, die VIS zu editieren und dabei festgestellt, dass dort auch keine img zur Auswahl angezeigt, werden, die definitiv im Ordner vorhanden sind.Konstellation:
Ein Script legt in /opt/iobroker/iobroker-data/files/vis.0 jpg-files ab.
Diese werden in VIS über Basic-img-Widget angezeigt.Bisher wurden im VIS immer die dort durch das Script abgelegten jpg aktuellen angezeigt.
Nun wird immer ein altes jpg von vor den Updates angezeigt. (Ja, Cache von Browser geleert usw.)Also im VIS-Editor nachgeschaut, versucht, über die Quellenauswahl das aktuelle jpg auszuwählen und festgestellt, dass im Ordner /opt/iobroker/iobroker-data/files/vis.0 keine neuen Dateien mehr angezeigt werden, die durch das Skript abgelegt wurden und physisch auch dort vorhanden sind.
Nur neue Files, die ich im VIS-Editor direkt in dem Ordner uploade, oder die schon vor dem Update vorhanden waren, werden dann dort auch zur Auswahl angezeigt, aber keine neuen Files, die durch das Script abgelegt werden.
Ich vermute ein Problem mit dem Update von iobroker.vis, bin aber nicht sicher, da alle 3 Dinge gleichzeitig aktualisiert wurden.
-
@umbm das ist kein "Problem" von neuen js-controller, sondern eine beabsichtigte Einschränkung bzgl. des Verhaltens von Uploads und Dateien. Anleitungen zum Beheben der Darstellungsprobleme findest Du im Thread zum js-controller 2.x Update unter der Überschrift:
WAS IST BESONDERS ZU BEACHTEN? -
@umbm
Hi,
das kommt - wie BBTown schon schrieb - vom neuen JS-Controller, weil ein einfaches Kopieren per Script zwar funktioniert, das Bild in vis aber trotzdem nicht angezeigt wird (striktere Behandlung).
Wie Du selbst gemerkt hast, werden aber Bilder die per vis-Editor hochgeladen werden, angezeigt.
Sie werden nicht angezeigt, wenn Du sie manuell auf anderem Weg dorthin kopierst.Bei mir wurden auch keine Cam-Snapshots mehr angezeigt, obwohl sie per Script erfolgreich kopiert wurden.
Lösung:
Im Script die Befehle var fs = require('fs'); , fs.readFileSync und writeFile verwenden.
Das heißt, die Bilder werden "eingelesen" und dann in den entspr. Ordner "geschrieben", also kein simples kopieren.
(Evtl. muss zusätzlich auch im JS-Adapter "fs" als zusätzliches NPM-Modul eingetragen werden)Hier ( js-controller-2-0-ab-sofort-im-latest-repo ) ein Beispiel-Script, welches meine 2 Cam-Bilder einliest und dann im entspr. Ordner "wegschreibt".
Diese Cam-Bilder werden dann auch wieder im vis angezeigt.
Gruß
Jörg -
-
Nachtrag:
Der Telegram-Adapter ist davon aber nicht betroffen.
Der sendet weiterhin den normal über exec('wget --output-document... geholten camshot, ohne dass die Datei zuvor neu mit writeFile geschrieben werden muss. -
@joergeli sagte in [gelöst] Probs im VIS nach Update .js-controller:
Bei mir wurden auch keine Cam-Snapshots mehr angezeigt, obwohl sie per Script erfolgreich kopiert wurden.
Lösung:
Im Script die Befehle var fs = require('fs'); , fs.readFileSync und writeFile verwenden.
Das heißt, die Bilder werden "eingelesen" und dann in den entspr. Ordner "geschrieben", also kein simples kopieren.
(Evtl. muss zusätzlich auch im JS-Adapter "fs" als zusätzliches NPM-Modul eingetragen werden)Kann man das ganze auch mit Blockly umsetzen?
Ich mache alles in Blockly und möchte ungerne für dieses "kopieren" ein weiteres Skript pflegen. -
@aleks-83
Da bin ich überfragt, da ich Blockly nicht nutze.
Ich vermute "ja", aber warte bis die Experten was dazu sagen.