@@ -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