Hallo,
ich versuche mich die ganze Zeit daran ein PHP Skript zu erstellen, welches mir verlässlich aus der aktuellen Regenmenge der Netatmo Wetterstation ermittelt
<?php
// ID der archivierten Variablen für die Regenmenge
$rainVarID = 41315; // Ersetze dies mit der tatsächlichen ID deiner Regenmengen-Variable
// IDs der Zielvariablen für die berechneten Regenmengen
$dailyRainVarID = 29157;
$weeklyRainVarID = 28310;
$monthlyRainVarID = 49700;
$yearlyRainVarID = 52420;
// Archiv-Instanz-ID
$archiveID = 21633; // Ersetze dies mit deiner Archiv-Instanz-ID
// Funktion zur Berechnung der Regenmenge für einen bestimmten Zeitraum
function calculateRainfall($archiveID, $variableID, $aggregationLevel, $startTime, $endTime) {
$values = AC_GetAggregatedValues($archiveID, $variableID, $aggregationLevel, $startTime, $endTime, 0);
$rainfall = 0;
foreach ($values as $value) {
$rainfall += $value['Avg']; // Summiere alle Durchschnittswerte
}
return $rainfall;
}
// Aktuelle Zeit
$currentTime = time();
// Berechnung der Regenmengen
$dailyRainfall = calculateRainfall($archiveID, $rainVarID, 1, strtotime("today", $currentTime), $currentTime);
$weeklyRainfall = calculateRainfall($archiveID, $rainVarID, 3, strtotime("-7 days", $currentTime), $currentTime);
$monthlyRainfall = calculateRainfall($archiveID, $rainVarID, 4, strtotime("first day of this month", $currentTime), $currentTime);
$yearlyRainfall = calculateRainfall($archiveID, $rainVarID, 5, strtotime("first day of January", $currentTime), $currentTime);
// Ergebnisse speichern
SetValueFloat($dailyRainVarID, $dailyRainfall);
SetValueFloat($weeklyRainVarID, $weeklyRainfall);
SetValueFloat($monthlyRainVarID, $monthlyRainfall);
SetValueFloat($yearlyRainVarID, $yearlyRainfall);
?>
Könnt Ihr mir einen Tipp geben, weshalb ich nur unter der Jahresmenge einen Wert finde und der auch noch fehlerhaft ist? Wir hatten gestern z.B. 6 mm Regen und der erscheint mir nicht.
Die Archivvariable habe ich entsprechend selektiert und diese hat auch mehr als 660 Datensätze gespeichert
Gruß
Thimo