def test_create_controller_custom(self): """ Creates a controller using default values :return: """ host = "192.168.2.123" port = 12345 hardware_id = "7D89D6789VVBGDJOFDJ" model = "The Best One Ever" api = LEDStripControllerClient() response_dict = { "device_name": "Test", "power_status": 0x24, "mode": "1", "speed": 255, "red": 255, "green": 255, "blue": 255, "warm_white": 255, "cold_white": 255, } api.get_state = MagicMock(return_value=response_dict) device = Controller(api, host, port, hardware_id, model) self.assertIsNotNone(device) self.assertEqual(device.get_host(), host) self.assertEqual(device.get_port(), port) self.assertEqual(device.get_hardware_id(), hardware_id) self.assertEqual(device.get_model(), model) self.assertEqual(device.get_rgbww(), (255, 255, 255, 255, 255)) self.assertEqual(device.get_brightness(), 255)
def test_create_controller(self): """ Creates a controller using default values :return: """ host = "192.168.2.53" api = LEDStripControllerClient() response_dict = { "device_name": "Test", "power_status": 0x24, "mode": "1", "speed": 255, "red": 255, "green": 255, "blue": 255, "warm_white": 255, "cold_white": 255, } api.get_state = MagicMock(return_value=response_dict) device = Controller(api, host) self.assertIsNotNone(device) self.assertEqual(device.get_host(), host) self.assertEqual(device.get_port(), Controller.DEFAULT_PORT) self.assertEqual(device.get_hardware_id(), None) self.assertEqual(device.get_model(), None) self.assertEqual(device.get_rgbww(), (255, 255, 255, 255, 255)) self.assertEqual(device.get_brightness(), 255)
def test_color_invalid_color_channel_value(self): """ Checks if the color validator detects an invalid color channel value """ from sunix_ledstrip_controller_client import LEDStripControllerClient from random import randint # check a bunch of random values for i in range(1000): invalid = False color = [] # append random color channel values for c in range(randint(2, 4)): r = randint(-1, 1) if r is -1: color.append(randint(-999, -1)) invalid = True if r is 0: color.append(randint(0, 255)) if r is 1: color.append(randint(256, 999)) invalid = True # convert to tuple color = tuple(color) # only validate colors that we know have invalid channel values if invalid is True: with self.assertRaises(ValueError): LEDStripControllerClient._validate_color(color, len(color))
def test_create_api(self): """ Creates the api and object """ api = LEDStripControllerClient() self.assertIsNotNone(api)
def test_color_valid(self): """ Checks if the color validator accepts a valid color """ from sunix_ledstrip_controller_client import LEDStripControllerClient from random import randint # check a bunch of random values for i in range(1000): color = [] # append random color channel values for c in range(randint(2, 4)): color.append(randint(0, 255)) # convert to tuple color = tuple(color) # validate LEDStripControllerClient._validate_color(color, len(color))
def test_color_invalid_size(self): """ Checks if the color validator detects an unexpected color channel size """ from sunix_ledstrip_controller_client import LEDStripControllerClient from random import randint # check a bunch of random values for i in range(10): color = [] # append random color channel values for c in range(randint(2, 4)): color.append(randint(0, 255)) # convert to tuple color = tuple(color) # validate with self.assertRaises(ValueError): LEDStripControllerClient._validate_color(color, len(color) + 1)
from sunix_ledstrip_controller_client import Controller from sunix_ledstrip_controller_client import LEDStripControllerClient from sunix_ledstrip_controller_client import TransitionType api = LEDStripControllerClient() # devices = api.discover_controllers() device = Controller(api, "192.168.2.37") # create a list of color-channel tuples colors = [(255, 0, 0, 255), (0, 255, 0), (0, 0, 255)] # the function can (as far as I know) only control the RGB values, the WW values remain untouched. # you can use this to your advantage (dimmed ambient white light) or simply turn the WW channels off beforehand device.set_ww(0, 0) # then set your custom function like this device.set_custom_function(colors, 250, TransitionType.Gradual)
from sunix_ledstrip_controller_client import LEDStripControllerClient from sunix_ledstrip_controller_client.controller import Controller api = LEDStripControllerClient() # use the raw api methods api.turn_on("192.168.2.23", 5577) api.set_rgbww("192.168.2.23", 5577, 255, 255, 255, 255, 255) # or use a controller class for convenient method access device = Controller(api, "192.168.2.23") device.turn_on() device.set_rgbww(255, 255, 255, 255, 255)
import time from sunix_ledstrip_controller_client import Controller from sunix_ledstrip_controller_client import LEDStripControllerClient api = LEDStripControllerClient() devices = api.discover_controllers() device = Controller(api, "192.168.2.37") def color_test(): device.turn_on() time.sleep(1) device.set_rgbww(0, 0, 0, 255, 255) time.sleep(1) device.set_rgbww(0, 0, 0, 255, 0) time.sleep(1) device.set_rgbww(255, 0, 0, 0, 0) time.sleep(1) device.set_rgbww(0, 0, 0, 255, 0) time.sleep(1)