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. Liste aus Temperaturen, Mittelwert wiedergeben [gelöst]

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    525

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

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

Liste aus Temperaturen, Mittelwert wiedergeben [gelöst]

Scheduled Pinned Locked Moved Blockly
25 Posts 7 Posters 5.1k Views 8 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.
  • CinimodC Offline
    CinimodC Offline
    Cinimod
    Most Active
    wrote on last edited by Cinimod
    #1

    Hallo freunde,

    ich habe ein Blockly Script welches mir Täglich einen Temperatur wert via Pushover schickt, nennen wir es "Status".
    Nun möchte ich aber zusätzlich einen Mittelwert der letzen 24 stunden haben, bekomme es aber irgendwie gedanklich nicht hin es umzusetzen.
    Mir wurde reichen wenn der Temperatur wert stündlich genommen wird, und dann einmal täglich der Mittelwert der letzten 24 Datenpunkte raus gezogen wird.
    Am besten diese auch wieder überschreibt, also nur 24 werte in einer liste, aus welcher ich dann nach belieben den Mittelwert zeihen kann.
    Vielleicht kann mir ja jemand auf die Sprünge helfen :relieved:

    Synology DS918+, Fritzbox 6690 Cable, #Docker #Blockly #Vis2 #Deconz #Tasmota

    paul53P 1 Reply Last reply
    0
    • CinimodC Cinimod

      Hallo freunde,

      ich habe ein Blockly Script welches mir Täglich einen Temperatur wert via Pushover schickt, nennen wir es "Status".
      Nun möchte ich aber zusätzlich einen Mittelwert der letzen 24 stunden haben, bekomme es aber irgendwie gedanklich nicht hin es umzusetzen.
      Mir wurde reichen wenn der Temperatur wert stündlich genommen wird, und dann einmal täglich der Mittelwert der letzten 24 Datenpunkte raus gezogen wird.
      Am besten diese auch wieder überschreibt, also nur 24 werte in einer liste, aus welcher ich dann nach belieben den Mittelwert zeihen kann.
      Vielleicht kann mir ja jemand auf die Sprünge helfen :relieved:

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

      @Dom-Sch
      Siehe hier.

      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
      • CinimodC Offline
        CinimodC Offline
        Cinimod
        Most Active
        wrote on last edited by
        #3

        Ah toll, danke, etwa sowas habe ich mir vorgestellt, leider bin ich noch blutiger Anfänger, währe cool wenn ich das in blockly umsetzen könnte, um es im Nachhinein besser verstehen oder ggf. mal bearbeiten zu können.

        Synology DS918+, Fritzbox 6690 Cable, #Docker #Blockly #Vis2 #Deconz #Tasmota

        paul53P 1 Reply Last reply
        0
        • CinimodC Cinimod

          Ah toll, danke, etwa sowas habe ich mir vorgestellt, leider bin ich noch blutiger Anfänger, währe cool wenn ich das in blockly umsetzen könnte, um es im Nachhinein besser verstehen oder ggf. mal bearbeiten zu können.

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

          @Dom-Sch sagte in Liste aus Temperaturen, Mittelwert wiedergeben:

          das in blockly umsetzen

          Erstelle erst einmal einen Datenpunkt vom Typ "Feld"("array"), in dem die 24 Werte gespeichert werden.
          Als nächstes fülle den Datenpunkt mit den aktuellen Temperaturwerten.

          Blockly_temp.JPG

          Das Script zum Füllen anschließend löschen und mit folgendem Blockly den Mittelwert ermitteln und in einen Datenpunkt schreiben.

          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

          Z 1 Reply Last reply
          0
          • CinimodC Offline
            CinimodC Offline
            Cinimod
            Most Active
            wrote on last edited by
            #5

            hallo paul53,
            erstmal danke für deine Hilfe, währe ich wohl nie drauf gekommen.
            rein aus interesse wüsste ich mal gern wo diese list erzeugt wird, kann man die als datenpunkt irgendwo sehen? finde den datenpunkt nicht.

            des weiteren habe ich probleme mit dem "entferne letzen wert", das finde ich in meinem blockly garnicht. kann bei diesem block nur "setze für" oder "füge als" auswählen, aber nicht "entferne" :thinking_face:

            Synology DS918+, Fritzbox 6690 Cable, #Docker #Blockly #Vis2 #Deconz #Tasmota

            paul53P AsgothianA 2 Replies Last reply
            0
            • X Offline
              X Offline
              xbow42
              wrote on last edited by
              #6

              @Dom-Sch
              so z.B. kannst du dir die Werte ins Log schreiben lassen.
              iobroker-liste.png

              M 1 Reply Last reply
              0
              • CinimodC Cinimod

                hallo paul53,
                erstmal danke für deine Hilfe, währe ich wohl nie drauf gekommen.
                rein aus interesse wüsste ich mal gern wo diese list erzeugt wird, kann man die als datenpunkt irgendwo sehen? finde den datenpunkt nicht.

                des weiteren habe ich probleme mit dem "entferne letzen wert", das finde ich in meinem blockly garnicht. kann bei diesem block nur "setze für" oder "füge als" auswählen, aber nicht "entferne" :thinking_face:

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

                @Dom-Sch sagte:

                finde den datenpunkt nicht.

                Den Datenpunkt musst Du im Reiter "Objekte" manuell anlegen. Oder per Blockly unter javascript.0

                Blockly_temp.JPG

                @Dom-Sch sagte in Liste aus Temperaturen, Mittelwert wiedergeben:

                "entferne letzen wert", das finde ich in meinem blockly garnicht.

                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
                • CinimodC Cinimod

                  hallo paul53,
                  erstmal danke für deine Hilfe, währe ich wohl nie drauf gekommen.
                  rein aus interesse wüsste ich mal gern wo diese list erzeugt wird, kann man die als datenpunkt irgendwo sehen? finde den datenpunkt nicht.

                  des weiteren habe ich probleme mit dem "entferne letzen wert", das finde ich in meinem blockly garnicht. kann bei diesem block nur "setze für" oder "füge als" auswählen, aber nicht "entferne" :thinking_face:

                  AsgothianA Offline
                  AsgothianA Offline
                  Asgothian
                  Developer
                  wrote on last edited by
                  #8

                  @Dom-Sch
                  Ich muss jetzt mal ganz dumm Fragen.. wieso dieser Aufwand mit der Liste ?

                  Mit 2 Datenpunkten kannst du das Problem einfach lösen:

                  DP1: Anzahl der aufaddierten Werte
                  DP2: Summe der aufaddierten Werte
                  nach 24 Werten (oder alternativ per Zeitplan:
                  Teile DP1 durch DP2, speichere als Tageswert, setze DP1=0, setze DP2=0.

                  A.

                  ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                  "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                  1 Reply Last reply
                  0
                  • CinimodC Offline
                    CinimodC Offline
                    Cinimod
                    Most Active
                    wrote on last edited by
                    #9

                    So, nun hab ich es endlich geschafft einen Datenpunkt zu erzeugen und ihn auch beschrieben mit 96 werten (habe es im Gedanken auf alle 15min geändert) natürlich vorerst alle gleich.

                    Wenn ich es richtig verstanden habe, brauche ich ja einen zweiten Datenpunkt der mit zur Ausgabe des Mittelwertes dient ?! Stimmt das so ?

                    Habe dein Script (Paul53) mal nachgebaut, ganz oben als Objekt ID habe ich den erstellten Datenpunkt ausgewählt (also die liste mit 96 werten).

                    Im Log taucht nun folgendes auf :

                    Bildschirmfoto 2020-02-09 um 14.41.11.png

                    Das Script sieht nun so aus:

                    Bildschirmfoto 2020-02-09 um 14.43.50.png

                    Synology DS918+, Fritzbox 6690 Cable, #Docker #Blockly #Vis2 #Deconz #Tasmota

                    paul53P 1 Reply Last reply
                    0
                    • CinimodC Cinimod

                      So, nun hab ich es endlich geschafft einen Datenpunkt zu erzeugen und ihn auch beschrieben mit 96 werten (habe es im Gedanken auf alle 15min geändert) natürlich vorerst alle gleich.

                      Wenn ich es richtig verstanden habe, brauche ich ja einen zweiten Datenpunkt der mit zur Ausgabe des Mittelwertes dient ?! Stimmt das so ?

                      Habe dein Script (Paul53) mal nachgebaut, ganz oben als Objekt ID habe ich den erstellten Datenpunkt ausgewählt (also die liste mit 96 werten).

                      Im Log taucht nun folgendes auf :

                      Bildschirmfoto 2020-02-09 um 14.41.11.png

                      Das Script sieht nun so aus:

                      Bildschirmfoto 2020-02-09 um 14.43.50.png

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

                      @Dom-Sch sagte

                      einen zweiten Datenpunkt der mit zur Ausgabe des Mittelwertes dient ?! Stimmt das so ?

                      Ja, Typ: Zahl, Einheit: °C

                      @Dom-Sch sagte in Liste aus Temperaturen, Mittelwert wiedergeben:

                      Im Log taucht nun folgendes auf :

                      Wurde der Datenpunkt "temp liste 1" vorher mit 96 Temperaturwerten gefüllt ?

                      @Dom-Sch sagte in Liste aus Temperaturen, Mittelwert wiedergeben:

                      auf alle 15min geändert

                      Dann muss der Zeitplan auch alle 15 Minuten triggern: "*/15 * * * *"

                      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
                      • CinimodC Offline
                        CinimodC Offline
                        Cinimod
                        Most Active
                        wrote on last edited by Cinimod
                        #11

                        Ja werte habe ich rein schreiben lassen, hatte jetzt nur jede minute zum testen eingestellt, das dürfte doch nicht das problem herbeirufen oder, löscht ja nur einen wert und setzt einen neuen davor... sollte ihm doch egal sein wie oft das passiert, oder ?!

                        Bildschirmfoto 2020-02-09 um 14.51.33.png

                        Synology DS918+, Fritzbox 6690 Cable, #Docker #Blockly #Vis2 #Deconz #Tasmota

                        paul53P 1 Reply Last reply
                        0
                        • CinimodC Cinimod

                          Ja werte habe ich rein schreiben lassen, hatte jetzt nur jede minute zum testen eingestellt, das dürfte doch nicht das problem herbeirufen oder, löscht ja nur einen wert und setzt einen neuen davor... sollte ihm doch egal sein wie oft das passiert, oder ?!

                          Bildschirmfoto 2020-02-09 um 14.51.33.png

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

                          @Dom-Sch sagte:

                          das dürfte doch nicht das problem herbeirufen

                          Nein. Die Fehlermeldung deutet darauf hin, dass kein Array eingelesen wurde. Deshalb füge mal 2 Debug-Blöcke ein:

                          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
                          • CinimodC Offline
                            CinimodC Offline
                            Cinimod
                            Most Active
                            wrote on last edited by Cinimod
                            #13

                            Habe nun den Datenpunkt "liste" geändert.

                            Erst den selbst erstellten Datenpunkt benutzt, nun den mit Blockly erstellten Datenpunkt, jetzt scheint es zu gehen, hab ich wohl was falsch gemacht beim erstellen :face_with_rolling_eyes:
                            Kann man nen Datenpunkt einfach kopieren ? wollte den eigentlich wo anders haben, währe aber auch nicht ganz so dramatisch wenn nicht ... hab es 1:1 versucht nachzubauen, trotzdem scheint er den Datenpunkt nicht zu mögen, als welchen Grund auch immer, vielleicht muss er einfach im Verzeichnis javascript.0 liegen :man-shrugging:

                            Synology DS918+, Fritzbox 6690 Cable, #Docker #Blockly #Vis2 #Deconz #Tasmota

                            paul53P 1 Reply Last reply
                            0
                            • CinimodC Cinimod

                              Habe nun den Datenpunkt "liste" geändert.

                              Erst den selbst erstellten Datenpunkt benutzt, nun den mit Blockly erstellten Datenpunkt, jetzt scheint es zu gehen, hab ich wohl was falsch gemacht beim erstellen :face_with_rolling_eyes:
                              Kann man nen Datenpunkt einfach kopieren ? wollte den eigentlich wo anders haben, währe aber auch nicht ganz so dramatisch wenn nicht ... hab es 1:1 versucht nachzubauen, trotzdem scheint er den Datenpunkt nicht zu mögen, als welchen Grund auch immer, vielleicht muss er einfach im Verzeichnis javascript.0 liegen :man-shrugging:

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

                              @Dom-Sch sagte:

                              hab ich wohl was falsch gemacht beim erstellen

                              Eher beim Befüllen mit den 96 Werten. Das kann man nicht per Hand, sondern nur per Script machen.

                              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
                              • CinimodC Offline
                                CinimodC Offline
                                Cinimod
                                Most Active
                                wrote on last edited by
                                #15

                                Hatte ich auch so gemacht wie du erlärt hast. stehen in beiden datenpunkten 96 werte drin. Mit dem einen geht es mit dem anderen nicht. Verstehe ich auch nicht wirklich.

                                Egal, geht ja jetzt, vielen Dank

                                Synology DS918+, Fritzbox 6690 Cable, #Docker #Blockly #Vis2 #Deconz #Tasmota

                                1 Reply Last reply
                                0
                                • CinimodC Offline
                                  CinimodC Offline
                                  Cinimod
                                  Most Active
                                  wrote on last edited by
                                  #16

                                  Du hattest natürlich recht :grimacing:
                                  Den Datenpunkt noch mal neu gefüllt, jetzt kann ich auch diesen nehmen, an dem Ort wo ich möchte.

                                  :100:

                                  Synology DS918+, Fritzbox 6690 Cable, #Docker #Blockly #Vis2 #Deconz #Tasmota

                                  1 Reply Last reply
                                  0
                                  • X xbow42

                                    @Dom-Sch
                                    so z.B. kannst du dir die Werte ins Log schreiben lassen.
                                    iobroker-liste.png

                                    M Offline
                                    M Offline
                                    Muhagl
                                    wrote on last edited by Muhagl
                                    #17

                                    @xbow42
                                    "und so umbauen" ..... wie geht das ????

                                    Hat sich erledigt - einfach blind :-) Vielen Dank für die Anleitung

                                    Hier mein Script:
                                    dc683995-a0d4-46fc-9f50-d9b55410e8b0-grafik.png

                                    Zu beachten ist, das sich durch die Mittelwertsberechnung bei einer grafischen Darstellung ein Shift ergibt....

                                    J 1 Reply Last reply
                                    0
                                    • M Muhagl

                                      @xbow42
                                      "und so umbauen" ..... wie geht das ????

                                      Hat sich erledigt - einfach blind :-) Vielen Dank für die Anleitung

                                      Hier mein Script:
                                      dc683995-a0d4-46fc-9f50-d9b55410e8b0-grafik.png

                                      Zu beachten ist, das sich durch die Mittelwertsberechnung bei einer grafischen Darstellung ein Shift ergibt....

                                      J Offline
                                      J Offline
                                      juergschwarz
                                      wrote on last edited by juergschwarz
                                      #18

                                      @Muhagl Ich hab das so gelöst für einen laufenden Durchschnitt für 15min:

                                      Bildschirmfoto von 2020-10-25 07-58-48.png

                                      1 Reply Last reply
                                      0
                                      • paul53P paul53

                                        @Dom-Sch sagte in Liste aus Temperaturen, Mittelwert wiedergeben:

                                        das in blockly umsetzen

                                        Erstelle erst einmal einen Datenpunkt vom Typ "Feld"("array"), in dem die 24 Werte gespeichert werden.
                                        Als nächstes fülle den Datenpunkt mit den aktuellen Temperaturwerten.

                                        Blockly_temp.JPG

                                        Das Script zum Füllen anschließend löschen und mit folgendem Blockly den Mittelwert ermitteln und in einen Datenpunkt schreiben.

                                        Blockly_temp.JPG

                                        Z Offline
                                        Z Offline
                                        zahnheinrich
                                        wrote on last edited by
                                        #19

                                        @paul53
                                        Hallo,
                                        bei mir läuft Dein blockly zum gleitenden Mittelwert seit einiger Zeit ohne Probleme:

                                        var Liste, Summe, i, Mittel;
                                        
                                        
                                        // einmalig Liste befüllen
                                        
                                        Liste = getState("0_userdata.0.Variablen.Lux_Durchschnitt").val;
                                        schedule("*/15 * * * * *", async function () {
                                          Liste.pop();
                                          Liste.unshift(getState("zigbee.1.04cf8cdf3c7b6097.illuminance").val);
                                          setState("0_userdata.0.Variablen.Lux_Durchschnitt"/*Lux_Durchschnitt*/, Liste, true);
                                          Summe = 0;
                                          for (i = 1; i <= 80; i++) {
                                            Summe = (typeof Summe == 'number' ? Summe : 0) + Liste[(i - 1)];
                                          }
                                          console.log(('Summe ist ' + String(Summe)));
                                          Mittel = Math.round(Summe / 80);
                                          setState("0_userdata.0.Variablen.Lux_Durchschnitt_Wert"/*Lux_Durchschnitt_Wert*/, Mittel, true);
                                          console.log(('Mittel ist ' + String(Mittel)));
                                        });
                                        

                                        Neuerdings bekomme ich diesen Fehler:

                                        15:28:30.012	error	javascript.0 (10504) at Object.<anonymous> (script.js.common.Verschiedenes.Lux_Durchnitt_berechnen:8:9)
                                        15:28:45.002	error	javascript.0 (10504) script.js.common.Verschiedenes.Lux_Durchnitt_berechnen: TypeError: Liste.pop is not a function
                                        

                                        Downgrade des javascript Adapters hat nicht geholfen, ebensowenig Neueingabe des scripts.
                                        Was kann ich tun?

                                        MfG Ulrich

                                        paul53P 1 Reply Last reply
                                        0
                                        • Z zahnheinrich

                                          @paul53
                                          Hallo,
                                          bei mir läuft Dein blockly zum gleitenden Mittelwert seit einiger Zeit ohne Probleme:

                                          var Liste, Summe, i, Mittel;
                                          
                                          
                                          // einmalig Liste befüllen
                                          
                                          Liste = getState("0_userdata.0.Variablen.Lux_Durchschnitt").val;
                                          schedule("*/15 * * * * *", async function () {
                                            Liste.pop();
                                            Liste.unshift(getState("zigbee.1.04cf8cdf3c7b6097.illuminance").val);
                                            setState("0_userdata.0.Variablen.Lux_Durchschnitt"/*Lux_Durchschnitt*/, Liste, true);
                                            Summe = 0;
                                            for (i = 1; i <= 80; i++) {
                                              Summe = (typeof Summe == 'number' ? Summe : 0) + Liste[(i - 1)];
                                            }
                                            console.log(('Summe ist ' + String(Summe)));
                                            Mittel = Math.round(Summe / 80);
                                            setState("0_userdata.0.Variablen.Lux_Durchschnitt_Wert"/*Lux_Durchschnitt_Wert*/, Mittel, true);
                                            console.log(('Mittel ist ' + String(Mittel)));
                                          });
                                          

                                          Neuerdings bekomme ich diesen Fehler:

                                          15:28:30.012	error	javascript.0 (10504) at Object.<anonymous> (script.js.common.Verschiedenes.Lux_Durchnitt_berechnen:8:9)
                                          15:28:45.002	error	javascript.0 (10504) script.js.common.Verschiedenes.Lux_Durchnitt_berechnen: TypeError: Liste.pop is not a function
                                          

                                          Downgrade des javascript Adapters hat nicht geholfen, ebensowenig Neueingabe des scripts.
                                          Was kann ich tun?

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

                                          @zahnheinrich
                                          Offenbar enthält der Datenpunkt "0_userdata.0.Variablen.Lux_Durchschnitt" keine Liste mehr.
                                          Welche Version des Javascript-Adpters? In neueren Versionen wurde auf JSON umgestellt, so dass es sein kann, dass die Liste neu befüllt werden muss. Einmalig ausführen:

                                          Bild_2021-09-12_155640.png

                                          Vorher den Javascript-Adapter aktualisieren.

                                          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

                                          Z 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

                                          609

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          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