I ride a Specialized Turbo e-bike and wanted to track battery health and ride stats in Home Assistant. Specialized’s own app is fine, but I wanted the data in my dashboards alongside everything else.
What it does
It connects to Specialized Turbo e-bikes (2017+ models with a TCU) over Bluetooth Low Energy and exposes telemetry as sensor entities. Turn the bike on, HA discovers it, enter the pairing PIN from the TCU, and you get sensors:
- Battery: charge %, capacity, remaining Wh, health, temperature, voltage, current, charge cycles
- Motor/ride: speed, rider power (watts), motor power, cadence, odometer, motor temp
How it works
The bike broadcasts over Bluetooth. Home Assistant picks it up, connects, and starts receiving telemetry. No polling, no cloud, everything stays local. The BLE protocol was reverse-engineered by Sepp62/LevoEsp32Ble (MIT). I wrote a Python library to handle the parsing, and the HA integration sits on top of that.
Install
Available through HACS as a custom repository:
- HACS > Integrations > three-dot menu > Custom repositories
- Add
https://github.com/JamieMagee/ha-specialized-turboas type Integration - Download, restart HA
- Turn on the bike
You’ll need a Bluetooth adapter that HA can reach (USB dongle or an ESPHome Bluetooth proxy with active: true).
Links
- Integration repo: ha-specialized-turbo
- Python library: specialized-turbo
- Protocol docs: protocol.md
If you have a Specialized Turbo, give it a try and let me know how it goes. Bug reports and PRs welcome.