Hi everyone,
I was looking for an Integration for the Oclean toothbrushes. I found some Posts (Oclean One bluetooth toothbrush) and Github Issus in the BLE Monitor Repository. Only the Battery Stats could be fetched this way.
I wondered how the app syncs that data, so i decompiled the official apk and let claude document all the bluetooth codes (and rest-api) to get all the needed Information for the HA Integration.
So I’ve been working on an unofficial Home Assistant integration for Oclean toothbrushes and I’m happy to share the first version with you!
Yes, it is nearly 100% generated by claude. I am a senior software developer with my main experience in java/js. I reviewed the code and tested the functionality.
What it does
Connects to your Oclean toothbrush every 5 minutes via Bluetooth, reads all brushing data, and disconnects. No cloud, no Oclean account required – fully local.
Sensors
Battery level
Brush score (0–100)
Brush duration
Timestamp of last session
Cleaned tooth zones (0–8) with per-zone pressure as attributes
Average brushing pressure
Cleaning coverage (%)
Firmware version, model, hardware revision (diagnostic)
Brush head usage counter + reset button
All brushing sessions are imported into HA long-term statistics with their actual timestamps – so historical sessions recorded while HA was offline show up correctly in your statistics graphs.
Installation
Add as custom repository in HACS:
and install the “Oclean Toothbrush (inofficial)” Integration in HACS
Or manually copy custom_components/oclean_ble/ to your config directory.
Setup
After restart: Settings → Integrations → Add → search “Oclean” The brush is auto-discovered if it’s nearby and Bluetooth is enabled.
Alternatively enter the MAC address manually.
Works with local Bluetooth adapters and ESPHome Bluetooth proxies.
Tested on
Oclean X – battery, score, duration, timestamp confirmed working
Other models (X Pro, X Pro Elite, X Ultra) should work but haven’t been tested yet. Two BLE protocol variants are implemented (Type-0 extended and simple format, Type-1 Oclean X format).
Looking for testers!
If you have an Oclean model other than the X, I’d love your feedback.
Enable debug logging, brush your teeth, and share the log output.
logger:
logs:
custom_components.oclean_ble: debug
Feedback, bug reports and PRs are very welcome. This is a community project – the protocol was reverse-engineered from the official Oclean APK.
Not affiliated with Oclean / Zhuhai Ice Bear Smart Home Technology Co., Ltd.