Metadata-Version: 2.1
Name: bold-smart-lock
Version: 0.3.8
Summary: Python library to communicate with Bold Smart Lock (https://boldsmartlock.com)
Home-page: https://github.com/westenberg/bold_smart_lock
Author: Westenberg
Author-email: lauren@westenberg.dev
License: MIT
Keywords: bold,smart lock,home automation
Classifier: Environment :: Other Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Home Automation
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
License-File: LICENSE

# Bold Smart Lock Python Package
This package implements the Bold Smart Lock API to authenticate and unlock a Bold smart lock. Usage of this API requires a Bold Connect.

## Installation
To install dependencies during development run ```pip install .``` from the project directory.
Optionally use the included VSCode Dev Container to get a preconfigured envirionment.

## Usage

```python
import asyncio
import aiohttp
from bold_smart_lock.auth import AbstractAuth

from bold_smart_lock.bold_smart_lock import BoldSmartLock

class TestAuth(AbstractAuth):
    async def async_get_access_token(self) -> str:
        return "00000000-0000-0000-0000-000000000000"  # Obtain an access token with oAuth2 and specify it here

async def main():
  async with aiohttp.ClientSession() as session:
    auth = TestAuth(session)
    bold = BoldSmartLock(auth)

    # Get the devices and device permissions
    get_device_permissions_response = await bold.get_device_permissions()
    print(get_device_permissions_response)

    # Activate the smart lock by device id
    remote_activation_response = await bold.remote_activation(12345)
    print(remote_activation_response)

    # Deactivate the smart lock by device id
    remote_deactivation_response = await bold.remote_deactivation(12345)
    print(remote_deactivation_response)

asyncio.run(main())
```
