ESPHome component for Oclean toothbrushes: battery, dock state and brushing-session history plus mode, language and reminder control in Home Assistant over BLE

ESPHome external component that exposes an Oclean BLE electric toothbrush to Home Assistant. One component instance (“hub”) per brush; several hubs run on a single ESP32 with their first polls staggered so the radio is not contended.

The component reads battery, dock/charge state, device settings and the buffered brushing sessions, and writes back a small set of controls: brushing mode (including custom programs), over-pressure alert, raise-to-wake, brush-head replacement days, brush-head counter reset, display language, clock.

It connects only to poll and then disconnects (connect-poll-disconnect), so it does not hold the brush’s BLE radio open and keeps brush battery drain low. The brush buffers sessions internally and never streams while brushing; the component downloads the records after the fact.