Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. json(<key>) liefert "undefined" im Binding

NEWS

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

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

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

json(<key>) liefert "undefined" im Binding

Scheduled Pinned Locked Moved Visualisierung
11 Posts 4 Posters 603 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    Pulsar07
    wrote on last edited by
    #1

    Nutze in Vis-2 das Styled - States Control Widget, für einen detailierten Schalter einer Tasmota-Steckdose, die über mqtt (iobroker.mqtt) angebunden ist.
    Das Tasmota Device schickt viele Detail-Attribute über einen JSON-String, der mittels der JSON() Funktion sehr leicht geparst werden kann:

    ({mqtt.0.tele.tasmota_DBDAE0.SENSOR;json(ENERGY.Power) })
    

    Der String der sich im SENSOR-Topic befindet sieht aus wie folgt:

    mqtt.0.tele.tasmota_DBDAE0.SENSOR.val:{"Time":"2025-03-14T08:40:26","ENERGY":{"TotalStartTime":"2020-05-05T11:42:36","Total":116.087,"Yesterday":0.100,"Today":0.033,"Period": 0,"Power": 0,"ApparentPower": 0,"ReactivePower": 0,"Factor":0.00,"Voltage": 0,"Current":0.000}} [string]
    

    Wie man sieht, gibt es einen Wert 0 zum Key "ENERGY.Power".
    Dieser Wert ist im Text / Title des Widgets eingefügt, um den aktuellen Stromverbrauch im Widget zu sehen.

    Jetzt zum Problem:
    Der Wert wird immer perfekt angezeigt, ausser, wenn der Wert 0 ist, dann gibt die json(ENERGY.Power)-Funktion den String "undefined" aus:
    Screenshot from 2025-03-14 08-50-59.png

    Habe per javascript versucht

    let sensorObj = JSON.parse(obj.state.val);
    let powerVal = sensorObj.ENERGY.Power;
    

    auf den Wert zu zugreifen. Hier funktioniert alles perfekt mit und ohne "0". Deshalb poste ich meine Frage mal hier im Bereich Visualisierung.
    Hat jemand eine Idee?

    Gruß Rainer

    HomoranH bahnuhrB 2 Replies Last reply
    0
    • P Pulsar07

      Nutze in Vis-2 das Styled - States Control Widget, für einen detailierten Schalter einer Tasmota-Steckdose, die über mqtt (iobroker.mqtt) angebunden ist.
      Das Tasmota Device schickt viele Detail-Attribute über einen JSON-String, der mittels der JSON() Funktion sehr leicht geparst werden kann:

      ({mqtt.0.tele.tasmota_DBDAE0.SENSOR;json(ENERGY.Power) })
      

      Der String der sich im SENSOR-Topic befindet sieht aus wie folgt:

      mqtt.0.tele.tasmota_DBDAE0.SENSOR.val:{"Time":"2025-03-14T08:40:26","ENERGY":{"TotalStartTime":"2020-05-05T11:42:36","Total":116.087,"Yesterday":0.100,"Today":0.033,"Period": 0,"Power": 0,"ApparentPower": 0,"ReactivePower": 0,"Factor":0.00,"Voltage": 0,"Current":0.000}} [string]
      

      Wie man sieht, gibt es einen Wert 0 zum Key "ENERGY.Power".
      Dieser Wert ist im Text / Title des Widgets eingefügt, um den aktuellen Stromverbrauch im Widget zu sehen.

      Jetzt zum Problem:
      Der Wert wird immer perfekt angezeigt, ausser, wenn der Wert 0 ist, dann gibt die json(ENERGY.Power)-Funktion den String "undefined" aus:
      Screenshot from 2025-03-14 08-50-59.png

      Habe per javascript versucht

      let sensorObj = JSON.parse(obj.state.val);
      let powerVal = sensorObj.ENERGY.Power;
      

      auf den Wert zu zugreifen. Hier funktioniert alles perfekt mit und ohne "0". Deshalb poste ich meine Frage mal hier im Bereich Visualisierung.
      Hat jemand eine Idee?

      Gruß Rainer

      HomoranH Do not disturb
      HomoranH Do not disturb
      Homoran
      Global Moderator Administrators
      wrote on last edited by
      #2

      @pulsar07 sagte in json(<key>) liefert "undefined" im Binding:

      Hat jemand eine Idee?

      nur ein Gedanke!
      hast du zusätzlich mal nach Zahl gewandelt?

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      P 1 Reply Last reply
      0
      • P Pulsar07

        Nutze in Vis-2 das Styled - States Control Widget, für einen detailierten Schalter einer Tasmota-Steckdose, die über mqtt (iobroker.mqtt) angebunden ist.
        Das Tasmota Device schickt viele Detail-Attribute über einen JSON-String, der mittels der JSON() Funktion sehr leicht geparst werden kann:

        ({mqtt.0.tele.tasmota_DBDAE0.SENSOR;json(ENERGY.Power) })
        

        Der String der sich im SENSOR-Topic befindet sieht aus wie folgt:

        mqtt.0.tele.tasmota_DBDAE0.SENSOR.val:{"Time":"2025-03-14T08:40:26","ENERGY":{"TotalStartTime":"2020-05-05T11:42:36","Total":116.087,"Yesterday":0.100,"Today":0.033,"Period": 0,"Power": 0,"ApparentPower": 0,"ReactivePower": 0,"Factor":0.00,"Voltage": 0,"Current":0.000}} [string]
        

        Wie man sieht, gibt es einen Wert 0 zum Key "ENERGY.Power".
        Dieser Wert ist im Text / Title des Widgets eingefügt, um den aktuellen Stromverbrauch im Widget zu sehen.

        Jetzt zum Problem:
        Der Wert wird immer perfekt angezeigt, ausser, wenn der Wert 0 ist, dann gibt die json(ENERGY.Power)-Funktion den String "undefined" aus:
        Screenshot from 2025-03-14 08-50-59.png

        Habe per javascript versucht

        let sensorObj = JSON.parse(obj.state.val);
        let powerVal = sensorObj.ENERGY.Power;
        

        auf den Wert zu zugreifen. Hier funktioniert alles perfekt mit und ohne "0". Deshalb poste ich meine Frage mal hier im Bereich Visualisierung.
        Hat jemand eine Idee?

        Gruß Rainer

        bahnuhrB Online
        bahnuhrB Online
        bahnuhr
        Forum Testing Most Active
        wrote on last edited by
        #3

        @pulsar07 sagte in json(<key>) liefert "undefined" im Binding:

        let powerVal = sensorObj.ENERGY.Power;

        und wenn du dies ergänzt mit
        .tofixed

        Also wandeln in einen String.


        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
        Danke.
        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
        ScreenToGif :https://www.screentogif.com/downloads.html

        1 Reply Last reply
        0
        • HomoranH Homoran

          @pulsar07 sagte in json(<key>) liefert "undefined" im Binding:

          Hat jemand eine Idee?

          nur ein Gedanke!
          hast du zusätzlich mal nach Zahl gewandelt?

          P Offline
          P Offline
          Pulsar07
          wrote on last edited by Pulsar07
          #4

          @homoran said in json(<key>) liefert "undefined" im Binding:

          nur ein Gedanke!
          hast du zusätzlich mal nach Zahl gewandelt?

          Bin bei den Bindings nicht sehr tief drin. Da ist viel zu viel implizites Wissen notwendig, das ich nirgends nachlesen kann.
          Es funktioniert NUR: {mqtt.0.tele.tasmota_DBDAE0.SENSOR;json(ENERGY.Power) }
          aber eben nur wenn in ENERGY.Power ein Wert ungleich 0 steht.
          Sobald ich versuche hier per Scripting was zu modifizieren, parsen, abschneiden, hinzufügen funktioniert alles nicht.
          Das jedoch alles Zahlen ausser 0 funktionieren, muss das ein Bug sein.

          1 Reply Last reply
          0
          • P Offline
            P Offline
            Pulsar07
            wrote on last edited by
            #5

            @bahnuhr said in json(<key>) liefert "undefined" im Binding:

            und wenn du dies ergänzt mit
            .tofixed

            habe ich probiert, bringt keine Änderung

            bahnuhrB 1 Reply Last reply
            0
            • P Pulsar07

              @bahnuhr said in json(<key>) liefert "undefined" im Binding:

              und wenn du dies ergänzt mit
              .tofixed

              habe ich probiert, bringt keine Änderung

              bahnuhrB Online
              bahnuhrB Online
              bahnuhr
              Forum Testing Most Active
              wrote on last edited by
              #6

              @pulsar07 sagte in json(<key>) liefert "undefined" im Binding:

              @bahnuhr said in json(<key>) liefert "undefined" im Binding:

              und wenn du dies ergänzt mit
              .tofixed

              habe ich probiert, bringt keine Änderung

              glaub ich nicht.
              Bitte json als Text oder in code-tags hier einstellen.
              und auch dein binding.


              Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
              Danke.
              gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
              ScreenToGif :https://www.screentogif.com/downloads.html

              1 Reply Last reply
              0
              • P Offline
                P Offline
                Pulsar07
                wrote on last edited by
                #7

                @bahnuhr said in json(<key>) liefert "undefined" im Binding:

                Bitte json als Text oder in code-tags hier einstellen.
                und auch dein binding.

                JSON:

                {"Time":"2025-03-14T18:40:26","ENERGY":{"TotalStartTime":"2020-05-05T11:42:36","Total":116.135,"Yesterday":0.100,"Today":0.081,"Period": 1,"Power":10,"ApparentPower":19,"ReactivePower":16,"Factor":0.53,"Voltage":230,"Current":0.081}}
                

                Binding 1:

                Licht {mqtt.0.tele.tasmota_DBDAE0.SENSOR; json(ENERGY.Power) }
                

                Ergebnis:

                Licht 10
                

                (wenn das Wert im JSON-String = 0 ist ist das Ergebins "Licht undefined"

                Binding 2.Versuch:

                Licht {mqtt.0.tele.tasmota_DBDAE0.SENSOR; json(ENERGY.Power).toFixed(2) }
                

                Ergebnis:

                Licht undefined
                

                Screenshot from 2025-03-14 18-30-29.png
                Screenshot from 2025-03-14 18-31-08.png
                Screenshot from 2025-03-14 18-26-56.png

                bahnuhrB 1 Reply Last reply
                0
                • P Pulsar07

                  @bahnuhr said in json(<key>) liefert "undefined" im Binding:

                  Bitte json als Text oder in code-tags hier einstellen.
                  und auch dein binding.

                  JSON:

                  {"Time":"2025-03-14T18:40:26","ENERGY":{"TotalStartTime":"2020-05-05T11:42:36","Total":116.135,"Yesterday":0.100,"Today":0.081,"Period": 1,"Power":10,"ApparentPower":19,"ReactivePower":16,"Factor":0.53,"Voltage":230,"Current":0.081}}
                  

                  Binding 1:

                  Licht {mqtt.0.tele.tasmota_DBDAE0.SENSOR; json(ENERGY.Power) }
                  

                  Ergebnis:

                  Licht 10
                  

                  (wenn das Wert im JSON-String = 0 ist ist das Ergebins "Licht undefined"

                  Binding 2.Versuch:

                  Licht {mqtt.0.tele.tasmota_DBDAE0.SENSOR; json(ENERGY.Power).toFixed(2) }
                  

                  Ergebnis:

                  Licht undefined
                  

                  Screenshot from 2025-03-14 18-30-29.png
                  Screenshot from 2025-03-14 18-31-08.png
                  Screenshot from 2025-03-14 18-26-56.png

                  bahnuhrB Online
                  bahnuhrB Online
                  bahnuhr
                  Forum Testing Most Active
                  wrote on last edited by
                  #8

                  @pulsar07
                  Dann probier es doch einmal mit einem Script.
                  Und das Ergebnis dann in einen DP schreiben.

                  Klappt dies auch nicht ?


                  Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                  Danke.
                  gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                  ScreenToGif :https://www.screentogif.com/downloads.html

                  P 1 Reply Last reply
                  0
                  • bahnuhrB bahnuhr

                    @pulsar07
                    Dann probier es doch einmal mit einem Script.
                    Und das Ergebnis dann in einen DP schreiben.

                    Klappt dies auch nicht ?

                    P Offline
                    P Offline
                    Pulsar07
                    wrote on last edited by
                    #9

                    @bahnuhr said in json(<key>) liefert "undefined" im Binding:

                    Dann probier es doch einmal mit einem Script.
                    Und das Ergebnis dann in einen DP schreiben.
                    Klappt dies auch nicht ?

                    Doch das klappt, ist aber keine Spaß, wenn man viele solcher Steckdosen hat. Ist eben ein echter Workaround.
                    Deshalb gibt es ja die json()-Funktion. Die Nutzung der json(<key>) Funktion im Binding ist eigentlich perfekt, nur der Bug bei Wert == 0 ist eben ein Fehler.

                    Bin noch nicht lange mit IOBroker unterwegs. Wo kann man solche Fehler einstellen / melden?

                    Was mich auch irritiert, ist dass man eigentlich im Binding (vis-2) eigentlich auch "rechnen" kann ({h:javascript.0.myCustom.height;w:javascript.0.myCustom.width;h*w}, das funktioniert aber mit dem json-Value überhaupt nicht. Habe versucht den rohen JSON-String in ne Variable zu schreiben und danach mittels String Operationen zu zu schneiden. Kann aber weder den rohen JSON-String bearbeiten noch den Value aus der JSON Funktion in der Art

                     {mqtt.0.tele.tasmota_DBDAE0.SENSOR;jval:json(ENERGY.Power):jval ? jval : "0" }
                    

                    Was gibt es denn da für Einschränkungen bzw. wo kann man nachlesen, was hier möglich ist?
                    Gruß Rainer

                    bahnuhrB 1 Reply Last reply
                    0
                    • P Pulsar07

                      @bahnuhr said in json(<key>) liefert "undefined" im Binding:

                      Dann probier es doch einmal mit einem Script.
                      Und das Ergebnis dann in einen DP schreiben.
                      Klappt dies auch nicht ?

                      Doch das klappt, ist aber keine Spaß, wenn man viele solcher Steckdosen hat. Ist eben ein echter Workaround.
                      Deshalb gibt es ja die json()-Funktion. Die Nutzung der json(<key>) Funktion im Binding ist eigentlich perfekt, nur der Bug bei Wert == 0 ist eben ein Fehler.

                      Bin noch nicht lange mit IOBroker unterwegs. Wo kann man solche Fehler einstellen / melden?

                      Was mich auch irritiert, ist dass man eigentlich im Binding (vis-2) eigentlich auch "rechnen" kann ({h:javascript.0.myCustom.height;w:javascript.0.myCustom.width;h*w}, das funktioniert aber mit dem json-Value überhaupt nicht. Habe versucht den rohen JSON-String in ne Variable zu schreiben und danach mittels String Operationen zu zu schneiden. Kann aber weder den rohen JSON-String bearbeiten noch den Value aus der JSON Funktion in der Art

                       {mqtt.0.tele.tasmota_DBDAE0.SENSOR;jval:json(ENERGY.Power):jval ? jval : "0" }
                      

                      Was gibt es denn da für Einschränkungen bzw. wo kann man nachlesen, was hier möglich ist?
                      Gruß Rainer

                      bahnuhrB Online
                      bahnuhrB Online
                      bahnuhr
                      Forum Testing Most Active
                      wrote on last edited by
                      #10

                      @pulsar07 sagte in json(<key>) liefert "undefined" im Binding:

                      Doch das klappt, ist aber keine Spaß

                      mir macht JS schon Spaß.
                      und wenn es mit binding nicht klappt ?!

                      @pulsar07 sagte in json(<key>) liefert "undefined" im Binding:

                      o kann man solche Fehler einstellen / melden?

                      auf github bei dem entsprechenden Adapter.

                      @pulsar07 sagte in json(<key>) liefert "undefined" im Binding:

                      vis-2

                      Nehm ich nicht. Sind mir noch zu viele Fehler drin (meine Meinung).

                      @pulsar07 sagte in json(<key>) liefert "undefined" im Binding:

                      Was gibt es denn da für Einschränkungen bzw. wo kann man nachlesen, was hier möglich ist?

                      keine Ahnung


                      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                      Danke.
                      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                      ScreenToGif :https://www.screentogif.com/downloads.html

                      1 Reply Last reply
                      0
                      • OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        wrote on last edited by
                        #11

                        @pulsar07

                        Damit könntest du dir dein eigenes Widget bauen

                        https://forum.iobroker.net/topic/31521/test-widget-json-template?_=1742925069957

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        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

                        308

                        Online

                        32.4k

                        Users

                        81.4k

                        Topics

                        1.3m

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

                        • Don't have an account? Register

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