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.
    • 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
                                          • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            878
                                            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