Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Blockly: JSON mit Regex aus Variable auslesen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

[gelöst] Blockly: JSON mit Regex aus Variable auslesen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
26 Beiträge 2 Kommentatoren 4.0k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Chris 1C Chris 1

    @mickym Jupp, ich möchte einfach nur den Namen des Devices, welcher mir an dieser Stelle erstmalö unbekannt ist (deswegen die Krücke beim Blockly mit der Auflistung bekannter Devices).

    Also im Prinzip so etwas wie "Attribut von....", nur, dass ich nicht den Wert, sondern den Namen/Bezeichner haben möchte.

    mickymM Online
    mickymM Online
    mickym
    Most Active
    schrieb am zuletzt editiert von mickym
    #6

    @chris-1

    2f8cabd3-b996-4693-8802-5ee32690de64-image.png

    <xml xmlns="https://developers.google.com/blockly/xml">
     <variables>
       <variable id=";po#/$v(8.UbHdHNkx[6">Objekt</variable>
     </variables>
     <block type="variables_set" id=":=#[V+q{~-1q78b_H^FF" x="-1137" y="-687">
       <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
       <value name="VALUE">
         <block type="convert_json2object" id="?vV.vvxZ^NQN^_lWU1f}">
           <value name="VALUE">
             <block type="text" id="+fF--6Ew-2u1R;P~2mBq">
               <field name="TEXT">{"ZbReceived":{"0x4A9F":{"Device":"0x4A9F","Name":"0x4A9F","0006!01":"","Power":1,"Endpoint":1,"LinkQuality":118}}}</field>
             </block>
           </value>
         </block>
       </value>
       <next>
         <block type="debug" id="Di9b3@!X-|w!(OH[MyQR">
           <field name="Severity">log</field>
           <value name="TEXT">
             <shadow type="text" id="Qc!nM@ch{Sc_{l1rPEtk">
               <field name="TEXT">test</field>
             </shadow>
             <block type="variables_get" id="BRJ*7NTHanJ(0mYxIgZP">
               <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
             </block>
           </value>
           <next>
             <block type="debug" id="CSzbUrdljdY[mU6V(Y9H">
               <field name="Severity">log</field>
               <value name="TEXT">
                 <shadow type="text" id="3TF}V:USjkEO{0|$k.HC">
                   <field name="TEXT">test</field>
                 </shadow>
                 <block type="convert_jsonata" id="=ZN{fKMn7@2JC^*jQ1/8">
                   <value name="EXPRESSION">
                     <shadow type="text" id="8OI}[4dY`zbl|(X*@@%@">
                       <field name="TEXT">**.Device</field>
                     </shadow>
                   </value>
                   <value name="TARGET">
                     <block type="variables_get" id="8pAGf+2-KQ#4,J~^P=S~">
                       <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                     </block>
                   </value>
                 </block>
               </value>
             </block>
           </next>
         </block>
       </next>
     </block>
    </xml>
    

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

    Chris 1C 2 Antworten Letzte Antwort
    1
    • mickymM mickym

      @chris-1

      2f8cabd3-b996-4693-8802-5ee32690de64-image.png

      <xml xmlns="https://developers.google.com/blockly/xml">
       <variables>
         <variable id=";po#/$v(8.UbHdHNkx[6">Objekt</variable>
       </variables>
       <block type="variables_set" id=":=#[V+q{~-1q78b_H^FF" x="-1137" y="-687">
         <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
         <value name="VALUE">
           <block type="convert_json2object" id="?vV.vvxZ^NQN^_lWU1f}">
             <value name="VALUE">
               <block type="text" id="+fF--6Ew-2u1R;P~2mBq">
                 <field name="TEXT">{"ZbReceived":{"0x4A9F":{"Device":"0x4A9F","Name":"0x4A9F","0006!01":"","Power":1,"Endpoint":1,"LinkQuality":118}}}</field>
               </block>
             </value>
           </block>
         </value>
         <next>
           <block type="debug" id="Di9b3@!X-|w!(OH[MyQR">
             <field name="Severity">log</field>
             <value name="TEXT">
               <shadow type="text" id="Qc!nM@ch{Sc_{l1rPEtk">
                 <field name="TEXT">test</field>
               </shadow>
               <block type="variables_get" id="BRJ*7NTHanJ(0mYxIgZP">
                 <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
               </block>
             </value>
             <next>
               <block type="debug" id="CSzbUrdljdY[mU6V(Y9H">
                 <field name="Severity">log</field>
                 <value name="TEXT">
                   <shadow type="text" id="3TF}V:USjkEO{0|$k.HC">
                     <field name="TEXT">test</field>
                   </shadow>
                   <block type="convert_jsonata" id="=ZN{fKMn7@2JC^*jQ1/8">
                     <value name="EXPRESSION">
                       <shadow type="text" id="8OI}[4dY`zbl|(X*@@%@">
                         <field name="TEXT">**.Device</field>
                       </shadow>
                     </value>
                     <value name="TARGET">
                       <block type="variables_get" id="8pAGf+2-KQ#4,J~^P=S~">
                         <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                       </block>
                     </value>
                   </block>
                 </value>
               </block>
             </next>
           </block>
         </next>
       </block>
      </xml>
      

      Chris 1C Offline
      Chris 1C Offline
      Chris 1
      schrieb am zuletzt editiert von
      #7

      @mickym Spitze! Danke!
      Dann muss ich jetzt wohl mal das Update des Adapters machen.

      bpi-m5 (ioBroker), rock3a (postgreSQL), lamobo R1 (OpenWRT), Tasmota-ZB, Tasmota-IR

      mickymM 1 Antwort Letzte Antwort
      0
      • Chris 1C Chris 1

        @mickym Spitze! Danke!
        Dann muss ich jetzt wohl mal das Update des Adapters machen.

        mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #8

        @chris-1 Was für ein Update? Lernt einfach JSONATA - es ist eine so tolle Bibliothek und zum Lernen gibt es dieses tolle Fenster.
        Der Baustein ist einfach bei den Konvertierungspuzzlestücken.

        e97f636e-071e-4e3f-b359-eb163086af1a-image.png

        c0f05ede-7f7f-424b-aecb-c7f1acfc1c10-image.png

        https://try.jsonata.org/saH3BvGAO

        und wenn es Fragen zu JSONATA gibt - gerne. Ich musste auch lernen und viel probieren.

        In diesem Fall - kann man mit den 2 sternchen einfach alle Ebenen drüber überspringen und ignorieren:

        e7004f00-04a5-4108-b104-7bf904c695b0-image.png

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

        Chris 1C 1 Antwort Letzte Antwort
        1
        • mickymM mickym

          @chris-1 Was für ein Update? Lernt einfach JSONATA - es ist eine so tolle Bibliothek und zum Lernen gibt es dieses tolle Fenster.
          Der Baustein ist einfach bei den Konvertierungspuzzlestücken.

          e97f636e-071e-4e3f-b359-eb163086af1a-image.png

          c0f05ede-7f7f-424b-aecb-c7f1acfc1c10-image.png

          https://try.jsonata.org/saH3BvGAO

          und wenn es Fragen zu JSONATA gibt - gerne. Ich musste auch lernen und viel probieren.

          In diesem Fall - kann man mit den 2 sternchen einfach alle Ebenen drüber überspringen und ignorieren:

          e7004f00-04a5-4108-b104-7bf904c695b0-image.png

          Chris 1C Offline
          Chris 1C Offline
          Chris 1
          schrieb am zuletzt editiert von Chris 1
          #9

          @mickym Das Update des Java Adapters war noch fällig, war 6.irgendwas

          Hab ich gemacht und Deinen Hinweis, der wirklich Gold wert ist, umgehend ausfehührt und strahle jetzt :-)
          Unter Konvertern hatte ich nach soetwas nie gesucht - nun weiss ich es.

          bpi-m5 (ioBroker), rock3a (postgreSQL), lamobo R1 (OpenWRT), Tasmota-ZB, Tasmota-IR

          1 Antwort Letzte Antwort
          0
          • mickymM mickym

            @chris-1

            2f8cabd3-b996-4693-8802-5ee32690de64-image.png

            <xml xmlns="https://developers.google.com/blockly/xml">
             <variables>
               <variable id=";po#/$v(8.UbHdHNkx[6">Objekt</variable>
             </variables>
             <block type="variables_set" id=":=#[V+q{~-1q78b_H^FF" x="-1137" y="-687">
               <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
               <value name="VALUE">
                 <block type="convert_json2object" id="?vV.vvxZ^NQN^_lWU1f}">
                   <value name="VALUE">
                     <block type="text" id="+fF--6Ew-2u1R;P~2mBq">
                       <field name="TEXT">{"ZbReceived":{"0x4A9F":{"Device":"0x4A9F","Name":"0x4A9F","0006!01":"","Power":1,"Endpoint":1,"LinkQuality":118}}}</field>
                     </block>
                   </value>
                 </block>
               </value>
               <next>
                 <block type="debug" id="Di9b3@!X-|w!(OH[MyQR">
                   <field name="Severity">log</field>
                   <value name="TEXT">
                     <shadow type="text" id="Qc!nM@ch{Sc_{l1rPEtk">
                       <field name="TEXT">test</field>
                     </shadow>
                     <block type="variables_get" id="BRJ*7NTHanJ(0mYxIgZP">
                       <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                     </block>
                   </value>
                   <next>
                     <block type="debug" id="CSzbUrdljdY[mU6V(Y9H">
                       <field name="Severity">log</field>
                       <value name="TEXT">
                         <shadow type="text" id="3TF}V:USjkEO{0|$k.HC">
                           <field name="TEXT">test</field>
                         </shadow>
                         <block type="convert_jsonata" id="=ZN{fKMn7@2JC^*jQ1/8">
                           <value name="EXPRESSION">
                             <shadow type="text" id="8OI}[4dY`zbl|(X*@@%@">
                               <field name="TEXT">**.Device</field>
                             </shadow>
                           </value>
                           <value name="TARGET">
                             <block type="variables_get" id="8pAGf+2-KQ#4,J~^P=S~">
                               <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                             </block>
                           </value>
                         </block>
                       </value>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
            </xml>
            

            Chris 1C Offline
            Chris 1C Offline
            Chris 1
            schrieb am zuletzt editiert von
            #10

            @mickym Kurze Nach-Frage:

            Ich las an anderer Stelle von Dir, dass man, um mögliche Trigger aus zu lösen, man den "Datenpunkt als Text" besser extern schreibt.
            Ist nachfolgendes Vorgehen von mir von Hinten durch's Knie geschossen, oder wäre das in Ordnung:

            Bildschirmfoto vom 2024-01-03 16-11-35.png

            bpi-m5 (ioBroker), rock3a (postgreSQL), lamobo R1 (OpenWRT), Tasmota-ZB, Tasmota-IR

            mickymM 1 Antwort Letzte Antwort
            0
            • Chris 1C Chris 1

              @mickym Kurze Nach-Frage:

              Ich las an anderer Stelle von Dir, dass man, um mögliche Trigger aus zu lösen, man den "Datenpunkt als Text" besser extern schreibt.
              Ist nachfolgendes Vorgehen von mir von Hinten durch's Knie geschossen, oder wäre das in Ordnung:

              Bildschirmfoto vom 2024-01-03 16-11-35.png

              mickymM Online
              mickymM Online
              mickym
              Most Active
              schrieb am zuletzt editiert von mickym
              #11

              @chris-1 Also ich verstehe nicht ganz was Du meinst. Jedenfalls musst Du - wenn ein String aus dem JSONATA rauskommt und dieser kein Array ist, da eindeutig - keine Textumwandlung machen. Das ist bereits Text. (s. Screenshot).

              Ich verstehe es ehrlich gesagt gar nicht und wenn Du ales topic für Deinen mqtt Aufruf nur devices davor hängen möchtest, dann kannst du das auch gleich im JSONATA Ausdruck mit machen. Du musst halt den Trigger wieder auf deinen Datenpunkt umstellen, aber elegantesten und kürzesten wäre dann. Ach ja und Deine mqtt-Instanz halt eintragen oder wieder auf alle Instanzen stellen.

              1aea1601-2196-4c8a-90be-30d1be0ca080-image.png

              a1026163-d13a-45b4-a831-2976345e852d-image.png

              <xml xmlns="https://developers.google.com/blockly/xml">
               <variables>
                 <variable id=";po#/$v(8.UbHdHNkx[6">Objekt</variable>
               </variables>
               <block type="on_ext" id="7qoHFnear)/bPVn}^`36" x="-1252" y="-733">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                 <field name="CONDITION">ne</field>
                 <field name="ACK_CONDITION"></field>
                 <value name="OID0">
                   <shadow type="field_oid" id="s+JP[dx)kqRLANP7,,Bh">
                     <field name="oid">default</field>
                   </shadow>
                   <block type="text" id="P!1F$,ZDFBeL]yqfuEJP">
                     <field name="TEXT">0_userdata.0.Test.JSON</field>
                   </block>
                 </value>
                 <statement name="STATEMENT">
                   <block type="variables_set" id="P_jj/*%D7qyI8YnQu]sr">
                     <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                     <value name="VALUE">
                       <block type="convert_json2object" id="2SP(Q`Cec~nd9Z#Z+.D#">
                         <value name="VALUE">
                           <block type="on_source" id="HCJhj!hnn!UQ#!esJXD~">
                             <field name="ATTR">state.val</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <next>
                       <block type="mqtt_sendmessage" id="^xVmHTBYrIiPJs7,^;`B">
                         <field name="INSTANCE">.1</field>
                         <field name="RETAIN">FALSE</field>
                         <value name="TOPIC">
                           <shadow type="text" id="jxDsePT7Ey8Y`A`EQYo;">
                             <field name="TEXT">your/topic/here</field>
                           </shadow>
                           <block type="convert_jsonata" id="=ZN{fKMn7@2JC^*jQ1/8">
                             <value name="EXPRESSION">
                               <shadow type="text" id="8OI}[4dY`zbl|(X*@@%@">
                                 <field name="TEXT">"devices/" &amp; **.Device</field>
                               </shadow>
                             </value>
                             <value name="TARGET">
                               <block type="variables_get" id="8pAGf+2-KQ#4,J~^P=S~">
                                 <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                               </block>
                             </value>
                           </block>
                         </value>
                         <value name="MESSAGE">
                           <shadow type="text" id="Or;eOc8zoGL3p`KpxbCS">
                             <field name="TEXT">your message</field>
                           </shadow>
                           <block type="convert_object2json" id="UU,DBy)Y3m~HLr#vDvq+">
                             <field name="PRETTIFY">TRUE</field>
                             <value name="VALUE">
                               <block type="get_attr" id="[D{*XU=t9/d]{94-Rm|.">
                                 <value name="PATH">
                                   <shadow type="text" id="RjZG4]k(0@z!dnFOus39">
                                     <field name="TEXT">ZbReceived</field>
                                   </shadow>
                                 </value>
                                 <value name="OBJECT">
                                   <block type="variables_get" id="|x.o}#1ruGU_OVR.:)s%">
                                     <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                           </block>
                         </value>
                       </block>
                     </next>
                   </block>
                 </statement>
               </block>
              </xml>
              

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

              Chris 1C 1 Antwort Letzte Antwort
              0
              • mickymM mickym

                @chris-1 Also ich verstehe nicht ganz was Du meinst. Jedenfalls musst Du - wenn ein String aus dem JSONATA rauskommt und dieser kein Array ist, da eindeutig - keine Textumwandlung machen. Das ist bereits Text. (s. Screenshot).

                Ich verstehe es ehrlich gesagt gar nicht und wenn Du ales topic für Deinen mqtt Aufruf nur devices davor hängen möchtest, dann kannst du das auch gleich im JSONATA Ausdruck mit machen. Du musst halt den Trigger wieder auf deinen Datenpunkt umstellen, aber elegantesten und kürzesten wäre dann. Ach ja und Deine mqtt-Instanz halt eintragen oder wieder auf alle Instanzen stellen.

                1aea1601-2196-4c8a-90be-30d1be0ca080-image.png

                a1026163-d13a-45b4-a831-2976345e852d-image.png

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <variables>
                   <variable id=";po#/$v(8.UbHdHNkx[6">Objekt</variable>
                 </variables>
                 <block type="on_ext" id="7qoHFnear)/bPVn}^`36" x="-1252" y="-733">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                   <field name="CONDITION">ne</field>
                   <field name="ACK_CONDITION"></field>
                   <value name="OID0">
                     <shadow type="field_oid" id="s+JP[dx)kqRLANP7,,Bh">
                       <field name="oid">default</field>
                     </shadow>
                     <block type="text" id="P!1F$,ZDFBeL]yqfuEJP">
                       <field name="TEXT">0_userdata.0.Test.JSON</field>
                     </block>
                   </value>
                   <statement name="STATEMENT">
                     <block type="variables_set" id="P_jj/*%D7qyI8YnQu]sr">
                       <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                       <value name="VALUE">
                         <block type="convert_json2object" id="2SP(Q`Cec~nd9Z#Z+.D#">
                           <value name="VALUE">
                             <block type="on_source" id="HCJhj!hnn!UQ#!esJXD~">
                               <field name="ATTR">state.val</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <next>
                         <block type="mqtt_sendmessage" id="^xVmHTBYrIiPJs7,^;`B">
                           <field name="INSTANCE">.1</field>
                           <field name="RETAIN">FALSE</field>
                           <value name="TOPIC">
                             <shadow type="text" id="jxDsePT7Ey8Y`A`EQYo;">
                               <field name="TEXT">your/topic/here</field>
                             </shadow>
                             <block type="convert_jsonata" id="=ZN{fKMn7@2JC^*jQ1/8">
                               <value name="EXPRESSION">
                                 <shadow type="text" id="8OI}[4dY`zbl|(X*@@%@">
                                   <field name="TEXT">"devices/" &amp; **.Device</field>
                                 </shadow>
                               </value>
                               <value name="TARGET">
                                 <block type="variables_get" id="8pAGf+2-KQ#4,J~^P=S~">
                                   <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <value name="MESSAGE">
                             <shadow type="text" id="Or;eOc8zoGL3p`KpxbCS">
                               <field name="TEXT">your message</field>
                             </shadow>
                             <block type="convert_object2json" id="UU,DBy)Y3m~HLr#vDvq+">
                               <field name="PRETTIFY">TRUE</field>
                               <value name="VALUE">
                                 <block type="get_attr" id="[D{*XU=t9/d]{94-Rm|.">
                                   <value name="PATH">
                                     <shadow type="text" id="RjZG4]k(0@z!dnFOus39">
                                       <field name="TEXT">ZbReceived</field>
                                     </shadow>
                                   </value>
                                   <value name="OBJECT">
                                     <block type="variables_get" id="|x.o}#1ruGU_OVR.:)s%">
                                       <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </value>
                         </block>
                       </next>
                     </block>
                   </statement>
                 </block>
                </xml>
                

                Chris 1C Offline
                Chris 1C Offline
                Chris 1
                schrieb am zuletzt editiert von
                #12

                @mickym Oh, das sieht natürlich deutlich smarter aus, danke!

                Das Script ist für mich der erste Verteiler, welcher vom Tasmota-Zigbee-Gateway rein kommenden Sachen verteilen soll.
                Eine Weiter-Behandlung soll dann in separat getriggerten (devices.*) Scripten erfolgen, da die Geräte ja sehr unterschiedliche Daten verarbeiten.
                Im Beispiel war es der erste Test mit Button, nun habe ich den eben per Post eingetroffenen AirQuality-Sensor mit dran gehängt.

                bpi-m5 (ioBroker), rock3a (postgreSQL), lamobo R1 (OpenWRT), Tasmota-ZB, Tasmota-IR

                mickymM 1 Antwort Letzte Antwort
                0
                • Chris 1C Chris 1

                  @mickym Oh, das sieht natürlich deutlich smarter aus, danke!

                  Das Script ist für mich der erste Verteiler, welcher vom Tasmota-Zigbee-Gateway rein kommenden Sachen verteilen soll.
                  Eine Weiter-Behandlung soll dann in separat getriggerten (devices.*) Scripten erfolgen, da die Geräte ja sehr unterschiedliche Daten verarbeiten.
                  Im Beispiel war es der erste Test mit Button, nun habe ich den eben per Post eingetroffenen AirQuality-Sensor mit dran gehängt.

                  mickymM Online
                  mickymM Online
                  mickym
                  Most Active
                  schrieb am zuletzt editiert von
                  #13

                  @chris-1 sagte in [gelöst] Blockly: JSON mit Regex aus Variable auslesen:

                  Das Script ist für mich der erste Verteiler, welcher vom Tasmota-Zigbee-Gateway rein kommenden Sachen verteilen soll.

                  Tja Du siehst, wenn man gleich das Ziel ausformuliert, dann bekommt man auch gleich einen Vorschlag.

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

                  Chris 1C 2 Antworten Letzte Antwort
                  0
                  • mickymM mickym

                    @chris-1 sagte in [gelöst] Blockly: JSON mit Regex aus Variable auslesen:

                    Das Script ist für mich der erste Verteiler, welcher vom Tasmota-Zigbee-Gateway rein kommenden Sachen verteilen soll.

                    Tja Du siehst, wenn man gleich das Ziel ausformuliert, dann bekommt man auch gleich einen Vorschlag.

                    Chris 1C Offline
                    Chris 1C Offline
                    Chris 1
                    schrieb am zuletzt editiert von
                    #14

                    @mickym said in Blockly: JSON mit Regex aus Variable auslesen:

                    Tja Du siehst, wenn man gleich das Ziel ausformuliert, dann bekommt man auch gleich einen Vorschlag.

                    @chris-1 said in Blockly: JSON mit Regex aus Variable auslesen:

                    wegen erwogenem Umstieg von Zigbee2mqtt auf Tasmota-Zigbee möchte ich gerne den von Tasmota übermittelten JSON Record auslesen.

                    War das so mißverständlich ausgedrückt?

                    Nochmals ganz herzlichen Dank für die grandiose & schnelle Hilfestellung!

                    Gruss von der Ostsee
                    Chris

                    bpi-m5 (ioBroker), rock3a (postgreSQL), lamobo R1 (OpenWRT), Tasmota-ZB, Tasmota-IR

                    1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @chris-1 sagte in [gelöst] Blockly: JSON mit Regex aus Variable auslesen:

                      Das Script ist für mich der erste Verteiler, welcher vom Tasmota-Zigbee-Gateway rein kommenden Sachen verteilen soll.

                      Tja Du siehst, wenn man gleich das Ziel ausformuliert, dann bekommt man auch gleich einen Vorschlag.

                      Chris 1C Offline
                      Chris 1C Offline
                      Chris 1
                      schrieb am zuletzt editiert von Chris 1
                      #15

                      @mickym Nochmal eine Nachfrage zu JsonATA

                      Wie greife ich auf das x-te (hier 2tes) Elemente-Paar im JSON String zu?
                      Habe schon alle möglichen Tutorials hoch und runter gesucht, aber hierzu nichts gefunden.

                      Beispiel für empfangene Daten:

                      {"Device":"0x0D73","EF00/0214":83,"Endpoint":1,"LinkQuality":136}
                      {"Device":"0x0D73","EF00/0215":469,"Endpoint":1,"LinkQuality":136}
                      {"Device":"0x0D73","EF00/0216":749,"Endpoint":1,"LinkQuality":136}
                      {"Device":"0x0D73","EF00/0202":295,"Endpoint":1,"LinkQuality":136}
                      

                      Müsste ich das ggf über sowas wie "$spread()" lösen?

                      Schon mal vorab herzlichen Dank
                      Chris

                      bpi-m5 (ioBroker), rock3a (postgreSQL), lamobo R1 (OpenWRT), Tasmota-ZB, Tasmota-IR

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • Chris 1C Chris 1

                        @mickym Nochmal eine Nachfrage zu JsonATA

                        Wie greife ich auf das x-te (hier 2tes) Elemente-Paar im JSON String zu?
                        Habe schon alle möglichen Tutorials hoch und runter gesucht, aber hierzu nichts gefunden.

                        Beispiel für empfangene Daten:

                        {"Device":"0x0D73","EF00/0214":83,"Endpoint":1,"LinkQuality":136}
                        {"Device":"0x0D73","EF00/0215":469,"Endpoint":1,"LinkQuality":136}
                        {"Device":"0x0D73","EF00/0216":749,"Endpoint":1,"LinkQuality":136}
                        {"Device":"0x0D73","EF00/0202":295,"Endpoint":1,"LinkQuality":136}
                        

                        Müsste ich das ggf über sowas wie "$spread()" lösen?

                        Schon mal vorab herzlichen Dank
                        Chris

                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von mickym
                        #16

                        @chris-1 Das steht ddoch niemals so alleine da? - Entweder ist das ein Array mit Objekten (also das ganze in eckigen Klammern und mit Kommas?) oder möchtest Du auf den Wert EF00/0214 zugreifen?

                        So steht es aber mit Sicherheit nirgends.

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

                        Chris 1C 1 Antwort Letzte Antwort
                        0
                        • mickymM mickym

                          @chris-1 Das steht ddoch niemals so alleine da? - Entweder ist das ein Array mit Objekten (also das ganze in eckigen Klammern und mit Kommas?) oder möchtest Du auf den Wert EF00/0214 zugreifen?

                          So steht es aber mit Sicherheit nirgends.

                          Chris 1C Offline
                          Chris 1C Offline
                          Chris 1
                          schrieb am zuletzt editiert von Chris 1
                          #17

                          @mickym Ja, ich möchte diese (AirQuality) Werte unter "EF00/02xx" selektiv zugreifen.

                          Und nein, das ist so kein Array, sonsern beispielhaft aus dem Log heraus geschnippelt. Es kommt immer nur ein JSON an.

                          bpi-m5 (ioBroker), rock3a (postgreSQL), lamobo R1 (OpenWRT), Tasmota-ZB, Tasmota-IR

                          mickymM 2 Antworten Letzte Antwort
                          0
                          • Chris 1C Chris 1

                            @mickym Ja, ich möchte diese (AirQuality) Werte unter "EF00/02xx" selektiv zugreifen.

                            Und nein, das ist so kein Array, sonsern beispielhaft aus dem Log heraus geschnippelt. Es kommt immer nur ein JSON an.

                            mickymM Online
                            mickymM Online
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von
                            #18

                            @chris-1 Und diese Objekte sind in einem Array oder willst Du jetzt nur aus einem solchen Wert EF00/02xx zugreifen?

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

                            1 Antwort Letzte Antwort
                            0
                            • Chris 1C Chris 1

                              @mickym Ja, ich möchte diese (AirQuality) Werte unter "EF00/02xx" selektiv zugreifen.

                              Und nein, das ist so kein Array, sonsern beispielhaft aus dem Log heraus geschnippelt. Es kommt immer nur ein JSON an.

                              mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              schrieb am zuletzt editiert von mickym
                              #19

                              @chris-1 sagte in [gelöst] Blockly: JSON mit Regex aus Variable auslesen:

                              @mickym Ja, ich möchte diese (AirQuality) Werte unter "EF00/02xx" selektiv zugreifen.

                              Und nein, das ist so kein Array, sonsern beispielhaft aus dem Log heraus geschnippelt. Es kommt immer nur ein JSON an.

                              Dann verstehe ich Dein Problem glaube ich nicht???

                              a48483f3-e848-47b3-bb2f-f71dd93a664b-image.png

                              Oder willst Du das Attribut mit JSONATA extrahieren?

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

                              Chris 1C 1 Antwort Letzte Antwort
                              0
                              • mickymM mickym

                                @chris-1 sagte in [gelöst] Blockly: JSON mit Regex aus Variable auslesen:

                                @mickym Ja, ich möchte diese (AirQuality) Werte unter "EF00/02xx" selektiv zugreifen.

                                Und nein, das ist so kein Array, sonsern beispielhaft aus dem Log heraus geschnippelt. Es kommt immer nur ein JSON an.

                                Dann verstehe ich Dein Problem glaube ich nicht???

                                a48483f3-e848-47b3-bb2f-f71dd93a664b-image.png

                                Oder willst Du das Attribut mit JSONATA extrahieren?

                                Chris 1C Offline
                                Chris 1C Offline
                                Chris 1
                                schrieb am zuletzt editiert von Chris 1
                                #20

                                @mickym Der Sensor liefert 6? unterschiedliche Werte.
                                Diese stehen an 2ter Stelle des JSON in der Form "EF00/02<xx>" : Value

                                Ich möchte also a) wissen welcher Wert (zB "EF00/0212") übermittelt wird,
                                b) Value ergibt sich danach leichter.

                                bpi-m5 (ioBroker), rock3a (postgreSQL), lamobo R1 (OpenWRT), Tasmota-ZB, Tasmota-IR

                                mickymM 1 Antwort Letzte Antwort
                                0
                                • Chris 1C Chris 1

                                  @mickym Der Sensor liefert 6? unterschiedliche Werte.
                                  Diese stehen an 2ter Stelle des JSON in der Form "EF00/02<xx>" : Value

                                  Ich möchte also a) wissen welcher Wert (zB "EF00/0212") übermittelt wird,
                                  b) Value ergibt sich danach leichter.

                                  mickymM Online
                                  mickymM Online
                                  mickym
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #21

                                  @chris-1 Ok das ist schon etwas herausfordernder, aber es beginnt immer mit EF00/02?

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

                                  Chris 1C 1 Antwort Letzte Antwort
                                  1
                                  • mickymM mickym

                                    @chris-1 Ok das ist schon etwas herausfordernder, aber es beginnt immer mit EF00/02?

                                    Chris 1C Offline
                                    Chris 1C Offline
                                    Chris 1
                                    schrieb am zuletzt editiert von Chris 1
                                    #22

                                    @mickym Ja

                                    Ob man dies ggf einfacher als "SubString" extrahiert?
                                    Bis einschliesslich SubString-ID hat es ja immer die selbe Länge...

                                    bpi-m5 (ioBroker), rock3a (postgreSQL), lamobo R1 (OpenWRT), Tasmota-ZB, Tasmota-IR

                                    mickymM 2 Antworten Letzte Antwort
                                    0
                                    • Chris 1C Chris 1

                                      @mickym Ja

                                      Ob man dies ggf einfacher als "SubString" extrahiert?
                                      Bis einschliesslich SubString-ID hat es ja immer die selbe Länge...

                                      mickymM Online
                                      mickymM Online
                                      mickym
                                      Most Active
                                      schrieb am zuletzt editiert von
                                      #23

                                      @chris-1 Ich habs gleich - etwas Geduld bitte

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

                                      1 Antwort Letzte Antwort
                                      1
                                      • Chris 1C Chris 1

                                        @mickym Ja

                                        Ob man dies ggf einfacher als "SubString" extrahiert?
                                        Bis einschliesslich SubString-ID hat es ja immer die selbe Länge...

                                        mickymM Online
                                        mickymM Online
                                        mickym
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #24

                                        @chris-1 So hier die Lösung:

                                        03825a4b-a92d-475c-a2d5-190e066d45db-image.png

                                        Der JSONATA Ausdruck erzeugt ein neues Objekt mit den Attributen key und value auf dass Du dann normal mit den Blockly Attributen zugreifen kannst.

                                        Der JSONATA Ausdruck lautet:

                                        $.$sift(function($v, $k) {$k ~> /^EF00\/02/}){"key": $keys(),"value":$.*}
                                        

                                        Hier das Ganze zum Import und Testen

                                        <xml xmlns="https://developers.google.com/blockly/xml">
                                         <variables>
                                           <variable id=";po#/$v(8.UbHdHNkx[6">Objekt</variable>
                                         </variables>
                                         <block type="variables_set" id="W@hg1tE.68iwuYzK2!uN" x="-1263" y="-835">
                                           <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                           <value name="VALUE">
                                             <block type="convert_json2object" id="(0IX6:]p|*y3zL7||zBw">
                                               <value name="VALUE">
                                                 <block type="text" id="cj9Q,eiBn6QVld(V7kV2">
                                                   <field name="TEXT">{"Device":"0x0D73","EF00/0214":83,"Endpoint":1,"LinkQuality":136}</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="variables_set" id="9+M],oEz;U^a+N[vt#`g">
                                               <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                               <value name="VALUE">
                                                 <block type="convert_jsonata" id="N^%KxZ{%,3GmzsQvn+c(">
                                                   <value name="EXPRESSION">
                                                     <shadow type="text" id="g]4!|~f.(-MAU?:dXi)?">
                                                       <field name="TEXT">$.$sift(function($v, $k) {$k ~&gt; /^EF00\/02/}){"key": $keys(),"value":$.*}</field>
                                                     </shadow>
                                                   </value>
                                                   <value name="TARGET">
                                                     <block type="variables_get" id="70c4ESN`7hWTUT-(49y!">
                                                       <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="debug" id="n7%]r/8E9.7*=Yc/SwqD">
                                                   <field name="Severity">log</field>
                                                   <value name="TEXT">
                                                     <shadow type="text" id="_OZ+{6nC[=m9DhEs.K[]">
                                                       <field name="TEXT">test</field>
                                                     </shadow>
                                                     <block type="variables_get" id="-Q_F|i0gY.V`q1:_DGZj">
                                                       <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                                     </block>
                                                   </value>
                                                   <next>
                                                     <block type="debug" id="$mUXBli_e}bd4hA?t2Ls">
                                                       <field name="Severity">log</field>
                                                       <value name="TEXT">
                                                         <shadow type="text" id="+:$J:sSMpe_Z8M4p0YYN">
                                                           <field name="TEXT">test</field>
                                                         </shadow>
                                                         <block type="get_attr" id="s8LY=qPscr-My@k|c-.l">
                                                           <value name="PATH">
                                                             <shadow type="text" id="[}UnHmrmR:{xN!J)0KlB">
                                                               <field name="TEXT">key</field>
                                                             </shadow>
                                                           </value>
                                                           <value name="OBJECT">
                                                             <block type="variables_get" id="R_[5TjBBSEIu*I=Xk-SJ">
                                                               <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </value>
                                                       <next>
                                                         <block type="debug" id="$|g.Yy_[6Qity9{lgt{#">
                                                           <field name="Severity">log</field>
                                                           <value name="TEXT">
                                                             <shadow type="text" id="3Ym?y,.KIM6gAqn4!z4e">
                                                               <field name="TEXT">test</field>
                                                             </shadow>
                                                             <block type="get_attr" id="d_i|9]ucU.,jP7d;WRR)">
                                                               <value name="PATH">
                                                                 <shadow type="text" id=",eAl@_h]7=Nna@c5r-3t">
                                                                   <field name="TEXT">value</field>
                                                                 </shadow>
                                                               </value>
                                                               <value name="OBJECT">
                                                                 <block type="variables_get" id="r|%-}(FGnhMNQwQaC/rH">
                                                                   <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                                                 </block>
                                                               </value>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                        </xml>
                                        

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

                                        Chris 1C 1 Antwort Letzte Antwort
                                        1
                                        • mickymM mickym

                                          @chris-1 So hier die Lösung:

                                          03825a4b-a92d-475c-a2d5-190e066d45db-image.png

                                          Der JSONATA Ausdruck erzeugt ein neues Objekt mit den Attributen key und value auf dass Du dann normal mit den Blockly Attributen zugreifen kannst.

                                          Der JSONATA Ausdruck lautet:

                                          $.$sift(function($v, $k) {$k ~> /^EF00\/02/}){"key": $keys(),"value":$.*}
                                          

                                          Hier das Ganze zum Import und Testen

                                          <xml xmlns="https://developers.google.com/blockly/xml">
                                           <variables>
                                             <variable id=";po#/$v(8.UbHdHNkx[6">Objekt</variable>
                                           </variables>
                                           <block type="variables_set" id="W@hg1tE.68iwuYzK2!uN" x="-1263" y="-835">
                                             <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                             <value name="VALUE">
                                               <block type="convert_json2object" id="(0IX6:]p|*y3zL7||zBw">
                                                 <value name="VALUE">
                                                   <block type="text" id="cj9Q,eiBn6QVld(V7kV2">
                                                     <field name="TEXT">{"Device":"0x0D73","EF00/0214":83,"Endpoint":1,"LinkQuality":136}</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="variables_set" id="9+M],oEz;U^a+N[vt#`g">
                                                 <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                                 <value name="VALUE">
                                                   <block type="convert_jsonata" id="N^%KxZ{%,3GmzsQvn+c(">
                                                     <value name="EXPRESSION">
                                                       <shadow type="text" id="g]4!|~f.(-MAU?:dXi)?">
                                                         <field name="TEXT">$.$sift(function($v, $k) {$k ~&gt; /^EF00\/02/}){"key": $keys(),"value":$.*}</field>
                                                       </shadow>
                                                     </value>
                                                     <value name="TARGET">
                                                       <block type="variables_get" id="70c4ESN`7hWTUT-(49y!">
                                                         <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="debug" id="n7%]r/8E9.7*=Yc/SwqD">
                                                     <field name="Severity">log</field>
                                                     <value name="TEXT">
                                                       <shadow type="text" id="_OZ+{6nC[=m9DhEs.K[]">
                                                         <field name="TEXT">test</field>
                                                       </shadow>
                                                       <block type="variables_get" id="-Q_F|i0gY.V`q1:_DGZj">
                                                         <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="debug" id="$mUXBli_e}bd4hA?t2Ls">
                                                         <field name="Severity">log</field>
                                                         <value name="TEXT">
                                                           <shadow type="text" id="+:$J:sSMpe_Z8M4p0YYN">
                                                             <field name="TEXT">test</field>
                                                           </shadow>
                                                           <block type="get_attr" id="s8LY=qPscr-My@k|c-.l">
                                                             <value name="PATH">
                                                               <shadow type="text" id="[}UnHmrmR:{xN!J)0KlB">
                                                                 <field name="TEXT">key</field>
                                                               </shadow>
                                                             </value>
                                                             <value name="OBJECT">
                                                               <block type="variables_get" id="R_[5TjBBSEIu*I=Xk-SJ">
                                                                 <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="debug" id="$|g.Yy_[6Qity9{lgt{#">
                                                             <field name="Severity">log</field>
                                                             <value name="TEXT">
                                                               <shadow type="text" id="3Ym?y,.KIM6gAqn4!z4e">
                                                                 <field name="TEXT">test</field>
                                                               </shadow>
                                                               <block type="get_attr" id="d_i|9]ucU.,jP7d;WRR)">
                                                                 <value name="PATH">
                                                                   <shadow type="text" id=",eAl@_h]7=Nna@c5r-3t">
                                                                     <field name="TEXT">value</field>
                                                                   </shadow>
                                                                 </value>
                                                                 <value name="OBJECT">
                                                                   <block type="variables_get" id="r|%-}(FGnhMNQwQaC/rH">
                                                                     <field name="VAR" id=";po#/$v(8.UbHdHNkx[6">Objekt</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                          </xml>
                                          

                                          Chris 1C Offline
                                          Chris 1C Offline
                                          Chris 1
                                          schrieb am zuletzt editiert von Chris 1
                                          #25

                                          @mickym Wow, spitze :+1: Kotau!

                                          Freu-Freu-Freu... läuft!

                                          bpi-m5 (ioBroker), rock3a (postgreSQL), lamobo R1 (OpenWRT), Tasmota-ZB, Tasmota-IR

                                          mickymM 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          836

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe