Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

Array mit Werten schieben und addieren

Geplant Angeheftet Gesperrt Verschoben Blockly
7 Beiträge 4 Kommentatoren 309 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B Offline
    B Offline
    BeneJan
    schrieb am zuletzt editiert von
    #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 Antworten Letzte Antwort
    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 Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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 Online
        CodierknechtC Online
        Codierknecht
        Developer Most Active
        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antworten Letzte Antwort
          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
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                0
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                780

                Online

                32.5k

                Benutzer

                81.7k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Anmelden

                • Du hast noch kein Konto? Registrieren

                • Anmelden oder registrieren, um zu suchen
                • Erster Beitrag
                  Letzter Beitrag
                0
                • Home
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe