From 4b810b8b8112e90a013569161577c716648b08ef Mon Sep 17 00:00:00 2001 From: Daniel Feinberg Date: Fri, 3 Apr 2026 11:00:32 -0600 Subject: [PATCH] feat: add dock strainer and cleaning brush consumable reset attributes Add STRAINER_WORK_TIMES and CLEANING_BRUSH_WORK_TIMES to ConsumableAttribute so callers can reset dock-specific consumables via reset_consumable(). The Consumable dataclass already tracks these fields; only the reset side was missing from the enum. --- roborock/devices/traits/v1/consumeable.py | 2 ++ tests/devices/traits/v1/test_consumable.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/roborock/devices/traits/v1/consumeable.py b/roborock/devices/traits/v1/consumeable.py index 0e59432f..9c72ed68 100644 --- a/roborock/devices/traits/v1/consumeable.py +++ b/roborock/devices/traits/v1/consumeable.py @@ -23,6 +23,8 @@ class ConsumableAttribute(StrEnum): FILTER_WORK_TIME = "filter_work_time" SIDE_BRUSH_WORK_TIME = "side_brush_work_time" MAIN_BRUSH_WORK_TIME = "main_brush_work_time" + STRAINER_WORK_TIME = "strainer_work_time" + CLEANING_BRUSH_WORK_TIME = "cleaning_brush_work_time" @classmethod def from_str(cls, value: str) -> Self: diff --git a/tests/devices/traits/v1/test_consumable.py b/tests/devices/traits/v1/test_consumable.py index 6f644d9d..5c995c44 100644 --- a/tests/devices/traits/v1/test_consumable.py +++ b/tests/devices/traits/v1/test_consumable.py @@ -51,6 +51,8 @@ async def test_get_consumable_data_success(consumable_trait: ConsumableTrait, mo (ConsumableAttribute.SIDE_BRUSH_WORK_TIME, "side_brush_work_time"), (ConsumableAttribute.FILTER_WORK_TIME, "filter_work_time"), (ConsumableAttribute.SENSOR_DIRTY_TIME, "sensor_dirty_time"), + (ConsumableAttribute.STRAINER_WORK_TIME, "strainer_work_time"), + (ConsumableAttribute.CLEANING_BRUSH_WORK_TIME, "cleaning_brush_work_time"), ], ) async def test_reset_consumable_data(