Пример #1
0
    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"))
Пример #2
0
    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"))
Пример #3
0
    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"))
Пример #4
0
    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"))
Пример #5
0
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