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.