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)
Esempio n. 7
0
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)