Verständnis Archiv auswerten

Hallo zusammen,

ich habe mir im Webfront eine Eingabemaske gebaut um bestimmte Werte aus dem Archiv zu holen, das gebe ich dann in einer Texbox aus.
Mit den geloggten Werten als Zähler klappt alles wie gewünscht.
Ich habe mir im Webfront einen Unix Timestamp (Editierbar) hinzugefügt, dieser wählt den gewüschten Zeitbereich aus, ebenso habe ich eine Werteauswahl für den Aggregationstyp und den Aggregationszeitraum.
Der Sinn dahinter: Man soll durch Auswahl eines Zeitraumes bestimmte Werte Min, Max, Avg per klick angezeigt bekommen.

Bei Werten die als Standard geloggt sind habe ich Probleme z.B. Aussentemperatur.
Ich möchte z.B. vom 17.01.2022 bis 18.04 2022 die durchschnittliche Aussentemepratur ermitteln.
Da die Ausgaben ja nur auf den Aggregationszeitraum z.B. stündlich, täglich ermittelt werden weis ich.
Also wollte ich für den oben genannten Zeitbereich Werte aus dem Array [‚Avg‘] einfach durch die Anzahl der Arraywerte dividieren und schon hätte ich den Durchschnittswert.
Ich bekomme aber bei folgenden Code, folgende Ausgabe.

 case 1: //Windgeschwindigkeit
     	$werte = AC_GetAggregatedValues(24614, 37253, GetValueInteger(15974) , $datum_start, $datum_ende, 0);

//dann gehts so weiter 
//test
                        foreach($werte as $werte_Gesamt_sort) {      //Werte in anderes Array schreiben
                               $werte_Windgeschwindigkeit_Avg[] = $werte_Gesamt_sort['Avg'];    //Nur die Werte mit key (Avg) in ein 2 tes Array schreiben 
                                                    }
                               print_r($werte_Windgeschwindigkeit_Avg);  

Folgendes Array erhalte ich bei einem Zeitraum vom 20.01.2023 00:00 bis 20.01.2023 7:00
Typ = Avg
Zeitraum = Stunden

