mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 02:37:08 +00:00
Use shorthanded attrs for yamaha_musiccast select (#100273)
This commit is contained in:
parent
7fe78fe9e4
commit
705ee3032b
@ -24,37 +24,39 @@ async def async_setup_entry(
|
|||||||
|
|
||||||
for capability in coordinator.data.capabilities:
|
for capability in coordinator.data.capabilities:
|
||||||
if isinstance(capability, OptionSetter):
|
if isinstance(capability, OptionSetter):
|
||||||
select_entities.append(SelectableCapapility(coordinator, capability))
|
select_entities.append(SelectableCapability(coordinator, capability))
|
||||||
|
|
||||||
for zone, data in coordinator.data.zones.items():
|
for zone, data in coordinator.data.zones.items():
|
||||||
for capability in data.capabilities:
|
for capability in data.capabilities:
|
||||||
if isinstance(capability, OptionSetter):
|
if isinstance(capability, OptionSetter):
|
||||||
select_entities.append(
|
select_entities.append(
|
||||||
SelectableCapapility(coordinator, capability, zone)
|
SelectableCapability(coordinator, capability, zone)
|
||||||
)
|
)
|
||||||
|
|
||||||
async_add_entities(select_entities)
|
async_add_entities(select_entities)
|
||||||
|
|
||||||
|
|
||||||
class SelectableCapapility(MusicCastCapabilityEntity, SelectEntity):
|
class SelectableCapability(MusicCastCapabilityEntity, SelectEntity):
|
||||||
"""Representation of a MusicCast Select entity."""
|
"""Representation of a MusicCast Select entity."""
|
||||||
|
|
||||||
capability: OptionSetter
|
capability: OptionSetter
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
coordinator: MusicCastDataUpdateCoordinator,
|
||||||
|
capability: OptionSetter,
|
||||||
|
zone_id: str | None = None,
|
||||||
|
) -> None:
|
||||||
|
"""Initialize the MusicCast Select entity."""
|
||||||
|
MusicCastCapabilityEntity.__init__(self, coordinator, capability, zone_id)
|
||||||
|
self._attr_options = list(capability.options.values())
|
||||||
|
self._attr_translation_key = TRANSLATION_KEY_MAPPING.get(capability.id)
|
||||||
|
|
||||||
async def async_select_option(self, option: str) -> None:
|
async def async_select_option(self, option: str) -> None:
|
||||||
"""Select the given option."""
|
"""Select the given option."""
|
||||||
value = {val: key for key, val in self.capability.options.items()}[option]
|
value = {val: key for key, val in self.capability.options.items()}[option]
|
||||||
await self.capability.set(value)
|
await self.capability.set(value)
|
||||||
|
self._attr_translation_key = TRANSLATION_KEY_MAPPING.get(self.capability.id)
|
||||||
@property
|
|
||||||
def translation_key(self) -> str | None:
|
|
||||||
"""Return the translation key to translate the entity's states."""
|
|
||||||
return TRANSLATION_KEY_MAPPING.get(self.capability.id)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def options(self) -> list[str]:
|
|
||||||
"""Return the list possible options."""
|
|
||||||
return list(self.capability.options.values())
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def current_option(self) -> str | None:
|
def current_option(self) -> str | None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user