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. JavaScript
  5. JSON, Zigbee und ein undefined

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

JSON, Zigbee und ein undefined

Scheduled Pinned Locked Moved JavaScript
20 Posts 6 Posters 1.7k Views 4 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.
  • M Offline
    M Offline
    mrzee
    wrote on last edited by mrzee
    #1

    Hallo zusammen,

    ich habe mir direkt mal die neue Zigbee-Bridge von Sonoff bestellt und auf Tasmota geflashed. Zigbee2Tasmota auf dem Chip ist ebenfalls drauf - tut überwiegend auch, was es soll.

    Da allerdings im Sonoff Adapter die kommenden Datenpunkte noch nicht richtig zerlegt werden, nutze ich einen anderen Port auf dem MQTT Adapter und bekomme auch die Werte rein. Nun beginnt, wie ich schon so oft gelesen habe, das
    Spielchen mit den JSON Strings und ich bekomme es einfach nicht hin. Ich möchte einfach nur die eingehenden Werte in States schreiben. Bislang resultiert es in einem "setForeignState: undefined is not a valid state value" oder der Wert wird nicht geschrieben.

    Daher ein paar Fragen:

    1. Muss ich den kompletten String zerlegen oder kann ich, wenn ich die entsprechenden States im Javascript Adapter angelegt habe, auch nur einen Teil des Strings übertragen? Bspw. liefert ein Aqara Vibration Sensor eine ganze Menge an Daten wie Winkel, Tilt oder Vibrate Mode - ich will aber fürs erste nur den "AqaraVibrationMode" in den State schreiben.

    2. Ich habe die Javascript states als Rolle state und state state angelegt. Als "Art" habe ich gemischt hinterlegt. Kann es daran liegen?

    MQTT JSON String:

    {"ZbReceived":{"Vibration_Sensor":{"Device":"0xF87D","Name":"Vibration_Sensor","AqaraVibrationMode":"vibrate","Endpoint":1,"LinkQuality":134}}}
    

    Das Script soll einfach nur beim Aktualisieren den Wert wegschreiben:

    var json = "mqtt.0.tele.SmartHome.EG.sonoff.ZBBridge_D7F385.SENSOR";
    var Modus = "javascript.0.Variablen.Messwerte.Zigbee.Modus";
     
    on(json, function(dp) {
       var obj = JSON.parse(dp.state.val).ZbReceived;
          setState(Modus, parseFloat(obj.AqaraVibrationMode));
       });
    
    mickymM paul53P 2 Replies Last reply
    0
    • M mrzee

      Hallo zusammen,

      ich habe mir direkt mal die neue Zigbee-Bridge von Sonoff bestellt und auf Tasmota geflashed. Zigbee2Tasmota auf dem Chip ist ebenfalls drauf - tut überwiegend auch, was es soll.

      Da allerdings im Sonoff Adapter die kommenden Datenpunkte noch nicht richtig zerlegt werden, nutze ich einen anderen Port auf dem MQTT Adapter und bekomme auch die Werte rein. Nun beginnt, wie ich schon so oft gelesen habe, das
      Spielchen mit den JSON Strings und ich bekomme es einfach nicht hin. Ich möchte einfach nur die eingehenden Werte in States schreiben. Bislang resultiert es in einem "setForeignState: undefined is not a valid state value" oder der Wert wird nicht geschrieben.

      Daher ein paar Fragen:

      1. Muss ich den kompletten String zerlegen oder kann ich, wenn ich die entsprechenden States im Javascript Adapter angelegt habe, auch nur einen Teil des Strings übertragen? Bspw. liefert ein Aqara Vibration Sensor eine ganze Menge an Daten wie Winkel, Tilt oder Vibrate Mode - ich will aber fürs erste nur den "AqaraVibrationMode" in den State schreiben.

      2. Ich habe die Javascript states als Rolle state und state state angelegt. Als "Art" habe ich gemischt hinterlegt. Kann es daran liegen?

      MQTT JSON String:

      {"ZbReceived":{"Vibration_Sensor":{"Device":"0xF87D","Name":"Vibration_Sensor","AqaraVibrationMode":"vibrate","Endpoint":1,"LinkQuality":134}}}
      

      Das Script soll einfach nur beim Aktualisieren den Wert wegschreiben:

      var json = "mqtt.0.tele.SmartHome.EG.sonoff.ZBBridge_D7F385.SENSOR";
      var Modus = "javascript.0.Variablen.Messwerte.Zigbee.Modus";
       
      on(json, function(dp) {
         var obj = JSON.parse(dp.state.val).ZbReceived;
            setState(Modus, parseFloat(obj.AqaraVibrationMode));
         });
      
      mickymM Online
      mickymM Online
      mickym
      Most Active
      wrote on last edited by mickym
      #2

      gelöscht

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      1 Reply Last reply
      0
      • M mrzee

        Hallo zusammen,

        ich habe mir direkt mal die neue Zigbee-Bridge von Sonoff bestellt und auf Tasmota geflashed. Zigbee2Tasmota auf dem Chip ist ebenfalls drauf - tut überwiegend auch, was es soll.

        Da allerdings im Sonoff Adapter die kommenden Datenpunkte noch nicht richtig zerlegt werden, nutze ich einen anderen Port auf dem MQTT Adapter und bekomme auch die Werte rein. Nun beginnt, wie ich schon so oft gelesen habe, das
        Spielchen mit den JSON Strings und ich bekomme es einfach nicht hin. Ich möchte einfach nur die eingehenden Werte in States schreiben. Bislang resultiert es in einem "setForeignState: undefined is not a valid state value" oder der Wert wird nicht geschrieben.

        Daher ein paar Fragen:

        1. Muss ich den kompletten String zerlegen oder kann ich, wenn ich die entsprechenden States im Javascript Adapter angelegt habe, auch nur einen Teil des Strings übertragen? Bspw. liefert ein Aqara Vibration Sensor eine ganze Menge an Daten wie Winkel, Tilt oder Vibrate Mode - ich will aber fürs erste nur den "AqaraVibrationMode" in den State schreiben.

        2. Ich habe die Javascript states als Rolle state und state state angelegt. Als "Art" habe ich gemischt hinterlegt. Kann es daran liegen?

        MQTT JSON String:

        {"ZbReceived":{"Vibration_Sensor":{"Device":"0xF87D","Name":"Vibration_Sensor","AqaraVibrationMode":"vibrate","Endpoint":1,"LinkQuality":134}}}
        

        Das Script soll einfach nur beim Aktualisieren den Wert wegschreiben:

        var json = "mqtt.0.tele.SmartHome.EG.sonoff.ZBBridge_D7F385.SENSOR";
        var Modus = "javascript.0.Variablen.Messwerte.Zigbee.Modus";
         
        on(json, function(dp) {
           var obj = JSON.parse(dp.state.val).ZbReceived;
              setState(Modus, parseFloat(obj.AqaraVibrationMode));
           });
        
        paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by
        #3

        @mrzee sagte:

        var obj = JSON.parse(dp.state.val).ZbReceived.Vibration_Sensor;
        setState(Modus, obj.AqaraVibrationMode, true);
        

        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

        M 2 Replies Last reply
        1
        • paul53P paul53

          @mrzee sagte:

          var obj = JSON.parse(dp.state.val).ZbReceived.Vibration_Sensor;
          setState(Modus, obj.AqaraVibrationMode, true);
          
          M Offline
          M Offline
          mrzee
          wrote on last edited by
          #4

          @paul53
          DANKE!!! Das hat mir den Tag gerettet!!

          1 Reply Last reply
          0
          • paul53P paul53

            @mrzee sagte:

            var obj = JSON.parse(dp.state.val).ZbReceived.Vibration_Sensor;
            setState(Modus, obj.AqaraVibrationMode, true);
            
            M Offline
            M Offline
            mrzee
            wrote on last edited by
            #5

            @paul53
            Kommando zurück... der State wird zwar gesetzt, aber ich bekomme immer noch verschiedene "Error" - liegt das daran, dass ich nur ein einziges Element aus dem String verwende?

            Error in callback: TypeError: Cannot read property 'AqaraVibrationMode' of undefined
            
            paul53P 1 Reply Last reply
            0
            • M mrzee

              @paul53
              Kommando zurück... der State wird zwar gesetzt, aber ich bekomme immer noch verschiedene "Error" - liegt das daran, dass ich nur ein einziges Element aus dem String verwende?

              Error in callback: TypeError: Cannot read property 'AqaraVibrationMode' of undefined
              
              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by paul53
              #6

              @mrzee sagte:

              liegt das daran, dass ich nur ein einziges Element aus dem String verwende?

              Nein. Anscheinend ist die Struktur des Datenpunkt-Wertes nicht immer gleich. Um das zu testen, ergänze um eine Log-Ausgabe. Um den Error-Log zu vermeiden prüfe:

              if(obj) setState(Modus, obj.AqaraVibrationMode, true);
              else log(dp.state.val, 'warn');
              

              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

              M 1 Reply Last reply
              0
              • paul53P paul53

                @mrzee sagte:

                liegt das daran, dass ich nur ein einziges Element aus dem String verwende?

                Nein. Anscheinend ist die Struktur des Datenpunkt-Wertes nicht immer gleich. Um das zu testen, ergänze um eine Log-Ausgabe. Um den Error-Log zu vermeiden prüfe:

                if(obj) setState(Modus, obj.AqaraVibrationMode, true);
                else log(dp.state.val, 'warn');
                
                M Offline
                M Offline
                mrzee
                wrote on last edited by mrzee
                #7

                @paul53

                Wir nähern uns dem ganzen an - ich habe einen Fehler gemacht: Ich wollte keinen booleschen Wert, sondern wirklich die Übernahme des Wertes aus dem JSON String (vibrate, tilt, drop) - setze ich das "true" ein, sind die Fehler weg.

                Aber ja, die Werte sind nicht immer gleich - in den gleichen Datenpunkt werden auch die Keep Alive Meldungen der Bridge geschrieben, da steht dann was völlig anderes in dem String.

                paul53P 3 Replies Last reply
                0
                • M mrzee

                  @paul53

                  Wir nähern uns dem ganzen an - ich habe einen Fehler gemacht: Ich wollte keinen booleschen Wert, sondern wirklich die Übernahme des Wertes aus dem JSON String (vibrate, tilt, drop) - setze ich das "true" ein, sind die Fehler weg.

                  Aber ja, die Werte sind nicht immer gleich - in den gleichen Datenpunkt werden auch die Keep Alive Meldungen der Bridge geschrieben, da steht dann was völlig anderes in dem String.

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by
                  #8

                  @mrzee sagte:

                  die Werte sind nicht immer gleich - in den gleichen Datenpunkt werden auch die Keep Alive Meldungen der Bridge geschrieben, da steht dann was völlig anderes in dem String.

                  Ist der Anfang immer gleich ?

                  {"ZbReceived":{"Vibration_Sensor":{
                  

                  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 mrzee

                    @paul53

                    Wir nähern uns dem ganzen an - ich habe einen Fehler gemacht: Ich wollte keinen booleschen Wert, sondern wirklich die Übernahme des Wertes aus dem JSON String (vibrate, tilt, drop) - setze ich das "true" ein, sind die Fehler weg.

                    Aber ja, die Werte sind nicht immer gleich - in den gleichen Datenpunkt werden auch die Keep Alive Meldungen der Bridge geschrieben, da steht dann was völlig anderes in dem String.

                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by paul53
                    #9

                    @mrzee sagte:

                    wirklich die Übernahme des Wertes aus dem JSON String (vibrate, tilt, drop)

                    Das macht setState(Modus, obj.AqaraVibrationMode, true).

                    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 mrzee

                      @paul53

                      Wir nähern uns dem ganzen an - ich habe einen Fehler gemacht: Ich wollte keinen booleschen Wert, sondern wirklich die Übernahme des Wertes aus dem JSON String (vibrate, tilt, drop) - setze ich das "true" ein, sind die Fehler weg.

                      Aber ja, die Werte sind nicht immer gleich - in den gleichen Datenpunkt werden auch die Keep Alive Meldungen der Bridge geschrieben, da steht dann was völlig anderes in dem String.

                      paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by paul53
                      #10

                      @mrzee sagte:

                      steht dann was völlig anderes in dem String.

                      Wenn ein beliebiger JSON-String enthalten sein kann, dann muss man alle Teile prüfen:

                      var obj = JSON.parse(dp.state.val);
                      if (obj && obj.ZbReceived && obj.ZbReceived.Vibration_Sensor) setState(Modus, obj.ZbReceived.Vibration_Sensor.AqaraVibrationMode, true);
                      

                      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

                      M 1 Reply Last reply
                      0
                      • paul53P paul53

                        @mrzee sagte:

                        steht dann was völlig anderes in dem String.

                        Wenn ein beliebiger JSON-String enthalten sein kann, dann muss man alle Teile prüfen:

                        var obj = JSON.parse(dp.state.val);
                        if (obj && obj.ZbReceived && obj.ZbReceived.Vibration_Sensor) setState(Modus, obj.ZbReceived.Vibration_Sensor.AqaraVibrationMode, true);
                        
                        M Offline
                        M Offline
                        mrzee
                        wrote on last edited by
                        #11

                        @paul53

                        Danke dir, ich war die Tage unterwegs und bin noch nicht zum Testen gekommen. Ich hoffe, ich bekomme es die Tage hin.

                        Z 1 Reply Last reply
                        0
                        • M mrzee

                          @paul53

                          Danke dir, ich war die Tage unterwegs und bin noch nicht zum Testen gekommen. Ich hoffe, ich bekomme es die Tage hin.

                          Z Offline
                          Z Offline
                          Zerosub
                          wrote on last edited by
                          #12

                          @mrzee
                          wie ist denn hier dein Stand?
                          Ich bin ebenfalls seit geraumer Zeit mit der Tasmota ZbBridge unterwegs. Erstaunlich wie zuverlässig das mit der Sonoff Bridge funktioniert. Auch die Rechweite ist ziemlich gut.

                          Leider habe ich das gleiche Problem:
                          Die Werte im Sonoff Adapter sind nicht zuverlässig und werden auch bei einem KeepAlive verändert ...

                          Konntest Du mit der MQTT Methode etwas erreichen?
                          ich habe ziemlich nette Schalter gekauft (Aquara WXKG02LM) welche folgenden String per MQTT schicken:
                          {"ZbReceived":{"0x282B":{"Device":"0x282B","MultiInValue":1,"Endpoint":3,"LinkQuality":105}}}

                          Multivalue: ob kurz (0), lang(1) oder double(2) gedrückt wurde
                          Endpoint: Schalter1 (1) , Schalter2 (2) oder beide (3)

                          gibt es keine generelle Möglichkeit die MQTT Strings die rein kommen zu parsen?

                          1 Reply Last reply
                          0
                          • Z Offline
                            Z Offline
                            zweigelt99
                            wrote on last edited by
                            #13

                            @zerosub @paul53

                            Hallo, bin ebenfalls am zerlegen eines Json-String und bekomme es einfach nicht hin.

                            Hier mein String:

                            {"ZbReceived":{" Taster_allesaus":{"Device":"0x17EB","Name":" Taster_allesaus","0006!02":"","Power":2,"Endpoint":1,"LinkQuality":60}}}
                            

                            Hier mein Code:

                            var json = "mqtt.0.Heurigen.zbbridge.tele.17EB.SENSOR"/*Mqtt_string vom tasmota zbbridge*/;
                            
                            var Taster = "0_userdata.0.Heurigen.zbbridge.Taster_allesaus"/*1 oder 2*/;
                            
                              on(json, function(dp) {
                               var obj = JSON.parse(dp.state.val).ZbReceived.Taster_allesaus;
                               setState(Taster, obj.Power);
                            });
                            

                            Hier noch die Fehlermeldung aus dem Log:

                            ~~javascript.0	2021-02-13 19:37:15.766	error	(1182) at processImmediate (internal/timers.js:461:21)
                            javascript.0	2021-02-13 19:37:15.766	error	(1182) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
                            javascript.0	2021-02-13 19:37:15.766	error	(1182) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:472:25)
                            javascript.0	2021-02-13 19:37:15.765	error	(1182) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1055:38)
                            javascript.0	2021-02-13 19:37:15.765	error	(1182) at Object.<anonymous> (script.js.Heurigen_zbbridge.Taster_allesausv3:15:25)
                            javascript.0	2021-02-13 19:37:15.764	error	(1182) Error in callback: TypeError: Cannot read property 'Power' of undefined~~
                            

                            Kann mir bitte jemand sagen wo der Fehler liegt?

                            Vielleicht hat auch jemand einen Link wie man an die Tasmota Zigbeebridge Befehle über den iobroker senden kann. Das ganze Thema scheint ja noch sehr jung zu sein.

                            Vielen Dank

                            F 1 Reply Last reply
                            0
                            • Z zweigelt99

                              @zerosub @paul53

                              Hallo, bin ebenfalls am zerlegen eines Json-String und bekomme es einfach nicht hin.

                              Hier mein String:

                              {"ZbReceived":{" Taster_allesaus":{"Device":"0x17EB","Name":" Taster_allesaus","0006!02":"","Power":2,"Endpoint":1,"LinkQuality":60}}}
                              

                              Hier mein Code:

                              var json = "mqtt.0.Heurigen.zbbridge.tele.17EB.SENSOR"/*Mqtt_string vom tasmota zbbridge*/;
                              
                              var Taster = "0_userdata.0.Heurigen.zbbridge.Taster_allesaus"/*1 oder 2*/;
                              
                                on(json, function(dp) {
                                 var obj = JSON.parse(dp.state.val).ZbReceived.Taster_allesaus;
                                 setState(Taster, obj.Power);
                              });
                              

                              Hier noch die Fehlermeldung aus dem Log:

                              ~~javascript.0	2021-02-13 19:37:15.766	error	(1182) at processImmediate (internal/timers.js:461:21)
                              javascript.0	2021-02-13 19:37:15.766	error	(1182) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
                              javascript.0	2021-02-13 19:37:15.766	error	(1182) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:472:25)
                              javascript.0	2021-02-13 19:37:15.765	error	(1182) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1055:38)
                              javascript.0	2021-02-13 19:37:15.765	error	(1182) at Object.<anonymous> (script.js.Heurigen_zbbridge.Taster_allesausv3:15:25)
                              javascript.0	2021-02-13 19:37:15.764	error	(1182) Error in callback: TypeError: Cannot read property 'Power' of undefined~~
                              

                              Kann mir bitte jemand sagen wo der Fehler liegt?

                              Vielleicht hat auch jemand einen Link wie man an die Tasmota Zigbeebridge Befehle über den iobroker senden kann. Das ganze Thema scheint ja noch sehr jung zu sein.

                              Vielen Dank

                              F Offline
                              F Offline
                              fastfoot
                              wrote on last edited by
                              #14

                              @zweigelt99 sagte in JSON, Zigbee und ein undefined:

                              ved":{" Tast

                              Da ist ein Leerzeichen.
                              var obj = JSON.parse(dp.state.val).ZbReceived.[" Taster_allesaus"];

                              iobroker läuft unter Docker auf QNAP TS-451+
                              SkriptRecovery: https://forum.iobroker.net/post/930558

                              Z 1 Reply Last reply
                              0
                              • F fastfoot

                                @zweigelt99 sagte in JSON, Zigbee und ein undefined:

                                ved":{" Tast

                                Da ist ein Leerzeichen.
                                var obj = JSON.parse(dp.state.val).ZbReceived.[" Taster_allesaus"];

                                Z Offline
                                Z Offline
                                zweigelt99
                                wrote on last edited by
                                #15

                                @fastfoot
                                Danke das wars.

                                1 Reply Last reply
                                0
                                • Z Offline
                                  Z Offline
                                  zweigelt99
                                  wrote on last edited by
                                  #16

                                  Habe jetzt ein Heizkörperthermostat in iobroker eingebunden. Daten kommen auch am Datenpunkt richtig an.
                                  Allerdings kommt auch eine Fehlermeldung.

                                  javascript.0	2021-02-14 10:50:46.085	error	(1186) script.js.Heurigen_zbbridge.Therm_Tisch3: setForeignState: undefined is not a valid state value
                                  javascript.0	2021-02-14 10:50:46.085	warn	(1186) at processImmediate (internal/timers.js:461:21)
                                  javascript.0	2021-02-14 10:50:46.085	warn	(1186) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
                                  javascript.0	2021-02-14 10:50:46.085	warn	(1186) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:472:25)
                                  javascript.0	2021-02-14 10:50:46.084	warn	(1186) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1055:38)
                                  javascript.0	2021-02-14 10:50:46.084	warn	(1186) at Object.<anonymous> (script.js.Heurigen_zbbridge.Therm_Tisch3:19:5)
                                  javascript.0	2021-02-14 10:50:46.084	warn	(1186) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1358:20)
                                  javascript.0	2021-02-14 10:50:46.083	warn	(1186) You are assigning a undefined to the state "0_userdata.0.Heurigen.zbbridge.Thermostat.Tisch3_Ventilstellung" which expects a number. Please fix your code to use a number or change the state typ
                                  

                                  Kann ich diese Ignorieren?

                                  Code

                                  var json = "mqtt.0.Heurigen.zbbridge.tele.796D.SENSOR"/*Mqtt_string vom tasmota zbbridge*/;
                                  
                                  var TempIst = "0_userdata.0.Heurigen.zbbridge.Thermostat.Tisch3_Ist"/*Datenpunkt von0.0_userdata*/;
                                  var TempSoll = "0_userdata.0.Heurigen.zbbridge.Thermostat.Tisch3_Soll";
                                  var Motorstellung = "0_userdata.0.Heurigen.zbbridge.Thermostat.Tisch3_Ventilstellung";
                                  
                                    on(json, function(dp) {
                                     var obj = JSON.parse(dp.state.val).ZbReceived.Therm_Tisch_3;/*Hier Name von ZigBee Gerät Eintregen*/
                                     setState(TempIst, obj.LocalTemperature);
                                      setState(TempSoll, obj.OccupiedHeatingSetpoint);
                                      setState(Motorstellung, obj.PIHeatingDemand);
                                  });
                                  
                                  
                                  paul53P 1 Reply Last reply
                                  0
                                  • Z zweigelt99

                                    Habe jetzt ein Heizkörperthermostat in iobroker eingebunden. Daten kommen auch am Datenpunkt richtig an.
                                    Allerdings kommt auch eine Fehlermeldung.

                                    javascript.0	2021-02-14 10:50:46.085	error	(1186) script.js.Heurigen_zbbridge.Therm_Tisch3: setForeignState: undefined is not a valid state value
                                    javascript.0	2021-02-14 10:50:46.085	warn	(1186) at processImmediate (internal/timers.js:461:21)
                                    javascript.0	2021-02-14 10:50:46.085	warn	(1186) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
                                    javascript.0	2021-02-14 10:50:46.085	warn	(1186) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:472:25)
                                    javascript.0	2021-02-14 10:50:46.084	warn	(1186) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1055:38)
                                    javascript.0	2021-02-14 10:50:46.084	warn	(1186) at Object.<anonymous> (script.js.Heurigen_zbbridge.Therm_Tisch3:19:5)
                                    javascript.0	2021-02-14 10:50:46.084	warn	(1186) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1358:20)
                                    javascript.0	2021-02-14 10:50:46.083	warn	(1186) You are assigning a undefined to the state "0_userdata.0.Heurigen.zbbridge.Thermostat.Tisch3_Ventilstellung" which expects a number. Please fix your code to use a number or change the state typ
                                    

                                    Kann ich diese Ignorieren?

                                    Code

                                    var json = "mqtt.0.Heurigen.zbbridge.tele.796D.SENSOR"/*Mqtt_string vom tasmota zbbridge*/;
                                    
                                    var TempIst = "0_userdata.0.Heurigen.zbbridge.Thermostat.Tisch3_Ist"/*Datenpunkt von0.0_userdata*/;
                                    var TempSoll = "0_userdata.0.Heurigen.zbbridge.Thermostat.Tisch3_Soll";
                                    var Motorstellung = "0_userdata.0.Heurigen.zbbridge.Thermostat.Tisch3_Ventilstellung";
                                    
                                      on(json, function(dp) {
                                       var obj = JSON.parse(dp.state.val).ZbReceived.Therm_Tisch_3;/*Hier Name von ZigBee Gerät Eintregen*/
                                       setState(TempIst, obj.LocalTemperature);
                                        setState(TempSoll, obj.OccupiedHeatingSetpoint);
                                        setState(Motorstellung, obj.PIHeatingDemand);
                                    });
                                    
                                    
                                    paul53P Offline
                                    paul53P Offline
                                    paul53
                                    wrote on last edited by paul53
                                    #17

                                    @zweigelt99 sagte: You are assigning a undefined to the state "0_userdata.0.Heurigen.zbbridge.Thermostat.Tisch3_Ventilstellung" which expects a number.

                                    obj.PIHeatingDemand existiert offenbar nicht.

                                    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

                                    Z 1 Reply Last reply
                                    0
                                    • paul53P paul53

                                      @zweigelt99 sagte: You are assigning a undefined to the state "0_userdata.0.Heurigen.zbbridge.Thermostat.Tisch3_Ventilstellung" which expects a number.

                                      obj.PIHeatingDemand existiert offenbar nicht.

                                      Z Offline
                                      Z Offline
                                      zweigelt99
                                      wrote on last edited by zweigelt99
                                      #18

                                      @paul53

                                      Ok, offensichtlich schickt das Thermostat nicht immer die selbe Info, wie kann ich dann die Fehlemeldung vermeiden?
                                      Weiter oben steht das Problem schon beschrieben aber irgendwie blicke ich nicht ganz durch.

                                      Die Fehlermeldung kommt bei allen 3 Datenpunkten.

                                      {"ZbReceived":{"Therm_Tisch_3":{"Device":"0x796D","Name":"Therm_Tisch_3","OccupiedHeatingSetpoint":20,"Endpoint":1,"LinkQuality":26}}}
                                      
                                      {"ZbReceived":{"Therm_Tisch_3":{"Device":"0x796D","Name":"Therm_Tisch_3","CurrentTemperatureSetPoint":20.5,"Endpoint":1,"LinkQuality":31}}}
                                      
                                      {"ZbReceived":{"Therm_Tisch_3":{"Device":"0x796D","Name":"Therm_Tisch_3","PIHeatingDemand":0,"Endpoint":1,"LinkQuality":31}}}
                                      
                                      paul53P 1 Reply Last reply
                                      0
                                      • Z zweigelt99

                                        @paul53

                                        Ok, offensichtlich schickt das Thermostat nicht immer die selbe Info, wie kann ich dann die Fehlemeldung vermeiden?
                                        Weiter oben steht das Problem schon beschrieben aber irgendwie blicke ich nicht ganz durch.

                                        Die Fehlermeldung kommt bei allen 3 Datenpunkten.

                                        {"ZbReceived":{"Therm_Tisch_3":{"Device":"0x796D","Name":"Therm_Tisch_3","OccupiedHeatingSetpoint":20,"Endpoint":1,"LinkQuality":26}}}
                                        
                                        {"ZbReceived":{"Therm_Tisch_3":{"Device":"0x796D","Name":"Therm_Tisch_3","CurrentTemperatureSetPoint":20.5,"Endpoint":1,"LinkQuality":31}}}
                                        
                                        {"ZbReceived":{"Therm_Tisch_3":{"Device":"0x796D","Name":"Therm_Tisch_3","PIHeatingDemand":0,"Endpoint":1,"LinkQuality":31}}}
                                        
                                        paul53P Offline
                                        paul53P Offline
                                        paul53
                                        wrote on last edited by paul53
                                        #19

                                        @zweigelt99 sagte: wie kann ich dann die Fehlemeldung vermeiden?

                                            if(obj.LocalTemperature) setState(TempIst, obj.LocalTemperature, true);
                                            if(obj.CurrentTemperatureSetpoint) setState(TempSoll, obj.CurrentTemperatureSetPoint, true);
                                            if(obj.PIHeatingDemand != undefined) setState(Motorstellung, obj.PIHeatingDemand, true);
                                        

                                        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

                                        Z 1 Reply Last reply
                                        0
                                        • paul53P paul53

                                          @zweigelt99 sagte: wie kann ich dann die Fehlemeldung vermeiden?

                                              if(obj.LocalTemperature) setState(TempIst, obj.LocalTemperature, true);
                                              if(obj.CurrentTemperatureSetpoint) setState(TempSoll, obj.CurrentTemperatureSetPoint, true);
                                              if(obj.PIHeatingDemand != undefined) setState(Motorstellung, obj.PIHeatingDemand, true);
                                          
                                          Z Offline
                                          Z Offline
                                          zweigelt99
                                          wrote on last edited by
                                          #20

                                          @paul53

                                          Danke für die Hilfe, jetzt bin ich Fehlerfrei,

                                          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

                                          784

                                          Online

                                          32.5k

                                          Users

                                          81.7k

                                          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