From 7d5f83e50c3843a2fac28db3b65b08c62b8c263d Mon Sep 17 00:00:00 2001 From: chilikla Date: Wed, 27 Nov 2024 02:34:44 +0200 Subject: [PATCH] fix: add forecast to weather entity --- custom_components/yerushamayim/weather.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/custom_components/yerushamayim/weather.py b/custom_components/yerushamayim/weather.py index 1a862c9..e9ca43d 100644 --- a/custom_components/yerushamayim/weather.py +++ b/custom_components/yerushamayim/weather.py @@ -17,6 +17,8 @@ from .const import DOMAIN from .data_coordinator import YerushamayimDataCoordinator +from datetime import datetime + async def async_setup_platform( hass: HomeAssistant, config: ConfigType, @@ -47,6 +49,7 @@ def __init__(self, coordinator: YerushamayimDataCoordinator): self._attr_unique_id = f"{DOMAIN}_weather" self._attr_name = "Yerushamayim Weather" self._attr_native_temperature_unit = UnitOfTemperature.CELSIUS + self._attr_supported_features = WeatherEntityFeature.FORECAST_DAILY @property def native_temperature(self) -> float | None: @@ -110,4 +113,23 @@ def wind_bearing(self) -> int | None: try: return self.coordinator.data.wind["wind_direction"] except (ValueError, KeyError, TypeError): + return None + + async def async_forecast_daily(self) -> list[Forecast] | None: + """Return the daily forecast.""" + try: + forecasts: list[Forecast] = [] + + forecast = { + "datetime": datetime.now().date().isoformat() + "condition": self.coordinator.data.status.get("condition"), + "native_temperature": float(self.coordinator.data.temperature["temperature"]), + "native_precipitation": float(self.coordinator.data.rain["precipitation"])ת + "precipitation_probability": int(self.coordinator.data.rain["precipitation_probability"]) + } + + forecasts.append(forecast) + return forecasts + + except Exception: return None \ No newline at end of file