コード例 #1
0
    def test_color_xy_to_RGB(self):
        """Test color_xy_to_RGB."""
        self.assertEqual((255, 243, 222), color_util.color_xy_to_RGB(.35, .35))

        self.assertEqual((255, 0, 60), color_util.color_xy_to_RGB(1, 0))

        self.assertEqual((0, 255, 0), color_util.color_xy_to_RGB(0, 1))

        self.assertEqual((0, 63, 255), color_util.color_xy_to_RGB(0, 0))
コード例 #2
0
    def test_color_xy_to_RGB(self):
        """Test color_xy_to_RGB."""
        self.assertEqual((255, 243, 222),
                         color_util.color_xy_to_RGB(.35, .35))

        self.assertEqual((255, 0, 60),
                         color_util.color_xy_to_RGB(1, 0))

        self.assertEqual((0, 255, 0),
                         color_util.color_xy_to_RGB(0, 1))

        self.assertEqual((0, 63, 255),
                         color_util.color_xy_to_RGB(0, 0))
コード例 #3
0
    def test_color_xy_to_RGB(self):
        """Test color_xy_to_RGB."""
        assert (255, 243, 222) == \
            color_util.color_xy_to_RGB(.35, .35)

        assert (255, 0, 60) == \
            color_util.color_xy_to_RGB(1, 0)

        assert (0, 255, 0) == \
            color_util.color_xy_to_RGB(0, 1)

        assert (0, 63, 255) == \
            color_util.color_xy_to_RGB(0, 0)
コード例 #4
0
    async def async_turn_on(self,
                            brightness: int = None,
                            color_temp: int = None,
                            rgb_color=None,
                            xy_color=None,
                            hs_color=None,
                            effect: str = None,
                            **kwargs) -> None:
        if brightness == 0:
            await self.async_turn_off()
            return

        if xy_color:
            rgb_color = color.color_xy_to_RGB(*xy_color)
        elif hs_color:
            rgb_color = color.color_hs_to_RGB(*hs_color)

        if brightness or color_temp or rgb_color or effect:
            params = self.get_params(brightness, color_temp, rgb_color, effect)
        else:
            params = None

        if params:
            # some lights can only be turned on when the lights are off
            if not self.is_on:
                await self.ewelink.send(self.device, {self.param: "on"},
                                        query_cloud=False)
            await self.ewelink.send(self.device, params, {
                "cmd": "dimmable",
                **params
            })
        else:
            await self.ewelink.send(self.device, {self.param: "on"})
コード例 #5
0
ファイル: __init__.py プロジェクト: MatthiasLohr/core
 def _light_internal_convert_color(self, color_mode: str) -> dict:
     data: dict[str, tuple] = {}
     if color_mode == COLOR_MODE_HS and self.hs_color:
         hs_color = self.hs_color
         data[ATTR_HS_COLOR] = (round(hs_color[0], 3), round(hs_color[1], 3))
         data[ATTR_RGB_COLOR] = color_util.color_hs_to_RGB(*hs_color)
         data[ATTR_XY_COLOR] = color_util.color_hs_to_xy(*hs_color)
     elif color_mode == COLOR_MODE_XY and self.xy_color:
         xy_color = self.xy_color
         data[ATTR_HS_COLOR] = color_util.color_xy_to_hs(*xy_color)
         data[ATTR_RGB_COLOR] = color_util.color_xy_to_RGB(*xy_color)
         data[ATTR_XY_COLOR] = (round(xy_color[0], 6), round(xy_color[1], 6))
     elif color_mode == COLOR_MODE_RGB and self.rgb_color:
         rgb_color = self.rgb_color
         data[ATTR_HS_COLOR] = color_util.color_RGB_to_hs(*rgb_color)
         data[ATTR_RGB_COLOR] = tuple(int(x) for x in rgb_color[0:3])
         data[ATTR_XY_COLOR] = color_util.color_RGB_to_xy(*rgb_color)
     elif color_mode == COLOR_MODE_RGBW and self._light_internal_rgbw_color:
         rgbw_color = self._light_internal_rgbw_color
         rgb_color = color_util.color_rgbw_to_rgb(*rgbw_color)
         data[ATTR_HS_COLOR] = color_util.color_RGB_to_hs(*rgb_color)
         data[ATTR_RGB_COLOR] = tuple(int(x) for x in rgb_color[0:3])
         data[ATTR_RGBW_COLOR] = tuple(int(x) for x in rgbw_color[0:4])
         data[ATTR_XY_COLOR] = color_util.color_RGB_to_xy(*rgb_color)
     elif color_mode == COLOR_MODE_RGBWW and self.rgbww_color:
         rgbww_color = self.rgbww_color
         rgb_color = color_util.color_rgbww_to_rgb(
             *rgbww_color, self.min_mireds, self.max_mireds
         )
         data[ATTR_HS_COLOR] = color_util.color_RGB_to_hs(*rgb_color)
         data[ATTR_RGB_COLOR] = tuple(int(x) for x in rgb_color[0:3])
         data[ATTR_RGBWW_COLOR] = tuple(int(x) for x in rgbww_color[0:5])
         data[ATTR_XY_COLOR] = color_util.color_RGB_to_xy(*rgb_color)
     return data