Anzahl Werte in Array: 8
Array
(
    [0] => 5,0990000016093
    [1] => 1,6406000080258
    [2] => 0,60940000203252
    [3] => 1,5986000114977
    [4] => 3,872500013642
    [5] => 1,7892999990657
    [6] => 2,2093000146523
    [7] => 3,1704000160992
)
Array
(
    [0] => 5,0990000016093
    [1] => 1,6406000080258
    [2] => 0,60940000203252
    [3] => 1,5986000114977
    [4] => 3,872500013642
    [5] => 1,7892999990657
    [6] => 2,2093000146523
    [7] => 3,1704000160992
    [8] => 5,0990000016093
    [9] => 1,6406000080258
    [10] => 0,60940000203252
    [11] => 1,5986000114977
    [12] => 3,872500013642
    [13] => 1,7892999990657
    [14] => 2,2093000146523
    [15] => 3,1704000160992
)
Array
(
    [0] => 5,0990000016093
    [1] => 1,6406000080258
    [2] => 0,60940000203252
    [3] => 1,5986000114977
    [4] => 3,872500013642
    [5] => 1,7892999990657
    [6] => 2,2093000146523
    [7] => 3,1704000160992
    [8] => 5,0990000016093
    [9] => 1,6406000080258
    [10] => 0,60940000203252
    [11] => 1,5986000114977
    [12] => 3,872500013642
    [13] => 1,7892999990657
    [14] => 2,2093000146523
    [15] => 3,1704000160992
    [16] => 5,0990000016093
    [17] => 1,6406000080258
    [18] => 0,60940000203252
    [19] => 1,5986000114977
    [20] => 3,872500013642
    [21] => 1,7892999990657
    [22] => 2,2093000146523
    [23] => 3,1704000160992
)
Array
(
    [0] => 5,0990000016093
    [1] => 1,6406000080258
    [2] => 0,60940000203252
    [3] => 1,5986000114977
    [4] => 3,872500013642
    [5] => 1,7892999990657
    [6] => 2,2093000146523
    [7] => 3,1704000160992
    [8] => 5,0990000016093
    [9] => 1,6406000080258
    [10] => 0,60940000203252
    [11] => 1,5986000114977
    [12] => 3,872500013642
    [13] => 1,7892999990657
    [14] => 2,2093000146523
    [15] => 3,1704000160992
    [16] => 5,0990000016093
    [17] => 1,6406000080258
    [18] => 0,60940000203252
    [19] => 1,5986000114977
    [20] => 3,872500013642
    [21] => 1,7892999990657
    [22] => 2,2093000146523
    [23] => 3,1704000160992
    [24] => 5,0990000016093
    [25] => 1,6406000080258
    [26] => 0,60940000203252
    [27] => 1,5986000114977
    [28] => 3,872500013642
    [29] => 1,7892999990657
    [30] => 2,2093000146523
    [31] => 3,1704000160992
)
Array
(
    [0] => 5,0990000016093
    [1] => 1,6406000080258
    [2] => 0,60940000203252
    [3] => 1,5986000114977
    [4] => 3,872500013642
    [5] => 1,7892999990657
    [6] => 2,2093000146523
    [7] => 3,1704000160992
    [8] => 5,0990000016093
    [9] => 1,6406000080258
    [10] => 0,60940000203252
    [11] => 1,5986000114977
    [12] => 3,872500013642
    [13] => 1,7892999990657
    [14] => 2,2093000146523
    [15] => 3,1704000160992
    [16] => 5,0990000016093
    [17] => 1,6406000080258
    [18] => 0,60940000203252
    [19] => 1,5986000114977
    [20] => 3,872500013642
    [21] => 1,7892999990657
    [22] => 2,2093000146523
    [23] => 3,1704000160992
    [24] => 5,0990000016093
    [25] => 1,6406000080258
    [26] => 0,60940000203252
    [27] => 1,5986000114977
    [28] => 3,872500013642
    [29] => 1,7892999990657
    [30] => 2,2093000146523
    [31] => 3,1704000160992
    [32] => 5,0990000016093
    [33] => 1,6406000080258
    [34] => 0,60940000203252
    [35] => 1,5986000114977
    [36] => 3,872500013642
    [37] => 1,7892999990657
    [38] => 2,2093000146523
    [39] => 3,1704000160992
)
Array
(
    [0] => 5,0990000016093
    [1] => 1,6406000080258
    [2] => 0,60940000203252
    [3] => 1,5986000114977
    [4] => 3,872500013642
    [5] => 1,7892999990657
    [6] => 2,2093000146523
    [7] => 3,1704000160992
    [8] => 5,0990000016093
    [9] => 1,6406000080258
    [10] => 0,60940000203252
    [11] => 1,5986000114977
    [12] => 3,872500013642
    [13] => 1,7892999990657
    [14] => 2,2093000146523
    [15] => 3,1704000160992
    [16] => 5,0990000016093
    [17] => 1,6406000080258
    [18] => 0,60940000203252
    [19] => 1,5986000114977
    [20] => 3,872500013642
    [21] => 1,7892999990657
    [22] => 2,2093000146523
    [23] => 3,1704000160992
    [24] => 5,0990000016093
    [25] => 1,6406000080258
    [26] => 0,60940000203252
    [27] => 1,5986000114977
    [28] => 3,872500013642
    [29] => 1,7892999990657
    [30] => 2,2093000146523
    [31] => 3,1704000160992
    [32] => 5,0990000016093
    [33] => 1,6406000080258
    [34] => 0,60940000203252
    [35] => 1,5986000114977
    [36] => 3,872500013642
    [37] => 1,7892999990657
    [38] => 2,2093000146523
    [39] => 3,1704000160992
    [40] => 5,0990000016093
    [41] => 1,6406000080258
    [42] => 0,60940000203252
    [43] => 1,5986000114977
    [44] => 3,872500013642
    [45] => 1,7892999990657
    [46] => 2,2093000146523
    [47] => 3,1704000160992
)
Array
(
    [0] => 5,0990000016093
    [1] => 1,6406000080258
    [2] => 0,60940000203252
    [3] => 1,5986000114977
    [4] => 3,872500013642
    [5] => 1,7892999990657
    [6] => 2,2093000146523
    [7] => 3,1704000160992
    [8] => 5,0990000016093
    [9] => 1,6406000080258
    [10] => 0,60940000203252
    [11] => 1,5986000114977
    [12] => 3,872500013642
    [13] => 1,7892999990657
    [14] => 2,2093000146523
    [15] => 3,1704000160992
    [16] => 5,0990000016093
    [17] => 1,6406000080258
    [18] => 0,60940000203252
    [19] => 1,5986000114977
    [20] => 3,872500013642
    [21] => 1,7892999990657
    [22] => 2,2093000146523
    [23] => 3,1704000160992
    [24] => 5,0990000016093
    [25] => 1,6406000080258
    [26] => 0,60940000203252
    [27] => 1,5986000114977
    [28] => 3,872500013642
    [29] => 1,7892999990657
    [30] => 2,2093000146523
    [31] => 3,1704000160992
    [32] => 5,0990000016093
    [33] => 1,6406000080258
    [34] => 0,60940000203252
    [35] => 1,5986000114977
    [36] => 3,872500013642
    [37] => 1,7892999990657
    [38] => 2,2093000146523
    [39] => 3,1704000160992
    [40] => 5,0990000016093
    [41] => 1,6406000080258
    [42] => 0,60940000203252
    [43] => 1,5986000114977
    [44] => 3,872500013642
    [45] => 1,7892999990657
    [46] => 2,2093000146523
    [47] => 3,1704000160992
    [48] => 5,0990000016093
    [49] => 1,6406000080258
    [50] => 0,60940000203252
    [51] => 1,5986000114977
    [52] => 3,872500013642
    [53] => 1,7892999990657
    [54] => 2,2093000146523
    [55] => 3,1704000160992
)
Array
(
    [0] => 5,0990000016093
    [1] => 1,6406000080258
    [2] => 0,60940000203252
    [3] => 1,5986000114977
    [4] => 3,872500013642
    [5] => 1,7892999990657
    [6] => 2,2093000146523
    [7] => 3,1704000160992
    [8] => 5,0990000016093
    [9] => 1,6406000080258
    [10] => 0,60940000203252
    [11] => 1,5986000114977
    [12] => 3,872500013642
    [13] => 1,7892999990657
    [14] => 2,2093000146523
    [15] => 3,1704000160992
    [16] => 5,0990000016093
    [17] => 1,6406000080258
    [18] => 0,60940000203252
    [19] => 1,5986000114977
    [20] => 3,872500013642
    [21] => 1,7892999990657
    [22] => 2,2093000146523
    [23] => 3,1704000160992
    [24] => 5,0990000016093
    [25] => 1,6406000080258
    [26] => 0,60940000203252
    [27] => 1,5986000114977
    [28] => 3,872500013642
    [29] => 1,7892999990657
    [30] => 2,2093000146523
    [31] => 3,1704000160992
    [32] => 5,0990000016093
    [33] => 1,6406000080258
    [34] => 0,60940000203252
    [35] => 1,5986000114977
    [36] => 3,872500013642
    [37] => 1,7892999990657
    [38] => 2,2093000146523
    [39] => 3,1704000160992
    [40] => 5,0990000016093
    [41] => 1,6406000080258
    [42] => 0,60940000203252
    [43] => 1,5986000114977
    [44] => 3,872500013642
    [45] => 1,7892999990657
    [46] => 2,2093000146523
    [47] => 3,1704000160992
    [48] => 5,0990000016093
    [49] => 1,6406000080258
    [50] => 0,60940000203252
    [51] => 1,5986000114977
    [52] => 3,872500013642
    [53] => 1,7892999990657
    [54] => 2,2093000146523
    [55] => 3,1704000160992
    [56] => 5,0990000016093
    [57] => 1,6406000080258
    [58] => 0,60940000203252
    [59] => 1,5986000114977
    [60] => 3,872500013642
    [61] => 1,7892999990657
    [62] => 2,2093000146523
    [63] => 3,1704000160992
)

Ich denke Index 0-7 sind die Avg Werte der Stunden 0 bis 7 Uhr, aber warum wird das Array weiterhin so gefüllt?
Ich möchte eigentlich aus 0 -7 den Durchschnitt bilden, um somit für den eingegebenen Zeitraum dir den Durchschnitt visualisiert zu bekommen.

Was mache ich da falsch???
Ich habe absichtlich nicht das ganze Skript gepostet, es ist nur ein Teil davon, das wesentliche ist aber dabei.

Danke schon mal.

Ich vermute, du kommst häufiger in deine foreach Schleife.

Zum Test gib mal etwas vor der Schleife aus.

Z.B.

echo ’Start’ . PHP_EOL;

Wird das dann mehrfach ausgegeben?

1 „Gefällt mir“

Das denke ich auch. Und ich denke auch, dass der entscheidende Teil des Codes fehlt.
Scheinbar ist das ein Auszug aus einem Switch-Block und ich vermute, dass da noch andere Cases mitlaufen. Vielleicht fehlt irgendwo ein break.

Man sieht ja sehr schön, dass in den Folge-Arrays immer eine Wiederholung der ersten 8 Werte stattfindet.

1 „Gefällt mir“

Danke, ihr hattet recht und es ist auch logisch wenn es immer 8 arrays und in jedem array die werte des vorarrays hinzugefügt werden.

Hätte ich auch selbst drauf kommen können.

Fehler war, die foreach loop lief nochmal in einer foreach mit der gleichen Futter-Variablen.