Skip to content

fix: enable Qrevo Master wash/fill dock features (code 14 dock, Roborock QRevo S5A) #866

Closed
Jason-Morcos wants to merge 1 commit into
Python-roborock:mainfrom
Jason-Morcos:codex/add-qrevo-master-wash-fill-dock
Closed

fix: enable Qrevo Master wash/fill dock features (code 14 dock, Roborock QRevo S5A) #866
Jason-Morcos wants to merge 1 commit into
Python-roborock:mainfrom
Jason-Morcos:codex/add-qrevo-master-wash-fill-dock

Conversation

@Jason-Morcos

@Jason-Morcos Jason-Morcos commented Jul 6, 2026

Copy link
Copy Markdown

Summary

Adds RoborockDockTypeCode.qrevo_master_dock to WASH_N_FILL_DOCK_TYPES so dock type 14 is treated as a wash/fill dock.

I noticed that with the HA 2026.7 update, by Qrevo S5A dock stopped showing the tank entities and strainer entity.

Why

HA 2026.7 diagnostics show a Qrevo Master dock reporting dockType: 14, which maps to RoborockDockTypeCode.qrevo_master_dock. The same dock reports wash-capable data, but python-roborock currently excludes it from WASH_N_FILL_DOCK_TYPES, so is_wash_n_fill_dock() returns False.

That causes the V1 wash_towel_mode trait to be skipped. Downstream in Home Assistant, wash_towel_mode is not None gates the clean-water, dirty-water, and strainer entities, so those entities can become stale/restored for this dock even though the underlying dock data is available.

Sanitized diagnostics comparison:

dockType 14: dss=168, strainerWorkTimes=44, wash_towel_mode absent, smart_wash_params absent
dockType 15: dss=169, strainerWorkTimes=34, wash_towel_mode present, smart_wash_params present

Changes

  • roborock/device_features.py: add qrevo_master_dock to WASH_N_FILL_DOCK_TYPES.
  • tests/devices/traits/v1/test_device_features.py: add a focused regression test proving is_wash_n_fill_dock(RoborockDockTypeCode.qrevo_master_dock) is true.

Testing

uv run pytest tests/devices/traits/v1/test_device_features.py
uv run pytest tests/devices/traits/v1/test_wash_towel_mode.py tests/devices/traits/v1/test_smart_wash_params.py
uv run pre-commit run --all-files
uv run pytest

@Jason-Morcos Jason-Morcos marked this pull request as ready for review July 6, 2026 18:41
Copilot AI review requested due to automatic review settings July 6, 2026 18:41
@Jason-Morcos Jason-Morcos changed the title fix: enable Qrevo Master wash/fill dock features fix: enable Qrevo Master wash/fill dock features (code 14 dock, Roborock QRevo S5A) Jul 6, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates dock capability detection so RoborockDockTypeCode.qrevo_master_dock (dock type 14) is treated as a wash/fill dock, restoring downstream feature/entity availability that depends on is_wash_n_fill_dock() (e.g., Home Assistant’s wash-related entities).

Changes:

  • Add RoborockDockTypeCode.qrevo_master_dock to WASH_N_FILL_DOCK_TYPES.
  • Add a focused regression test asserting qrevo_master_dock is recognized as a wash/fill dock.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
roborock/device_features.py Includes qrevo_master_dock in wash/fill dock detection.
tests/devices/traits/v1/test_device_features.py Adds regression test for is_wash_n_fill_dock(qrevo_master_dock).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Lash-L

Lash-L commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Thank you for this PR! This has been something on my TODO list for a while now as we handle dock types a little poorly and rigidly. Inspired by this PR, I have actually made a PR that will solve a bit more of the problem at once and add a number of new dock types:

#867

I'm going to close out this PR as mine will handle a bit more, but I sincerely appreciate you making this PR!

@Lash-L Lash-L closed this Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants