A Home Assistant custom integration for WyBot pool vacuums. Control your pool robot as a Vacuum entity with real-time status, battery monitoring, and solar dock tracking.
- Vacuum entity — Start, stop, return to dock, and select cleaning mode
- 7 cleaning modes — Floor, Wall, Wall Then Floor, Advanced Full Pool, Water Line, Turbo Floor, Eco Floor
- Battery monitoring — Robot battery level and charging status
- Solar dock support — Dock battery level, solar charging status, and total energy harvested
- BLE-first architecture — Uses local Bluetooth when available, falls back to cloud MQTT
- Bluetooth discovery — Automatically detects DS20 docks via BLE
- Diagnostic sensors — Data source (BLE/MQTT), last communication timestamps
| Device | Status |
|---|---|
| S2 Pro + DS20 Solar Dock | ✅ Tested |
| C1 | ✅ Tested |
| Other WyBot models | Should work — please report issues |
The integration creates the following entities per device:
| Entity | Description |
|---|---|
| Vacuum | Start/stop/return to dock, cleaning mode selection |
| Entity | Description |
|---|---|
| Robot battery | Battery level (%) |
| Dock battery | Solar dock battery level (%) |
| Energy harvested | Total solar energy (Wh) |
| Dock type | Standard or Solar |
| Data source | Current connection method (Bluetooth / Cloud) |
| Last BLE communication | Timestamp of last Bluetooth poll |
| Last MQTT communication | Timestamp of last cloud message |
| Entity | Description |
|---|---|
| Robot charging | Whether the robot is charging |
| Dock charging | Whether the solar panel is actively charging |
| Entity | Description |
|---|---|
| Send WiFi credentials | Send WiFi config to dock via BLE (diagnostic, disabled by default) |
Download the latest release and extract to your config/custom_components directory.
- Go to Settings → Devices & Services → Add Integration
- Search for WyBot
- Enter your WyBot account email and password
- (Optional) Enter WiFi SSID and password for manual dock provisioning via BLE
Bluetooth discovery: If you have a DS20 dock in Bluetooth range, Home Assistant will automatically detect it and prompt you to set up the integration.
Provided during setup (Settings → Devices & Services → Add Integration → WyBot):
| Parameter | Required | Description |
|---|---|---|
| Yes | The email address for your WyBot account. | |
| Password | Yes | The password for your WyBot account. |
| WiFi network name | No | SSID your dock should join. Only used for manual WiFi provisioning via the diagnostic button. If set, WiFi password is required. |
| WiFi password | No | Password for the WiFi network above. |
The WiFi network name and password can also be changed later without removing the integration via Settings → Devices & Services → WyBot → Configure (the options flow).
Only one config entry per WyBot account is allowed; a single account manages all of its docks and robots.
If your WyBot password changes, the integration detects the invalid credentials and raises a Reauthenticate notification in Home Assistant. Open it and enter the new password — the entry reloads automatically without needing to be removed and re-added.
This integration follows standard Home Assistant removal — no extra steps are needed.
- Go to Settings → Devices & Services.
- Select the WyBot integration.
- Click the ⋮ menu on the config entry and choose Delete.
This removes all WyBot devices and entities. To fully uninstall the code, remove the
integration from HACS (or delete config/custom_components/wybot/) and restart Home Assistant.
The integration uses a BLE-first with MQTT fallback architecture:
- Bluetooth (primary) — Polls the dock via BLE every 30 seconds for instant local status updates
- Cloud MQTT (fallback) — If BLE fails or the device is out of range, connects to WyBot's MQTT broker
- HTTP API — Used for initial device discovery and session keepalive
Commands (start, stop, return to dock) are also sent via BLE first, falling back to MQTT if needed.
Each WyBot robot (and its dock, if present) is exposed as one or more Home Assistant devices with the following platforms. See the Entities tables above for the full per-entity breakdown.
vacuum— Start, stop, and return-to-dock control, plus cleaning-mode selection (7 modes).sensor— Robot and dock battery levels, solar energy harvested, dock type, data source (Bluetooth/Cloud), and last-communication timestamps.binary_sensor— Robot charging and solar-dock charging status.button— Send WiFi credentials to the dock via Bluetooth (diagnostic, disabled by default).
- Scheduled nightly cleaning — Automatically start the robot on a floor-cleaning cycle each night (or on your preferred days) so the pool is ready in the morning.
- Notify when cleaning completes — Send a phone notification when the robot finishes and returns to the dock, so you know it's done without checking the pool.
- Return to dock on low battery — Trigger a return-to-dock (or a reminder) when the robot battery drops below a threshold to avoid it stranding mid-pool.
- Dashboard status at a glance — Show battery level, charging status, solar energy harvested, and the current data source (Bluetooth vs. Cloud) on a Lovelace dashboard.
These are copy-pasteable starting points. Replace the entity_id values with the ones created for your device (find them under Settings → Devices & Services → WyBot, or in Developer Tools → States).
Start cleaning every day at 8am
alias: WyBot - Start cleaning at 8am
triggers:
- trigger: time
at: "08:00:00"
actions:
- action: vacuum.start
target:
entity_id: vacuum.wybot_s2_pro
mode: singleNotify when the robot battery is fully charged
alias: WyBot - Notify when battery full
triggers:
- trigger: numeric_state
entity_id: sensor.wybot_s2_pro_robot_battery
above: 99
actions:
- action: notify.notify
data:
title: WyBot
message: The pool robot is fully charged and ready to clean.
mode: singleA ready-made blueprint that bundles scheduling, completion notifications, and battery alerts is described under Blueprints below.
- The robot goes offline underwater — WyBot robots disconnect from WiFi when submerged. The dock stays online and relays commands to the robot via Bluetooth, so control while the robot is in the water depends on the dock being powered and in BLE range.
- Cloud dependency for remote control — When the dock is out of Bluetooth range of your Home Assistant host, the integration falls back to WyBot's cloud MQTT broker. Remote control and status updates then depend on WyBot's cloud service being reachable.
- Dock must be set up before the robot — WiFi provisioning happens on the dock before the robot is paired. See Setting Up a WyBot S2 Pro with a Dock — there is no way to configure the dock's WiFi after the robot has been paired.
- Bluetooth range — BLE-first operation requires the dock to be within Bluetooth range of your Home Assistant host or a Bluetooth proxy. Outside that range the integration relies on the cloud fallback.
A device shows as unavailable
- Check that the dock is powered on and within Bluetooth range of your Home Assistant host (or a Bluetooth proxy).
- If relying on the cloud fallback, confirm your Home Assistant host has internet access and WyBot's cloud service is reachable.
- Check the Data source and Last BLE/MQTT communication diagnostic sensors to see how (and when) the device was last reached.
Commands (start/stop/return to dock) don't work
- Commands are sent over Bluetooth first, then the cloud. If the dock is at the edge of BLE range, try again — a transient BLE write can fail and the next attempt often succeeds.
- Confirm the dock is online (see above) and that the robot is docked or in the water within range of the dock.
A reauthentication prompt appears
- If your WyBot password changes, Home Assistant raises a Reauthenticate notification. Open it and enter the new password; the entry reloads automatically. See Reauthentication.
Enabling debug logging
Add the following to your configuration.yaml and restart Home Assistant to capture detailed logs for bug reports:
logger:
default: info
logs:
custom_components.wybot: debug
wybot: debug
⚠️ Important: The dock must be set up before the robot. You must first set up the dock and connect it to WiFi, then pair the robot with it. There is no way to configure WiFi on the dock after the robot has been paired.
WyBot robots disconnect from WiFi when submerged. The dock stays connected to WiFi and relays commands to the robot underwater via Bluetooth.
A comprehensive "All-in-One" automation blueprint is included in the blueprints/ directory:
| Blueprint | Description |
|---|---|
| WyBot: Pool Robot Notifications & Schedule | A powerful multi-function blueprint that handles cleaning completion notifications, full charge alerts, low battery warnings, and daily cleaning schedules with mode selection and battery checks. |
To import the blueprint, copy blueprints/wybot_all_in_one.yaml to your Home Assistant config/blueprints/automation/wybot/ directory, or use the Import Blueprint feature in the HA UI.
See DEVELOPER.md for instructions on running tests and an overview of the codebase architecture.
- Better MQTT connection handling
- Testing with more robot models
- Bluetooth-only operation (no cloud dependency)