Metadata-Version: 2.1
Name: pysnooz
Version: 0.8.6
Summary: Control SNOOZ white noise machines.
Home-page: https://github.com/AustinBrunkhorst/pysnooz
License: MIT
Author: Austin Brunkhorst
Author-email: pysnooz@alb.dev
Requires-Python: >=3.10,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Libraries
Requires-Dist: Events (>=0.4,<0.5)
Requires-Dist: bleak (>=0.20.2)
Requires-Dist: bleak-retry-connector (>=3.0.2)
Requires-Dist: bluetooth-sensor-state-data (>=1.5.0)
Requires-Dist: home-assistant-bluetooth (>=1.3.0)
Requires-Dist: transitions (>=0.8.11,<0.9.0)
Project-URL: Bug Tracker, https://github.com/AustinBrunkhorst/pysnooz/issues
Project-URL: Changelog, https://github.com/AustinBrunkhorst/pysnooz/blob/main/CHANGELOG.md
Project-URL: Repository, https://github.com/AustinBrunkhorst/pysnooz
Description-Content-Type: text/markdown
# PySnooz
Control SNOOZ white noise machines with Bluetooth.
## Installation
Install this via pip (or your favourite package manager):
`pip install pysnooz`
## Usage
```python
import asyncio
from datetime import timedelta
from bleak.backends.client import BLEDevice
from pysnooz.device import SnoozDevice
from pysnooz.commands import SnoozCommandResultStatus, turn_on, turn_off, set_volume
# found with discovery
ble_device = BLEDevice(...)
token = "deadbeef"
device = SnoozDevice(ble_device, token, asyncio.get_event_loop())
# optionally specify a volume to set before turning on
await device.async_execute_command(turn_on(volume=100))
# you can transition volume by specifying a duration
await device.async_execute_command(turn_off(duration=timedelta(seconds=10)))
# you can also set the volume directly
await device.async_execute_command(set_volume(50))
# view the result of a command execution
result = await device.async_execute_command(turn_on())
assert result.status == SnoozCommandResultStatus.SUCCESS
result.duration # how long the command took to complete
```
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
## Credits
This package was created with
[Cookiecutter](https://github.com/audreyr/cookiecutter) and the
[browniebroke/cookiecutter-pypackage](https://github.com/browniebroke/cookiecutter-pypackage)
project template.