Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Liste mit Blocky und Durchschnittswert daraus?

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Liste mit Blocky und Durchschnittswert daraus?

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      Jan1 last edited by

      Beim Thema Listen tu ich mich etwas schwer, weil die Blöcke hier eben nicht wirklich selbsterklärend sind.
      Ziel:
      Ich möchte den Durchschnittswert einer Liste aus z.B 5 Zahlen, die bei jedem Wechsel des DP Benzinpreis den aktuellen Preis in die Liste schreibt und aus den 5 Werten den Durchschnitt errechnet.

      Eigentlich recht simpel, nur fehlt mir hier der Ansatz, wie die Liste in Blockly aufgebaut werden muss.

      1 Reply Last reply Reply Quote 0
      • J
        Jan1 last edited by Jan1

        So ich habe mir mal ein Blockly ohne Liste gebaut, was anscheinend sogar funktioniert 🙂
        Hat wohl auch den Vorteil, dass wenn ich es über DPs löse, das ganze auch nicht so flüchtig ist.
        Könnte mir trotzdem einer bitte die Variante über eine Liste zeigen, damit ich verstehe wie das dann funktioniert?

        Hier mal mein Blockly ohne Liste:
        72e389bc-9265-49d6-8c88-a104bc9db13c-grafik.png

        83a3890f-8825-4f42-b3c2-221884c2013e-grafik.png
        Das läuft soweit ich das beurteilen kann und schmeißt auch keine Wahrungen im Log. Falls doch einer ne Verbesserung, oder anderen Ansatz mit selbem Ergebnis hat, ich bin offen dafür.

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

          @Jan1 sagte:

          Könnte mir trotzdem einer bitte die Variante über eine Liste zeigen

          Siehe hier. Oder:

          Blockly_gleitend_Mittel.JPG

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

            @paul53
            OK, ist die Antwort auf meine Frage, nur versteh ich da leider die Hälfte nicht wirklich. Ich könnte das jetzt einfach nachbauen, was bestimmt auch funktioniert. Bei so was habe ich dann aber immer etwas Magenschmerzen, weil ich es einfach nicht wirklich 100% verstehe.

            Dann Plan B, kann man mein Blockly so lassen, oder hast da eine Optimierung auf Lager? Habs mal durchgespielt und es scheint so schon zu laufen, kommt mir aber bisschen um die Ecke vor.

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

              Im Prinzip ist es vom Verständnis einfach so.
              Du hast das doch selbst mit den Datenpunkten geschrieben und das funktioniert.
              Wenn Du nun das ganze aus einer Liste extrahieren willst - dann musst Du nur jeden Datenpunkt in eine Variable oder ebenfalls in einen Datenpunkt schreiben.

              Im Prinzip musst Du wissen wie die Liste aufgebaut ist, die Zeile für Zeile einlesen und dann den Wert extrahieren und kannst ihn eben in einen Datenpunkt oder eine Variable schreiben.

              Diese verfährst Du mit diesem Variablen analog nach Deinem Verfahren zur Ermittlung des Durchschnittswertes .

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

                @Jan1 sagte:

                weil ich es einfach nicht wirklich 100% verstehe.

                Bau es nach und ergänze es nach jedem Schritt um einen Debug-Baustein mit Ausgabe des gerade veränderten Wertes, dann wirst Du es sicherlich auch verstehen.

                1 Reply Last reply Reply Quote 0
                • J
                  Jan1 @mickym last edited by Jan1

                  @mickym
                  Bei Listen stehe ich eben bisschen planlos da, da ich mir das nicht richtig vorstellen kann, wobei das wahrscheinlich einfach er ist, als ich es vermute und genau da liegt mein Problem.
                  Es muss auch keine Liste sein, war heute morgen nur mein erster Gedanke, weil ich da noch keine Idee hatte, wie ich es mit einem 08/15 Blockly lösen könnte. Das Blockly steht ja nun und so wie es aussieht funktioniert es so wie geplant. Normal bin ich mit meinen Konstrukten wenn sie laufen zufrieden. Das hier wirkt irgendwie verbesserungswürdig, wobei mir hier wieder der Ansatz fehlt 😉

                  @paul53
                  werd ich wohl machen, da das der einfachste Weg ist um ein Aha Effekt zu erlangen 🙂

                  1 Reply Last reply Reply Quote 0
                  • DAN78
                    DAN78 last edited by DAN78

                    Hallo Jan,

                    Für die Bildung des Mittelwert gibt es einen eigenen Mathe Block

                    Anmerkung 2020-04-20 005157.jpg

                    Wichtig:
                    Bitte schreibe diese Liste in einen DP und nicht wie im Beispiel in einer Variable. Sonst ist bei jedem Skript-Neustart (z.B. Stromausfall) dein Durchschnittswert weg.

                    J 3 Replies Last reply Reply Quote 0
                    • J
                      Jan1 @DAN78 last edited by

                      @DAN78
                      Es kann so einfach sein 😉

                      1 Reply Last reply Reply Quote 0
                      • J
                        Jan1 @DAN78 last edited by

                        @DAN78
                        So und ein Problem.
                        Wo finde ich den Baustein "in der Liste ... "? den zweiten bekomme ich hin, aber den ersten mit "entferne", klappt bei mir nicht, da ich eben genau kein entferne im dropdown Menü finde.
                        2902baf7-525d-4812-98c2-d54538675a1a-grafik.png

                        T BBTown 2 Replies Last reply Reply Quote 0
                        • T
                          ticaki Developer @Jan1 last edited by

                          @Jan1
                          Der Baustein der default "nimm" in diesem Feld stehen hat.

                          J 1 Reply Last reply Reply Quote 0
                          • BBTown
                            BBTown @Jan1 last edited by BBTown

                            @Jan1 schau mal, ist etwas tricky ...
                            Listeneintrag entfernen.gif

                            J 1 Reply Last reply Reply Quote 0
                            • J
                              Jan1 @ticaki last edited by

                              @ticaki
                              OK, den hatte ich nicht genommen, da der im defaut ja so aussieht:
                              91127ddd-66be-453f-af26-11f93aef5043-grafik.png

                              Das stört mich etwas in Blockly, dass die Blöcke teils ihre Funktion und Aussehen unvorhersehbar ändern, wenn man sie mit den dropdown Menüs ändert.

                              Aber danke für den Tipp 😉

                              1 Reply Last reply Reply Quote 0
                              • J
                                Jan1 @BBTown last edited by

                                @BBTown
                                in der Tat 🙂

                                1 Reply Last reply Reply Quote 0
                                • J
                                  Jan1 @DAN78 last edited by

                                  @DAN78
                                  Das Script läuft bei mir so nicht. Die Berechnung des Mittelwerts haut nicht hin, es wird immer der vorherige Wert ausgegeben.

                                  <xml xmlns="http://www.w3.org/1999/xhtml">
                                   <variables>
                                     <variable type="" id="Z7YA9elGc{dN6|%9b^C^">Diesel_Preis</variable>
                                     <variable type="undefined" id="timeout">timeout</variable>
                                   </variables>
                                   <block type="variables_set" id="{p%8-=pZAZlWp-tgkVm@" x="-912" y="-637">
                                     <field name="VAR" id="Z7YA9elGc{dN6|%9b^C^" variabletype="">Diesel_Preis</field>
                                     <value name="VALUE">
                                       <block type="lists_repeat" id="{qg%5he8]ciB[0WgQ0kP">
                                         <value name="NUM">
                                           <shadow type="math_number" id="Jk(V!lFQ?r|i,XfqoXUe">
                                             <field name="NUM">2</field>
                                           </shadow>
                                         </value>
                                         <value name="ITEM">
                                           <block type="get_value" id="oomKuc(`/0BH:y^5oId.">
                                             <field name="ATTR">val</field>
                                             <field name="OID">tankerkoenig.0.stations.0.diesel.short</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="on" id="|l+so4rSAA+u.~0Mh,hk">
                                         <field name="OID">tankerkoenig.0.stations.0.diesel.short</field>
                                         <field name="CONDITION">ne</field>
                                         <field name="ACK_CONDITION"></field>
                                         <statement name="STATEMENT">
                                           <block type="lists_getIndex" id="8(cv4e?.@A3K6Q))Y2]#">
                                             <mutation statement="true" at="false"></mutation>
                                             <field name="MODE">REMOVE</field>
                                             <field name="WHERE">LAST</field>
                                             <value name="VALUE">
                                               <block type="variables_get" id=",fUK7$d6wiC4]@lLLl/j">
                                                 <field name="VAR" id="Z7YA9elGc{dN6|%9b^C^" variabletype="">Diesel_Preis</field>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="lists_setIndex" id="ms8DE|WcS]uc+S.8ku[J">
                                                 <mutation at="false"></mutation>
                                                 <field name="MODE">INSERT</field>
                                                 <field name="WHERE">FIRST</field>
                                                 <value name="LIST">
                                                   <block type="variables_get" id="xar=2~Jq-j5KlU73,SWJ">
                                                     <field name="VAR" id="Z7YA9elGc{dN6|%9b^C^" variabletype="">Diesel_Preis</field>
                                                   </block>
                                                 </value>
                                                 <value name="TO">
                                                   <block type="on_source" id="kct_@=rqS[L{/nYZZs+f">
                                                     <field name="ATTR">state.val</field>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="timeouts_cleartimeout" id="q-cI+y+2*RWiNCRZ{[-J">
                                                     <field name="NAME">timeout</field>
                                                     <next>
                                                       <block type="timeouts_settimeout" id="Vsw}:%%fH[J)eA~W^STY">
                                                         <field name="NAME">timeout</field>
                                                         <field name="DELAY">2</field>
                                                         <field name="UNIT">sec</field>
                                                         <statement name="STATEMENT">
                                                           <block type="update" id="f?e?f=4?4l|AAEp2zW/d">
                                                             <mutation delay_input="false"></mutation>
                                                             <field name="OID">0_userdata.0.Sprit.Durchschnitt</field>
                                                             <field name="WITH_DELAY">FALSE</field>
                                                             <value name="VALUE">
                                                               <block type="math_on_list" id="3_km1{MHV|MI55bHjT~8">
                                                                 <mutation op="MIN"></mutation>
                                                                 <field name="OP">MIN</field>
                                                                 <value name="LIST">
                                                                   <block type="variables_get" id="zyg22x5=HPSIj!Al0P]g">
                                                                     <field name="VAR" id="Z7YA9elGc{dN6|%9b^C^" variabletype="">Diesel_Preis</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </statement>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </statement>
                                       </block>
                                     </next>
                                   </block>
                                  </xml>
                                  


                                  9a7bcd1b-477f-4a94-af21-359e6bc85124-grafik.png

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

                                    @Jan1
                                    Da steht im letzten Baustein minimalwert nicht mittelwert. 🙂 Bäume? Wald?

                                    J 1 Reply Last reply Reply Quote 0
                                    • J
                                      Jan1 @ticaki last edited by Jan1

                                      @ticaki
                                      Wie peinlich 😬
                                      Aber wie immer, wenn zwei Augen nix mehr sehen, hilft eben ein anderer.

                                      1 Reply Last reply Reply Quote 0
                                      • J
                                        Jan1 last edited by

                                        Klappt trotzdem nicht, weil der Adapter den DP als Zeichenkette deklariert und dann kommen sehr seltsame Werte raus, wenn ich zum Testen einfach mal 1, 2, 3 usw. eingebw

                                        {
                                          "from": "system.host.Pi3Bplus.cli",
                                          "ts": 1551075095600,
                                          "user": "system.user.admin",
                                          "common": {
                                            "name": "diesel short",
                                            "desc": "Preis Diesel (e.ee) zwei Dezimalstellen (nicht gerundet)",
                                            "type": "string",
                                            "role": "value",
                                            "read": true,
                                            "write": true
                                          },
                                          "native": {},
                                          "acl": {
                                            "object": 1636,
                                            "owner": "system.user.admin",
                                            "ownerGroup": "system.group.administrator",
                                            "state": 1636
                                          },
                                          "_id": "tankerkoenig.0.stations.0.diesel.short",
                                          "type": "state"
                                        }
                                        
                                        Homoran 1 Reply Last reply Reply Quote 0
                                        • T
                                          ticaki Developer last edited by ticaki

                                          Hilft dir das weiter?
                                          Bildschirmfoto 2020-04-21 um 12.58.53.png

                                          EDIT Quark, das hier sollte hilfreich sein:Bildschirmfoto 2020-04-21 um 13.00.33.png

                                          J 1 Reply Last reply Reply Quote 0
                                          • J
                                            Jan1 @ticaki last edited by

                                            @ticaki
                                            muss ich mal testen, aber erst morgen

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            953
                                            Online

                                            32.1k
                                            Users

                                            80.7k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            25
                                            3367
                                            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