Set via_device to Roon Core.

This commit is contained in:
pavoni
2025-06-13 11:30:11 +01:00
parent 94db72d744
commit d324d0b4dd
2 changed files with 8 additions and 4 deletions

View File

@@ -31,7 +31,7 @@ async def async_setup_entry(
if dev_id in event_entities:
return
# new player!
event_entity = RoonEventEntity(roon_server, player_data)
event_entity = RoonEventEntity(roon_server, player_data, config_entry.entry_id)
event_entities.add(dev_id)
async_add_entities([event_entity])
@@ -50,13 +50,14 @@ class RoonEventEntity(EventEntity):
_attr_event_types = ["volume_up", "volume_down", "mute_toggle"]
_attr_translation_key = "volume"
def __init__(self, server, player_data):
def __init__(self, server, player_data, core_id):
"""Initialize the entity."""
self._server = server
self._player_data = player_data
player_name = player_data["display_name"]
self._attr_name = f"{player_name} roon volume"
self._attr_unique_id = self._player_data["dev_id"]
self._core_id = core_id
if self._player_data.get("source_controls"):
dev_model = self._player_data["source_controls"][0].get("display_name")
@@ -69,6 +70,7 @@ class RoonEventEntity(EventEntity):
name=cast(str | None, self.name),
manufacturer="RoonLabs",
model=dev_model,
via_device=(DOMAIN, self._core_id),
)
def _roonapi_volume_callback(

View File

@@ -72,7 +72,7 @@ async def async_setup_entry(
dev_id = player_data["dev_id"]
if dev_id not in media_players:
# new player!
media_player = RoonDevice(roon_server, player_data)
media_player = RoonDevice(roon_server, player_data, config_entry.entry_id)
media_players.add(dev_id)
async_add_entities([media_player])
else:
@@ -106,7 +106,7 @@ class RoonDevice(MediaPlayerEntity):
| MediaPlayerEntityFeature.PLAY_MEDIA
)
def __init__(self, server, player_data):
def __init__(self, server, player_data, core_id):
"""Initialize Roon device object."""
self._remove_signal_status = None
self._server = server
@@ -125,6 +125,7 @@ class RoonDevice(MediaPlayerEntity):
self._attr_volume_level = 0
self._volume_fixed = True
self._volume_incremental = False
self._core_id = core_id
self.update_data(player_data)
async def async_added_to_hass(self) -> None:
@@ -166,6 +167,7 @@ class RoonDevice(MediaPlayerEntity):
name=cast(str | None, self.name),
manufacturer="RoonLabs",
model=dev_model,
via_device=(DOMAIN, self._core_id),
)
def update_data(self, player_data=None):