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.
    • 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
                                  • mickym
                                    mickym Most Active @MiSchu 0 last edited by mickym

                                    @mischu-0

                                    Probier das mal so.

                                    <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="true"></mutation>
                                       <field name="WITH_STATEMENT">TRUE</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>
                                       <statement name="STATEMENT">
                                         <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>
                                         </block>
                                       </statement>
                                       <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>
                                    </xml>
                                    

                                    42701c24-c4f7-4983-9143-01a286a84609-image.png

                                    @mickym

                                    20240421 ändert sich aber für jeden Tag

                                    Ja deswegen wird nur die JSONATA Lösung funktionieren - also kannst das mit dem Attribut löschen. Das dient nur mal der Veranschaulichung.

                                    Mach vielleicht noch ein debug für das result rein

                                    b9116da5-8d7d-4d2f-a508-784613002d33-image.png

                                    damit man sieht ob der Abruf klappt.

                                    M paul53 2 Replies Last reply Reply Quote 0
                                    • M
                                      MiSchu 0 @mickym last edited by MiSchu 0

                                      @mickym
                                      hinbekommen

                                      Screenshot 2024-04-22 002342.png

                                      VIELEN DANK

                                      ich muss jetzt erstmal ins Bett

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

                                        @mischu-0 Ja das Objekt kannst auch außerhalb der Klammer verwenden und dann das Array wegschreiben, oder was Du sonst damit machen willst.

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

                                          @mischu-0 sagte in Daten aus XML URL auslesen und verwenden:

                                          ich muss jetzt erstmal ins Bett

                                          Dann gute Nacht. Du findest sicher eine Menge Helfer - ich bin wie gesagt, kein Freund der Puzzleteile.

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

                                            Also den Wert habe ich jetzt ja. Verwenden innerhalb des Blocklys ist nun kein Problem.

                                            Aber kann ich diesen Wert nun auch in ein iobrocker - objekt senden, so das ich ihn in anderen Skripten verwenden kann ?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            931
                                            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