NEWS
JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben)
-
Ich hab hier ein Blockly gebaut:


Die Funktion "Dateiereignis entfernen" sollte das Bild wieder löschen oder verstehe ich die Funktion fasch?
@shadowhunter23 Ja verstehst Du falsch. Das entfernt nur den Trigger.
Ist nicht notwendig die Datei zu speichern. Mittlerweile kann auch direkt eine temporäre Datei erstellt werden mit den HTTP Daten.
-
@shadowhunter23 Ja verstehst Du falsch. Das entfernt nur den Trigger.
Ist nicht notwendig die Datei zu speichern. Mittlerweile kann auch direkt eine temporäre Datei erstellt werden mit den HTTP Daten.
Ok. Ist ja auch nicht nötig das Bild zu löschen.
Aber wenn ich das hier baue dann bekomme ich bei den weiteren Timeouts die 2 Bilder senden sollen immer mehr. Je timeout kommt immer ein Bild mehr pro Kamera. Ich sehe den Fehler nicht :confused:
Die temporäre Datei möchte ich nicht verwenden.

-
Ok. Ist ja auch nicht nötig das Bild zu löschen.
Aber wenn ich das hier baue dann bekomme ich bei den weiteren Timeouts die 2 Bilder senden sollen immer mehr. Je timeout kommt immer ein Bild mehr pro Kamera. Ich sehe den Fehler nicht :confused:
Die temporäre Datei möchte ich nicht verwenden.

@shadowhunter23 Das ist ja auch maximal umständlich gemacht. Warum schreibst und liest Du die Datei überhaupt? Einfach eine temporäre Datei mit den HTTP-Bausteinen erstellen und die an Telegram übergeben.
Ich kann das wirklich nicht ausführlicher erklären als im Kurs bereits geschehen :)
-
@shadowhunter23 Das ist ja auch maximal umständlich gemacht. Warum schreibst und liest Du die Datei überhaupt? Einfach eine temporäre Datei mit den HTTP-Bausteinen erstellen und die an Telegram übergeben.
Ich kann das wirklich nicht ausführlicher erklären als im Kurs bereits geschehen :)
@haus-automatisierung
Es läuft jetzt, ich muss das "Dateiereignis entfernen" gleich ausführen.
Wie gesagt ich möchte keine temporäre Datei verwenden. -
@haus-automatisierung
Es läuft jetzt, ich muss das "Dateiereignis entfernen" gleich ausführen.
Wie gesagt ich möchte keine temporäre Datei verwenden.@shadowhunter23 sagte in JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben):
Wie gesagt ich möchte keine temporäre Datei verwenden.
Wie soll es ohne gehen? Das erlaubt das Konzept vom Telegram-Adapter aktuell gar nicht. Und der JavaScript-Adapter räumt in den Verzeichnissen ja selbst wieder auf.
-
@shadowhunter23 sagte in JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben):
Wie gesagt ich möchte keine temporäre Datei verwenden.
Wie soll es ohne gehen? Das erlaubt das Konzept vom Telegram-Adapter aktuell gar nicht. Und der JavaScript-Adapter räumt in den Verzeichnissen ja selbst wieder auf.
Hallo,
wollte gerade die Variante nutzen, ohne "extra" JS über Blockly direkt in eine Datei zu schreiben, funktioniert aber nicht.
Die obere "alte" Variante (JS, grün) funktioniert, nach /tmp/ wird die Datei: PV_Prozent.txt geschrieben/erstellt.
Drunter in orange dann die direkte Blocky-Variante, aber die Datei: PV_Prozent2.txt wird nicht erstellt (auch nicht unter /opt/iobroker).
Wo liegt der Fehler?
Muss "Objekt ID (meta)" noch verändert werden? -
Hallo,
wollte gerade die Variante nutzen, ohne "extra" JS über Blockly direkt in eine Datei zu schreiben, funktioniert aber nicht.
Die obere "alte" Variante (JS, grün) funktioniert, nach /tmp/ wird die Datei: PV_Prozent.txt geschrieben/erstellt.
Drunter in orange dann die direkte Blocky-Variante, aber die Datei: PV_Prozent2.txt wird nicht erstellt (auch nicht unter /opt/iobroker).
Wo liegt der Fehler?
Muss "Objekt ID (meta)" noch verändert werden?@topsurfer /tmp/ -Verzeichnis muss man erst anlegen.
-
@topsurfer /tmp/ -Verzeichnis muss man erst anlegen.
-
@mcu Hmmm;
auf Filesystemebene gibt es (natürlich) das /tmp schon - und darein soll ja geschrieben werden.Oder wo muss das "Verzeichnis" angelegt werden?
-
@mcu sagte in JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben):
@topsurfer Im Ordner
files/0_userdata.0/tmp/Bitte nie manuell Verzeichnisse oder Dateien unter
0_userdata.0im ioBroker-Verzeichnis anlegen! -
Hallo,
wollte gerade die Variante nutzen, ohne "extra" JS über Blockly direkt in eine Datei zu schreiben, funktioniert aber nicht.
Die obere "alte" Variante (JS, grün) funktioniert, nach /tmp/ wird die Datei: PV_Prozent.txt geschrieben/erstellt.
Drunter in orange dann die direkte Blocky-Variante, aber die Datei: PV_Prozent2.txt wird nicht erstellt (auch nicht unter /opt/iobroker).
Wo liegt der Fehler?
Muss "Objekt ID (meta)" noch verändert werden?@topsurfer sagte in JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben):
Die obere "alte" Variante (JS, grün) funktioniert, nach /tmp/ wird die Datei: PV_Prozent.txt geschrieben/erstellt.
Du verwechselst da eventuell etwas.
/tmpbezieht sich in diesem Fall ja nicht auf das/tmpVerzeichnis im Linux-Dateisystem, sondern immer auf das ioBroker-Dateisystem. Wo das liegt, hängt von Deinem Speichertyp für die Objektdatenbank ab.Nutzt Du beispielsweise
redis, landen diese Daten nicht im Dateisystem, sondern ebenfalls in der Redis-Datenbank. Beijsonlwerden diese aber ganz normal im Dateisystem gespeichert. Am besten gar nicht im Dateisystem selbst suchen (wozu auch, darum kümmert sich ja der ioBroker).In jedem Fall sollten diese danach aber über das Dateien-Tab auffindbar sein:


Insgesamt habe ich das Thema mit einigen Beispiel rauf und runter erklärt...
-
Eine Frage zu em Pattern, dass hier im Thread für "write append" vorgeschlagen wird:

Wenn die Datei nicht existiert, wird auch nichts in die Datei geschrieben - man kann sich natürlich behelfen, indem man eine leere Datei über die iobroker files Weboberfläche anlegt, aber praktischer wäre schon eine Fehlerbehandlung für den Fall, dass das Datei Lesen nicht geklappt hat.
Zumindest ein Test, ob die Datei existiert wäre hilfreich ...
Hat jemand eine Idee, wie man das ggfs. mit Blockly ohne Javascript hinkriegen kann?
-
Eine Frage zu em Pattern, dass hier im Thread für "write append" vorgeschlagen wird:

Wenn die Datei nicht existiert, wird auch nichts in die Datei geschrieben - man kann sich natürlich behelfen, indem man eine leere Datei über die iobroker files Weboberfläche anlegt, aber praktischer wäre schon eine Fehlerbehandlung für den Fall, dass das Datei Lesen nicht geklappt hat.
Zumindest ein Test, ob die Datei existiert wäre hilfreich ...
Hat jemand eine Idee, wie man das ggfs. mit Blockly ohne Javascript hinkriegen kann?
@MartinP sagte in JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben):
Wenn die Datei nicht existiert, wird auch nichts in die Datei geschrieben
Da müsste ich den Code genauer anschauen. Eventuell wird die Callback-Funktion von
readFiledann nie aufgerufen. Steht etwas im Log? -
JavaScript 7.11.0(lt. Titel) - im Ernst?
Die aktuelle Version von java-script ist 9.0.18.Mit js-controller 7.1.0 dürften - nach meinem Kenntnisstand - ältere javascript versionen (< 9.x.x) nicht mehr unterstützt sein.
@mcm1957 Naja in der Versio hatte ich die Bausteine ja hinzugefügt. Und seitdem hat sich daran auch nichts geändert. Also alles gut.
