Fix OpenWeatherMap forecast timestamp (#45124)
parent
17cb071173
commit
402a0ea7da
|
@ -1,7 +1,10 @@
|
|||
"""Support for the OpenWeatherMap (OWM) service."""
|
||||
import datetime
|
||||
|
||||
from .abstract_owm_sensor import AbstractOpenWeatherMapSensor
|
||||
from .const import (
|
||||
ATTR_API_FORECAST,
|
||||
DEVICE_CLASS_TIMESTAMP,
|
||||
DOMAIN,
|
||||
ENTRY_NAME,
|
||||
ENTRY_WEATHER_COORDINATOR,
|
||||
|
@ -95,5 +98,10 @@ class OpenWeatherMapForecastSensor(AbstractOpenWeatherMapSensor):
|
|||
"""Return the state of the device."""
|
||||
forecasts = self._weather_coordinator.data.get(ATTR_API_FORECAST)
|
||||
if forecasts is not None and len(forecasts) > 0:
|
||||
return forecasts[0].get(self._sensor_type, None)
|
||||
value = forecasts[0].get(self._sensor_type, None)
|
||||
if self._device_class is DEVICE_CLASS_TIMESTAMP:
|
||||
value = datetime.datetime.fromtimestamp(
|
||||
value, datetime.timezone.utc
|
||||
).isoformat()
|
||||
return value
|
||||
return None
|
||||
|
|
|
@ -138,7 +138,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
|
|||
|
||||
def _convert_forecast(self, entry):
|
||||
forecast = {
|
||||
ATTR_FORECAST_TIME: entry.reference_time("unix") * 1000,
|
||||
ATTR_FORECAST_TIME: entry.reference_time("unix"),
|
||||
ATTR_FORECAST_PRECIPITATION: self._calc_precipitation(
|
||||
entry.rain, entry.snow
|
||||
),
|
||||
|
|
Loading…
Reference in New Issue