diff --git a/homeassistant/components/arcam_fmj/coordinator.py b/homeassistant/components/arcam_fmj/coordinator.py index 6bfe41b1f5d..268a0297c85 100644 --- a/homeassistant/components/arcam_fmj/coordinator.py +++ b/homeassistant/components/arcam_fmj/coordinator.py @@ -11,8 +11,11 @@ from arcam.fmj.state import State from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant, callback +from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed +from .const import DOMAIN + _LOGGER = logging.getLogger(__name__) @@ -50,6 +53,23 @@ class ArcamFmjCoordinator(DataUpdateCoordinator[None]): self.state = State(client, zone) self.last_update_success = False + name = config_entry.title + unique_id = config_entry.unique_id or config_entry.entry_id + unique_id_device = unique_id + if zone != 1: + unique_id_device += f"-{zone}" + name += f" Zone {zone}" + + self.device_info = DeviceInfo( + identifiers={(DOMAIN, unique_id_device)}, + manufacturer="Arcam", + model="Arcam FMJ AVR", + name=name, + ) + + if zone != 1: + self.device_info["via_device"] = (DOMAIN, unique_id) + async def _async_update_data(self) -> None: """Fetch data for manual refresh.""" try: diff --git a/homeassistant/components/arcam_fmj/media_player.py b/homeassistant/components/arcam_fmj/media_player.py index 81f1c733288..5a5fffab4b8 100644 --- a/homeassistant/components/arcam_fmj/media_player.py +++ b/homeassistant/components/arcam_fmj/media_player.py @@ -21,11 +21,10 @@ from homeassistant.components.media_player import ( from homeassistant.const import ATTR_ENTITY_ID from homeassistant.core import HomeAssistant from homeassistant.exceptions import HomeAssistantError -from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.update_coordinator import CoordinatorEntity -from .const import DOMAIN, EVENT_TURN_ON +from .const import EVENT_TURN_ON from .coordinator import ArcamFmjConfigEntry, ArcamFmjCoordinator _LOGGER = logging.getLogger(__name__) @@ -97,14 +96,7 @@ class ArcamFmj(CoordinatorEntity[ArcamFmjCoordinator], MediaPlayerEntity): self._attr_supported_features |= MediaPlayerEntityFeature.SELECT_SOUND_MODE self._attr_unique_id = f"{uuid}-{self._state.zn}" self._attr_entity_registry_enabled_default = self._state.zn == 1 - self._attr_device_info = DeviceInfo( - identifiers={ - (DOMAIN, uuid), - }, - manufacturer="Arcam", - model="Arcam FMJ AVR", - name=device_name, - ) + self._attr_device_info = coordinator.device_info @property def state(self) -> MediaPlayerState: