def get_lock_status(self, access_token, lock_id, door_status=False): json_dict = self._dict_to_api( self._build_get_lock_status_request(access_token, lock_id)).json() if door_status: return ( determine_lock_status(json_dict.get("status")), determine_door_state(json_dict.get("doorState")), ) return determine_lock_status(json_dict.get("status"))
async def async_get_lock_status(self, access_token, lock_id, door_status=False): response = await self._async_dict_to_api( self._build_get_lock_status_request(access_token, lock_id) ) json_dict = await response.json() if door_status: return ( determine_lock_status(json_dict.get("status")), determine_door_state(json_dict.get("doorState")), ) return determine_lock_status(json_dict.get("status"))
def unlock(self, access_token, lock_id): """Execute a remote unlock operation. Returns a LockStatus state. """ return determine_lock_status( self._unlock(access_token, lock_id).get("status"))
async def async_lock(self, access_token, lock_id): """Execute a remote lock operation. Returns a LockStatus state. """ return determine_lock_status( (await self._async_lock(access_token, lock_id)).get("status"))
def update_lock_details_from_pubnub_message(lock_detail, date_time, message): """Update lock details from pubnub.""" updated = False if LOCK_STATUS_KEY in message and lock_detail.lock_status_datetime < date_time: lock_status = determine_lock_status(message[LOCK_STATUS_KEY]) if lock_status != LockStatus.UNKNOWN: lock_detail.lock_status = determine_lock_status( message[LOCK_STATUS_KEY]) lock_detail.lock_status_datetime = date_time updated = True if DOOR_STATE_KEY in message and lock_detail.door_state_datetime < date_time: door_state = determine_door_state(message[DOOR_STATE_KEY]) if door_state != LockDoorStatus.UNKNOWN: lock_detail.door_state = determine_door_state( message[DOOR_STATE_KEY]) lock_detail.door_state_datetime = date_time updated = True return updated