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

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    514

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
26 Beiträge 2 Kommentatoren 4.1k 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.
  • 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
                              • Chris 1C Chris 1

                                @mickym Wow, spitze :+1: Kotau!

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

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

                                @chris-1 Mit Node-Red würdest Du Dir halt soviel leichter tun, als mit dem Puzzeln - aber ehrlich gesagt, bin ich es langsam müde mich da zu wiederholen. ;)

                                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
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                497

                                Online

                                32.5k

                                Benutzer

                                81.8k

                                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