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 mit Punkt im Objektnamen

    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 mit Punkt im Objektnamen

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

      Hallo,

      ich bekomme folgenden JSON String per mqtt und möchte ihn zerlegen und in einzelne Objekte speichern:

      {
        "sn": 2110125088,
        "time": 1695387075,
        "values": {
          "A.Ms.Amp": 1.336000063456595,
          "A.Ms.Vol": 577.3799870945513,
          "A.Ms.Watt": 771,
          "B.Ms.Amp": 1.3320000632666051,
          "B.Ms.Vol": 602.2899865377694,
          "B.Ms.Watt": 802,
          "Pac": 1522,
          "GridMs.Hz": 49.98999888263643,
          "GridMs.PhV.phsA": 232.07999481260777,
          "GridMs.PhV.phsB": 231.80999481864274,
          "GridMs.PhV.phsC": 231.0199948363006,
          "A1.Ms.Amp": 1.305000061984174,
          "A2.Ms.Amp": 0.003000000142492354,
          "A3.Ms.Amp": 0.014000000664964318,
          "A4.Ms.Amp": 0.0020000000949949026,
          "A5.Ms.Amp": 0.003000000142492354,
          "B1.Ms.Amp": 1.3320000632666051,
          "GridMs.TotPFPrc": 0.999000047449954,
          "E-Total": 128826.8301189458,
          "Mt.TotOpTmh": 50391.78116688694,
          "Mt.TotTmh": 51677.7808933951,
          "Op.TmsRmg": 0,
          "Serial Number": 2110125088,
          "Op.EvtCntUsr": 4686,
          "Op.EvtNo": 0,
          "Mode": "MPP",
          "Error": "-------",
          "Op.GriSwStt": "Cls",
          "Inv.TmpLimStt": "NoneDrt",
          "InvCtl.Stt": "On",
          "PlntCtl.Stt": "On"
        }
      }
      

      wie bekomme ich das mit den Punkten im Objektnamen hin?
      so funktioniert es auf jeden Fall nicht:

      on({id: [].concat([Source]), change: "ne"}, async function (obj) {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        setState(A_Ms_Amp, getAttr((obj.state ? obj.state.val : ""), 'values.A.Ms.Amp'), true);
      });
      

      Gruß,
      Stefan

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

        @duffy82 sagte: Punkten im Objektnamen

        In dem Fall muss man eine andere Schreibwiese verwenden.

        on(Source, function (obj) {
         setState(A_Ms_Amp, JSON.parse(obj.state.val).values['A.Ms.Amp'], true);
        });
        

        getAttr() verwendet man nur in Blockly.

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

          @paul53
          ich bekomme folgende Fehlermeldung:

          error	javascript.0 (6597) at Object.<anonymous> (script.js.test:11:41)
          

          hier mein komplettes Script:

          const Serial = 2110125088
          const Source = 'mqtt.1.solar.inverter.' + Serial;
          const Dest = '0_userdata.0.Inverter.' + Serial;
          
          const A_Ms_Amp = Dest + '.A_Ms_Amp';
          
          // Datenpunkte erzeugen
          createState(A_Ms_Amp, 0, {type: 'number', unit: 'A'});
          
          on(Source, function (obj) {
           setState(A_Ms_Amp, obj.state.val.values['A.Ms.Amp'], true);
          });
          
          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Duffy82 last edited by paul53

            @duffy82 sagte: hier mein komplettes Script:

            Sorry, ich hatte noch JSON.parse() ergänzt.

            setState(A_Ms_Amp, JSON.parse(obj.state.val).values['A.Ms.Amp'], true);
            
            Duffy82 1 Reply Last reply Reply Quote 0
            • Duffy82
              Duffy82 @paul53 last edited by

              @paul53
              Perfekt!!
              jetzt läufts.

              Danke vielmals!

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

              Support us

              ioBroker
              Community Adapters
              Donate

              915
              Online

              31.8k
              Users

              80.0k
              Topics

              1.3m
              Posts

              2
              5
              237
              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