Ejemplo n.º 1
0
    def __init__(self, component_config):
        super().__init__(component_config)

        self.gateway = Lightify(component_config['ip_address'])
        self.light = None
        self.on = None
        self.prev_on = None
        self.brightness = None
        self.brightness_delta = 0
Ejemplo n.º 2
0
def setup_platform(opp, config, add_entities, discovery_info=None):
    """Set up the Osram Lightify lights."""
    host = config[CONF_HOST]
    try:
        bridge = Lightify(host, log_level=logging.NOTSET)
    except OSError as err:
        _LOGGER.exception("Error connecting to bridge: %s due to: %s", host, err)
        return

    setup_bridge(bridge, add_entities, config)
Ejemplo n.º 3
0
def setup_platform(hass, config, add_entities, discovery_info=None):
    """Set up the Osram Lightify lights."""
    host = config[CONF_HOST]
    try:
        bridge = Lightify(host, log_level=logging.NOTSET)
    except socket.error as err:
        msg = "Error connecting to bridge: {} due to: {}".format(
            host, str(err))
        _LOGGER.exception(msg)
        return

    setup_bridge(bridge, add_entities, config)
    def start(self):
        self.client.connect()
        self.lightify = Lightify(self.lightifyAddress)

        while True:
            try:
                self._poll()
                time.sleep(self.pollingInterval)
            except Exception as e:
                error = traceback.format_exc()
                self.logger.info("Exiting: Caught exception: %s\n%s" %
                                 (e, error))
                sys.exit(1)
Ejemplo n.º 5
0
def setup_platform(
    hass: HomeAssistant,
    config: ConfigType,
    add_entities: AddEntitiesCallback,
    discovery_info: DiscoveryInfoType | None = None,
) -> None:
    """Set up the Osram Lightify lights."""
    host = config[CONF_HOST]
    try:
        bridge = Lightify(host, log_level=logging.NOTSET)
    except OSError as err:
        _LOGGER.exception("Error connecting to bridge: %s due to: %s", host, err)
        return

    setup_bridge(bridge, add_entities, config)
Ejemplo n.º 6
0
class Component(ThreadComponent):
    MATRIX = matrices.LIGHT_BULB
    TRANSITION_TIME = 2
    MAX_BRIGHTNESS = 100
    MIN_BRIGHTNESS = 0

    def __init__(self, component_config):
        super().__init__(component_config)

        self.gateway = Lightify(component_config['ip_address'])
        self.light = None
        self.on = None
        self.prev_on = None
        self.brightness = None
        self.brightness_delta = 0

    def on_button_press(self):
        self.on = not self.on

        if self.on:
            if self.brightness <= self.MIN_BRIGHTNESS:
                self.brightness = self.MAX_BRIGHTNESS

    def on_rotation(self, delta):
        self.brightness_delta += delta

    def send_updates(self):

        if self.brightness_delta != 0:
            if not self.on:
                self.brightness = self.MIN_BRIGHTNESS

            new_brightness = round(
                clamp_value(
                    self.brightness +
                    self.brightness_delta * self.MAX_BRIGHTNESS,
                    range(self.MIN_BRIGHTNESS, self.MAX_BRIGHTNESS)))
            if new_brightness == self.brightness:
                return

            self.brightness = new_brightness

            logger.debug("new brightness is: %s", self.brightness)
            self.light.set_luminance(self.brightness, self.TRANSITION_TIME)
            if self.brightness > self.MIN_BRIGHTNESS:
                self.on = True
                matrix = matrices.progress_bar(self.brightness /
                                               self.MAX_BRIGHTNESS)
                self.nuimo.display_matrix(matrix,
                                          fading=True,
                                          ignore_duplicates=True)
            else:
                self.on = False
                self.nuimo.display_matrix(matrices.LIGHT_OFF)
        else:
            if self.on:
                self.light.set_luminance(self.brightness, self.TRANSITION_TIME)
                self.nuimo.display_matrix(matrices.LIGHT_ON)
                logger.debug("light is on, brightness is: %s", self.brightness)
            else:
                self.light.set_luminance(self.MIN_BRIGHTNESS,
                                         self.TRANSITION_TIME)
                self.nuimo.display_matrix(matrices.LIGHT_OFF)
                logger.debug("light is off, brightness is: %s",
                             self.brightness)

    def run(self):
        self.update_state()

        prev_sync_time = time()
        prev_update_time = time()

        while not self.stopped:
            now = time()

            if (self.brightness_delta != 0 or
                    self.on != self.prev_on) and now - prev_update_time >= 0.1:
                self.send_updates()
                self.brightness_delta = 0
                self.prev_on = self.on

                prev_update_time = now

            if now - max([prev_sync_time, prev_update_time]) >= 3:
                self.update_state()

                prev_sync_time = now

            sleep(0.05)

    def update_state(self):
        self.gateway.update_all_light_status()
        self.light = list(self.gateway.lights().values())[0]
        self.on = self.light.on()
        self.prev_on = self.on
        if self.light.lum() > self.MIN_BRIGHTNESS:
            self.brightness = self.light.lum()
Ejemplo n.º 7
0
#!/usr/bin/env python

from lightify import Lightify

lightify = Lightify("10.1.210.195")
lightify.update_all_light_status()
lights = lightify.lights()
if (lights[8984750156480241920].on() == 0):
    lights[8984750156480241920].set_onoff(True)
elif (lights[8984750156480241920].on() == 1):
    lights[8984750156480241920].set_onoff(False)
Ejemplo n.º 8
0
def gateway():
    gateway = Lightify(GATEWAY_ADDR)
    gateway.update_all_light_status()
    gateway.update_group_list()
    gateway.update_scene_list()
    return gateway