mirror of
https://github.com/home-assistant/core.git
synced 2025-07-20 03:37:07 +00:00
Bump Music Assistant Client to 1.2.3 (#147885)
This commit is contained in:
parent
01e7efc7b4
commit
3ed440a3af
@ -34,7 +34,7 @@ class MusicAssistantEntity(Entity):
|
|||||||
identifiers={(DOMAIN, player_id)},
|
identifiers={(DOMAIN, player_id)},
|
||||||
manufacturer=self.player.device_info.manufacturer or provider.name,
|
manufacturer=self.player.device_info.manufacturer or provider.name,
|
||||||
model=self.player.device_info.model or self.player.name,
|
model=self.player.device_info.model or self.player.name,
|
||||||
name=self.player.display_name,
|
name=self.player.name,
|
||||||
configuration_url=f"{mass.server_url}/#/settings/editplayer/{player_id}",
|
configuration_url=f"{mass.server_url}/#/settings/editplayer/{player_id}",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -7,6 +7,6 @@
|
|||||||
"documentation": "https://www.home-assistant.io/integrations/music_assistant",
|
"documentation": "https://www.home-assistant.io/integrations/music_assistant",
|
||||||
"iot_class": "local_push",
|
"iot_class": "local_push",
|
||||||
"loggers": ["music_assistant"],
|
"loggers": ["music_assistant"],
|
||||||
"requirements": ["music-assistant-client==1.2.0"],
|
"requirements": ["music-assistant-client==1.2.3"],
|
||||||
"zeroconf": ["_mass._tcp.local."]
|
"zeroconf": ["_mass._tcp.local."]
|
||||||
}
|
}
|
||||||
|
@ -6,11 +6,7 @@ import logging
|
|||||||
from typing import TYPE_CHECKING, Any, cast
|
from typing import TYPE_CHECKING, Any, cast
|
||||||
|
|
||||||
from music_assistant_models.enums import MediaType as MASSMediaType
|
from music_assistant_models.enums import MediaType as MASSMediaType
|
||||||
from music_assistant_models.media_items import (
|
from music_assistant_models.media_items import MediaItemType, SearchResults
|
||||||
BrowseFolder,
|
|
||||||
MediaItemType,
|
|
||||||
SearchResults,
|
|
||||||
)
|
|
||||||
|
|
||||||
from homeassistant.components import media_source
|
from homeassistant.components import media_source
|
||||||
from homeassistant.components.media_player import (
|
from homeassistant.components.media_player import (
|
||||||
@ -549,8 +545,6 @@ def _process_search_results(
|
|||||||
|
|
||||||
# Add available items to results
|
# Add available items to results
|
||||||
for item in items:
|
for item in items:
|
||||||
if TYPE_CHECKING:
|
|
||||||
assert not isinstance(item, BrowseFolder)
|
|
||||||
if not item.available:
|
if not item.available:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
@ -250,8 +250,8 @@ class MusicAssistantPlayer(MusicAssistantEntity, MediaPlayerEntity):
|
|||||||
# update generic attributes
|
# update generic attributes
|
||||||
if player.powered and active_queue is not None:
|
if player.powered and active_queue is not None:
|
||||||
self._attr_state = MediaPlayerState(active_queue.state.value)
|
self._attr_state = MediaPlayerState(active_queue.state.value)
|
||||||
if player.powered and player.state is not None:
|
if player.powered and player.playback_state is not None:
|
||||||
self._attr_state = MediaPlayerState(player.state.value)
|
self._attr_state = MediaPlayerState(player.playback_state.value)
|
||||||
else:
|
else:
|
||||||
self._attr_state = MediaPlayerState(STATE_OFF)
|
self._attr_state = MediaPlayerState(STATE_OFF)
|
||||||
# active source and source list (translate to HA source names)
|
# active source and source list (translate to HA source names)
|
||||||
@ -270,12 +270,12 @@ class MusicAssistantPlayer(MusicAssistantEntity, MediaPlayerEntity):
|
|||||||
self._attr_source = active_source_name
|
self._attr_source = active_source_name
|
||||||
|
|
||||||
group_members: list[str] = []
|
group_members: list[str] = []
|
||||||
if player.group_childs:
|
if player.group_members:
|
||||||
group_members = player.group_childs
|
group_members = player.group_members
|
||||||
elif player.synced_to and (parent := self.mass.players.get(player.synced_to)):
|
elif player.synced_to and (parent := self.mass.players.get(player.synced_to)):
|
||||||
group_members = parent.group_childs
|
group_members = parent.group_members
|
||||||
|
|
||||||
# translate MA group_childs to HA group_members as entity id's
|
# translate MA group_members to HA group_members as entity id's
|
||||||
entity_registry = er.async_get(self.hass)
|
entity_registry = er.async_get(self.hass)
|
||||||
group_members_entity_ids: list[str] = [
|
group_members_entity_ids: list[str] = [
|
||||||
entity_id
|
entity_id
|
||||||
|
2
requirements_all.txt
generated
2
requirements_all.txt
generated
@ -1467,7 +1467,7 @@ mozart-api==4.1.1.116.4
|
|||||||
mullvad-api==1.0.0
|
mullvad-api==1.0.0
|
||||||
|
|
||||||
# homeassistant.components.music_assistant
|
# homeassistant.components.music_assistant
|
||||||
music-assistant-client==1.2.0
|
music-assistant-client==1.2.3
|
||||||
|
|
||||||
# homeassistant.components.tts
|
# homeassistant.components.tts
|
||||||
mutagen==1.47.0
|
mutagen==1.47.0
|
||||||
|
2
requirements_test_all.txt
generated
2
requirements_test_all.txt
generated
@ -1259,7 +1259,7 @@ mozart-api==4.1.1.116.4
|
|||||||
mullvad-api==1.0.0
|
mullvad-api==1.0.0
|
||||||
|
|
||||||
# homeassistant.components.music_assistant
|
# homeassistant.components.music_assistant
|
||||||
music-assistant-client==1.2.0
|
music-assistant-client==1.2.3
|
||||||
|
|
||||||
# homeassistant.components.tts
|
# homeassistant.components.tts
|
||||||
mutagen==1.47.0
|
mutagen==1.47.0
|
||||||
|
@ -53,6 +53,7 @@ async def music_assistant_client_fixture() -> AsyncGenerator[MagicMock]:
|
|||||||
|
|
||||||
client.connect = AsyncMock(side_effect=connect)
|
client.connect = AsyncMock(side_effect=connect)
|
||||||
client.start_listening = AsyncMock(side_effect=listen)
|
client.start_listening = AsyncMock(side_effect=listen)
|
||||||
|
client.send_command = AsyncMock(return_value=None)
|
||||||
client.server_info = ServerInfoMessage(
|
client.server_info = ServerInfoMessage(
|
||||||
server_id=MOCK_SERVER_ID,
|
server_id=MOCK_SERVER_ID,
|
||||||
server_version="0.0.0",
|
server_version="0.0.0",
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
"player_id": "00:00:00:00:00:01",
|
"player_id": "00:00:00:00:00:01",
|
||||||
"provider": "test",
|
"provider": "test",
|
||||||
"type": "player",
|
"type": "player",
|
||||||
"name": "Test Player 1",
|
|
||||||
"available": true,
|
"available": true,
|
||||||
"powered": false,
|
"powered": false,
|
||||||
"device_info": {
|
"device_info": {
|
||||||
@ -23,10 +22,10 @@
|
|||||||
],
|
],
|
||||||
"elapsed_time": null,
|
"elapsed_time": null,
|
||||||
"elapsed_time_last_updated": 0,
|
"elapsed_time_last_updated": 0,
|
||||||
"state": "idle",
|
"playback_state": "idle",
|
||||||
"volume_level": 20,
|
"volume_level": 20,
|
||||||
"volume_muted": false,
|
"volume_muted": false,
|
||||||
"group_childs": [],
|
"group_members": [],
|
||||||
"active_source": "00:00:00:00:00:01",
|
"active_source": "00:00:00:00:00:01",
|
||||||
"active_group": null,
|
"active_group": null,
|
||||||
"current_media": null,
|
"current_media": null,
|
||||||
@ -37,7 +36,7 @@
|
|||||||
"enabled": true,
|
"enabled": true,
|
||||||
"icon": "mdi-speaker",
|
"icon": "mdi-speaker",
|
||||||
"group_volume": 20,
|
"group_volume": 20,
|
||||||
"display_name": "Test Player 1",
|
"name": "Test Player 1",
|
||||||
"power_control": "native",
|
"power_control": "native",
|
||||||
"volume_control": "native",
|
"volume_control": "native",
|
||||||
"mute_control": "native",
|
"mute_control": "native",
|
||||||
@ -75,7 +74,6 @@
|
|||||||
"player_id": "00:00:00:00:00:02",
|
"player_id": "00:00:00:00:00:02",
|
||||||
"provider": "test",
|
"provider": "test",
|
||||||
"type": "player",
|
"type": "player",
|
||||||
"name": "Test Player 2",
|
|
||||||
"available": true,
|
"available": true,
|
||||||
"powered": true,
|
"powered": true,
|
||||||
"device_info": {
|
"device_info": {
|
||||||
@ -93,10 +91,10 @@
|
|||||||
],
|
],
|
||||||
"elapsed_time": 0,
|
"elapsed_time": 0,
|
||||||
"elapsed_time_last_updated": 0,
|
"elapsed_time_last_updated": 0,
|
||||||
"state": "playing",
|
"playback_state": "playing",
|
||||||
"volume_level": 20,
|
"volume_level": 20,
|
||||||
"volume_muted": false,
|
"volume_muted": false,
|
||||||
"group_childs": [],
|
"group_members": [],
|
||||||
"active_source": "spotify",
|
"active_source": "spotify",
|
||||||
"active_group": null,
|
"active_group": null,
|
||||||
"current_media": {
|
"current_media": {
|
||||||
@ -117,7 +115,7 @@
|
|||||||
"hidden": false,
|
"hidden": false,
|
||||||
"icon": "mdi-speaker",
|
"icon": "mdi-speaker",
|
||||||
"group_volume": 20,
|
"group_volume": 20,
|
||||||
"display_name": "My Super Test Player 2",
|
"name": "My Super Test Player 2",
|
||||||
"power_control": "native",
|
"power_control": "native",
|
||||||
"volume_control": "native",
|
"volume_control": "native",
|
||||||
"mute_control": "native",
|
"mute_control": "native",
|
||||||
@ -139,7 +137,6 @@
|
|||||||
"player_id": "test_group_player_1",
|
"player_id": "test_group_player_1",
|
||||||
"provider": "player_group",
|
"provider": "player_group",
|
||||||
"type": "group",
|
"type": "group",
|
||||||
"name": "Test Group Player 1",
|
|
||||||
"available": true,
|
"available": true,
|
||||||
"powered": true,
|
"powered": true,
|
||||||
"device_info": {
|
"device_info": {
|
||||||
@ -157,10 +154,10 @@
|
|||||||
],
|
],
|
||||||
"elapsed_time": 0.0,
|
"elapsed_time": 0.0,
|
||||||
"elapsed_time_last_updated": 1730315437.9904983,
|
"elapsed_time_last_updated": 1730315437.9904983,
|
||||||
"state": "idle",
|
"playback_state": "idle",
|
||||||
"volume_level": 6,
|
"volume_level": 6,
|
||||||
"volume_muted": false,
|
"volume_muted": false,
|
||||||
"group_childs": ["00:00:00:00:00:01", "00:00:00:00:00:02"],
|
"group_members": ["00:00:00:00:00:01", "00:00:00:00:00:02"],
|
||||||
"active_source": "test_group_player_1",
|
"active_source": "test_group_player_1",
|
||||||
"active_group": null,
|
"active_group": null,
|
||||||
"current_media": {
|
"current_media": {
|
||||||
@ -180,7 +177,7 @@
|
|||||||
"enabled": true,
|
"enabled": true,
|
||||||
"icon": "mdi-speaker-multiple",
|
"icon": "mdi-speaker-multiple",
|
||||||
"group_volume": 6,
|
"group_volume": 6,
|
||||||
"display_name": "Test Group Player 1",
|
"name": "Test Group Player 1",
|
||||||
"power_control": "native",
|
"power_control": "native",
|
||||||
"volume_control": "native",
|
"volume_control": "native",
|
||||||
"mute_control": "native",
|
"mute_control": "native",
|
||||||
|
@ -75,7 +75,7 @@ async def test_button_press_action(
|
|||||||
await trigger_subscription_callback(
|
await trigger_subscription_callback(
|
||||||
hass, music_assistant_client, EventType.PLAYER_CONFIG_UPDATED, mass_player_id
|
hass, music_assistant_client, EventType.PLAYER_CONFIG_UPDATED, mass_player_id
|
||||||
)
|
)
|
||||||
with pytest.raises(HomeAssistantError, match="Player has no active source"):
|
with pytest.raises(HomeAssistantError, match="No current item to add to favorites"):
|
||||||
await hass.services.async_call(
|
await hass.services.async_call(
|
||||||
BUTTON_DOMAIN,
|
BUTTON_DOMAIN,
|
||||||
SERVICE_PRESS,
|
SERVICE_PRESS,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user