mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 18:27:09 +00:00
Fix evohome so it doesn't retrieve schedules unnecessarily (#118478)
This commit is contained in:
parent
f1465baada
commit
a3fcd6b32f
@ -7,7 +7,7 @@ others.
|
||||
from __future__ import annotations
|
||||
|
||||
from collections.abc import Awaitable
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from http import HTTPStatus
|
||||
import logging
|
||||
import re
|
||||
@ -452,7 +452,7 @@ class EvoBroker:
|
||||
|
||||
self.config = client.installation_info[loc_idx][GWS][0][TCS][0]
|
||||
self.tcs: evo.ControlSystem = self._location._gateways[0]._control_systems[0] # noqa: SLF001
|
||||
self.tcs_utc_offset = timedelta(minutes=self._location.timeZone[UTC_OFFSET])
|
||||
self.loc_utc_offset = timedelta(minutes=self._location.timeZone[UTC_OFFSET])
|
||||
self.temps: dict[str, float | None] = {}
|
||||
|
||||
async def save_auth_tokens(self) -> None:
|
||||
@ -688,7 +688,8 @@ class EvoChild(EvoDevice):
|
||||
if not (schedule := self._schedule.get("DailySchedules")):
|
||||
return {} # no scheduled setpoints when {'DailySchedules': []}
|
||||
|
||||
day_time = dt_util.now()
|
||||
# get dt in the same TZ as the TCS location, so we can compare schedule times
|
||||
day_time = dt_util.now().astimezone(timezone(self._evo_broker.loc_utc_offset))
|
||||
day_of_week = day_time.weekday() # for evohome, 0 is Monday
|
||||
time_of_day = day_time.strftime("%H:%M:%S")
|
||||
|
||||
@ -702,7 +703,7 @@ class EvoChild(EvoDevice):
|
||||
else:
|
||||
break
|
||||
|
||||
# Did the current SP start yesterday? Does the next start SP tomorrow?
|
||||
# Did this setpoint start yesterday? Does the next setpoint start tomorrow?
|
||||
this_sp_day = -1 if sp_idx == -1 else 0
|
||||
next_sp_day = 1 if sp_idx + 1 == len(day["Switchpoints"]) else 0
|
||||
|
||||
@ -719,7 +720,7 @@ class EvoChild(EvoDevice):
|
||||
)
|
||||
assert switchpoint_time_of_day is not None # mypy check
|
||||
dt_aware = _dt_evo_to_aware(
|
||||
switchpoint_time_of_day, self._evo_broker.tcs_utc_offset
|
||||
switchpoint_time_of_day, self._evo_broker.loc_utc_offset
|
||||
)
|
||||
|
||||
self._setpoints[f"{key}_sp_from"] = dt_aware.isoformat()
|
||||
|
Loading…
x
Reference in New Issue
Block a user