Reduce unifiprotect update overhead (#96626)

This commit is contained in:
J. Nick Koston 2023-07-16 06:24:27 -10:00 committed by GitHub
parent cde1903e8b
commit f2556df7db
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 73 additions and 111 deletions

View file

@ -73,18 +73,19 @@ class ProtectLock(ProtectDeviceEntity, LockEntity):
@callback
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None:
super()._async_update_device_from_protect(device)
lock_status = self.device.lock_status
self._attr_is_locked = False
self._attr_is_locking = False
self._attr_is_unlocking = False
self._attr_is_jammed = False
if self.device.lock_status == LockStatusType.CLOSED:
if lock_status == LockStatusType.CLOSED:
self._attr_is_locked = True
elif self.device.lock_status == LockStatusType.CLOSING:
elif lock_status == LockStatusType.CLOSING:
self._attr_is_locking = True
elif self.device.lock_status == LockStatusType.OPENING:
elif lock_status == LockStatusType.OPENING:
self._attr_is_unlocking = True
elif self.device.lock_status in (
elif lock_status in (
LockStatusType.FAILED_WHILE_CLOSING,
LockStatusType.FAILED_WHILE_OPENING,
LockStatusType.JAMMED_WHILE_CLOSING,
@ -92,7 +93,7 @@ class ProtectLock(ProtectDeviceEntity, LockEntity):
):
self._attr_is_jammed = True
# lock is not fully initialized yet
elif self.device.lock_status != LockStatusType.OPEN:
elif lock_status != LockStatusType.OPEN:
self._attr_available = False
async def async_unlock(self, **kwargs: Any) -> None: