Community integration for Maytronics Dolphin pool robots that speak the MyDolphin Bluetooth protocol. Control power, read cleaner status, and use optional advanced commands — all locally over BLE.
- Power on/off from Home Assistant (same commands as the MyDolphin app)
- Cleaner state sensor (
off,on,hold,programming,self_test) - Cleaning active and diagnostic PS state data OK binary sensors
- Autoclean switch and extra buttons (home, reset faults, joystick, and more)
- Short BLE sessions — connect only for each command or status poll, then disconnect (reduces “stuck Bluetooth light / frozen robot” reports)
- Works with the optional Pool Cleaner Card Lovelace frontend
Not included (yet): clean mode, cycle time, weekly schedule, and other ConfigParamsWrite settings from the app. Contributions welcome.
| Requirement | Notes |
|---|---|
| Home Assistant 2024.1+ | HAOS, Supervised, Container, Core |
| Bluetooth | Built-in adapter or Bluetooth proxy (ESPHome, Shelly, etc.) near the pool |
| Robot MAC address | From Settings → Devices & services → Bluetooth, or nRF Connect |
| One BLE client at a time | Close MyDolphin on your phone while testing HA |
- Install HACS if you have not already.
- HACS → Integrations → ⋮ → Custom repositories
- Add repository:
https://github.com/randrcomputers/ha-maytronics-dolphin
Category: Integration - Open the new repo → Download → restart Home Assistant
- Settings → Devices & services → Add integration → Maytronics Dolphin (BLE)
- Enter the robot Bluetooth MAC (format
AA:BB:CC:DD:EE:FF) and an optional friendly name.
This integration is not in the default HACS store; the custom repository URL above is how everyone installs it today.
For a dashboard card with robot/PSU artwork, status pill, and power button:
- Install Pool Cleaner Card (HACS → Frontend → custom repo).
- Add card → Pool Cleaner Card.
- Choose your Dolphin device — entities auto-fill.
| Card field | Integration entity |
|---|---|
| Power switch | Power |
| Cleaner state | Cleaner state |
| Cleaning active | Cleaning active (optional) |
| BLE OK / connected | Leave blank (recommended) or PS state data OK (see below) |
Tip: Leave BLE OK / connected empty. The card then treats “reachable” as the power entity not being unavailable. Mapping PS state data OK makes the corner icon mean “last status poll succeeded,” which often goes dark while the robot is still fine.
All entities are created on one device per configured robot.
| Entity | Type | Purpose |
|---|---|---|
| Power | Switch | Turn robot on (Startup) / off (Shutdown) via GATT fff8 |
| Cleaner state | Sensor | Text status from PS_State poll |
| Cleaning active | Binary sensor | On when state is anything except off |
| Autoclean | Switch | Enable/disable autoclean command (not synced from robot state) |
| Entity | Type | Purpose |
|---|---|---|
| PS state data OK | Binary sensor | On when the last poll returned a parseable PS_State |
| Status raw (fffc) | Sensor | Optional hex read (may be empty on some models) |
| Status raw (fffd) | Sensor | Optional hex read (may be empty on some models) |
Quit RC mode, Reset faults, Home, Reset dolphin, Reset filter indication, Ping, Wall sensor poll, LED test, Joystick X/Y + Send joystick, Card test type + Run card test.
When enabled in options: Release Bluetooth — forces disconnect if HA still holds the link.
Understanding this avoids “wrong” dashboard readings:
-
Power switch
Sends a 19-byte command immediately. Display follows PS_State when a poll succeeds; otherwise Home Assistant may show assumed on/off from your last tap. -
Cleaner state
Updates only after a successful PS_State read (about every poll interval). Can showunknownbetween polls or after a failed read. -
PS state data OK
Means “the status read worked,” not “Bluetooth is connected like the phone app.” It can be off while Power commands still work. -
Cleaning active
On forhold,programming, andself_testas well ason— not only “actively cleaning the pool.”
Card shows “Unknown” → Cleaner state is unknown (HA lost a good status read). That does not always mean the robot is locked up. Check the physical unit: still running? BT LED stuck on? Responds to Power?
Settings → Devices & services → Maytronics Dolphin (BLE) → Configure
| Option | Default | Description |
|---|---|---|
| State poll interval (PS_State) | 45 s |
How often HA reads status. Use 60–120 if the robot ever wedges; 0 = no automatic polls (commands only). |
| Periodic BLE release | 120 s |
Disconnect if still connected (safety net). 0 = off. |
| Show Release Bluetooth button | On | Adds Release Bluetooth on the device |
| Diagnostic fffc/fffd reads during poll | Off | Extra GATT reads each poll — leave off unless debugging |
HA does not keep a permanent Bluetooth connection. Each poll or power toggle: connect → act → disconnect.
- Settings → Devices & services → Bluetooth — confirm the Dolphin appears when the robot is awake and in range.
- Close MyDolphin on the phone; another client can block or delay GATT.
- Put a Bluetooth proxy in the pool area (ESPHome
bluetooth_proxyis a common choice). - After HA restarts, the first action may wait up to 25 seconds for a connectable advertisement.
BLE listings sometimes show a name like 22554C074D50 (MAC digits without colons) while the connectable address differs (e.g. e0:ff:f1:41:12:61). Use the address from the Bluetooth device details or tooltip. The integration can resolve some name/MAC mismatches when the MyDolphin FFF0 service is visible.
- Tap Release Bluetooth (if shown) or reload the integration.
- Power-cycle the robot (dock/unplug) once.
- Increase State poll to 60–120 s or set 0 temporarily.
- Keep Diagnostic fffc/fffd disabled unless you are capturing logs.
- Do not run MyDolphin and HA control at the same time during testing.
Settings → System → Logs → enable debug for:
logger:
default: info
logs:
custom_components.maytronics_dolphin: debug- Manual setup only — enter the MAC in the config flow. Automatic Bluetooth discovery is disabled to avoid pairing random FFF0 devices.
- If you previously added wrong devices from an older discovery build, remove them under Devices & services and keep only your real Dolphin.
Built and tested against MyDolphin Android app 2.3.19 packet layouts (power on fff8, PS_State command 13 on fffa / fff9). Many Dolphin models using service FFF0 work; some characteristics may differ — open an issue with model name and logs.
Firmware update / OTA (fffb) is intentionally not exposed.
Maytronics®, Dolphin®, and MyDolphin® are trademarks of their respective owners. This project is independent community software with no endorsement from Maytronics.
- Issues: GitHub Issues
- Pool Cleaner Card: ha-pool-cleaner-card