Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]Datei erzeugen writeFile

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst]Datei erzeugen writeFile

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      looxer01 last edited by

      Hallo zusammen,

      ich bin dabei meine CCU Programme zu portieren was mir schon zu einem drittel gelungen ist.

      Nun habe ich ein Programm, dass meinen Pelletverbrauch logged. Die Logik ist folgendermassen

      Trigger1: Motor ist eingestellt

      Logik: merke Startzeit

      Trigger2: Motor ist ausgestellt

      Logik:

      • merke Endzeit

      Berechne Differenz in Sekudnen

      Multipliziere mit Faktor (KG per minute/60)

      Addiere zu vorhandenem Datenpunkt (Verbrauch in KG) den berechneten Verbrauch

      Schreibe in Textdatei die Zeile mit:

      • startzeit

      • Endzeit

      • Zeit in Sekunden

      • Verbrauch in KG

      Jetzt habe ich als erstes versucht den Befehl für das Schreiben der Datei zu finden.

      Den gibt es übrigens in Javascript nicht (Sicherheit) aber für ioBroker ist WriteFile dokumentiert.

      Wenn ich mal versuche diesen Befehl abzusetzen, dann gibt es einen Fehler im Log

      javascript-0 2015-11-14 11:47:50 error at script.js.TestScriptWrite(1):2:6

      javascript-0 2015-11-14 11:47:50 error script.js.TestScriptWrite(1): ReferenceError: WriteFile is not defined

      das kam nur aufgrund eines simplen Versuches raus: WriteFile("output.txt", "Testtext",0644);

      ist der WriteFile Befehl überhaupt verfügbar ?

      Gibt es noch Alternativen ?

      vG Looxer

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        Es sit wichtig ob du "WriteFile" oder "writeFile" schreibst.

        Es gibt zwei Funktionen "writeFile" um die Dateien in ioBroker DB zu schreiben und fs.writeFile um die Dateien auf der Festplatte zu schreiben.

        Du versuchst vermutlich auf der Festplatte zu zugreifen. Ricjtig ist aber so:
        ` > var fs = require('fs');

        fs.writeFileSync("output.txt", "Testtext",0644); `

        Um auf ioBroker FileSystem zu zugreifen:
        > writeFile("output.txt", "Testtext");

        1 Reply Last reply Reply Quote 0
        • L
          looxer01 last edited by

          1000 Dank BF. Ich habe es jetzt hinbekommen.

          Da ich dem zu schreibenden File immer Zeilen hinzufügen möchte sieht die Lösung leicht abgewandelt so aus:

          var fs = require('fs');
          fs.appendFileSync("/opt/logoutput.txt", "Testtext1;" + "\n");
          
          

          Das + "\n" fügt einen Zeilenumbruch hinzu.

          mit writeFile habe ich keinen append hinbekommen

          vG Looxer

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          721
          Online

          31.7k
          Users

          79.7k
          Topics

          1.3m
          Posts

          2
          3
          1849
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo