explaingit

thomasgregg/oralb-ha

Analysis updated 2026-07-25

7PythonAudience · ops devopsComplexity · 3/5Setup · moderate

TLDR

A custom add-on for Home Assistant that connects to Oral-B iO toothbrushes to show live brushing data like timer, pressure, and quadrant tracking, working around recent firmware changes that blocked passive monitoring.

Mindmap

mindmap
  root((repo))
    What it does
      Live brushing timer
      Pressure tracking
      Quadrant tracking
      Brushing history log
    How it works
      Passive Bluetooth listening
      Active GATT connection
      Hybrid idle and live modes
    Connection modes
      Charger priority mode
      Live mode
    Limitations
      One client at a time
      Charger display conflicts
      Phone app conflicts
    Use cases
      Smart home tracking
      Dental hygiene logging

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Track your brushing time and pressure in real time on your smart home dashboard.

USE CASE 2

Keep a history log of brushing sessions for you or your family members.

USE CASE 3

See which quadrant of your mouth you are currently brushing on a wall display.

USE CASE 4

Monitor brushing habits without using the Oral-B phone app.

What is it built with?

PythonHome AssistantBluetoothBLE

How does it compare?

thomasgregg/oralb-haalx-code/lingbot-video-1.3b-fp8andrevicencio/tmux-flash
Stars777
LanguagePythonPythonPython
Setup difficultymoderateeasy
Complexity3/52/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a Home Assistant instance and an Oral-B iO toothbrush with Bluetooth in range.

The license for this repository is not specified in the available information.

In plain English

Oral-B Live is a custom component for Home Assistant that brings real-time brushing data from Oral-B iO toothbrushes into your smart home setup. It shows a live timer, pressure, quadrant tracking, brushing mode, and a history log. It is designed for a specific problem: recent iO firmware updates stopped the toothbrush from broadcasting live session data over Bluetooth while you brush. Older Oral-B brushes send out a small Bluetooth signal every second during brushing. Home Assistant can listen to this passively and show you a live timer, pressure changes, and which quadrant of your mouth you are cleaning. The iO brushes with updated firmware stopped doing this. Now, during a session the brush goes silent, then sends a single summary when you finish. Passive listeners see a jump from idle to a final duration, with nothing in between. This integration works around that by opening an active Bluetooth connection to the brush, called a GATT connection, to pull the live data that passive listening can no longer catch. It runs a hybrid approach. A passive layer listens for broadcasts when the brush is idle, keeping battery and state updated for free. An active layer opens a connection during or after brushing to retrieve the live timer, pressure, quadrant, and other details. The main complication is that the brush accepts only one Bluetooth client at a time. Three parties want that slot: the iO Sense charger with its display, the Oral-B phone app, and Home Assistant. Only one can connect during a session. This is a firmware property of the brush, not something the integration can fix. It offers two connection modes to handle the trade-off. In charger-priority mode, the default, Home Assistant does not compete for the slot while you brush. The charger display works as normal, and Home Assistant records the session from passive signals. It tries a brief sync afterward to read the brush's own session record. You keep a complete brushing log, but live timer and pressure updates are not guaranteed. In live mode, Home Assistant takes the slot and holds it, giving you full real-time updates at one second intervals. The trade-off is that the charger display stops working and the phone app cannot sync while Home Assistant holds the connection. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
Help me install the Oral-B Live custom component in Home Assistant using HACS or manually copying the files.
Prompt 2
Explain the difference between charger-priority mode and live mode for the Oral-B iO integration and help me decide which one to pick.
Prompt 3
My Oral-B iO toothbrush is not showing live data in Home Assistant after the firmware update. Help me troubleshoot the Bluetooth GATT connection.
Prompt 4
Create a Home Assistant dashboard card that displays my live brushing timer, pressure, and current quadrant from the Oral-B integration.

Frequently asked questions

What is oralb-ha?

A custom add-on for Home Assistant that connects to Oral-B iO toothbrushes to show live brushing data like timer, pressure, and quadrant tracking, working around recent firmware changes that blocked passive monitoring.

What language is oralb-ha written in?

Mainly Python. The stack also includes Python, Home Assistant, Bluetooth.

What license does oralb-ha use?

The license for this repository is not specified in the available information.

How hard is oralb-ha to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is oralb-ha for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.