From 2d5fe93cb2a7d751c613edafc196725ce2312199 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 14 Jan 2022 13:13:30 -1000 Subject: [PATCH] Fix august lock/unlock with older bridges (#64143) --- homeassistant/components/august/__init__.py | 6 ++++-- homeassistant/components/august/lock.py | 9 +++++++-- homeassistant/components/august/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/august/__init__.py b/homeassistant/components/august/__init__.py index dc3ffc908439ed..ec37bf55518eb3 100644 --- a/homeassistant/components/august/__init__.py +++ b/homeassistant/components/august/__init__.py @@ -261,13 +261,14 @@ async def async_status_async(self, device_id): device_id, ) - async def async_lock_async(self, device_id): + async def async_lock_async(self, device_id, hyper_bridge): """Lock the device but do not wait for a response since it will come via pubnub.""" return await self._async_call_api_op_requires_bridge( device_id, self._api.async_lock_async, self._august_gateway.access_token, device_id, + hyper_bridge, ) async def async_unlock(self, device_id): @@ -279,13 +280,14 @@ async def async_unlock(self, device_id): device_id, ) - async def async_unlock_async(self, device_id): + async def async_unlock_async(self, device_id, hyper_bridge): """Unlock the device but do not wait for a response since it will come via pubnub.""" return await self._async_call_api_op_requires_bridge( device_id, self._api.async_unlock_async, self._august_gateway.access_token, device_id, + hyper_bridge, ) async def _async_call_api_op_requires_bridge( diff --git a/homeassistant/components/august/lock.py b/homeassistant/components/august/lock.py index 8136cba482e6a4..41abc1c6aa287d 100644 --- a/homeassistant/components/august/lock.py +++ b/homeassistant/components/august/lock.py @@ -46,17 +46,22 @@ def __init__(self, data, device): self._attr_unique_id = f"{self._device_id:s}_lock" self._update_from_data() + @property + def _hyper_bridge(self): + """Check if the lock has a paired hyper bridge.""" + return bool(self._detail.bridge and self._detail.bridge.hyper_bridge) + async def async_lock(self, **kwargs): """Lock the device.""" if self._data.activity_stream.pubnub.connected: - await self._data.async_lock_async(self._device_id) + await self._data.async_lock_async(self._device_id, self._hyper_bridge) return await self._call_lock_operation(self._data.async_lock) async def async_unlock(self, **kwargs): """Unlock the device.""" if self._data.activity_stream.pubnub.connected: - await self._data.async_unlock_async(self._device_id) + await self._data.async_unlock_async(self._device_id, self._hyper_bridge) return await self._call_lock_operation(self._data.async_unlock) diff --git a/homeassistant/components/august/manifest.json b/homeassistant/components/august/manifest.json index 15b31edcce43fe..db537287b05d99 100644 --- a/homeassistant/components/august/manifest.json +++ b/homeassistant/components/august/manifest.json @@ -2,7 +2,7 @@ "domain": "august", "name": "August", "documentation": "https://www.home-assistant.io/integrations/august", - "requirements": ["yalexs==1.1.18"], + "requirements": ["yalexs==1.1.19"], "codeowners": ["@bdraco"], "dhcp": [ { diff --git a/requirements_all.txt b/requirements_all.txt index 3d5c46c8e3e6b1..225cac41acdd04 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -2504,7 +2504,7 @@ xs1-api-client==3.0.0 yalesmartalarmclient==0.3.7 # homeassistant.components.august -yalexs==1.1.18 +yalexs==1.1.19 # homeassistant.components.yeelight yeelight==0.7.8 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 93067fd998d488..a8cef6d3343cfc 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -1526,7 +1526,7 @@ xmltodict==0.12.0 yalesmartalarmclient==0.3.7 # homeassistant.components.august -yalexs==1.1.18 +yalexs==1.1.19 # homeassistant.components.yeelight yeelight==0.7.8