Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Wert von Dateien / Objekten splitten

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Wert von Dateien / Objekten splitten

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

      @el-lutschi ich kann dir das jetzt nicht auswendig genau schreiben, aber wenn die Reihenfolge von App und Wert gleich ist, musst du zwei Listen anlegen, dann jeweils den ersten, zweiten, usw... Eintrag extrahieren und die beiden Werte zusammenstellen.

      E 1 Reply Last reply Reply Quote 1
      • E
        el-lutschi @Homoran last edited by

        @homoran vielen Dank für die schnelle Hilfe. Der Tipp mit den Listen hat mich schon ein Stück weitergebracht. Ich habe es geschafft die einzelnen App Namen zu extrahieren und in Variablen zu schreiben.

        Nun ist es ja aber so, dass die Listenposition der App Namen variable ist und auch neue Apps dazu kommen können. Wie bekomme ich es nun hin, dass automatisch Objekte mit dem App Namen erstellt werden und die Nutzungszeit auch bei einem Positionswechsel wieder richtig erkannt wird?

        Homoran 1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @el-lutschi last edited by

          @el-lutschi sagte in Wert von Dateien / Objekten splitten:

          dass die Listenposition der App Namen variable ist und auch neue Apps dazu kommen können.

          das wäre nicht das Problem, solange die zugehörigen Werte an der selben Position in der anderen Liste stehen.

          Würde das Ganze nur etwas aufwändiger machen.

          @el-lutschi sagte in Wert von Dateien / Objekten splitten:

          in Variablen zu schreiben.

          Meinst du das, oder willst du die Einzeldaten in einzelne Datenpunkte schreiben.
          Oder snders gefrsgt: was soll bei erfolgreicher Implementierung rauskommen?

          E 1 Reply Last reply Reply Quote 0
          • E
            el-lutschi @Homoran last edited by

            @homoran aktuell sieht mein Blockly so aus:


            Screenshot 2024-02-02 115117.png

            Ich hätte am Ende gerne, dass automatisch Objekte anhand der App Namen auf der Liste erzeugt werden und die dazugehörige Nutzungszeit als Wert in den Datenpunkt geschrieben wird. Die App Namen und Nutzungszeit Listen werden alle 5 Minuten von meinem Android aktualisiert und an iobroker übermittelt. Um das ganze dann auch noch schön darzustellen, möchte ich die Werte an InfluxDB übergeben und mit Grafana visualisieren.

            DJMarc75 Homoran 2 Replies Last reply Reply Quote 0
            • DJMarc75
              DJMarc75 @el-lutschi last edited by

              @el-lutschi Welcher von den 2 Datenpunkten wird als erstes aktualisiert ? App oder Zeit ?

              E 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @el-lutschi last edited by

                @el-lutschi sagte in Wert von Dateien / Objekten splitten:

                aktuell sieht mein Blockly so aus:

                sieht doch schon mal gut aus.
                Das könnte man wahrscheinlich mit Schleifen deutlich vereinfachen. Ich bin nicht man 😁

                jetzt müsste man "nur" noch die Appnamen identifizieren um den zugehörigen Wert in drn entsprechenden Datenpunkt zu schreiben.
                der wird dann geloggt

                1 Reply Last reply Reply Quote 0
                • E
                  el-lutschi @DJMarc75 last edited by

                  @djmarc75 das könnte ich selbst bestimmen. Wieso fragst du?

                  Homoran DJMarc75 2 Replies Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @el-lutschi last edited by

                    @el-lutschi sagte in Wert von Dateien / Objekten splitten:

                    Wieso fragst du?

                    wahrscheinlich damit die Listen synchronisiert werden können und nicht auf unterschiedlich alte Listen mit unterschiedlicher Reihenfolge zugegriffen wird

                    E 1 Reply Last reply Reply Quote 0
                    • E
                      el-lutschi @Homoran last edited by

                      @homoran Das wäre nicht das Problem. Das lässt sich ja mit nem kleinen Timeout auf jeden Fall umgehen.

                      Gibt es eine Möglichkeit zu prüfen ob ein Datenpunkt bereits vorhanden ist?

                      Homoran DJMarc75 2 Replies Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @el-lutschi last edited by

                        @el-lutschi sagte in Wert von Dateien / Objekten splitten:

                        Gibt es eine Möglichkeit zu prüfen ob ein Datenpunkt bereits vorhanden ist?

                        ja! Warum?
                        ob es die Möglichkeit auch in Blockly gibt weiss ich nicht.
                        createState wird meines Wissens eh nur ausgeführt wenn es den Stste noch nicht gibt.

                        1 Reply Last reply Reply Quote 0
                        • DJMarc75
                          DJMarc75 @el-lutschi last edited by

                          @el-lutschi sagte in Wert von Dateien / Objekten splitten:

                          Wieso fragst du?

                          Weil ich Dir grad ein Blockly bastle 😉

                          1 Reply Last reply Reply Quote 0
                          • DJMarc75
                            DJMarc75 @el-lutschi last edited by DJMarc75

                            @el-lutschi

                            So funktioniert es wenn der DP Apps als zweites quasi ankommen würde, auf diesen wird in meinem Beispiel getriggert:

                            Screenshot 2024-02-02 131838.png

                            Funktion:

                            createState('0_userdata.0.Testdaten.Listen.Apps.' + id); 
                            

                            Im Bild der rote Pfeil bedeutet dass Du dort die Attribute per "erstelle Text aus" Block den jeweiligen Datenpunkt detailiert (Namen, Typ, usw) anlegen kannst - musst Du aber für Dich selbst entscheiden 😉

                            Screenshot 2024-02-02 130506.png

                            edit: Blocklybild getauscht 😉

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

                              @djmarc75 sagte in Wert von Dateien / Objekten splitten:

                              edit: Blocklybild getauscht

                              ohne roten Pfeil? 😉

                              DJMarc75 1 Reply Last reply Reply Quote 1
                              • DJMarc75
                                DJMarc75 @Homoran last edited by DJMarc75

                                @homoran sagte in Wert von Dateien / Objekten splitten:

                                ohne roten Pfeil?

                                shit 😲 - erledigt 😉

                                1 Reply Last reply Reply Quote 1
                                • DJMarc75
                                  DJMarc75 last edited by

                                  Nochmals etwas gepimpt:

                                  Screenshot 2024-02-02 133119.png

                                  Funktion:

                                  createState('0_userdata.0.Testdaten.Listen.Apps.' + id, JSON.parse(common)); 
                                  
                                  E 1 Reply Last reply Reply Quote 0
                                  • E
                                    el-lutschi @DJMarc75 last edited by

                                    @djmarc75 SUPER! Vielen Dank für die genaue Erklärung. Die Schleife hat mir noch gefehlt. Jetzt sollte es wohl so laufen wie ich es mir gewünscht habe.

                                    @Homoran Vielen Dank auch nochmal an dich. Habe schon wieder viel gelernt.

                                    DJMarc75 1 Reply Last reply Reply Quote 0
                                    • DJMarc75
                                      DJMarc75 @el-lutschi last edited by

                                      @el-lutschi Weil Du Dich so brav bedankt hast schick ich mal noch den Code zum Importieren und Anpassen 😉

                                      <xml xmlns="https://developers.google.com/blockly/xml">
                                       <variables>
                                         <variable id="1k^A1J*EP.*B0^0aWwj`">id</variable>
                                         <variable id="JxJP,WZSLd)UX:4U7:t[">common</variable>
                                         <variable id="}uTLUiGgPs@1g~d~m/C-">pos</variable>
                                         <variable id="r1JaAJ+.@Jzv/3vA]$tf">app</variable>
                                         <variable id="^)q~ew+@^y/iUwdoRHXU">time</variable>
                                         <variable id="(+ae[-z!yw)iUL4MQJ,Q">i</variable>
                                         <variable id="D?g9/OBk;Q,!,+3Oldwl">time2</variable>
                                       </variables>
                                       <block type="on_ext" id="6e|i%4SB[L%U#;;@oTOS" x="-137" y="338">
                                         <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                         <field name="CONDITION">any</field>
                                         <field name="ACK_CONDITION"></field>
                                         <value name="OID0">
                                           <shadow type="field_oid" id="agr6u%j5lOHE(_3VF6yM">
                                             <field name="oid">0_userdata.0.Testdaten.Listen.APP</field>
                                           </shadow>
                                         </value>
                                         <statement name="STATEMENT">
                                           <block type="variables_set" id="dlwAc=Mq[r`0|:0aMXkR">
                                             <field name="VAR" id="}uTLUiGgPs@1g~d~m/C-">pos</field>
                                             <value name="VALUE">
                                               <block type="math_number" id="`!Bq.%AJJb,Gk9jn]Y7^">
                                                 <field name="NUM">1</field>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="variables_set" id="VhTanx:2-Ni1:q}}:(Z}">
                                                 <field name="VAR" id="r1JaAJ+.@Jzv/3vA]$tf">app</field>
                                                 <value name="VALUE">
                                                   <block type="lists_split" id="-`JyCV{tMO~TI#Hz#xT:">
                                                     <mutation mode="SPLIT"></mutation>
                                                     <field name="MODE">SPLIT</field>
                                                     <value name="INPUT">
                                                       <block type="on_source" id="7s-1uNKtf^@TBgL0n!m8">
                                                         <field name="ATTR">state.val</field>
                                                       </block>
                                                     </value>
                                                     <value name="DELIM">
                                                       <shadow type="text" id="o$RhPF^x*ZpS6=i2TN?f">
                                                         <field name="TEXT">,</field>
                                                       </shadow>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="variables_set" id="QKB{bg6))1}D9d:wERXf">
                                                     <field name="VAR" id="^)q~ew+@^y/iUwdoRHXU">time</field>
                                                     <value name="VALUE">
                                                       <block type="lists_split" id="|#G%=c59m,f~{T5P!ED-">
                                                         <mutation mode="SPLIT"></mutation>
                                                         <field name="MODE">SPLIT</field>
                                                         <value name="INPUT">
                                                           <block type="get_value" id="]le1A{n0X.C2AyYsozFi">
                                                             <field name="ATTR">val</field>
                                                             <field name="OID">0_userdata.0.Testdaten.Listen.Time</field>
                                                           </block>
                                                         </value>
                                                         <value name="DELIM">
                                                           <shadow type="text" id="J4sBTuJS?-t0E/[8t0-v">
                                                             <field name="TEXT">,</field>
                                                           </shadow>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="controls_forEach" id="?0yXAqwgG{E7KCcY9$xM">
                                                         <field name="VAR" id="(+ae[-z!yw)iUL4MQJ,Q">i</field>
                                                         <value name="LIST">
                                                           <block type="variables_get" id=":gg1YSB]awd|$}]cC`)d">
                                                             <field name="VAR" id="r1JaAJ+.@Jzv/3vA]$tf">app</field>
                                                           </block>
                                                         </value>
                                                         <statement name="DO">
                                                           <block type="variables_set" id="lPw=,]e[449cWT]r4p:V">
                                                             <field name="VAR" id="D?g9/OBk;Q,!,+3Oldwl">time2</field>
                                                             <value name="VALUE">
                                                               <block type="lists_getIndex" id="RBMmq*~6?(;qv:68Y[%v">
                                                                 <mutation statement="false" at="true"></mutation>
                                                                 <field name="MODE">GET</field>
                                                                 <field name="WHERE">FROM_START</field>
                                                                 <value name="VALUE">
                                                                   <block type="variables_get" id="M~J/,+3FhY!@c)^@WzE7">
                                                                     <field name="VAR" id="^)q~ew+@^y/iUwdoRHXU">time</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="AT">
                                                                   <block type="variables_get" id="Y:G8uDE3wtDh-B6zfV1W">
                                                                     <field name="VAR" id="}uTLUiGgPs@1g~d~m/C-">pos</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <next>
                                                               <block type="procedures_callcustomnoreturn" id="jD7ETqsigTw2X6_;8kG~">
                                                                 <mutation name="createUserDP">
                                                                   <arg name="id"></arg>
                                                                   <arg name="common"></arg>
                                                                 </mutation>
                                                                 <value name="ARG0">
                                                                   <block type="variables_get" id="^wN#DNg,6D[:-YoDNb^R">
                                                                     <field name="VAR" id="(+ae[-z!yw)iUL4MQJ,Q">i</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="ARG1">
                                                                   <block type="text_join" id=":E49C-m/e7DVici7TT7h">
                                                                     <mutation items="5"></mutation>
                                                                     <value name="ADD0">
                                                                       <block type="text" id="cOg2|M$6^0]ubvD8y~~.">
                                                                         <field name="TEXT">{"name":"</field>
                                                                       </block>
                                                                     </value>
                                                                     <value name="ADD1">
                                                                       <block type="variables_get" id=",]|yGS?t_ni]J@~zw^G,">
                                                                         <field name="VAR" id="(+ae[-z!yw)iUL4MQJ,Q">i</field>
                                                                       </block>
                                                                     </value>
                                                                     <value name="ADD2">
                                                                       <block type="text" id="*G.jTFG_d:s}X:?We]Kx">
                                                                         <field name="TEXT">","type":"</field>
                                                                       </block>
                                                                     </value>
                                                                     <value name="ADD3">
                                                                       <block type="text" id="I1?nv{|6[aR1Gos_j1u,">
                                                                         <field name="TEXT">number</field>
                                                                       </block>
                                                                     </value>
                                                                     <value name="ADD4">
                                                                       <block type="text" id="xeE(n`HM!C^DP4De%tke">
                                                                         <field name="TEXT">"}</field>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                                 <next>
                                                                   <block type="control_ex" id="st!d,**Q)l4L`ET)GuNn">
                                                                     <field name="TYPE">true</field>
                                                                     <field name="CLEAR_RUNNING">FALSE</field>
                                                                     <value name="OID">
                                                                       <shadow type="field_oid" id="kL%)E^chi#+!h)zH3T9m">
                                                                         <field name="oid">Object ID</field>
                                                                       </shadow>
                                                                       <block type="text_join" id="KE^hGE!ky}1Ttxn0Yi0v">
                                                                         <mutation items="2"></mutation>
                                                                         <value name="ADD0">
                                                                           <block type="text" id="L#*?|.A`x6?00hPDhe3`">
                                                                             <field name="TEXT">0_userdata.0.Testdaten.Listen.Apps.</field>
                                                                           </block>
                                                                         </value>
                                                                         <value name="ADD1">
                                                                           <block type="variables_get" id="E8})|pr){9`uG+Q%:yiZ">
                                                                             <field name="VAR" id="(+ae[-z!yw)iUL4MQJ,Q">i</field>
                                                                           </block>
                                                                         </value>
                                                                       </block>
                                                                     </value>
                                                                     <value name="VALUE">
                                                                       <shadow type="logic_boolean" id="8%#F.f$.HaXZ$D.t!{Rg">
                                                                         <field name="BOOL">TRUE</field>
                                                                       </shadow>
                                                                       <block type="convert_tonumber" id="EfLIJbp)/3!$Ba~UksDw">
                                                                         <value name="VALUE">
                                                                           <block type="variables_get" id="$prpi{C{iEC|m.U,OoC7">
                                                                             <field name="VAR" id="D?g9/OBk;Q,!,+3Oldwl">time2</field>
                                                                           </block>
                                                                         </value>
                                                                       </block>
                                                                     </value>
                                                                     <value name="DELAY_MS">
                                                                       <shadow type="math_number" id="[nOxxtvC,7SEU?{?of:o">
                                                                         <field name="NUM">0</field>
                                                                       </shadow>
                                                                     </value>
                                                                     <next>
                                                                       <block type="math_change" id="PE):]T:-p9j-?7,tNk~)">
                                                                         <field name="VAR" id="}uTLUiGgPs@1g~d~m/C-">pos</field>
                                                                         <value name="DELTA">
                                                                           <shadow type="math_number" id="MX^#Tz%6.4#Y~gjsXHVj">
                                                                             <field name="NUM">1</field>
                                                                           </shadow>
                                                                         </value>
                                                                       </block>
                                                                     </next>
                                                                   </block>
                                                                 </next>
                                                               </block>
                                                             </next>
                                                           </block>
                                                         </statement>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </statement>
                                       </block>
                                       <block type="procedures_defcustomnoreturn" id="p(6V6V)#p2CL9m{iOhFO" x="213" y="338">
                                         <mutation statements="false">
                                           <arg name="id" varid="1k^A1J*EP.*B0^0aWwj`"></arg>
                                           <arg name="common" varid="JxJP,WZSLd)UX:4U7:t["></arg>
                                         </mutation>
                                         <field name="NAME">createUserDP</field>
                                         <field name="SCRIPT">Y3JlYXRlU3RhdGUoJzBfdXNlcmRhdGEuMC5UZXN0ZGF0ZW4uTGlzdGVuLkFwcHMuJyArIGlkLCBKU09OLnBhcnNlKGNvbW1vbikpOyA=</field>
                                         <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                       </block>
                                      </xml>
                                      

                                      E 1 Reply Last reply Reply Quote 0
                                      • E
                                        el-lutschi @DJMarc75 last edited by el-lutschi

                                        @djmarc75 Das ist lieb von dir 🙂

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        730
                                        Online

                                        32.0k
                                        Users

                                        80.4k
                                        Topics

                                        1.3m
                                        Posts

                                        3
                                        19
                                        472
                                        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