Metadata-Version: 2.1
Name: bond_async
Version: 0.1.19
Summary: Asynchronous Python wrapper library over Bond Local API
Home-page: https://github.com/bondhome/bond-async
Author: Olibra LLC
Author-email: mobiledev@olibra.io
License: MIT
Keywords: bond local api async
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Home Automation
Description-Content-Type: text/markdown
License-File: LICENSE

# bond-async
Asynchronous Python wrapper library over Bond Local API

Forked from https://github.com/prystupa/bond-api
Thanks @prystupa for the great work!

## Installation

From PyPi:

```bash
pip3 install bond-async
```

## Library Usage
```python3
import asyncio

from aiohttp import ClientResponseError, ClientConnectorError

from bond_async import Bond, Action


async def main():
    """Example of library usage."""
    
    bond = Bond("[your ip or hostname here]", "[your bond API token here]")

    try:
        print("Version:")
        print(await bond.version())

        print("Device IDs:")
        device_ids = await bond.devices()
        print(device_ids)

        print("Devices:")
        devices = await asyncio.gather(*[bond.device(device_id) for device_id in device_ids])
        print(devices)

        print("Devices Properties:")
        properties = await asyncio.gather(*[bond.device_properties(device_id) for device_id in device_ids])
        print(properties)

        print("Devices State:")
        state = await asyncio.gather(*[bond.device_state(device_id) for device_id in device_ids])
        print(state)

        print("Turn on fan!")
        await bond.action("[your fan device ID here]", Action.turn_on())

        print("Change fan speed!")
        await bond.action("[your fan device ID here]", Action.set_speed(2))

        print("Turn off fan!")
        await bond.action("[your fan device ID here]", Action.turn_off())
        
    except ClientResponseError as x:
        print("Client response error: ", x)
    except ClientConnectorError as x:
        print("Client connector error: ", x)


if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())
```


