From ba79de56abab4a23c684ca93e9a706fa12564ef9 Mon Sep 17 00:00:00 2001 From: micha91 Date: Sun, 19 Dec 2021 00:18:42 +0100 Subject: [PATCH] Move Device Class definition to Home Assistant for MusicCast Select Entities (#61218) * Add a device class mapping to the consts to map from capability IDs to HA device classes. * Use python3.8 compliant typing * Fix return type * Use relative import for musiccast const --- homeassistant/components/yamaha_musiccast/const.py | 11 +++++++++++ homeassistant/components/yamaha_musiccast/select.py | 8 +++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/yamaha_musiccast/const.py b/homeassistant/components/yamaha_musiccast/const.py index 5384cc56694..470b3729c08 100644 --- a/homeassistant/components/yamaha_musiccast/const.py +++ b/homeassistant/components/yamaha_musiccast/const.py @@ -56,3 +56,14 @@ ENTITY_CATEGORY_MAPPING = { EntityType.DIAGNOSTIC: ENTITY_CATEGORY_DIAGNOSTIC, EntityType.SYSTEM: ENTITY_CATEGORY_SYSTEM, } + +DEVICE_CLASS_MAPPING = { + "DIMMER": "yamaha_musiccast__dimmer", + "zone_SLEEP": "yamaha_musiccast__zone_sleep", + "zone_TONE_CONTROL_mode": "yamaha_musiccast__zone_tone_control_mode", + "zone_SURR_DECODER_TYPE": "yamaha_musiccast__zone_surr_decoder_type", + "zone_EQUALIZER_mode": "yamaha_musiccast__zone_equalizer_mode", + "zone_LINK_AUDIO_QUALITY": "yamaha_musiccast__zone_link_audio_quality", + "zone_LINK_CONTROL": "yamaha_musiccast__zone_link_control", + "zone_LINK_AUDIO_DELAY": "yamaha_musiccast__zone_link_audio_delay", +} diff --git a/homeassistant/components/yamaha_musiccast/select.py b/homeassistant/components/yamaha_musiccast/select.py index 68be67eac10..d64682c8eb4 100644 --- a/homeassistant/components/yamaha_musiccast/select.py +++ b/homeassistant/components/yamaha_musiccast/select.py @@ -1,4 +1,5 @@ """The select entities for musiccast.""" +from __future__ import annotations from aiomusiccast.capabilities import OptionSetter @@ -8,6 +9,7 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import DOMAIN, MusicCastCapabilityEntity, MusicCastDataUpdateCoordinator +from .const import DEVICE_CLASS_MAPPING async def async_setup_entry( @@ -45,9 +47,9 @@ class SelectableCapapility(MusicCastCapabilityEntity, SelectEntity): await self.capability.set(value) @property - def device_class(self) -> str: - """Return the ID of the capability, to identify the entity for translations.""" - return f"{DOMAIN}__{self.capability.id.lower()}" + def device_class(self) -> str | None: + """Return the device class, to identify the entity for translations.""" + return DEVICE_CLASS_MAPPING.get(self.capability.id) @property def options(self):