Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JS # mit einer Schleife eine function mehrfach aufrufen und ebusd abfragen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    JS # mit einer Schleife eine function mehrfach aufrufen und ebusd abfragen

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

      @der_Auge:

      leider noch mehr Fehlermeldungen und nicht definierte Variablen

      😢

      Gruß

      Jürgen `

      Welche variablen waren nicht definiert?

      element und elementName? Das hatte ich alles so von deinem Code übernommen.

      Neuer Versuch:

      `// =============================================================================
      // --- Abfragen von Werten vom "ebusd"
      // =============================================================================
      var logging = true; // "true" oder "false" wenn nicht gewünscht
      var HOST = 'RPi2-2'; // Hostname oder IP-Adresse auf dem der ebusd läuft
      var PORT = 8888; // Portnummer auf dem der ebusd hört
      var step = -1;
      //var element = 'PrEnergySumHwc1'; // Hier Name des element eintragen das abgefragt werden soll
      //var elementName = "Betriebsstunden im Heizbetrieb"; // Hier die Bezeichnung für das element eintragen
      //var req = 'read -f ' + element; // der Befehl wird zusammengesetzt
      //var pfad = 'eBus.Temperatur.'+ element; // Pfad innerhalb der Instanz wo die Daten gespeichert werden
      // =============================================================================
      var net = require('net');
      var client = new net.Socket();
      // =============================================================================
      var Elemente = ['PrEnergySumHwc1','PrEnergyCountHwc1','HcHours'];
      var ElementeNamen = ['Betriebsstunden im Heizbetrieb','Betriebsstunden','Stunden' ];
      // =============================================================================
      
      // =============================================================================
      // Datenpunkte anlegen 
      // =============================================================================
      function anlegen(){
      if (logging) log('--> Start -> es gibt ' + Elemente.length + ' Elemente');
      for(var i=0;i <elemente.length;i++) {/var/pfad="eBus.Temperatur." +/elemente[i];/innerhalb/der/instanz/wo/die/daten/gespeichert/werden/createstate(pfad,/0,/{name:/elementenamen[i]});/if/(logging)/log('0.'/i/'/datenpunkt:/-="">' + ElementeNamen[i] + ' angelegt');
      }}
      // =============================================================================
      
      // =============================================================================
      // --- function zum Abfragen der Werte
      // =============================================================================
      function readElement(){
      if(Elemente.length < 1){
         log('keine Elemente zum abfragen');
         client.destroy();
         return;
      }
      if(step < Elemente.length){step++}
      else{
      step = -1;
      setTimeout(readElement, 60000); //Wenn alle Werte abgefragt sind--> Neustart in 1 Minute
      return;
      }
      if (logging) log('0.->Neue Abfrage');
      // --- hier dann die function mit werten aufrufen
      var req = 'read -f ' + Elemente[step]; // der Befehl wird zusammengesetzt
      var ele = Elemente[step];
      var eleN = ElementeNamen[step];
      client.write(req + '\n');
      if (logging) log('1\. BEFEHL wurde gesendet : ' + req);
      }
      
      // =============================================================================
      // --- Aufruf --- DATEN lesen
      // =============================================================================
      client.on('data', function(data) {
      if (logging) log('3\. Daten werden empfangen : ' + data);
      // --- die empfangenen Daten werden gewandelt und aufgeteilt (SUB-Funktion) ---
      var datastr = data.toString();
      if (logging) log('3a. RX-Daten (String) : ' + datastr);
      //------------------------------------------------------------------------------
      var databuf = '';
      var prev = 0, next;
      if (logging) log('3b.Durchlauf : ' + prev);
      while ((next = datastr.indexOf('\n\n', prev)) > -1) {
      databuf += datastr.substring(prev, next);
      if (logging) log('3c. Funktion aufrufen mit : ' + databuf + " als Daten");
      //--- SUB-Funktion aufrufen ---
      parse(databuf);
      databuf = ''; // Datenbuffer leeren
      prev = next + 1;
      }
      databuf += datastr.substring(prev);
      readElement();//Abfragen des nächsten Wertes
      //------------------------------------------------------------------------------
      });
      // =============================================================================
      
      // =============================================================================
      // Verbindungsabbau
      // =============================================================================
      client.on('close', function() {
      if (logging) {
          log( 'Verbindung geschlossen .');
          client.destroy();
      }});
      // =============================================================================
      
      // =============================================================================
      // --- SUB-Funktion --- Daten-String aufteilen
      // =============================================================================
      function parse(data) {
      var arr = data.toString().split(/\r?;/); // wie viele Werte werden durch ";" getrennt 
      if (logging) log("3d. Menge an Daten durch ; getrennt : " + arr.length);
      
      var fields = data.toString().split('\;'); // hier wird auf den = getriggert
      if (logging) log('anzahl an Feldern : ' + fields.length);
      if(fields.length > 0) { // wenn mehrere Felder gefunden wurden
      if (logging) log('WertVor : ' + fields[0]);
      var WertVor =fields[0];
      if (logging) log("WertNach : " + fields[1]);
      fields[0] = fields[0].replace(' ','_');
      if (logging) log("Feld 1 : " + fields[0]);
      if (logging) log("Feld 2 : " + fields[1]);
      setState(pfad, WertVor); // Werte setzen
      if (logging) log('im Datenpunkt "' +pfad + '" wird "' + WertVor + '" gespeichert');
      }
      }
      // =============================================================================
      
      // =============================================================================
      // --- Function --- Fehler abfangen und ausgeben
      // =============================================================================
      client.on('error', function(err) {
         client.destroy();
      if (logging) log(' Es ist ein Fehler aufgetreten : '+ err);
      });
      // =============================================================================
      // =============================================================================
      // Verbindungsaufbau
      // =============================================================================
      client.connect(PORT, HOST, function(){
      readElement();
      if (logging) log('1\. Verbindungsaufbau zu : ' + HOST + ':' + PORT);
      
      });
      // =============================================================================
      
      anlegen();//States anlegen
      
      //setInterval(readElement, 60000);</elemente.length;i++)>`[/i][/i][/i]
      
      1 Reply Last reply Reply Quote 0
      • D
        der_Auge last edited by

        Die Fehlermeldung:

        ! ````
        2017-12-26 14:13:03.914 - info: javascript.0 Start javascript script.js.ebusd.eBus_anfang_4
        2017-12-26 14:13:03.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4: --> Start -> es gibt 3 Elemente
        2017-12-26 14:13:03.942 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.0 Datenpunkt: eBus.Temperatur.PrEnergySumHwc1 -> Betriebsstunden im Heizbetrieb angelegt
        2017-12-26 14:13:03.943 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.1 Datenpunkt: eBus.Temperatur.PrEnergyCountHwc1 -> Betriebsstunden angelegt
        2017-12-26 14:13:03.944 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.2 Datenpunkt: eBus.Temperatur.HcHours -> Stunden angelegt
        2017-12-26 14:13:03.944 - info: javascript.0 script.js.ebusd.eBus_anfang_4: registered 0 subscriptions and 0 schedules
        2017-12-26 14:13:04.036 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.->Neue Abfrage
        2017-12-26 14:13:04.038 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 1. BEFEHL wurde gesendet : read -f PrEnergySumHwc1
        2017-12-26 14:13:04.038 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 1. Verbindungsaufbau zu : RPi2-2:8888
        2017-12-26 14:13:04.191 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3. Daten werden empfangen : 9185796
        ! 2017-12-26 14:13:04.192 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3a. RX-Daten (String) : 9185796
        ! 2017-12-26 14:13:04.192 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3b.Durchlauf : 0
        2017-12-26 14:13:04.193 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3c. Funktion aufrufen mit : 9185796 als Daten
        2017-12-26 14:13:04.195 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3d. Menge an Daten durch ; getrennt : 1
        2017-12-26 14:13:04.195 - info: javascript.0 script.js.ebusd.eBus_anfang_4: anzahl an Feldern : 1
        2017-12-26 14:13:04.195 - info: javascript.0 script.js.ebusd.eBus_anfang_4: WertVor : 9185796
        2017-12-26 14:13:04.196 - info: javascript.0 script.js.ebusd.eBus_anfang_4: WertNach : undefined
        2017-12-26 14:13:04.196 - info: javascript.0 script.js.ebusd.eBus_anfang_4: Feld 1 : 9185796
        2017-12-26 14:13:04.196 - info: javascript.0 script.js.ebusd.eBus_anfang_4: Feld 2 : undefined
        2017-12-26 14:13:04.212 - error: javascript.0 uncaught exception: pfad is not defined
        2017-12-26 14:13:04.212 - error: javascript.0 ReferenceError: pfad is not defined
        at parse (script.js.ebusd.eBus_anfang_4:112:10)
        at Socket. <anonymous>(script.js.ebusd.eBus_anfang_4:74:1)
        at emitOne (events.js:96:13)
        at Socket.emit (events.js:188:7)
        at readableAddChunk (_stream_readable.js:176:18)
        at Socket.Readable.push (_stream_readable.js:134:10)
        at TCP.onread (net.js:547:20)
        2017-12-26 14:13:04.224 - info: javascript.0 terminating
        2017-12-26 14:13:04.266 - error: Caught by controller[0]: ReferenceError: pfad is not defined
        2017-12-26 14:13:04.267 - error: Caught by controller[0]: at parse (script.js.ebusd.eBus_anfang_4:112:10)
        2017-12-26 14:13:04.269 - error: Caught by controller[0]: at Socket. <anonymous>(script.js.ebusd.eBus_anfang_4:74:1)
        2017-12-26 14:13:04.269 - error: Caught by controller[0]: at emitOne (events.js:96:13)
        2017-12-26 14:13:04.269 - error: Caught by controller[0]: at Socket.emit (events.js:188:7)
        2017-12-26 14:13:04.270 - error: Caught by controller[0]: at readableAddChunk (_stream_readable.js:176:18)
        2017-12-26 14:13:04.270 - error: Caught by controller[0]: at Socket.Readable.push (_stream_readable.js:134:10)
        2017-12-26 14:13:04.270 - error: Caught by controller[0]: at TCP.onread (net.js:547:20)
        2017-12-26 14:13:04.270 - error: host.ioBmaster instance system.adapter.javascript.0 terminated with code 0 (OK)
        2017-12-26 14:13:04.270 - info: host.ioBmaster Restart adapter system.adapter.javascript.0 because enabled</anonymous></anonymous>

        
        

        2017-12-26 14:13:37.208 - error: javascript.0 uncaught exception: pfad is not defined
        2017-12-26 14:13:37.209 - error: javascript.0 ReferenceError: pfad is not defined

        1 Reply Last reply Reply Quote 0
        • blauholsten
          blauholsten Developer last edited by

          @der_Auge:

          Die Fehlermeldung:

          ! ````
          2017-12-26 14:13:03.914 - info: javascript.0 Start javascript script.js.ebusd.eBus_anfang_4
          2017-12-26 14:13:03.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4: --> Start -> es gibt 3 Elemente
          2017-12-26 14:13:03.942 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.0 Datenpunkt: eBus.Temperatur.PrEnergySumHwc1 -> Betriebsstunden im Heizbetrieb angelegt
          2017-12-26 14:13:03.943 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.1 Datenpunkt: eBus.Temperatur.PrEnergyCountHwc1 -> Betriebsstunden angelegt
          2017-12-26 14:13:03.944 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.2 Datenpunkt: eBus.Temperatur.HcHours -> Stunden angelegt
          2017-12-26 14:13:03.944 - info: javascript.0 script.js.ebusd.eBus_anfang_4: registered 0 subscriptions and 0 schedules
          2017-12-26 14:13:04.036 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.->Neue Abfrage
          2017-12-26 14:13:04.038 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 1. BEFEHL wurde gesendet : read -f PrEnergySumHwc1
          2017-12-26 14:13:04.038 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 1. Verbindungsaufbau zu : RPi2-2:8888
          2017-12-26 14:13:04.191 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3. Daten werden empfangen : 9185796
          ! 2017-12-26 14:13:04.192 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3a. RX-Daten (String) : 9185796
          ! 2017-12-26 14:13:04.192 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3b.Durchlauf : 0
          2017-12-26 14:13:04.193 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3c. Funktion aufrufen mit : 9185796 als Daten
          2017-12-26 14:13:04.195 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3d. Menge an Daten durch ; getrennt : 1
          2017-12-26 14:13:04.195 - info: javascript.0 script.js.ebusd.eBus_anfang_4: anzahl an Feldern : 1
          2017-12-26 14:13:04.195 - info: javascript.0 script.js.ebusd.eBus_anfang_4: WertVor : 9185796
          2017-12-26 14:13:04.196 - info: javascript.0 script.js.ebusd.eBus_anfang_4: WertNach : undefined
          2017-12-26 14:13:04.196 - info: javascript.0 script.js.ebusd.eBus_anfang_4: Feld 1 : 9185796
          2017-12-26 14:13:04.196 - info: javascript.0 script.js.ebusd.eBus_anfang_4: Feld 2 : undefined
          2017-12-26 14:13:04.212 - error: javascript.0 uncaught exception: pfad is not defined
          2017-12-26 14:13:04.212 - error: javascript.0 ReferenceError: pfad is not defined
          at parse (script.js.ebusd.eBus_anfang_4:112:10)
          at Socket. <anonymous>(script.js.ebusd.eBus_anfang_4:74:1)
          at emitOne (events.js:96:13)
          at Socket.emit (events.js:188:7)
          at readableAddChunk (_stream_readable.js:176:18)
          at Socket.Readable.push (_stream_readable.js:134:10)
          at TCP.onread (net.js:547:20)
          2017-12-26 14:13:04.224 - info: javascript.0 terminating
          2017-12-26 14:13:04.266 - error: Caught by controller[0]: ReferenceError: pfad is not defined
          2017-12-26 14:13:04.267 - error: Caught by controller[0]: at parse (script.js.ebusd.eBus_anfang_4:112:10)
          2017-12-26 14:13:04.269 - error: Caught by controller[0]: at Socket. <anonymous>(script.js.ebusd.eBus_anfang_4:74:1)
          2017-12-26 14:13:04.269 - error: Caught by controller[0]: at emitOne (events.js:96:13)
          2017-12-26 14:13:04.269 - error: Caught by controller[0]: at Socket.emit (events.js:188:7)
          2017-12-26 14:13:04.270 - error: Caught by controller[0]: at readableAddChunk (_stream_readable.js:176:18)
          2017-12-26 14:13:04.270 - error: Caught by controller[0]: at Socket.Readable.push (_stream_readable.js:134:10)
          2017-12-26 14:13:04.270 - error: Caught by controller[0]: at TCP.onread (net.js:547:20)
          2017-12-26 14:13:04.270 - error: host.ioBmaster instance system.adapter.javascript.0 terminated with code 0 (OK)
          2017-12-26 14:13:04.270 - info: host.ioBmaster Restart adapter system.adapter.javascript.0 because enabled</anonymous></anonymous>

          
          

          2017-12-26 14:13:37.208 - error: javascript.0 uncaught exception: pfad is not defined
          2017-12-26 14:13:37.209 - error: javascript.0 ReferenceError: pfad is not defined
          ```` `
          Gut, die Abfrage scheint ja jetzt schonmal zu gehen. Das zerlegen der Antwort habe ich mir nicht angeschaut, aber dort ist pfad nicht deklariert.

          1 Reply Last reply Reply Quote 0
          • D
            der_Auge last edited by

            @blauholsten:

            @der_Auge:

            Die Fehlermeldung:

            ! ````
            2017-12-26 14:13:03.914 - info: javascript.0 Start javascript script.js.ebusd.eBus_anfang_4
            2017-12-26 14:13:03.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4: --> Start -> es gibt 3 Elemente
            2017-12-26 14:13:03.942 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.0 Datenpunkt: eBus.Temperatur.PrEnergySumHwc1 -> Betriebsstunden im Heizbetrieb angelegt
            2017-12-26 14:13:03.943 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.1 Datenpunkt: eBus.Temperatur.PrEnergyCountHwc1 -> Betriebsstunden angelegt
            2017-12-26 14:13:03.944 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.2 Datenpunkt: eBus.Temperatur.HcHours -> Stunden angelegt
            2017-12-26 14:13:03.944 - info: javascript.0 script.js.ebusd.eBus_anfang_4: registered 0 subscriptions and 0 schedules
            2017-12-26 14:13:04.036 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.->Neue Abfrage
            2017-12-26 14:13:04.038 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 1. BEFEHL wurde gesendet : read -f PrEnergySumHwc1
            2017-12-26 14:13:04.038 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 1. Verbindungsaufbau zu : RPi2-2:8888
            2017-12-26 14:13:04.191 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3. Daten werden empfangen : 9185796
            ! 2017-12-26 14:13:04.192 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3a. RX-Daten (String) : 9185796
            ! 2017-12-26 14:13:04.192 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3b.Durchlauf : 0
            2017-12-26 14:13:04.193 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3c. Funktion aufrufen mit : 9185796 als Daten
            2017-12-26 14:13:04.195 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3d. Menge an Daten durch ; getrennt : 1
            2017-12-26 14:13:04.195 - info: javascript.0 script.js.ebusd.eBus_anfang_4: anzahl an Feldern : 1
            2017-12-26 14:13:04.195 - info: javascript.0 script.js.ebusd.eBus_anfang_4: WertVor : 9185796
            2017-12-26 14:13:04.196 - info: javascript.0 script.js.ebusd.eBus_anfang_4: WertNach : undefined
            2017-12-26 14:13:04.196 - info: javascript.0 script.js.ebusd.eBus_anfang_4: Feld 1 : 9185796
            2017-12-26 14:13:04.196 - info: javascript.0 script.js.ebusd.eBus_anfang_4: Feld 2 : undefined
            2017-12-26 14:13:04.212 - error: javascript.0 uncaught exception: pfad is not defined
            2017-12-26 14:13:04.212 - error: javascript.0 ReferenceError: pfad is not defined
            at parse (script.js.ebusd.eBus_anfang_4:112:10)
            at Socket. <anonymous>(script.js.ebusd.eBus_anfang_4:74:1)
            at emitOne (events.js:96:13)
            at Socket.emit (events.js:188:7)
            at readableAddChunk (_stream_readable.js:176:18)
            at Socket.Readable.push (_stream_readable.js:134:10)
            at TCP.onread (net.js:547:20)
            2017-12-26 14:13:04.224 - info: javascript.0 terminating
            2017-12-26 14:13:04.266 - error: Caught by controller[0]: ReferenceError: pfad is not defined
            2017-12-26 14:13:04.267 - error: Caught by controller[0]: at parse (script.js.ebusd.eBus_anfang_4:112:10)
            2017-12-26 14:13:04.269 - error: Caught by controller[0]: at Socket. <anonymous>(script.js.ebusd.eBus_anfang_4:74:1)
            2017-12-26 14:13:04.269 - error: Caught by controller[0]: at emitOne (events.js:96:13)
            2017-12-26 14:13:04.269 - error: Caught by controller[0]: at Socket.emit (events.js:188:7)
            2017-12-26 14:13:04.270 - error: Caught by controller[0]: at readableAddChunk (_stream_readable.js:176:18)
            2017-12-26 14:13:04.270 - error: Caught by controller[0]: at Socket.Readable.push (_stream_readable.js:134:10)
            2017-12-26 14:13:04.270 - error: Caught by controller[0]: at TCP.onread (net.js:547:20)
            2017-12-26 14:13:04.270 - error: host.ioBmaster instance system.adapter.javascript.0 terminated with code 0 (OK)
            2017-12-26 14:13:04.270 - info: host.ioBmaster Restart adapter system.adapter.javascript.0 because enabled</anonymous></anonymous>

            
            

            2017-12-26 14:13:37.208 - error: javascript.0 uncaught exception: pfad is not defined
            2017-12-26 14:13:37.209 - error: javascript.0 ReferenceError: pfad is not defined
            ```` Gut, die Abfrage scheint ja jetzt schonmal zu gehen. Das zerlegen der Antwort habe ich mir nicht angeschaut, aber dort ist pfad nicht deklariert.
            er versucht doch da die Werte weg zu schreiben

            setState(pfad, WertVor); // Werte setzen

            die var "pfad" wird nicht mit übergeben?

            1 Reply Last reply Reply Quote 0
            • blauholsten
              blauholsten Developer last edited by

              @der_Auge:

              @blauholsten:

              @der_Auge:

              Die Fehlermeldung:

              ! ````
              2017-12-26 14:13:03.914 - info: javascript.0 Start javascript script.js.ebusd.eBus_anfang_4
              2017-12-26 14:13:03.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4: --> Start -> es gibt 3 Elemente
              2017-12-26 14:13:03.942 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.0 Datenpunkt: eBus.Temperatur.PrEnergySumHwc1 -> Betriebsstunden im Heizbetrieb angelegt
              2017-12-26 14:13:03.943 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.1 Datenpunkt: eBus.Temperatur.PrEnergyCountHwc1 -> Betriebsstunden angelegt
              2017-12-26 14:13:03.944 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.2 Datenpunkt: eBus.Temperatur.HcHours -> Stunden angelegt
              2017-12-26 14:13:03.944 - info: javascript.0 script.js.ebusd.eBus_anfang_4: registered 0 subscriptions and 0 schedules
              2017-12-26 14:13:04.036 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 0.->Neue Abfrage
              2017-12-26 14:13:04.038 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 1. BEFEHL wurde gesendet : read -f PrEnergySumHwc1
              2017-12-26 14:13:04.038 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 1. Verbindungsaufbau zu : RPi2-2:8888
              2017-12-26 14:13:04.191 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3. Daten werden empfangen : 9185796
              ! 2017-12-26 14:13:04.192 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3a. RX-Daten (String) : 9185796
              ! 2017-12-26 14:13:04.192 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3b.Durchlauf : 0
              2017-12-26 14:13:04.193 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3c. Funktion aufrufen mit : 9185796 als Daten
              2017-12-26 14:13:04.195 - info: javascript.0 script.js.ebusd.eBus_anfang_4: 3d. Menge an Daten durch ; getrennt : 1
              2017-12-26 14:13:04.195 - info: javascript.0 script.js.ebusd.eBus_anfang_4: anzahl an Feldern : 1
              2017-12-26 14:13:04.195 - info: javascript.0 script.js.ebusd.eBus_anfang_4: WertVor : 9185796
              2017-12-26 14:13:04.196 - info: javascript.0 script.js.ebusd.eBus_anfang_4: WertNach : undefined
              2017-12-26 14:13:04.196 - info: javascript.0 script.js.ebusd.eBus_anfang_4: Feld 1 : 9185796
              2017-12-26 14:13:04.196 - info: javascript.0 script.js.ebusd.eBus_anfang_4: Feld 2 : undefined
              2017-12-26 14:13:04.212 - error: javascript.0 uncaught exception: pfad is not defined
              2017-12-26 14:13:04.212 - error: javascript.0 ReferenceError: pfad is not defined
              at parse (script.js.ebusd.eBus_anfang_4:112:10)
              at Socket. <anonymous>(script.js.ebusd.eBus_anfang_4:74:1)
              at emitOne (events.js:96:13)
              at Socket.emit (events.js:188:7)
              at readableAddChunk (_stream_readable.js:176:18)
              at Socket.Readable.push (_stream_readable.js:134:10)
              at TCP.onread (net.js:547:20)
              2017-12-26 14:13:04.224 - info: javascript.0 terminating
              2017-12-26 14:13:04.266 - error: Caught by controller[0]: ReferenceError: pfad is not defined
              2017-12-26 14:13:04.267 - error: Caught by controller[0]: at parse (script.js.ebusd.eBus_anfang_4:112:10)
              2017-12-26 14:13:04.269 - error: Caught by controller[0]: at Socket. <anonymous>(script.js.ebusd.eBus_anfang_4:74:1)
              2017-12-26 14:13:04.269 - error: Caught by controller[0]: at emitOne (events.js:96:13)
              2017-12-26 14:13:04.269 - error: Caught by controller[0]: at Socket.emit (events.js:188:7)
              2017-12-26 14:13:04.270 - error: Caught by controller[0]: at readableAddChunk (_stream_readable.js:176:18)
              2017-12-26 14:13:04.270 - error: Caught by controller[0]: at Socket.Readable.push (_stream_readable.js:134:10)
              2017-12-26 14:13:04.270 - error: Caught by controller[0]: at TCP.onread (net.js:547:20)
              2017-12-26 14:13:04.270 - error: host.ioBmaster instance system.adapter.javascript.0 terminated with code 0 (OK)
              2017-12-26 14:13:04.270 - info: host.ioBmaster Restart adapter system.adapter.javascript.0 because enabled</anonymous></anonymous>

              
              

              2017-12-26 14:13:37.208 - error: javascript.0 uncaught exception: pfad is not defined
              2017-12-26 14:13:37.209 - error: javascript.0 ReferenceError: pfad is not defined
              ```` Gut, die Abfrage scheint ja jetzt schonmal zu gehen. Das zerlegen der Antwort habe ich mir nicht angeschaut, aber dort ist pfad nicht deklariert.
              er versucht doch da die Werte weg zu schreiben

              setState(pfad, WertVor); // Werte setzen

              die var "pfad" wird nicht mit übergeben? `
              Bin gleich am pc

              EDIT:

              `// =============================================================================
              // --- Abfragen von Werten vom "ebusd"
              // =============================================================================
              var logging = true; // "true" oder "false" wenn nicht gewünscht
              var HOST = 'RPi2-2'; // Hostname oder IP-Adresse auf dem der ebusd läuft
              var PORT = 8888; // Portnummer auf dem der ebusd hört
              var step = -1;
              var pfad = 'eBus.Temperatur.'; // Pfad innerhalb der Instanz wo die Daten gespeichert werden
              // =============================================================================
              var net = require('net');
              var client = new net.Socket();
              // =============================================================================
              var Elemente = ['PrEnergySumHwc1','PrEnergyCountHwc1','HcHours'];
              var ElementeNamen = ['Betriebsstunden im Heizbetrieb','Betriebsstunden','Stunden' ];
              // =============================================================================
              
              // =============================================================================
              // Datenpunkte anlegen 
              // =============================================================================
              function anlegen(){
              if (logging) log('--> Start -> es gibt ' + Elemente.length + ' Elemente');
              for(var i=0;i <elemente.length;i++) {/createstate(pfad/+/elemente[i],/0,/{name:/elementenamen[i]});/if/(logging)/log('0.'/i/'/datenpunkt:/pfad/-="">' + ElementeNamen[i] + ' angelegt');
              }}
              // =============================================================================
              
              // =============================================================================
              // --- function zum Abfragen der Werte
              // =============================================================================
              function readElement(){
              if(Elemente.length < 1){
                 log('keine Elemente zum abfragen');
                 client.destroy();
                 return;
              }
              if(step < Elemente.length){step++}
              else{
              step = -1;
              setTimeout(readElement, 60000); //Wenn alle Werte abgefragt sind--> Neustart in 1 Minute
              return;
              }
              if (logging) log('0.->Neue Abfrage');
              // --- hier dann die function mit werten aufrufen
              var req = 'read -f ' + Elemente[step]; // der Befehl wird zusammengesetzt
              var ele = Elemente[step];
              var eleN = ElementeNamen[step];
              client.write(req + '\n');
              if (logging) log('1\. BEFEHL wurde gesendet : ' + req);
              }
              
              // =============================================================================
              // --- Aufruf --- DATEN lesen
              // =============================================================================
              client.on('data', function(data) {
              if (logging) log('3\. Daten werden empfangen : ' + data);
              // --- die empfangenen Daten werden gewandelt und aufgeteilt (SUB-Funktion) ---
              var datastr = data.toString();
              if (logging) log('3a. RX-Daten (String) : ' + datastr);
              //------------------------------------------------------------------------------
              var databuf = '';
              var prev = 0, next;
              if (logging) log('3b.Durchlauf : ' + prev);
              while ((next = datastr.indexOf('\n\n', prev)) > -1) {
              databuf += datastr.substring(prev, next);
              if (logging) log('3c. Funktion aufrufen mit : ' + databuf + " als Daten");
              //--- SUB-Funktion aufrufen ---
              parse(databuf);
              databuf = ''; // Datenbuffer leeren
              prev = next + 1;
              }
              databuf += datastr.substring(prev);
              readElement();//Abfragen des nächsten Wertes
              //------------------------------------------------------------------------------
              });
              // =============================================================================
              
              // =============================================================================
              // Verbindungsabbau
              // =============================================================================
              client.on('close', function() {
              if (logging) {
                  log( 'Verbindung geschlossen .');
                  client.destroy();
              }});
              // =============================================================================
              
              // =============================================================================
              // --- SUB-Funktion --- Daten-String aufteilen
              // =============================================================================
              function parse(data) {
              var arr = data.toString().split(/\r?;/); // wie viele Werte werden durch ";" getrennt 
              if (logging) log("3d. Menge an Daten durch ; getrennt : " + arr.length);
              
              var fields = data.toString().split('\;'); // hier wird auf den = getriggert
              if (logging) log('anzahl an Feldern : ' + fields.length);
              if(fields.length > 0) { // wenn mehrere Felder gefunden wurden
              if (logging) log('WertVor : ' + fields[0]);
              var WertVor =fields[0];
              if (logging) log("WertNach : " + fields[1]);
              fields[0] = fields[0].replace(' ','_');
              if (logging) log("Feld 1 : " + fields[0]);
              if (logging) log("Feld 2 : " + fields[1]);
              setState(pfad + Elemente[step], WertVor); // Werte setzen
              if (logging) log('im Datenpunkt "' +pfad + '" wird "' + WertVor + '" gespeichert');
              }
              }
              // =============================================================================
              
              // =============================================================================
              // --- Function --- Fehler abfangen und ausgeben
              // =============================================================================
              client.on('error', function(err) {
                 client.destroy();
              if (logging) log(' Es ist ein Fehler aufgetreten : '+ err);
              });
              // =============================================================================
              // =============================================================================
              // Verbindungsaufbau
              // =============================================================================
              client.connect(PORT, HOST, function(){
              readElement();
              if (logging) log('1\. Verbindungsaufbau zu : ' + HOST + ':' + PORT);
              
              });
              // =============================================================================
              
              anlegen();//States anlegen
              
              //setInterval(readElement, 60000);</elemente.length;i++)>`[/i][/i][/i]
              
              1 Reply Last reply Reply Quote 0
              • D
                der_Auge last edited by

                schon besser:

                log

                ! ````
                2017-12-26 14:56:00.653 - info: javascript.0 Start javascript script.js.ebusd.eBus_anfang_4_blauholsten
                2017-12-26 14:56:00.662 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: --> Start -> es gibt 3 Elemente
                2017-12-26 14:56:00.664 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.0 Datenpunkt: eBus.Temperatur. -> Betriebsstunden im Heizbetrieb angelegt
                2017-12-26 14:56:00.664 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.1 Datenpunkt: eBus.Temperatur. -> Betriebsstunden angelegt
                2017-12-26 14:56:00.665 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.2 Datenpunkt: eBus.Temperatur. -> Stunden angelegt
                2017-12-26 14:56:00.667 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: registered 0 subscriptions and 0 schedules
                2017-12-26 14:56:00.730 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.->Neue Abfrage
                2017-12-26 14:56:00.731 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. BEFEHL wurde gesendet : read -f PrEnergySumHwc1
                2017-12-26 14:56:00.731 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. Verbindungsaufbau zu : RPi2-2:8888
                2017-12-26 14:56:00.858 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3. Daten werden empfangen : 9185796
                ! 2017-12-26 14:56:00.858 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3a. RX-Daten (String) : 9185796
                ! 2017-12-26 14:56:00.859 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3b.Durchlauf : 0
                2017-12-26 14:56:00.859 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3c. Funktion aufrufen mit : 9185796 als Daten
                2017-12-26 14:56:00.860 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                2017-12-26 14:56:00.861 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: anzahl an Feldern : 1
                2017-12-26 14:56:00.861 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertVor : 9185796
                2017-12-26 14:56:00.861 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertNach : undefined
                2017-12-26 14:56:00.861 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 1 : 9185796
                2017-12-26 14:56:00.862 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 2 : undefined
                2017-12-26 14:56:00.863 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: im Datenpunkt "eBus.Temperatur." wird "9185796" gespeichert
                2017-12-26 14:56:00.863 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.->Neue Abfrage
                2017-12-26 14:56:00.864 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. BEFEHL wurde gesendet : read -f PrEnergyCountHwc1
                2017-12-26 14:56:01.014 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3. Daten werden empfangen : 30891
                ! 2017-12-26 14:56:01.015 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3a. RX-Daten (String) : 30891
                ! 2017-12-26 14:56:01.016 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3b.Durchlauf : 0
                2017-12-26 14:56:01.016 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3c. Funktion aufrufen mit : 30891 als Daten
                2017-12-26 14:56:01.016 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: anzahl an Feldern : 1
                2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertVor : 30891
                2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertNach : undefined
                2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 1 : 30891
                2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 2 : undefined
                2017-12-26 14:56:01.018 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: im Datenpunkt "eBus.Temperatur." wird "30891" gespeichert
                2017-12-26 14:56:01.019 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.->Neue Abfrage
                2017-12-26 14:56:01.020 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. BEFEHL wurde gesendet : read -f HcHours
                2017-12-26 14:56:01.890 - info: sql.0 No Data
                2017-12-26 14:56:01.937 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3. Daten werden empfangen : 567
                ! 2017-12-26 14:56:01.937 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3a. RX-Daten (String) : 567
                ! 2017-12-26 14:56:01.938 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3b.Durchlauf : 0
                2017-12-26 14:56:01.938 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3c. Funktion aufrufen mit : 567 als Daten
                2017-12-26 14:56:01.938 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                2017-12-26 14:56:01.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: anzahl an Feldern : 1
                2017-12-26 14:56:01.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertVor : 567
                2017-12-26 14:56:01.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertNach : undefined
                2017-12-26 14:56:01.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 1 : 567
                2017-12-26 14:56:01.940 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 2 : undefined
                2017-12-26 14:56:01.941 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: im Datenpunkt "eBus.Temperatur." wird "567" gespeichert
                2017-12-26 14:56:01.941 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.->Neue Abfrage
                2017-12-26 14:56:01.942 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. BEFEHL wurde gesendet : read -f undefined
                2017-12-26 14:56:01.951 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3. Daten werden empfangen : ERR: element not found
                ! 2017-12-26 14:56:01.952 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3a. RX-Daten (String) : ERR: element not found
                ! 2017-12-26 14:56:01.952 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3b.Durchlauf : 0
                2017-12-26 14:56:01.953 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3c. Funktion aufrufen mit : ERR: element not found als Daten
                2017-12-26 14:56:01.953 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                2017-12-26 14:56:01.953 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: anzahl an Feldern : 1
                2017-12-26 14:56:01.954 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertVor : ERR: element not found
                2017-12-26 14:56:01.954 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertNach : undefined
                2017-12-26 14:56:01.955 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 1 : ERR:_element not found
                2017-12-26 14:56:01.955 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 2 : undefined
                2017-12-26 14:56:01.956 - warn: javascript.0 State "eBus.Temperatur.undefined" not found
                2017-12-26 14:56:01.970 - warn: javascript.0 at parse (script.js.ebusd.eBus_anfang_4_blauholsten:108:1)
                2017-12-26 14:56:01.971 - warn: javascript.0 at Socket. <anonymous>(script.js.ebusd.eBus_anfang_4_blauholsten:70:1)
                2017-12-26 14:56:01.971 - warn: javascript.0 at emitOne (events.js:96:13)
                2017-12-26 14:56:01.972 - warn: javascript.0 at Socket.emit (events.js:188:7)
                2017-12-26 14:56:01.972 - warn: javascript.0 at readableAddChunk (_stream_readable.js:176:18)
                2017-12-26 14:56:01.972 - warn: javascript.0 at Socket.Readable.push (_stream_readable.js:134:10)
                2017-12-26 14:56:01.973 - warn: javascript.0 at TCP.onread (net.js:547:20)
                2017-12-26 14:56:01.973 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: im Datenpunkt "eBus.Temperatur." wird "ERR: element not found" gespeichert</anonymous>

                
                nun wird ein durchlauf zuviel gestartet
                1 Reply Last reply Reply Quote 0
                • blauholsten
                  blauholsten Developer last edited by

                  @der_Auge:

                  schon besser:

                  log

                  ! ````
                  2017-12-26 14:56:00.653 - info: javascript.0 Start javascript script.js.ebusd.eBus_anfang_4_blauholsten
                  2017-12-26 14:56:00.662 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: --> Start -> es gibt 3 Elemente
                  2017-12-26 14:56:00.664 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.0 Datenpunkt: eBus.Temperatur. -> Betriebsstunden im Heizbetrieb angelegt
                  2017-12-26 14:56:00.664 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.1 Datenpunkt: eBus.Temperatur. -> Betriebsstunden angelegt
                  2017-12-26 14:56:00.665 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.2 Datenpunkt: eBus.Temperatur. -> Stunden angelegt
                  2017-12-26 14:56:00.667 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: registered 0 subscriptions and 0 schedules
                  2017-12-26 14:56:00.730 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.->Neue Abfrage
                  2017-12-26 14:56:00.731 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. BEFEHL wurde gesendet : read -f PrEnergySumHwc1
                  2017-12-26 14:56:00.731 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. Verbindungsaufbau zu : RPi2-2:8888
                  2017-12-26 14:56:00.858 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3. Daten werden empfangen : 9185796
                  ! 2017-12-26 14:56:00.858 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3a. RX-Daten (String) : 9185796
                  ! 2017-12-26 14:56:00.859 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3b.Durchlauf : 0
                  2017-12-26 14:56:00.859 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3c. Funktion aufrufen mit : 9185796 als Daten
                  2017-12-26 14:56:00.860 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                  2017-12-26 14:56:00.861 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: anzahl an Feldern : 1
                  2017-12-26 14:56:00.861 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertVor : 9185796
                  2017-12-26 14:56:00.861 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertNach : undefined
                  2017-12-26 14:56:00.861 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 1 : 9185796
                  2017-12-26 14:56:00.862 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 2 : undefined
                  2017-12-26 14:56:00.863 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: im Datenpunkt "eBus.Temperatur." wird "9185796" gespeichert
                  2017-12-26 14:56:00.863 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.->Neue Abfrage
                  2017-12-26 14:56:00.864 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. BEFEHL wurde gesendet : read -f PrEnergyCountHwc1
                  2017-12-26 14:56:01.014 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3. Daten werden empfangen : 30891
                  ! 2017-12-26 14:56:01.015 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3a. RX-Daten (String) : 30891
                  ! 2017-12-26 14:56:01.016 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3b.Durchlauf : 0
                  2017-12-26 14:56:01.016 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3c. Funktion aufrufen mit : 30891 als Daten
                  2017-12-26 14:56:01.016 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                  2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: anzahl an Feldern : 1
                  2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertVor : 30891
                  2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertNach : undefined
                  2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 1 : 30891
                  2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 2 : undefined
                  2017-12-26 14:56:01.018 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: im Datenpunkt "eBus.Temperatur." wird "30891" gespeichert
                  2017-12-26 14:56:01.019 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.->Neue Abfrage
                  2017-12-26 14:56:01.020 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. BEFEHL wurde gesendet : read -f HcHours
                  2017-12-26 14:56:01.890 - info: sql.0 No Data
                  2017-12-26 14:56:01.937 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3. Daten werden empfangen : 567
                  ! 2017-12-26 14:56:01.937 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3a. RX-Daten (String) : 567
                  ! 2017-12-26 14:56:01.938 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3b.Durchlauf : 0
                  2017-12-26 14:56:01.938 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3c. Funktion aufrufen mit : 567 als Daten
                  2017-12-26 14:56:01.938 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                  2017-12-26 14:56:01.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: anzahl an Feldern : 1
                  2017-12-26 14:56:01.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertVor : 567
                  2017-12-26 14:56:01.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertNach : undefined
                  2017-12-26 14:56:01.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 1 : 567
                  2017-12-26 14:56:01.940 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 2 : undefined
                  2017-12-26 14:56:01.941 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: im Datenpunkt "eBus.Temperatur." wird "567" gespeichert
                  2017-12-26 14:56:01.941 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.->Neue Abfrage
                  2017-12-26 14:56:01.942 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. BEFEHL wurde gesendet : read -f undefined
                  2017-12-26 14:56:01.951 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3. Daten werden empfangen : ERR: element not found
                  ! 2017-12-26 14:56:01.952 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3a. RX-Daten (String) : ERR: element not found
                  ! 2017-12-26 14:56:01.952 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3b.Durchlauf : 0
                  2017-12-26 14:56:01.953 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3c. Funktion aufrufen mit : ERR: element not found als Daten
                  2017-12-26 14:56:01.953 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                  2017-12-26 14:56:01.953 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: anzahl an Feldern : 1
                  2017-12-26 14:56:01.954 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertVor : ERR: element not found
                  2017-12-26 14:56:01.954 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertNach : undefined
                  2017-12-26 14:56:01.955 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 1 : ERR:_element not found
                  2017-12-26 14:56:01.955 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 2 : undefined
                  2017-12-26 14:56:01.956 - warn: javascript.0 State "eBus.Temperatur.undefined" not found
                  2017-12-26 14:56:01.970 - warn: javascript.0 at parse (script.js.ebusd.eBus_anfang_4_blauholsten:108:1)
                  2017-12-26 14:56:01.971 - warn: javascript.0 at Socket. <anonymous>(script.js.ebusd.eBus_anfang_4_blauholsten:70:1)
                  2017-12-26 14:56:01.971 - warn: javascript.0 at emitOne (events.js:96:13)
                  2017-12-26 14:56:01.972 - warn: javascript.0 at Socket.emit (events.js:188:7)
                  2017-12-26 14:56:01.972 - warn: javascript.0 at readableAddChunk (_stream_readable.js:176:18)
                  2017-12-26 14:56:01.972 - warn: javascript.0 at Socket.Readable.push (_stream_readable.js:134:10)
                  2017-12-26 14:56:01.973 - warn: javascript.0 at TCP.onread (net.js:547:20)
                  2017-12-26 14:56:01.973 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: im Datenpunkt "eBus.Temperatur." wird "ERR: element not found" gespeichert</anonymous>

                  
                  nun wird ein durchlauf zuviel gestartet `  
                  

                  Joo, Fehler habe ich denke erkannt. Melde mich nachher noch mal

                  EDIT:

                  kannst du es mal probieren? Und nochmals eine Info geben. Bin leider nicht an meinen Heim PC

                  `// =============================================================================
                  // --- Abfragen von Werten vom "ebusd"
                  // =============================================================================
                  var logging = true; // "true" oder "false" wenn nicht gewünscht
                  var HOST = 'RPi2-2'; // Hostname oder IP-Adresse auf dem der ebusd läuft
                  var PORT = 8888; // Portnummer auf dem der ebusd hört
                  var step = -1;
                  var pfad = 'eBus.Temperatur.'; // Pfad innerhalb der Instanz wo die Daten gespeichert werden
                  // =============================================================================
                  var net = require('net');
                  var client = new net.Socket();
                  // =============================================================================
                  var Elemente = ['PrEnergySumHwc1','PrEnergyCountHwc1','HcHours'];
                  var ElementeNamen = ['Betriebsstunden im Heizbetrieb','Betriebsstunden','Stunden' ];
                  // =============================================================================
                  
                  // =============================================================================
                  // Datenpunkte anlegen 
                  // =============================================================================
                  function anlegen(){
                  if (logging) log('--> Start -> es gibt ' + Elemente.length + ' Elemente');
                  for(var i=0;i <elemente.length;i++) {/createstate(pfad/+/elemente[i],/0,/{name:/elementenamen[i]});/if/(logging)/log('0.'/i/'/datenpunkt:/pfad/-="">' + ElementeNamen[i] + ' angelegt');
                  }}
                  // =============================================================================
                  
                  // =============================================================================
                  // --- function zum Abfragen der Werte
                  // =============================================================================
                  function readElement(){
                  if(Elemente.length < 1){
                     log('keine Elemente zum abfragen');
                     client.destroy();
                     return;
                  }
                  if(step < Elemente.length){
                  step++
                  if (logging) log('0.->Neue Abfrage');
                  // --- hier dann die function mit werten aufrufen
                  var req = 'read -f ' + Elemente[step]; // der Befehl wird zusammengesetzt
                  var ele = Elemente[step];
                  var eleN = ElementeNamen[step];
                  client.write(req + '\n');
                  if (logging) log('1\. BEFEHL wurde gesendet : ' + req);
                  }
                  else{
                  step = -1;
                  setTimeout(readElement, 60000); //Wenn alle Werte abgefragt sind--> Neustart in 1 Minute
                  return;
                  }
                  }
                  
                  // =============================================================================
                  // --- Aufruf --- DATEN lesen
                  // =============================================================================
                  client.on('data', function(data) {
                  if (logging) log('3\. Daten werden empfangen : ' + data);
                  // --- die empfangenen Daten werden gewandelt und aufgeteilt (SUB-Funktion) ---
                  var datastr = data.toString();
                  if (logging) log('3a. RX-Daten (String) : ' + datastr);
                  //------------------------------------------------------------------------------
                  var databuf = '';
                  var prev = 0, next;
                  if (logging) log('3b.Durchlauf : ' + prev);
                  while ((next = datastr.indexOf('\n\n', prev)) > -1) {
                  databuf += datastr.substring(prev, next);
                  if (logging) log('3c. Funktion aufrufen mit : ' + databuf + " als Daten");
                  //--- SUB-Funktion aufrufen ---
                  parse(databuf);
                  databuf = ''; // Datenbuffer leeren
                  prev = next + 1;
                  }
                  databuf += datastr.substring(prev);
                  readElement();//Abfragen des nächsten Wertes
                  //------------------------------------------------------------------------------
                  });
                  // =============================================================================
                  
                  // =============================================================================
                  // Verbindungsabbau
                  // =============================================================================
                  client.on('close', function() {
                  if (logging) {
                      log( 'Verbindung geschlossen .');
                      client.destroy();
                  }});
                  // =============================================================================
                  
                  // =============================================================================
                  // --- SUB-Funktion --- Daten-String aufteilen
                  // =============================================================================
                  function parse(data) {
                  var arr = data.toString().split(/\r?;/); // wie viele Werte werden durch ";" getrennt 
                  if (logging) log("3d. Menge an Daten durch ; getrennt : " + arr.length);
                  
                  var fields = data.toString().split('\;'); // hier wird auf den = getriggert
                  if (logging) log('anzahl an Feldern : ' + fields.length);
                  if(fields.length > 0) { // wenn mehrere Felder gefunden wurden
                  if (logging) log('WertVor : ' + fields[0]);
                  var WertVor =fields[0];
                  if (logging) log("WertNach : " + fields[1]);
                  fields[0] = fields[0].replace(' ','_');
                  if (logging) log("Feld 1 : " + fields[0]);
                  if (logging) log("Feld 2 : " + fields[1]);
                  setState(pfad + Elemente[step], WertVor); // Werte setzen
                  if (logging) log('im Datenpunkt "' +pfad + '" wird "' + WertVor + '" gespeichert');
                  }
                  }
                  // =============================================================================
                  
                  // =============================================================================
                  // --- Function --- Fehler abfangen und ausgeben
                  // =============================================================================
                  client.on('error', function(err) {
                     client.destroy();
                  if (logging) log(' Es ist ein Fehler aufgetreten : '+ err);
                  });
                  // =============================================================================
                  // =============================================================================
                  // Verbindungsaufbau
                  // =============================================================================
                  client.connect(PORT, HOST, function(){
                  readElement();
                  if (logging) log('1\. Verbindungsaufbau zu : ' + HOST + ':' + PORT);
                  
                  });
                  // =============================================================================
                  
                  anlegen();//States anlegen
                  
                  //setInterval(readElement, 60000);</elemente.length;i++)>`[/i][/i][/i]
                  
                  1 Reply Last reply Reply Quote 0
                  • blauholsten
                    blauholsten Developer last edited by

                    @der_Auge:

                    schon besser:

                    log

                    ! ````
                    2017-12-26 14:56:00.653 - info: javascript.0 Start javascript script.js.ebusd.eBus_anfang_4_blauholsten
                    2017-12-26 14:56:00.662 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: --> Start -> es gibt 3 Elemente
                    2017-12-26 14:56:00.664 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.0 Datenpunkt: eBus.Temperatur. -> Betriebsstunden im Heizbetrieb angelegt
                    2017-12-26 14:56:00.664 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.1 Datenpunkt: eBus.Temperatur. -> Betriebsstunden angelegt
                    2017-12-26 14:56:00.665 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.2 Datenpunkt: eBus.Temperatur. -> Stunden angelegt
                    2017-12-26 14:56:00.667 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: registered 0 subscriptions and 0 schedules
                    2017-12-26 14:56:00.730 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.->Neue Abfrage
                    2017-12-26 14:56:00.731 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. BEFEHL wurde gesendet : read -f PrEnergySumHwc1
                    2017-12-26 14:56:00.731 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. Verbindungsaufbau zu : RPi2-2:8888
                    2017-12-26 14:56:00.858 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3. Daten werden empfangen : 9185796
                    ! 2017-12-26 14:56:00.858 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3a. RX-Daten (String) : 9185796
                    ! 2017-12-26 14:56:00.859 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3b.Durchlauf : 0
                    2017-12-26 14:56:00.859 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3c. Funktion aufrufen mit : 9185796 als Daten
                    2017-12-26 14:56:00.860 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                    2017-12-26 14:56:00.861 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: anzahl an Feldern : 1
                    2017-12-26 14:56:00.861 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertVor : 9185796
                    2017-12-26 14:56:00.861 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertNach : undefined
                    2017-12-26 14:56:00.861 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 1 : 9185796
                    2017-12-26 14:56:00.862 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 2 : undefined
                    2017-12-26 14:56:00.863 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: im Datenpunkt "eBus.Temperatur." wird "9185796" gespeichert
                    2017-12-26 14:56:00.863 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.->Neue Abfrage
                    2017-12-26 14:56:00.864 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. BEFEHL wurde gesendet : read -f PrEnergyCountHwc1
                    2017-12-26 14:56:01.014 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3. Daten werden empfangen : 30891
                    ! 2017-12-26 14:56:01.015 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3a. RX-Daten (String) : 30891
                    ! 2017-12-26 14:56:01.016 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3b.Durchlauf : 0
                    2017-12-26 14:56:01.016 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3c. Funktion aufrufen mit : 30891 als Daten
                    2017-12-26 14:56:01.016 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                    2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: anzahl an Feldern : 1
                    2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertVor : 30891
                    2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertNach : undefined
                    2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 1 : 30891
                    2017-12-26 14:56:01.017 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 2 : undefined
                    2017-12-26 14:56:01.018 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: im Datenpunkt "eBus.Temperatur." wird "30891" gespeichert
                    2017-12-26 14:56:01.019 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.->Neue Abfrage
                    2017-12-26 14:56:01.020 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. BEFEHL wurde gesendet : read -f HcHours
                    2017-12-26 14:56:01.890 - info: sql.0 No Data
                    2017-12-26 14:56:01.937 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3. Daten werden empfangen : 567
                    ! 2017-12-26 14:56:01.937 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3a. RX-Daten (String) : 567
                    ! 2017-12-26 14:56:01.938 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3b.Durchlauf : 0
                    2017-12-26 14:56:01.938 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3c. Funktion aufrufen mit : 567 als Daten
                    2017-12-26 14:56:01.938 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                    2017-12-26 14:56:01.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: anzahl an Feldern : 1
                    2017-12-26 14:56:01.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertVor : 567
                    2017-12-26 14:56:01.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertNach : undefined
                    2017-12-26 14:56:01.939 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 1 : 567
                    2017-12-26 14:56:01.940 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 2 : undefined
                    2017-12-26 14:56:01.941 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: im Datenpunkt "eBus.Temperatur." wird "567" gespeichert
                    2017-12-26 14:56:01.941 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 0.->Neue Abfrage
                    2017-12-26 14:56:01.942 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 1. BEFEHL wurde gesendet : read -f undefined
                    2017-12-26 14:56:01.951 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3. Daten werden empfangen : ERR: element not found
                    ! 2017-12-26 14:56:01.952 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3a. RX-Daten (String) : ERR: element not found
                    ! 2017-12-26 14:56:01.952 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3b.Durchlauf : 0
                    2017-12-26 14:56:01.953 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3c. Funktion aufrufen mit : ERR: element not found als Daten
                    2017-12-26 14:56:01.953 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                    2017-12-26 14:56:01.953 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: anzahl an Feldern : 1
                    2017-12-26 14:56:01.954 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertVor : ERR: element not found
                    2017-12-26 14:56:01.954 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: WertNach : undefined
                    2017-12-26 14:56:01.955 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 1 : ERR:_element not found
                    2017-12-26 14:56:01.955 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: Feld 2 : undefined
                    2017-12-26 14:56:01.956 - warn: javascript.0 State "eBus.Temperatur.undefined" not found
                    2017-12-26 14:56:01.970 - warn: javascript.0 at parse (script.js.ebusd.eBus_anfang_4_blauholsten:108:1)
                    2017-12-26 14:56:01.971 - warn: javascript.0 at Socket. <anonymous>(script.js.ebusd.eBus_anfang_4_blauholsten:70:1)
                    2017-12-26 14:56:01.971 - warn: javascript.0 at emitOne (events.js:96:13)
                    2017-12-26 14:56:01.972 - warn: javascript.0 at Socket.emit (events.js:188:7)
                    2017-12-26 14:56:01.972 - warn: javascript.0 at readableAddChunk (_stream_readable.js:176:18)
                    2017-12-26 14:56:01.972 - warn: javascript.0 at Socket.Readable.push (_stream_readable.js:134:10)
                    2017-12-26 14:56:01.973 - warn: javascript.0 at TCP.onread (net.js:547:20)
                    2017-12-26 14:56:01.973 - info: javascript.0 script.js.ebusd.eBus_anfang_4_blauholsten: im Datenpunkt "eBus.Temperatur." wird "ERR: element not found" gespeichert</anonymous>

                    
                    nun wird ein durchlauf zuviel gestartet `  
                    

                    Probiert?

                    1 Reply Last reply Reply Quote 0
                    • D
                      der_Auge last edited by

                      warn: javascript.0 State "eBus.Temperatur.undefined" not found

                      anbei das LOG

                      ! ````
                      2017-12-26 22:13:41.044 - info: javascript.0 Start javascript script.js.ebusd.eBus_anfang_5_blauholsten
                      2017-12-26 22:13:41.068 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: --> Start -> es gibt 3 Elemente
                      2017-12-26 22:13:41.070 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 0.0 Datenpunkt: eBus.Temperatur. -> Betriebsstunden im Heizbetrieb angelegt
                      2017-12-26 22:13:41.071 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 0.1 Datenpunkt: eBus.Temperatur. -> Betriebsstunden angelegt
                      2017-12-26 22:13:41.071 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 0.2 Datenpunkt: eBus.Temperatur. -> Stunden angelegt
                      2017-12-26 22:13:41.072 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: registered 0 subscriptions and 0 schedules
                      2017-12-26 22:13:41.133 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 0.->Neue Abfrage
                      2017-12-26 22:13:41.141 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 1. BEFEHL wurde gesendet : read -f PrEnergySumHwc1
                      2017-12-26 22:13:41.142 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 1. Verbindungsaufbau zu : RPi2-2:8888
                      2017-12-26 22:13:41.293 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3. Daten werden empfangen : 9338400
                      ! 2017-12-26 22:13:41.293 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3a. RX-Daten (String) : 9338400
                      ! 2017-12-26 22:13:41.294 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3b.Durchlauf : 0
                      2017-12-26 22:13:41.294 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3c. Funktion aufrufen mit : 9338400 als Daten
                      2017-12-26 22:13:41.296 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                      2017-12-26 22:13:41.296 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: anzahl an Feldern : 1
                      2017-12-26 22:13:41.297 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: WertVor : 9338400
                      2017-12-26 22:13:41.297 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: WertNach : undefined
                      2017-12-26 22:13:41.297 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: Feld 1 : 9338400
                      2017-12-26 22:13:41.298 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: Feld 2 : undefined
                      2017-12-26 22:13:41.299 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: im Datenpunkt "eBus.Temperatur." wird "9338400" gespeichert
                      2017-12-26 22:13:41.299 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 0.->Neue Abfrage
                      2017-12-26 22:13:41.300 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 1. BEFEHL wurde gesendet : read -f PrEnergyCountHwc1
                      2017-12-26 22:13:41.452 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3. Daten werden empfangen : 31323
                      ! 2017-12-26 22:13:41.453 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3a. RX-Daten (String) : 31323
                      ! 2017-12-26 22:13:41.453 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3b.Durchlauf : 0
                      2017-12-26 22:13:41.453 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3c. Funktion aufrufen mit : 31323 als Daten
                      2017-12-26 22:13:41.454 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                      2017-12-26 22:13:41.454 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: anzahl an Feldern : 1
                      2017-12-26 22:13:41.454 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: WertVor : 31323
                      2017-12-26 22:13:41.454 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: WertNach : undefined
                      2017-12-26 22:13:41.455 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: Feld 1 : 31323
                      2017-12-26 22:13:41.455 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: Feld 2 : undefined
                      2017-12-26 22:13:41.456 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: im Datenpunkt "eBus.Temperatur." wird "31323" gespeichert
                      2017-12-26 22:13:41.456 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 0.->Neue Abfrage
                      2017-12-26 22:13:41.457 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 1. BEFEHL wurde gesendet : read -f HcHours
                      2017-12-26 22:13:41.604 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3. Daten werden empfangen : 572
                      ! 2017-12-26 22:13:41.604 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3a. RX-Daten (String) : 572
                      ! 2017-12-26 22:13:41.604 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3b.Durchlauf : 0
                      2017-12-26 22:13:41.605 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3c. Funktion aufrufen mit : 572 als Daten
                      2017-12-26 22:13:41.605 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                      2017-12-26 22:13:41.605 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: anzahl an Feldern : 1
                      2017-12-26 22:13:41.605 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: WertVor : 572
                      2017-12-26 22:13:41.605 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: WertNach : undefined
                      2017-12-26 22:13:41.606 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: Feld 1 : 572
                      2017-12-26 22:13:41.606 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: Feld 2 : undefined
                      2017-12-26 22:13:41.607 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: im Datenpunkt "eBus.Temperatur." wird "572" gespeichert
                      2017-12-26 22:13:41.607 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 0.->Neue Abfrage
                      2017-12-26 22:13:41.607 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 1. BEFEHL wurde gesendet : read -f undefined
                      2017-12-26 22:13:41.640 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3. Daten werden empfangen : ERR: element not found
                      ! 2017-12-26 22:13:41.640 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3a. RX-Daten (String) : ERR: element not found
                      ! 2017-12-26 22:13:41.640 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3b.Durchlauf : 0
                      2017-12-26 22:13:41.641 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3c. Funktion aufrufen mit : ERR: element not found als Daten
                      2017-12-26 22:13:41.641 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: 3d. Menge an Daten durch ; getrennt : 1
                      2017-12-26 22:13:41.641 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: anzahl an Feldern : 1
                      2017-12-26 22:13:41.641 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: WertVor : ERR: element not found
                      2017-12-26 22:13:41.641 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: WertNach : undefined
                      2017-12-26 22:13:41.642 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: Feld 1 : ERR:_element not found
                      2017-12-26 22:13:41.642 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: Feld 2 : undefined
                      2017-12-26 22:13:41.642 - warn: javascript.0 State "eBus.Temperatur.undefined" not found
                      2017-12-26 22:13:41.643 - warn: javascript.0 at parse (script.js.ebusd.eBus_anfang_5_blauholsten:110:1)
                      2017-12-26 22:13:41.643 - warn: javascript.0 at Socket. <anonymous>(script.js.ebusd.eBus_anfang_5_blauholsten:72:1)
                      2017-12-26 22:13:41.643 - warn: javascript.0 at emitOne (events.js:96:13)
                      2017-12-26 22:13:41.644 - warn: javascript.0 at Socket.emit (events.js:188:7)
                      2017-12-26 22:13:41.644 - warn: javascript.0 at readableAddChunk (_stream_readable.js:176:18)
                      2017-12-26 22:13:41.645 - warn: javascript.0 at Socket.Readable.push (_stream_readable.js:134:10)
                      2017-12-26 22:13:41.645 - warn: javascript.0 at TCP.onread (net.js:547:20)
                      2017-12-26 22:13:41.645 - info: javascript.0 script.js.ebusd.eBus_anfang_5_blauholsten: im Datenpunkt "eBus.Temperatur." wird "ERR: element not found" gespeichert</anonymous>

                      1 Reply Last reply Reply Quote 0
                      • D
                        der_Auge last edited by

                        habe mich mal durchgearbeitet.

                        Glaube das ich den Fehler gefunden habe

                        Die var "step" wird ja schon früh um eins erhöht.

                        daher if(step < Elemente.length -1){

                        // =============================================================================
                        // --- function zum Abfragen der Werte
                        // =============================================================================
                        function readElement(){
                            if(Elemente.length < 1){
                                log('keine Elemente zum abfragen');
                                client.destroy();
                            return;
                            }
                            if (logging) log('     ---> Variable "step" '+ step + ' für die Anzahle von ' + Elemente.length + ' Elemente');
                            if(step < Elemente.length -1){
                                step++ ;
                                if (logging) log('0.'+ step + '  ---> Neue Abfrage ------------------------> Durchlauf : '+ step);
                                // --- hier dann die function mit werten aufrufen
                                var req = 'read -f ' + Elemente[step]; // der Befehl wird zusammengesetzt
                                var ele = Elemente[step];
                                var eleN = ElementeNamen[step];
                                client.write(req + '\n');               // hier wird der Befehl gesendet
                                if (logging) log('1.'+ step + '  BEFEHL wurde gesendet : ' + req);
                            }
                            else{
                                step = -1;
                                setTimeout(readElement, 60000); //Wenn alle Werte abgefragt sind--> Neustart in 1 Minute
                                return;
                            }
                        }
                        
                        

                        Ich werde noch einige Sachen testen.

                        Wenn es nun sauber läuft werde ich den gesamten Script noch mal posten

                        DANKE für die Unterstützung

                        Gruß

                        Jürgen

                        1 Reply Last reply Reply Quote 0
                        • blauholsten
                          blauholsten Developer last edited by

                          @der_Auge:

                          habe mich mal durchgearbeitet.

                          Glaube das ich den Fehler gefunden habe

                          Die var "step" wird ja schon früh um eins erhöht.

                          daher if(step < Elemente.length -1){

                          // =============================================================================
                          // --- function zum Abfragen der Werte
                          // =============================================================================
                          function readElement(){
                              if(Elemente.length < 1){
                                  log('keine Elemente zum abfragen');
                                  client.destroy();
                              return;
                              }
                              if (logging) log('     ---> Variable "step" '+ step + ' für die Anzahle von ' + Elemente.length + ' Elemente');
                              if(step < Elemente.length -1){
                                  step++ ;
                                  if (logging) log('0.'+ step + '  ---> Neue Abfrage ------------------------> Durchlauf : '+ step);
                                  // --- hier dann die function mit werten aufrufen
                                  var req = 'read -f ' + Elemente[step]; // der Befehl wird zusammengesetzt
                                  var ele = Elemente[step];
                                  var eleN = ElementeNamen[step];
                                  client.write(req + '\n');               // hier wird der Befehl gesendet
                                  if (logging) log('1.'+ step + '  BEFEHL wurde gesendet : ' + req);
                              }
                              else{
                                  step = -1;
                                  setTimeout(readElement, 60000); //Wenn alle Werte abgefragt sind--> Neustart in 1 Minute
                                  return;
                              }
                          }
                          
                          

                          Ich werde noch einige Sachen testen.

                          Wenn es nun sauber läuft werde ich den gesamten Script noch mal posten

                          DANKE für die Unterstützung

                          Gruß

                          Jürgen `
                          Jawohl, Schande über mein Haupt…..

                          Die length Funktion gibt nicht denn Index, sondern die Anzahl der Elemente zurück. (Quasi eins mehr)

                          1 Reply Last reply Reply Quote 0
                          • D
                            der_Auge last edited by

                            Hallo zusammen,

                            anbei wie versprochen der Script der nun mehrere Werte vom eBus abfragt

                            var Elemente =

                            var ElementeNamen =

                            müssen angepasst werden.

                            ! ```
                            `// =============================================================================
                            // --- Abfragen von Werten vom "ebusd"
                            // =============================================================================
                            var logging = false; // "true" oder "false" wenn nicht gewünscht
                            var HOST = 'RPi2-2'; // Hostname oder IP-Adresse auf dem der ebusd läuft
                            var PORT = 8888; // Portnummer auf dem der ebusd hört
                            var step = -1;
                            var pfad = 'eBus.Temperatur.'; // Pfad innerhalb der Instanz wo die Daten gespeichert werden
                            // =============================================================================
                            var net = require('net');
                            var client = new net.Socket();
                            // =============================================================================
                            var Elemente = ['dcfState','FlowTemp','HcHours','HwcHours','OutdoorstempSensor','PrEnergyCountHc1','PrEnergyCountHwc1','PrEnergySumHc1','PrEnergySumHwc1','ReturnTemp','PumpHours','PumpHwcFlowNumber','PumpHwcFlowSum','SDFanSpeed','SDTRT','StorageTemp','WaterPressure'];
                            var ElementeNamen = ['','','','','',''];
                            // =============================================================================
                            ! // =============================================================================
                            // Datenpunkte anlegen
                            // =============================================================================
                            function anlegen(){
                            if (logging) log('--------> Start -> es gibt für ' + Elemente.length + ' Elemente einen Datenpunkt anzulegen');
                            for(var i=0;i <elemente.length;i++) {/createstate(pfad/+/elemente[i],/0,/{name:/elementenamen[i]});/if/(logging)/log('0.'/i/'/datenpunkt:/pfad/-="">' + ElementeNamen[i] + ' angelegt');
                            }}
                            // =============================================================================
                            ! // =============================================================================
                            // --- function zum Abfragen der Werte
                            // =============================================================================
                            function readElement(){
                            if (logging) log('--------> Start ->');
                            if (logging) log(' ---> Variable "step" = '+ step + ' für die Anzahle von ' + Elemente.length + ' Elemente');
                            if(Elemente.length < 1){
                            log('keine Elemente zum abfragen');
                            client.destroy();
                            return;
                            }
                            ! if(step < Elemente.length -1){
                            step++ ;
                            if (logging) log('0.'+ step + ' ---> Neue Abfrage --------------------> Durchlauf : ' + step + ' von ' + Elemente.length );
                            // --- hier dann die function mit werten aufrufen
                            var req = 'read -f ' + Elemente[step]; // der Befehl wird zusammengesetzt
                            var ele = Elemente[step];
                            var eleN = ElementeNamen[step];
                            client.write(req + '\n'); // hier wird der Befehl gesendet
                            if (logging) log('1.'+ step + ' BEFEHL wurde gesendet : ' + req);
                            }
                            else{
                            step = -1;
                            if (logging) log('0.'+ step + ' ---> keine weitere Abfrage nötig -----> Fertig');
                            setTimeout(readElement, 60000); //Wenn alle Werte abgefragt sind--> Neustart in 1 Minute

                                return;
                            }
                            

                            }

                            ! // =============================================================================
                            // --- Aufruf --- DATEN lesen
                            // =============================================================================
                            client.on('data', function(data) {
                            // if (logging) log('3 .'+ step + ' Daten werden empfangen : ' + data);
                            // --- die empfangenen Daten werden gewandelt und aufgeteilt (SUB-Funktion) ---
                            var datastr = data.toString();
                            // if (logging) log('3a.'+ step + ' RX-Daten (String) : ' + datastr);
                            //------------------------------------------------------------------------------
                            var databuf = '';
                            var prev = 0, next;
                            if (logging) log('3b.'+ step + ' Durchlauf : ' + step);
                            while ((next = datastr.indexOf('\n\n', prev)) > -1) {
                            databuf += datastr.substring(prev, next);
                            if (logging) log('3c.'+ step + ' Funktion aufrufen mit : ' + databuf + " als Daten");
                            //--- SUB-Funktion aufrufen ---
                            parse(databuf);
                            databuf = ''; // Datenbuffer leeren
                            prev = next + 1;
                            }
                            databuf += datastr.substring(prev);
                            readElement();//Abfragen des nächsten Wertes
                            //------------------------------------------------------------------------------
                            });
                            // =============================================================================
                            ! // =============================================================================
                            // Verbindungsabbau
                            // =============================================================================
                            client.on('close', function(fertig) {
                            if (logging) {
                            if (logging) log('4. -----> Verbindung geschlossen .');
                            client.destroy();
                            }
                            });
                            // =============================================================================
                            ! // =============================================================================
                            // --- SUB-Funktion --- Daten-String aufteilen
                            // =============================================================================
                            function parse(data) {
                            var arr = data.toString().split(/\r?;/); // wie viele Werte werden durch ";" getrennt
                            if (logging) log('3d.'+ step + ' Menge an Daten durch ; getrennt : ' + arr.length);
                            var fields = data.toString().split(';'); // hier wird auf den = getriggert
                            if (logging) log('anzahl an Feldern : ' + fields.length);
                            if(fields.length > 0) { // wenn mehrere Felder gefunden wurden
                            if (logging) log('WertVor : ' + fields[0]);
                            var WertVor =fields[0];
                            if (logging) log("WertNach : " + fields[1]);
                            fields[0] = fields[0].replace(' ','_');
                            if (logging) log("Feld 1 : " + fields[0]);
                            if (logging) log("Feld 2 : " + fields[1]);
                            setState(pfad + Elemente[step], WertVor); // Werte setzen
                            if (logging) log('4.'+ step + ' im Datenpunkt "' +pfad + '" wird "' + WertVor + '" gespeichert');
                            }
                            }
                            // =============================================================================
                            ! // =============================================================================
                            // --- Function --- Fehler abfangen und ausgeben
                            // =============================================================================
                            client.on('error', function(err) {
                            client.destroy();
                            if (logging) log(' Es ist ein Fehler aufgetreten : '+ err);
                            });
                            // =============================================================================
                            ! // =============================================================================
                            // Verbindungsaufbau
                            // =============================================================================
                            client.connect(PORT, HOST, function(){
                            readElement();
                            if (logging) log('1. Verbindungsaufbau zu : ' + HOST + ':' + PORT);
                            ! });
                            // =============================================================================
                            ! anlegen(); //States anlegen
                            ! //setInterval(readElement, 60000);</elemente.length;i++)>`
                            3361_ebus_ergebniss.png [/i][/i][/i]

                            1 Reply Last reply Reply Quote 0
                            • K
                              Kodak last edited by

                              dummer Frage wie bokommt man das Skript in VIS angezeigt :?

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              523
                              Online

                              31.9k
                              Users

                              80.2k
                              Topics

                              1.3m
                              Posts

                              3
                              24
                              3016
                              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