Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. JSON String zu Datenpunkten

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    JSON String zu Datenpunkten

    This topic has been deleted. Only users with topic management privileges can see it.
    • mayli01
      mayli01 @paul53 last edited by

      @paul53
      Vielen danke für die schnelle Antwort!
      Anscheinend bin ich zu blöd für sowas... hab jetzt für den ersten Datenpunkt folgendes eingetragen:

      const idJson = 'mqtt.0.AMIS-Alex-Haushalt.Haushalt'; // ID eintragen (Datenpunkt der JSON)
      const id180 = ' mqtt.0.AMIS-Alex-Haushalt.180'; // eigener Datenpunkt vom Typ Zahl (Datenpunkt vom ersten Wert 1.8.0)
      // usw.
       
      on(idJson, function(dp) {
         let obj = JSON.parse(dp.stat.val);
         setState(id180, obj['1.8.0'], true);
         // usw.
      });
      

      Leider wird nichts ausgegeben...

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @mayli01 last edited by paul53

        @mayli01 sagte:

        Leider wird nichts ausgegeben...

        Der Wert vom Json-Datenpunkt muss sich erst ändern, damit getriggert wird.

        const id180 = ' mqtt.0.AMIS-Alex-Haushalt.180';
        

        Vor mqtt ist ein Leerzeichen im String !

        Eigene Datenpunkte sollte man nicht im Namensraum eines Adapters erstellen, da der Adapter die Objekte verwaltet, also auch löschen kann.

        mayli01 1 Reply Last reply Reply Quote 0
        • mayli01
          mayli01 @paul53 last edited by

          @paul53
          Der JSON Datenpunkt ändert sich alle 3 sec.
          Habs jetzt noch einmal neu gemacht aber trotzdem ohne erfolg 🙆‍♂️

          const idJson = 'mqtt.0.AMIS-Alex-Haushalt.Haushalt'/*AMIS-Alex-Haushalt/Haushalt*/; // ID eintragen
          const id180 = '0_userdata.0.AMIS.180'/*Amis 180*/; // eigener Datenpunkt vom Typ Zahl
          // usw.
           
          on(idJson, function(dp) {
             let obj = JSON.parse(dp.stat.val);
             setState(id180, obj['1.8.0'], true);
             // usw.
          });
          

          2020-09-17 15_39_13-objects - ioBroker.png
          2020-09-17 15_39_57-objects - ioBroker.png

          F 1 Reply Last reply Reply Quote 0
          • F
            fastfoot @mayli01 last edited by

            @mayli01 sagte in JSON String zu Datenpunkten:

            JSON.parse(dp.stat.val)

            schau doch mal was da falsch sein könnte 🙂

            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @fastfoot last edited by

              @fastfoot sagte:

              Schau doch mal was da falsch sein könnte

              Sorry, ein e vergessen.

                 let obj = JSON.parse(dp.state.val);
              
              mayli01 F 2 Replies Last reply Reply Quote 0
              • mayli01
                mayli01 @paul53 last edited by

                @paul53
                Danke! Wenn man keine Ahnung von Js hat fällt mir sowas bestimmt nicht auf🤦 👍

                1 Reply Last reply Reply Quote 0
                • F
                  fastfoot @paul53 last edited by

                  @paul53 sagte in JSON String zu Datenpunkten:

                  Sorry, ein e vergessen.

                  ich hatte das dem TE unterstellt, mir war nicht bewusst das das von Dir kam. Bei so vielen hilfreichen Beiträgen darf das aber schonmal passieren👍

                  hanss 1 Reply Last reply Reply Quote 0
                  • hanss
                    hanss @fastfoot last edited by

                    @paul53
                    Hallo Paul,
                    Wie bekomme ich die darunterliegende id von
                    "javascript.0.haus.Heizung.OG_Kueche.FensterOffen"
                    also
                    "javascript.0.haus.Heizung.OG_Kueche"
                    ohne einfach den String begrenzen, weil die Länge variabel ist.
                    Vielen Dank.

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @hanss last edited by paul53

                      @hanss sagte in JSON String zu Datenpunkten:

                      Wie bekomme ich die darunterliegende id

                      function parentId(id) {
                         return id.substring(0, id.lastIndexOf('.'));
                      }
                      
                      hanss 1 Reply Last reply Reply Quote 0
                      • hanss
                        hanss @paul53 last edited by

                        @paul53
                        vielen Dank, Du bist wirklich eine große Hilfe.

                        1 Reply Last reply Reply Quote 0
                        • B
                          bjappler last edited by bjappler

                          Hallo, ich habe diesen Beitrag gefunden und nutze das hier erwähnte script bisher erfolgreich für Datenpunkte als Zahl .
                          Ich habe folgende Frage:

                          • Wie kann ich die Untervariablen "ble temp" und "ble hum" auszulesen?

                          Nachfolgend mein Datenpunkt (über MQTT JSON) :

                          {
                            
                            "temp": 19.5,
                            "demand": 40,
                            "fan": "1",
                            "ble": {
                              "temp": 21.11,
                              "hum": 76.86,
                              "bat": 2111
                            },
                            "autob": "A4C13885DD31",
                            "autor": 0,
                            "autot": 17.5,
                            "auto0": "00:00",
                            "auto1": "00:00",
                            "autop": false
                          }
                          

                          Die Haupvariablen z.B. "env" kann ich ohne Probleme wie folgt auslesen:

                          setState(id180, obj['env'], true);
                          

                          Wie müss der Code für "ble temp" aussehen?

                          Ich habe alles mögliche ausprobiert, leider klappt es z.B. mit dem nachfolgenden Code nicht

                          setState(id180, obj['ble.temp'], true);
                          

                          Ich freue mich auf Eure Antwort.

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @bjappler last edited by

                            @bjappler sagte: "ble temp" auszulesen?

                            setState(id180, obj.ble.temp, true);
                            
                            B 1 Reply Last reply Reply Quote 0
                            • B
                              bjappler @paul53 last edited by

                              @paul53 vielen Dank, das klappt! 🙂

                              Gibt es eigentlich eine Möglichkeit das o.g. Script auch als Blockly aufzubauen, um den Wert "ble temp" auszulesen? Habe viele Scripte probiert, es hatte aber dann letzendlich nur dieses hier geklappt.

                              Ansonsten werde ich dieses hier einfach weiter nutzen 😊

                              Homoran 1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @bjappler last edited by Homoran

                                @bjappler sagte in JSON String zu Datenpunkten:

                                um den Wert "ble temp" auszulesen?

                                der Block Attribut "ble.temp" von "json" liefert das
                                Screenshot_20240804-144357_Firefox.jpg

                                vorher Struktur ansehen
                                Screenshot_20240804-144521_Firefox.jpg

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                589
                                Online

                                31.9k
                                Users

                                80.1k
                                Topics

                                1.3m
                                Posts

                                6
                                16
                                2363
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo