Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JSON parse - ich schaffe es nicht...

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.6k

JSON parse - ich schaffe es nicht...

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
7 Beiträge 3 Kommentatoren 935 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • E Offline
    E Offline
    erwinberlin
    schrieb am zuletzt editiert von erwinberlin
    #1

    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

    UncleSamU 1 Antwort Letzte Antwort
    0
    • E 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

      UncleSamU Offline
      UncleSamU Offline
      UncleSam
      Developer
      schrieb am zuletzt editiert von
      #2

      @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?

      Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
      ♡-lichen Dank an meine Sponsoren

      E paul53P 2 Antworten Letzte Antwort
      0
      • UncleSamU UncleSam

        @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 Offline
        E Offline
        erwinberlin
        schrieb am zuletzt editiert von
        #3

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

        1 Antwort Letzte Antwort
        0
        • UncleSamU UncleSam

          @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?

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @UncleSam sagte:

          als erstes ein log(obj.val); machen

          log(obj.state.val);
          

          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

          UncleSamU 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @UncleSam sagte:

            als erstes ein log(obj.val); machen

            log(obj.state.val);
            
            UncleSamU Offline
            UncleSamU Offline
            UncleSam
            Developer
            schrieb am zuletzt editiert von
            #5

            @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.

            Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
            ♡-lichen Dank an meine Sponsoren

            E 1 Antwort Letzte Antwort
            0
            • UncleSamU UncleSam

              @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 Offline
              E Offline
              erwinberlin
              schrieb am zuletzt editiert von
              #6

              @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);
              });
              
              UncleSamU 1 Antwort Letzte Antwort
              0
              • E erwinberlin

                @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);
                });
                
                UncleSamU Offline
                UncleSamU Offline
                UncleSam
                Developer
                schrieb am zuletzt editiert von UncleSam
                #7

                @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.

                Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
                ♡-lichen Dank an meine Sponsoren

                1 Antwort Letzte Antwort
                0
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                610

                Online

                32.7k

                Benutzer

                82.4k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Anmelden

                • Du hast noch kein Konto? Registrieren

                • Anmelden oder registrieren, um zu suchen
                • Erster Beitrag
                  Letzter Beitrag
                0
                • Home
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe