1 """Support for Harmony Hub select activities."""
3 from __future__
import annotations
11 from .const
import ACTIVITY_POWER_OFF, DOMAIN
12 from .data
import HarmonyConfigEntry, HarmonyData
13 from .entity
import HarmonyEntity
14 from .subscriber
import HarmonyCallback
16 _LOGGER = logging.getLogger(__name__)
18 TRANSLATABLE_POWER_OFF =
"power_off"
23 entry: HarmonyConfigEntry,
24 async_add_entities: AddEntitiesCallback,
26 """Set up harmony activities select."""
31 """Select representation of a Harmony activities."""
33 _attr_translation_key =
"activities"
36 """Initialize HarmonyActivitySelect class."""
44 """Return a set of selectable options."""
45 return [TRANSLATABLE_POWER_OFF, *sorted(self.
_data_data_data.activity_names)]
49 """Return the current activity."""
50 _, activity_name = self.
_data_data_data.current_activity
51 if activity_name == ACTIVITY_POWER_OFF:
52 return TRANSLATABLE_POWER_OFF
56 """Change the current activity."""
57 if option == TRANSLATABLE_POWER_OFF:
58 await self.
_data_data_data.async_start_activity(ACTIVITY_POWER_OFF)
60 await self.
_data_data_data.async_start_activity(option)
63 """Call when entity is added to hass."""
70 activity_starting=activity_update_job,
71 activity_started=activity_update_job,
None async_got_connected(self, str|None _=None)
None async_got_disconnected(self, str|None _=None)
None _async_activity_update(self, tuple activity_info)
None async_added_to_hass(self)
str|None current_option(self)
None __init__(self, HarmonyData data)
None async_select_option(self, str option)
None async_write_ha_state(self)
None async_on_remove(self, CALLBACK_TYPE func)
DeviceInfo|None device_info(self)
None async_setup_entry(HomeAssistant hass, HarmonyConfigEntry entry, AddEntitiesCallback async_add_entities)
CALLBACK_TYPE async_subscribe(HomeAssistant hass, str topic, Callable[[ReceiveMessage], Coroutine[Any, Any, None]|None] msg_callback, int qos=DEFAULT_QOS, str|None encoding=DEFAULT_ENCODING)