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