sleep360

A library and command-line tool to control the Holi SleepCompanion


Keywords
sleepcompanion, bluetooth, ble, bulb, led, light
Licenses
GPL-3.0/GPL-3.0+
Install
pip install sleep360==0.2.0

Documentation

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.