From 264e70922b6b51ff7064a6e008f0375f2a2731db Mon Sep 17 00:00:00 2001 From: Markus Jankowski Date: Tue, 7 May 2019 18:53:15 +0200 Subject: [PATCH] Fix effects on HUE integration for Osram bulbs (#22789) * Fix hue effect for others * New suggestion * switched implementation to remove colorloop for osram bulbs * Check ATTR_EFFECT in kwargs * Fix tests --- homeassistant/components/hue/light.py | 20 +++++++++++--------- tests/components/hue/test_light.py | 2 -- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/homeassistant/components/hue/light.py b/homeassistant/components/hue/light.py index a79b0e3ee23..c517184b62a 100644 --- a/homeassistant/components/hue/light.py +++ b/homeassistant/components/hue/light.py @@ -312,6 +312,8 @@ class HueLight(Light): @property def effect_list(self): """Return the list of supported effects.""" + if self.is_osram: + return [EFFECT_RANDOM] return [EFFECT_COLORLOOP, EFFECT_RANDOM] @property @@ -371,15 +373,15 @@ class HueLight(Light): else: command['alert'] = 'none' - effect = kwargs.get(ATTR_EFFECT) - - if effect == EFFECT_COLORLOOP: - command['effect'] = 'colorloop' - elif effect == EFFECT_RANDOM: - command['hue'] = random.randrange(0, 65535) - command['sat'] = random.randrange(150, 254) - elif self.is_philips: - command['effect'] = 'none' + if ATTR_EFFECT in kwargs: + effect = kwargs[ATTR_EFFECT] + if effect == EFFECT_COLORLOOP: + command['effect'] = 'colorloop' + elif effect == EFFECT_RANDOM: + command['hue'] = random.randrange(0, 65535) + command['sat'] = random.randrange(150, 254) + else: + command['effect'] = 'none' if self.is_group: await self.light.set_action(**command) diff --git a/tests/components/hue/test_light.py b/tests/components/hue/test_light.py index eabfd6d35aa..c56a9a418c9 100644 --- a/tests/components/hue/test_light.py +++ b/tests/components/hue/test_light.py @@ -640,7 +640,6 @@ async def test_light_turn_on_service(hass, mock_bridge): 'bri': 100, 'on': True, 'ct': 300, - 'effect': 'none', 'alert': 'none', } @@ -661,7 +660,6 @@ async def test_light_turn_on_service(hass, mock_bridge): assert mock_bridge.mock_requests[3]['json'] == { 'on': True, 'xy': (0.138, 0.08), - 'effect': 'none', 'alert': 'none', }