Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. JSON Replace

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    JSON Replace

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

      @mickym bislang habe ich nur mit Blocky gearbeitet. Habe es da aber nicht hinbekommen (Search + Replace) und dachte darum an JavaScript.

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

        @bmp Leider verstehe ich gerade nicht, warum es bei Blockly und JS nicht tut - im JSONATA Editor aber schon. Ich versuche es noch mal mit einer anderen Funktion

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

          @mickym wollte dich gerade fragen, ob ich einfach zu blöd bin 🙂

          0e5d6bc0-7199-481c-b2fe-dd18b4001380-grafik.png

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

            @bmp Nein Du siehst ja dass es im JSONATA funktioniert - keine Ahnung warum es im Blockly nicht tut. OK - mit JSONATA gehts hier nicht - dabei wäre das so einfach - aber dann muss Dir wohl ein Mensch helfen.

            Ich habe es auch mit der Replace Funktion versucht - aber das tut auch nicht.

            https://try.jsonata.org/gY4gbHiOO

            $~>|$|{'startsAt': $replace(startsAt,/.*T(\d\d:\d\d).*/,"$1") & " Uhr"}|
            

            Sorry dann musst Du es wohl herkömmlich machen oder NodeRed nutzen. 😉

            Aber vielleicht hilft Dir ja noch jemand, der das besser als ich kann.

            B T 2 Replies Last reply Reply Quote 1
            • B
              BMP @mickym last edited by

              Aber vielleicht hilft Dir ja noch jemand, der das besser als ich kann.

              Ich danke dir auf jeden Fall für deine Unterstützung.
              Habe zumindest schon mal wieder eine neue Funktion gelernt und neue Ansätze gefunden.

              1 Reply Last reply Reply Quote 0
              • T
                ticaki Developer @mickym last edited by ticaki

                @mickym sagte in JSON Replace:

                @bmp Nein Du siehst ja dass es im JSONATA funktioniert - keine Ahnung warum es im Blockly nicht tut

                Im Datenpunkt stehen IMMER Strings, da funktioniert Jsonata nicht. 🙂

                Bildschirmfoto 2023-11-22 um 19.36.54.png

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

                  @mickym Ich habe den String ins Objekt gewandelt - hilft alles nichts - das tut nicht -warum auch immer. Mein JSONATA funktioniert jedenfalls - sieht man ja an den Links.

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

                    @mickym sagte in JSON Replace:

                    $~>|$|{'startsAt': $replace(startsAt,/.T(\d\d:\d\d)./,"$1") & " Uhr"}|

                    @BMP

                    Jetzt scheint es zu gehen - keine Ahnung warum:

                    1111facb-2c96-4877-8444-917f40dde893-image.png

                    Hier zum Import:

                    <xml xmlns="https://developers.google.com/blockly/xml">
                     <variables>
                       <variable id="lku$YIe5iNvg1c$0Ej,z">input</variable>
                     </variables>
                     <block type="variables_set" id="a:yUMjA;SVYpmzbjT2UH" x="62" y="38">
                       <field name="VAR" id="lku$YIe5iNvg1c$0Ej,z">input</field>
                       <value name="VALUE">
                         <block type="convert_json2object" id="4sG;:eC487S.@+;,|_3r">
                           <value name="VALUE">
                             <block type="text" id="Zld5[!#Qb48.OxSetn^@">
                               <field name="TEXT">[{"total":0.3018,"energy":0.098,"tax":0.2038,"startsAt":"2023-11-22T00:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.2982,"energy":0.095,"tax":0.2032,"startsAt":"2023-11-22T01:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.2982,"energy":0.095,"tax":0.2032,"startsAt":"2023-11-22T02:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.2946,"energy":0.092,"tax":0.2026,"startsAt":"2023-11-22T03:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.2952,"energy":0.0925,"tax":0.2027,"startsAt":"2023-11-22T04:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.298,"energy":0.0949,"tax":0.2031,"startsAt":"2023-11-22T05:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3281,"energy":0.1202,"tax":0.2079,"startsAt":"2023-11-22T06:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3526,"energy":0.1407,"tax":0.2119,"startsAt":"2023-11-22T07:00:00.000+01:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3656,"energy":0.1516,"tax":0.214,"startsAt":"2023-11-22T08:00:00.000+01:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3414,"energy":0.1313,"tax":0.2101,"startsAt":"2023-11-22T09:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.322,"energy":0.115,"tax":0.207,"startsAt":"2023-11-22T10:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3085,"energy":0.1036,"tax":0.2049,"startsAt":"2023-11-22T11:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.299,"energy":0.0957,"tax":0.2033,"startsAt":"2023-11-22T12:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.307,"energy":0.1024,"tax":0.2046,"startsAt":"2023-11-22T13:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3232,"energy":0.116,"tax":0.2072,"startsAt":"2023-11-22T14:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3277,"energy":0.1198,"tax":0.2079,"startsAt":"2023-11-22T15:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3363,"energy":0.127,"tax":0.2093,"startsAt":"2023-11-22T16:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3433,"energy":0.1329,"tax":0.2104,"startsAt":"2023-11-22T17:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3397,"energy":0.1299,"tax":0.2098,"startsAt":"2023-11-22T18:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3265,"energy":0.1188,"tax":0.2077,"startsAt":"2023-11-22T19:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3106,"energy":0.1054,"tax":0.2052,"startsAt":"2023-11-22T20:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.2918,"energy":0.0897,"tax":0.2021,"startsAt":"2023-11-22T21:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.2925,"energy":0.0902,"tax":0.2023,"startsAt":"2023-11-22T22:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.2741,"energy":0.0748,"tax":0.1993,"startsAt":"2023-11-22T23:00:00.000+01:00","currency":"EUR","level":"CHEAP"}]</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <next>
                         <block type="debug" id="oBK%FiTk|+1L+m8FWjd7">
                           <field name="Severity">log</field>
                           <value name="TEXT">
                             <shadow type="text" id="]8Er;zxg?rd2qL`S^-w,">
                               <field name="TEXT">test</field>
                             </shadow>
                             <block type="variables_get" id="]9=A;bpa4Yk73NUVBKOG">
                               <field name="VAR" id="lku$YIe5iNvg1c$0Ej,z">input</field>
                             </block>
                           </value>
                           <next>
                             <block type="debug" id="Z|^MIqi%,hIZomIBd82i">
                               <field name="Severity">log</field>
                               <value name="TEXT">
                                 <shadow type="text" id="!)(MH(n]Dbcg{-QnHP#!">
                                   <field name="TEXT">test</field>
                                 </shadow>
                                 <block type="convert_jsonata" id="OCPPy_qwDT^7)iKbCX`6">
                                   <value name="EXPRESSION">
                                     <shadow type="text" id="Dx7JBG-CyA5G|qNr}S/!">
                                       <field name="TEXT">$~&gt;|$|{'startsAt': $replace(startsAt,/.*T(\d\d:\d\d).*/,"$1") &amp; " Uhr"}|</field>
                                     </shadow>
                                   </value>
                                   <value name="TARGET">
                                     <block type="variables_get" id="N0h9PPzMtb?oPHrVua}}">
                                       <field name="VAR" id="lku$YIe5iNvg1c$0Ej,z">input</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                    </xml>
                    

                    Der Unterschied war wohl dass ich beim ersten Mal einen Text in die debug Ausgabe genommen haben und dann wurde das Objekt wohl wieder in Text umgewandelt. Die Puzzleteilchen sind leider nicht immer berechenbar - aber es scheint zu funktionieren, wenn es eine Objekt ist.

                    B 1 Reply Last reply Reply Quote 1
                    • B
                      BMP @mickym last edited by

                      Danke euch beiden für die Hilfe.
                      Teste ich heute abend. Gestern hatte ich es mit RegEx in Node-Red gelöst, was auch geklappt hat.

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

                        @bmp na da hättest du ja auch direkt die JSONATA Lösung nehmen können, wenn du anstelle der Puzzleteilchen die mächtigen Knoten verwendest.

                        cbf9b170-bdec-42d7-a159-eff82ca8e64e-image.png

                        [
                           {
                               "id": "9895941230ddcad6",
                               "type": "ioBroker in",
                               "z": "83a67ac0fc354489",
                               "name": "",
                               "topic": "0_userdata.0.Test.JSON",
                               "payloadType": "value",
                               "onlyack": "command",
                               "func": "all",
                               "gap": "",
                               "fireOnStart": "false",
                               "outFormat": "MQTT",
                               "x": 350,
                               "y": 980,
                               "wires": [
                                   [
                                       "47b0fe3ab658bb64"
                                   ]
                               ]
                           },
                           {
                               "id": "c2c03a2987a18332",
                               "type": "ioBroker out",
                               "z": "83a67ac0fc354489",
                               "name": "",
                               "topic": "0_userdata.0.Test.JSON",
                               "ack": "true",
                               "autoCreate": "false",
                               "stateName": "",
                               "role": "",
                               "payloadType": "",
                               "readonly": "",
                               "stateUnit": "",
                               "stateMin": "",
                               "stateMax": "",
                               "x": 1110,
                               "y": 1040,
                               "wires": []
                           },
                           {
                               "id": "47b0fe3ab658bb64",
                               "type": "json",
                               "z": "83a67ac0fc354489",
                               "name": "",
                               "property": "payload",
                               "action": "",
                               "pretty": false,
                               "x": 550,
                               "y": 980,
                               "wires": [
                                   [
                                       "878f714edc01978d"
                                   ]
                               ]
                           },
                           {
                               "id": "8c98f07d4f1052ea",
                               "type": "json",
                               "z": "83a67ac0fc354489",
                               "name": "",
                               "property": "payload",
                               "action": "",
                               "pretty": false,
                               "x": 910,
                               "y": 980,
                               "wires": [
                                   [
                                       "c2c03a2987a18332"
                                   ]
                               ]
                           },
                           {
                               "id": "878f714edc01978d",
                               "type": "change",
                               "z": "83a67ac0fc354489",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "payload~>|$|{\t   'startsAt':  $not($contains(startsAt,\"Uhr\")) ? $replace(startsAt,/.*T(\\d\\d:\\d\\d).*/,\"$1\") &   \" Uhr\"\t}|",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 730,
                               "y": 980,
                               "wires": [
                                   [
                                       "8c98f07d4f1052ea"
                                   ]
                               ]
                           }
                        ]
                        

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

                          @mickym Es hat geklappt mit deiner Lösung im Blocky 😉
                          Vielen lieben dank für deine Hilfe.

                          So brauche ich Node-Red nicht mitlaufen lassen.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          606
                          Online

                          31.7k
                          Users

                          79.9k
                          Topics

                          1.3m
                          Posts

                          3
                          13
                          411
                          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