Add sun and moon info

This commit is contained in:
jpirnay
2026-04-03 18:14:19 +02:00
parent 81fe19bb4f
commit 52d88c820e
5 changed files with 161 additions and 2 deletions
+4
View File
@@ -200,6 +200,7 @@ bool WeatherClient::parseWeatherJson(const std::string& json, WeatherData& data)
day.sunrise = sunrise[i] | (time_t)0;
day.sunset = sunset[i] | (time_t)0;
day.uvIndexMax = uvMax[i] | 0.0f;
day.moonPhase = daily["moon_phase"] ? (daily["moon_phase"][i] | -1.0f) : -1.0f;
data.daily.push_back(day);
}
}
@@ -264,6 +265,8 @@ bool WeatherClient::saveCache(const WeatherData& data) {
d["uvIndexMax"] = day.uvIndexMax;
d["sunrise"] = day.sunrise;
d["sunset"] = day.sunset;
d["moonPhase"] = day.moonPhase;
d["moonPhaseApiName"] = "moon_phase"; // for compatibility/tracing
}
// Hourly
@@ -331,6 +334,7 @@ bool WeatherClient::loadCache(WeatherData& data) {
day.uvIndexMax = d["uvIndexMax"] | 0.0f;
day.sunrise = d["sunrise"] | (time_t)0;
day.sunset = d["sunset"] | (time_t)0;
day.moonPhase = d["moonPhase"] | -1.0f;
data.daily.push_back(day);
}
+1
View File
@@ -25,6 +25,7 @@ struct DailyForecast {
float uvIndexMax = 0;
time_t sunrise = 0;
time_t sunset = 0;
float moonPhase = -1.0f; // -1 means unknown, 0.0 new, 0.5 full
};
struct HourlyForecast {