This is an automated archive made by the Lemmit Bot.
The original was posted on /r/homeassistant by /u/SquareAbroad1062 on 2026-07-23 11:44:09+00:00.
Recent iO firmware doesn't broadcast during a brushing session anymore โ the official integration's timer sits at 0 and then jumps to the total at the end.
Turns out the data moved from BLE advertisements to GATT notifications, so a passive listener has nothing to hear.
Made a custom integration that keeps the passive listening and adds a connection while the brush is awake: live 1 Hz timer, live pressure, quadrant, mode, and a brushing log it builds itself (last session + duration + sessions today).
https://github.com/thomasgregg/oralb-ha
Full protocol notes in the README, including two traps: ff06 looks like pressure but is the button, and pressure is actually on ff0b. Tested on one iO Series 10 โ reports from other models welcome.