[Custom Component] Hydrao Custom (Smart Shower) - 100% Offline BLE - v1.0.0

Hello everyone,

After my previous work on local pool integrations (Blue Connect Local and Flipr Local), I’m happy to introduce Hydrao Custom, a 100% local integration for the Hydrao smart shower devices.

The goal is the same as always: bypass the manufacturer’s cloud entirely and bring everything locally into Home Assistant via Bluetooth Low Energy (BLE) — fast, private, and with zero dependency on a third-party server that could disappear or go down.

:link: GitHub: GitHub - Adrien40/ha-hydrao-custom: Local Home Assistant integration for Hydrao Bluetooth-connected smart shower devices. - - - 🇫🇷 Intégration locale Home Assistant pour les appareils de douche intelligents Hydrao connectés via Bluetooth. · GitHub

:sparkles: Core Features

  • :electric_plug: 100% local (BLE): no internet connection required, data flows only from the shower to Home Assistant.
  • :counterclockwise_arrows_button::star: Comfort Mode Sync (the flagship feature): automatically resets the device’s counter as soon as the water reaches your defined Minimum Comfort Temperature, so the liter/color thresholds only reflect water you actually used comfortably — not the cold water you were waiting out.
  • :shower: Detailed per-shower tracking: volume, duration, comfort volume, and wasted cold-water volume, both per session and as a historical cumulative total.
  • :artist_palette: Thresholds & colors: set the 4 liter thresholds and pick their colors via a built-in color picker, read from and written live to the device.
  • :thermometer: Minimum Comfort Temperature: adjustable from Home Assistant as a Number entity (0–50 °C) — this setting stays in Home Assistant and is never pushed to the device itself.
  • :radio_button: “Shower Ended” button: manually close out a session instead of waiting for the water to shut off — handy for voice-assistant automations (“Hey Google, Shower Ended”).
  • :blue_circle: Detailed Bluetooth status: Water Off, Connecting, Connected, Sending Configuration, Configuration Applied, Error, Restarting Device…
  • :clipboard: Pending configuration indicator: see at a glance if any settings haven’t been pushed to the device yet.
  • :antenna_bars: Live RSSI via passive listening — no extra polling, no extra battery drain.
  • :wrench: Diagnostics: firmware/hardware version and unique identifier, exposed at the device level.
  • :gear: 100% UI configuration: automatic Bluetooth discovery or manual MAC entry, everything set up from the Home Assistant interface.
  • :counterclockwise_arrows_button: Factory reset available directly from the integration options.

:white_check_mark: Compatibility

  • Supported devices: Hydrao devices broadcasting over BLE under an automatically detected name (HYDRAO*).
  • Tested on: Hydrao Aloé (HYDRA_SHOWER), Hardware version 9. I don’t own every Hydrao model, so if you’re running a different one, I’d genuinely appreciate you giving it a try and letting me know how it goes (issues welcome either way).
  • Like my other local integrations, an ESPHome Bluetooth Proxy is recommended if your shower is out of range of your Home Assistant host’s Bluetooth adapter.
  • One thing specific to this device: the Hydrao only talks over Bluetooth while the water is running — that’s when it exposes live data and accepts settings, so don’t be surprised if entities show “Water Off” the rest of the time.

:rocket: Installation

Not yet in the HACS default store, so add it as a custom repository for now:

  1. Open HACS in Home Assistant.
  2. Click the 3 dots (top right) → Custom repositories.
  3. Repository: https://github.com/Adrien40/ha-hydrao-custom, Type: Integration.
  4. Download, then fully restart Home Assistant.
  5. SettingsDevices & ServicesAdd Integration → search “Hydrao Custom”.

Full docs, screenshots, and the complete entity list are in the README.

:test_tube: Under the hood

The shower-session logic (detecting a new session, comfort-mode resets, offline timeouts, manual resets, reboots…) is covered by a dedicated unit test suite, and the repo runs Hassfest + HACS validation + Ruff on every push. Not that it makes it bug-free, but I wanted this one properly tested before sharing it.


As always, feedback, issues, and PRs are very welcome on GitHub. And if this (or my other local integrations) has been useful to you, a coffee is always appreciated :folded_hands:

Buy me a coffee