Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. JSON Abfrage per Request liefert nur Matsch

    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 Abfrage per Request liefert nur Matsch

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

      @schrecki Du kannst doch den Code von @OliverIO und als Funktion in Blockly einbinden?

      S 1 Reply Last reply Reply Quote 0
      • S
        schrecki @Homoran last edited by

        @homoran den wenn ich kapieren würde 😂
        Ich befürchte den werd ich nie verstehen...

        1 Reply Last reply Reply Quote 0
        • S
          schrecki @mickym last edited by

          @mickym
          Wenn du mir sagst wie das geht?
          Sorry, da steh ich grad komplett am Schlauch. Ich dachte immer, entweder oder. Javascript oder Blockly, aber beides mischen?

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

            @schrecki Nehmen wir mal an Du willst diesen Code von @OliverIO verwenden:

            try {
                const options = {
                    url: 'https://s3.eu-central-1.amazonaws.com/app-prod-static.warnwetter.de/v16/current_measurement_10791.json',
                    method: "get",
                    gzip: true,
                    headers: {
                        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
                    }
                };
             
                const request = require("request");
                request.get(options, async(error, response, result) => {
                    console.log(response);
                }).on("error", (e) => {
                    console.error(e);
                });
            } catch (e) {
                console.error(e);
            }
            
            

            oder Du nimmst den Code mit der axios Bibliothek - ich nehm mal nur den mit der request Bibliothek.

            Ich glaube zwar - dass das nicht ganz richtig ist, weil ich den konsolen output abfrage, aber es scheint zu funktionieren:

            143a4b92-d932-484a-96ca-8c64bd48870c-image.png

            Du musst halt @OliverIO oder @paul53 fragen, wie man das asynchron einbindet damit Du was im Blockly zurückbekommst. Im Moment ist das nur die Konsolenausgabe der Funktion - aber keine Rückgabe in die response Variable. - Aber ich kenn mich mit Puzzeln nicht so gut aus.

            Hier das Blockly mit dem Code von @OliverIO

            <xml xmlns="https://developers.google.com/blockly/xml">
             <variables>
               <variable id="Drc3,5E3dtsooSRbdv}K">url</variable>
               <variable id="!eY@+?{]SiMQl]U-]_S$">response</variable>
             </variables>
             <block type="procedures_defcustomreturn" id="=Ib|l%wE0-!(2!$i:6GY" x="113" y="38">
               <mutation statements="false">
                 <arg name="url" varid="Drc3,5E3dtsooSRbdv}K"></arg>
               </mutation>
               <field name="NAME">URL mit gzip</field>
               <field name="SCRIPT">bGV0IHJlc3BvbnNlID0gYXdhaXQgbXlyZXF1ZXN0KHVybCk7Cgphc3luYyBmdW5jdGlvbiBteXJlcXVlc3QodXJsKSB7CnRyeSB7CiAgICBjb25zdCBvcHRpb25zID0gewogICAgICAgIHVybDogdXJsLAogICAgICAgIG1ldGhvZDogImdldCIsCiAgICAgICAgZ3ppcDogdHJ1ZSwKICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMTYuMC4wLjAgU2FmYXJpLzUzNy4zNicKICAgICAgICB9CiAgICB9OwogCiAgICBjb25zdCByZXF1ZXN0ID0gcmVxdWlyZSgicmVxdWVzdCIpOwogICAgcmVxdWVzdC5nZXQob3B0aW9ucywgYXN5bmMoZXJyb3IsIHJlc3BvbnNlLCByZXN1bHQpID0+IHsKICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7CiAgICAgICAgCiAgICB9KS5vbigiZXJyb3IiLCAoZSkgPT4gewogICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7CiAgICB9KTsKfSBjYXRjaCAoZSkgewogICAgY29uc29sZS5lcnJvcihlKTsKfQp9CnJldHVybiAwOw==</field>
               <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
             </block>
             <block type="variables_set" id="ugEH}nuaFt2cgP:-pOl#" x="113" y="88">
               <field name="VAR" id="!eY@+?{]SiMQl]U-]_S$">response</field>
               <value name="VALUE">
                 <block type="procedures_callcustomreturn" id="_`5Lbo9XrR+}/[H_K8x^">
                   <mutation name="URL mit gzip">
                     <arg name="url"></arg>
                   </mutation>
                   <value name="ARG0">
                     <block type="text" id="Q/3.^E$8=iXD4`7Q!/Y~">
                       <field name="TEXT">https://s3.eu-central-1.amazonaws.com/app-prod-static.warnwetter.de/v16/current_measurement_10791.json</field>
                     </block>
                   </value>
                 </block>
               </value>
               <next>
                 <block type="debug" id="(*Ckl_s:[HiNpm,cZU%*">
                   <field name="Severity">log</field>
                   <value name="TEXT">
                     <shadow type="text" id="=c/u4J;{z?`e3o6dIvCL">
                       <field name="TEXT">test</field>
                     </shadow>
                     <block type="variables_get" id="jf^V/=:|Da(~L4ki#T%L">
                       <field name="VAR" id="!eY@+?{]SiMQl]U-]_S$">response</field>
                     </block>
                   </value>
                 </block>
               </next>
             </block>
            </xml>
            

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

              @mickym

              Weiter oben ist die Version mit axios die funktioniert

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

                @oliverio Na die request, wie Du sie getestet hast ja auch - dann muss er die axios Bibliothek nicht einbinden. Ich stehe nur wieder mit der asynchronen JS verarbeitung auf Kriegsfuss. Der Konsolenoutput stammt ja von Deinem Code - in dem Du in die Konsole schreibst.

                S 1 Reply Last reply Reply Quote 0
                • S
                  schrecki @mickym last edited by

                  @mickym Okay, ich habs bis hierhin jetzt auch geschafft, aber nun steh ich wieder...
                  Schaffe es nicht mit meinen Kenntnissen die Werte da raus zu ziehen und in die Objekte zu schreiben...
                  Zugegeben, der Hellste bin ich ja nun nicht wenns bei Blockly da in die Tiefe geht, hab mir schon öfters mal Beiträge in Foren angesehen um mir das TV-Programm als Telegram schicken zu lassen, Quelle der TV Spielfilm Adapter...
                  Ist ja ähnlich hier, ich hab ned Text und will da Info's draus haben.
                  Der Groschen will da einfach nicht fallen wie ich das angehen muss 🤦‍♂️
                  Ich will mir jetzt nicht von euch ne fertige Lösung basteln lassen, ein Forum sollte dazu da sein um Hilfe zur Selbsthilfe zu erhalten und um es zum Schluss auch zu verstehen was ich gemacht habe. Aber bei manchen Dingen fehlt mir halt leider einfach auch der nötige Background 😕
                  An der Stelle aber mal ein fettes DANKE an alle die sich hier schon eingebracht haben!

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

                    @schrecki Na ich probier noch bissi - ich kämpfe immer noch mit der asynchronen JS Verarbeitung - ich melde mich wenn ich weiter gekommen bin. Wie man allgemein ja weiß 😉 😉 😉 bin ich kein Puzzle-Freund - deswegen ist das für mich hier immer wieder eine Herausforderung.

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      schrecki @mickym last edited by

                      @mickym wenn ich Zeit (Tochter mit 15Mon. will bespaßt werden 🤗 ) hab werd ich sicher auch wieder testen, Trial and Error Prinzip 😁
                      Macht's halt schwierig wenn man von manchen Bausteinen schon nicht detailliert weiß was sie tun und wie sie funktionieren.
                      Aber man kann dadurch nur lernen! Bin mir sicher, wenn der Groschen mal gefallen is, öffnet das Tür und Tor für weitere Projekte und Integrationen in iobroker. Die Möglichkeiten sind theoretisch ja endlos 😉

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

                        @Na dann musst halt die axios Bibliothek nehmen . Mit dem request Teil komm ich auch nicht zurecht.

                        98cc31a4-858e-474d-bde7-250b4c4b3699-image.png

                        Mit der gehts - und dann kannst auch auf alles Zugreifen.

                        <xml xmlns="https://developers.google.com/blockly/xml">
                          <variables>
                            <variable id="Drc3,5E3dtsooSRbdv}K">url</variable>
                            <variable id="!eY@+?{]SiMQl]U-]_S$">response</variable>
                          </variables>
                          <block type="procedures_defcustomreturn" id="=Ib|l%wE0-!(2!$i:6GY" x="113" y="38">
                            <mutation statements="false">
                              <arg name="url" varid="Drc3,5E3dtsooSRbdv}K"></arg>
                            </mutation>
                            <field name="NAME">URL mit gzip</field>
                            <field name="SCRIPT">CmNvbnN0IGF4aW9zID0gcmVxdWlyZSgnYXhpb3MnKTsKY29uc3QgdXNlckFnZW50ID0gIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMTYuMC4wLjAgU2FmYXJpLzUzNy4zNiI7IC8vdXNlciBhZ2VudCwgc28gZGFzIGRlciBhYnJ1ZiB3aWUgdm9uIGVpbmVtIGJyb3dzZXIgYXVzc2llaHQsIGFuc29uc3RlbiB2ZXJ3ZW5kZXQgYXhpb3Mgc2VpbmVuIGVpZ2VuZW4gdWEtc3RyaW5nCiAKdHJ5IHsKICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MuZ2V0KHVybCx7CiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICB1c2VyQWdlbnQ6IHVzZXJBZ2VudAogICAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7Cn0gY2F0Y2ggKGVycm9yKSB7CiAgICBjb25zb2xlLmVycm9yKCdGZWhsZXIgQWJydWYnLCBlcnJvcik7Cn0=</field>
                            <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                          </block>
                          <block type="variables_set" id="ugEH}nuaFt2cgP:-pOl#" x="113" y="88">
                            <field name="VAR" id="!eY@+?{]SiMQl]U-]_S$">response</field>
                            <value name="VALUE">
                              <block type="procedures_callcustomreturn" id="_`5Lbo9XrR+}/[H_K8x^">
                                <mutation name="URL mit gzip">
                                  <arg name="url"></arg>
                                </mutation>
                                <value name="ARG0">
                                  <block type="text" id="Q/3.^E$8=iXD4`7Q!/Y~">
                                    <field name="TEXT">https://s3.eu-central-1.amazonaws.com/app-prod-static.warnwetter.de/v16/current_measurement_10791.json</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <next>
                              <block type="debug" id="(*Ckl_s:[HiNpm,cZU%*">
                                <field name="Severity">log</field>
                                <value name="TEXT">
                                  <shadow type="text" id="=c/u4J;{z?`e3o6dIvCL">
                                    <field name="TEXT">test</field>
                                  </shadow>
                                  <block type="variables_get" id="jf^V/=:|Da(~L4ki#T%L">
                                    <field name="VAR" id="!eY@+?{]SiMQl]U-]_S$">response</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="debug" id="Z;4(${0FK-z3YuU6p:nj">
                                    <field name="Severity">log</field>
                                    <value name="TEXT">
                                      <shadow type="text" id="JkWAaTGjvOM{VX_dg%D{">
                                        <field name="TEXT">test</field>
                                      </shadow>
                                      <block type="get_attr" id="-DITH1uqE@?858G@c(xQ">
                                        <value name="PATH">
                                          <shadow type="text" id="1_~Of@S^wJPK](bYLFVT">
                                            <field name="TEXT">pressure</field>
                                          </shadow>
                                        </value>
                                        <value name="OBJECT">
                                          <block type="variables_get" id=",[q*nBjNR!+^[+I(,abd">
                                            <field name="VAR" id="!eY@+?{]SiMQl]U-]_S$">response</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </xml>
                        

                        Du musst die Bibliothek hat im JS Adapter einbinden.

                        82a191a7-4dd2-46ca-bd1d-0f02722571f0-image.png

                        Mit der Request und diesem async habe ich es auch nicht hinbekommen - aber so kannst Du nun im Blockly alle URLs aufrufen und auch auf die Eigenschaften im Objekt zugreifen.

                        S 1 Reply Last reply Reply Quote 1
                        • S
                          schrecki @mickym last edited by

                          @mickym sagte in JSON Abfrage per Request liefert nur Matsch:

                          <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="Drc3,5E3dtsooSRbdv}K">url</variable> <variable id="!eY@+?{]SiMQl]U-]_S$">response</variable> </variables> <block type="procedures_defcustomreturn" id="=Ib|l%wE0-!(2!$i:6GY" x="113" y="38"> <mutation statements="false"> <arg name="url" varid="Drc3,5E3dtsooSRbdv}K"></arg> </mutation> <field name="NAME">URL mit gzip</field> <field name="SCRIPT">CmNvbnN0IGF4aW9zID0gcmVxdWlyZSgnYXhpb3MnKTsKY29uc3QgdXNlckFnZW50ID0gIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMTYuMC4wLjAgU2FmYXJpLzUzNy4zNiI7IC8vdXNlciBhZ2VudCwgc28gZGFzIGRlciBhYnJ1ZiB3aWUgdm9uIGVpbmVtIGJyb3dzZXIgYXVzc2llaHQsIGFuc29uc3RlbiB2ZXJ3ZW5kZXQgYXhpb3Mgc2VpbmVuIGVpZ2VuZW4gdWEtc3RyaW5nCiAKdHJ5IHsKICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MuZ2V0KHVybCx7CiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICB1c2VyQWdlbnQ6IHVzZXJBZ2VudAogICAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7Cn0gY2F0Y2ggKGVycm9yKSB7CiAgICBjb25zb2xlLmVycm9yKCdGZWhsZXIgQWJydWYnLCBlcnJvcik7Cn0=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="variables_set" id="ugEH}nuaFt2cgP:-pOl#" x="113" y="88"> <field name="VAR" id="!eY@+?{]SiMQl]U-]S$">response</field> <value name="VALUE"> <block type="procedures_callcustomreturn" id="5Lbo9XrR+}/[H_K8x^"> <mutation name="URL mit gzip"> <arg name="url"></arg> </mutation> <value name="ARG0"> <block type="text" id="Q/3.^E$8=iXD47Q!/Y~"> <field name="TEXT">https://s3.eu-central-1.amazonaws.com/app-prod-static.warnwetter.de/v16/current_measurement_10791.json</field> </block> </value> </block> </value> <next> <block type="debug" id="(Ckl_s:[HiNpm,cZU%"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="=c/u4J;{z?`e3o6dIvCL"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="jf^V/=:|Da(~L4ki#T%L"> <field name="VAR" id="!eY@+?{]SiMQl]U-]S$">response</field> </block> </value> <next> <block type="debug" id="Z;4(${0FK-z3YuU6p:nj"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="JkWAaTGjvOM{VX_dg%D{"> <field name="TEXT">test</field> </shadow> <block type="get_attr" id="-DITH1uqE@?858G@c(xQ"> <value name="PATH"> <shadow type="text" id="1~Of@S^wJPK](bYLFVT"> <field name="TEXT">pressure</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id=",[q*nBjNR!+^[+I(,abd"> <field name="VAR" id="!eY@+?{]SiMQl]U-]_S$">response</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </xml>

                          Du bist mein Held!
                          Es funktioniert!!!

                          Vielen vielen Dank für die Hilfe!!!

                          Made my day!

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          938
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

                          5
                          26
                          2374
                          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