Skip to content

Commit b3a0192

Browse files
committed
Line up circle-clock-sync code
1 parent 5124f9c commit b3a0192

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

plugwise_usb/nodes/circle.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -874,18 +874,22 @@ async def _clock_synchronize_scheduler(self) -> None:
874874

875875
async def clock_synchronize(self) -> bool:
876876
"""Synchronize clock. Returns true if successful."""
877-
get_clock_request = CircleClockGetRequest(self._send, self._mac_in_bytes)
878-
clock_response = await get_clock_request.send()
879-
if clock_response is None or clock_response.timestamp is None:
877+
request = CircleClockGetRequest(self._send, self._mac_in_bytes)
878+
response = await request.send()
879+
if response is None or response.timestamp is None:
880880
return False
881-
_dt_of_circle = datetime.now(tz=UTC).replace(
882-
hour=clock_response.time.hour.value,
883-
minute=clock_response.time.minute.value,
884-
second=clock_response.time.second.value,
881+
882+
dt_now = datetime.now(tz=UTC)
883+
days_diff = response.day_of_week.value - dt_now.weekday()
884+
circle_timestamp = dt_now.replace(
885+
day=dt_now.day - days_diff,
886+
hour=response.time.value.hour,
887+
minute=response.time.value.minute,
888+
second=response.time.value.second,
885889
microsecond=0,
886890
tzinfo=UTC,
887891
)
888-
clock_offset = clock_response.timestamp.replace(microsecond=0) - _dt_of_circle
892+
clock_offset = response.timestamp.replace(microsecond=0) - circle_timestamp
889893
if abs(clock_offset.total_seconds()) < MAX_TIME_DRIFT:
890894
return True
891895
_LOGGER.info(
@@ -898,13 +902,14 @@ async def clock_synchronize(self) -> bool:
898902
raise NodeError(
899903
"Unable to synchronize clock en when protocol version is unknown"
900904
)
901-
set_clock_request = CircleClockSetRequest(
905+
906+
set_request = CircleClockSetRequest(
902907
self._send,
903908
self._mac_in_bytes,
904909
datetime.now(tz=UTC),
905910
self._node_protocols.max,
906911
)
907-
if (node_response := await set_clock_request.send()) is None:
912+
if (node_response := await set_request.send()) is None:
908913
_LOGGER.warning(
909914
"Failed to (re)set the internal clock of %s",
910915
self.name,

0 commit comments

Comments
 (0)