Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Gleitender Durchschnitt mit Blockly

    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

    Gleitender Durchschnitt mit Blockly

    This topic has been deleted. Only users with topic management privileges can see it.
    • madjack84
      madjack84 @ChrisNett last edited by madjack84

      Danke für die Tips.... leider scheitere ich irgendwo. Kann mir das bitte jmd erklären? ich hoffe ich liege zu brutal auf der Leitung 😮

      Bildschirmfoto 2022-05-21 um 01.54.52.png

      .... Wert ist ein Text :O.... i see

      1 Reply Last reply Reply Quote 1
      • J
        juergschwarz @jaenes last edited by

        @jaenes

        Falls das noch interessiert - ich habe einen gleitenden Durchschnitt für meine Solaranlage umgesetzt. Siehe Printscreen.

        In diesem Script wird eine Liste mit 12 Elementen erzeugt. Eine Schleife liest nun alle 5 Sekunden die aktuelle Leistung von der PV-Anlage (pv-power) ein. (5s * 12 = 1 Min.)

        Der aktuelle gleitende Durchschnitt steht hier in der lokalen Variablen 1-min-avg.

        Das Script kann für jede andere Zeit angepasst werden. Z.B. einen 5-Min Schnitt mit einer Liste mit 60 Elementen entsprechend.

        Bildschirmfoto vom 2022-10-08 19-42-42.png

        C 1 Reply Last reply Reply Quote 0
        • C
          chemieka @juergschwarz last edited by

          Ich finde die Idee des gleitenden Mittelwerts toll.
          Leider funktioniert die Variante unten nicht. Habe dabei von euch abgekupfert.
          Möchte den gleitenden Mittelwert aus 24h also 24 Werten.
          Aber irgendwie kommt dabei eher der letzte Wert raus.1.jpg
          Kann den Fehler nicht erkennen. Help please.

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

            @chemieka sagte: Kann den Fehler nicht erkennen.

            Damit die Liste einen Skriptstart übersteht, muss die Liste in einem Datenpunkt (Typ "array") gespeichert werden, der bei Skriptstart eingelesen wird.

            Bild_2023-01-11_194228006.png

            1 Reply Last reply Reply Quote 0
            • C
              chemieka last edited by

              @paul53
              Ich habe das jetzt 1 zu 1 nachgebaut wobei MittelTempMonat mal die Variable zu der Liste sein soll. Es spielt keine Rolle ob ich Zeichenkette oder Liste nehme. Wenn ich nur eine leere Liste erzeuge gehts.

              Leider Fehler 21:11:00.013 error javascript.0 (30115) script.js.javascript.MittelTemp: TypeError: Liste.push is not a function
              21:11:00.014 error javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:19:9)
              21:12:00.033 error javascript.0 (30115) script.js.javascript.MittelTemp: TypeError: Liste.push is not a function
              21:12:00.034 error javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:19:9)

              3.jpg

              C 1 Reply Last reply Reply Quote 0
              • C
                chemieka @chemieka last edited by chemieka

                @chemieka

                Wenn ich es so mache klappt das mit der Liste aber bei der Mittelwertsberechnung kommt dann kein wert:
                4.jpg
                5.jpg

                Homoran paul53 2 Replies Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @chemieka last edited by

                  @chemieka sagte in Gleitender Durchschnitt mit Blockly:

                  kommt dann kein wert:

                  doch, der ist aber keine Zahl!

                  sind alle Werte der Liste Zahlen?
                  wo kommen diese her?
                  liefert der Sensor die Werte als Zahl?

                  C 1 Reply Last reply Reply Quote 0
                  • C
                    chemieka @Homoran last edited by

                    @homoran
                    Die werte komme auf dem Blockyscript selber und kommen von einem Sensor.
                    Ja das Problem ist genau das, dass es das falsche Format.
                    Wenn ich mit einer leeren Liste anfange dann gehts. Jetzt will ich mir aber die Werte zur Sicherheit zwischenspeichern in einer externen Variable (MittelTempMonat). Das gelingt mir nicht so, dass ich die Daten wieder nehmen könnte und dann weiterschreiben.

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

                      @chemieka sagte: bei der Mittelwertsberechnung kommt dann kein wert:

                      Lass die Konvertierung "nach String" weg.

                      @homoran sagte in Gleitender Durchschnitt mit Blockly:

                      liefert der Sensor die Werte als Zahl?

                      "ACTUAL_TEMPERATURE" liefert Zahlen.

                      @chemieka sagte in Gleitender Durchschnitt mit Blockly:

                      TypeError: Liste.push is not a function

                      Dann steht im Listen-Datenpunkt etwas, was dort nicht rein gehört (keine Liste ist). Lösche den Wert komplett oder trage [] ein. "MittelTempMonat" ist vom Typ "array"?

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

                        @paul53
                        leider keine Änderung

                        6.jpg
                        7.jpg

                        Bei mir ist es in Deutsch und Array ist Zeichenkette? Das habe ich so.

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

                          @chemieka sagte: Bei mir ist es in Deutsch und Array ist Zeichenkette?

                          Nein, "array" ist eine Liste. Nach Typ-Änderung den Wert löschen oder []!

                          1 Reply Last reply Reply Quote 0
                          • C
                            chemieka @chemieka last edited by

                            @chemieka
                            Nehme ich aber nicht Zeichenkette sondern Liste geht schon mal die Variable MittelTempMonat
                            Aber er spuckt mir keinen Mittelwert aus.

                            22:24:40.009 warn javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:21:3)
                            22:24:50.004 warn javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:21:3)
                            22:24:50.014 error javascript.0 (30115) script.js.javascript.MittelTemp: TypeError: Liste.push is not a function
                            22:24:50.015 error javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:17:9)
                            22:25:00.005 error javascript.0 (30115) script.js.javascript.MittelTemp: TypeError: Liste.push is not a function
                            22:25:00.006 error javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:17:9)
                            22:25:00.019 warn javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:21:3)

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

                              @chemieka sagte: keinen Mittelwert

                              Der Datenpunkt ist vom Typ Zahl ("number")?

                              C 1 Reply Last reply Reply Quote 0
                              • C
                                chemieka @chemieka last edited by

                                @chemieka

                                Ich glaube so stimmen die Ergebnisse:
                                8.jpg

                                Kommen aber dennoch Alarme auch wenn die Werte wohl jetzt stimmen. Ohne String kommen noch mehr Alarme.

                                Homoran paul53 B 3 Replies Last reply Reply Quote 0
                                • C
                                  chemieka @paul53 last edited by

                                  @paul53
                                  ja ist es

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

                                    @chemieka da ust ja immer noch nach String beim Mittelwert

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

                                      @chemieka sagte: Ohne String kommen noch mehr Alarme.

                                      Lass unbedingt "nach String" weg!

                                      Die Liste scheint nicht in Ordnung zu sein. Bau einen Debug-output der Variablen Liste ein.

                                      Bild_2023-01-11_223631443.png

                                      C 1 Reply Last reply Reply Quote 0
                                      • C
                                        chemieka @paul53 last edited by Homoran

                                        @paul53
                                        String ist raus:
                                        Debug

                                        22:37:50.002	info	javascript.0 (30115) script.js.javascript.MittelTemp: [7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,6.9,6.9,6.9,6.9,6.9,6.9,6.9,6.9]
                                        22:37:50.005	warn	javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:21:3)
                                        22:37:50.017	error	javascript.0 (30115) script.js.javascript.MittelTemp: TypeError: Liste.push is not a function
                                        22:37:50.017	error	javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:17:9)
                                        22:38:00.003	error	javascript.0 (30115) script.js.javascript.MittelTemp: TypeError: Liste.push is not a function
                                        22:38:00.003	error	javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:17:9)
                                        22:38:00.006	info	javascript.0 (30115) script.js.javascript.MittelTemp: [7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,7.1,6.9,6.9,6.9,6.9,6.9,6.9,6.9,6.9,6.9]
                                        22:38:00.008	warn	javascript.0 (30115) at Object.<anonymous> (script.js.javascript.MittelTemp:21:3)
                                        

                                        MOD-EDIT: Code in code-tags gesetzt!

                                        Homoran paul53 2 Replies Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators @chemieka last edited by

                                          @chemieka Da sind doch jetzt wahrscheinlich auch Strings drin.
                                          Mach die Liste mal leer.

                                          und was steht in den Zeilen, die als Fehler angegeben werden?

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

                                            @chemieka sagte: TypeError: Liste.push is not a function

                                            Das kann ich nicht nachvollziehen, denn Liste.push() wird ausgeführt, wie man im Log von Liste sehen kann.

                                            Zur Warnung schau im Tab "Protokolle", wo weitere Informationen zu finden sind.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            727
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly
                                            15
                                            67
                                            11490
                                            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