A new custom integration called Ninebot E-Scooters has appeared on the Home Assistant community forum. It connects Xiaomi and Ninebot electric scooters to Home Assistant over Bluetooth, with no cloud account. The author describes it as a spare-time hobby project and is asking for feedback and help testing more models. It is not a polished product, but it is a good example of what local Bluetooth can do beyond the usual sensors.
What it does
According to the project page, the integration keeps a Bluetooth session open and reuses stored keys. It always creates sensors for battery level, capacity, voltage, current, power, odometer, the range the scooter reports, and connection state. Extra groups start switched off because they barely change while a scooter is parked: riding data, temperatures, battery health, device information and raw status codes. You can tick them during setup or later under Configure.
Polling defaults to ten seconds and can be set from five to 120 seconds. The author suggests 20 to 30 seconds is often enough for a parked scooter. Values older than ten minutes stop being reported as available.
What is actually confirmed
This is the part to read carefully. Only the Xiaomi 1S (BLE 1.29, DRV 1.28) is the reference device, with telemetry plus guarded controls: lock, tail light, recuperation, ride mode and cruise control. Everything else is either waiting on hardware tests or experimental:
- Hardware test pending: Xiaomi Pro 2 / Essential, Xiaomi M365 and M365 Pro, telemetry only.
- Experimental: Ninebot ES1 to ES4, Max G30 family, E22/E25/E45 and F20/F25/F30/F40, read-only. Control entities stay unavailable on Ninebot, and current speed is not implemented yet.
- Not supported: Xiaomi BLE132, Xiaomi 3 and 4, and Ninebot G2, F2, ZT and GT.
The project is also clear that a matching Bluetooth name or a successful connection does not prove a model is compatible, and that its firmware versions come from public implementations that may not match every region or dashboard variant. The 1S range figure is a simple estimate from battery percentage, so treat it as a rough guide.
What to check before installing
- Home Assistant version and Bluetooth: the page lists Home Assistant 2023.2 or newer and either a Bluetooth adapter or an active ESPHome Bluetooth proxy. Releases before 2026.9 cannot request a one-shot active scan, so the integration waits for the scooter’s next advertisement instead.
- Other apps: disconnect any other scooter app before setup, and keep the scooter on and close to the adapter while pairing. The manufacturer app and Home Assistant should be used one after the other.
- Pairing: press the power button once, briefly, only when the pairing prompt appears. If setup hangs, the author advises against repeated reloads or deleting the stored key.
- Migrating: if you used the older xiaomi_scooter integration, the new domain is ninebot_e_scooters and it is not an automatic update. Make a backup, note your entity IDs, remove the old integration, then set up again. The two must not connect to the same scooter at once.
- Licence: the project states its licence has not been decided yet and that publication grants no general permission to use. Factor that in before building anything you depend on. HACS install is described as available once the repository is public.
Our take
If you own a Xiaomi 1S, this looks usable now as a beta. For any other model, treat it as a testing project: start with telemetry only, compare battery, voltage and odometer against the manufacturer app, and send back a model report with sanitized diagnostics. The author asks for exactly that, and it is how the experimental list gets promoted to confirmed.
Practically, a scooter that parks in the garage is a natural fit for a Bluetooth proxy near the door. Low battery alerts or a charge-complete notification are the obvious automations, though the page does not describe any ready-made ones. Details are in the project repository and the announcement thread.
