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. Blockly
  5. Array in einer json Abfrage auslesen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Array in einer json Abfrage auslesen

Geplant Angeheftet Gesperrt Verschoben Blockly
8 Beiträge 3 Kommentatoren 437 Aufrufe 3 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.
  • H Offline
    H Offline
    HackyPaddy
    schrieb am zuletzt editiert von
    #1

    Hallo Leute,

    ich stehe vor einer kniffligen Aufgabe und brauche mal eure Hilfe.
    Per HTTP Get hole ich mir Daten. Diese kommen als json rein und sehen wie folgt aus:

    "data": {
        "1535": {
          "2025-03-26 03:00:00": [
            "2025-03-26 04:00:00",
            1, 0, [3, 66, 1, "1.085"
            ],
            [5, 2, 0, "0.1"
            ],
            [1, 20, 0, "1"
            ],
            [9, 14, 1, "1.333"
            ]
          ]
        }
      },
    

    Data bleibt immer gleich, ebenfalls die 1535. Der Zeitstempel ist dynamisch. Ich muss jetzt an die Daten in den eckigen Klammern, also an die Arrays. Dort interessieren mich nur die ersten beiden Zahlen, z.B.

    3 und 66
    5 und 2
    1 und 20
    usw.

    Wie kann ich dieses nun mit Blockly auslesen und die Daten verarbeiten?

    Ich habe das bei anderen json abfragen mit dem Baustein "Attribut von Objekt" gelöst. Aber dort waren nie Arrays drin und ich verzweifle gerade...

    Wäre toll, wenn einer nen Tipp hat. Danke :)

    mickymM 1 Antwort Letzte Antwort
    0
    • H HackyPaddy

      Hallo Leute,

      ich stehe vor einer kniffligen Aufgabe und brauche mal eure Hilfe.
      Per HTTP Get hole ich mir Daten. Diese kommen als json rein und sehen wie folgt aus:

      "data": {
          "1535": {
            "2025-03-26 03:00:00": [
              "2025-03-26 04:00:00",
              1, 0, [3, 66, 1, "1.085"
              ],
              [5, 2, 0, "0.1"
              ],
              [1, 20, 0, "1"
              ],
              [9, 14, 1, "1.333"
              ]
            ]
          }
        },
      

      Data bleibt immer gleich, ebenfalls die 1535. Der Zeitstempel ist dynamisch. Ich muss jetzt an die Daten in den eckigen Klammern, also an die Arrays. Dort interessieren mich nur die ersten beiden Zahlen, z.B.

      3 und 66
      5 und 2
      1 und 20
      usw.

      Wie kann ich dieses nun mit Blockly auslesen und die Daten verarbeiten?

      Ich habe das bei anderen json abfragen mit dem Baustein "Attribut von Objekt" gelöst. Aber dort waren nie Arrays drin und ich verzweifle gerade...

      Wäre toll, wenn einer nen Tipp hat. Danke :)

      mickymM Offline
      mickymM Offline
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #2

      Hier ein Vorschlag:

      e913c2bd-b0da-4144-8575-a72de6c8581a-image.png

      und der Import:

      <xml xmlns="https://developers.google.com/blockly/xml">
       <variables>
         <variable id="8+=Mk?BD}YCcGl~4E)j|">Objekt</variable>
         <variable id="FH.y1ywrl*?fn[mlj9`.">Liste</variable>
         <variable id="BFz8MVSjE,Wj8D#-d?^7">Paar</variable>
         <variable id=",Q,6hciy3?Rk1(p,}{z,">Wert</variable>
       </variables>
       <block type="variables_set" id="8TUEPFER^60tpZeXyo6g" x="-137" y="63">
         <field name="VAR" id="8+=Mk?BD}YCcGl~4E)j|">Objekt</field>
         <value name="VALUE">
           <block type="convert_json2object" id="I#fP01}u(y@zi]+ky=U#">
             <value name="VALUE">
               <block type="text" id="FPjE:co!sqd}=j?;!5o/">
                 <field name="TEXT">{   "data": {     "1535": {       "2025-03-26 03:00:00": [         "2025-03-26 04:00:00",         1,         0,         [           3,           66,           1,           "1.085"         ],         [           5,           2,           0,           "0.1"         ],         [           1,           20,           0,           "1"         ],         [           9,           14,           1,           "1.333"         ]       ]     }   } }</field>
               </block>
             </value>
           </block>
         </value>
         <next>
           <block type="debug" id="R:3IdXPc-Ye6*0flWePD">
             <field name="Severity">info</field>
             <value name="TEXT">
               <shadow type="text" id="BKx/`I0xv2,QV6c:jxKa">
                 <field name="TEXT">test</field>
               </shadow>
               <block type="variables_get" id="PpY08lt65(HhfilRUlil">
                 <field name="VAR" id="8+=Mk?BD}YCcGl~4E)j|">Objekt</field>
               </block>
             </value>
             <next>
               <block type="variables_set" id="3-rN0Eh.S3/f*WXm=!z:">
                 <field name="VAR" id="FH.y1ywrl*?fn[mlj9`.">Liste</field>
                 <value name="VALUE">
                   <block type="convert_jsonata" id="u}[_Z`KWHAeHkdE@@V?=">
                     <value name="EXPRESSION">
                       <shadow type="text" id="eg-6.rV=oGTM`RArquVg">
                         <field name="TEXT">($lookup($$.data."1535",($keys(data."1535")[0]))~&gt;$filter( function($v){$type($v)="array"} )).[$[0],$[1]]</field>
                       </shadow>
                     </value>
                     <value name="TARGET">
                       <block type="variables_get" id="n+aI}jp_T]nxZ439rGaK">
                         <field name="VAR" id="8+=Mk?BD}YCcGl~4E)j|">Objekt</field>
                       </block>
                     </value>
                   </block>
                 </value>
                 <next>
                   <block type="variables_set" id="=4,tkXz3EMg[P@3IqT3c">
                     <field name="VAR" id="FH.y1ywrl*?fn[mlj9`.">Liste</field>
                     <value name="VALUE">
                       <block type="lists_getSublist" id="e3D%iCM?~c%RZwkX;=hi">
                         <mutation at1="false" at2="false"></mutation>
                         <field name="WHERE1">FIRST</field>
                         <field name="WHERE2">LAST</field>
                         <value name="LIST">
                           <block type="variables_get" id="aK{CqcEp-hfht9Y1zaoH">
                             <field name="VAR" id="FH.y1ywrl*?fn[mlj9`.">Liste</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <next>
                       <block type="controls_forEach" id="BX*IoHS{tC(S+xy8Od8t">
                         <field name="VAR" id="BFz8MVSjE,Wj8D#-d?^7">Paar</field>
                         <value name="LIST">
                           <block type="variables_get" id="-q+Kxi.wpBhtGy-d$pP$">
                             <field name="VAR" id="FH.y1ywrl*?fn[mlj9`.">Liste</field>
                           </block>
                         </value>
                         <statement name="DO">
                           <block type="controls_forEach" id="f`4c[@IR8t2/O1s6zc`r">
                             <field name="VAR" id=",Q,6hciy3?Rk1(p,}{z,">Wert</field>
                             <value name="LIST">
                               <block type="variables_get" id="7;}F,K/;I9U:PZW@7Lj:">
                                 <field name="VAR" id="BFz8MVSjE,Wj8D#-d?^7">Paar</field>
                               </block>
                             </value>
                             <statement name="DO">
                               <block type="debug" id="Z})42^-;u@A1^)//YL9Z">
                                 <field name="Severity">info</field>
                                 <value name="TEXT">
                                   <shadow type="text" id="oug97Em#uz.p]6vX2qtm">
                                     <field name="TEXT">test</field>
                                   </shadow>
                                   <block type="variables_get" id="{5(0qe=W?^oW_L*0J0g7">
                                     <field name="VAR" id=",Q,6hciy3?Rk1(p,}{z,">Wert</field>
                                   </block>
                                 </value>
                               </block>
                             </statement>
                           </block>
                         </statement>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
             </next>
           </block>
         </next>
       </block>
      </xml>
      

      Der JSONATA Code lautet wie folgt:

      ($lookup($$.data."1535",($keys(data."1535")[0]))~>$filter( function($v){$type($v)="array"} )).[$[0],$[1]]
      

      Zum Testen des JSONATA Ausdrucks siehe hier: https://try.jsonata.org/gSFY5sodQ

      b9e958ba-e9cf-4d0c-bada-63f4d0dcac2b-image.png

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      H 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        Hier ein Vorschlag:

        e913c2bd-b0da-4144-8575-a72de6c8581a-image.png

        und der Import:

        <xml xmlns="https://developers.google.com/blockly/xml">
         <variables>
           <variable id="8+=Mk?BD}YCcGl~4E)j|">Objekt</variable>
           <variable id="FH.y1ywrl*?fn[mlj9`.">Liste</variable>
           <variable id="BFz8MVSjE,Wj8D#-d?^7">Paar</variable>
           <variable id=",Q,6hciy3?Rk1(p,}{z,">Wert</variable>
         </variables>
         <block type="variables_set" id="8TUEPFER^60tpZeXyo6g" x="-137" y="63">
           <field name="VAR" id="8+=Mk?BD}YCcGl~4E)j|">Objekt</field>
           <value name="VALUE">
             <block type="convert_json2object" id="I#fP01}u(y@zi]+ky=U#">
               <value name="VALUE">
                 <block type="text" id="FPjE:co!sqd}=j?;!5o/">
                   <field name="TEXT">{   "data": {     "1535": {       "2025-03-26 03:00:00": [         "2025-03-26 04:00:00",         1,         0,         [           3,           66,           1,           "1.085"         ],         [           5,           2,           0,           "0.1"         ],         [           1,           20,           0,           "1"         ],         [           9,           14,           1,           "1.333"         ]       ]     }   } }</field>
                 </block>
               </value>
             </block>
           </value>
           <next>
             <block type="debug" id="R:3IdXPc-Ye6*0flWePD">
               <field name="Severity">info</field>
               <value name="TEXT">
                 <shadow type="text" id="BKx/`I0xv2,QV6c:jxKa">
                   <field name="TEXT">test</field>
                 </shadow>
                 <block type="variables_get" id="PpY08lt65(HhfilRUlil">
                   <field name="VAR" id="8+=Mk?BD}YCcGl~4E)j|">Objekt</field>
                 </block>
               </value>
               <next>
                 <block type="variables_set" id="3-rN0Eh.S3/f*WXm=!z:">
                   <field name="VAR" id="FH.y1ywrl*?fn[mlj9`.">Liste</field>
                   <value name="VALUE">
                     <block type="convert_jsonata" id="u}[_Z`KWHAeHkdE@@V?=">
                       <value name="EXPRESSION">
                         <shadow type="text" id="eg-6.rV=oGTM`RArquVg">
                           <field name="TEXT">($lookup($$.data."1535",($keys(data."1535")[0]))~&gt;$filter( function($v){$type($v)="array"} )).[$[0],$[1]]</field>
                         </shadow>
                       </value>
                       <value name="TARGET">
                         <block type="variables_get" id="n+aI}jp_T]nxZ439rGaK">
                           <field name="VAR" id="8+=Mk?BD}YCcGl~4E)j|">Objekt</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <next>
                     <block type="variables_set" id="=4,tkXz3EMg[P@3IqT3c">
                       <field name="VAR" id="FH.y1ywrl*?fn[mlj9`.">Liste</field>
                       <value name="VALUE">
                         <block type="lists_getSublist" id="e3D%iCM?~c%RZwkX;=hi">
                           <mutation at1="false" at2="false"></mutation>
                           <field name="WHERE1">FIRST</field>
                           <field name="WHERE2">LAST</field>
                           <value name="LIST">
                             <block type="variables_get" id="aK{CqcEp-hfht9Y1zaoH">
                               <field name="VAR" id="FH.y1ywrl*?fn[mlj9`.">Liste</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <next>
                         <block type="controls_forEach" id="BX*IoHS{tC(S+xy8Od8t">
                           <field name="VAR" id="BFz8MVSjE,Wj8D#-d?^7">Paar</field>
                           <value name="LIST">
                             <block type="variables_get" id="-q+Kxi.wpBhtGy-d$pP$">
                               <field name="VAR" id="FH.y1ywrl*?fn[mlj9`.">Liste</field>
                             </block>
                           </value>
                           <statement name="DO">
                             <block type="controls_forEach" id="f`4c[@IR8t2/O1s6zc`r">
                               <field name="VAR" id=",Q,6hciy3?Rk1(p,}{z,">Wert</field>
                               <value name="LIST">
                                 <block type="variables_get" id="7;}F,K/;I9U:PZW@7Lj:">
                                   <field name="VAR" id="BFz8MVSjE,Wj8D#-d?^7">Paar</field>
                                 </block>
                               </value>
                               <statement name="DO">
                                 <block type="debug" id="Z})42^-;u@A1^)//YL9Z">
                                   <field name="Severity">info</field>
                                   <value name="TEXT">
                                     <shadow type="text" id="oug97Em#uz.p]6vX2qtm">
                                       <field name="TEXT">test</field>
                                     </shadow>
                                     <block type="variables_get" id="{5(0qe=W?^oW_L*0J0g7">
                                       <field name="VAR" id=",Q,6hciy3?Rk1(p,}{z,">Wert</field>
                                     </block>
                                   </value>
                                 </block>
                               </statement>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
           </next>
         </block>
        </xml>
        

        Der JSONATA Code lautet wie folgt:

        ($lookup($$.data."1535",($keys(data."1535")[0]))~>$filter( function($v){$type($v)="array"} )).[$[0],$[1]]
        

        Zum Testen des JSONATA Ausdrucks siehe hier: https://try.jsonata.org/gSFY5sodQ

        b9e958ba-e9cf-4d0c-bada-63f4d0dcac2b-image.png

        H Offline
        H Offline
        HackyPaddy
        schrieb am zuletzt editiert von
        #3

        @mickym Du bist mein Held :)

        Funktioniert prima...
        Die Sache mit JSONATA habe ich bisher noch nie so genau angeschaut, erspart aber ne Menge Blockly und Code.

        Vielen Dank dafür :)

        Rene55R 1 Antwort Letzte Antwort
        0
        • H HackyPaddy

          @mickym Du bist mein Held :)

          Funktioniert prima...
          Die Sache mit JSONATA habe ich bisher noch nie so genau angeschaut, erspart aber ne Menge Blockly und Code.

          Vielen Dank dafür :)

          Rene55R Offline
          Rene55R Offline
          Rene55
          schrieb am zuletzt editiert von
          #4

          @hackypaddy Das JSON sieht so aus, als wären das Daten vom UBA. Hab ich da recht?

          Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
          ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
          Wetterstation: Froggit WH3000SE V1.6.6

          H 1 Antwort Letzte Antwort
          0
          • Rene55R Rene55

            @hackypaddy Das JSON sieht so aus, als wären das Daten vom UBA. Hab ich da recht?

            H Offline
            H Offline
            HackyPaddy
            schrieb am zuletzt editiert von HackyPaddy
            #5

            @rene55 Da hast Du Recht :) Nutzt Du die Daten auch?

            1 Antwort Letzte Antwort
            0
            • Rene55R Offline
              Rene55R Offline
              Rene55
              schrieb am zuletzt editiert von
              #6

              @hackypaddy Ich will dich nicht vom basteln und experimentieren abhalten. Wenn du magst, schau hier: https://forum.iobroker.net/topic/79286/test-adapter-airquality-v0-1-4-github-latest

              Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
              ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
              Wetterstation: Froggit WH3000SE V1.6.6

              H 1 Antwort Letzte Antwort
              0
              • Rene55R Rene55

                @hackypaddy Ich will dich nicht vom basteln und experimentieren abhalten. Wenn du magst, schau hier: https://forum.iobroker.net/topic/79286/test-adapter-airquality-v0-1-4-github-latest

                H Offline
                H Offline
                HackyPaddy
                schrieb am zuletzt editiert von
                #7

                @rene55 Das ist ja das schöne, das basteln und dazulernen :)

                Ich hatte mich bewusst gegen den Adapter entschieden, da dieser die Daten regelmäßig abruft. Ich brauche diese aber nur einmal am Tag, das reicht mir. Zudem verbraucht der Adapter auch wieder Arbeitsspeicher und den wollte ich etwas schonen...

                Rene55R 1 Antwort Letzte Antwort
                0
                • H HackyPaddy

                  @rene55 Das ist ja das schöne, das basteln und dazulernen :)

                  Ich hatte mich bewusst gegen den Adapter entschieden, da dieser die Daten regelmäßig abruft. Ich brauche diese aber nur einmal am Tag, das reicht mir. Zudem verbraucht der Adapter auch wieder Arbeitsspeicher und den wollte ich etwas schonen...

                  Rene55R Offline
                  Rene55R Offline
                  Rene55
                  schrieb am zuletzt editiert von
                  #8

                  @hackypaddy Ja sicher, wie du meinst. War auch nur ein sanfter Hinweis.:relaxed:

                  Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
                  ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
                  Wetterstation: Froggit WH3000SE V1.6.6

                  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

                  494

                  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