1 """Ecovacs util functions."""
3 from __future__
import annotations
8 from typing
import TYPE_CHECKING
14 EcovacsCapabilityEntityDescription,
15 EcovacsDescriptionEntity,
20 from .controller
import EcovacsController
24 """Get client device id."""
26 return f
"HA-{slugify(hass.config.location_name)}"
29 random.choice(string.ascii_uppercase + string.digits)
for _
in range(8)
34 controller: EcovacsController,
35 entity_class: type[EcovacsDescriptionEntity],
36 descriptions: tuple[EcovacsCapabilityEntityDescription, ...],
37 ) -> list[EcovacsEntity]:
38 """Return all supported entities for all devices."""
40 entity_class(device, capability, description)
41 for device
in controller.devices
42 for description
in descriptions
43 if (capability := description.capability_fn(device.capabilities))
49 """Return the lower case name of the enum."""
50 return enum.name.lower()
list[EcovacsEntity] get_supported_entitites(EcovacsController controller, type[EcovacsDescriptionEntity] entity_class, tuple[EcovacsCapabilityEntityDescription,...] descriptions)
str get_client_device_id(HomeAssistant hass, bool self_hosted)
str get_name_key(Enum enum)