Update FLUX_LED by adding Effects (#6083)
* Add FLUX_LED Effects Add add the various supported FLUX_LED effects * Correct Flux_LED Issues * Whitespace Changes * Feed the Hound * Feed the hound better food
This commit is contained in:
parent
e1cbd6b4c0
commit
003815c91a
1 changed files with 92 additions and 2 deletions
|
@ -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."""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue