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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    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.
    • D
      der_Auge last edited by

      Fragen zum Projekt: http://forum.iobroker.net/viewtopic.php?f=23&t=9322

      a200, Ingo und ich suchen dafür Unterstützung.

      Folgender Script funktioniert "eBus_read-f (ReturnTemp)"

      ! // =============================================================================
      ! // Auslesen von Einzelwerten vom eBusd
      ! // =============================================================================
      ! var root = 'eBus'; // root of state inside 'javascript.0'
      ! var host = 'RPi2-2'; // set to your host running ebusd
      ! var port = 8888; // default ebusd port
      ! var logging = false; // "true" oder "false" wenn nicht gewünscht
      ! var net = require('net'); //
      ! var conn = false;
      ! // === pro Skript wird ein Datenpunkt abgefragt ## hier die beiden Werte anpassen=============
      ! var element = 'ReturnTemp'; // Hier Name des element eintragen
      ! var elementName = "Rücklauftemperatur"; // Hier die Bezeichnung für das element eintragen
      ! // ===========================================================================================
      ! // ebusctl read -f FlowTemp
      ! // 51.19;ok
      ! // =============================================================================
      ! var req = 'read -f ' + element;
      ! var pfad = 'eBus.Temperatur.'+ element; // Pfad innerhalb der Instanz
      ! // =============================================================================
      ! // Datenpunkte anlegen
      ! // =============================================================================
      ! createState(pfad, 0, {name: elementName ,rolle: 'value.temperature' ,type: 'string',unit: '°C'});
      ! // –-------------------------------------------------------- Start
      ! if (logging) log('1. Start trying eBus abfrage');
      ! var client = new net.Socket();
      ! client.connect(port, host, function() {
      ! if (logging) log('2. Connected to ebusd on ' + host + ':' + port);
      ! conn = true;
      ! client.write(req + '\n');
      ! if (logging) log('3. TX-Befehl: "' + req + '" wird gesendet');
      ! });
      ! // =============================================================================
      ! // Funktion Daten abfragen
      ! // =============================================================================
      ! function parse(data) {
      ! var arr = data.toString().split(/\r?;/); // wie viele Werte werden durch ";" getrennt
      ! if (logging) log("Menge : " + arr.length);
      ! var fields = data.toString().split(';'); // hier wird auf den = getriggert
      ! if (logging) log('Felder : ' + fields);
      ! if(fields.length > 1) { // 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
      ! }
      ! }
      ! // =============================================================================
      ! // Daten abfragen
      ! // =============================================================================
      ! var databuf = '';
      ! client.on('data', function(data) {
      ! var prev = 0, next;
      ! var datastr = data.toString();
      ! if (logging) log("4. RX-Daten : " + datastr);
      ! while ((next = datastr.indexOf('\n\n', prev)) > -1) {
      ! databuf += datastr.substring(prev, next);
      ! parse(databuf);
      ! databuf = '';
      ! prev = next + 1;
      ! }
      ! databuf += datastr.substring(prev);
      ! client.write('quit\n');
      ! });
      ! // =============================================================================
      ! // ? Ende
      ! // =============================================================================
      ! client.on('close', function() {
      ! conn = false;
      ! log('Connection to ebusd closed');
      ! });
      ! // =============================================================================
      ! // Funktion aufrufen
      ! // =============================================================================
      ! function getData() {
      ! client.connect(port, host, function() {
      ! if (logging) log('Connected to ebusd on ' + host + ':' + port);
      ! client.write(req + '\n');
      ! if (logging) log('TX-Befehl: "' + req + '" wird gesendet');
      ! });
      ! }
      ! schedule('*/1 * * * *', getData);

      Folgender Script funktioniert nicht "eBus_read-f (PrEnergyCountHwc1)"

      ! // =============================================================================
      ! // Auslesen von Einzelwerten vom eBusd
      ! // =============================================================================
      ! var root = 'eBus'; // root of state inside 'javascript.0'
      ! var host = 'RPi2-2'; // set to your host running ebusd
      ! var port = 8888; // default ebusd port
      ! var logging = true; // "true" oder "false" wenn nicht gewünscht
      ! var net = require('net'); //
      ! var conn = false;
      ! // === pro Skript wird ein Datenpunkt abgefragt ## hier die beiden Werte anpassen=============
      ! var element = 'PrEnergyCountHwc1'; // Hier Name des element eintragen
      ! var elementName = "PrEnergyCountDHW1_DK"; // Hier die Bezeichnung für das element eintragen
      ! // ===========================================================================================
      ! // ebusctl read -f FlowTemp
      ! // 51.19;ok
      ! // =============================================================================
      ! var req = 'read -f ' + element;
      ! var pfad = 'eBus.Temperatur.'+ element; // Pfad innerhalb der Instanz
      ! // =============================================================================
      ! // Datenpunkte anlegen
      ! // =============================================================================
      ! createState(pfad, 0, {name: elementName ,rolle: 'value.temperature' ,type: 'string',unit: '?'});
      ! // –-------------------------------------------------------- Start
      ! if (logging) log('1. Start trying eBus abfrage');
      ! var client = new net.Socket();
      ! client.connect(port, host, function() {
      ! if (logging) log('2. Connected to ebusd on ' + host + ':' + port);
      ! conn = true;
      ! client.write(req + '\n');
      ! if (logging) log('3. TX-Befehl: "' + req + '" wird gesendet');
      ! });
      ! // =============================================================================
      ! // Funktion Daten abfragen
      ! // =============================================================================
      ! function parse(data) {
      ! var arr = data.toString().split(/\r?;/); // wie viele Werte werden durch ";" getrennt
      ! if (logging) log("Menge : " + arr.length);
      ! var fields = data.toString().split(';'); // hier wird auf den = getriggert
      ! if (logging) log('Felder : ' + fields);
      ! if(fields.length > 1) { // 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
      ! }
      ! }
      ! // =============================================================================
      ! // Daten abfragen
      ! // =============================================================================
      ! var databuf = '';
      ! client.on('data', function(data) {
      ! var prev = 0, next;
      ! var datastr = data.toString();
      ! if (logging) log("4. RX-Daten : " + datastr);
      ! while ((next = datastr.indexOf('\n\n', prev)) > -1) {
      ! databuf += datastr.substring(prev, next);
      ! parse(databuf);
      ! databuf = '';
      ! prev = next + 1;
      ! }
      ! databuf += datastr.substring(prev);
      ! client.write('quit\n');
      ! });
      ! // =============================================================================
      ! // ? Ende
      ! // =============================================================================
      ! client.on('close', function() {
      ! conn = false;
      ! log('Connection to ebusd closed');
      ! });
      ! // =============================================================================
      ! // Funktion aufrufen
      ! // =============================================================================
      ! function getData() {
      ! client.connect(port, host, function() {
      ! if (logging) log('Connected to ebusd on ' + host + ':' + port);
      ! client.write(req + '\n');
      ! if (logging) log('TX-Befehl: "' + req + '" wird gesendet');
      ! });
      ! }
      ! schedule('*/1 * * * *', getData);

      laut LOG werden die Werte empfangen. Sie werden jedoch nicht in den Datenpunkt geschrieben.

      Vielleicht hat jemand auch noch eine Idee wie man eine Liste von "elementen" abfragen kann.

      Gruß

      Jürgen

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

        so,

        bin nun schon etwas weiter.

        nun benötige ich aber Unterstützung.

        Der Script der einen Wert abfragt ist soweit OK

        ! ````
        // =============================================================================
        // --- 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 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();
        ! // =============================================================================
        // Datenpunkte anlegen
        // =============================================================================
        createState(pfad, 0, {name: elementName});
        ! // =============================================================================
        // --- Verbindungsaufbau und Befehl absetzen ---
        // =============================================================================
        function getDATA() {
        client.connect(PORT, HOST, function(){
        if (logging) log('1.Verbindungsaufbau zu : ' + HOST + ':' + PORT);
        client.write(req + '\n');
        if (logging) log('2.BEFEHL wurde gesendet : ' + req);
        });
        }
        // =============================================================================
        // --- wenn Verbindungsaufbau fehl schlägt. Eine Fehlermeldung wird empfangen. -> warten --- kann noch raus
        // =============================================================================
        client.on('error', function(e) {
        if(e.code == 'ECONNREFUSED') {
        if (logging) log('Is the server running at ' + PORT + '?');
        ! client.setTimeout(4000, function() {
        client.connect(PORT, HOST, function(){
        if (logging) log('CONNECTED TO: ' + HOST + ':' + PORT);
        client.write('I am the inner superman');
        });
        });
        if (logging) log('Timeout for 5 seconds before trying port:' + PORT + ' again');
        }
        });
        ! // =============================================================================
        // --- function getDATA erstellen und damit DATEN lesen
        // =============================================================================
        client.on('data', function(data) {
        if (logging) log('3.Daten werden empfangen : ' + data);
        client.destroy();
        // --- 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);
        client.write('quit\n');
        //------------------------------------------------------------------------------
        });
        ! // =============================================================================
        // --- Funktion --- Verbindung schließen
        // =============================================================================
        client.on('close', function() {
        if (logging) log('4.Verbindung geschlossen .');
        });
        ! // =============================================================================
        // 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');
        }
        

        }

        ! // =============================================================================
        // Cron anlegen , Function soll jede Minute laufen
        // =============================================================================
        schedule('*/1 * * * *', getDATA);

        
        Nun wollte ich diesen Script dahin gehend umbauen das ich eine Reihe von Werten abfragen kann.
        
        Die Datenpunkte werden alle angelegt
        
        Die Abfrage läuft jedoch nicht
        
        >! ```
        `// =============================================================================
        // --- 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 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();
        // =============================================================================
        Elemente = ['PrEnergySumHwc1','PrEnergyCountHwc1','HcHours'];
        ElementeNamen = ['Betriebsstunden im Heizbetrieb','Betriebsstunden','Stunden' ];
        // =============================================================================
        >! // =============================================================================
        // Datenpunkte anlegen
        // =============================================================================
        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/+'/datenpunkte/angelegt/für/'/elemente[i]/-="">' + ElementeNamen[i]);
        }
        >! function readElemente(){
                for (var i=0;i <elemente.length;i++) {/var/req="read -f " +/elemente[i];/der/befehl/wird/zusammengesetzt/}/=="===========================================================================" ---/verbindungsaufbau/und/absetzen/client.connect(port,/host,/function(){/if/(logging)/log('1.verbindungsaufbau/zu/:/'/host/':'/port);/client.write(req/'\n');/log('2.befehl/wurde/gesendet/req);/});/funktion/daten/lesen/client.on('data',/function(data)/log('3.daten/werden/empfangen/data);/client.destroy();/die/empfangenen/gewandelt/aufgeteilt/(sub-funktion)/datastr="data.toString();" log('3a.rx-daten/(string)/datastr);/------------------------------------------------------------------------------/databuf/;/prev="0," next;/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);
        client.write('quit\n');
        //------------------------------------------------------------------------------
        });
        >! // =============================================================================
        // --- Funktion --- Verbindung schließen
        // =============================================================================
        client.on('close', function() {
            if (logging) log('4.Verbindung geschlossen .');
        });
        >! // =============================================================================
        // 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');
            }
        }
        >! schedule("1 0 * * *", readElemente);</elemente.length;i++)></elemente.length;i++)>` 
        >! Ich habe reichlich Gedanken-hinweise rein gebaut. Vielleicht kann man nachvollziehen was ich vor habe
        >! Das ist für einen JS-Laien doch sehr kompliziert :? 
        >! Gruß
        >! Jürgen[/i][/i][/i][/i][/i]
        ```
        1 Reply Last reply Reply Quote 0
        • D
          der_Auge last edited by

          Nächster Versuch

          nun sieht das Script folgendermaßen aus

          `// =============================================================================
          // --- 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 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();
          // =============================================================================
          Elemente = ['PrEnergySumHwc1','PrEnergyCountHwc1','HcHours'];
          ElementeNamen = ['Betriebsstunden im Heizbetrieb','Betriebsstunden','Stunden' ];
          // =============================================================================
          
          // =============================================================================
          // Datenpunkte anlegen
          // =============================================================================
          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');
          
          // --- hier dann die function mit werten aufrufen
              var req = 'read -f ' + Elemente[i];                             // der Befehl wird zusammengesetzt
              var ele = Elemente[i];
              var eleN = ElementeNamen[i];
              if (logging) log('0.' + i + ' function mit Werten : ' + req + ' # ' + ele + ' # ' + eleN + ' = aufrufen');
              readElement(req, ele, eleN);
          }
          
          // =============================================================================
          // --- function zum Abfragen der Werte
          // =============================================================================
          function readElement(req, ele, eleN){
              if (logging) log('0.x Die function wird aufgerufen');
              if (logging) log('1.0 Verbindungsaufbau zu   : ' + HOST + ':' + PORT);
          // =============================================================================
          // --- Aufruf --- Verbindungsaufbau und Befehl absetzen
          // =============================================================================
          client.connect(PORT, HOST, function Verbindungsaufbau(){
              if (logging) log('1.Verbindungsaufbau zu   : ' + HOST + ':' + PORT);
              client.write(req + '\n');
              if (logging) log('2.BEFEHL wurde gesendet  : ' + req);
          });
          // =============================================================================
          
          // =============================================================================
          // --- Aufruf --- DATEN lesen
          // =============================================================================
          client.on('data', function(data) {
              if (logging) log('3.Daten werden empfangen : ' + data);
              client.destroy();
          // --- 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);
          client.write('quit\n');
          //------------------------------------------------------------------------------
          });
          // =============================================================================
          
          // =============================================================================
          // --- Aufruf --- Verbindungsabbau
          // =============================================================================
          client.on('close', function Verbindungsabbau() {
              if (logging) log('4.Verbindung geschlossen .');
          });
          // =============================================================================
          }
          
          // =============================================================================
          // --- 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');
              }
          }
          // =============================================================================
          
          schedule("1 0 * * *", readElement);</elemente.length;i++)>` 
          
          Leider stürzt JS dabei ab
          `~~[code]~~2017-12-25 10:04:35.096  - info: javascript.0 Start javascript script.js.ebusd.eBus_anfang_2
          2017-12-25 10:04:35.103  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.0 Datenpunkt: eBus.Temperatur.PrEnergySumHwc1 -> Betriebsstunden im Heizbetrieb angelegt
          2017-12-25 10:04:35.104  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.0 function mit Werten : read -f PrEnergySumHwc1 # PrEnergySumHwc1 # Betriebsstunden im Heizbetrieb = aufrufen
          2017-12-25 10:04:35.105  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.x Die function wird aufgerufen
          2017-12-25 10:04:35.105  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 1.0 Verbindungsaufbau zu   : RPi2-2:8888
          2017-12-25 10:04:35.107  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.1 Datenpunkt: eBus.Temperatur.PrEnergyCountHwc1 -> Betriebsstunden angelegt
          2017-12-25 10:04:35.107  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.1 function mit Werten : read -f PrEnergyCountHwc1 # PrEnergyCountHwc1 # Betriebsstunden = aufrufen
          2017-12-25 10:04:35.108  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.x Die function wird aufgerufen
          2017-12-25 10:04:35.108  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 1.0 Verbindungsaufbau zu   : RPi2-2:8888
          2017-12-25 10:04:35.111  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.2 Datenpunkt: eBus.Temperatur.HcHours -> Stunden angelegt
          2017-12-25 10:04:35.111  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.2 function mit Werten : read -f HcHours # HcHours # Stunden = aufrufen
          2017-12-25 10:04:35.113  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.x Die function wird aufgerufen
          2017-12-25 10:04:35.113  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 1.0 Verbindungsaufbau zu   : RPi2-2:8888
          2017-12-25 10:04:35.115  - info: javascript.0 script.js.ebusd.eBus_anfang_2: registered 0 subscriptions and 1 schedule
          2017-12-25 10:04:35.138  - error: javascript.0 uncaught exception: connect EALREADY 192.168.28.144:8888 - Local (192.168.28.141:37016)
          2017-12-25 10:04:35.138  - error: javascript.0 Error: connect EALREADY 192.168.28.144:8888 - Local (192.168.28.141:37016)
              at Object.exports._errnoException (util.js:1020:11)
              at exports._exceptionWithHostPort (util.js:1043:20)
              at connect (net.js:880:16)
              at net.js:1013:7
              at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:62:16)
              at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:81:10)
          
          2017-12-25 10:04:35.145  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 4.Verbindung geschlossen .
          2017-12-25 10:04:35.146  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 4.Verbindung geschlossen .
          2017-12-25 10:04:35.146  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 4.Verbindung geschlossen .
          2017-12-25 10:04:35.182  - error: Caught by controller[0]: { Error: connect EALREADY 192.168.28.144:8888 - Local (192.168.28.141:37016)
          2017-12-25 10:04:35.182  - error: Caught by controller[0]:     at Object.exports._errnoException (util.js:1020:11)
          2017-12-25 10:04:35.183  - error: Caught by controller[0]:     at exports._exceptionWithHostPort (util.js:1043:20)
          2017-12-25 10:04:35.183  - error: Caught by controller[0]:     at connect (net.js:880:16)
          2017-12-25 10:04:35.183  - error: Caught by controller[0]:     at net.js:1013:7
          2017-12-25 10:04:35.184  - error: Caught by controller[0]:     at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:62:16)
          2017-12-25 10:04:35.184  - error: Caught by controller[0]:     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:81:10)
          2017-12-25 10:04:35.184  - error: Caught by controller[0]:   code: 'EALREADY',
          2017-12-25 10:04:35.184  - error: Caught by controller[0]:   errno: 'EALREADY',
          2017-12-25 10:04:35.185  - error: Caught by controller[0]:   syscall: 'connect',
          2017-12-25 10:04:35.185  - error: Caught by controller[0]:   address: '192.168.28.144',
          2017-12-25 10:04:35.185  - error: Caught by controller[0]:   port: 8888 }
          2017-12-25 10:04:35.185  - error: host.ioBmaster instance system.adapter.javascript.0 terminated with code 0 (OK)
          2017-12-25 10:04:35.186  - info: host.ioBmaster Restart adapter system.adapter.javascript.0 because enabled
          [/code]`
          
          Was läuft falsch?
          
          Einen schönen Weihnachtstag
          
          Gruß
          
          Jürgen[/i][/i][/i][/i][/i][/i]
          
          1 Reply Last reply Reply Quote 0
          • blauholsten
            blauholsten Developer last edited by

            @der_Auge:

            Nächster Versuch

            nun sieht das Script folgendermaßen aus

            `// =============================================================================
            // --- 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 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();
            // =============================================================================
            Elemente = ['PrEnergySumHwc1','PrEnergyCountHwc1','HcHours'];
            ElementeNamen = ['Betriebsstunden im Heizbetrieb','Betriebsstunden','Stunden' ];
            // =============================================================================
            
            // =============================================================================
            // Datenpunkte anlegen
            // =============================================================================
            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');
            
            // --- hier dann die function mit werten aufrufen
                var req = 'read -f ' + Elemente[i];                             // der Befehl wird zusammengesetzt
                var ele = Elemente[i];
                var eleN = ElementeNamen[i];
                if (logging) log('0.' + i + ' function mit Werten : ' + req + ' # ' + ele + ' # ' + eleN + ' = aufrufen');
                readElement(req, ele, eleN);
            }
            
            // =============================================================================
            // --- function zum Abfragen der Werte
            // =============================================================================
            function readElement(req, ele, eleN){
                if (logging) log('0.x Die function wird aufgerufen');
                if (logging) log('1.0 Verbindungsaufbau zu   : ' + HOST + ':' + PORT);
            // =============================================================================
            // --- Aufruf --- Verbindungsaufbau und Befehl absetzen
            // =============================================================================
            client.connect(PORT, HOST, function Verbindungsaufbau(){
                if (logging) log('1.Verbindungsaufbau zu   : ' + HOST + ':' + PORT);
                client.write(req + '\n');
                if (logging) log('2.BEFEHL wurde gesendet  : ' + req);
            });
            // =============================================================================
            
            // =============================================================================
            // --- Aufruf --- DATEN lesen
            // =============================================================================
            client.on('data', function(data) {
                if (logging) log('3.Daten werden empfangen : ' + data);
                client.destroy();
            // --- 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);
            client.write('quit\n');
            //------------------------------------------------------------------------------
            });
            // =============================================================================
            
            // =============================================================================
            // --- Aufruf --- Verbindungsabbau
            // =============================================================================
            client.on('close', function Verbindungsabbau() {
                if (logging) log('4.Verbindung geschlossen .');
            });
            // =============================================================================
            }
            
            // =============================================================================
            // --- 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');
                }
            }
            // =============================================================================
            
            schedule("1 0 * * *", readElement);</elemente.length;i++)>` 
            
            Leider stürzt JS dabei ab
            `~~[code]~~2017-12-25 10:04:35.096  - info: javascript.0 Start javascript script.js.ebusd.eBus_anfang_2
            2017-12-25 10:04:35.103  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.0 Datenpunkt: eBus.Temperatur.PrEnergySumHwc1 -> Betriebsstunden im Heizbetrieb angelegt
            2017-12-25 10:04:35.104  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.0 function mit Werten : read -f PrEnergySumHwc1 # PrEnergySumHwc1 # Betriebsstunden im Heizbetrieb = aufrufen
            2017-12-25 10:04:35.105  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.x Die function wird aufgerufen
            2017-12-25 10:04:35.105  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 1.0 Verbindungsaufbau zu   : RPi2-2:8888
            2017-12-25 10:04:35.107  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.1 Datenpunkt: eBus.Temperatur.PrEnergyCountHwc1 -> Betriebsstunden angelegt
            2017-12-25 10:04:35.107  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.1 function mit Werten : read -f PrEnergyCountHwc1 # PrEnergyCountHwc1 # Betriebsstunden = aufrufen
            2017-12-25 10:04:35.108  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.x Die function wird aufgerufen
            2017-12-25 10:04:35.108  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 1.0 Verbindungsaufbau zu   : RPi2-2:8888
            2017-12-25 10:04:35.111  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.2 Datenpunkt: eBus.Temperatur.HcHours -> Stunden angelegt
            2017-12-25 10:04:35.111  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.2 function mit Werten : read -f HcHours # HcHours # Stunden = aufrufen
            2017-12-25 10:04:35.113  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.x Die function wird aufgerufen
            2017-12-25 10:04:35.113  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 1.0 Verbindungsaufbau zu   : RPi2-2:8888
            2017-12-25 10:04:35.115  - info: javascript.0 script.js.ebusd.eBus_anfang_2: registered 0 subscriptions and 1 schedule
            2017-12-25 10:04:35.138  - error: javascript.0 uncaught exception: connect EALREADY 192.168.28.144:8888 - Local (192.168.28.141:37016)
            2017-12-25 10:04:35.138  - error: javascript.0 Error: connect EALREADY 192.168.28.144:8888 - Local (192.168.28.141:37016)
                at Object.exports._errnoException (util.js:1020:11)
                at exports._exceptionWithHostPort (util.js:1043:20)
                at connect (net.js:880:16)
                at net.js:1013:7
                at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:62:16)
                at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:81:10)
            
            2017-12-25 10:04:35.145  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 4.Verbindung geschlossen .
            2017-12-25 10:04:35.146  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 4.Verbindung geschlossen .
            2017-12-25 10:04:35.146  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 4.Verbindung geschlossen .
            2017-12-25 10:04:35.182  - error: Caught by controller[0]: { Error: connect EALREADY 192.168.28.144:8888 - Local (192.168.28.141:37016)
            2017-12-25 10:04:35.182  - error: Caught by controller[0]:     at Object.exports._errnoException (util.js:1020:11)
            2017-12-25 10:04:35.183  - error: Caught by controller[0]:     at exports._exceptionWithHostPort (util.js:1043:20)
            2017-12-25 10:04:35.183  - error: Caught by controller[0]:     at connect (net.js:880:16)
            2017-12-25 10:04:35.183  - error: Caught by controller[0]:     at net.js:1013:7
            2017-12-25 10:04:35.184  - error: Caught by controller[0]:     at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:62:16)
            2017-12-25 10:04:35.184  - error: Caught by controller[0]:     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:81:10)
            2017-12-25 10:04:35.184  - error: Caught by controller[0]:   code: 'EALREADY',
            2017-12-25 10:04:35.184  - error: Caught by controller[0]:   errno: 'EALREADY',
            2017-12-25 10:04:35.185  - error: Caught by controller[0]:   syscall: 'connect',
            2017-12-25 10:04:35.185  - error: Caught by controller[0]:   address: '192.168.28.144',
            2017-12-25 10:04:35.185  - error: Caught by controller[0]:   port: 8888 }
            2017-12-25 10:04:35.185  - error: host.ioBmaster instance system.adapter.javascript.0 terminated with code 0 (OK)
            2017-12-25 10:04:35.186  - info: host.ioBmaster Restart adapter system.adapter.javascript.0 because enabled
            [/code]`
            
            Was läuft falsch?
            
            Einen schönen Weihnachtstag
            
            Gruß
            
            Jürgen
            
            Auf die schnelle....
            
            Du machst keine "error" Behandlung, füge sowas in deinem Skript ein, dann schmiert dir die JS-Instanz nicht mehr ab.
            
            `~~[code]~~client.on('error', function(err) {
                log(err)});[/code]`
            
            Hoffe das hilft[/i][/i][/i][/i][/i][/i]
            ``` ` 
            1 Reply Last reply Reply Quote 0
            • D
              der_Auge last edited by

              OK

              Danke für den Hinweis

              HAbe nun folgendes hinzu gefügt:

              // =============================================================================
              // --- Function --- Fehler abfangen und ausgeben
              // =============================================================================
              client.on('error', function(err) {
                  if (logging) log('Es ist ein Fehler aufgetreten : '+ err)
                  });
              // =============================================================================
              
              

              Dann schmiert JS nicht mehr ab und es kommt die Fehlermeldung:

              javascript.0 script.js.ebusd.eBus_anfang_2: Es ist ein Fehler aufgetreten : Error: connect EALREADY 192.168.28.144:8888 - Local (192.168.28.141:40878)
              

              Es stellt sich jedoch die Frage warum die function nicht verschachtelt arbeitet

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

                @der_Auge:

                OK

                Danke für den Hinweis

                HAbe nun folgendes hinzu gefügt:

                // =============================================================================
                // --- Function --- Fehler abfangen und ausgeben
                // =============================================================================
                client.on('error', function(err) {
                    if (logging) log('Es ist ein Fehler aufgetreten : '+ err)
                    });
                // =============================================================================
                
                

                Dann schmiert JS nicht mehr ab und es kommt die Fehlermeldung:

                javascript.0 script.js.ebusd.eBus_anfang_2: Es ist ein Fehler aufgetreten : Error: connect EALREADY 192.168.28.144:8888 - Local (192.168.28.141:40878)
                

                Es stellt sich jedoch die Frage warum die function nicht verschachtelt arbeitet `
                Wie verschachtelt?

                Unter Vorbehalt, und auf die schnelle:

                Ich denke dein Code wird so nicht funktionieren, wenn ich den Code richtig verstehe, versuchst du bei jeden Abfragewert eine neue Verbindung zum Client herausstellen.

                Laut kurzer Google Hilfe, entspricht das auch der Fehlermeldung.

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

                  Kann man dem Client mehrere Anfragen gleichzeitig senden? Oder muss man immer einzeln Befehle senden?

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

                    @blauholsten:

                    Kann man dem Client mehrere Anfragen gleichzeitig senden? Oder muss man immer einzeln Befehle senden? `
                    Ich denke nicht. Das soll er eigentlich auch nicht.

                    @der_Auge:

                    Folgender Script funktioniert "eBus_read-f (ReturnTemp)"

                    ! // =============================================================================
                    ! // Auslesen von Einzelwerten vom eBusd
                    ! // =============================================================================
                    ! var root = 'eBus'; // root of state inside 'javascript.0'
                    ! var host = 'RPi2-2'; // set to your host running ebusd
                    ! var port = 8888; // default ebusd port
                    ! var logging = false; // "true" oder "false" wenn nicht gewünscht
                    ! var net = require('net'); //
                    ! var conn = false;
                    ! // === pro Skript wird ein Datenpunkt abgefragt ## hier die beiden Werte anpassen=============
                    ! var element = 'ReturnTemp'; // Hier Name des element eintragen
                    ! var elementName = "Rücklauftemperatur"; // Hier die Bezeichnung für das element eintragen
                    ! // ===========================================================================================
                    ! // ebusctl read -f FlowTemp
                    ! // 51.19;ok
                    ! // =============================================================================
                    ! var req = 'read -f ' + element;
                    ! var pfad = 'eBus.Temperatur.'+ element; // Pfad innerhalb der Instanz
                    ! // =============================================================================
                    ! // Datenpunkte anlegen
                    ! // =============================================================================
                    ! createState(pfad, 0, {name: elementName ,rolle: 'value.temperature' ,type: 'string',unit: '°C'});
                    ! // –-------------------------------------------------------- Start
                    ! if (logging) log('1. Start trying eBus abfrage');
                    ! var client = new net.Socket();
                    ! client.connect(port, host, function() {
                    ! if (logging) log('2. Connected to ebusd on ' + host + ':' + port);
                    ! conn = true;
                    ! client.write(req + '\n');
                    ! if (logging) log('3. TX-Befehl: "' + req + '" wird gesendet');
                    ! });
                    ! // =============================================================================
                    ! // Funktion Daten abfragen
                    ! // =============================================================================
                    ! function parse(data) {
                    ! var arr = data.toString().split(/\r?;/); // wie viele Werte werden durch ";" getrennt
                    ! if (logging) log("Menge : " + arr.length);
                    ! var fields = data.toString().split(';'); // hier wird auf den = getriggert
                    ! if (logging) log('Felder : ' + fields);
                    ! if(fields.length > 1) { // 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
                    ! }
                    ! }
                    ! // =============================================================================
                    ! // Daten abfragen
                    ! // =============================================================================
                    ! var databuf = '';
                    ! client.on('data', function(data) {
                    ! var prev = 0, next;
                    ! var datastr = data.toString();
                    ! if (logging) log("4. RX-Daten : " + datastr);
                    ! while ((next = datastr.indexOf('\n\n', prev)) > -1) {
                    ! databuf += datastr.substring(prev, next);
                    ! parse(databuf);
                    ! databuf = '';
                    ! prev = next + 1;
                    ! }
                    ! databuf += datastr.substring(prev);
                    ! client.write('quit\n');
                    ! });
                    ! // =============================================================================
                    ! // ? Ende
                    ! // =============================================================================
                    ! client.on('close', function() {
                    ! conn = false;
                    ! log('Connection to ebusd closed');
                    ! });
                    ! // =============================================================================
                    ! // Funktion aufrufen
                    ! // =============================================================================
                    ! function getData() {
                    ! client.connect(port, host, function() {
                    ! if (logging) log('Connected to ebusd on ' + host + ':' + port);
                    ! client.write(req + '\n');
                    ! if (logging) log('TX-Befehl: "' + req + '" wird gesendet');
                    ! });
                    ! }
                    ! schedule('*/1 * * * *', getData); `
                    nun möchte ich diese Abfrage in einer Schleife mit verschiedenen "elementen" durchlaufen. Das bekomme ich nicht hin.

                    2017-12-26 05:30:09.286  - info: javascript.0 Start javascript script.js.ebusd.eBus_anfang_2
                    2017-12-26 05:30:09.292  - info: javascript.0 script.js.ebusd.eBus_anfang_2: --> Start -> es gibt 3 Elemente
                    2017-12-26 05:30:09.294  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.0 Datenpunkt: eBus.Temperatur.PrEnergySumHwc1 -> Betriebsstunden im Heizbetrieb angelegt
                    2017-12-26 05:30:09.294  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.0 function mit Werten : read -f PrEnergySumHwc1 # PrEnergySumHwc1 # Betriebsstunden im Heizbetrieb = aufrufen
                    2017-12-26 05:30:09.295  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.->function wird abgearbeitet
                    2017-12-26 05:30:09.296  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 1.0 Verbindungsversuch zu   : RPi2-2:8888
                    2017-12-26 05:30:09.297  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.1 Datenpunkt: eBus.Temperatur.PrEnergyCountHwc1 -> Betriebsstunden angelegt
                    2017-12-26 05:30:09.298  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.1 function mit Werten : read -f PrEnergyCountHwc1 # PrEnergyCountHwc1 # Betriebsstunden = aufrufen
                    2017-12-26 05:30:09.298  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.->function wird abgearbeitet
                    2017-12-26 05:30:09.298  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 1.1 Verbindungsversuch zu   : RPi2-2:8888
                    2017-12-26 05:30:09.299  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.2 Datenpunkt: eBus.Temperatur.HcHours -> Stunden angelegt
                    2017-12-26 05:30:09.300  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.2 function mit Werten : read -f HcHours # HcHours # Stunden = aufrufen
                    2017-12-26 05:30:09.301  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.->function wird abgearbeitet
                    2017-12-26 05:30:09.303  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 1.2 Verbindungsversuch zu   : RPi2-2:8888
                    2017-12-26 05:30:09.305  - info: javascript.0 script.js.ebusd.eBus_anfang_2: registered 0 subscriptions and 1 schedule
                    2017-12-26 05:30:09.308  - info: javascript.0 script.js.ebusd.eBus_anfang_2: :-( .3 Es ist ein Fehler aufgetreten : Error: connect EALREADY 192.168.28.144:8888 - Local (192.168.28.141:45462)
                    2017-12-26 05:30:09.311  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 4.3 Verbindung geschlossen .
                    2017-12-26 05:30:09.311  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 4.3 Verbindung geschlossen .
                    2017-12-26 05:30:09.311  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 4.3 Verbindung geschlossen .
                    
                    

                    Habe mit den Ziffern versucht den Ablauf des Scripts nachzuvollziehen

                    Aktueller Stand der noch fehlerhaft ist:

                    ! // =============================================================================
                    ! // –- 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 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();
                    ! // =============================================================================
                    ! Elemente = ['PrEnergySumHwc1','PrEnergyCountHwc1','HcHours'];
                    ! ElementeNamen = ['Betriebsstunden im Heizbetrieb','Betriebsstunden','Stunden' ];
                    ! // =============================================================================
                    ! // =============================================================================
                    ! // Datenpunkte anlegen und ddie "Elemente" abfragen
                    ! // =============================================================================
                    ! if (logging) log('–> Start -> es gibt ' + Elemente.length + ' Elemente');
                    ! for(var i=0;i <elemente.length;i++) {<br="">var pfad = 'eBus.Temperatur.'+ Elemente__; // Pfad innerhalb der Instanz wo die Daten gespeichert werden
                    ! createState(pfad, 0, {name: ElementeNamen__});
                    ! if (logging) log('0.' + i + ' Datenpunkt: ' + pfad + ' -> ' + ElementeNamen + ' angelegt');
                    ! // –- hier dann die function mit werten aufrufen
                    ! var req = 'read -f ' + Elemente
                    ; // der Befehl wird zusammengesetzt
                    ! var ele = Elemente__;
                    ! var eleN = ElementeNamen__;
                    ! if (logging) log('0.' + i + ' function mit Werten : ' + req + ' # ' + ele + ' # ' + eleN + ' = aufrufen');
                    ! readElement(req, ele, eleN);
                    ! }
                    ! // =============================================================================
                    ! // –- function zum Abfragen der Werte
                    ! // =============================================================================
                    ! function readElement(req, ele, eleN){
                    ! if (logging) log('0.->function wird abgearbeitet');
                    ! if (logging) log('1.' + i + ' Verbindungsversuch zu : ' + HOST + ':' + PORT);
                    ! // =============================================================================
                    ! // --- Aufruf --- Verbindungsaufbau und Befehl absetzen
                    ! // =============================================================================
                    ! client.connect(PORT, HOST, function Verbindungsaufbau(){
                    ! if (logging) log('1.' + i + ' Verbindungsaufbau zu : ' + HOST + ':' + PORT);
                    ! client.write(req + '\n');
                    ! if (logging) log('2.' + i + ' BEFEHL wurde gesendet : ' + req);
                    ! });
                    ! // =============================================================================
                    ! // =============================================================================
                    ! // --- Aufruf --- DATEN lesen
                    ! // =============================================================================
                    ! client.on('data', function(data) {
                    ! if (logging) log('3.' + i + ' Daten werden empfangen : ' + data);
                    ! client.destroy();
                    ! // --- die empfangenen Daten werden gewandelt und aufgeteilt (SUB-Funktion) ---
                    ! var datastr = data.toString();
                    ! if (logging) log('3a.' + i + ' RX-Daten (String) : ' + datastr);
                    ! //------------------------------------------------------------------------------
                    ! var databuf = '';
                    ! var prev = 0, next;
                    ! if (logging) log('3b.' + i + 'Durchlauf : ' + prev);
                    ! while ((next = datastr.indexOf('\n\n', prev)) > -1) {
                    ! databuf += datastr.substring(prev, next);
                    ! if (logging) log('3c.' + i + ' Funktion aufrufen mit : ' + databuf + " als Daten");
                    ! //--- SUB-Funktion aufrufen ---
                    ! parse(databuf);
                    ! databuf = ''; // Datenbuffer leeren
                    ! prev = next + 1;
                    ! }
                    ! databuf += datastr.substring(prev);
                    ! client.write('quit\n');
                    ! //------------------------------------------------------------------------------
                    ! });
                    ! // =============================================================================
                    ! // =============================================================================
                    ! // --- Aufruf --- Verbindungsabbau
                    ! // =============================================================================
                    ! client.on('close', function Verbindungsabbau() {
                    ! if (logging) log('4.' + i + ' Verbindung geschlossen .');
                    ! });
                    ! // =============================================================================
                    ! }
                    ! // =============================================================================
                    ! // --- SUB-Funktion --- Daten-String aufteilen
                    ! // =============================================================================
                    ! function parse(data) {
                    ! var arr = data.toString().split(/\r?;/); // wie viele Werte werden durch ";" getrennt
                    ! if (logging) log("3d.' + i + ' 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) {
                    ! if (logging) log(':-( .' + i + ' Es ist ein Fehler aufgetreten : '+ err)
                    ! });
                    ! // =============================================================================
                    ! schedule("1 0 * * *", readElement);
                    ___________</elemente.length;i++)> _________Gruß

                    Jürgen_________

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

                      @der_Auge:

                      @blauholsten:

                      Kann man dem Client mehrere Anfragen gleichzeitig senden? Oder muss man immer einzeln Befehle senden? `
                      Ich denke nicht. Das soll er eigentlich auch nicht.

                      @der_Auge:

                      Folgender Script funktioniert "eBus_read-f (ReturnTemp)"

                      ! // =============================================================================
                      ! // Auslesen von Einzelwerten vom eBusd
                      ! // =============================================================================
                      ! var root = 'eBus'; // root of state inside 'javascript.0'
                      ! var host = 'RPi2-2'; // set to your host running ebusd
                      ! var port = 8888; // default ebusd port
                      ! var logging = false; // "true" oder "false" wenn nicht gewünscht
                      ! var net = require('net'); //
                      ! var conn = false;
                      ! // === pro Skript wird ein Datenpunkt abgefragt ## hier die beiden Werte anpassen=============
                      ! var element = 'ReturnTemp'; // Hier Name des element eintragen
                      ! var elementName = "Rücklauftemperatur"; // Hier die Bezeichnung für das element eintragen
                      ! // ===========================================================================================
                      ! // ebusctl read -f FlowTemp
                      ! // 51.19;ok
                      ! // =============================================================================
                      ! var req = 'read -f ' + element;
                      ! var pfad = 'eBus.Temperatur.'+ element; // Pfad innerhalb der Instanz
                      ! // =============================================================================
                      ! // Datenpunkte anlegen
                      ! // =============================================================================
                      ! createState(pfad, 0, {name: elementName ,rolle: 'value.temperature' ,type: 'string',unit: '°C'});
                      ! // –-------------------------------------------------------- Start
                      ! if (logging) log('1. Start trying eBus abfrage');
                      ! var client = new net.Socket();
                      ! client.connect(port, host, function() {
                      ! if (logging) log('2. Connected to ebusd on ' + host + ':' + port);
                      ! conn = true;
                      ! client.write(req + '\n');
                      ! if (logging) log('3. TX-Befehl: "' + req + '" wird gesendet');
                      ! });
                      ! // =============================================================================
                      ! // Funktion Daten abfragen
                      ! // =============================================================================
                      ! function parse(data) {
                      ! var arr = data.toString().split(/\r?;/); // wie viele Werte werden durch ";" getrennt
                      ! if (logging) log("Menge : " + arr.length);
                      ! var fields = data.toString().split(';'); // hier wird auf den = getriggert
                      ! if (logging) log('Felder : ' + fields);
                      ! if(fields.length > 1) { // 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
                      ! }
                      ! }
                      ! // =============================================================================
                      ! // Daten abfragen
                      ! // =============================================================================
                      ! var databuf = '';
                      ! client.on('data', function(data) {
                      ! var prev = 0, next;
                      ! var datastr = data.toString();
                      ! if (logging) log("4. RX-Daten : " + datastr);
                      ! while ((next = datastr.indexOf('\n\n', prev)) > -1) {
                      ! databuf += datastr.substring(prev, next);
                      ! parse(databuf);
                      ! databuf = '';
                      ! prev = next + 1;
                      ! }
                      ! databuf += datastr.substring(prev);
                      ! client.write('quit\n');
                      ! });
                      ! // =============================================================================
                      ! // ? Ende
                      ! // =============================================================================
                      ! client.on('close', function() {
                      ! conn = false;
                      ! log('Connection to ebusd closed');
                      ! });
                      ! // =============================================================================
                      ! // Funktion aufrufen
                      ! // =============================================================================
                      ! function getData() {
                      ! client.connect(port, host, function() {
                      ! if (logging) log('Connected to ebusd on ' + host + ':' + port);
                      ! client.write(req + '\n');
                      ! if (logging) log('TX-Befehl: "' + req + '" wird gesendet');
                      ! });
                      ! }
                      ! schedule('*/1 * * * *', getData); `
                      nun möchte ich diese Abfrage in einer Schleife mit verschiedenen "elementen" durchlaufen. Das bekomme ich nicht hin.

                      2017-12-26 05:30:09.286  - info: javascript.0 Start javascript script.js.ebusd.eBus_anfang_2
                      2017-12-26 05:30:09.292  - info: javascript.0 script.js.ebusd.eBus_anfang_2: --> Start -> es gibt 3 Elemente
                      2017-12-26 05:30:09.294  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.0 Datenpunkt: eBus.Temperatur.PrEnergySumHwc1 -> Betriebsstunden im Heizbetrieb angelegt
                      2017-12-26 05:30:09.294  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.0 function mit Werten : read -f PrEnergySumHwc1 # PrEnergySumHwc1 # Betriebsstunden im Heizbetrieb = aufrufen
                      2017-12-26 05:30:09.295  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.->function wird abgearbeitet
                      2017-12-26 05:30:09.296  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 1.0 Verbindungsversuch zu   : RPi2-2:8888
                      2017-12-26 05:30:09.297  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.1 Datenpunkt: eBus.Temperatur.PrEnergyCountHwc1 -> Betriebsstunden angelegt
                      2017-12-26 05:30:09.298  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.1 function mit Werten : read -f PrEnergyCountHwc1 # PrEnergyCountHwc1 # Betriebsstunden = aufrufen
                      2017-12-26 05:30:09.298  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.->function wird abgearbeitet
                      2017-12-26 05:30:09.298  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 1.1 Verbindungsversuch zu   : RPi2-2:8888
                      2017-12-26 05:30:09.299  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.2 Datenpunkt: eBus.Temperatur.HcHours -> Stunden angelegt
                      2017-12-26 05:30:09.300  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.2 function mit Werten : read -f HcHours # HcHours # Stunden = aufrufen
                      2017-12-26 05:30:09.301  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 0.->function wird abgearbeitet
                      2017-12-26 05:30:09.303  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 1.2 Verbindungsversuch zu   : RPi2-2:8888
                      2017-12-26 05:30:09.305  - info: javascript.0 script.js.ebusd.eBus_anfang_2: registered 0 subscriptions and 1 schedule
                      2017-12-26 05:30:09.308  - info: javascript.0 script.js.ebusd.eBus_anfang_2: :-( .3 Es ist ein Fehler aufgetreten : Error: connect EALREADY 192.168.28.144:8888 - Local (192.168.28.141:45462)
                      2017-12-26 05:30:09.311  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 4.3 Verbindung geschlossen .
                      2017-12-26 05:30:09.311  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 4.3 Verbindung geschlossen .
                      2017-12-26 05:30:09.311  - info: javascript.0 script.js.ebusd.eBus_anfang_2: 4.3 Verbindung geschlossen .
                      
                      

                      Habe mit den Ziffern versucht den Ablauf des Scripts nachzuvollziehen

                      Aktueller Stand der noch fehlerhaft ist:

                      ! // =============================================================================
                      ! // –- 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 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();
                      ! // =============================================================================
                      ! Elemente = ['PrEnergySumHwc1','PrEnergyCountHwc1','HcHours'];
                      ! ElementeNamen = ['Betriebsstunden im Heizbetrieb','Betriebsstunden','Stunden' ];
                      ! // =============================================================================
                      ! // =============================================================================
                      ! // Datenpunkte anlegen und ddie "Elemente" abfragen
                      ! // =============================================================================
                      ! if (logging) log('–> Start -> es gibt ' + Elemente.length + ' Elemente');
                      ! for(var i=0;i <elemente.length;i++) {<br="">var pfad = 'eBus.Temperatur.'+ Elemente__; // Pfad innerhalb der Instanz wo die Daten gespeichert werden
                      ! createState(pfad, 0, {name: ElementeNamen__});
                      ! if (logging) log('0.' + i + ' Datenpunkt: ' + pfad + ' -> ' + ElementeNamen + ' angelegt');
                      ! // –- hier dann die function mit werten aufrufen
                      ! var req = 'read -f ' + Elemente
                      ; // der Befehl wird zusammengesetzt
                      ! var ele = Elemente__;
                      ! var eleN = ElementeNamen__;
                      ! if (logging) log('0.' + i + ' function mit Werten : ' + req + ' # ' + ele + ' # ' + eleN + ' = aufrufen');
                      ! readElement(req, ele, eleN);
                      ! }
                      ! // =============================================================================
                      ! // –- function zum Abfragen der Werte
                      ! // =============================================================================
                      ! function readElement(req, ele, eleN){
                      ! if (logging) log('0.->function wird abgearbeitet');
                      ! if (logging) log('1.' + i + ' Verbindungsversuch zu : ' + HOST + ':' + PORT);
                      ! // =============================================================================
                      ! // --- Aufruf --- Verbindungsaufbau und Befehl absetzen
                      ! // =============================================================================
                      ! client.connect(PORT, HOST, function Verbindungsaufbau(){
                      ! if (logging) log('1.' + i + ' Verbindungsaufbau zu : ' + HOST + ':' + PORT);
                      ! client.write(req + '\n');
                      ! if (logging) log('2.' + i + ' BEFEHL wurde gesendet : ' + req);
                      ! });
                      ! // =============================================================================
                      ! // =============================================================================
                      ! // --- Aufruf --- DATEN lesen
                      ! // =============================================================================
                      ! client.on('data', function(data) {
                      ! if (logging) log('3.' + i + ' Daten werden empfangen : ' + data);
                      ! client.destroy();
                      ! // --- die empfangenen Daten werden gewandelt und aufgeteilt (SUB-Funktion) ---
                      ! var datastr = data.toString();
                      ! if (logging) log('3a.' + i + ' RX-Daten (String) : ' + datastr);
                      ! //------------------------------------------------------------------------------
                      ! var databuf = '';
                      ! var prev = 0, next;
                      ! if (logging) log('3b.' + i + 'Durchlauf : ' + prev);
                      ! while ((next = datastr.indexOf('\n\n', prev)) > -1) {
                      ! databuf += datastr.substring(prev, next);
                      ! if (logging) log('3c.' + i + ' Funktion aufrufen mit : ' + databuf + " als Daten");
                      ! //--- SUB-Funktion aufrufen ---
                      ! parse(databuf);
                      ! databuf = ''; // Datenbuffer leeren
                      ! prev = next + 1;
                      ! }
                      ! databuf += datastr.substring(prev);
                      ! client.write('quit\n');
                      ! //------------------------------------------------------------------------------
                      ! });
                      ! // =============================================================================
                      ! // =============================================================================
                      ! // --- Aufruf --- Verbindungsabbau
                      ! // =============================================================================
                      ! client.on('close', function Verbindungsabbau() {
                      ! if (logging) log('4.' + i + ' Verbindung geschlossen .');
                      ! });
                      ! // =============================================================================
                      ! }
                      ! // =============================================================================
                      ! // --- SUB-Funktion --- Daten-String aufteilen
                      ! // =============================================================================
                      ! function parse(data) {
                      ! var arr = data.toString().split(/\r?;/); // wie viele Werte werden durch ";" getrennt
                      ! if (logging) log("3d.' + i + ' 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) {
                      ! if (logging) log(':-( .' + i + ' Es ist ein Fehler aufgetreten : '+ err)
                      ! });
                      ! // =============================================================================
                      ! schedule("1 0 * * *", readElement);
                      ___________</elemente.length;i++)> _________Gruß

                      Jürgen______ ______Hi,

                      habe es mal versucht etwas zu ändern:______

                      `// =============================================================================
                      // --- 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();
                      // =============================================================================
                      Elemente = ['PrEnergySumHwc1','PrEnergyCountHwc1','HcHours'];
                      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
                      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(){
                      if (logging) log('1\. Verbindungsaufbau zu : ' + HOST + ':' + PORT);
                      });
                      // =============================================================================
                      
                      anlegen();//States anlegen
                      
                      schedule("* * * * *", readElement);</elemente.length;i++)>`
                      
                      da ich es aber nicht testen kann, keine Garantie das das geht.
                      
                      (Ist auch nur dirty zusammen geschrieben von mir)
                      
                      **~~[b]~~ EDIT: schedule würde ich durch setIntervall ersetzen[/b]**[/i][/i][/i]
                      ```___ ` 
                      1 Reply Last reply Reply Quote 0
                      • D
                        der_Auge last edited by

                        leider noch mehr Fehlermeldungen und nicht definierte Variablen

                        😢

                        Gruß

                        Jürgen

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

                          @der_Auge:

                          leider noch mehr Fehlermeldungen und nicht definierte Variablen

                          😢

                          Gruß

                          Jürgen `
                          Sorry, kannst du mir den Log Mal schicke

                          1 Reply Last reply Reply Quote 0
                          • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            592
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

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