diff --git a/homeassistant/components/slimproto/manifest.json b/homeassistant/components/slimproto/manifest.json index b221db96262..f270e020740 100644 --- a/homeassistant/components/slimproto/manifest.json +++ b/homeassistant/components/slimproto/manifest.json @@ -6,5 +6,5 @@ "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/slimproto", "iot_class": "local_push", - "requirements": ["aioslimproto==2.3.3"] + "requirements": ["aioslimproto==3.0.0"] } diff --git a/homeassistant/components/slimproto/media_player.py b/homeassistant/components/slimproto/media_player.py index 81bce3820ed..f3cbcef2a61 100644 --- a/homeassistant/components/slimproto/media_player.py +++ b/homeassistant/components/slimproto/media_player.py @@ -6,7 +6,7 @@ import asyncio from typing import Any from aioslimproto.client import PlayerState, SlimClient -from aioslimproto.const import EventType, SlimEvent +from aioslimproto.models import EventType, SlimEvent from aioslimproto.server import SlimServer from homeassistant.components import media_source @@ -145,9 +145,23 @@ class SlimProtoPlayer(MediaPlayerEntity): def update_attributes(self) -> None: """Handle player updates.""" self._attr_volume_level = self.player.volume_level / 100 + self._attr_is_volume_muted = self.player.muted self._attr_media_position = self.player.elapsed_seconds self._attr_media_position_updated_at = utcnow() - self._attr_media_content_id = self.player.current_url + if (current_media := self.player.current_media) and ( + metadata := current_media.metadata + ): + self._attr_media_content_id = metadata.get("item_id", current_media.url) + self._attr_media_artist = metadata.get("artist") + self._attr_media_album_name = metadata.get("album") + self._attr_media_title = metadata.get("title") + self._attr_media_image_url = metadata.get("image_url") + else: + self._attr_media_content_id = current_media.url if current_media else None + self._attr_media_artist = None + self._attr_media_album_name = None + self._attr_media_title = None + self._attr_media_image_url = None self._attr_media_content_type = "music" async def async_media_play(self) -> None: diff --git a/requirements_all.txt b/requirements_all.txt index 3ad10542804..441a89d1ff5 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -371,7 +371,7 @@ aioshelly==8.1.1 aioskybell==22.7.0 # homeassistant.components.slimproto -aioslimproto==2.3.3 +aioslimproto==3.0.0 # homeassistant.components.steamist aiosteamist==0.3.2 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 4b2155ec82c..ad07be13904 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -344,7 +344,7 @@ aioshelly==8.1.1 aioskybell==22.7.0 # homeassistant.components.slimproto -aioslimproto==2.3.3 +aioslimproto==3.0.0 # homeassistant.components.steamist aiosteamist==0.3.2