Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. CONTROME JSON Script zum auslesen von sensoren und Zuständen

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    CONTROME JSON Script zum auslesen von sensoren und Zuständen

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

      @meicker:

      Ich glaube jetzt habe ich den Aufbau soweit kapiert

      Es gibt einen Link, der dabei hilft, die Objekt-Struktur zu erkennen.

      1 Reply Last reply Reply Quote 0
      • M
        meicker last edited by

        @paul53:

        @meicker:

        Ich glaube jetzt habe ich den Aufbau soweit kapiert Es gibt einen [http://jsonviewer.stack.hu/](http://jsonviewer.stack.hu/), der dabei hilft, die Objekt-Struktur zu erkennen.

        DANKE 🙂

        1 Reply Last reply Reply Quote 0
        • M
          meicker last edited by

          @Paul53

          klappt ganz gut 🙂 Ich habe allerdings eine kurze Frage:

          1. Ich hole die temperatur als String.Bei Number wird wild gemeckert und das Log geflutet 🙂 Jetzt wird die Temperatur bei Controme mit ganz vielen Stellen hinter dem Komma angegeben und mir würden 1 oder 2 Stellen schon reichen. Wie kann ich das umschreiben ?

          createState('Controme.schlafzimmer.frt_temp', 0, {type: 'string', unit: '°C'});

          var frt_temp = sensoren[1].wert.Temperatur;

          setState('Controme.kueche.frt_temp', frt_temp, true);

          Viele Grüße,

          Marc

          1 Reply Last reply Reply Quote 0
          • M
            meicker last edited by

            @Paul53

            und da ist noch etwas:

            Wrong type of javascript.0.Controme.schlafzimmer.solltemperatur: "number". Please fix, while deprecated and will not work in next versions.

            Das wurde im Forum 2016 schon mal behandelt, sollte doch behoben sein,oder ? Du warst da irgendwie involviert 🙂

            Ich habe das Problem mit den temperaturen. Die sind eigentlich als String angelegt und werden als number angemeckert … Ich dachte schon ich hätte den Log Eintrag falsch gedeutet und die mal auf Number gesetzt, aber da kommt der Fehler ebenfalls ...

            Was muss ich da anstellen ?

            Jetzt geh ich erstmal pennen 🙂

            Viele Grüße,

            Marc

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

              @meicker:

              Wrong type of javascript.0.Controme.schlafzimmer.solltemperatur: "number".

              Das sagt aus, dass mit setState() eine Zahl in einen Datenpunkt, der nicht vom Typ "number" ist, geschrieben wird.

              Alle Datenpunkte, die Temperaturen enthalten, müssen vom Typ "number" sein (unit: "°C"). Die CONTROME-Objekte enthalten Zahlen und müssen deshalb nicht mittels parseFloat() gewandelt werden.

              @meicker:

              Ich dachte schon ich hätte den Log Eintrag falsch gedeutet und die mal auf Number gesetzt, aber da kommt der Fehler ebenfalls …

              Wenn Du es im createState() änderst, hat es keine Auswirkung, wenn der Datenpunkt bereits existiert. Ändere es im Reiter "Objekte".

              1 Reply Last reply Reply Quote 0
              • M
                meicker last edited by

                Hi Paul,

                habe ich in Objekte geändert und scheint jetzt OK zu sein. Hier kann ich dann später weiter machen …

                Aber ich hatte 2 Posts gestern 🙂 Im ersten hatte ich gefragt ob ich die vielen Nachkommastellen bei den Temperaturen auch wegbekommen kann. Die nerven ein bisschen ...

                Vielen dank,

                Gruß,

                Marc

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

                  @meicker:

                  die vielen Nachkommastellen bei den Temperaturen auch wegbekommen kann. Die nerven ein bisschen

                  Sorry, habe ich übersehen. Beispiel:

                  setState('Controme.kueche.frt_temp', Math.round(10 * frt_temp) / 10, true); // 1 Nachkommastelle
                  
                  1 Reply Last reply Reply Quote 0
                  • M
                    meicker last edited by

                    DANKESCHÖN 🙂

                    1 Reply Last reply Reply Quote 0
                    • M
                      meicker last edited by

                      Ich habe mir doch einen Bug reingehauen 🙂 Ich verstehe zwar nicht warum das falsch ist, aber es macht einen fehler im Log - Die Werte erscheinen aber …

                      2018-08-23 23:00:10.047  - [31merror[39m: javascript.0 SyntaxError: Unexpected token < in JSON at position 0
                          at JSON.parse (<anonymous>:null:null)
                          at Request._callback (script.js.Controme.Sensordaten:130:33)
                          at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                          at emitTwo (events.js:126:13)
                          at Request.emit (events.js:214:7)
                          at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                          at emitOne (events.js:116:13)
                          at Request.emit (events.js:211:7)
                          at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                          at Object.onceWrapper (events.js:313:30)
                      
                      2018-08-23 23:00:10.054  - [31merror[39m: javascript.0 uncaught exception: Unexpected token < in JSON at position 0
                      2018-08-23 23:00:10.054  - [31merror[39m: javascript.0 SyntaxError: Unexpected token < in JSON at position 0
                          at JSON.parse (<anonymous>:null:null)
                          at Request._callback (script.js.Controme.Sensordaten:154:33)
                          at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                          at emitTwo (events.js:126:13)
                          at Request.emit (events.js:214:7)
                          at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                          at emitOne (events.js:116:13)
                          at Request.emit (events.js:211:7)
                          at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                          at Object.onceWrapper (events.js:313:30)
                      
                      2018-08-23 23:00:10.059  - [31merror[39m: javascript.0 uncaught exception: Unexpected token < in JSON at position 0
                      2018-08-23 23:00:10.059  - [31merror[39m: javascript.0 SyntaxError: Unexpected token < in JSON at position 0
                          at JSON.parse (<anonymous>:null:null)
                          at Request._callback (script.js.Controme.Sensordaten:176:33)
                          at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                          at emitTwo (events.js:126:13)
                          at Request.emit (events.js:214:7)
                          at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                          at emitOne (events.js:116:13)
                          at Request.emit (events.js:211:7)
                          at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                          at Object.onceWrapper (events.js:313:30)
                      
                      2018-08-23 23:00:10.064  - [31merror[39m: javascript.0 uncaught exception: Unexpected token < in JSON at position 0
                      2018-08-23 23:00:10.064  - [31merror[39m: javascript.0 SyntaxError: Unexpected token < in JSON at position 0
                          at JSON.parse (<anonymous>:null:null)
                          at Request._callback (script.js.Controme.Sensordaten:198:33)
                          at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                          at emitTwo (events.js:126:13)
                          at Request.emit (events.js:214:7)
                          at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                          at emitOne (events.js:116:13)
                          at Request.emit (events.js:211:7)
                          at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                          at Object.onceWrapper (events.js:313:30)
                      
                      2018-08-23 23:00:10.068  - [31merror[39m: javascript.0 uncaught exception: Unexpected token < in JSON at position 0
                      2018-08-23 23:00:10.069  - [31merror[39m: javascript.0 SyntaxError: Unexpected token < in JSON at position 0
                          at JSON.parse (<anonymous>:null:null)
                          at Request._callback (script.js.Controme.Sensordaten:220:33)
                          at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                          at emitTwo (events.js:126:13)
                          at Request.emit (events.js:214:7)
                          at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                          at emitOne (events.js:116:13)
                          at Request.emit (events.js:211:7)
                          at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                          at Object.onceWrapper (events.js:313:30)
                      
                      2018-08-23 23:00:10.073  - [31merror[39m: javascript.0 uncaught exception: Unexpected token < in JSON at position 0
                      2018-08-23 23:00:10.073  - [31merror[39m: javascript.0 SyntaxError: Unexpected token < in JSON at position 0
                          at JSON.parse (<anonymous>:null:null)
                          at Request._callback (script.js.Controme.Sensordaten:242:33)
                          at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                          at emitTwo (events.js:126:13)
                          at Request.emit (events.js:214:7)
                          at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                          at emitOne (events.js:116:13)
                          at Request.emit (events.js:211:7)
                          at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                          at Object.onceWrapper (events.js:313:30)
                      
                      2018-08-23 23:00:10.077  - [31merror[39m: javascript.0 uncaught exception: Unexpected token < in JSON at position 0
                      2018-08-23 23:00:10.078  - [31merror[39m: javascript.0 SyntaxError: Unexpected token < in JSON at position 0
                          at JSON.parse (<anonymous>:null:null)
                          at Request._callback (script.js.Controme.Sensordaten:264:33)
                          at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                          at emitTwo (events.js:126:13)
                          at Request.emit (events.js:214:7)
                          at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                          at emitOne (events.js:116:13)
                          at Request.emit (events.js:211:7)
                          at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                          at Object.onceWrapper (events.js:313:30)
                      
                      2018-08-23 23:00:10.081  - [31merror[39m: javascript.0 uncaught exception: Unexpected token < in JSON at position 0
                      2018-08-23 23:00:10.082  - [31merror[39m: javascript.0 SyntaxError: Unexpected token < in JSON at position 0
                          at JSON.parse (<anonymous>:null:null)
                          at Request._callback (script.js.Controme.Sensordaten:283:33)
                          at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                          at emitTwo (events.js:126:13)
                          at Request.emit (events.js:214:7)
                          at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                          at emitOne (events.js:116:13)
                          at Request.emit (events.js:211:7)
                          at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                          at Object.onceWrapper (events.js:313:30)</anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous>
                      

                      Das sind die betreffenden Zeilen:

                      130: var solltemp = JSON.parse(body)[0];
                      154: var solltemp = JSON.parse(body)[0];
                      usw ...
                      
                      

                      Das ist das Script komplett:

                      const request = require('request');
                      const link_kueche = 'http://192.168.1.12/get/json/v1/1/temps/1/';
                      const link_schlafzimmer = 'http://192.168.1.12/get/json/v1/1/temps/2/';
                      const link_wohnzimmer = 'http://192.168.1.12/get/json/v1/1/temps/3/';
                      const link_abstellkammer = 'http://192.168.1.12/get/json/v1/1/temps/4/';
                      const link_badezimmer = 'http://192.168.1.12/get/json/v1/1/temps/5/';
                      const link_flur = 'http://192.168.1.12/get/json/v1/1/temps/6/';
                      const link_arbeitszimmer = 'http://192.168.1.12/get/json/v1/1/temps/7/';
                      const link_esszimmer = 'http://192.168.1.12/get/json/v1/1/temps/8/';
                      const link_hkv = 'http://192.168.1.12/get/json/v1/1/temps/9/';
                      const link_vsensor1 = 'http://192.168.1.12/get/json/v1/1/temps/10/';
                      
                      // Datenpunkte erzeugen
                      //Küche
                      createState('Controme.kueche.frt_temp', 0, {type: "number", unit: '°C'});
                      createState('Controme.kueche.rl_temp', 0, {type: "number", unit: '°C'});
                      createState('Controme.kueche.frt_akt', 0, {type: "string", unit: ''});
                      createState('Controme.kueche.rl_akt', 0, {type: "string", unit: ''});
                      createState('Controme.kueche.solltemperatur', 0, {type: "number", unit: '°C'});
                      
                      //Schlafzimmer
                      createState('Controme.schlafzimmer.frt_temp', 0, {type: "number", unit: '°C'});
                      createState('Controme.schlafzimmer.rl_temp', 0, {type: "number", unit: '°C'});
                      createState('Controme.schlafzimmer.frt_akt', 0, {type: "string", unit: ''});
                      createState('Controme.schlafzimmer.rl_akt', 0, {type: "string", unit: ''});
                      createState('Controme.schlafzimmer.solltemperatur', 0, {type: "number", unit: '°C'});
                      
                      //Wohnzimmer
                      createState('Controme.wohnzimmer.frt_temp', 0, {type: "number", unit: '°C'});
                      createState('Controme.wohnzimmer.balkon_rl_temp', 0, {type: "number", unit: '°C'});
                      createState('Controme.wohnzimmer.mitte_rl_temp', 0, {type: "number", unit: '°C'});
                      createState('Controme.wohnzimmer.frt_akt', 0, {type: 'string', unit: ''});
                      createState('Controme.wohnzimmer.rl_akt', 0, {type: 'string', unit: ''});
                      createState('Controme.wohnzimmer.solltemperatur', 0, {type: "number", unit: '°C'});
                      
                      //Abstellkammer
                      createState('Controme.abstellkammer.frt_temp', 0, {type: 'number', unit: '°C'});
                      createState('Controme.abstellkammer.rl_temp', 0, {type: 'number', unit: '°C'});
                      createState('Controme.abstellkammer.frt_akt', 0, {type: 'string', unit: ''});
                      createState('Controme.abstellkammer.rl_akt', 0, {type: 'string', unit: ''});
                      createState('Controme.abstellkammer.solltemperatur', 0, {type: "number", unit: '°C'});
                      
                      //Badezimmer
                      createState('Controme.badezimmer.frt_temp', 0, {type: 'number', unit: '°C'});
                      createState('Controme.badezimmer.rl_temp', 0, {type: 'number', unit: '°C'});
                      createState('Controme.badezimmer.frt_akt', 0, {type: 'string', unit: ''});
                      createState('Controme.badezimmer.rl_akt', 0, {type: 'string', unit: ''});
                      createState('Controme.badezimmer.solltemperatur', 0, {type: "number", unit: '°C'});
                      
                      //Flur
                      createState('Controme.flur.frt_temp', 0, {type: 'number', unit: '°C'});
                      createState('Controme.flur.rl_temp', 0, {type: 'number', unit: '°C'});
                      createState('Controme.flur.frt_akt', 0, {type: 'string', unit: ''});
                      createState('Controme.flur.rl_akt', 0, {type: 'string', unit: ''});
                      createState('Controme.flur.solltemperatur', 0, {type: "number", unit: '°C'});
                      
                      //Arbeitszimmer
                      createState('Controme.arbeitszimmer.frt_temp', 0, {type: 'number', unit: '°C'});
                      createState('Controme.arbeitszimmer.rl_temp', 0, {type: 'number', unit: '°C'});
                      createState('Controme.arbeitszimmer.frt_akt', 0, {type: 'string', unit: ''});
                      createState('Controme.arbeitszimmer.rl_akt', 0, {type: 'string', unit: ''});
                      createState('Controme.arbeitszimmer.solltemperatur', 0, {type: "number", unit: '°C'});
                      
                      //Esszimmer
                      createState('Controme.esszimmer.frt_temp', 0, {type: 'number', unit: '°C'});
                      createState('Controme.esszimmer.rl_temp', 0, {type: 'number', unit: '°C'});
                      createState('Controme.esszimmer.frt_akt', 0, {type: 'string', unit: ''});
                      createState('Controme.esszimmer.rl_akt', 0, {type: 'string', unit: ''});
                      createState('Controme.esszimmer.solltemperatur', 0, {type: "number", unit: '°C'});
                      
                      //HKV
                      createState('Controme.hkv.vl_temp', 0, {type: 'number', unit: '°C'});
                      createState('Controme.hkv.rl_temp', 0, {type: 'number', unit: '°C'});
                      createState('Controme.hkv.vl_akt', 0, {type: 'string', unit: ''});
                      createState('Controme.hkv.rl_akt', 0, {type: 'string', unit: ''});
                      
                      //Virtueller Sensor
                      createState('Controme.wohnung.vsensor1_temp', 0, {type: 'number', unit: '°C'});
                      
                      function controme_kueche() {
                          request(link_kueche, function(error,response, body) {
                              if(error) log('Fehler request: ' + error, 'error');
                      
                              else {
                                 	var sensoren = JSON.parse(body)[0].sensoren;
                                 	var solltemp = JSON.parse(body)[0];
                      
                                  var rl_temp = sensoren[0].wert;
                                  setState('Controme.kueche.rl_temp', Math.round(10*rl_temp)/10, true);
                                  var frt_temp = sensoren[1].wert.Temperatur;
                                  setState('Controme.kueche.frt_temp', Math.round(10*frt_temp)/10, true);
                                  var rl_akt = sensoren[0].letzte_uebertragung;
                                  setState('Controme.kueche.rl_akt', rl_akt, true);
                                  var frt_akt = sensoren[1].letzte_uebertragung;
                                  setState('Controme.kueche.frt_akt', frt_akt, true);
                                  var soll = solltemp.solltemperatur;
                                  setState('Controme.kueche.solltemperatur', Math.round(10*soll)/10, true);
                                       }    
                          });
                      }
                      
                      function controme_schlafzimmer() {
                          request(link_schlafzimmer, function(error,response, body) {
                              if(error) log('Fehler request: ' + error, 'error');
                      
                              else {
                                 	var sensoren = JSON.parse(body)[0].sensoren;
                                 	var solltemp = JSON.parse(body)[0];
                      
                                  var rl_temp = sensoren[0].wert;
                                  setState('Controme.schlafzimmer.rl_temp', Math.round(10*rl_temp)/10, true);
                                  var frt_temp = sensoren[1].wert.Temperatur;
                                  setState('Controme.schlafzimmer.frt_temp', Math.round(10*frt_temp)/10, true);
                                  var rl_akt = sensoren[0].letzte_uebertragung;
                                  setState('Controme.schlafzimmer.rl_akt', rl_akt, true);
                                  var frt_akt = sensoren[1].letzte_uebertragung;
                                  setState('Controme.schlafzimmer.frt_akt', frt_akt, true);
                                  var soll = solltemp.solltemperatur;
                                  setState('Controme.schlafzimmer.solltemperatur', Math.round(10*soll)/10, true);
                                       }    
                          });
                      }
                      
                      function controme_wohnzimmer() {
                          request(link_wohnzimmer, function(error,response, body) {
                              if(error) log('Fehler request: ' + error, 'error');
                      
                              else {
                                 	var sensoren = JSON.parse(body)[0].sensoren;
                                 	var solltemp = JSON.parse(body)[0];
                      
                                  var rl_temp = sensoren[0].wert;
                                  setState('Controme.wohnzimmer.balkon_rl_temp', Math.round(10*rl_temp)/10, true);
                                  var rl_temp1 = sensoren[1].wert;
                                  setState('Controme.wohnzimmer.mitte_rl_temp', Math.round(10*rl_temp1)/10, true);
                                  var frt_temp = sensoren[2].wert.Temperatur;
                                  setState('Controme.wohnzimmer.frt_temp', Math.round(10*frt_temp)/10, true);
                                  var rl_akt = sensoren[0].letzte_uebertragung;
                                  setState('Controme.wohnzimmer.rl_akt', rl_akt, true);
                                  var frt_akt = sensoren[1].letzte_uebertragung;
                                  setState('Controme.wohnzimmer.frt_akt', frt_akt, true);
                                  var soll = solltemp.solltemperatur;
                                  setState('Controme.wohnzimmer.solltemperatur', Math.round(10*soll)/10, true);
                                       }    
                          });
                      }
                      
                      function controme_abstellkammer() {
                          request(link_abstellkammer, function(error,response, body) {
                              if(error) log('Fehler request: ' + error, 'error');
                      
                              else {
                                 	var sensoren = JSON.parse(body)[0].sensoren;
                                 	var solltemp = JSON.parse(body)[0];
                      
                                  var rl_temp = sensoren[0].wert;
                                  setState('Controme.abstellkammer.rl_temp', Math.round(10*rl_temp)/10, true);
                                  var frt_temp = sensoren[1].wert;
                                  setState('Controme.abstellkammer.frt_temp', Math.round(10*frt_temp)/10, true);
                                  var rl_akt = sensoren[0].letzte_uebertragung;
                                  setState('Controme.abstellkammer.rl_akt', rl_akt, true);
                                  var frt_akt = sensoren[1].letzte_uebertragung;
                                  setState('Controme.abstellkammer.frt_akt', frt_akt, true);
                                  var soll = solltemp.solltemperatur;
                                  setState('Controme.abstellkammer.solltemperatur', Math.round(10*soll)/10, true);
                                       }    
                          });
                      }
                      
                      function controme_badezimmer() {
                          request(link_badezimmer, function(error,response, body) {
                              if(error) log('Fehler request: ' + error, 'error');
                      
                              else {
                                 	var sensoren = JSON.parse(body)[0].sensoren;
                                 	var solltemp = JSON.parse(body)[0];
                      
                                  var rl_temp = sensoren[0].wert;
                                  setState('Controme.badezimmer.rl_temp', Math.round(10*rl_temp)/10, true);
                                  var frt_temp = sensoren[1].wert.Temperatur;
                                  setState('Controme.badezimmer.frt_temp', Math.round(10*frt_temp)/10, true);
                                  var rl_akt = sensoren[0].letzte_uebertragung;
                                  setState('Controme.badezimmer.rl_akt', rl_akt, true);
                                  var frt_akt = sensoren[1].letzte_uebertragung;
                                  setState('Controme.badezimmer.frt_akt', frt_akt, true);
                                  var soll = solltemp.solltemperatur;
                                  setState('Controme.badezimmer.solltemperatur', Math.round(10*soll)/10, true);
                                       }    
                          });
                      }
                      
                      function controme_flur() {
                          request(link_flur, function(error,response, body) {
                              if(error) log('Fehler request: ' + error, 'error');
                      
                              else {
                                 	var sensoren = JSON.parse(body)[0].sensoren;
                                 	var solltemp = JSON.parse(body)[0];
                      
                                  var rl_temp = sensoren[0].wert;
                                  setState('Controme.flur.rl_temp', Math.round(10*rl_temp)/10, true);
                                  var frt_temp = sensoren[1].wert.Temperatur;
                                  setState('Controme.flur.frt_temp', Math.round(10*frt_temp)/10, true);
                                  var rl_akt = sensoren[0].letzte_uebertragung;
                                  setState('Controme.flur.rl_akt', rl_akt, true);
                                  var frt_akt = sensoren[1].letzte_uebertragung;
                                  setState('Controme.flur.frt_akt', frt_akt, true);
                                  var soll = solltemp.solltemperatur;
                                  setState('Controme.flur.solltemperatur', Math.round(10*soll)/10, true);
                                       }    
                          });
                      }
                      
                      function controme_arbeitszimmer() {
                          request(link_arbeitszimmer, function(error,response, body) {
                              if(error) log('Fehler request: ' + error, 'error');
                      
                              else {
                                 	var sensoren = JSON.parse(body)[0].sensoren;
                                 	var solltemp = JSON.parse(body)[0];
                      
                                  var rl_temp = sensoren[0].wert;
                                  setState('Controme.arbeitszimmer.rl_temp', Math.round(10*rl_temp)/10, true);
                                  var frt_temp = sensoren[1].wert.Temperatur;
                                  setState('Controme.arbeitszimmer.frt_temp', Math.round(10*frt_temp)/10, true);
                                  var rl_akt = sensoren[0].letzte_uebertragung;
                                  setState('Controme.arbeitszimmer.rl_akt', rl_akt, true);
                                  var frt_akt = sensoren[1].letzte_uebertragung;
                                  setState('Controme.arbeitszimmer.frt_akt', frt_akt, true);
                                  var soll = solltemp.solltemperatur;
                                  setState('Controme.arbeitszimmer.solltemperatur', Math.round(10*soll)/10, true);
                                       }    
                          });
                      }
                      
                      function controme_esszimmer() {
                          request(link_esszimmer, function(error,response, body) {
                              if(error) log('Fehler request: ' + error, 'error');
                      
                              else {
                                 	var sensoren = JSON.parse(body)[0].sensoren;
                                 	var solltemp = JSON.parse(body)[0];
                      
                                  var rl_temp = sensoren[0].wert;
                                  setState('Controme.esszimmer.rl_temp', Math.round(10*rl_temp)/10, true);
                                  var frt_temp = sensoren[1].wert.Temperatur;
                                  setState('Controme.esszimmer.frt_temp', Math.round(10*frt_temp)/10, true);
                                  var rl_akt = sensoren[0].letzte_uebertragung;
                                  setState('Controme.esszimmer.rl_akt', rl_akt, true);
                                  var frt_akt = sensoren[1].letzte_uebertragung;
                                  setState('Controme.esszimmer.frt_akt', frt_akt, true);
                                  var soll = solltemp.solltemperatur;
                                  setState('Controme.esszimmer.solltemperatur', Math.round(10*soll)/10, true);
                                       }    
                          });
                      }
                      
                      function controme_hkv() {
                          request(link_hkv, function(error,response, body) {
                              if(error) log('Fehler request: ' + error, 'error');
                      
                              else {
                                 	var sensoren = JSON.parse(body)[0].sensoren;
                      
                                  var vl_temp = sensoren[0].wert;
                                  setState('Controme.hkv.vl_temp', Math.round(10*vl_temp)/10, true);
                                  var rl_temp = sensoren[1].wert;
                                  setState('Controme.hkv.rl_temp', Math.round(10*rl_temp)/10, true);
                                  var vl_akt = sensoren[0].letzte_uebertragung;
                                  setState('Controme.hkv.vl_akt', vl_akt, true);
                                  var rl_akt = sensoren[1].letzte_uebertragung;
                                  setState('Controme.hkv.rl_akt', rl_akt, true);
                                       }    
                          });
                      }
                      
                      function controme_vsensor1() {
                          request(link_vsensor1, function(error,response, body) {
                              if(error) log('Fehler request: ' + error, 'error');
                      
                              else {
                                 	var sensoren = JSON.parse(body)[0].sensoren;
                      
                                  var vsensor_temp = sensoren[0].wert;
                                  setState('Controme.wohnung.vsensor1_temp', Math.round(10*vsensor_temp)/10, true);
                                       }    
                          });
                      }
                      
                      function alledaten() {
                          controme_kueche();
                          controme_schlafzimmer();
                          controme_wohnzimmer();
                          controme_abstellkammer();
                          controme_badezimmer();
                          controme_flur();
                          controme_arbeitszimmer();
                          controme_esszimmer();
                          controme_hkv();
                          controme_vsensor1();
                      }
                      schedule('* /15 * * * *', alledaten); // alle 15 Minuten
                      

                      Aber komischer Weise ist das kein Dauerfehler sondern er tritt sporadisch auf und nicht immer sind alle Datenpunkte betroffen. Mal sind es alle oder auch nur 3 - unlogisch …

                      Das einzige was mir dazu einfällt ist, dass der Controme Server zu gewissen Zeiten kein Ergebnis parat hat, dementsprechend der komplette Datenpunkt fehlt und nicht gefunden werden kann - kann das so sein ?

                      vg

                      Marc

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

                        @meicker:

                        Das sind die betreffenden Zeilen:

                        130: var solltemp = JSON.parse(body)[0];
                        154: var solltemp = JSON.parse(body)[0];
                        usw ...
                        

                        Das sind nicht die betreffenden Zeilen, sondern die Zeile davor der Befehl JSON.parse(body).

                        @meicker:

                        dass der Controme Server zu gewissen Zeiten kein Ergebnis parat hat, dementsprechend der komplette Datenpunkt fehlt und nicht gefunden werden kann - kann das so sein ?

                        Ja. Ich hätte allerdings erwartet, dass dann ein Fehler gemeldet wird mit dem entsprechenden Fehlerlog.

                        Bau mal vor die JSON.parse() ein Log ein

                        log(body);
                        

                        und schau, was der Log im Fehlerfall zeigt. Vielleicht kann man den Fehler abfangen ?

                        1 Reply Last reply Reply Quote 0
                        • M
                          meicker last edited by

                          Baue ich jetzt ein 🙂 Scheint wieder zu laufen das teil - Glück gehabt … 🙂

                          1 Reply Last reply Reply Quote 0
                          • M
                            meicker last edited by

                            Hier habe ich ein Ergebnis:

                            15:03:53.749	[info]	javascript.0 script.js.Controme.Sensordaten: registered 0 subscriptions and 1 schedule
                            15:03:54.627	[info]	javascript.0 Stop script script.js.Controme.Sensordaten
                            15:03:55.653	[info]	javascript.0 Start javascript script.js.Controme.Sensordaten
                            15:03:55.653	[info]	javascript.0 script.js.Controme.Sensordaten: schedule(cron=*/30 * * * * *)
                            15:03:55.653	[info]	javascript.0 script.js.Controme.Sensordaten: registered 0 subscriptions and 1 schedule
                            15:04:00.906	[info]	javascript.0 script.js.Controme.Sensordaten: [{"total_offset": -0.4375, "solltemperatur": 18.0, "temperatur": 22.745098039215687, "name": "Schlafzimmer", "offsets": {"Geolocation": {"raum": 0.0, "haus": -0.5}, "Wetter": {"raum": 0.1, "haus": 0.0}, "Heizfl\u00e4chenoptimierung": {"raum": 0, "haus": 0.0}, "Zeitschalter": {"raum": 0.0, "haus": 0.0}, "Timer": {"raum": 0.0, "haus": 0.0}, "Au\u00dfentemperaturkorrektur": {"raum": -0.0375, "haus": 0.0}, "Kalender": {"raum": 0.0, "haus": 0.0}}, "sensoren": [{"raumtemperatursensor": false, "letzte_uebertragung": "24.08.2018 15:03", "name": "28_42_09_8f_09_00_00_3b", "wert": 26.12, "beschreibung": "(7) RL Schlafzimmer"}, {"raumtemperatursensor": true, "letzte_uebertragung": "24.08.2018 14:56", "name": "05:05:9b:58", "wert": {"Helligkeit": null, "Relative Luftfeuchte": null, "Bewegung": null, "Temperatur": 22.745098039215687}, "beschreibung": "FRT Schlafzimmer"}], "id": 2, "luftfeuchte": "kein aktueller Wert vorhanden"}]
                            15:04:00.906	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.schlafzimmer.rl_temp, state={"val":26.1,"ack":true})
                            15:04:00.906	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.schlafzimmer.frt_temp, state={"val":22.7,"ack":true})
                            15:04:00.906	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.schlafzimmer.rl_akt, state={"val":"24.08.2018 15:03","ack":true})
                            15:04:00.907	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.schlafzimmer.frt_akt, state={"val":"24.08.2018 14:56","ack":true})
                            15:04:00.907	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.schlafzimmer.solltemperatur, state={"val":18,"ack":true})
                            15:04:00.967	[info]	javascript.0 script.js.Controme.Sensordaten: [{"total_offset": 0.06999999999999995, "solltemperatur": 20.0, "temperatur": null, "name": "K\u00fcche", "offsets": {"Geolocation": {"raum": 0.0, "haus": -0.5}, "Wetter": {"raum": 0.1, "haus": 0.0}, "Heizfl\u00e4chenoptimierung": {"raum": 0.0, "haus": 0.0}, "Zeitschalter": {"raum": 0.0, "haus": 0.0}, "Timer": {"raum": 0.0, "haus": 0.0}, "Au\u00dfentemperaturkorrektur": {"raum": 0.47, "haus": 0.0}, "Kalender": {"raum": 0.0, "haus": 0.0}}, "sensoren": [{"raumtemperatursensor": false, "letzte_uebertragung": "24.08.2018 15:03", "name": "28_e2_4c_8e_09_00_00_d3", "wert": 25.81, "beschreibung": "(4) RL K\u00fcche"}, {"raumtemperatursensor": true, "letzte_uebertragung": null, "name": "05:05:ff:c2", "wert": {"Helligkeit": null, "Relative Luftfeuchte": null, "Bewegung": null, "Temperatur": null}, "beschreibung": "FRT K\u00fcche"}], "id": 1, "luftfeuchte": "kein aktueller Wert vorhanden"}]
                            15:04:00.967	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.kueche.rl_temp, state={"val":25.8,"ack":true})
                            15:04:00.968	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.kueche.frt_temp, state={"val":0,"ack":true})
                            15:04:00.968	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.kueche.rl_akt, state={"val":"24.08.2018 15:03","ack":true})
                            15:04:00.968	[warn]	javascript.0 at Request._callback (script.js.Controme.Sensordaten:96:13)
                            15:04:00.971	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.kueche.frt_akt, state={"val":null,"ack":true})
                            15:04:00.971	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.kueche.solltemperatur, state={"val":20,"ack":true})
                            15:04:01.171	[info]	javascript.0 script.js.Controme.Sensordaten: [{"total_offset": 0.07499999999999996, "solltemperatur": 18.0, "temperatur": 20.0, "name": "Abstellkammer", "offsets": {"Geolocation": {"raum": 0.0, "haus": -0.5}, "Wetter": {"raum": 0.1, "haus": 0.0}, "Heizfl\u00e4chenoptimierung": {"raum": 0, "haus": 0.0}, "Zeitschalter": {"raum": 0.0, "haus": 0.0}, "Timer": {"raum": 0.0, "haus": 0.0}, "Au\u00dfentemperaturkorrektur": {"raum": 0.475, "haus": 0.0}, "Kalender": {"raum": 0.0, "haus": 0.0}}, "sensoren": [{"raumtemperatursensor": false, "letzte_uebertragung": "24.08.2018 15:03", "name": "28_dc_7d_8e_09_00_00_64", "wert": 26.12, "beschreibung": "(9) RL Kammer"}, {"raumtemperatursensor": true, "letzte_uebertragung": "24.08.2018 15:03", "name": "00_11_11_11_11_11_20_00", "wert": 20.0, "beschreibung": "SIM_Abstellkammer"}], "id": 4, "luftfeuchte": "kein Sensor vorhanden"}]
                            15:04:01.171	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.abstellkammer.rl_temp, state={"val":26.1,"ack":true})
                            15:04:01.171	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.abstellkammer.frt_temp, state={"val":20,"ack":true})
                            15:04:01.172	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.abstellkammer.rl_akt, state={"val":"24.08.2018 15:03","ack":true})
                            15:04:01.172	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.abstellkammer.frt_akt, state={"val":"24.08.2018 15:03","ack":true})
                            15:04:01.172	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.abstellkammer.solltemperatur, state={"val":18,"ack":true})
                            15:04:01.207	[info]	javascript.0 script.js.Controme.Sensordaten: [{"total_offset": 0.16999999999999998, "solltemperatur": 20.0, "temperatur": null, "name": "Wohnzimmer", "offsets": {"Geolocation": {"raum": 0.0, "haus": -0.5}, "Wetter": {"raum": 0.2, "haus": 0.0}, "Heizfl\u00e4chenoptimierung": {"raum": 0.0, "haus": 0.0}, "Zeitschalter": {"raum": 0.0, "haus": 0.0}, "Timer": {"raum": 0.0, "haus": 0.0}, "Au\u00dfentemperaturkorrektur": {"raum": 0.47, "haus": 0.0}, "Kalender": {"raum": 0.0, "haus": 0.0}}, "sensoren": [{"raumtemperatursensor": false, "letzte_uebertragung": "24.08.2018 15:03", "name": "28_5e_07_90_09_00_00_1d", "wert": 25.56, "beschreibung": "(1) RL WZ Balkon"}, {"raumtemperatursensor": false, "letzte_uebertragung": "24.08.2018 15:03", "name": "28_af_71_8f_09_00_00_0b", "wert": 25.75, "beschreibung": "(2) RL WZ Mitte"}, {"raumtemperatursensor": true, "letzte_uebertragung": null, "name": "05:05:ff:4a", "wert": {"Helligkeit": null, "Relative Luftfeuchte": null, "Bewegung": null, "Temperatur": null}, "beschreibung": "FRT Wohnzimmer"}], "id": 3, "luftfeuchte": "kein aktueller Wert vorhanden"}]
                            15:04:01.207	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.wohnzimmer.balkon_rl_temp, state={"val":25.6,"ack":true})
                            15:04:01.208	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.wohnzimmer.mitte_rl_temp, state={"val":25.8,"ack":true})
                            15:04:01.208	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.wohnzimmer.frt_temp, state={"val":0,"ack":true})
                            15:04:01.208	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.wohnzimmer.rl_akt, state={"val":"24.08.2018 15:03","ack":true})
                            15:04:01.209	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.wohnzimmer.frt_akt, state={"val":"24.08.2018 15:03","ack":true})
                            15:04:01.209	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.wohnzimmer.solltemperatur, state={"val":20,"ack":true})
                            15:04:01.410	[info]	javascript.0 script.js.Controme.Sensordaten: [{"total_offset": 0.07499999999999996, "solltemperatur": 19.5, "temperatur": 22.588235294117645, "name": "Flur", "offsets": {"Geolocation": {"raum": 0.0, "haus": -0.5}, "Wetter": {"raum": 0.1, "haus": 0.0}, "Heizfl\u00e4chenoptimierung": {"raum": 0, "haus": 0.0}, "Zeitschalter": {"raum": 0.0, "haus": 0.0}, "Timer": {"raum": 0.0, "haus": 0.0}, "Au\u00dfentemperaturkorrektur": {"raum": 0.475, "haus": 0.0}, "Kalender": {"raum": 0.0, "haus": 0.0}}, "sensoren": [{"raumtemperatursensor": false, "letzte_uebertragung": "24.08.2018 15:03", "name": "28_86_9e_8f_09_00_00_9e", "wert": 26.31, "beschreibung": "(6) RL Flur"}, {"raumtemperatursensor": true, "letzte_uebertragung": "24.08.2018 14:59", "name": "05:05:9a:c3", "wert": {"Helligkeit": null, "Relative Luftfeuchte": null, "Bewegung": null, "Temperatur": 22.588235294117645}, "beschreibung": "FRT Flur"}], "id": 6, "luftfeuchte": "kein aktueller Wert vorhanden"}]
                            15:04:01.411	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.flur.rl_temp, state={"val":26.3,"ack":true})
                            15:04:01.411	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.flur.frt_temp, state={"val":22.6,"ack":true})
                            15:04:01.412	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.flur.rl_akt, state={"val":"24.08.2018 15:03","ack":true})
                            15:04:01.412	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.flur.frt_akt, state={"val":"24.08.2018 14:59","ack":true})
                            15:04:01.412	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.flur.solltemperatur, state={"val":19.5,"ack":true})
                            15:04:01.466	[info]	javascript.0 script.js.Controme.Sensordaten: [{"total_offset": 0.175, "solltemperatur": 20.5, "temperatur": null, "name": "Badezimmer", "offsets": {"Geolocation": {"raum": 0.0, "haus": -0.5}, "Wetter": {"raum": 0.2, "haus": 0.0}, "Heizfl\u00e4chenoptimierung": {"raum": 0.0, "haus": 0.0}, "Zeitschalter": {"raum": 0.0, "haus": 0.0}, "Timer": {"raum": 0.0, "haus": 0.0}, "Au\u00dfentemperaturkorrektur": {"raum": 0.475, "haus": 0.0}, "Kalender": {"raum": 0.0, "haus": 0.0}}, "sensoren": [{"raumtemperatursensor": false, "letzte_uebertragung": "24.08.2018 15:03", "name": "28_3b_30_90_09_00_00_e0", "wert": 26.31, "beschreibung": "(5) RL Bad"}, {"raumtemperatursensor": true, "letzte_uebertragung": null, "name": "05:05:9a:d0", "wert": {"Helligkeit": null, "Relative Luftfeuchte": null, "Bewegung": null, "Temperatur": null}, "beschreibung": "FRT Badezimmer"}], "id": 5, "luftfeuchte": "kein aktueller Wert vorhanden"}]
                            15:04:01.467	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.badezimmer.rl_temp, state={"val":26.3,"ack":true})
                            15:04:01.467	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.badezimmer.frt_temp, state={"val":0,"ack":true})
                            15:04:01.467	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.badezimmer.rl_akt, state={"val":"24.08.2018 15:03","ack":true})
                            15:04:01.468	[warn]	javascript.0 at Request._callback (script.js.Controme.Sensordaten:190:13)
                            15:04:01.472	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.badezimmer.frt_akt, state={"val":null,"ack":true})
                            15:04:01.472	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.badezimmer.solltemperatur, state={"val":20.5,"ack":true})
                            15:04:01.690	[info]	javascript.0 script.js.Controme.Sensordaten: [{"total_offset": 0.06999999999999995, "solltemperatur": 20.0, "temperatur": null, "name": "Arbeitszimmer", "offsets": {"Geolocation": {"raum": 0.0, "haus": -0.5}, "Wetter": {"raum": 0.1, "haus": 0.0}, "Heizfl\u00e4chenoptimierung": {"raum": 0.0, "haus": 0.0}, "Zeitschalter": {"raum": 0.0, "haus": 0.0}, "Timer": {"raum": 0.0, "haus": 0.0}, "Au\u00dfentemperaturkorrektur": {"raum": 0.47, "haus": 0.0}, "Kalender": {"raum": 0.0, "haus": 0.0}}, "sensoren": [{"raumtemperatursensor": false, "letzte_uebertragung": "24.08.2018 15:03", "name": "28_ce_94_8d_09_00_00_f0", "wert": 25.94, "beschreibung": "(8) RL Arbeitszimmer"}, {"raumtemperatursensor": true, "letzte_uebertragung": null, "name": "05:06:00:08", "wert": {"Helligkeit": null, "Relative Luftfeuchte": null, "Bewegung": null, "Temperatur": null}, "beschreibung": "FRT Arbeitszimmer"}], "id": 7, "luftfeuchte": "kein aktueller Wert vorhanden"}]
                            15:04:01.690	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.arbeitszimmer.rl_temp, state={"val":25.9,"ack":true})
                            15:04:01.696	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.arbeitszimmer.frt_temp, state={"val":0,"ack":true})
                            15:04:01.696	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.arbeitszimmer.rl_akt, state={"val":"24.08.2018 15:03","ack":true})
                            15:04:01.697	[warn]	javascript.0 at Request._callback (script.js.Controme.Sensordaten:236:13)
                            15:04:01.698	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.arbeitszimmer.frt_akt, state={"val":null,"ack":true})
                            15:04:01.699	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.arbeitszimmer.solltemperatur, state={"val":20,"ack":true})
                            15:04:01.723	[info]	javascript.0 script.js.Controme.Sensordaten: [{"total_offset": 0.07499999999999996, "solltemperatur": 20.0, "temperatur": null, "name": "Esszimmer", "offsets": {"Geolocation": {"raum": 0.0, "haus": -0.5}, "Wetter": {"raum": 0.1, "haus": 0.0}, "Heizfl\u00e4chenoptimierung": {"raum": 0.0, "haus": 0.0}, "Zeitschalter": {"raum": 0.0, "haus": 0.0}, "Timer": {"raum": 0.0, "haus": 0.0}, "Au\u00dfentemperaturkorrektur": {"raum": 0.475, "haus": 0.0}, "Kalender": {"raum": 0.0, "haus": 0.0}}, "sensoren": [{"raumtemperatursensor": false, "letzte_uebertragung": "24.08.2018 15:03", "name": "28_fe_22_90_09_00_00_6b", "wert": 25.87, "beschreibung": "(3) RL Esszimmer"}, {"raumtemperatursensor": true, "letzte_uebertragung": null, "name": "05:05:9a:b0", "wert": {"Helligkeit": null, "Relative Luftfeuchte": null, "Bewegung": null, "Temperatur": null}, "beschreibung": "FRT Esszimmer"}], "id": 8, "luftfeuchte": "kein aktueller Wert vorhanden"}]
                            15:04:01.723	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.esszimmer.rl_temp, state={"val":25.9,"ack":true})
                            15:04:01.723	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.esszimmer.frt_temp, state={"val":0,"ack":true})
                            15:04:01.723	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.esszimmer.rl_akt, state={"val":"24.08.2018 15:03","ack":true})
                            15:04:01.724	[warn]	javascript.0 at Request._callback (script.js.Controme.Sensordaten:259:13)
                            15:04:01.726	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.esszimmer.frt_akt, state={"val":null,"ack":true})
                            15:04:01.726	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.esszimmer.solltemperatur, state={"val":20,"ack":true})
                            15:04:01.783	[info]	javascript.0 script.js.Controme.Sensordaten: [{"total_offset": 0.0, "solltemperatur": 18.0, "temperatur": null, "name": "HKV", "offsets": {"Geolocation": {"raum": 0.0, "haus": -0.5}, "Wetter": {"raum": 0.5, "haus": 0.0}, "Temperaturszenen": {"raum": 0.0, "haus": 0.0}, "Timer": {"raum": 0.0, "haus": 0.0}, "Kalender": {"raum": 0.0, "haus": 0.0}, "Zeitschalter": {"raum": 0.0, "haus": 0.0}}, "sensoren": [{"raumtemperatursensor": false, "letzte_uebertragung": "24.08.2018 15:03", "name": "28_10_58_8d_09_00_00_24", "wert": 26.44, "beschreibung": "Vorlauftemperatur HKV"}, {"raumtemperatursensor": false, "letzte_uebertragung": "24.08.2018 15:03", "name": "28_49_10_8e_09_00_00_c3", "wert": 25.87, "beschreibung": "R\u00fccklauftemperatur HKV"}], "id": 9, "luftfeuchte": "kein Sensor vorhanden"}]
                            15:04:01.783	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.hkv.vl_temp, state={"val":26.4,"ack":true})
                            15:04:01.783	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.hkv.rl_temp, state={"val":25.9,"ack":true})
                            15:04:01.784	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.hkv.vl_akt, state={"val":"24.08.2018 15:03","ack":true})
                            15:04:01.784	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.hkv.rl_akt, state={"val":"24.08.2018 15:03","ack":true})
                            15:04:01.904	[info]	javascript.0 script.js.Controme.Sensordaten: [{"total_offset": 0.0, "solltemperatur": 18.0, "temperatur": null, "name": "Virtuelle Sensoren", "offsets": {"Geolocation": {"raum": 0.0, "haus": -0.5}, "Wetter": {"raum": 0.5, "haus": 0.0}, "Zeitschalter": {"raum": 0.0, "haus": 0.0}}, "sensoren": [{"raumtemperatursensor": true, "letzte_uebertragung": null, "name": "VSensor*2", "wert": null, "beschreibung": "Wohnungstemperatur"}], "id": 10, "luftfeuchte": "kein Sensor vorhanden"}]
                            15:04:01.905	[info]	javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.wohnung.vsensor1_temp, state={"val":0,"ack":true})
                            

                            Sind insgesamt 4 Warnungen drin.

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

                              @meicker:

                              Sind insgesamt 4 Warnungen drin.

                              Aber keine Fehlermeldungen. Mit den Warnungen kann ich erst mal nichts anfangen :oops:

                              1 Reply Last reply Reply Quote 0
                              • M
                                meicker last edited by

                                OK ! Ich denke es kommt wieder in der Nacht 🙂 Morgen schaue ich wieder ins Log rein und dann sehen wir hoffentlich was … 🙂

                                1 Reply Last reply Reply Quote 0
                                • M
                                  meicker last edited by

                                  Hallo Paul,

                                  schau mal, irgend etwas mit object:

                                  `2018-08-24 15:02:01.608  - [33mwarn[39m: javascript.0 Wrong type of javascript.0.Controme.badezimmer.frt_akt: "object". Please fix, while deprecated and will not work in next versions.
                                  2018-08-24 15:02:01.610  - [33mwarn[39m: javascript.0     at Request._callback (script.js.Controme.Sensordaten:190:13)
                                  2018-08-24 15:02:01.610  - [33mwarn[39m: javascript.0     at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                                  2018-08-24 15:02:01.610  - [33mwarn[39m: javascript.0     at emitTwo (events.js:126:13)
                                  2018-08-24 15:02:01.610  - [33mwarn[39m: javascript.0     at Request.emit (events.js:214:7)
                                  2018-08-24 15:02:01.611  - [33mwarn[39m: javascript.0     at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                                  2018-08-24 15:02:01.611  - [33mwarn[39m: javascript.0     at emitOne (events.js:116:13)
                                  2018-08-24 15:02:01.611  - [33mwarn[39m: javascript.0     at Request.emit (events.js:211:7)
                                  2018-08-24 15:02:01.611  - [33mwarn[39m: javascript.0     at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                                  2018-08-24 15:02:01.611  - [33mwarn[39m: javascript.0     at Object.onceWrapper (events.js:313:30)
                                  2018-08-24 15:02:01.611  - [33mwarn[39m: javascript.0     at emitNone (events.js:111:20)
                                  2018-08-24 15:02:01.612  - [33mwarn[39m: javascript.0     at IncomingMessage.emit (events.js:208:7)
                                  2018-08-24 15:02:01.612  - [33mwarn[39m: javascript.0     at endReadableNT (_stream_readable.js:1064:12)
                                  2018-08-24 15:02:01.612  - [33mwarn[39m: javascript.0     at _combinedTickCallback (internal/process/next_tick.js:138:11)
                                  2018-08-24 15:02:01.612  - [33mwarn[39m: javascript.0     at process._tickCallback (internal/process/next_tick.js:180:9)
                                  2018-08-24 15:02:01.612  - [32minfo[39m: javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.badezimmer.frt_akt, state={"val":null,"ack":true})
                                  2018-08-24 15:02:01.613  - [32minfo[39m: javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.badezimmer.solltemperatur, state={"val":20.5,"ack":true})
                                  2018-08-24 15:02:01.844  - [32minfo[39m: javascript.0 script.js.Controme.Sensordaten: [{"total_offset": 0.06999999999999995, "solltemperatur": 20.0, "temperatur": null, "name": "Arbeitszimmer", "offsets": {"Geolocation": {"raum": 0.0, "haus": -0.5}, "Wetter": {"raum": 0.1, "haus": 0.0}, "Heizfl\u00e4chenoptimierung": {"raum": 0.0, "haus": 0.0}, "Zeitschalter": {"raum": 0.0, "haus": 0.0}, "Timer": {"raum": 0.0, "haus": 0.0}, "Au\u00dfentemperaturkorrektur": {"raum": 0.47, "haus": 0.0}, "Kalender": {"raum": 0.0, "haus": 0.0}}, "sensoren": [{"raumtemperatursensor": false, "letzte_uebertragung": "24.08.2018 15:01", "name": "28_ce_94_8d_09_00_00_f0", "wert": 25.94, "beschreibung": "(8) RL Arbeitszimmer"}, {"raumtemperatursensor": true, "letzte_uebertragung": null, "name": "05:06:00:08", "wert": {"Helligkeit": null, "Relative Luftfeuchte": null, "Bewegung": null, "Temperatur": null}, "beschreibung": "FRT Arbeitszimmer"}], "id": 7, "luftfeuchte": "kein aktueller Wert vorhanden"}]
                                  2018-08-24 15:02:01.845  - [32minfo[39m: javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.arbeitszimmer.rl_temp, state={"val":25.9,"ack":true})
                                  2018-08-24 15:02:01.845  - [32minfo[39m: javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.arbeitszimmer.frt_temp, state={"val":0,"ack":true})
                                  2018-08-24 15:02:01.850  - [32minfo[39m: javascript.0 script.js.Controme.Sensordaten: setForeignState(id=javascript.0.Controme.arbeitszimmer.rl_akt, state={"val":"24.08.2018 15:01","ack":true})
                                  2018-08-24 15:02:01.850  - [33mwarn[39m: javascript.0 Wrong type of javascript.0.Controme.arbeitszimmer.frt_akt: "object". Please fix, while deprecated and will not work in next versions.
                                  2018-08-24 15:02:01.852  - [33mwarn[39m: javascript.0     at Request._callback (script.js.Controme.Sensordaten:236:13)
                                  2018-08-24 15:02:01.852  - [33mwarn[39m: javascript.0     at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                                  2018-08-24 15:02:01.852  - [33mwarn[39m: javascript.0     at emitTwo (events.js:126:13)
                                  2018-08-24 15:02:01.852  - [33mwarn[39m: javascript.0     at Request.emit (events.js:214:7)
                                  2018-08-24 15:02:01.852  - [33mwarn[39m: javascript.0     at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                                  2018-08-24 15:02:01.853  - [33mwarn[39m: javascript.0     at emitOne (events.js:116:13)
                                  2018-08-24 15:02:01.853  - [33mwarn[39m: javascript.0     at Request.emit (events.js:211:7)
                                  2018-08-24 15:02:01.853  - [33mwarn[39m: javascript.0     at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                                  2018-08-24 15:02:01.853  - [33mwarn[39m: javascript.0     at Object.onceWrapper (events.js:313:30)
                                  2018-08-24 15:02:01.853  - [33mwarn[39m: javascript.0     at emitNone (events.js:111:20)
                                  2018-08-24 15:02:01.853  - [33mwarn[39m: javascript.0     at IncomingMessage.emit (events.js:208:7)
                                  2018-08-24 15:02:01.854  - [33mwarn[39m: javascript.0     at endReadableNT (_stream_readable.js:1064:12)
                                  2018-08-24 15:02:01.854  - [33mwarn[39m: javascript.0     at _combinedTickCallback (internal/process/next_tick.js:138:11)
                                  2018-08-24 15:02:01.854  - [33mwarn[39m: javascript.0     at process._tickCallback (internal/process/next_tick.js:180:9)[/code]</anonymous></anonymous></anonymous></anonymous>`
                                  
                                  und den anderen Fehler habe ich hier noch mal ganz kurz und auch nur an dieser Stelle:
                                  
                                  `~~[code]~~<title>502 Bad Gateway</title>
                                  
                                  <center>
                                  
                                  # 502 Bad Gateway
                                  
                                  </center>
                                  
                                  * * *
                                  
                                  <center>nginx/1.6.2</center>
                                  
                                  2018-08-25 04:15:02.263  - [31merror[39m: javascript.0 uncaught exception: Unexpected token < in JSON at position 0
                                  2018-08-25 04:15:02.263  - [31merror[39m: javascript.0 SyntaxError: Unexpected token < in JSON at position 0
                                      at JSON.parse (<anonymous>:null:null)
                                      at Request._callback (script.js.Controme.Sensordaten:250:33)
                                      at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                                      at emitTwo (events.js:126:13)
                                      at Request.emit (events.js:214:7)
                                      at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                                      at emitOne (events.js:116:13)
                                      at Request.emit (events.js:211:7)
                                      at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                                      at Object.onceWrapper (events.js:313:30)
                                  
                                  2018-08-25 04:15:02.278  - [32minfo[39m: javascript.0 script.js.Controme.Sensordaten: 
                                  <title>502 Bad Gateway</title>
                                  
                                  <center>
                                  
                                  # 502 Bad Gateway
                                  
                                  </center>
                                  
                                  * * *
                                  
                                  <center>nginx/1.6.2</center>
                                  
                                  2018-08-25 04:15:02.281  - [31merror[39m: javascript.0 uncaught exception: Unexpected token < in JSON at position 0
                                  2018-08-25 04:15:02.282  - [31merror[39m: javascript.0 SyntaxError: Unexpected token < in JSON at position 0
                                      at JSON.parse (<anonymous>:null:null)
                                      at Request._callback (script.js.Controme.Sensordaten:227:33)
                                      at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)
                                      at emitTwo (events.js:126:13)
                                      at Request.emit (events.js:214:7)
                                      at Request. <anonymous>(/opt/iobroker/node_modules/request/request.js:1163:10)
                                      at emitOne (events.js:116:13)
                                      at Request.emit (events.js:211:7)
                                      at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/request/request.js:1085:12)
                                      at Object.onceWrapper (events.js:313:30)[/code]</anonymous></anonymous></anonymous></anonymous></anonymous></anonymous>`
                                  
                                  Sienht tatsächlich so aus als wäre der Controme Server nicht erreichbar ... oder ?
                                  
                                  vg
                                  
                                  Marc
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 last edited by paul53

                                    @meicker:

                                    Sienht tatsächlich so aus als wäre der Controme Server nicht erreichbar … oder ?

                                    Ja. Das lässt sich abfangen vor den JSON.parse().

                                    else if(body.indexOf('Bad Gateway') == -1) {
                                        var sensoren = JSON.parse(body)[0].sensoren;
                                        ...
                                    }
                                    

                                    Das kann ich nicht nachvollziehen:

                                    Wrong type of javascript.0.Controme.badezimmer.frt_akt: "object".
                                    

                                    Tritt es öfter auf ?

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      meicker last edited by

                                      Hi Paul,

                                      das konntest Du wirklich nicht nachvollziehen 🙂

                                      Ich versuche schon seit ein paar tagen Alexa nach der temperatur im Wohnzimmer zu fragen. Das beste Ergebnis bisher war: Dein Gerät unterstützt das nicht 😞

                                      Der Fehler den Du gesehen hast war ein fehler von mir, ich hatte versehentlich das Objekt geändert. Habe ich aber schon wieder zurückgesetzt … Hast Du ne Idee zum Alexa Temeratur abfragen ? Es gibt zwar hier im Forum schon den einen oder anderen beitrag aber ich finde nichts von Anfang an ...

                                      Dein addon schreibe ich mal davor !

                                      Danke, wie immer 🙂

                                      vg

                                      Marc

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        meicker last edited by

                                        8270_screenshot_2018-08-25_javascript_-iobroker_1.png

                                        In dem kleinen Dreieck steht : too many errors, 90% scanned … Ansonsten keinerlei Warnhinweise am Script in den Zeilennummern ... :?: Das hat aber nichts mit der Änderung von gerade zu tun, stand eben schon da ...

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

                                          @meicker:

                                          Hast Du ne Idee zum Alexa Temeratur abfragen ?

                                          Nein, mit Alexa habe ich nichts am Hut. Eine Quasselstrippe, die einen auch noch ständig belauscht, kommt mir nicht ins Haus.

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

                                            @meicker:

                                            In dem kleinen Dreieck steht : too many errors, 90% scanned … `
                                            Das ist ist ja "sehr informativ" :evil: So eine Warnung hatte ich noch nicht.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            869
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            38
                                            3595
                                            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