Skip to content

Commit 3720ca6

Browse files
committed
refactor(q10): use readable YXCleanType values with legacy aliases
1 parent 0c2c781 commit 3720ca6

File tree

3 files changed

+26
-5
lines changed

3 files changed

+26
-5
lines changed

roborock/cli.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1275,7 +1275,12 @@ async def q10_empty_dustbin(ctx: click.Context, device_id: str) -> None:
12751275

12761276
@session.command()
12771277
@click.option("--device_id", required=True, help="Device ID")
1278-
@click.option("--mode", required=True, type=click.Choice(["bothwork", "onlysweep", "onlymop"]), help="Clean mode")
1278+
@click.option(
1279+
"--mode",
1280+
required=True,
1281+
type=click.Choice(["vac_and_mop", "vacuum", "mop", "bothwork", "onlysweep", "onlymop"]),
1282+
help='Clean mode (preferred: "vac_and_mop", "vacuum", "mop")',
1283+
)
12791284
@click.pass_context
12801285
@async_command
12811286
async def q10_set_clean_mode(ctx: click.Context, device_id: str, mode: str) -> None:

roborock/data/b01_q10/b01_q10_code_mappings.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,25 @@ class YXRoomMaterial(RoborockModeEnum):
157157

158158
class YXCleanType(RoborockModeEnum):
159159
UNKNOWN = "unknown", -1
160-
BOTH_WORK = "bothwork", 1
161-
ONLY_SWEEP = "onlysweep", 2
162-
ONLY_MOP = "onlymop", 3
160+
VAC_AND_MOP = "vac_and_mop", 1
161+
VACUUM = "vacuum", 2
162+
MOP = "mop", 3
163+
164+
# Legacy aliases
165+
BOTH_WORK = VAC_AND_MOP
166+
ONLY_SWEEP = VACUUM
167+
ONLY_MOP = MOP
168+
169+
@classmethod
170+
def from_value(cls, value: str):
171+
"""Find enum member by string value with legacy support."""
172+
legacy_values = {
173+
"bothwork": "vac_and_mop",
174+
"onlysweep": "vacuum",
175+
"onlymop": "mop",
176+
}
177+
normalized_value = legacy_values.get(value.lower(), value)
178+
return super().from_value(normalized_value)
163179

164180

165181
class YXDeviceState(RoborockModeEnum):

tests/devices/traits/b01/q10/test_vacuum.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def vacuumm_fixture(q10_api: Q10PropertiesApi) -> VacuumTrait:
3434
(lambda x: x.stop_clean(), {"206": {}}),
3535
(lambda x: x.return_to_dock(), {"203": {}}),
3636
(lambda x: x.empty_dustbin(), {"203": 2}),
37-
(lambda x: x.set_clean_mode(YXCleanType.BOTH_WORK), {"137": 1}),
37+
(lambda x: x.set_clean_mode(YXCleanType.VAC_AND_MOP), {"137": 1}),
3838
(lambda x: x.set_fan_level(YXFanLevel.BALANCED), {"123": 2}),
3939
],
4040
)

0 commit comments

Comments
 (0)