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.
