01 / USE A LIBRARY
One protocol. Your choice of transport.
Each OpenBLE library is pure Python 3.11+, with no dependencies and no bundled Bluetooth stack. Use it with bleak, a test double, or another transport that suits your project.
pip install openble-lifesenseInstalling a protocol library does not connect to a device by itself. The package README shows how to supply a transport and handle discovery, setup, notifications, and commands.
02 / UNDERSTAND THE CONVERSATION
The manual goes with the code.
Protocol notes describe the services and characteristics, handshakes, packet layouts, and open questions. They distinguish observations from inferences and the details still unresolved.
A library’s capability depends on the model and firmware tested. Read the device page before assuming support for another generation.
03 / BRING IT HOME
The Bathroom Hub.
A self-hosted hub with a web app for the supported Lifesense scale. It listens for readings, helps assign them to people, and keeps profiles and readings in its local database.
git clone https://github.com/kadima-tech/open-ble-hub.git
cd open-ble-hub
make runOn macOS or Linux with Python 3.11+ and a Bluetooth LE adapter, open http://localhost:8080 after starting the hub. A Raspberry Pi is supported; follow the hub README for installation.
Your data, your decision.
Readings stay on the hub by default. Each person can opt into Google Health sync. Linking later also uploads that person’s existing readings; disconnecting stops further uploads. Apple Health is not currently integrated.
Only Lifesense is integrated into the Bathroom Hub today. The Sonicare, Muse, Bond Touch, and Lovense libraries are used directly in your own code. Windows is not supported by the hub.
Read the hub installation guide04 / INSPECT A DEVICE
The BLE probe.
The diagnostic CLI can scan, connect, read, and subscribe without running a hub. It currently uses the Lifesense and Sonicare libraries.
make scan