Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JSON Wert mit Blockly schreiben

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    JSON Wert mit Blockly schreiben

    This topic has been deleted. Only users with topic management privileges can see it.
    • DJMarc75
      DJMarc75 @danielos last edited by

      @danielos ob Du uns mal dein komplettes Blockly zeigen magst ?

      1 Reply Last reply Reply Quote 0
      • J
        jr28 @Homoran last edited by

        @homoran

        ich hänge mich mal hier rein, weil ich ahne, was der TE vor hat:

        Die Bezeichnung des Objekts ist tatsächlich "Number of minutes from midnight in interval of 15", es ist ein Objekt des Tesla-Moduls.

        Der TE versucht das geplante Laden auszulösen, ich die geplante Abfahrtszeit.

        Mein json sieht so aus
        json.jpg und heißt "Change default json to modify"

        Die beiden gekringelten Werte müssen geändert werden. Am besten, ohne das json neu bauen zu müssen.

        das json des TE (wie am Thread-Anfang gezeigt) ist vergleichsweise einfacher. Letztlich wollen wir aber beide das gleiche.

        Ich lese mit ical den nächsten Termin der eine Ortsangabe hat, vermindere um die Alarmzeit und erhalte so meine "departure_time". (das geht dank der freundlichen Hilfe von @liv-in-sky wunderbar.

        Dieser Wert muss nun in das json geschrieben werden und zusätzlich der Wert "preconditioning_enabled" auf true gesetzt werden.

        Hier finde ich leider nirgendwo einen Hinweis, wie diese json-Werte in blockly geschrieben werden können.

        Homoran paul53 3 Replies Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @jr28 last edited by

          @jr28 sagte in JSON Wert mit Blockly schreiben:

          Mein json sieht so aus

          und befindet sich wie und wo?

          die einzutragenden Werte hast du bereits berechnet?

          J 1 Reply Last reply Reply Quote 0
          • J
            jr28 @Homoran last edited by

            @homoran

            37e854bc-b807-4c2b-b376-42b6b101f017-image.png
            fe9d18ec-43c0-40f8-b7f1-33fe13311c34-image.png
            Das json des TE ist obendrüber.

            Ja, den einzutragenden Wert habe ich bereits und muss nur noch eingetragen werden.

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

              @jr28 sagte: heißt "Change default json to modify"

              Poste bitte den JSON-Wert in Code tags, denn es hat sicherlich niemand Lust, das abzutippen.

              J 1 Reply Last reply Reply Quote 0
              • J
                jr28 @paul53 last edited by

                @paul53

                {
                "departure_time": 945,
                "preconditioning_weekdays_only": false,
                "enable": true,
                "off_peak_charging_enabled": false,
                "preconditioning_enabled": true,
                "end_off_peak_time": 420,
                "off_peak_charging_weekdays_only": true
                }

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

                  @jr28

                  Bild_2022-11-17_145209484.png

                  J 2 Replies Last reply Reply Quote 0
                  • J
                    jr28 @paul53 last edited by

                    @paul53

                    das heißt, dass ich das json immer erst komplett zusammenbauen muss, um es dann als Text in das Objekt zu schreiben?

                    (Sorry, wenn das jetzt eine "blöde" Frage ist, aber ich beschäftige mich jetzt erst seit 14 Tagen mit IO-Broker.)

                    paul53 Homoran L 3 Replies Last reply Reply Quote 0
                    • paul53
                      paul53 @jr28 last edited by

                      @jr28 sagte: das json immer erst komplett zusammenbauen muss, um es dann als Text in das Objekt zu schreiben?

                      In Javascript könnte man es als Objekt einlesen, die beiden Attribute ändern und als JSON schreiben. Blockly unterstützt das Objekt-Handling nur unzureichend.

                      J 1 Reply Last reply Reply Quote 0
                      • J
                        jr28 @paul53 last edited by jr28

                        @paul53

                        noch eine "blöde" Frage, weil ich meinen Tesla nicht irgendwann nach Mannheim tragen möchte, damit es dort gerichtet wird:

                        spielt die Art der Formatierung (also {, dann neue Zeile und neue Zeile nach jedem Wert) keine Rolle?

                        andernfalls würde ich die Methode JavaSript bevorzugen.

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

                          @jr28 sagte: spielt die Art der Formatierung (also {, dann neue Zeile und neue Zeile nach jedem Wert) keine Rolle?

                          JSON darf keine Zeilenschaltung enthalten!

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

                            @jr28 sagte in JSON Wert mit Blockly schreiben:

                            das heißt, dass ich das json immer erst komplett zusammenbauen muss, um es dann als Text in das Objekt zu schreiben?

                            solange der sonstige Inhalt konstant bleibt ist das doch egal.
                            Was stört dich daran?

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

                              @jr28 sagte: zusätzlich der Wert "preconditioning_enabled" auf true gesetzt werden.

                              Wenn der immer auf true gesetzt werden soll, benötigt man dafür keine Variable, sondern man kann es fest im Text verankern.

                              Blockly_temp.JPG

                              Ich habe keine Ahnung, ob es dem Adapter genügt, wenn man ein verkürztes JSON sendet, das nur die Attribute "departure_time" und "preconditioning_enabled" enthält.

                              Bild_2022-11-17_160451967.png

                              1 Reply Last reply Reply Quote 0
                              • L
                                Lucky_ESA Developer Most Active last edited by

                                Vielleicht hilft das.

                                <xml xmlns="https://developers.google.com/blockly/xml">
                                 <variables>
                                   <variable id="nl2mcBg+v./1.n=r[lbN">arr</variable>
                                   <variable id="Tn3lhvSQ*_}iAfZ_9Otb">att</variable>
                                   <variable id="x%B53[~zQVyc=3qtd7n|">value</variable>
                                   <variable id="w15a1MGC2*azw~AFrt}A">array_1</variable>
                                 </variables>
                                 <block type="procedures_defcustomreturn" id="Rp_Yt5xHvYYYfyg%d-=[" x="-262" y="-37">
                                   <mutation statements="false">
                                     <arg name="arr" varid="nl2mcBg+v./1.n=r[lbN"></arg>
                                     <arg name="att" varid="Tn3lhvSQ*_}iAfZ_9Otb"></arg>
                                     <arg name="value" varid="x%B53[~zQVyc=3qtd7n|"></arg>
                                   </mutation>
                                   <field name="NAME">etwas tun</field>
                                   <field name="SCRIPT">YXJyW2F0dF0gPSB2YWx1ZTsNCnJldHVybiBhcnI7</field>
                                   <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                 </block>
                                 <block type="variables_set" id="*p1g(R6$#k@!Bk8K52IB" x="-262" y="13">
                                   <field name="VAR" id="w15a1MGC2*azw~AFrt}A">array_1</field>
                                   <value name="VALUE">
                                     <block type="convert_json2object" id="k8q%UwJPqTq|49)xlj=0">
                                       <value name="VALUE">
                                         <block type="get_value" id="!zK?6WTB%BG@?]-/k:V@">
                                           <field name="ATTR">val</field>
                                           <field name="OID">0_userdata.0.hallo</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="debug" id="[3-#pbr!!l*w*wXx3d4@">
                                       <field name="Severity">log</field>
                                       <value name="TEXT">
                                         <shadow type="text" id="5D^j`kV?g@O=^hg5DQL$">
                                           <field name="TEXT">test</field>
                                         </shadow>
                                         <block type="procedures_callcustomreturn" id=",f+Y(N6*X^iy+JoCRK;]">
                                           <mutation name="etwas tun">
                                             <arg name="arr"></arg>
                                             <arg name="att"></arg>
                                             <arg name="value"></arg>
                                           </mutation>
                                           <value name="ARG0">
                                             <block type="variables_get" id="=D1@Frh?cQA~|],t:d2P">
                                               <field name="VAR" id="w15a1MGC2*azw~AFrt}A">array_1</field>
                                             </block>
                                           </value>
                                           <value name="ARG1">
                                             <block type="text" id="Zjr0C+m-(*f[5U`LYIr6">
                                               <field name="TEXT">preconditioning_weekdays_only</field>
                                             </block>
                                           </value>
                                           <value name="ARG2">
                                             <block type="logic_boolean" id="?6|ikyT*e}L0kM5l[8;Z">
                                               <field name="BOOL">TRUE</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="update" id="}EPy[_WE9z{wIq){455^">
                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                           <field name="OID">0_userdata.0.hallo</field>
                                           <field name="WITH_DELAY">FALSE</field>
                                           <value name="VALUE">
                                             <block type="convert_object2json" id="_F^7#k~c%D(yODCA_nhe">
                                               <field name="PRETTIFY">FALSE</field>
                                               <value name="VALUE">
                                                 <block type="variables_get" id="H24!l/J[aXOJCKYX1!a{">
                                                   <field name="VAR" id="w15a1MGC2*azw~AFrt}A">array_1</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                                </xml>
                                

                                Gruß//Lucky

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

                                  @lucky_esa sagte: Vielleicht hilft das.

                                  Das ist aufgrund der verwendeten Bezeichner eher verwirrend. Außerdem benötigt man kein return, da Objekte per Referenz übergeben werden.

                                  Blockly_temp.JPG

                                  Inhalt der Funktion setAttribut(obj, attr, val):

                                  obj[attr] = val;
                                  

                                  Bild_2022-11-17_182426267.png

                                  1 Reply Last reply Reply Quote 0
                                  • L
                                    Lucky_ESA Developer Most Active @jr28 last edited by

                                    @jr28 sagte in JSON Wert mit Blockly schreiben:

                                    @paul53

                                    das heißt, dass ich das json immer erst komplett zusammenbauen muss, um es dann als Text in das Objekt zu schreiben?

                                    Das Blockly ist für dich gedacht.

                                    @paul53
                                    Wie man die Function und die Variablen benennt ist jedem selber überlassen. Jeder hat sein eigenes System wie man was wie schreibt. Ein return dient bei großen Blocklys zur besseren Übersicht. Aber auch das ist jedem selber überlassen.

                                    Gruß//Lucky

                                    paul53 Codierknecht 2 Replies Last reply Reply Quote 0
                                    • paul53
                                      paul53 @Lucky_ESA last edited by

                                      @lucky_esa sagte: Wie man die Function und die Variablen benennt ist jedem selber überlassen.

                                      Ja, aber mit der Bezeichnung Array werden gerade Anfänger auf eine falsche Fährte geführt.

                                      L 1 Reply Last reply Reply Quote 0
                                      • L
                                        Lucky_ESA Developer Most Active @paul53 last edited by

                                        @paul53 sagte in JSON Wert mit Blockly schreiben:

                                        Ja, aber mit der Bezeichnung Array werden gerade Anfänger auf eine falsche Fährte geführt.

                                        Auch das ist Ansichtssache. Einem Anfäger mit einem Bild zu zeigen wie man ein Attribut hinzufügt statt zu ändern kann auch verwirren 😁

                                        Gruß//Lucky

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

                                          @lucky_esa sagte: Bild zu zeigen wie man ein Attribut hinzufügt statt zu ändern

                                          Habe das Bild geändert.

                                          1 Reply Last reply Reply Quote 1
                                          • J
                                            jr28 @paul53 last edited by

                                            @paul53

                                            da ich mir sicher sein wollte alles richtig zu machen habe ich folgendes gemacht:

                                            fab2bff5-0fc8-4d21-95e5-026acefb6b4b-image.png

                                            Wieso schlägt der Vergleich fehl?
                                            Ich will absolut sicher sein bevor ich in den Tiefen meines Tesla was schreibe.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            41
                                            2368
                                            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