Navigation

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

    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 mit Blockly erstellen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @jerzimeik last edited by Homoran

      @jerzimeik sagte in JSON mit Blockly erstellen:

      Ich löse mal auf

      so in der Art will ich auch etwas generieren um es anschließend als Tabelle im JSON-Widget darstellen zu können.
      Bei mir kommt ohne die manuelle Funktion aber nicht das gewünschte raus:
      JSON_Array.png

      Weitere Datenreihen sollen noch folgen

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

        @homoran sagte: wenn in dem Array ein (oder mehrere) JSON sein soll?

        Das macht man nicht, sondern man erstellt ein Array of objects . JSON.stringify(array) macht aus dem ganzen Array ein JSON.

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

          @paul53 sagte:

          sondern man erstellt ein Array of objects

          das muss jetzt erst mal sacken!
          aber wenn ich dich schon mal dran hab 😉
          JSON_Array02.png

          Anführungsstreichen wurden escaped. Wann und ob man einfache Anführungszeichen nehmen darf/muss hab ich auch noch nicht verstanden

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

            @jerzimeik sagte: Ich habe Datenobjekte für einen Wert Januar bis Dezember.

            Hättest Du in der Datenpunkt-ID eine führende 0 für Januar bis September verwendet, würde der Selektor schon richtig sortieren.

            Da man mit Blockly keine Objekte erzeugen kann, benötigt man dafür eine JS-Funktion mit Ergebnis. Inhalt der Funktion monat_anzahl(id):

            return {Monat: getObject(id).common.name.substring(0, 7), Anzahl: getState(id).val};
            

            Blockly_temp.JPG

            <xml xmlns="https://developers.google.com/blockly/xml">
             <variables>
               <variable id="Bo~tGR5:/kUi:%hJI@J|">id</variable>
               <variable id="ViRHFqM2[LYzECku2Kxn">Liste</variable>
             </variables>
             <block type="schedule" id="V-O[P~`9nRu|91{agd=q" x="138" y="212">
               <field name="SCHEDULE">*/20 * * * * *</field>
               <statement name="STATEMENT">
                 <block type="variables_set" id="rum8(?e?6L~+z7cct^YY">
                   <field name="VAR" id="ViRHFqM2[LYzECku2Kxn">Liste</field>
                   <value name="VALUE">
                     <block type="lists_create_with" id=",?eod49;2jOZb(),+BV?">
                       <mutation items="0"></mutation>
                     </block>
                   </value>
                   <next>
                     <block type="controls_forEach" id="He@fMA`t532R5BD!+|]y">
                       <field name="VAR" id="Bo~tGR5:/kUi:%hJI@J|">id</field>
                       <value name="LIST">
                         <block type="selector" id="N.v[Iq2Fk7F$5e%S=_7Y">
                           <field name="TEXT">*.Anzahl(functions=rennrad_anzahl)</field>
                         </block>
                       </value>
                       <statement name="DO">
                         <block type="lists_setIndex" id="(Mh$*_Rdr_Y/c=nnS97/">
                           <mutation at="false"></mutation>
                           <field name="MODE">INSERT</field>
                           <field name="WHERE">LAST</field>
                           <value name="LIST">
                             <block type="variables_get" id="/+)oXd(`PqT~UCl@,3zH">
                               <field name="VAR" id="ViRHFqM2[LYzECku2Kxn">Liste</field>
                             </block>
                           </value>
                           <value name="TO">
                             <block type="procedures_callcustomreturn" id="#:t4wK:jUVIL4fEZ=fTV" inline="true">
                               <mutation name="monat_anzahl">
                                 <arg name="id"></arg>
                               </mutation>
                               <value name="ARG0">
                                 <block type="variables_get" id="DY,W+iip?A^(fL,7vA((">
                                   <field name="VAR" id="Bo~tGR5:/kUi:%hJI@J|">id</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                         </block>
                       </statement>
                       <next>
                         <block type="update" id=")kVm,vM]qdBsyITfSZv]">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                           <field name="OID">Object ID</field>
                           <field name="WITH_DELAY">FALSE</field>
                           <value name="VALUE">
                             <block type="convert_object2json" id="lhe98_uP[tcPS1d`Or42">
                               <field name="PRETTIFY">FALSE</field>
                               <value name="VALUE">
                                 <block type="variables_get" id="sA`Fp6(Vo%~EDa:SR/p)">
                                   <field name="VAR" id="ViRHFqM2[LYzECku2Kxn">Liste</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
               </statement>
             </block>
             <block type="procedures_defcustomreturn" id="@,34^k0|W;sA~juA.PPn" x="388" y="213">
               <mutation statements="false">
                 <arg name="id" varid="Bo~tGR5:/kUi:%hJI@J|"></arg>
               </mutation>
               <field name="NAME">monat_anzahl</field>
               <field name="SCRIPT">cmV0dXJuIHtNb25hdDogZ2V0T2JqZWN0KGlkKS5jb21tb24ubmFtZS5zdWJzdHJpbmcoMCwgNyksIEFuemFobDogZ2V0U3RhdGUoaWQpLnZhbH07</field>
               <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
             </block>
            </xml>
            

            Der Datenpunkt ist für die JSON-Tabelle in Vis geeignet (Überschriften: Monat, Anzahl).

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

              @paul53 sagte:

              Da man mit Blockly keine Objekte erzeugen kann,

              in Verbindung mit

              @paul53 sagte in JSON mit Blockly erstellen:

              man erstellt ein Array of objects

              heisst also dass das auch nur über eine js-Funktion geht?

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

                @homoran sagte: heisst also dass das auch nur über eine js-Funktion geht?

                Ja.

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

                  @paul53 Ich hatte gehofft, dass der nachträglich zugefügte Objekt Name ausreicht, um das sauber sortieren zu können 😞

                  So muss ich die Datenpunkte wohl noch mal neu anlegen.

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

                    @paul53 DANKE!
                    dann mache ich für heute damit Schluss und gehe das morgen an

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

                      @jerzimeik sagte: Ich hatte gehofft, dass der nachträglich zugefügte Objekt Name ausreicht, um das sauber sortieren zu können

                      Ja, da aber die Blockly-Sortierfunktion nur Zahlen und Strings sortieren kann, aber keine Objekte, benötigt man dafür auch wieder eine Javascript-Funktion.

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

                        @paul53
                        Ich habe jetzt mal alle Datenpunkte über den "raw-Modus" umgeschrieben. Scheint auch alles zu funktionieren.

                        Wie kann ich das ganze denn sonst "charmanter" in Javascript umsetzten, vor allem, wenn ich noch weitere Datenpunkte abfragen will und in json schreiben will?

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        865
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        4
                        24
                        6089
                        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