Ich hab’ mich heute mal mit dem Modul und der API beschäftigt. Ich konnte meine Fehler beheben und weiß woran es nun lag Und ich habe auch weitere Abfragen eingefügt für die Tageswerte. Alles ist in der module.php zu finden. (Über den Windows Explorer IPS->Module->Symcon Misc->Wunderground)
-
Meine zuvor genannten Fehler kommen daher, weil die Werte 5-8 der 12h Vorhersage nicht abgefragt werden können. Und diese können nicht abgefragt werden, da die Funktion, die die Daten aus der API holt, die Tagesvorhersagen abruft, Halbtageswerte gibt es dabei nicht (forecast-Funktion). Hierfür werden max 4 Werte zurückgegeben, also können die Werte 5-8 nicht abgeholt werden. Außerdem musste ich den Ausdruck anpassen, da es ja keine 12h Werte sind, sondern Tageswerte. Ist für mich vollkommen ok
-
Ich habe die Conditions, Regen, usw für diese Tagesabfragen eingefügt. (Max 4 Tage, inkl. heute)
-
Da ich von php wirklich keine Ahnung habe, habe ich das als „HalfDaily“ Benennung belassen, ist nicht sauber, aber da hören meine Analogie-Künste auf. Hab das auch in den json-Dateien gesehen und weiß nicht was kaputt geht, wenn ich da rumpfusche :eek:
Paresy, ich fürchte das bleibt bei dir für das nächste Modulupdate
//12stündliche Variablen erstellen/löschen
if ($this->ReadPropertyBoolean("FetchHalfDaily")) {
$keep = $this->ReadPropertyInteger("FetchHalfDailyHalfDaysCount");;
} else {
$keep = 0;
}
for ($i = 1; $i <= 8; $i++) {
$this->MaintainVariable("HalfDailyHighTemp".(24*$i)."h", "Höchsttemperatur Tages-Vorhersage (".(24*$i)."h)", 2, "~Temperature", 2000+$i, $i <= $keep);
$this->MaintainVariable("HalfDailyLowTemp".(24*$i)."h", "Tiefsttemperatur Tages-Vorhersage (". (24*$i)."h)", 2, "~Temperature", 2050+$i, $i <= $keep);
$this->MaintainVariable("HalfDailyHumidity".(24*$i)."h", "Luftfeuchte Tages-Vorhersage (".(24*$i)."h)", 2, "Humidity.F", 2100+$i, $i <= $keep);
$this->MaintainVariable("HalfDailyWindspeed".(24*$i)."h", "Windgeschwindigkeit Tages-Vorhersage (".(24*$i)."h)", 2, "WGW.WindSpeedkmh", 2150+$i, $i <= $keep);
$this->MaintainVariable("HalfDailyRain".(24*$i)."h", " Regenmenge Tages-Vorhersage (".(24*$i)."h)", 2, "WGW.Rainfall", 2200+$i, $i <= $keep);
$this->MaintainVariable("HalfDailyCondition".(24*$i)."h", "Gegebenheit Tages-Vorhersage (".(24*$i)."h)", 3, "", 2250+$i, $i <= $keep);
$this->MaintainVariable("HalfDailyWeekday".(24*$i)."h", "Wochentag (".(24*$i)."h)", 3, "", 2300+$i, $i <= $keep);
}
und weiter unten in der module.php geht es weiter…
//12 stündliche Vorhersagen
if ($this->ReadPropertyBoolean("FetchHalfDaily")) {
$WeatherNextHalfDays = $this->RequestAPI("/forecast/lang:DL/q/");
$this->SendDebug("WGW HalfDays", print_r($WeatherNextHalfDays, true), 0);
for ($i=1; $i <= $this->ReadPropertyInteger("FetchHalfDailyHalfDaysCount") ; $i++) {
SetValue($this->GetIDForIdent("HalfDailyHighTemp".(24*$i)."h"), $WeatherNextHalfDays->forecast->simpleforecast->forecastday[$i-1]->high->celsius);
SetValue($this->GetIDForIdent("HalfDailyLowTemp".(24*$i)."h"), $WeatherNextHalfDays->forecast->simpleforecast->forecastday[$i-1]->low->celsius);
SetValue($this->GetIDForIdent("HalfDailyHumidity".(24*$i)."h"), $WeatherNextHalfDays->forecast->simpleforecast->forecastday[$i-1]->avehumidity);
SetValue($this->GetIDForIdent("HalfDailyWindspeed".(24*$i)."h"), $WeatherNextHalfDays->forecast->simpleforecast->forecastday[$i-1]->avewind->kph);
SetValue($this->GetIDForIdent("HalfDailyRain".(24*$i)."h"), $WeatherNextHalfDays->forecast->simpleforecast->forecastday[$i-1]->qpf_allday->mm);
SetValue($this->GetIDForIdent("HalfDailyCondition".(24*$i)."h"), $WeatherNextHalfDays->forecast->simpleforecast->forecastday[$i-1]->conditions);
SetValue($this->GetIDForIdent("HalfDailyWeekday".(24*$i)."h"), $WeatherNextHalfDays->forecast->simpleforecast->forecastday[$i-1]->date->weekday);
}
}
VG, Marco