Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JSON parse - ich schaffe es nicht...

    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 parse - ich schaffe es nicht...

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

      Hallo, mit blockly schaffe ich viel, aber JS is zu schwierig...

      JSON ausgabe ist

      {"event":"onBatteryLevelChanged","deviceId":"1835eb40-ad9325d5","level":100}
      

      Ich habe mehrere Versuchen gemacht und mich viele Lösungen angeschaut, aber ich kriege es nicht hin den wert level raus zu kriegen.

      Script funktioniert nicht...

      on({id: 'mqtt.0.fully.event.onBatteryLevelChanged.1835eb40-ad9325d5', change: "any"}, function (obj) {
      try {obj = JSON.parse(getState('mqtt.0.fully.event.onBatteryLevelChanged.1835eb40-ad9325d5').val);
         } catch (e) {
                 console.error('Cannot parse: ' + getState('mqtt.0.fully.event.onBatteryLevelChanged.1835eb40-ad9325d5').val);
                 return;
          }
          setState('mqtt.0.fully.event.onBatteryLevelChanged.Battery_%', obj.level);
          console.log(obj.level);
      });
      

      Wer versteht was ich falsch mache?
      Erwin

      UncleSam 1 Reply Last reply Reply Quote 0
      • UncleSam
        UncleSam Developer @erwinberlin last edited by

        @erwinberlin

        Erstens würde ich direkt das obj verwenden, das deiner Funktion übergeben wird (nicht nochmals ein getState() machen).

        Zweitens, kannst du mal ein deiner function (obj) { als erstes ein log(obj.val); machen und schauen, was da im Log ausgegeben wird? Ist es wirklich ein JSON oder sieht es anders aus?

        E paul53 2 Replies Last reply Reply Quote 0
        • E
          erwinberlin @UncleSam last edited by

          @UncleSam Jetzt brauche ich schon Unterstutzung... Ich kriege schon deinen Vorschlag nicht hin

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

            @UncleSam sagte:

            als erstes ein log(obj.val); machen

            log(obj.state.val);
            
            UncleSam 1 Reply Last reply Reply Quote 0
            • UncleSam
              UncleSam Developer @paul53 last edited by

              @paul53 sagte in JSON parse - ich schaffe es nicht...:

              @UncleSam sagte:

              als erstes ein log(obj.val); machen

              log(obj.state.val);
              

              Sorry, ja richtig. Mein Fehler.

              E 1 Reply Last reply Reply Quote 0
              • E
                erwinberlin @UncleSam last edited by

                @UncleSam
                Super, erledigt

                var Read = 'mqtt.0.fully.event.onBatteryLevelChanged.1835eb40-ad9325d5'
                var Write = 'javascript.0.Nexus7.Battery%'
                on({id: Read, change: "any"}, function (obj) {
                try {obj = JSON.parse(getState(Read).val);
                   } catch (e) {
                           console.error('Cannot parse: ' + getState(Read).val);
                           return;
                    }
                    setState(Write, obj.level);
                    log(obj.level);
                });
                
                UncleSam 1 Reply Last reply Reply Quote 0
                • UncleSam
                  UncleSam Developer @erwinberlin last edited by UncleSam

                  @erwinberlin sagte in JSON parse - ich schaffe es nicht...:

                  getState(Read)

                  ... kannst du noch ersetzen mit obj.state ersetzen, damit wird der Code noch einfacher. Wie gesagt wird in obj bereits der gesamte State mitgeliefert.

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  854
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  javascript
                  3
                  7
                  537
                  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