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:

      Für die Erstellung des datenpunktes kann man ja den Namen in eine Variable packen und dem Bezeichner Controme.variable anhängen, oder ?

      Man kann. Das macht das Skript allerdings aufwändiger. Du wirst sicherlich wissen, welche Namen Du vergeben hast ?

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

        OK - Ich glaube jetzt habe ich den Aufbau soweit kapiert 🙂

        setstate() kann ich ja vor log() wieder einbauen und packe das ganze dann in eine eigene Funktion …

        Ich bin mal gespannt ob ich den javascript Adapter gleich wieder zum abrauchen bringe :lol: Habe ich bis jetzt jedes mal geschafft ...

        Jetzt werde ich mich gleich erst einmal dran geben und schreiben ... melde mich wieder wenn ich fertig bin ! Vielen Dank Paul !

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            366
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

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