diff --git a/homeassistant/components/onvif/device.py b/homeassistant/components/onvif/device.py index eec270d5b94..39f37eb02e4 100644 --- a/homeassistant/components/onvif/device.py +++ b/homeassistant/components/onvif/device.py @@ -100,16 +100,6 @@ class ONVIFDevice: if self.capabilities.ptz: self.device.create_ptz_service() - if self._dt_diff_seconds > 300 and self.capabilities.events: - self.capabilities.events = False - LOGGER.warning( - "The system clock on '%s' is more than 5 minutes off. " - "Although this device supports events, they will be " - "disabled until the device clock is fixed as we will " - "not be able to renew the subscription.", - self.name, - ) - if self.capabilities.events: self.events = EventManager( self.hass, self.device, self.config_entry.unique_id diff --git a/homeassistant/components/onvif/event.py b/homeassistant/components/onvif/event.py index 3888db4fa8e..9084a06e7db 100644 --- a/homeassistant/components/onvif/event.py +++ b/homeassistant/components/onvif/event.py @@ -107,7 +107,9 @@ class EventManager: if not self._subscription: return - termination_time = (dt_util.utcnow() + dt.timedelta(minutes=30)).isoformat() + termination_time = ( + (dt_util.utcnow() + dt.timedelta(days=1)).replace(microsecond=0).isoformat() + ) await self._subscription.Renew(termination_time) async def async_pull_messages(self, _now: dt = None) -> None: @@ -119,8 +121,10 @@ class EventManager: req.Timeout = dt.timedelta(seconds=60) response = await pullpoint.PullMessages(req) - # Renew subscription if less than 60 seconds left - if (response.TerminationTime - dt_util.utcnow()).total_seconds() < 60: + # Renew subscription if less than two hours is left + if ( + dt_util.as_utc(response.TerminationTime) - dt_util.utcnow() + ).total_seconds() < 7200: await self.async_renew() # Parse response