Skip to content

randrcomputers/ha-maytronics-dolphin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Maytronics Dolphin (BLE) for Home Assistant

hacs_badge

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.


What you get

  • 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.


Requirements

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)

  1. Install HACS if you have not already.
  2. HACS → IntegrationsCustom repositories
  3. Add repository: https://github.com/randrcomputers/ha-maytronics-dolphin
    Category: Integration
  4. Open the new repo → Download → restart Home Assistant
  5. Settings → Devices & services → Add integration → Maytronics Dolphin (BLE)
  6. 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.


Pool Cleaner Card (optional)

For a dashboard card with robot/PSU artwork, status pill, and power button:

  1. Install Pool Cleaner Card (HACS → Frontend → custom repo).
  2. Add card → Pool Cleaner Card.
  3. 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.


Entities

All entities are created on one device per configured robot.

Everyday use

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)

Diagnostics

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)

Advanced (buttons & helpers)

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.


How status and power work

Understanding this avoids “wrong” dashboard readings:

  1. 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.

  2. Cleaner state
    Updates only after a successful PS_State read (about every poll interval). Can show unknown between polls or after a failed read.

  3. 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.

  4. Cleaning active
    On for hold, programming, and self_test as well as on — 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?


Integration options

Settings → Devices & services → Maytronics Dolphin (BLE) → Configure

Option Default Description
State poll interval (PS_State) 45 s How often HA reads status. Use 60120 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.


Bluetooth tips

Robot not found

  1. Settings → Devices & services → Bluetooth — confirm the Dolphin appears when the robot is awake and in range.
  2. Close MyDolphin on the phone; another client can block or delay GATT.
  3. Put a Bluetooth proxy in the pool area (ESPHome bluetooth_proxy is a common choice).
  4. After HA restarts, the first action may wait up to 25 seconds for a connectable advertisement.

MAC address confusion

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.

If the robot “freezes” (BT LED stuck on)

  1. Tap Release Bluetooth (if shown) or reload the integration.
  2. Power-cycle the robot (dock/unplug) once.
  3. Increase State poll to 60–120 s or set 0 temporarily.
  4. Keep Diagnostic fffc/fffd disabled unless you are capturing logs.
  5. Do not run MyDolphin and HA control at the same time during testing.

Debug logging

Settings → System → Logs → enable debug for:

logger:
  default: info
  logs:
    custom_components.maytronics_dolphin: debug

Setup notes

  • 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.

Supported hardware

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.


Legal

Maytronics®, Dolphin®, and MyDolphin® are trademarks of their respective owners. This project is independent community software with no endorsement from Maytronics.


Links

About

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.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages