Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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.9k

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

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

CONTROME JSON Script zum auslesen von sensoren und Zuständen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
38 Beiträge 7 Kommentatoren 4.0k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #4

    Nach dem Error-Log und mit log() anstelle setState():

                var sensoren = JSON.parse(body)[0].sensoren;
                var rlt;
                if(sensoren[0].raumtemperatursensor) rlt = sensoren[0].wert.Temperatur;
                else rlt = sensoren[0].wert;
                log(rlt); 
                var rldate = sensoren[0].letzte_uebertragung;
                log(rldate);
                var frtt;
                if(sensoren[1].raumtemperatursensor) frtt = sensoren[1].wert.Temperatur;
                else frtt = sensoren[1].wert;
                log(frtt);
                var frtdate = sensoren[1].letzte_uebertragung;
                log(frtdate);
    
    

    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 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        meicker
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            meicker
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • M Offline
              M Offline
              meicker
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                meicker
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    meicker
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                      0
                      • M Offline
                        M Offline
                        meicker
                        schrieb am zuletzt editiert von
                        #14

                        DANKESCHÖN :-)

                        1 Antwort Letzte Antwort
                        0
                        • M Offline
                          M Offline
                          meicker
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              meicker
                              schrieb am zuletzt editiert von
                              #17

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

                              1 Antwort Letzte Antwort
                              0
                              • M Offline
                                M Offline
                                meicker
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                • paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                  0
                                  • M Offline
                                    M Offline
                                    meicker
                                    schrieb am zuletzt editiert von
                                    #20

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

                                    1 Antwort Letzte Antwort
                                    0
                                    • M Offline
                                      M Offline
                                      meicker
                                      schrieb am zuletzt editiert von
                                      #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 Antwort Letzte Antwort
                                      0
                                      • paul53P Offline
                                        paul53P Offline
                                        paul53
                                        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                        0
                                        • M Offline
                                          M Offline
                                          meicker
                                          schrieb am zuletzt editiert von
                                          #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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          790

                                          Online

                                          32.4k

                                          Benutzer

                                          81.6k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe