Ermittlung tägliche, monatliche u. jährliche Regenmenge aus Archivvariable

Hallo zusammen,

benötige Hilfe, ich habe ein Scirpt für die Auswertung einer Archiv-Variablen (stündliche Regenmenge) erstellt. Ziel ist es die tägliche, monatliche und jährliche Regenmenge auszuweisen. Die Werte die ich erhalten stimmen leider garnicht. Ich weiß aber nicht warum, da ich in der Archivvariablen 538 Einzelwerte seit dem 01.01.2025 habe.

<?php

// ID der archivierten Variable für die stündliche Regenmenge
$rainVarID = 13629;

// IDs der Variablen zur Speicherung der Tages-, Monats- und Jahreswerte
$dailyRainVarID = 29157;
$monthlyRainVarID = 49700;
$yearlyRainVarID = 52420;

// Startdatum
$startDate = strtotime("2025-01-01");

// Funktion zur Berechnung des Regenwerts für einen bestimmten Zeitraum
function calculateRainfall($variableID, $startTime, $endTime) {
    $values = AC_GetAggregatedValues(21633 /* Archiv-Instanz-ID */, $variableID, 1 /* Stündlich */, $startTime, $endTime, 0);
    $rainfall = 0;
    foreach ($values as $value) {
        $rainfall += $value['Avg'];
    }
    return $rainfall;
}

// Aktuelles Datum und Uhrzeit
$currentTime = time();

// Täglicher Regenwert
$startTime = strtotime("today", $currentTime);
$endTime = $currentTime;
$dailyRainfall = calculateRainfall($rainVarID, $startTime, $endTime);
SetValue($dailyRainVarID, $dailyRainfall);

// Monatlicher Regenwert
$startTime = strtotime("first day of this month", $currentTime);
$endTime = $currentTime;
$monthlyRainfall = calculateRainfall($rainVarID, $startTime, $endTime);
SetValue($monthlyRainVarID, $monthlyRainfall);

// Jährlicher Regenwert
$startTime = strtotime("first day of January", $currentTime);
$endTime = $currentTime;
$yearlyRainfall = calculateRainfall($rainVarID, $startTime, $endTime);
SetValue($yearlyRainVarID, $yearlyRainfall);

echo "Regenwerte wurden erfolgreich berechnet und gespeichert.";
?>

Habe ich in dem Script noch einen Fehler? Die Daten kommen von meiner Netatmo Wetterstation, diese liefert mir den aktuellen Wert → Regenmenge, den stündlichen Wert → Regenmenge in h und den täglichen Wert → Regenmenge 24 h. Ich habe als Ausgangsbasis die Regenmenge in h gewählt, damit ich eine Kontrolle mit dem Tageswert habe.

Was kommt raus, wenn du es manuell (z.b. für einen Tag) nachrechnest? Wie schaut das Diagramm der Variable $rainVarID = 13629; aus? Wie ist das Archiv dieser Variable definiert (Zähler, Standard - sollte Zähler sein)?
Du kannst die Aggregationsstufe auch direkt in der Funktion AC_GetAggregatedValues setzen

Im Archiv werden die Werte je Stunden z.B. mit 0,2 mm, 0,14 mm, 0,35 mm, … reingeschrieben.

Hier die Diagramme für Tag (als Wochendarstellung u. Monatsdarstellung)

Netatmo direkt:

Datum Regen in mm
2025/01/01 0,5
2025/01/02 11
2025/01/03 1,5
2025/01/04 0,1
2025/01/05 3,4
2025/01/06 0,6
2025/01/07 1,4
2025/01/08 1,6
2025/01/09 11,4
2025/01/10 0
2025/01/11 0,1
2025/01/12 0
2025/01/13 0
2025/01/14 0
2025/01/15 0,3
2025/01/16 0
2025/01/17 0
2025/01/18 0
2025/01/19 0
2025/01/20 0,1
2025/01/21 0,1
2025/01/22 0,1
2025/01/23 3,3
2025/01/24 1,2
2025/01/25 1,1
2025/01/26 1,5
2025/01/27 4,3
2025/01/28 0,3
2025/01/29 3,6
2025/01/30 1,4
2025/01/31 0,3
49,2

Die Werte von Netatmo sehen anders aus.

Ich persönlich arbeite mit dem Energierechner Modul. Der wertet dir alle möglichen Zeiträume aus. Als Preis erstellst du dir ein Dummy.

Damit kann ich aber nicht die Regenmenge ermitteln, da er zwingend „Variable muss als Zähler geloggt werden“ fordert.