Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Parser Wert auslesen aber wie?

    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

    Parser Wert auslesen aber wie?

    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      G.Hawk @mickym last edited by

      @mickym
      Danke ich probiere es

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

        @g-hawk So wenn das nicht klappt, dann schaun wir mal ob wir es mit Javascript hinbekommen. Ich habe in axios was gefunden mit dem man diese unsicheren Seiten abfragen kann:

        const axios = require('axios');
        
        const url = 'http://192.168.10.212/data'
        
        axios.get(url, { insecureHTTPParser: true }).then((response) => {
          console.log(response.data)
        })
        

        Probier doch mal dieses JS zu erstellen und schau ob damit der Aufruf funktioniert.

        ca40303f-595b-4308-90da-02f7c3c4b88b-image.png

        Wenn das hinhaut - dann haben wir gewonnen.

        G 1 Reply Last reply Reply Quote 0
        • G
          G.Hawk @mickym last edited by G.Hawk

          @mickym sagte in Parser Wert auslesen aber wie?:

                                                                                                                                      const axios = require('axios');                                                                                                                                                                                                                                                                                                                                                         const url = 'http://192.168.10.212/data'                                                                                                                                                                                                                                                                                                                                                         axios.get(url, { insecureHTTPParser: true }).then((response) => {                                                                                                                                                                              console.log(response.data)                                                                                                                                                                            })                                            
          

          Unten stehen die Daten wie auf der Website, aber was machen wir nun damit?
          Bekommt man die irgendwie in eine Datenpunkt?
          Ist das denn recourcenschonender als mit dem Parser?

          Mit dem Parser funktioniert es im Moment

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

            @g-hawk Ja ist viel besser, als mit dem Adapter. Die Axios Bibliothek ist schon drin.

            Kannst kurz mal das was im log steht hier in CodeTags kopieren?

            G 1 Reply Last reply Reply Quote 0
            • G
              G.Hawk @mickym last edited by

              @mickym
              Unbenannt.JPG

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

                @g-hawk

                So dann sollte das funktionieren.

                const axios = require('axios');
                 
                const url = 'http://192.168.10.212/data'
                 
                axios.get(url, { insecureHTTPParser: true }).then((response) => {
                  let obj = JSON.parse(response.data);
                  console.log (obj.measurements[0].values["1-0:16.7.0*255"]);
                  console.log (obj.measurements[0].values["1-0:2.8.0*255"]);
                  console.log (obj.measurements[0].values["1-0:1.8.0*255"]);
                })
                
                

                dann kannst Du die Daten nämlich so direkt in einen Datenpunkt schreiben.

                G 1 Reply Last reply Reply Quote 0
                • G
                  G.Hawk @mickym last edited by

                  @mickym sagte in Parser Wert auslesen aber wie?:

                                                                                                                                              const axios = require('axios');                                                                                                                                                                                                                                                                                                                                                         const url = 'http://192.168.10.212/data'                                                                                                                                                                                                                                                                                                                                                         axios.get(url, { insecureHTTPParser: true }).then((response) => {                                                                                                                                                                              let obj = JSON.parse(response.data);                                                                                                                                                                              console.log (obj.measurements[0].values["1-0:16.7.0*255"]);                                                                                                                                                                              console.log (obj.measurements[0].values["1-0:2.8.0*255"]);                                                                                                                                                                              console.log (obj.measurements[0].values["1-0:1.8.0*255"]);                                                                                                                                                                            })                                                                                                                                                                                                                         
                  

                  Unbenannt.JPG

                  1 Reply Last reply Reply Quote 0
                  • G
                    G.Hawk last edited by

                    Kann man das in ein Blockly intergrieren, also die Daten abrufen und dann im Blockly verarbeiten.
                    Ich habe von Java gar keine Ahnung.
                    Wie soll ich ihm denn sagen, wo er sie hinschreiben soll?

                    mickym 2 Replies Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @G.Hawk last edited by

                      @g-hawk Ja das geht. Wie gesagt nur mit dem Objekt müssen wir mit JSONATA machen. Ich versuche mal ein Blockly zu machen. 😉

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

                        @g-hawk Schau erst mal ob der Aufruf wieder funktioniert:

                        <xml xmlns="https://developers.google.com/blockly/xml">
                         <block type="procedures_defcustomreturn" id=".0+pfi#8i#U#jm$iU4:(" x="113" y="-112">
                           <mutation statements="false"></mutation>
                           <field name="NAME">EMETER_OBIS_V2</field>
                           <field name="SCRIPT">Y29uc3QgYXhpb3MgPSByZXF1aXJlKCdheGlvcycpOw0KIA0KY29uc3QgdXJsID0gJ2h0dHA6Ly8xOTIuMTY4LjEwLjIxMi9kYXRhJzsNCiANCnJldHVybiBheGlvcy5nZXQodXJsLCB7IGluc2VjdXJlSFRUUFBhcnNlcjogdHJ1ZSB9KS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuZGF0YSk7DQo=</field>
                           <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                         </block>
                         <block type="debug" id="(#D=4jImQYEWBq9nk/o." x="113" y="-62">
                           <field name="Severity">log</field>
                           <value name="TEXT">
                             <shadow type="text" id="Ipk)om!*g3w3lb+7ERhe">
                               <field name="TEXT">test</field>
                             </shadow>
                             <block type="procedures_callcustomreturn" id="}DioNbC)Da-GiVrMZiBd">
                               <mutation name="EMETER_OBIS_V2"></mutation>
                             </block>
                           </value>
                         </block>
                        </xml>
                        

                        6c02de8c-eb1e-4b70-8c79-a31b978855c1-image.png

                        G 1 Reply Last reply Reply Quote 0
                        • G
                          G.Hawk @mickym last edited by

                          @mickym sagte in Parser Wert auslesen aber wie?:

                          <xml xmlns="https://developers.google.com/blockly/xml"> <block type="procedures_defcustomreturn" id=".0+pfi#8i#U#jm$iU4:(" x="113" y="-112"> <mutation statements="false"></mutation> <field name="NAME">EMETER_OBIS_V2</field> <field name="SCRIPT">Y29uc3QgYXhpb3MgPSByZXF1aXJlKCdheGlvcycpOw0KIA0KY29uc3QgdXJsID0gJ2h0dHA6Ly8xOTIuMTY4LjEwLjIxMi9kYXRhJzsNCiANCnJldHVybiBheGlvcy5nZXQodXJsLCB7IGluc2VjdXJlSFRUUFBhcnNlcjogdHJ1ZSB9KS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuZGF0YSk7DQo=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="debug" id="(#D=4jImQYEWBq9nk/o." x="113" y="-62"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="Ipk)om!*g3w3lb+7ERhe"> <field name="TEXT">test</field> </shadow> <block type="procedures_callcustomreturn" id="}DioNbC)Da-GiVrMZiBd"> <mutation name="EMETER_OBIS_V2"></mutation> </block> </value> </block> </xml>

                          Das klappt!!!

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

                            @g-hawk Kannst Du bitte wieder mal einen Screenshot der Debug Ausgabe machen - ich muss sehen ob man das Objekt direkt nutzen kann.

                            oder schau ob das auch noch klappt:

                            <xml xmlns="https://developers.google.com/blockly/xml">
                              <variables>
                                <variable id="HKZ8QJwOkjzcY{)478uh">data</variable>
                              </variables>
                              <block type="procedures_defcustomreturn" id=".0+pfi#8i#U#jm$iU4:(" x="87" y="-188">
                                <mutation statements="false"></mutation>
                                <field name="NAME">EMETER_OBIS_V2</field>
                                <field name="SCRIPT">Y29uc3QgYXhpb3MgPSByZXF1aXJlKCdheGlvcycpOw0KIA0KY29uc3QgdXJsID0gJ2h0dHA6Ly8xOTIuMTY4LjEwLjIxMi9kYXRhJzsNCiANCnJldHVybiBheGlvcy5nZXQodXJsLCB7IGluc2VjdXJlSFRUUFBhcnNlcjogdHJ1ZSB9KS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuZGF0YSk7DQo=</field>
                                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                              </block>
                              <block type="variables_set" id="(^z7u:OWv3wK-3WwfK0$" x="88" y="-137">
                                <field name="VAR" id="HKZ8QJwOkjzcY{)478uh">data</field>
                                <value name="VALUE">
                                  <block type="procedures_callcustomreturn" id="}DioNbC)Da-GiVrMZiBd">
                                    <mutation name="EMETER_OBIS_V2"></mutation>
                                  </block>
                                </value>
                                <next>
                                  <block type="debug" id="(#D=4jImQYEWBq9nk/o.">
                                    <field name="Severity">log</field>
                                    <value name="TEXT">
                                      <shadow type="text" id="Ipk)om!*g3w3lb+7ERhe">
                                        <field name="TEXT">test</field>
                                      </shadow>
                                      <block type="convert_jsonata" id="%=2N*j`S5|XL#yGyeI#/">
                                        <value name="EXPRESSION">
                                          <shadow type="text" id="4N:x_Lg,Wyj4i`w{CLp$">
                                            <field name="TEXT">$.measurements[0].values."1-0:16.7.0*255"</field>
                                          </shadow>
                                        </value>
                                        <value name="TARGET">
                                          <block type="variables_get" id="61cQ@n]W4V47kF7KXB2T">
                                            <field name="VAR" id="HKZ8QJwOkjzcY{)478uh">data</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </next>
                              </block>
                            </xml>
                            

                            1edaf624-1036-4240-9fe6-18365670a431-image.png

                            G 1 Reply Last reply Reply Quote 0
                            • G
                              G.Hawk @mickym last edited by G.Hawk

                              @mickym

                              Unbenannt.JPG

                              Das Ergebnis stimmt

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

                                @g-hawk Na dann kannst Du doch nun direkt mit aktualisiere Datenpunkt die Werte in die Datenpunkte schreiben.

                                5938c4ca-c547-4f6a-8646-8c4ec687405a-image.png

                                G 1 Reply Last reply Reply Quote 1
                                • G
                                  G.Hawk @mickym last edited by

                                  @mickym
                                  Warte Ich teste 🙂

                                  1 Reply Last reply Reply Quote 0
                                  • G
                                    G.Hawk last edited by

                                    Wie geil ist das denn!!!!

                                    Unbenannt.JPG

                                    Vielen vielen Dank für deine Zeit und deine Mühe.

                                    Die Lösung könnte ich nochmal in dem Elmo Beitrag bekanntgeben.

                                    Super endlich funktioniert es.

                                    mickym 1 Reply Last reply Reply Quote 1
                                    • mickym
                                      mickym Most Active @G.Hawk last edited by mickym

                                      @g-hawk Na ja - erst mussten wir ja mal dem Problem auf die Spur kommen.

                                      Wenn Du nicht zufälligerweise

                                      Und ich muss im Parser ankreuzen " Verwenden sie einen unsicheren HTTP Parser

                                      das in diesem Posting erwähnt hättest, hätte ich ja nie nach einer Lösung gesucht. 😉

                                      Du siehst jede Information ist wertvoll.

                                      Wenn Du das Blockly noch flexibler machen willst - dann rufst du die Funktion halt mit der URL auf - dann kann man das universeller nutzen. Im Moment ist die URL ja fest codiert in der Funktion.

                                      G 1 Reply Last reply Reply Quote 0
                                      • G
                                        G.Hawk @mickym last edited by

                                        @mickym
                                        Ich habe es jetzt so gelöst:

                                        Unbenannt.JPG

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

                                          @g-hawk Ja für Dich passt das - aber vielleicht haben ja andere eine andere URL um das nicht in der Funktion anpassen zu müssen - könnte man die URL auch im Blockly mitgeben:

                                          <xml xmlns="https://developers.google.com/blockly/xml">
                                           <variables>
                                             <variable id="Lw~KZwxPZX0q}#(uZtgK">url</variable>
                                             <variable id="HKZ8QJwOkjzcY{)478uh">data</variable>
                                           </variables>
                                           <block type="procedures_defcustomreturn" id=".0+pfi#8i#U#jm$iU4:(" x="87" y="-188">
                                             <mutation statements="false">
                                               <arg name="url" varid="Lw~KZwxPZX0q}#(uZtgK"></arg>
                                             </mutation>
                                             <field name="NAME">EMETER_OBIS_V2</field>
                                             <field name="SCRIPT">Y29uc3QgYXhpb3MgPSByZXF1aXJlKCdheGlvcycpOw0KIA0KLy8gY29uc3QgdXJsID0gJ2h0dHA6Ly8xOTIuMTY4LjEwLjIxMi9kYXRhJzsNCiANCnJldHVybiBheGlvcy5nZXQodXJsLCB7IGluc2VjdXJlSFRUUFBhcnNlcjogdHJ1ZSB9KS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuZGF0YSk7DQo=</field>
                                             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                           </block>
                                           <block type="variables_set" id="(^z7u:OWv3wK-3WwfK0$" x="88" y="-137">
                                             <field name="VAR" id="HKZ8QJwOkjzcY{)478uh">data</field>
                                             <value name="VALUE">
                                               <block type="procedures_callcustomreturn" id="}DioNbC)Da-GiVrMZiBd">
                                                 <mutation name="EMETER_OBIS_V2">
                                                   <arg name="url"></arg>
                                                 </mutation>
                                                 <value name="ARG0">
                                                   <block type="text" id="k].Pk}UUl.@JnEA6mn]^">
                                                     <field name="TEXT">http://192.168.10.212/data</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="update" id="3(|VBdRn)1U9^N!7tvAb">
                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                 <field name="OID">Object ID</field>
                                                 <field name="WITH_DELAY">FALSE</field>
                                                 <value name="VALUE">
                                                   <block type="convert_jsonata" id="%=2N*j`S5|XL#yGyeI#/">
                                                     <value name="EXPRESSION">
                                                       <shadow type="text" id="4N:x_Lg,Wyj4i`w{CLp$">
                                                         <field name="TEXT">$.measurements[0].values."1-0:16.7.0*255"</field>
                                                       </shadow>
                                                     </value>
                                                     <value name="TARGET">
                                                       <block type="variables_get" id="61cQ@n]W4V47kF7KXB2T">
                                                         <field name="VAR" id="HKZ8QJwOkjzcY{)478uh">data</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="update" id="k)mckX^[[~8a7m*{oO22">
                                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                     <field name="OID">Object ID</field>
                                                     <field name="WITH_DELAY">FALSE</field>
                                                     <value name="VALUE">
                                                       <block type="convert_jsonata" id="G:5%{?.U[SKF@~2[26jM">
                                                         <value name="EXPRESSION">
                                                           <shadow type="text" id="L{p-Z8bb|m+v.SRn]!B+">
                                                             <field name="TEXT">$.measurements[0].values."1-0:2.8.0*255"</field>
                                                           </shadow>
                                                         </value>
                                                         <value name="TARGET">
                                                           <block type="variables_get" id="EWxskiq?[#,T}VYNan]k">
                                                             <field name="VAR" id="HKZ8QJwOkjzcY{)478uh">data</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                          </xml>
                                          

                                          7a6dab77-2fa8-4c79-9cfa-8d4ec8219e29-image.png

                                          und wenn das hinhaut - dann kann man in der Funktion die auskommentierte URL löschen.

                                          Also die Zeile 3:

                                          0caaabaa-168a-4acb-8f78-d1ca477c2a45-image.png

                                          G 1 Reply Last reply Reply Quote 0
                                          • G
                                            G.Hawk @mickym last edited by

                                            @mickym
                                            Hallo.
                                            Ich habe heute ein Update des Java Adapters gemacht.
                                            Leider funktioniert das Script jetzt nicht mehr.
                                            In den Update Informationen stand auch ,dass man irgendwas ändern muss, wenn man Jsonata Blöcke verwendet.

                                            Kann da jemand helfen?

                                            mickym DJMarc75 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            825
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            147
                                            8337
                                            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