Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Newbie Wert aus Datei in einen neuen Datenpunkt schreiben.

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Newbie Wert aus Datei in einen neuen Datenpunkt schreiben.

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

      Hallo,

      ich habe eine Datei auf /temp/a.txt liegen in der steht ein Wert drin. Z.B.

      21.5

      Diese Zahl möchte ich in einen neuen Datenpunkt schreiben ich weiß aber nicht wie.

      Probiert habe ich schon das (und das das auskommentiert ist):

      ! ````
      var x;
      ! /**

      • Beschreibe diese Funktion …
        /
        function JS_Funktion_mit_Ergebnis(x) {
        /

        function PoolTemp_Schreiben ()
        {
        var PoolTemp = "cat /tmp/a.txt";
        console.log('PoolTempState = ' + PoolTemp);
        setState('PoolTempState', parseInt(PoolTemp));
        //}
        //return 0
        /
        schedule("
        * * * * *", function () {
        setState("PoolTempState"/Wohnzimmer-Chromecast.status.volume/, PoolTemp);
        //setState("chromecast.0.Wohnzimmer-Chromecast.status.volume"/Wohnzimmer-Chromecast.status.volume/, 10);
        });
        return 0;

      ! }
      ! ````

      Wer kann mir helfen?

      Danke und viele Grüße

      Marcel Jaud

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

        Dafür ist https://github.com/ioBroker/ioBroker.javascript#readfile gedacht.

        var fn = '/temp/a.txt';
        var idPooltemp = 'PoolTempState';
        
        function getPooltemp() {
            readFile(fn, function (error, data) {
                if(error) log('Fehler beim Lesen von ' + fn, 'error');
                else setState(idPooltemp, parseFloat(data));
            });
        }
        
        schedule('*/1 * * * *', getPooltemp);  // Jede Minute
        
        
        1 Reply Last reply Reply Quote 0
        • J
          Jautze last edited by

          Hi,

          Danke.

          Da kommt aber:

          19:21:51.023 [info] javascript.0 Stop script script.js.common.Pool_Temp

          19:21:51.059 [info] javascript.0 Start javascript script.js.common.Pool_Temp

          19:21:51.060 [info] javascript.0 script.js.common.Pool_Temp: registered 0 subscriptions and 1 schedule

          19:22:00.064 [error] javascript.0 script.js.common.Pool_Temp: Fehler beim Lesen von /tmp/a.txt

          19:23:00.067 [error] javascript.0 script.js.common.Pool_Temp: Fehler beim Lesen von /tmp/a.txt

          19:24:00.065 [error] javascript.0 script.js.common.Pool_Temp: Fehler beim Lesen von /tmp/a.txt

          da ist sie aber:

          pi@raspberrypi:~ $ ls /tmp/a.txt

          /tmp/a.txt

          Und wohin wird dann der Wert geschrieben? Ich will den dann in vis benutzen.

          Danke und viele Grüße

          Marcel

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

            Kommentiere mal die Zeile mit if(error) aus und lösche das else.
            @Jautze:

            Und wohin wird dann der Wert geschrieben? `
            In den Datenpunkt mit der ID 'javascript.0.PoolTempState' vom Typ 'number' (Zahl), der vorher im Reiter Objekte erzeugt werden muss (http://www.iobroker.net/docu/?page_id=5495&lang=de#6hinzufuegen).

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

              Falls das nicht funktioniert, gibt es noch diese Variante:

              var fs = require('fs');
              var fn = '/tmp/a.txt';
              var idPooltemp = 'PoolTempState';
              
              function getPooltemp() {
                  fs.readFile(fn, 'utf8',  function(error, data) {
                      if(error) log('Fehler beim Lesen von ' + fn, 'error');
                      else setState(idPooltemp, parseFloat(data));
                  });
              }
              
              schedule('*/1 * * * *', getPooltemp);  // Jede Minute
              
              1 Reply Last reply Reply Quote 1
              • J
                Jautze last edited by

                Hi,

                geht leider immer noch nicht.

                19:59:42.350 [info] javascript.0 Start javascript script.js.common.Pool_Temp

                19:59:42.351 [info] javascript.0 script.js.common.Pool_Temp: schedule(cron=*/1 * * * *)

                19:59:42.351 [info] javascript.0 script.js.common.Pool_Temp: registered 0 subscriptions and 1 schedule

                20:00:00.345 [info] javascript.0 script.js.common.Pool_Temp: readFile(adapter=null, fileName=/tmp/a.txt)

                20:00:00.351 [info] javascript.0 script.js.common.Pool_Temp: setForeignState(id=javascript.0.PoolTempState, state=null)

                20:00:00.352 [warn] javascript.0 script.js.common.Pool_Temp: setForeignState(id=javascript.0.PoolTempState, state=null) - was not executed, while debug mode is active

                20:01:00.346 [info] javascript.0 script.js.common.Pool_Temp: readFile(adapter=null, fileName=/tmp/a.txt)

                20:01:00.350 [info] javascript.0 script.js.common.Pool_Temp: setForeignState(id=javascript.0.PoolTempState, state=null)

                20:01:00.352 [warn] javascript.0 script.js.common.Pool_Temp: setForeignState(id=javascript.0.PoolTempState, state=null) - was not executed, while debug mode is active

                Danke und viele Grüße

                Marcel Jaud

                1 Reply Last reply Reply Quote 0
                • J
                  Jautze last edited by

                  Hi,

                  Ok dein 2. Post geht.

                  Super danke.

                  Viele Grüße

                  Marcel Jaud

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  785
                  Online

                  31.7k
                  Users

                  79.8k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  2319
                  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