Falsche Prognosedaten automatisch löschen
Verfasst: So 6. Dez 2020, 10:29
Ich habe beobachtet dass ich über die API von Solarprogose immer die Daten für heute und morgen erhalte.
Bei Aktuallisierung der Prognose werden die alten Daten leider nicht gelöscht.
Konkret bedeutet das heute am 06.12.2020 bekomme ich Werte für 07.12.2020 - 17 Uhr.
Wenn die Prognose sich nun ändert und ich am 07.12.2020 dann nur noch Werte bis 16 Uhr bekomme bleibt leider der falsche 17 Uhr Wert in der InfluxDB bestehen.
Das macht dann Probleme wenn man den Vorhersagebetrag für den heutigen Tag abfragen möchte wenn die Vorhersage nach unten korrigiert wurde.
Der ausgegeben Wert ist dann nämlich zu hoch.
Kann man in die "wetterdaten.php" noch was einbauen dass die Werte der übermittelten Tage vor dem schreiben löscht?
So was in der Art.
1. Das Array Daten um den Typ "QueryArt" erweitern.
2. In der Funktion "wetterdaten_speichern" den neuen Parameter hier einbauen
3. Dann nur noch einmal vor dem Schreiben der Daten die Löschung veranlassen (die Query kann man bestimmt noch eleganter machen).
Wäre das machbar?
Grüße
Eric
Bei Aktuallisierung der Prognose werden die alten Daten leider nicht gelöscht.
Konkret bedeutet das heute am 06.12.2020 bekomme ich Werte für 07.12.2020 - 17 Uhr.
Wenn die Prognose sich nun ändert und ich am 07.12.2020 dann nur noch Werte bis 16 Uhr bekomme bleibt leider der falsche 17 Uhr Wert in der InfluxDB bestehen.
Das macht dann Probleme wenn man den Vorhersagebetrag für den heutigen Tag abfragen möchte wenn die Vorhersage nach unten korrigiert wurde.
Code: Alles auswählen
SELECT max("Prognose_Wh") FROM "Wetterprognose" WHERE ("Datum" = '${__from:date:DD.MM.YYYY}') AND $timeFilter
Kann man in die "wetterdaten.php" noch was einbauen dass die Werte der übermittelten Tage vor dem schreiben löscht?
So was in der Art.
1. Das Array Daten um den Typ "QueryArt" erweitern.
2. In der Funktion "wetterdaten_speichern" den neuen Parameter hier einbauen
Code: Alles auswählen
$ch = curl_init('https://'.$daten["InfluxAdresse"].'/'.$daten["QueryArt"].'?db='.$daten["InfluxDBName"].'&precision=s');
}
else {
$ch = curl_init('http://'.$daten["InfluxAdresse"].'/'.$daten["QueryArt"].'?db='.$daten["InfluxDBName"].'&precision=s');
}
Code: Alles auswählen
$aktuelleDaten["Query"] = "";
$aktuelleDaten["QueryArt"] = "query"
$aktuelleDaten["Query"] ="DELTE FROM 'Wetterprognose' WHERE ('Datum' = '${__from:date:DD.MM.YYYY}')"
$rc = wetterdaten_speichern($aktuelleDaten);
$aktuelleDaten["Query"] = "";
$aktuelleDaten["QueryArt"] = "write"
for($i=0; $i < count($Einzelwerte["data"]); $i++) {
$aktuelleDaten["Prognose_Watt"] = $Einzelwerte["data"][$Keys[$i]][0]*1000;
$aktuelleDaten["Prognose_kWh"] = $Einzelwerte["data"][$Keys[$i]][1]*1000;
Grüße
Eric