You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Dock type 21 (Roborock QV 35A / roborock.vacuum.a168) missing from RoborockDockTypeCode → wash/fill dock entities unavailable #864
Dock type 21 — the dock shipped with the Roborock QV 35A (roborock.vacuum.a168) — is missing from RoborockDockTypeCode. Because it's unknown, RoborockDockTypeCode(21) falls back to unknown, is_wash_n_fill_dock() returns False, and the wash_towel_mode trait is skipped at setup. Downstream (Home Assistant) this makes the dock clean-water-tank, dirty-water-tank, and strainer entities permanently unavailable, even though the device reports all of the underlying data.
Environment
python-roborock 5.22.0 (as bundled with Home Assistant 2026.7.1). Confirmed the gap is still present on main / v5.26.0.
Device: Roborock QV 35A, model roborock.vacuum.a168, firmware 02.36.38.
GET_STATUS reports dock_type: 21 (raw, from the local channel). The tank/strainer data is all present: dss: 169 (encodes clean/dirty water box status) and strainer_work_times arrives in GET_CONSUMABLE.
RoborockDockTypeCode in roborock/data/v1/v1_code_mappings.py has no member for 21 (it jumps saros_10_dock = 18 → qrevo_s5v_dock = 22 → saros_20_dock = 27), so RoborockDockTypeCode(21) resolves to unknown via RoborockEnum._missing_.
WashTowelModeTrait.requires_dock_type = is_wash_n_fill_dock; is_wash_n_fill_dock(unknown) is False, so trait setup logs Trait 'wash_towel_mode' not supported, skipping and leaves PropertiesApi.wash_towel_mode = None.
In Home Assistant, the clean_box_empty, dirty_box_full, and strainer_time_left entity descriptions are all gated on support_fn=lambda api: api.wash_towel_mode is not None, so they are filtered out and never created — surfacing as unavailable in HA.
Add dock type 21 as a wash-n-fill dock — the same two-line change as #829 (which added the Qrevo S5V, 22):
roborock/data/v1/v1_code_mappings.py: add qv_35a_dock = 21 to RoborockDockTypeCode.
roborock/device_features.py: add RoborockDockTypeCode.qv_35a_dock to WASH_N_FILL_DOCK_TYPES.
(Clean-fluid delivery is not supported on this dock — is_clean_fluid_delivery_supported = False — so the clean_fluid_empty entity correctly stays absent; only the clean/dirty water box and strainer entities are restored.)
Happy to open a PR mirroring #829, including the parametrized-test additions.
Related: The Qrevo S5A dock (I believe this is code 14) also appears to be missing from the WASH_N_FILL_DOCK_TYPES - so the tank entities are no longer provided for this one too
Activity
Jason-Morcos commentedon Jul 6, 2026
Related: The Qrevo S5A dock (I believe this is code 14) also appears to be missing from the WASH_N_FILL_DOCK_TYPES - so the tank entities are no longer provided for this one too