Skip to content

Commit

Permalink
fix for 2024.4
Browse files Browse the repository at this point in the history
  • Loading branch information
Fischelsberger committed Apr 14, 2024
1 parent 84695ef commit 0a952f3
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions custom_components/car_wash/binary_sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

from homeassistant.components.binary_sensor import BinarySensorEntity
from homeassistant.components.weather import (
ATTR_FORECAST,
ATTR_FORECAST_CONDITION,
ATTR_FORECAST_PRECIPITATION,
ATTR_FORECAST_TEMP,
Expand All @@ -38,6 +37,9 @@
from homeassistant.util import dt as dt_util
from homeassistant.util.unit_conversion import TemperatureConverter

from homeassistant.components.weather import DOMAIN as WEATHER_DOMAIN
from homeassistant.components.weather import SERVICE_GET_FORECASTS

from .const import (
BAD_CONDITIONS,
CONF_DAYS,
Expand Down Expand Up @@ -141,7 +143,9 @@ def sensor_startup(event):
def _temp2c(temperature: Optional[float], temperature_unit: str) -> Optional[float]:
"""Convert weather temperature to Celsius degree."""
if temperature is not None and temperature_unit != UnitOfTemperature.CELSIUS:
temperature = TemperatureConverter.convert(temperature, temperature_unit, UnitOfTemperature.CELSIUS)
temperature = TemperatureConverter.convert(
temperature, temperature_unit, UnitOfTemperature.CELSIUS
)
return temperature

# pylint: disable=too-many-branches,too-many-statements
Expand All @@ -157,7 +161,15 @@ async def async_update(self):
tmpu = self.hass.config.units.temperature_unit
temp = wdata.attributes.get(ATTR_WEATHER_TEMPERATURE)
cond = wdata.state
forecast = wdata.attributes.get(ATTR_FORECAST)

daily_response = await self.hass.services.async_call(
WEATHER_DOMAIN,
SERVICE_GET_FORECASTS,
{"entity_id": self._weather_entity, "type": "daily"},
blocking=True,
return_response=True,
)
forecast = daily_response[self._weather_entity]["forecast"]

if forecast is None:
self._attr_is_on = None
Expand Down Expand Up @@ -185,7 +197,7 @@ async def async_update(self):
fc_date = fcast.get(ATTR_FORECAST_TIME)
if isinstance(fc_date, int):
fc_date = dt_util.as_local(
datetime.utcfromtimestamp(fc_date / 1000)
datetime.datetime.fromtimestamp(fc_date, tz=datetime.timezone.utc)
).isoformat()
elif isinstance(fc_date, datetime):
fc_date = dt_util.as_local(fc_date).isoformat()
Expand Down

0 comments on commit 0a952f3

Please sign in to comment.