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. JavaScript
  5. JSON String mit Punkt im Objektnamen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

JSON String mit Punkt im Objektnamen

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 2 Kommentatoren 251 Aufrufe 1 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.
  • Duffy82D Offline
    Duffy82D Offline
    Duffy82
    schrieb am zuletzt editiert von
    #1

    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

    paul53P 1 Antwort Letzte Antwort
    0
    • Duffy82D Duffy82

      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

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

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

      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

      Duffy82D 1 Antwort Letzte Antwort
      0
      • paul53P 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.

        Duffy82D Offline
        Duffy82D Offline
        Duffy82
        schrieb am zuletzt editiert von
        #3

        @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);
        });
        
        paul53P 1 Antwort Letzte Antwort
        0
        • Duffy82D Duffy82

          @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);
          });
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @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);
          

          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

          Duffy82D 1 Antwort Letzte Antwort
          0
          • paul53P 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);
            
            Duffy82D Offline
            Duffy82D Offline
            Duffy82
            schrieb am zuletzt editiert von
            #5

            @paul53
            Perfekt!!
            jetzt läufts.

            Danke vielmals!

            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

            667

            Online

            32.6k

            Benutzer

            82.2k

            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