Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [ gelöst ] JSON aufteilen in DP

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [ gelöst ] JSON aufteilen in DP

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

      @homoran sagte in JSON aufteilen in DP:

      @mickym sagte in JSON aufteilen in DP:

      Du musst den Text noch in ein Objekt wandeln.

      warum muss ich das nicht 🤔

      Wenn Du Wert nimmst und das Ganze aus einem Trigger stammt und Wert keine selbst erstellte Variable ist, dann ist das ein Objekt. Wenn Du aber nur einen JSON als Text nimmst, musst Du den erst in ein Objekt wandeln.

      Deshalb ist es auch nicht gut, wenn man eine selbst erstellte Variable Wert nennt - dann verwechselt man das.

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @mickym last edited by

        @mickym sagte in JSON aufteilen in DP:

        Deshalb ist es auch nicht gut, wenn man eine selbst erstellte Variable Wert nennt

        Da stimme ich dir zu! Mir fiel nur auf die Schnelle kein kurzer Begriff für "extrahierter Wert" ein.

        hier jedoch nicht

        @mickym sagte in JSON aufteilen in DP:

        Wenn Du aber nur einen JSON als Text nimmst, musst Du den erst in ein Objekt wandeln.

        hier
        https://forum.iobroker.net/assets/uploads/files/1732905391106-screenshot_20241129-193612_firefox.jpg
        klappt es ohne Objekt

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

          @homoran Ja Du hast Recht - ist für mich auch neu - früher ging das glaub nicht. Aber jetzt geht das anscheinend.

          b5b2b58c-3418-4036-9d05-6c2bd502ac0e-image.png

          geht sogar direkt aus dem Text

          c66cb765-351c-452d-9b58-138812069f7b-image.png

          Aber irgendwie habe ich es in Erinnerung, dass das früher nicht ging.

          Homoran paul53 2 Replies Last reply Reply Quote 1
          • Homoran
            Homoran Global Moderator Administrators @mickym last edited by

            @mickym sagte in JSON aufteilen in DP:

            früher ging das glaub nicht.

            ich hab's immer so gemacht.
            Ich wusste nicht dass das nicht geht, dadurch ging es 😂

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

              Nur wenn @iobrokerMike solche Probleme mit JSON hat, sollte er sich vielleicht doch mal meinen NodeRed Flow anschauen und einfach alles in einzelne Datenpunkte aufdröseln. 😉

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @mickym last edited by

                @mickym sagte in JSON aufteilen in DP:

                Nur wenn @iobrokerMike solche Probleme mit JSON hat, sollte er sich vielleicht doch mal meinen NodeRed Flow anschauen und einfach alles in einzelne Datenpunkte aufdröseln. 😉

                ich denke das Skript läuft nicht.
                Wie du in meinem output siehst, müsste mindestens der Stop, der Start und die subscriptions zu sehen sein.

                bei deinem Flow käme dann auch nichts.

                1 Reply Last reply Reply Quote 1
                • I
                  ioBrokerMike @Homoran last edited by

                  @homoran
                  Blockly 5.png

                  @mickym
                  Das habe ich im Hinterkopf.
                  Danke für den Hinweis

                  Wenn ich das erstmal von @Homoran zum laufen bekomme werde ich mich mit den Rest (Eigentlichen) beschäftigen.

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

                    @iobrokermike
                    @Homoran hat ja Recht, dass in Deinem Debug Fenster ja gar nichts steht. Hast Du noch irgendwas anderes nicht deaktiviertes im Skript.

                    894decef-f8de-4df6-9eeb-30f9b816a757-image.png

                    Hast Du mal Dein gestartetes Skript mit dem Wiederholungssymbol neu gestartet? - Das muss im Debugfenster zu sehen sein.

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

                      @mickym sagte: früher ging das glaub nicht.

                      Das ging mit getAttr() schon immer. Siehe Doku. Die Funktion wurde speziell für Blockly geschaffen.

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

                        @paul53 OK

                        321482ec-b7b2-411d-afc4-c70d744dd006-image.png

                        Ich weiß dann nur nicht, ob es dann daran lag, dass es ein verschachteltes Array war - aber es gab Fälle da ging es nicht. Ich schau mal, ob ich was finde.

                        1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @ioBrokerMike last edited by Homoran

                          @iobrokermike läuft das Skript selber?
                          war das große log nach mqtt gefiltert?

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

                            @mickym

                            Blockly 6.png

                            Hast Du mal Dein gestartetes Skript mit dem Wiederholungssymbol neu gestartet? ...
                            Ja das habe ich gemacht.

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @ioBrokerMike last edited by

                              @iobrokermike starte mal die Instsnz neu und mach rinen Browserrefresh (Strg-f5)

                              1 Reply Last reply Reply Quote 0
                              • I
                                ioBrokerMike @Homoran last edited by ioBrokerMike

                                @homoran sagte in JSON aufteilen in DP:

                                war das große log nach mqtt gefiltert?

                                Ja, das war nach mqtt gefiltert

                                Homoran 1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators @ioBrokerMike last edited by Homoran

                                  @iobrokermike sagte in JSON aufteilen in DP:

                                  @homoran sagte in JSON aufteilen in DP:

                                  war das große log nach mqtt gefiltert?

                                  Ja, das war nach matt gefiltert

                                  dann kann man da natürlich auch keine Meldungen von javascript sehen!

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

                                    @paul53 sagte in JSON aufteilen in DP:

                                    @mickym sagte: früher ging das glaub nicht.

                                    Das ging mit getAttr() schon immer. Siehe Doku. Die Funktion wurde speziell für Blockly geschaffen.

                                    Irgendwie ist das aber anscheinend doch kein Objekt - zumindest, wenn ich es in JSONATA weiter verwenden will. Gibt es da eine Erklärung?

                                    51cae8de-09dd-4ffa-9335-2766aa379d39-image.png

                                    Im 1. Fall ohne Konvertierung - kann ich über JSONATA nicht auf die Objekteigenschaft zugreifen. Im 2. Fall gehts.

                                    <xml xmlns="https://developers.google.com/blockly/xml">
                                     <variables>
                                       <variable id="NWR;`_N@3a:sTiBKQkne">Objekt</variable>
                                     </variables>
                                     <block type="variables_set" id="M@F*zUMa;{#yJo2.2goG" x="-1137" y="-337">
                                       <field name="VAR" id="NWR;`_N@3a:sTiBKQkne">Objekt</field>
                                       <value name="VALUE">
                                         <block type="text" id="fWZa-MC8^[YM-V-;#R}:">
                                           <field name="TEXT">{"meterId":"1KFM00000754396","deviceId":"EBSD14250567526","msgType":"EMETER_OBIS_V2","measurements":[{"timestamp":"2022-12-03T13:25:53Z","values":{"1-0:96.90.21":"7E2005D2","1-0:0.2.00":"312E3033","1-0:14.7.0255":50,"1-0:81.7.26255":359,"1-0:81.7.15255":330,"1-0:81.7.4255":337,"1-0:81.7.2255":238,"1-0:81.7.1255":118,"1-0:71.7.0255":10.119999885559082,"1-0:51.7.0255":1.7100000381469727,"1-0:31.7.0255":0.89999997615814209,"1-0:72.7.0255":235.89999389648438,"1-0:52.7.0255":234.69999694824219,"1-0:32.7.0255":237,"1-0:16.7.0255":2818,"1-0:2.8.0255":0,"1-0:1.8.0255":9071.03125,"1-0:96.1.0255":"0A014B464D0000006E24","1-0:96.50.1*1":"4B464D"}}]}</field>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="debug" id="^5#in-UU}%!K~KPOKHz_">
                                           <field name="Severity">info</field>
                                           <value name="TEXT">
                                             <shadow type="text" id="-,TGC$b5|aHgxT-/9J]`">
                                               <field name="TEXT">test</field>
                                             </shadow>
                                             <block type="variables_get" id="nRXii?=4yGGy,y7%2jY(">
                                               <field name="VAR" id="NWR;`_N@3a:sTiBKQkne">Objekt</field>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="debug" id="C*BY:f~|[e)Xvn8W1*s{">
                                               <field name="Severity">info</field>
                                               <value name="TEXT">
                                                 <shadow type="text" id="michMudNxqrBOIIp?ntJ">
                                                   <field name="TEXT">test</field>
                                                 </shadow>
                                                 <block type="convert_jsonata" id="AS%.5T)U4NQRb~6pE|^y">
                                                   <value name="EXPRESSION">
                                                     <shadow type="text" id="]-J?Hivq,p/e0?KwDjKv">
                                                       <field name="TEXT">$.measurements[0].values.'1-0:96.50.1*1'</field>
                                                     </shadow>
                                                   </value>
                                                   <value name="TARGET">
                                                     <block type="variables_get" id="$:M+P`jmlylnj6q[{yF,">
                                                       <field name="VAR" id="NWR;`_N@3a:sTiBKQkne">Objekt</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="variables_set" id="QRu@$s3*df8mR7r@=iO#">
                                                   <field name="VAR" id="NWR;`_N@3a:sTiBKQkne">Objekt</field>
                                                   <value name="VALUE">
                                                     <block type="convert_json2object" id="R.c9ffe%vYu70tFC4Wg0">
                                                       <value name="VALUE">
                                                         <block type="variables_get" id="Z^;~j8`)]MoA[fRfSluS">
                                                           <field name="VAR" id="NWR;`_N@3a:sTiBKQkne">Objekt</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <next>
                                                     <block type="debug" id="yQlY]j3k2iPYr$s%:Z=c">
                                                       <field name="Severity">info</field>
                                                       <value name="TEXT">
                                                         <shadow type="text" id="michMudNxqrBOIIp?ntJ">
                                                           <field name="TEXT">test</field>
                                                         </shadow>
                                                         <block type="convert_jsonata" id="*P_(9@j7YL};L(Uz5~ZN">
                                                           <value name="EXPRESSION">
                                                             <shadow type="text" id="7abV56Ncd4Eb9CA7Gy|N">
                                                               <field name="TEXT">$.measurements[0].values.'1-0:96.50.1*1'</field>
                                                             </shadow>
                                                           </value>
                                                           <value name="TARGET">
                                                             <block type="variables_get" id="^3+giB~)?btQR6/;R1~a">
                                                               <field name="VAR" id="NWR;`_N@3a:sTiBKQkne">Objekt</field>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                    </xml>
                                    

                                    Oder heißt das, dass zum Extrahieren wird es temporär in ein Objekt gewandelt, wenn ich es aber weiterverwenden will, dann muss ich es konveritieren.

                                    Ja ich hab es mir selbst beantwortet. Vergiss diesen Post.

                                    Homoran 1 Reply Last reply Reply Quote 0
                                    • I
                                      ioBrokerMike @Homoran last edited by

                                      @homoran

                                      So jetzt die Filterung von Javascript:

                                         2024-11-29 20:59:14.006	warn	(COMPACT) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1876:34)
                                      
                                      javascript.0
                                      2024-11-29 20:59:14.006	warn	(COMPACT) at Object.<anonymous> (script.js.00_Anwesend.AnzahlAnwesend:17:3)
                                      
                                      javascript.0
                                      2024-11-29 20:59:14.005	warn	(COMPACT) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2090:20)
                                      
                                      javascript.0
                                      2024-11-29 20:59:14.003	warn	(COMPACT) You are assigning a number to the state "0_userdata.0.Anwesend.Anzahl" which expects a string. Please fix your code to use a string or change the state type to number. This warning might become an error in future versions.
                                      
                                      javascript.0
                                      2024-11-29 20:59:12.010	info	(COMPACT) State value to set for "0_userdata.0.Anwesend.Anzahl" has to be type "string" but received type "number"
                                      
                                      javascript.0
                                      2024-11-29 20:59:12.005	warn	(COMPACT) at processTimers (node:internal/timers:519:7)
                                      
                                      javascript.0
                                      2024-11-29 20:59:12.005	warn	(COMPACT) at listOnTimeout (node:internal/timers:581:17)
                                      
                                      javascript.0
                                      2024-11-29 20:59:12.004	warn	(COMPACT) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/Invocation.js:228:7)
                                      
                                      javascript.0
                                      2024-11-29 20:59:12.004	warn	(COMPACT) at /opt/iobroker/node_modules/node-schedule/lib/Invocation.js:268:28
                                      
                                      javascript.0
                                      2024-11-29 20:59:12.004	warn	(COMPACT) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/Job.js:171:15)
                                      
                                      javascript.0
                                      2024-11-29 20:59:12.004	warn	(COMPACT) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1876:34)
                                      
                                      javascript.0
                                      2024-11-29 20:59:12.003	warn	(COMPACT) at Object.<anonymous> (script.js.00_Anwesend.AnzahlAnwesend:17:3)
                                      
                                      javascript.0
                                      2024-11-29 20:59:12.003	warn	(COMPACT) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2090:20)
                                      
                                      javascript.0
                                      2024-11-29 20:59:12.002	warn	(COMPACT) You are assigning a number to the state "0_userdata.0.Anwesend.Anzahl" which expects a string. Please fix your code to use a string or change the state type to number. This warning might become an error in future versions.
                                      
                                      javascript.0
                                      2024-11-29 20:59:10.011	info	(COMPACT) State value to set for "0_userdata.0.Anwesend.Anzahl" has to be type "string" but received type "number"
                                      
                                      javascript.0
                                      2024-11-29 20:59:10.005	warn	(COMPACT) at processTimers (node:internal/timers:519:7)
                                      
                                      

                                      starte mal die Instsnz neu und mach rinen Browserrefresh (Strg-f5)

                                      Javascript und mqtt neugestartet sowie F5

                                      mickym Homoran 2 Replies Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @mickym last edited by

                                        @mickym Ist sehr interessant (vielleicht werd ich deswegen mit jsonata nicht warm), aber könnten wir das bitte aus diesem Thread erst mal herauslassen.

                                        ich fürchte wir verlieren @ioBrokerMike sonst.

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

                                          @iobrokermike Ja entweder konvertierst Du die Anzahl in eine Zahl oder den Datenpunkt in String/Zeichenkette.

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

                                            @homoran Ja ist OK - ich habs selbst gecheckt - Du kannst den Post auch löschen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            917
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            48
                                            1869
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo