mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-17 22:26:30 +00:00
Handle timedrift better if not synchronized (#3783)
* Handle timedrift better if not synchronized * fix description * adjust days * Implement feedback * Whoami error Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
This commit is contained in:
parent
3f88236495
commit
e6dfe83d62
@ -344,7 +344,7 @@ class Core(CoreSysAttributes):
|
|||||||
if (
|
if (
|
||||||
self.sys_config.timezone
|
self.sys_config.timezone
|
||||||
or self.sys_host.info.timezone not in ("Etc/UTC", None)
|
or self.sys_host.info.timezone not in ("Etc/UTC", None)
|
||||||
) and (self.sys_host.info.dt_synchronized or self.sys_supervisor.connectivity):
|
) and self.sys_host.info.dt_synchronized:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Get Timezone data
|
# Get Timezone data
|
||||||
@ -355,27 +355,23 @@ class Core(CoreSysAttributes):
|
|||||||
except WhoamiError as err:
|
except WhoamiError as err:
|
||||||
_LOGGER.warning("Can't adjust Time/Date settings: %s", err)
|
_LOGGER.warning("Can't adjust Time/Date settings: %s", err)
|
||||||
return
|
return
|
||||||
else:
|
|
||||||
if not self.sys_config.timezone:
|
|
||||||
self.sys_config.timezone = data.timezone
|
|
||||||
return
|
|
||||||
|
|
||||||
# Adjust timesettings in case SSL fails
|
# SSL Date Issue & possible time drift
|
||||||
|
if not data:
|
||||||
try:
|
try:
|
||||||
data = await retrieve_whoami(self.sys_websession, with_ssl=False)
|
data = await retrieve_whoami(self.sys_websession, with_ssl=False)
|
||||||
except WhoamiError as err:
|
except WhoamiError as err:
|
||||||
_LOGGER.error("Can't adjust Time/Date settings: %s", err)
|
_LOGGER.error("Can't adjust Time/Date settings: %s", err)
|
||||||
return
|
return
|
||||||
else:
|
|
||||||
if not self.sys_config.timezone:
|
self.sys_config.timezone = self.sys_config.timezone or data.timezone
|
||||||
self.sys_config.timezone = data.timezone
|
|
||||||
|
|
||||||
# Calculate if system time is out of sync
|
# Calculate if system time is out of sync
|
||||||
delta = data.dt_utc - utcnow()
|
delta = data.dt_utc - utcnow()
|
||||||
if delta < timedelta(days=7) or self.sys_host.info.dt_synchronized:
|
if delta <= timedelta(days=3) or self.sys_host.info.dt_synchronized:
|
||||||
return
|
return
|
||||||
|
|
||||||
_LOGGER.warning("System time/date shift over more as 7days found!")
|
_LOGGER.warning("System time/date shift over more than 3 days found!")
|
||||||
await self.sys_host.control.set_datetime(data.dt_utc)
|
await self.sys_host.control.set_datetime(data.dt_utc)
|
||||||
await self.sys_supervisor.check_connectivity()
|
await self.sys_supervisor.check_connectivity()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user