From 3925e12863ac7d666fc8073973ee846c67eb384d Mon Sep 17 00:00:00 2001 From: Li Shuzhen Date: Tue, 16 Dec 2025 08:28:16 +0800 Subject: [PATCH] fix: playing state of media player entity (#1552) --- custom_components/xiaomi_home/media_player.py | 11 ++++++----- .../xiaomi_home/miot/specs/specv2entity.py | 4 +++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/custom_components/xiaomi_home/media_player.py b/custom_components/xiaomi_home/media_player.py index f863d92..ecc17ed 100644 --- a/custom_components/xiaomi_home/media_player.py +++ b/custom_components/xiaomi_home/media_player.py @@ -430,15 +430,16 @@ class FeatureState(MIoTServiceEntity, MediaPlayerEntity): elif item.name in {'pause', 'paused'}: self._playing_state_map[ item.value] = MediaPlayerState.PAUSED - self._prop_playing_state = prop + self._prop_playing_state = prop @property def state(self) -> Optional[MediaPlayerState]: """The current state.""" - return (self.get_map_value(map_=self._playing_state_map, - key=self.get_prop_value( - prop=self._prop_playing_state)) - if self._prop_playing_state else MediaPlayerState.ON) + current_state = self.get_prop_value( + prop=self._prop_playing_state) if self._prop_playing_state else None + return (MediaPlayerState.ON if + (current_state is None) else self.get_map_value( + map_=self._playing_state_map, key=current_state)) class WifiSpeaker(FeatureVolumeSet, FeatureVolumeMute, FeaturePlay, diff --git a/custom_components/xiaomi_home/miot/specs/specv2entity.py b/custom_components/xiaomi_home/miot/specs/specv2entity.py index ff7849d..c824ecd 100644 --- a/custom_components/xiaomi_home/miot/specs/specv2entity.py +++ b/custom_components/xiaomi_home/miot/specs/specv2entity.py @@ -325,10 +325,12 @@ SPEC_DEVICE_TRANS_MAP: dict = { }, 'play-control': { 'required': { + 'properties': { + 'playing-state': {'read'} + }, 'actions': {'play'} }, 'optional': { - 'properties': {'playing-state'}, 'actions': {'pause', 'stop', 'next', 'previous'} } }