Oral-B Live — live brushing data for iO toothbrushes (custom integration)

Recent Oral-B iO firmware stopped broadcasting live data during a brushing session. If you have one, you’ll recognise it: the timer sits at 0 and then jumps to the final duration, pressure is frozen, the quadrant never advances — and if the single end-of-session advertisement is missed, the session disappears entirely.

The official oralb integration isn’t at fault; it’s passive, and there’s nothing left to listen to. The data moved to GATT notifications, which need a connection.

So I wrote a custom integration that does both: it listens passively like the official one, and connects while the brush is awake to subscribe to the live characteristics.

  • Live brushing timer at 1 Hz
  • Live pressure (low / normal / high)
  • Live quadrant and mode
  • Brushing log: last session with duration, mode, quadrants covered and
    high-pressure count, plus sessions today — survives restarts
  • Falls back to passive when the phone app or an iO Sense charger holds the
    connection
  • Entity names mirror the official integration, so toothbrush-card works unchanged

GitHub - thomasgregg/oralb-ha · GitHub (HACS custom repository)

Honest caveats: it uses one Bluetooth connection slot while the brush is awake, it competes with the Oral-B app for the brush, and it’s been tested on a single iO Series 10. If your brush still broadcasts during sessions, stick with the official integration — it’s free and passive.

The README documents the full characteristic map, including what I ruled out, so nobody else has to repeat the reverse-engineering.

4 Likes

@Thomas_Gregg

Hi, I made a blueprint that uses the real-time data from my oral-B toothbrush. Would this need the user to install this integration over the ha included integration?

Github repo with info and blueprint

1 Like

Nice to see this integration exist — thanks @Thomas_Gregg.

I checked toothbrush-card against it, and one adjustment was needed on my side. From v0.28.0 the card supports the integration.

1 Like

@CoatsyJnr Oral‑B Live isn’t installed on top of Home Assistant’s included Oral‑B integration - it’s an alternative. Users should use either the built-in integration or Oral‑B Live for a toothbrush, not both.

Oral‑B Live provides more complete live data, supports the iO Sense charger as a local bridge, retains completed-session information, and exposes additional battery, brush-head, pressure and charger diagnostics. It also lets users choose between charger/app-compatible operation and a direct connection for the fastest updates.

I’ve created PR #2 so the blueprint can use Oral‑B Live too. It would be great if you could merge it!

I’ve accepted the PR. Might get that pause support from the creator of the Sonicare integration.

1 Like

He has created an issue on my GitHub repo: State trigger never fires for the Sonicare Handle State / Activity sensors (translated vs. raw states)

Thank you @Thomas_Gregg for Oral B Live , an integration that I use every day and that fits my needs perfectly. I use 2 of Thomas’ integrations. And if you’ll ever come to Kreuzberg, i’ll buy you a lunch.

1 Like