示例#1
0
                                                green,
                                                blue,
                                                brightness=brightness)
            return
        # Handle switch to RGBW Color Mode
        if rgbw := kwargs.get(ATTR_RGBW_COLOR):
            if ATTR_BRIGHTNESS in kwargs:
                rgbw = rgbw_brightness(rgbw, brightness)
            rgbw = _min_rgbw_brightness(rgbw, self._device.rgbw)
            await self._device.async_set_levels(*rgbw)
            return
        # Handle switch to RGBWW Color Mode
        if rgbcw := kwargs.get(ATTR_RGBWW_COLOR):
            if ATTR_BRIGHTNESS in kwargs:
                rgbcw = rgbcw_brightness(kwargs[ATTR_RGBWW_COLOR], brightness)
            rgbwc = rgbcw_to_rgbwc(rgbcw)
            rgbwc = _min_rgbwc_brightness(rgbwc, self._device.rgbww)
            await self._device.async_set_levels(*rgbwc)
            return
        if (white := kwargs.get(ATTR_WHITE)) is not None:
            await self._device.async_set_levels(w=white)
            return

    async def async_set_custom_effect(self, colors: list[tuple[int, int, int]],
                                      speed_pct: int, transition: str) -> None:
        """Set a custom effect on the bulb."""
        await self._device.async_set_custom_pattern(
            colors,
            speed_pct,
            transition,
        )
示例#2
0
     return
 # Handle switch to RGBW Color Mode
 if ATTR_RGBW_COLOR in kwargs:
     if ATTR_BRIGHTNESS in kwargs:
         rgbw = rgbw_brightness(kwargs[ATTR_RGBW_COLOR], brightness)
     else:
         rgbw = kwargs[ATTR_RGBW_COLOR]
     await self._device.async_set_levels(*rgbw)
     return
 # Handle switch to RGBWW Color Mode
 if ATTR_RGBWW_COLOR in kwargs:
     if ATTR_BRIGHTNESS in kwargs:
         rgbcw = rgbcw_brightness(kwargs[ATTR_RGBWW_COLOR], brightness)
     else:
         rgbcw = kwargs[ATTR_RGBWW_COLOR]
     await self._device.async_set_levels(*rgbcw_to_rgbwc(rgbcw))
     return
 if ATTR_WHITE in kwargs:
     await self._device.async_set_levels(w=kwargs[ATTR_WHITE])
     return
 if ATTR_EFFECT in kwargs:
     effect = kwargs[ATTR_EFFECT]
     # Random color effect
     if effect == EFFECT_RANDOM:
         await self._device.async_set_levels(
             random.randint(0, 255),
             random.randint(0, 255),
             random.randint(0, 255),
         )
         return
     # Custom effect