ESPHome bridge for Bosch eBike smart system: live battery, speed, odometer in HA
Hi all,
I just wanted to share a project that is now in a state where other users have reported successful flashes from the forum: an ESPHome external component that turns any ESP32 into a Bluetooth bridge for Bosch smart system eBikes (drive unit v19 and newer).
What it does
Once paired with the bike via the official Bosch Flow app, the ESP32 pulls live data over BLE and exposes it as regular ESPHome sensors:
- battery state of charge
- live odometer
- speed, cadence, rider power
- ambient brightness, light state
- charger connected, system locked, in-motion flag
- and a few more
In Home Assistant you get them as native sensors with no manual YAML on the HA side. They behave like any other ESPHome entity, so they plug straight into automations, dashboards, energy panels, statistics, etc.
No ESPHome setup required to try it
I host a one-click web installer at https://xunil99.github.io/ha-bosch-ebike/. Plug in an ESP32, open the page in Chrome or Edge, click Install, and the Improv-Serial flow handles WiFi setup in the same browser session. Pairing with the bike is then a normal Flow-app step ("add new component").
For ESPHome tinkerers
The component is a normal external_components source. You can pull it into your existing YAML and add it next to your existing sensors. The repo has a documented example YAML and the same factory config that the web installer builds from.
external_components:
- source: github://Xunil99/ha-bosch-ebike@main
components: [bosch_ebike_ldi]
bosch_ebike_ldi:
id: ebike_bridge
device_name: "HA eBike Bridge"
Repo: https://github.com/Xunil99/ha-bosch-ebike
Constraints to be honest about
- Only Bosch smart system drive units, v19 or newer. The older Classic Line and the early smart system firmwares do not expose the Live Data Interface.
- Needs ESP32 with BLE, recommended ESP-IDF framework with NimBLE.
- One paired external component per bike at a time, that is a Bosch-side limit.
- BLE range, so the ESP32 sits near where the bike parks.
There is also a sister HACS integration in the same repo that adds cloud-side tour history (GPX export, statistics, map card, GitHub-style calendar heatmap of riding days). That part is independent of the ESPHome bridge, you can use either or both.
Feedback and issue reports very welcome. The whole stack is Apache-2.0 and entirely local-network, no third-party telemetry.