Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def set_rgb(self, red, green, blue, **kwargs):
"""
Set the bulb's RGB value.
:param int red: The red value to set (0-255).
:param int green: The green value to set (0-255).
:param int blue: The blue value to set (0-255).
"""
self.ensure_on()
red = _clamp(red, 0, 255)
green = _clamp(green, 0, 255)
blue = _clamp(blue, 0, 255)
return "set_rgb", [red * 65536 + green * 256 + blue]
def randomloop(duration=750, brightness=100, count=9):
"""
Color changes between `count` randomly chosen colors.
:param int duration: The duration to fade to next color, in milliseconds.
:param int brightness: The brightness of the transition.
:param int count: The number of random chosen colors in transition.
:returns: A list of transitions.
:rtype: list
"""
count = _clamp(count, 1, 9)
transitions = [HSVTransition(random.randint(0, 360), 100, duration=duration) for _ in range(count)]
return transitions
def set_color_temp(self, degrees, **kwargs):
"""
Set the bulb's color temperature.
:param int degrees: The degrees to set the color temperature to
(1700-6500).
"""
self.ensure_on()
degrees = _clamp(degrees, 1700, 6500)
return "set_ct_abx", [degrees]
:param int value: The value to set (0-100). If omitted, the bulb's
brightness will remain the same as before the
change.
"""
self.ensure_on()
# We fake this using flow so we can add the `value` parameter.
hue = _clamp(hue, 0, 359)
saturation = _clamp(saturation, 0, 100)
if value is None:
# If no value was passed, use ``set_hsv`` to preserve luminance.
return "set_hsv", [hue, saturation]
else:
# Otherwise, use flow.
value = _clamp(value, 0, 100)
if kwargs.get("effect", self.effect) == "sudden":
duration = 50
else:
duration = kwargs.get("duration", self.duration)
hue = _clamp(hue, 0, 359) / 359.0
saturation = _clamp(saturation, 0, 100) / 100.0
red, green, blue = [int(round(col * 255)) for col in colorsys.hsv_to_rgb(hue, saturation, 1)]
rgb = red * 65536 + green * 256 + blue
return "start_cf", [1, 1, "%s, 1, %s, %s" % (duration, rgb, value)]
def set_brightness(self, brightness, **kwargs):
"""
Set the bulb's brightness.
:param int brightness: The brightness value to set (1-100).
"""
self.ensure_on()
brightness = _clamp(brightness, 1, 100)
return "set_bright", [brightness]
def set_hsv(self, hue, saturation, value=None, **kwargs):
"""
Set the bulb's HSV value.
:param int hue: The hue to set (0-359).
:param int saturation: The saturation to set (0-100).
:param int value: The value to set (0-100). If omitted, the bulb's
brightness will remain the same as before the
change.
"""
self.ensure_on()
# We fake this using flow so we can add the `value` parameter.
hue = _clamp(hue, 0, 359)
saturation = _clamp(saturation, 0, 100)
if value is None:
# If no value was passed, use ``set_hsv`` to preserve luminance.
return "set_hsv", [hue, saturation]
else:
# Otherwise, use flow.
value = _clamp(value, 0, 100)
if kwargs.get("effect", self.effect) == "sudden":
duration = 50
else:
duration = kwargs.get("duration", self.duration)
hue = _clamp(hue, 0, 359) / 359.0
saturation = _clamp(saturation, 0, 100) / 100.0
red, green, blue = [int(round(col * 255)) for col in colorsys.hsv_to_rgb(hue, saturation, 1)]
def set_hsv(self, hue, saturation, value=None, **kwargs):
"""
Set the bulb's HSV value.
:param int hue: The hue to set (0-359).
:param int saturation: The saturation to set (0-100).
:param int value: The value to set (0-100). If omitted, the bulb's
brightness will remain the same as before the
change.
"""
self.ensure_on()
# We fake this using flow so we can add the `value` parameter.
hue = _clamp(hue, 0, 359)
saturation = _clamp(saturation, 0, 100)
if value is None:
# If no value was passed, use ``set_hsv`` to preserve luminance.
return "set_hsv", [hue, saturation]
else:
# Otherwise, use flow.
value = _clamp(value, 0, 100)
if kwargs.get("effect", self.effect) == "sudden":
duration = 50
else:
duration = kwargs.get("duration", self.duration)
hue = _clamp(hue, 0, 359) / 359.0
saturation = _clamp(saturation, 0, 100) / 100.0
red, green, blue = [int(round(col * 255)) for col in colorsys.hsv_to_rgb(hue, saturation, 1)]
def _value(self):
"""The YeeLight-compatible value for this transition."""
red = _clamp(self.red, 0, 255)
green = _clamp(self.green, 0, 255)
blue = _clamp(self.blue, 0, 255)
return red * 65536 + green * 256 + blue
def set_rgb(self, red, green, blue, **kwargs):
"""
Set the bulb's RGB value.
:param int red: The red value to set (0-255).
:param int green: The green value to set (0-255).
:param int blue: The blue value to set (0-255).
"""
self.ensure_on()
red = _clamp(red, 0, 255)
green = _clamp(green, 0, 255)
blue = _clamp(blue, 0, 255)
return "set_rgb", [red * 65536 + green * 256 + blue]
def set_rgb(self, red, green, blue, **kwargs):
"""
Set the bulb's RGB value.
:param int red: The red value to set (0-255).
:param int green: The green value to set (0-255).
:param int blue: The blue value to set (0-255).
"""
self.ensure_on()
red = _clamp(red, 0, 255)
green = _clamp(green, 0, 255)
blue = _clamp(blue, 0, 255)
return "set_rgb", [red * 65536 + green * 256 + blue]