diff --git a/homeassistant/components/homekit/type_media_players.py b/homeassistant/components/homekit/type_media_players.py index e07e9cb47494b7275a7940c08f04e1c09f3e3889..ec15438352ca1815fc007bec92a6004f0a199e87 100644 --- a/homeassistant/components/homekit/type_media_players.py +++ b/homeassistant/components/homekit/type_media_players.py @@ -33,6 +33,7 @@ from homeassistant.const import ( STATE_OFF, STATE_PAUSED, STATE_PLAYING, + STATE_STANDBY, STATE_UNKNOWN, ) @@ -190,7 +191,12 @@ class MediaPlayer(HomeAccessory): current_state = new_state.state if self.chars[FEATURE_ON_OFF]: - hk_state = current_state not in (STATE_OFF, STATE_UNKNOWN, "None") + hk_state = current_state not in ( + STATE_OFF, + STATE_UNKNOWN, + STATE_STANDBY, + "None", + ) if not self._flag[FEATURE_ON_OFF]: _LOGGER.debug( '%s: Set current state for "on_off" to %s', self.entity_id, hk_state diff --git a/tests/components/homekit/test_type_media_players.py b/tests/components/homekit/test_type_media_players.py index 366617ee988d8c540b7d99e3a386b6cc756f975d..1fcc3dde40fb9a04e1e4600028fdfb2a9ce5cf79 100644 --- a/tests/components/homekit/test_type_media_players.py +++ b/tests/components/homekit/test_type_media_players.py @@ -30,6 +30,7 @@ from homeassistant.const import ( STATE_ON, STATE_PAUSED, STATE_PLAYING, + STATE_STANDBY, ) from homeassistant.core import CoreState from homeassistant.helpers import entity_registry @@ -75,6 +76,14 @@ async def test_media_player_set_state(hass, hk_driver, events): await hass.async_block_till_done() assert acc.chars[FEATURE_ON_OFF].value is False + hass.states.async_set(entity_id, STATE_ON) + await hass.async_block_till_done() + assert acc.chars[FEATURE_ON_OFF].value is True + + hass.states.async_set(entity_id, STATE_STANDBY) + await hass.async_block_till_done() + assert acc.chars[FEATURE_ON_OFF].value is False + hass.states.async_set(entity_id, STATE_PLAYING) await hass.async_block_till_done() assert acc.chars[FEATURE_PLAY_PAUSE].value is True