diff --git a/homeassistant/components/flux_led/light.py b/homeassistant/components/flux_led/light.py index 5bd84cd157f..7973956848a 100644 --- a/homeassistant/components/flux_led/light.py +++ b/homeassistant/components/flux_led/light.py @@ -12,12 +12,14 @@ from homeassistant.components.light import ( ATTR_HS_COLOR, ATTR_EFFECT, ATTR_WHITE_VALUE, + ATTR_COLOR_TEMP, EFFECT_COLORLOOP, EFFECT_RANDOM, SUPPORT_BRIGHTNESS, SUPPORT_EFFECT, SUPPORT_COLOR, SUPPORT_WHITE_VALUE, + SUPPORT_COLOR_TEMP, Light, PLATFORM_SCHEMA, ) @@ -43,6 +45,10 @@ MODE_RGBW = "rgbw" # RGB value is ignored when this mode is specified. MODE_WHITE = "w" +# Constant color temp values for 2 flux_led special modes +# Warm-white and Cool-white modes +COLOR_TEMP_WARM_VS_COLD_WHITE_CUT_OFF = 285 + # List of supported effects which aren't already declared in LIGHT EFFECT_RED_FADE = "red_fade" EFFECT_GREEN_FADE = "green_fade" @@ -235,7 +241,7 @@ class FluxLight(Light): def supported_features(self): """Flag supported features.""" if self._mode == MODE_RGBW: - return SUPPORT_FLUX_LED | SUPPORT_WHITE_VALUE + return SUPPORT_FLUX_LED | SUPPORT_WHITE_VALUE | SUPPORT_COLOR_TEMP if self._mode == MODE_WHITE: return SUPPORT_BRIGHTNESS @@ -284,6 +290,17 @@ class FluxLight(Light): brightness = kwargs.get(ATTR_BRIGHTNESS) effect = kwargs.get(ATTR_EFFECT) white = kwargs.get(ATTR_WHITE_VALUE) + color_temp = kwargs.get(ATTR_COLOR_TEMP) + + # handle special modes + if color_temp is not None: + if brightness is None: + brightness = self.brightness + if color_temp > COLOR_TEMP_WARM_VS_COLD_WHITE_CUT_OFF: + self._bulb.setRgbw(w=brightness) + else: + self._bulb.setRgbw(w2=brightness) + return # Show warning if effect set with rgb, brightness, or white level if effect and (brightness or white or rgb):