NEWS
error: javascript.0 (1178) at Object.<anonymous>
-
Was bedeutet diese Meldung?
var FileToWrite = LastValFn[ObjektIndex]; var ValueToWrite = Counter[ObjektIndex]; console.log("Datei: " + FileToWrite + ' ' + ValueToWrite); fs.writeFileSync(FileToWrite, ValueToWrite);
Der Fehler tritt in der Zeile fs.writefileSync auf. Die Datei kann aber beschreiben werden und die Zeile "console.log" davor gibt mir auch den Dateinamen und den Wert an.
-
@wolfgangfb Bist Du sicher, dass der Fehler dort auftritt und nicht an einer anderen Stelle?
-
Ich habe ein "console.log" vor die Zeile und hinter die Zeile "fs.writefilesync" gesetzt. Die Logmeldung dahinter komme nicht, wenn der Fehler auftritt.
Wenn ich in der Zeile fs.writeFileSync(FileToWrite, ValueToWrite); ValueToWrite durch "12345" ersetze läuft das Skript durch. -
@wolfgangfb Wie sieht denn der echte Wert aus, den Du schreiben möchtest, wenn Du das kommunizieren magst/kannst?
-
@great-sun sagte in error: javascript.0 (1178) at Object.<anonymous>:
@wolfgangfb Wie sieht denn der echte Wert aus, den Du schreiben möchtest, wenn Du das kommunizieren magst/kannst?
Hier die Originalausgabe der Zeile console.log("Datei: " + FileToWrite + ' ' + ValueToWrite)
Datei: /opt/iobroker/Wolfgang/Verbrauch/Heizung/lastval.txt 0.010300000000032014
-
@wolfgangfb sagte in error: javascript.0 (1178) at Object.<anonymous>:
@great-sun sagte in error: javascript.0 (1178) at Object.<anonymous>:
@wolfgangfb Wie sieht denn der echte Wert aus, den Du schreiben möchtest, wenn Du das kommunizieren magst/kannst?
Hier die Originalausgabe der Zeile console.log("Datei: " + FileToWrite + ' ' + ValueToWrite)
Datei: /opt/iobroker/Wolfgang/Verbrauch/Heizung/lastval.txt 0.010300000000032014
evtl. kommt writeToFileSync nicht mit dem Typ klar, versuch mal .toString() an ValueToWrite dran zu hängen
-
Danke, mit .ToString() funktioniert es. so ganz verstehen tue ich es aber nicht.
-
@wolfgangfb Die methode hat keine Umwandlung zu String und offensichtlich keine saubere Fehlerbehandlung. In eine Datei kannst Du nur Streams schreiben, die normalerweise aus Byte-Arrays generiert werden, deren Grundlage ein String ist.
Was Du versuchst zu schreiben ist ein numeric/float/integer, das hat zunächst keine direkte Umwandlungsmöglichkeit in einen Stream / Byte-Array, daher gibt es einen Fehler. Wenn Du es vorher in einen String umwandelst, ist alles grün.
Es gibt einige Entwickler, die da Fehler werfen, aber die Umwandlung trotzdem machen, andere implementieren eine Prüfung und brechen dann mit einem sauberen Fehler ab. Hier scheint weder noch der Fall zu sein.