Control SNOOZ white noise machines with Bluetooth.
Install this via pip (or your favourite package manager):
pip install pysnooz
import asyncio
from datetime import timedelta
from home_assistant_bluetooth import BluetoothServiceInfo
from pysnooz.device import (
SnoozAdvertisementData,
SnoozDevice,
SnoozCommandResultStatus,
disable_night_mode,
enable_night_mode,
get_device_info,
set_auto_temp_enabled,
set_fan_speed,
set_light_brightness,
set_temp_target,
set_volume,
turn_fan_off,
turn_fan_on,
turn_light_off,
turn_light_on,
turn_off,
turn_on,
)
# found with discovery
device_info = BluetoothServiceInfo(...)
advertisement = parse_snooz_advertisement(device_info)
device = SnoozDevice(device_info, advertisement)
# 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)))
other_commands = [
set_volume(50, duration=timedelta(seconds=10)),
set_light_brightness(75),
turn_light_on(),
turn_light_off(),
enable_night_mode(),
disable_night_mode(),
# the following commands are only supported by Breez
set_fan_speed(33, duration=timedelta(seconds=10)),
set_auto_temp_enabled(True),
set_temp_target(71)
]
for command in other_commands:
await device.async_execute_command(command)
# 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
Thanks goes to these wonderful people (emoji key):
bradleysryder 💻 |
Martin Weinelt 💻 |
epenet 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!
This package was created with Cookiecutter and the browniebroke/cookiecutter-pypackage project template.