weather.openmeteo module¶
Weather data via the Open-Meteo forecast and historical APIs.
- class weather.openmeteo.OpenMeteoClient(latitude: float, longitude: float)[source]¶
Bases:
objectFetches hourly weather and irradiance from Open-Meteo for a fixed (lat, lon).
- FORECAST_URL = 'https://api.open-meteo.com/v1/forecast'¶
- HISTORICAL_URL = 'https://archive-api.open-meteo.com/v1/archive'¶
- fetch_forecast(start_date: datetime, days: int = 7) Dict[str, List] | None[source]¶
Fetch hourly weather for the date range; uses historical API for past dates, forecast API otherwise.
- Parameters:
start_date – Start date (timezone-aware or naive).
days – Number of days to fetch (forecast free tier typically limited to 7).
- Returns:
Parsed dict with ‘timestamps’ and metric lists, or None on request error.
- get_current_conditions(current_time: datetime) Dict | None[source]¶
Return conditions for the hour closest to current_time (fetches 1-day forecast).
- Parameters:
current_time – Time to resolve (timezone-aware or naive).
- Returns:
Dict with “timestamp” and one value per metric for that hour, or None if fetch fails.