Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. CONTROME JSON Script zum auslesen von sensoren und Zuständen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

CONTROME JSON Script zum auslesen von sensoren und Zuständen

Scheduled Pinned Locked Moved Skripten / Logik
38 Posts 7 Posters 4.0k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • paul53P Offline
    paul53P Offline
    paul53
    wrote on last edited by paul53
    #5

    @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 ?

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    1 Reply Last reply
    0
    • M Offline
      M Offline
      meicker
      wrote on last edited by
      #6

      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
      0
      • paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by paul53
        #7

        @meicker:

        Ich glaube jetzt habe ich den Aufbau soweit kapiert

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

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Reply Last reply
        0
        • M Offline
          M Offline
          meicker
          wrote on last edited by
          #8

          @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
          0
          • M Offline
            M Offline
            meicker
            wrote on last edited by
            #9

            @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
            0
            • M Offline
              M Offline
              meicker
              wrote on last edited by
              #10

              @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
              0
              • paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by paul53
                #11

                @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".

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  meicker
                  wrote on last edited by
                  #12

                  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
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by paul53
                    #13

                    @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
                    

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      meicker
                      wrote on last edited by
                      #14

                      DANKESCHÖN :-)

                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        meicker
                        wrote on last edited by
                        #15

                        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
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          wrote on last edited by paul53
                          #16

                          @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 ?

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          1 Reply Last reply
                          0
                          • M Offline
                            M Offline
                            meicker
                            wrote on last edited by
                            #17

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

                            1 Reply Last reply
                            0
                            • M Offline
                              M Offline
                              meicker
                              wrote on last edited by
                              #18

                              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
                              0
                              • paul53P Offline
                                paul53P Offline
                                paul53
                                wrote on last edited by paul53
                                #19

                                @meicker:

                                Sind insgesamt 4 Warnungen drin.

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

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                1 Reply Last reply
                                0
                                • M Offline
                                  M Offline
                                  meicker
                                  wrote on last edited by
                                  #20

                                  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
                                  0
                                  • M Offline
                                    M Offline
                                    meicker
                                    wrote on last edited by
                                    #21

                                    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
                                    0
                                    • paul53P Offline
                                      paul53P Offline
                                      paul53
                                      wrote on last edited by paul53
                                      #22

                                      @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 ?

                                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                      1 Reply Last reply
                                      0
                                      • M Offline
                                        M Offline
                                        meicker
                                        wrote on last edited by
                                        #23

                                        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
                                        0
                                        • M Offline
                                          M Offline
                                          meicker
                                          wrote on last edited by
                                          #24

                                          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
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          781

                                          Online

                                          32.4k

                                          Users

                                          81.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe