refactor: enhance vacuum RETURN_HOME support with start-charge fallback

This commit is contained in:
Brandon 2025-08-15 21:18:11 +08:00
parent 8aa0c5d2ca
commit a022b36356
2 changed files with 13 additions and 7 deletions

View File

@ -160,13 +160,6 @@ SPEC_DEVICE_TRANS_MAP: dict = {
}
},
'optional': {
'vacuum-extend': {
'optional': {
'actions': {
'stop-and-gocharge'
}
}
},
'identify': {
'required': {
'actions': {'identify'}
@ -177,6 +170,11 @@ SPEC_DEVICE_TRANS_MAP: dict = {
'properties': {
'battery-level': {'read'}
}
},
'optional': {
'actions': {
'start-charge'
}
}
}
},

View File

@ -202,6 +202,14 @@ class Vacuum(MIoTServiceEntity, StateVacuumEntity):
elif action.name == 'identify':
self._attr_supported_features |= VacuumEntityFeature.LOCATE
self._action_identify = action
# Use start-charge from battery service as fallback if stop-and-gocharge is not available
if self._action_stop_and_gocharge is None:
for action in entity_data.actions:
if action.name == 'start-charge':
self._attr_supported_features |= VacuumEntityFeature.RETURN_HOME
self._action_stop_and_gocharge = action
break
async def async_start(self) -> None:
"""Start or resume the cleaning task."""