Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Array mit Werten schieben und addieren

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    888

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Array mit Werten schieben und addieren

Scheduled Pinned Locked Moved Blockly
7 Posts 4 Posters 311 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    BeneJan
    wrote on last edited by
    #1

    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.

    HomoranH CodierknechtC paul53P 3 Replies Last reply
    0
    • B BeneJan

      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.

      HomoranH Do not disturb
      HomoranH Do not disturb
      Homoran
      Global Moderator Administrators
      wrote on last edited by
      #2

      @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

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Reply Last reply
      0
      • B BeneJan

        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.

        CodierknechtC Offline
        CodierknechtC Offline
        Codierknecht
        Developer Most Active
        wrote on last edited by Codierknecht
        #3

        @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

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        B 1 Reply Last reply
        0
        • CodierknechtC 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 Offline
          B Offline
          BeneJan
          wrote on last edited by
          #4

          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

          paul53P 2 Replies Last reply
          0
          • B BeneJan

            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

            paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by paul53
            #5

            @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.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Reply Last reply
            0
            • B BeneJan

              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

              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by paul53
              #6

              @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

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Reply Last reply
              0
              • B BeneJan

                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.

                paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by paul53
                #7

                @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.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                Support us

                ioBroker
                Community Adapters
                Donate

                522

                Online

                32.6k

                Users

                82.1k

                Topics

                1.3m

                Posts
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Home
                • Recent
                • Tags
                • Unread 0
                • Categories
                • Unreplied
                • Popular
                • GitHub
                • Docu
                • Hilfe