From 2c1b4652150a78f31da33b3f4482f10c55d88dfc Mon Sep 17 00:00:00 2001 From: Martin Date: Sun, 2 Feb 2020 23:52:00 +0100 Subject: [PATCH] Emulated Hue + Alexa: Fix devices not discovered and error response (#30013 & #29899) (#31413) * Revert "Emulated Hue: changed the reported fallback device-type to fix Alexa compatibility issues (#30013)" This reverts commit ddc8d9e25c0c8fd4073c0c516de9fa096cceb9bc. * Revert "Emulated Hue: updated tests (#30013)" This reverts commit 90df461e752fd6ecc1dc65bae0eba17f26a82f5f. * Emulated Hue + Alexa: changed the fallback device-type again to "Dimmable Light" (#30013) after collective debugging; fixed brightness for on/off-devices and scripts to prevent "device malfunction" response from Alexa (#29899) * Emulated Hue + Alexa: lint (#30013, #29899) --- .../components/emulated_hue/hue_api.py | 28 +++++++++---------- tests/components/emulated_hue/test_hue_api.py | 2 +- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/homeassistant/components/emulated_hue/hue_api.py b/homeassistant/components/emulated_hue/hue_api.py index 118bf7e3eaa..56e76b1d499 100644 --- a/homeassistant/components/emulated_hue/hue_api.py +++ b/homeassistant/components/emulated_hue/hue_api.py @@ -688,27 +688,25 @@ def entity_to_json(config, entity): retval["state"].update( {HUE_API_STATE_COLORMODE: "ct", HUE_API_STATE_CT: state[STATE_COLOR_TEMP]} ) - elif ( - entity_features - & ( - SUPPORT_BRIGHTNESS - | SUPPORT_SET_POSITION - | SUPPORT_SET_SPEED - | SUPPORT_VOLUME_SET - | SUPPORT_TARGET_TEMPERATURE - ) - ) or entity.domain == script.DOMAIN: + elif entity_features & ( + SUPPORT_BRIGHTNESS + | SUPPORT_SET_POSITION + | SUPPORT_SET_SPEED + | SUPPORT_VOLUME_SET + | SUPPORT_TARGET_TEMPERATURE + ): # Dimmable light (Zigbee Device ID: 0x0100) # Supports groups, scenes, on/off and dimming retval["type"] = "Dimmable light" retval["modelid"] = "HASS123" retval["state"].update({HUE_API_STATE_BRI: state[STATE_BRIGHTNESS]}) else: - # On/off plug-in unit (Zigbee Device ID: 0x0000) - # Supports groups and on/off control - # Used for compatibility purposes with Alexa instead of "On/off light" - retval["type"] = "On/off plug-in unit" - retval["modelid"] = "HASS321" + # Dimmable light (Zigbee Device ID: 0x0100) + # Supports groups, scenes, on/off and dimming + # Reports fixed brightness for compatibility with Alexa. + retval["type"] = "Dimmable light" + retval["modelid"] = "HASS123" + retval["state"].update({HUE_API_STATE_BRI: HUE_API_STATE_BRI_MAX}) return retval diff --git a/tests/components/emulated_hue/test_hue_api.py b/tests/components/emulated_hue/test_hue_api.py index 0ddc429b2d9..51c3da7f08d 100644 --- a/tests/components/emulated_hue/test_hue_api.py +++ b/tests/components/emulated_hue/test_hue_api.py @@ -238,7 +238,7 @@ async def test_light_without_brightness_supported(hass_hue, hue_client): ) assert light_without_brightness_json["state"][HUE_API_STATE_ON] is True - assert light_without_brightness_json["type"] == "On/off plug-in unit" + assert light_without_brightness_json["type"] == "Dimmable light" async def test_light_without_brightness_can_be_turned_off(hass_hue, hue_client):