⬆️ Update music-assistant-models to 1.1.91 (#3016)
authormusic-assistant-machine <141749843+music-assistant-machine@users.noreply.github.com>
Sun, 25 Jan 2026 15:05:01 +0000 (16:05 +0100)
committerGitHub <noreply@github.com>
Sun, 25 Jan 2026 15:05:01 +0000 (15:05 +0000)
* ⬆️ Update music-assistant-models to 1.1.91

* Adjustments for models change

---------

Co-authored-by: marcelveldt <6389780+marcelveldt@users.noreply.github.com>
Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
music_assistant/models/player.py
music_assistant/providers/airplay/player.py
music_assistant/providers/dlna/player.py
music_assistant/providers/dlna/provider.py
music_assistant/providers/fully_kiosk/player.py
music_assistant/providers/roku_media_assistant/provider.py
music_assistant/providers/snapcast/player.py
music_assistant/providers/sonos_s1/player.py
music_assistant/providers/squeezelite/player.py
pyproject.toml
requirements_all.txt

index 8eefaccfb50bb7df9856b90753fddfc06e4d5f5b..f49952a16f97f7951ef78c3c507d66437ec25bc4 100644 (file)
@@ -22,6 +22,7 @@ from music_assistant_models.config_entries import (
     PlayerConfig,
 )
 from music_assistant_models.constants import (
+    EXTRA_ATTRIBUTES_TYPES,
     PLAYER_CONTROL_FAKE,
     PLAYER_CONTROL_NATIVE,
     PLAYER_CONTROL_NONE,
@@ -35,12 +36,7 @@ from music_assistant_models.enums import (
     PlayerType,
 )
 from music_assistant_models.errors import UnsupportedFeaturedException
-from music_assistant_models.player import (
-    EXTRA_ATTRIBUTES_TYPES,
-    DeviceInfo,
-    PlayerMedia,
-    PlayerSource,
-)
+from music_assistant_models.player import DeviceInfo, PlayerMedia, PlayerSource
 from music_assistant_models.player import Player as PlayerState
 from music_assistant_models.unique_list import UniqueList
 from propcache import under_cached_property as cached_property
index a2beb401f21f7120ce9c9b4493c53fe7853cb696..f3b2791f61e8d4af1c176cd06f6a044ccad9d890 100644 (file)
@@ -102,9 +102,9 @@ class AirPlayPlayer(Player):
         self._attr_device_info = DeviceInfo(
             model=model,
             manufacturer=manufacturer,
-            ip_address=address,
-            mac_address=player_id_to_mac_address(player_id),
         )
+        self._attr_device_info.ip_address = address
+        self._attr_device_info.mac_address = player_id_to_mac_address(player_id)
         self._attr_supported_features = {
             PlayerFeature.PAUSE,
             PlayerFeature.SET_MEMBERS,
index af7a291e45d7d3b88affb65ea5f7e46675323c46..268bbf4146649938b7d5ad01190d8ef132b09f02 100644 (file)
@@ -121,7 +121,6 @@ class DLNAPlayer(Player):
                 # connect was successful, update device info
                 self._attr_device_info = DeviceInfo(
                     model=self.device.model_name,
-                    ip_address=self.device.device.presentation_url or self.description_url,
                     manufacturer=self.device.manufacturer,
                 )
 
index a4de1b76c165f6ca2baa9d697a8d90960549d611..752f7686f6ff51bc77180a3d9b4c28a907d00378 100644 (file)
@@ -154,7 +154,6 @@ class DLNAPlayerProvider(PlayerProvider):
                 # will be updated later.
                 dlna_player._attr_device_info = DeviceInfo(
                     model="unknown",
-                    ip_address=description_url,
                     manufacturer="unknown",
                 )
                 self.dlnaplayers[udn] = dlna_player
index 6b046de70ab865d5d8652b0901fce163f71a41fc..d1b30d1400da3ac276f70db7fe400bafbf5389fa 100644 (file)
@@ -45,8 +45,8 @@ class FullyKioskPlayer(Player):
         self._attr_device_info = DeviceInfo(
             model=self.fully_kiosk.deviceInfo["deviceModel"],
             manufacturer=self.fully_kiosk.deviceInfo["deviceManufacturer"],
-            ip_address=address,
         )
+        self._attr_device_info.ip_address = address
         self._attr_available = True
         self._attr_needs_poll = True
         self._attr_poll_interval = 10
index ba41855fba9d10293760839f224a332099d68b03..c18d7b5bf4eb425c2b3b2910c8024f2084b89ef8 100644 (file)
@@ -168,8 +168,8 @@ class MediaAssistantprovider(PlayerProvider):
                     model=device.info.model_name if device.info.model_name is not None else "",
                     model_id=device.info.model_number,
                     manufacturer=device.info.brand,
-                    ip_address=ip,
                 )
+                roku_player._attr_device_info.ip_address = ip
 
                 self.roku_players[player_id] = roku_player
             await roku_player.setup()
index 011250e6373f2300390487f1519e4068476b7c5a..5e2ef7d0d5290d9602bcd0573518c0fe52056a56 100644 (file)
@@ -74,9 +74,9 @@ class SnapCastPlayer(Player):
         self._attr_available = self.snap_client.connected
         self._attr_device_info = DeviceInfo(
             model=self.snap_client._client.get("host").get("os"),
-            ip_address=self.snap_client._client.get("host").get("ip"),
             manufacturer=self.snap_client._client.get("host").get("arch"),
         )
+        self._attr_device_info.ip_address = self.snap_client._client.get("host").get("ip")
         self._attr_supported_features = {
             PlayerFeature.SET_MEMBERS,
             PlayerFeature.VOLUME_SET,
index 36036ee52ba2f70476e7125539209071d2327078..6cf87fd41c3702c7b77b8314888fa2e88ea5c51b 100644 (file)
@@ -80,8 +80,8 @@ class SonosPlayer(Player):
         self._attr_device_info = DeviceInfo(
             model=soco.speaker_info["model_name"],
             manufacturer="Sonos",
-            ip_address=soco.ip_address,
         )
+        self._attr_device_info.ip_address = soco.ip_address
         self._attr_needs_poll = True
         self._attr_poll_interval = 5
         self._attr_available = True
@@ -315,8 +315,8 @@ class SonosPlayer(Player):
         self._attr_device_info = DeviceInfo(
             model=self._attr_device_info.model,
             manufacturer=self._attr_device_info.manufacturer,
-            ip_address=ip_address,
         )
+        self._attr_device_info.ip_address = ip_address
         self.update_player()
 
     async def _check_availability(self) -> None:
index 4887b44e8b0bb44fbc229685c769a68429b289f6..a287d7f3dc1ccee4c95fdd95288c75672ccf4e5c 100644 (file)
@@ -375,9 +375,10 @@ class SqueezelitePlayer(Player):
         self._attr_volume_muted = self.client.muted
         self._attr_device_info = DeviceInfo(
             model=self.client.device_model,
-            ip_address=self.client.device_address,
             manufacturer=self.client.device_type,
         )
+        self._attr_device_info.ip_address = self.client.device_address
+        self._attr_device_info.mac_address = self.client.player_id
         if (
             old_state != PlaybackState.PLAYING
             and self._attr_playback_state == PlaybackState.PLAYING
index 0f9ad484c2d3e2056e3efaf2cc5dc8173971ee2f..677201d3e2b2754f37d192013696952d3f363f73 100644 (file)
@@ -30,7 +30,7 @@ dependencies = [
   "getmac==0.9.5",
   "mashumaro==3.17",
   "music-assistant-frontend==2.17.73",
-  "music-assistant-models==1.1.90",
+  "music-assistant-models==1.1.91",
   "mutagen==1.47.0",
   "orjson==3.11.5",
   "pillow==12.1.0",
index 987e51ce343234faf136717a42a10b7a020103f4..33c0cbd28c5dff573be40bcac5bd6ed80d9ed3a1 100644 (file)
@@ -42,7 +42,7 @@ librosa==0.11.0
 lyricsgenius==3.7.5
 mashumaro==3.17
 music-assistant-frontend==2.17.73
-music-assistant-models==1.1.90
+music-assistant-models==1.1.91
 mutagen==1.47.0
 niconico.py-ma==2.1.0.post1
 orjson==3.11.5