1 """Ecovacs image entities."""
3 from deebot_client.capabilities
import CapabilityMap
4 from deebot_client.device
import Device
5 from deebot_client.events.map
import CachedMapInfoEvent, MapChangedEvent
12 from .
import EcovacsConfigEntry
13 from .entity
import EcovacsEntity
18 config_entry: EcovacsConfigEntry,
19 async_add_entities: AddEntitiesCallback,
21 """Add entities for passed config_entry in HA."""
22 controller = config_entry.runtime_data
25 for device
in controller.devices
26 if (caps := device.capabilities.map)
34 EcovacsEntity[CapabilityMap],
39 _attr_content_type =
"image/svg+xml"
44 capability: CapabilityMap,
47 """Initialize entity."""
48 super().
__init__(device, capability, hass=hass)
53 translation_key=
"map",
56 def image(self) -> bytes | None:
57 """Return bytes of image or None."""
58 if svg := self.
_device_device.map.get_svg_map():
64 """Set up the event listeners now that hass is ready."""
67 async
def on_info(event: CachedMapInfoEvent) ->
None:
70 async
def on_changed(event: MapChangedEvent) ->
None:
80 Only used by the generic entity update service.
83 self.
_device_device.map.refresh()
None _subscribe(self, type[EventT] event_type, Callable[[EventT], Coroutine[Any, Any, None]] callback)
_attr_extra_state_attributes
None async_added_to_hass(self)
None __init__(self, Device device, CapabilityMap capability, HomeAssistant hass)
None async_write_ha_state(self)
None async_setup_entry(HomeAssistant hass, EcovacsConfigEntry config_entry, AddEntitiesCallback async_add_entities)