diff --git a/homeassistant/components/light/flux_led.py b/homeassistant/components/light/flux_led.py index 11acdac6bc7..f64719a6529 100644 --- a/homeassistant/components/light/flux_led.py +++ b/homeassistant/components/light/flux_led.py @@ -12,8 +12,9 @@ import voluptuous as vol from homeassistant.const import CONF_DEVICES, CONF_NAME, CONF_PROTOCOL from homeassistant.components.light import ( - ATTR_BRIGHTNESS, ATTR_RGB_COLOR, ATTR_EFFECT, EFFECT_RANDOM, - SUPPORT_BRIGHTNESS, SUPPORT_EFFECT, SUPPORT_RGB_COLOR, Light, + ATTR_BRIGHTNESS, ATTR_RGB_COLOR, ATTR_EFFECT, EFFECT_COLORLOOP, + EFFECT_RANDOM, SUPPORT_BRIGHTNESS, SUPPORT_EFFECT, + SUPPORT_RGB_COLOR, Light, PLATFORM_SCHEMA) import homeassistant.helpers.config_validation as cv @@ -32,6 +33,50 @@ SUPPORT_FLUX_LED = (SUPPORT_BRIGHTNESS | SUPPORT_EFFECT | MODE_RGB = 'rgb' MODE_RGBW = 'rgbw' +# List of Supported Effects which aren't already declared in LIGHT +EFFECT_RED_FADE = "red_fade" +EFFECT_GREEN_FADE = "green_fade" +EFFECT_BLUE_FADE = "blue_fade" +EFFECT_YELLOW_FADE = "yellow_fade" +EFFECT_CYAN_FADE = "cyan_fade" +EFFECT_PURPLE_FADE = "purple_fade" +EFFECT_WHITE_FADE = "white_fade" +EFFECT_RED_GREEN_CROSS_FADE = "rg_cross_fade" +EFFECT_RED_BLUE_CROSS_FADE = "rb_cross_fade" +EFFECT_GREEN_BLUE_CROSS_FADE = "gb_cross_fade" +EFFECT_COLORSTROBE = "colorstrobe" +EFFECT_RED_STROBE = "red_strobe" +EFFECT_GREEN_STROBE = "green_strobe" +EFFECT_BLUE_STOBE = "blue_strobe" +EFFECT_YELLOW_STROBE = "yellow_strobe" +EFFECT_CYAN_STROBE = "cyan_strobe" +EFFECT_PURPLE_STROBE = "purple_strobe" +EFFECT_WHITE_STROBE = "white_strobe" +EFFECT_COLORJUMP = "colorjump" + +FLUX_EFFECT_LIST = [ + EFFECT_COLORLOOP, + EFFECT_RANDOM, + EFFECT_RED_FADE, + EFFECT_GREEN_FADE, + EFFECT_BLUE_FADE, + EFFECT_YELLOW_FADE, + EFFECT_CYAN_FADE, + EFFECT_PURPLE_FADE, + EFFECT_WHITE_FADE, + EFFECT_RED_GREEN_CROSS_FADE, + EFFECT_RED_BLUE_CROSS_FADE, + EFFECT_GREEN_BLUE_CROSS_FADE, + EFFECT_COLORSTROBE, + EFFECT_RED_STROBE, + EFFECT_GREEN_STROBE, + EFFECT_BLUE_STOBE, + EFFECT_YELLOW_STROBE, + EFFECT_CYAN_STROBE, + EFFECT_PURPLE_STROBE, + EFFECT_WHITE_STROBE, + EFFECT_COLORJUMP] + DEVICE_SCHEMA = vol.Schema({ vol.Optional(CONF_NAME): cv.string, vol.Optional(ATTR_MODE, default=MODE_RGBW): @@ -161,6 +206,11 @@ class FluxLight(Light): """Flag supported features.""" return SUPPORT_FLUX_LED + @property + def effect_list(self): + """Return the list of supported effects.""" + return FLUX_EFFECT_LIST + def turn_on(self, **kwargs): """Turn the specified or all lights on.""" if not self.is_on: @@ -183,6 +233,46 @@ class FluxLight(Light): self._bulb.setRgb(random.randrange(0, 255), random.randrange(0, 255), random.randrange(0, 255)) + elif effect == EFFECT_COLORLOOP: + self._bulb.setPresetPattern(0x25, 50) + elif effect == EFFECT_RED_FADE: + self._bulb.setPresetPattern(0x26, 50) + elif effect == EFFECT_GREEN_FADE: + self._bulb.setPresetPattern(0x27, 50) + elif effect == EFFECT_BLUE_FADE: + self._bulb.setPresetPattern(0x28, 50) + elif effect == EFFECT_YELLOW_FADE: + self._bulb.setPresetPattern(0x29, 50) + elif effect == EFFECT_CYAN_FADE: + self._bulb.setPresetPattern(0x2a, 50) + elif effect == EFFECT_PURPLE_FADE: + self._bulb.setPresetPattern(0x2b, 50) + elif effect == EFFECT_WHITE_FADE: + self._bulb.setPresetPattern(0x2c, 50) + elif effect == EFFECT_RED_GREEN_CROSS_FADE: + self._bulb.setPresetPattern(0x2d, 50) + elif effect == EFFECT_RED_BLUE_CROSS_FADE: + self._bulb.setPresetPattern(0x2e, 50) + elif effect == EFFECT_GREEN_BLUE_CROSS_FADE: + self._bulb.setPresetPattern(0x2f, 50) + elif effect == EFFECT_COLORSTROBE: + self._bulb.setPresetPattern(0x30, 50) + elif effect == EFFECT_RED_STROBE: + self._bulb.setPresetPattern(0x31, 50) + elif effect == EFFECT_GREEN_STROBE: + self._bulb.setPresetPattern(0x32, 50) + elif effect == EFFECT_BLUE_STOBE: + self._bulb.setPresetPattern(0x33, 50) + elif effect == EFFECT_YELLOW_STROBE: + self._bulb.setPresetPattern(0x34, 50) + elif effect == EFFECT_CYAN_STROBE: + self._bulb.setPresetPattern(0x35, 50) + elif effect == EFFECT_PURPLE_STROBE: + self._bulb.setPresetPattern(0x36, 50) + elif effect == EFFECT_WHITE_STROBE: + self._bulb.setPresetPattern(0x37, 50) + elif effect == EFFECT_COLORJUMP: + self._bulb.setPresetPattern(0x38, 50) def turn_off(self, **kwargs): """Turn the specified or all lights off."""