From b855177fe6fac518f6cfe48b152a08c881204146 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" <nick@koston.org> Date: Sun, 5 Apr 2020 08:47:44 -0500 Subject: [PATCH] Make homekit aware of STATE_STANDBY (#33679) --- homeassistant/components/homekit/type_media_players.py | 8 +++++++- tests/components/homekit/test_type_media_players.py | 9 +++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/homekit/type_media_players.py b/homeassistant/components/homekit/type_media_players.py index e07e9cb4749..ec15438352c 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 366617ee988..1fcc3dde40f 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 -- GitLab