mirror of
https://github.com/home-assistant/core.git
synced 2025-07-14 00:37:13 +00:00
Add Yamaha MusicCast zone specific devices (#58285)
This commit is contained in:
parent
560546f65e
commit
e615e70e49
@ -20,7 +20,7 @@ from homeassistant.helpers.update_coordinator import (
|
|||||||
UpdateFailed,
|
UpdateFailed,
|
||||||
)
|
)
|
||||||
|
|
||||||
from .const import BRAND, CONF_SERIAL, CONF_UPNP_DESC, DOMAIN
|
from .const import BRAND, CONF_SERIAL, CONF_UPNP_DESC, DEFAULT_ZONE, DOMAIN
|
||||||
|
|
||||||
PLATFORMS = ["media_player"]
|
PLATFORMS = ["media_player"]
|
||||||
|
|
||||||
@ -150,22 +150,43 @@ class MusicCastEntity(CoordinatorEntity):
|
|||||||
class MusicCastDeviceEntity(MusicCastEntity):
|
class MusicCastDeviceEntity(MusicCastEntity):
|
||||||
"""Defines a MusicCast device entity."""
|
"""Defines a MusicCast device entity."""
|
||||||
|
|
||||||
|
_zone_id: str = DEFAULT_ZONE
|
||||||
|
|
||||||
|
@property
|
||||||
|
def device_id(self):
|
||||||
|
"""Return the ID of the current device."""
|
||||||
|
if self._zone_id == DEFAULT_ZONE:
|
||||||
|
return self.coordinator.data.device_id
|
||||||
|
return f"{self.coordinator.data.device_id}_{self._zone_id}"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def device_name(self):
|
||||||
|
"""Return the name of the current device."""
|
||||||
|
return self.coordinator.data.zones[self._zone_id].name
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device_info(self) -> DeviceInfo:
|
def device_info(self) -> DeviceInfo:
|
||||||
"""Return device information about this MusicCast device."""
|
"""Return device information about this MusicCast device."""
|
||||||
return DeviceInfo(
|
|
||||||
connections={
|
device_info = DeviceInfo(
|
||||||
(CONNECTION_NETWORK_MAC, format_mac(mac))
|
name=self.device_name,
|
||||||
for mac in self.coordinator.data.mac_addresses.values()
|
|
||||||
},
|
|
||||||
identifiers={
|
identifiers={
|
||||||
(
|
(
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
self.coordinator.data.device_id,
|
self.device_id,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
name=self.coordinator.data.network_name,
|
|
||||||
manufacturer=BRAND,
|
manufacturer=BRAND,
|
||||||
model=self.coordinator.data.model_name,
|
model=self.coordinator.data.model_name,
|
||||||
sw_version=self.coordinator.data.system_version,
|
sw_version=self.coordinator.data.system_version,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if self._zone_id == DEFAULT_ZONE:
|
||||||
|
device_info["connections"] = {
|
||||||
|
(CONNECTION_NETWORK_MAC, format_mac(mac))
|
||||||
|
for mac in self.coordinator.data.mac_addresses.values()
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
device_info["via_device"] = (DOMAIN, self.coordinator.data.device_id)
|
||||||
|
|
||||||
|
return device_info
|
||||||
|
Loading…
x
Reference in New Issue
Block a user