Weather: Replace wttr.in with Open-Meteo + structured logging

- Replace wttr.in (unreachable from Docker) with Open-Meteo API
  (free, no API key, reliable) with geocoding cache
- WMO weather codes mapped to German descriptions + emoji icons
- Add [WEATHER], [NEWS], [UNRAID], [DASHBOARD] log prefixes
- Structured integration status table on startup
- Suppress noisy httpx INFO logs (services log their own summaries)
- Add logging to unraid_service (was completely silent on errors)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Sam 2026-03-02 17:45:23 +01:00
parent 94cf618e0d
commit d3305a243c
6 changed files with 280 additions and 196 deletions

View file

@ -53,6 +53,13 @@ async def get_all() -> Dict[str, Any]:
weather_data, news_data, servers_data, ha_data, tasks_data = results
# Log a concise summary of what worked and what failed
sections = {"weather": weather_data, "news": news_data, "servers": servers_data,
"ha": ha_data, "tasks": tasks_data}
errors = [k for k, v in sections.items() if isinstance(v, dict) and v.get("error")]
if errors:
logger.warning("[DASHBOARD] Sections with errors: %s", ", ".join(errors))
return {
"weather": weather_data,
"news": news_data,