Sleep360
This project allows to control the Holi SleepCompanion from a Linux computer.
The SleepCompanion is nice LED bulb that offers a lot of features to improve your sleep and your waking up.
It is manufactured by Holi, a French company.
A product description can be found by following these links:
This Sleep360 project is written in Python and can be used:
- as a library by creating a
sleep360.Bulb()
object - as a command line utility (coming soon)
Requirements
- D-BUS
- bluez >= 5.46 (dependency on the GATT D-BUS API)
Installation
From PyPI
pip install [--user] sleep360
From the sources
cd python-sleep360
pip install [--user] .
Command line usage
pip install
installs a sleep360
binary.
Running it gives a prompt like this one:
Sleep360 shell (version x.y.z).
Type help or ? to list commands.
[sleep360] connect Bulb
Connecting to the Bulb...
[sleep360] set_color 0xff0000 0x00 0x00
[sleep360] disconnect
Disconnecting from the Bulb...
[sleep360] exit
Library usage
bulb = Bulb(name="Bulb")
bulb.connect()
# Play with bulb commands
[...]
bulb.disconnect()
Examples are available in the tests directory.
Supported features
The SleepCompanion bulb offers a lot of features.
Among them, the following ones are currently supported by Sleep360:
- Setting colors (RGB + warm and cold value)
- Powering off the light
- Getting the temperatures measured by the bulb
Reverse-engineering
This project has been developed by carefully studying the Bluetooth LE messages.
The file BLE-protocol.md describes my understanding of these messages.