Navigation

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

    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

    Parse JSON in String oder Integer

    This topic has been deleted. Only users with topic management privileges can see it.
    • Z
      Z3i last edited by

      Hallo zusammen,

      kurz zu meinem Aufbau:
      Ein Lichtsensor schickt die aktuelle Beleuchtungsstärke via MQTT.
      Der aktuelle Wert wird als JSON gepublisehd. Gefunden wird das JSON in folgendem Datenpunkt: mqtt.0.tinkerforge.callback.ambient_light_v3_bricklet.L1w.illuminance

      Das JSON sieht so aus: {"illuminance": 467}

      Um den Wert weiter verarbeiten zu können benötige ich diesen allerdings nicht als JSON sondern als String oder Integer.

      Bei den Objekten habe ich mir dazu folgenden Datenpunkt angelegt:
      javascript.0.Ambientlight

      Nun möchte ich via JS das JSON parsen und nur den Wert in den Datenpunkt schreiben. Allerdings funktioniert mein Skript nicht, über die Suche habe ich auch keinen Beitrag gefunden der mir weiter hilft...

      function getLightValue() {
          var obj = JSON.parse(getState('mqtt.0.tinkerforge.callback.ambient_light_v3_bricklet.L1w.illuminance').val);
          setState('javascript.0.Ambientlight', obj.actual, true);
      }
      getLightValue();
      

      Kann mir jemand weiterhelfen?

      Vielen Dank vorab.

      Grüße

      Marcel

      AlCalzone 1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer @Z3i last edited by

        @Z3i sagte in Parse JSON in String oder Integer:

        obj.actual

        warum actual? Die Eigenschaft im JSON heißt illuminance.

        1 Reply Last reply Reply Quote 0
        • Z
          Z3i last edited by Z3i

          gute Frage... vielen Dank! Manchmal sieht man den Wald vor lauter Bäumen nicht. Hatte die Zeile aus einem anderen Skript kopiert.

          Nun soll das Skript dauerhaft ausgeführt werden bzw. sobald der Messwert neu geschrieben wurde.
          Dazu würde ich die "on" Methode wählen. Allerdings habe ich diese noch nie verwendet und verstehe die Syntax nicht wirklich. Die Übersetzung von Blockly nach JS hilft mir nicht wirklich.

          Wie müsste das in meinem Fall korrekt aussehen?

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

            @Z3i

            on('mqtt.0.tinkerforge.callback.ambient_light_v3_bricklet.L1w.illuminance', function(dp) { // triggert bei Wertänderung
               let obj = JSON.parse(dp.state.val);
               setState('javascript.0.Ambientlight', obj.illuminance, true);
            });
            
            E Z 2 Replies Last reply Reply Quote 0
            • E
              e-s @paul53 last edited by

              @paul53
              habe ein ähnliches Problem, wie würde das in blockly aussehen?

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

                @paul53 vielen Dank für die schnelle Hilfe 🙂

                die Syntax ist mir nun klar. Wobei bei mir der Teil mit der Funktion noch nicht ganz klar ist. Muss einfach meine JS-Kenntnisse verbessern.

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @e-s last edited by

                  @e-s sagte:

                  wie würde das in blockly aussehen?

                  Blockly_temp.JPG

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  536
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  602
                  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