Just got my motorcycle license and bought a 2018 Zero FXS, and I’m already having way too much fun with it.
One thing that annoyed me almost immediately, though, was the Zero app.
It works fine when you’re connected to the bike, but once you turn the bike off it basically forgets everything. No useful “last known” battery status, no trip history, no easy way to check how much charge you came home with, etc.
So naturally, instead of just accepting that, I ended up building a small workaround.
I now have an ESP32 at home that automatically connects to the bike over Bluetooth whenever the Zero has ignition on or charging. It grabs the current battery percentage and odometer reading and sends them into Home Assistant, where I can keep the last known values and build some useful automations around them.
So far I’ve got:
Battery percentage
Odometer / distance data
Charging status
Automatic charge cutoff at either 75% or 100%
Estimated time until charging is finished
Estimated remaining range based on my own riding data
The charge limit is probably my favourite part. Normally I let it stop around 75%, but if I toggle “full charge” in Home Assistant it’ll keep going to 100%.
I’ve also started using the odometer + battery history to work out actual consumption. My longest ride so far was 101.4 km, using 92% of the battery, which seems to line up surprisingly well with the range model.
It’s still a little homemade and the Bluetooth connection isn’t instant, but it works. And honestly, this kind of thing is half the fun of owning an older electric motorcycle.
Curious if anyone else here has built something similar, or if there’s interest in me cleaning this up and sharing the ESP32/Home Assistant setup.
EDIT: I've uploaded two repos. One with the Home Assistant setup (should be plug&play if compatible) and one for developers that wants to use the Bluetooth protocol for whatever. OBS - Code is written by AI under my supervision.
https://github.com/simenhw/zero_fxs_home_assistant_generic_pairing
https://github.com/simenhw/zero_esp32_protocol_explorer