Skip to content

v0.10.0 — Series 7100 support, ESP bridge auto-discovery, stock-proxy compatibility

Choose a tag to compare

@mtheli mtheli released this 05 May 19:52

v0.10.0 — Series 7100 support, ESP bridge auto-discovery, stock-proxy compatibility

This release closes the protocol gap (every BLE-capable Sonicare family
is now supported), gives the custom ESP bridge a major upgrade, and
makes bonded brushes work over a stock bluetooth_proxy.

Required: ESP Bridge v1.4.0

The minimum bridge version is now 1.4.0 (was 1.2.x). The integration
raises an HA Repair if it sees an older bridge — please rebuild and
flash your ESPHome device with the latest YAML before / shortly after
upgrading.

New tested models

Series Model Status
Series 7100 HX742X Live monitoring + control
DiamondClean 9000 (Viking) HX960X OK
DiamondClean 9000 HX991B OK

Series 7100+ support

Series 7100 brushes (HX742X) use a different BLE protocol than the rest
of the Sonicare line-up. The integration auto-detects the protocol at
setup and exposes the same set of sensors and controls as the classic
brushes (live monitoring, sector data, mode select, intensity).

Big thanks to @lonlazer and @bobbleheadhobo for testing on real HX742X
hardware throughout the Condor beta cycle.

ESP Bridge improvements

  • Auto-discovery pair flow. Arm pair-mode in the setup dialog, wake
    the brush (power button), and the bridge picks it up automatically —
    no need to pin a MAC in YAML before flashing. Works for any supported
    brush family. Identity persists in NVS, so RPA-rotating brushes
    (Series 7100) re-bind cleanly across reboots.
  • Standalone YAML: philips_sonicare: no longer needs an external
    ble_client: block.
  • Robust unpair: a failed unpair no longer wedges the bridge until
    reboot.
  • Per-bridge log tags (philips_sonicare.<bridge_id>) make multi-bridge
    ESPs easier to debug — filter logs by suffix.

Integration features

  • Stock bluetooth_proxy now works better for bonded brushes. An eager
    SMP probe-read at session setup ensures the link is encrypted before
    the subscribe burst (Bluedroid lazy encryption no longer races).
  • Setup dialog overhaul: dedicated steps for direct BLE vs ESP bridge,
    family-aware capability list with a "Provides" column explaining what
    each service enables, pair confirmation surfaces device info before
    final commit, no more permanent ❌ rows for services that don't
    apply to the model.
  • Bond hygiene: dropping a config entry removes the BLE bond on the
    bridge / on BlueZ, so re-pairing is always clean.
  • Diagnostic sensor: Adapter Type (direct_ble / esp_bridge / stock_proxy).
  • Philips shavers (OneBlade etc.) no longer surface as Sonicare
    candidates during discovery, even though they share a BLE service
    with the Series 7100 protocol.

Other improvements over 0.9.3

  • Internal: the 477ea600-… service-based protocol was renamed Legacy →
    Classic (community feedback — "Legacy" suggested deprecation, but the
    protocol is in fact active on every Sonicare except HX742X / Series
    7100+). No behaviour change.
  • Translation sync CI: en.json is regenerated from strings.json on
    every PR, so localisation can't drift silently.