1 """The select entities for musiccast."""
3 from __future__
import annotations
5 from aiomusiccast.capabilities
import OptionSetter
12 from .const
import DOMAIN, TRANSLATION_KEY_MAPPING
13 from .coordinator
import MusicCastDataUpdateCoordinator
14 from .entity
import MusicCastCapabilityEntity
20 async_add_entities: AddEntitiesCallback,
22 """Set up MusicCast select entities based on a config entry."""
23 coordinator: MusicCastDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
27 for capability
in coordinator.data.capabilities
28 if isinstance(capability, OptionSetter)
31 select_entities.extend(
33 for zone, data
in coordinator.data.zones.items()
34 for capability
in data.capabilities
35 if isinstance(capability, OptionSetter)
42 """Representation of a MusicCast Select entity."""
44 capability: OptionSetter
48 coordinator: MusicCastDataUpdateCoordinator,
49 capability: OptionSetter,
50 zone_id: str |
None =
None,
52 """Initialize the MusicCast Select entity."""
53 MusicCastCapabilityEntity.__init__(self, coordinator, capability, zone_id)
58 """Select the given option."""
59 value = {val: key
for key, val
in self.
capabilitycapability.options.items()}[option]
65 """Return the currently selected option."""
None async_select_option(self, str option)
str|None current_option(self)
None __init__(self, MusicCastDataUpdateCoordinator coordinator, OptionSetter capability, str|None zone_id=None)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)