コード例 #6
0
ファイル: test_color.py プロジェクト: rikroe/core
def test_color_xy_to_RGB():
    """Test color_xy_to_RGB."""
    assert color_util.color_xy_to_RGB(0.35, 0.35) == (255, 243, 222)

    assert color_util.color_xy_to_RGB(1, 0) == (255, 0, 60)

    assert color_util.color_xy_to_RGB(0, 1) == (0, 255, 0)

    assert color_util.color_xy_to_RGB(0, 0) == (0, 63, 255)

    assert color_util.color_xy_to_RGB(1, 0, GAMUT) == (255, 0, 3)

    assert color_util.color_xy_to_RGB(0, 1, GAMUT) == (82, 255, 0)

    assert color_util.color_xy_to_RGB(0, 0, GAMUT) == (9, 85, 255)
コード例 #7
0
    def state_attributes(self):
        """Return state attributes."""
        if not self.is_on:
            return None

        data = {}
        data[ATTR_BRIGHTNESS] = self.brightness
        data[ATTR_COLOR_TEMP] = self.color_temp
        data[ATTR_XY_COLOR] = (
            self._lamp_state.x_chromaticity,
            self._lamp_state.y_chromaticity,
        )
        data[ATTR_HS_COLOR] = color_util.color_xy_to_hs(*data[ATTR_XY_COLOR])
        data[ATTR_RGB_COLOR] = color_util.color_xy_to_RGB(*data[ATTR_XY_COLOR])
        data[ATTR_WHITE_VALUE] = self.white_value

        return {key: val for key, val in data.items() if val is not None}
コード例 #8
0
     if ColorMode.RGBW in supported_color_modes:
         params[ATTR_RGBW_COLOR] = color_util.color_rgb_to_rgbw(
             *rgb_color)
     elif ColorMode.RGBWW in supported_color_modes:
         params[ATTR_RGBWW_COLOR] = color_util.color_rgb_to_rgbww(
             *rgb_color, light.min_mireds, light.max_mireds)
     elif ColorMode.HS in supported_color_modes:
         params[ATTR_HS_COLOR] = color_util.color_RGB_to_hs(*rgb_color)
     elif ColorMode.XY in supported_color_modes:
         params[ATTR_XY_COLOR] = color_util.color_RGB_to_xy(*rgb_color)
 elif ATTR_XY_COLOR in params and ColorMode.XY not in supported_color_modes:
     xy_color = params.pop(ATTR_XY_COLOR)
     if ColorMode.HS in supported_color_modes:
         params[ATTR_HS_COLOR] = color_util.color_xy_to_hs(*xy_color)
     elif ColorMode.RGB in supported_color_modes:
         params[ATTR_RGB_COLOR] = color_util.color_xy_to_RGB(*xy_color)
     elif ColorMode.RGBW in supported_color_modes:
         rgb_color = color_util.color_xy_to_RGB(*xy_color)
         params[ATTR_RGBW_COLOR] = color_util.color_rgb_to_rgbw(
             *rgb_color)
     elif ColorMode.RGBWW in supported_color_modes:
         rgb_color = color_util.color_xy_to_RGB(*xy_color)
         params[ATTR_RGBWW_COLOR] = color_util.color_rgb_to_rgbww(
             *rgb_color, light.min_mireds, light.max_mireds)
 elif ATTR_RGBW_COLOR in params and ColorMode.RGBW not in supported_color_modes:
     rgbw_color = params.pop(ATTR_RGBW_COLOR)
     rgb_color = color_util.color_rgbw_to_rgb(*rgbw_color)
     if ColorMode.RGB in supported_color_modes:
         params[ATTR_RGB_COLOR] = rgb_color
     elif ColorMode.RGBWW in supported_color_modes:
         params[ATTR_RGBWW_COLOR] = color_util.color_rgb_to_rgbww(