Update Roborock dynamic dock support (#176686)

This commit is contained in:
Luke Lashley
2026-07-21 17:50:18 +00:00
committed by Franck Nijhof
parent e704837d7f
commit bcb1708ee2
3 changed files with 12 additions and 9 deletions
@@ -98,7 +98,9 @@ BINARY_SENSOR_DESCRIPTIONS = [
entity_category=EntityCategory.DIAGNOSTIC,
value_fn=lambda data: data.status.dirty_water_box_status,
is_dock_entity=True,
support_fn=lambda api: api.wash_towel_mode is not None,
support_fn=lambda api: api.device_features.is_field_supported(
StatusV2, StatusField.DIRTY_WATER_BOX_STATUS
),
),
RoborockBinarySensorDescription(
key="clean_box_empty",
@@ -107,7 +109,9 @@ BINARY_SENSOR_DESCRIPTIONS = [
entity_category=EntityCategory.DIAGNOSTIC,
value_fn=lambda data: data.status.clear_water_box_status,
is_dock_entity=True,
support_fn=lambda api: api.wash_towel_mode is not None,
support_fn=lambda api: api.device_features.is_field_supported(
StatusV2, StatusField.CLEAR_WATER_BOX_STATUS
),
),
RoborockBinarySensorDescription(
key="clean_fluid_empty",
@@ -120,9 +124,8 @@ BINARY_SENSOR_DESCRIPTIONS = [
else None
),
is_dock_entity=True,
support_fn=lambda api: (
api.wash_towel_mode is not None
and api.device_features.is_clean_fluid_delivery_supported
support_fn=lambda api: api.device_features.is_field_supported(
StatusV2, StatusField.CLEAN_FLUID_STATUS
),
),
RoborockBinarySensorDescription(
+4 -3
View File
@@ -19,6 +19,7 @@ from roborock.data import (
ZeoState,
)
from roborock.data.b01_q10.b01_q10_code_mappings import YXDeviceState
from roborock.data.v1.v1_containers import StatusField, StatusV2
from roborock.devices.traits.b01.q10.status import StatusTrait as Q10StatusTrait
from roborock.devices.traits.v1 import PropertiesApi
from roborock.roborock_message import RoborockDyadDataProtocol, RoborockZeoProtocol
@@ -259,9 +260,9 @@ SENSOR_DESCRIPTIONS = [
device_class=SensorDeviceClass.ENUM,
options=RoborockDockErrorCode.keys(),
is_dock_entity=True,
# Only available with more than just the basic dock. Dust collection
# mode is a proxy for any more complex dock type (e.g. Auto-empty).
support_fn=lambda api: api.dust_collection_mode is not None,
support_fn=lambda api: api.device_features.is_field_supported(
StatusV2, StatusField.DOCK_ERROR_STATUS
),
),
RoborockSensorDescription(
key="mop_clean_remaining",
-1
View File
@@ -357,7 +357,6 @@ def make_device_features() -> Mock:
device_features = MagicMock(spec=DeviceFeaturesTrait)
device_features.is_supported_drying = True
device_features.is_support_water_mode = True
device_features.is_clean_fluid_delivery_supported = True
device_features.is_support_clean_estimate = True
device_features.is_clean_route_setting_supported = True
device_features.is_field_supported.return_value = True