def on(self, brightness=255, fade_ms=0, start_brightness=None,
           priority=0, cache=True, force=False, **kwargs):
        """Turns on this matrix light.

        Args:
            brightness: How bright this light should be, as an int between 0
                and 255. 0 is off. 255 is full on. Note that intermediary
                values are not yet implemented, so 0 is off, anything from
                1-255 is full on.
            fade_ms: Not yet implemented
            start_brightness: Not yet implemented.
            priority: The priority of the incoming request. If this priority is
                lower than the current cached priority, this on command will
                have no effect. (Unless force=True)
            cache: Boolean as to whether this light should cache these new
                settings. This cache can be used for the light to "go back" to
                it's previous state. Default is True.
            force: Whether the light should be forced to go to the new state,
                regardless of the incoming and current priority. Default is
                False.
        """

        # First, if this incoming command is at a lower priority than what the
        # light is doing now, we don't proceed
        if priority < self.state['priority'] and not force:
            return

        # todo cache support
        # todo add brightness 0 as the same as on(0)
        if type(brightness) is list:
            brightness = brightness[0]

        if self.registered_handlers:
            for handler in self.registered_handlers:
                handler(light_name=self.name, brightness=brightness)

        self.state['brightness'] = brightness
        self.state['priority'] = priority

        if cache:
            self.cache['brightness'] = brightness
            self.cache['priority'] = priority

        self.hw_driver.on(brightness, fade_ms, start_brightness)
dataset/ETHPy150Open missionpinball/mpf/mpf/devices/matrix_light.py/MatrixLight.on/original