Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Array mit Werten schieben und addieren

    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

    Array mit Werten schieben und addieren

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

      Hallo zusammen,

      ich bekomme von meiner eigenen Wetterstation alle 3 Sekunden Messwerte von verschiedenen Sensoren übermittelt. In diesem Fall geht es um die Auswertung einer Kippwaage zur Berechnung der Regenmenge. Also Wert erhalte ich die Anzahl wie oft die Kippwaage ausgelöst hat innerhalb der letzten 3 Sekunden. Ich würde nun gerne 4 Auswertungen durchführen. Regenmenge der letzten Minuten, der letzten 10 Minuten, der letzten Stunde und der letzten 24 Stunden. Bevor ich auf iobroker umgestiegen bin habe ich das in C# so gelöst, dass eine Minuten alle ankommenden Werte addiert worden sind und danach in ein array geschoben worden ist auf die Stelle 0. Alle anderen Stellen im array wurden vorher um eins höher geschoben und der älteste Wert gelöscht. Also zusammengefasst wurde das array jede Minute um eine Stelle geschoben. Weil der längste Zeitraum, den ich auswerten will 24h sind, hatte das array 1440 Stellen. Ich habe ein bisschen in Blockly rumprobiert, aber wie kann ich das am einfachsten umsetzen? Oder ist es einfacher in JS? Schon einmal vielen Dank für eure Hilfe.

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

        @benejan sagte in Array mit Werten schieben und addieren:

        Ich habe ein bisschen in Blockly rumprobiert,

        wie sieht das aus?

        @benejan sagte in Array mit Werten schieben und addieren:

        aber wie kann ich das am einfachsten umsetzen?

        ein Schieberegister als Liste.
        neue Werte hinten einfügen
        wenn länge von liste >1440 lösche erstes Element.
        Summe über Liste

        fertig

        1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @BeneJan last edited by Codierknecht

          @benejan sagte in Array mit Werten schieben und addieren:

          Ich habe ein bisschen in Blockly rumprobiert

          Zeigen!

          https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge

          Ansonsten:

          in ein array geschoben worden ist auf die Stelle 0

          Das Prinzip:

          d5aaf864-8e5f-43af-81c5-cfa040963877-image.png

          B 1 Reply Last reply Reply Quote 0
          • B
            BeneJan @Codierknecht last edited by

            Danke für die Hinweise. Ich habe es jetzt so gelöst, dass ich immer das erste Element in der Liste lösche und damit alle anderen Elemente um eine Position nach vorne geschoben werden. Dann setzte ich den neuen Wert an die letzte Stelle. Danach folgen noch ein paar Rechenschritte.
            Screenshot 2025-02-18 082511.png

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

              @benejan
              Wo wird der DP "Regenmenge_1min_array" geschrieben?
              Wie hast du das Array in diesem DP auf 1440 Elemente gesetzt? Es genügt, den DP beim Skriptstart in die Variable Liste_1min einzulesen.

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

                @benejan sagte: das erste Element in der Liste lösche und damit alle anderen Elemente um eine Position nach vorne geschoben werden. Dann setzte ich den neuen Wert an die letzte Stelle.

                Wenn man es umgekehrt macht, liest sich das Skript leichter und bei Beobachtung im Admin sieht man den neuesten Wert in der Liste vorn.

                Blockly_temp.JPG

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

                  @benejan sagte: habe ich das in C# so gelöst

                  Dann sollte dir Javascript nicht schwer fallen, denn es ist ähnlich mit dem wesentlichen Unterschied, dass Javascript nicht typgebunden ist und durch Ereignisse gesteuert wird. Wiki für den Schnelleinstieg.

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  706
                  Online

                  31.9k
                  Users

                  80.1k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  204
                  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