From 0f37d8d8eb484552fbf6d64834a9ba1fc3b2d5bd Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Sun, 4 Sep 2016 03:04:12 -0700 Subject: [PATCH] Using alert with Hue maintains prior state (#3147) * When using flash with hue, dont change the on/off state of the light so that it will naturally return to its previous state once flash is complete * ATTR_FLASH not ATTR_EFFECT --- homeassistant/components/light/__init__.py | 1 + homeassistant/components/light/hue.py | 13 +++++++++++++ homeassistant/components/light/services.yaml | 6 ++++++ 3 files changed, 20 insertions(+) diff --git a/homeassistant/components/light/__init__.py b/homeassistant/components/light/__init__.py index 23afa58b628..f1bc83dfd17 100644 --- a/homeassistant/components/light/__init__.py +++ b/homeassistant/components/light/__init__.py @@ -98,6 +98,7 @@ LIGHT_TURN_ON_SCHEMA = vol.Schema({ LIGHT_TURN_OFF_SCHEMA = vol.Schema({ ATTR_ENTITY_ID: cv.entity_ids, ATTR_TRANSITION: VALID_TRANSITION, + ATTR_FLASH: vol.In([FLASH_SHORT, FLASH_LONG]), }) LIGHT_TOGGLE_SCHEMA = vol.Schema({ diff --git a/homeassistant/components/light/hue.py b/homeassistant/components/light/hue.py index b818f4ee932..3ac7f3ae5f6 100644 --- a/homeassistant/components/light/hue.py +++ b/homeassistant/components/light/hue.py @@ -264,8 +264,10 @@ class HueLight(Light): if flash == FLASH_LONG: command['alert'] = 'lselect' + del command['on'] elif flash == FLASH_SHORT: command['alert'] = 'select' + del command['on'] elif self.bridge_type == 'hue': command['alert'] = 'none' @@ -290,6 +292,17 @@ class HueLight(Light): # 900 seconds. command['transitiontime'] = min(9000, kwargs[ATTR_TRANSITION] * 10) + flash = kwargs.get(ATTR_FLASH) + + if flash == FLASH_LONG: + command['alert'] = 'lselect' + del command['on'] + elif flash == FLASH_SHORT: + command['alert'] = 'select' + del command['on'] + elif self.bridge_type == 'hue': + command['alert'] = 'none' + self.bridge.set_light(self.light_id, command) def update(self): diff --git a/homeassistant/components/light/services.yaml b/homeassistant/components/light/services.yaml index 392be490dc3..d6a6931652b 100644 --- a/homeassistant/components/light/services.yaml +++ b/homeassistant/components/light/services.yaml @@ -60,6 +60,12 @@ turn_off: description: Duration in seconds it takes to get to next state example: 60 + flash: + description: If the light should flash + values: + - short + - long + toggle: description: Toggles a light