Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Daten aus XML URL auslesen und verwenden

    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

    Daten aus XML URL auslesen und verwenden

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

      Mir Blockly nicht, aber mit Node-Red gibts eine XML Node.

      1 Reply Last reply Reply Quote 0
      • M
        MiSchu 0 @Codierknecht last edited by

        @codierknecht Diese Solarprognosen API basiert auf HTTP-Anfragen. Die Antworten erfolgen in JSON (JavaScript Object Notation) oder XML.

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @MiSchu 0 last edited by

          @mischu-0 Na mit JSON - kannst Du doch direkt im Blockly arbeiten.

          M 1 Reply Last reply Reply Quote 0
          • M
            MiSchu 0 @mickym last edited by

            @mickym said in Daten aus XML URL auslesen und verwenden:

            @mischu-0 Na mit JSON - kannst Du doch direkt im Blockly arbeiten.

            Ja, nur wie ?

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @MiSchu 0 last edited by mickym

              @mischu-0 Du hast doch die Konvertierung von JSON String in ein Objekt - wobei ich glaube, dass man sogar implizit eine Objektkonvertierung vorgenommen wird.

              Über die Attribute kannst Du doch auf die Eigenschaften des Objektes zugreifen

              25c502ba-de10-46ec-8928-c23594debfd3-image.png

              Dann kopiere halt mal das GESAMTE JSON-Objekt in code-tags hier rein.

              Code-Tags.gif

              Objekte und JSON sind IMMER einer XML Ausgabe vorzuziehen.

              Das Ganze ist wahrscheinlich ein 2 fach verschachteltes Array. Sprich über das Attribut data bekommst Du das übergeordnete Array raus und durch das iterierst Du einfach nochmal.

              Codierknecht 1 Reply Last reply Reply Quote 2
              • Codierknecht
                Codierknecht Developer Most Active @mickym last edited by

                @mickym
                Das XML da sieht jedenfalls ziemlich schräg aus.
                Mehrfach verschachtelte arrays mit identischen Tags.
                Mag zwar wohlgeformt sein, sieht aber seltsam aus.
                Da ist man auf Gedeih und Verderb darauf angewiesen, dass die Daten immer auf dem gleichen Index liegen.

                @MiSchu-0
                Das JSON sieht hoffentlich besser aus. Können wir aber erst sagen, wenn wir es sehen 😉

                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @Codierknecht last edited by mickym

                  @codierknecht Na ich gehe von sowas aus:

                  {"data":[[20240421,74.515],[20240422,69.46]]}
                  

                  Ist halt schade - dass der Response bzw. die Bestätigug immer so lange dauert - ich werde mal das annehmen.

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    MiSchu 0 @mickym last edited by

                    @mickym ja, also ab jetzt verstehe ich nur noch Bahnhof. Ich bin erst seit einigen Tagen dabei.

                    Codierknecht mickym 2 Replies Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @MiSchu 0 last edited by

                      @mischu-0
                      Dann fangen wir doch mal ganz langsam an.

                      Poste mal hier das JSON was da rauskommt.

                      1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @MiSchu 0 last edited by

                        @mischu-0 Na Du brauchst nur den JSON den Du rausbekommst hier mal in code-Tags einstellen. Dann stellen wir dir ein paar Puzzleteile zusammen.

                        Schau wenn der JSON so ähnlich aussieht, wie eben von mir gepostet:

                        Dann bekommst Du so alle Werte raus.

                        4599563f-2e8d-499b-a674-74295219f00e-image.png

                        Du kannst aber auch auf das 1. und 2. Element direkt über das Listenpuuzleteil zugreifen.

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @mickym last edited by

                          @mickym Wenn das ganze in ein Objekt response eingebettet ist, dann greifst Du über das Attribut "response.data" auf das Objekt/Array zu. Aber kopiere einfach die Ausgabe Deiner HTTP Ausgabe als JSON hier in Codetags rein.

                          M 1 Reply Last reply Reply Quote 0
                          • M
                            MiSchu 0 @mickym last edited by MiSchu 0

                            Ich konnte zumindest den einen Tag rausfiltern den ich benötige.
                            Ich benötige den Wert: 74.515

                            Screenshot 2024-04-21 233602.png

                            Codierknecht mickym 2 Replies Last reply Reply Quote 0
                            • Codierknecht
                              Codierknecht Developer Most Active @MiSchu 0 last edited by

                              @mischu-0
                              Mit 'nem Bildchen können wir wenig anfangen.

                              Wie @mickym schon schrieb: In Code-Tags einbetten.

                              6906f15e-0b05-43d3-9a33-39098379b2f0-grafik.png

                              1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @MiSchu 0 last edited by mickym

                                @mischu-0 Sehr gut. Und nun markiere das Ganze - kopiere es mit Strg+C in die Zwischenablage und dann hier in Codetags wie hier beschrieben mit Strg+V rein.

                                Code-Tags.gif

                                Achte darauf dass die 3 Hochkommas in der ersten und letzten Zeile erhalten bleiben.
                                Dann können wir das rauskopieren und selbst verwenden:

                                Ich befürchte aber wir werden JSONATA verwenden. 🙄 aber ich zeigs Dir wenn Du das hier reinkopiert hast.

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  MiSchu 0 @mickym last edited by MiSchu 0

                                  {
                                      "preferredNextApiRequestAt": {
                                          "secondOfHour": 794,
                                          "epochTimeUtc": 1713737594
                                      },
                                      "status": 0,
                                      "iLastPredictionGenerationEpochTime": 1713735201,
                                      "weather_source_text": "<a target=\"_blank\" href=\"https://www.dwd.de/DE/service/copyright/copyright_node.html\"><img src=\"https://www.solarprognose.de/web/img/dwd_logo_258x69.png\"></a>",
                                      "datalinename": "Germany > Ohlenbüttel",
                                      "data": {
                                          "20240421": 74.515
                                      }
                                  }
                                  
                                  mickym 1 Reply Last reply Reply Quote 1
                                  • mickym
                                    mickym Most Active @MiSchu 0 last edited by mickym

                                    Super ja so funktioniert es!!! 👍 👍 👍

                                    1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active last edited by mickym

                                      Sehr gut. Ich habe nicht den neuesten Javascript Adapter drauf - der kann mehr Objektbearbeitung.

                                      5bf3cb7f-167e-469a-91fb-930369a4edd0-image.png

                                      Aber hier mal eine JSONATA Lösung. Wenn es mehrere Werte sind, bekommst Du ein Array/Liste.
                                      Wenn Dir die Eigenschaft bekannt ist, kannst Du wie eins weiter unten auch über das Attribut auf den Wert zugreifen.

                                      Hier das Blockly zum Import:

                                      <xml xmlns="https://developers.google.com/blockly/xml">
                                       <variables>
                                         <variable id="Zz(+DtU$uPpEY:Mgo{C~">input</variable>
                                         <variable id="8=$*!H(xy1^`AZEQeNE~">Objekt</variable>
                                       </variables>
                                       <block type="variables_set" id="i@E%AUGXpX;`=JuQumE*" x="-1037" y="-512">
                                         <field name="VAR" id="Zz(+DtU$uPpEY:Mgo{C~">input</field>
                                         <value name="VALUE">
                                           <block type="text" id="}PEXHXxBDJcv/OF#=4|3">
                                             <field name="TEXT">{     "preferredNextApiRequestAt": {         "secondOfHour": 794,         "epochTimeUtc": 1713737594     },     "status": 0,     "iLastPredictionGenerationEpochTime": 1713735201,     "weather_source_text": "&lt;a target=\"_blank\" href=\"https://www.dwd.de/DE/service/copyright/copyright_node.html\"&gt;&lt;img src=\"https://www.solarprognose.de/web/img/dwd_logo_258x69.png\"&gt;&lt;/a&gt;",     "datalinename": "Germany &gt; Ohlenbüttel",     "data": {         "20240421": 74.515     } }</field>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="variables_set" id="765/wUu!s58uh0I_gH(-">
                                             <field name="VAR" id="8=$*!H(xy1^`AZEQeNE~">Objekt</field>
                                             <value name="VALUE">
                                               <block type="get_attr" id="Qr)T/h2jra_zYko_$T{=">
                                                 <value name="PATH">
                                                   <shadow type="text" id="U!ym|5$}*dIpoTyCS^H@">
                                                     <field name="TEXT">data</field>
                                                   </shadow>
                                                 </value>
                                                 <value name="OBJECT">
                                                   <block type="variables_get" id="i,D8WS38zv_n#y`DuZyQ">
                                                     <field name="VAR" id="Zz(+DtU$uPpEY:Mgo{C~">input</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="debug" id="h36.2[I}R`=v`,|uz~%_">
                                                 <field name="Severity">log</field>
                                                 <value name="TEXT">
                                                   <shadow type="text" id="V-n!Em:i+u+~7EZl#o:p">
                                                     <field name="TEXT">test</field>
                                                   </shadow>
                                                   <block type="variables_get" id="z1fV)iBgJq7n!Hfk;;D6">
                                                     <field name="VAR" id="8=$*!H(xy1^`AZEQeNE~">Objekt</field>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="debug" id="UGFUJqPd{S+@hd9xcfS%">
                                                     <field name="Severity">log</field>
                                                     <value name="TEXT">
                                                       <shadow type="text" id="XJi1WK{gHhP=Yv#Wi=?3">
                                                         <field name="TEXT">test</field>
                                                       </shadow>
                                                       <block type="convert_jsonata" id="$,zuxsq(^[:9@-cHs(8g">
                                                         <value name="EXPRESSION">
                                                           <shadow type="text" id="1zurDIuQyI-K,qys$w0Z">
                                                             <field name="TEXT">$.*</field>
                                                           </shadow>
                                                         </value>
                                                         <value name="TARGET">
                                                           <block type="variables_get" id="})8i.I6Q#G`[n`vS?0;t">
                                                             <field name="VAR" id="8=$*!H(xy1^`AZEQeNE~">Objekt</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="debug" id=",svsp;khW{!T$+BV*(c}">
                                                         <field name="Severity">log</field>
                                                         <value name="TEXT">
                                                           <shadow type="text" id=")9%NhZ9}C(]{SsWQp~OE">
                                                             <field name="TEXT">test</field>
                                                           </shadow>
                                                           <block type="get_attr" id="xHiM0scKFVv[.SafIhs#">
                                                             <value name="PATH">
                                                               <shadow type="text" id="{N1rfGmojLyWd?m,kK9|">
                                                                 <field name="TEXT">20240421</field>
                                                               </shadow>
                                                             </value>
                                                             <value name="OBJECT">
                                                               <block type="variables_get" id="-huXr#6}lL6HM@]yP%yb">
                                                                 <field name="VAR" id="8=$*!H(xy1^`AZEQeNE~">Objekt</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                      </xml>
                                      

                                      M 1 Reply Last reply Reply Quote 1
                                      • M
                                        MiSchu 0 @mickym last edited by

                                        @mickym OK, wie füge ich jetzt die url ein, bzw frag die ab

                                        mickym 1 Reply Last reply Reply Quote 0
                                        • mickym
                                          mickym Most Active @MiSchu 0 last edited by mickym

                                          @mischu-0 Na mit dem request Puzzleteil

                                          Ich glaube man muss eine Variable result erstellen.

                                          Probiere es mal so:

                                          9944decb-05cc-4b60-b41f-aecfb1af1a30-image.png

                                          <xml xmlns="https://developers.google.com/blockly/xml">
                                           <variables>
                                             <variable id="8=$*!H(xy1^`AZEQeNE~">Objekt</variable>
                                             <variable id="Zz(+DtU$uPpEY:Mgo{C~">result</variable>
                                           </variables>
                                           <block type="request" id="uHm%I5YOd^y41[[D6p:y" x="-987" y="-512">
                                             <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                                             <field name="WITH_STATEMENT">FALSE</field>
                                             <field name="LOG"></field>
                                             <value name="URL">
                                               <shadow type="text" id="b%X0a{d#6T?*GNP;Nqg6">
                                                 <field name="TEXT">http://</field>
                                               </shadow>
                                             </value>
                                             <next>
                                               <block type="variables_set" id="765/wUu!s58uh0I_gH(-">
                                                 <field name="VAR" id="8=$*!H(xy1^`AZEQeNE~">Objekt</field>
                                                 <value name="VALUE">
                                                   <block type="get_attr" id="Qr)T/h2jra_zYko_$T{=">
                                                     <value name="PATH">
                                                       <shadow type="text" id="U!ym|5$}*dIpoTyCS^H@">
                                                         <field name="TEXT">data</field>
                                                       </shadow>
                                                     </value>
                                                     <value name="OBJECT">
                                                       <block type="variables_get" id="i,D8WS38zv_n#y`DuZyQ">
                                                         <field name="VAR" id="Zz(+DtU$uPpEY:Mgo{C~">result</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="debug" id="h36.2[I}R`=v`,|uz~%_">
                                                     <field name="Severity">log</field>
                                                     <value name="TEXT">
                                                       <shadow type="text" id="V-n!Em:i+u+~7EZl#o:p">
                                                         <field name="TEXT">test</field>
                                                       </shadow>
                                                       <block type="variables_get" id="z1fV)iBgJq7n!Hfk;;D6">
                                                         <field name="VAR" id="8=$*!H(xy1^`AZEQeNE~">Objekt</field>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="debug" id="UGFUJqPd{S+@hd9xcfS%">
                                                         <field name="Severity">log</field>
                                                         <value name="TEXT">
                                                           <shadow type="text" id="XJi1WK{gHhP=Yv#Wi=?3">
                                                             <field name="TEXT">test</field>
                                                           </shadow>
                                                           <block type="convert_jsonata" id="$,zuxsq(^[:9@-cHs(8g">
                                                             <value name="EXPRESSION">
                                                               <shadow type="text" id="1zurDIuQyI-K,qys$w0Z">
                                                                 <field name="TEXT">$.*</field>
                                                               </shadow>
                                                             </value>
                                                             <value name="TARGET">
                                                               <block type="variables_get" id="})8i.I6Q#G`[n`vS?0;t">
                                                                 <field name="VAR" id="8=$*!H(xy1^`AZEQeNE~">Objekt</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="debug" id=",svsp;khW{!T$+BV*(c}">
                                                             <field name="Severity">log</field>
                                                             <value name="TEXT">
                                                               <shadow type="text" id=")9%NhZ9}C(]{SsWQp~OE">
                                                                 <field name="TEXT">test</field>
                                                               </shadow>
                                                               <block type="get_attr" id="xHiM0scKFVv[.SafIhs#">
                                                                 <value name="PATH">
                                                                   <shadow type="text" id="{N1rfGmojLyWd?m,kK9|">
                                                                     <field name="TEXT">20240421</field>
                                                                   </shadow>
                                                                 </value>
                                                                 <value name="OBJECT">
                                                                   <block type="variables_get" id="-huXr#6}lL6HM@]yP%yb">
                                                                     <field name="VAR" id="8=$*!H(xy1^`AZEQeNE~">Objekt</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                          </xml>
                                          

                                          Ggf. mach nochmal eine debug Ausgabe der result Variable und schau ob der JSON da rauskommt. Die URL musst halt noch eintragen

                                          M 1 Reply Last reply Reply Quote 1
                                          • M
                                            MiSchu 0 @mickym last edited by

                                            @mickym
                                            20240421 ändert sich aber für jeden Tag

                                            8dc32997-afdb-407d-a097-8c4cafa61712-image.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            796
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            30
                                            1097
                                            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