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