コード例 #1
0
    def _on_connect(self, client, userdata, flags, rc):
        self.mqtt_client.subscribe(f"{self.toplevel_topic}/#")
        self.connect_status = 1
        self.lightify_bridge = lightify.Lightify(self.bridge_address)
        self.lightify_bridge.update_all_light_status()
        self.connect_status = 2
        self.mqtt_client.message_callback_add(f"{self.toplevel_topic}/set/#",
                                              self._on_set_message)
        self.mqtt_client.message_callback_add(f"{self.toplevel_topic}/get/#",
                                              self._on_get_message)
        self.mqtt_client.message_callback_add(
            f"{self.toplevel_topic}/command/#", self._on_command_message)

        self.logger.info("available devices:")
        lights = self.lightify_bridge.lights()
        for light in lights.keys():
            self.logger.info(f"{light} -> {lights[light]}")

        self.logger.info("available groups:")
        groups = self.lightify_bridge.groups()
        for group in groups.keys():
            self.logger.info(f"{group} -> {groups[group]}")

        self.logger.info("available scenes:")
        scenes = self.lightify_bridge.scenes()
        for scene in scenes.keys():
            self.logger.info(f"{scene} -> {scenes[scene]}")

        for light in lights.keys():
            self.publish(f"get/{light}")
コード例 #2
0
def setup_platform(hass, config, add_entities, discovery_info=None):
    """Set up the Osram Lightify lights."""
    import lightify

    host = config[CONF_HOST]
    try:
        bridge = lightify.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)
コード例 #3
0
def setup_platform(hass, config, add_devices, discovery_info=None):
    """Set up the Osram Lightify lights."""
    import lightify

    host = config.get(CONF_HOST)
    add_groups = config.get(CONF_ALLOW_LIGHTIFY_GROUPS)

    try:
        bridge = lightify.Lightify(host)
    except socket.error as err:
        msg = "Error connecting to bridge: {} due to: {}".format(
            host, str(err))
        _LOGGER.exception(msg)
        return

    setup_bridge(bridge, add_devices, add_groups)
コード例 #4
0
def setup_platform(hass, config, add_devices_callback, discovery_info=None):
    """Setup Osram Lightify lights."""
    import lightify
    host = config.get(CONF_HOST)
    if host:
        try:
            bridge = lightify.Lightify(host)
        except socket.error as err:
            msg = 'Error connecting to bridge: {} due to: {}'.format(
                host, str(err))
            _LOGGER.exception(msg)
            return False
        setup_bridge(bridge, add_devices_callback)
    else:
        _LOGGER.error('No host found in configuration')
        return False
コード例 #5
0
def main(argv):
    logging.basicConfig()

    logger = logging.getLogger(MODULE)
    logger.setLevel(logging.DEBUG)
    #logger.addHandler(logging.StreamHandler())

    liblogger = logging.getLogger('lightify')
    #liblogger.addHandler(logging.StreamHandler())
    liblogger.setLevel(logging.INFO)

    logger.info("Logging %s", MODULE)

    conn = lightify.Lightify(argv[1])

    conn.update_all_light_status()
    conn.update_group_list()
    for (name, group) in conn.groups().iteritems():
        logger.info("group: %s %s", name, group)

    print "keys:%s" % conn.groups().keys()
    desk = conn.groups()["Desk"]
    desk.set_onoff(0)
    desk.set_luminance(0, 0)
    desk.set_onoff(1)
    desk.set_luminance(25, 10)

    sys.exit(0)

    for (addr, light) in conn.lights().iteritems():
        print "%x %d %d %d %s %s" % (addr, light.on(), light.lum(),
                                     light.temp(), light.rgb(), light)

    sys.exit(0)

    groups = conn.group_list()

    for group in groups.iterkeys():
        lights = conn.group_info(group)
        print "Lights: %s" % lights


#        for light in lights:
#            conn.read_light_status(light)

#conn.read_all_light_status(1)

    sys.exit(0)

    #seq = seq + 1
    #data = build_command(seq, 0x35, 2, "") #, struct.pack("<B", 0))
    #print 'sending "%s"' % binascii.hexlify(data)
    ##, struct.pack(""))
    #sock.sendall(data)
    #recv(sock)
    #sock.close()
    #sys.exit(0)

    seq = seq + 1
    #data = onoff(seq, 2, 0)
    #data = build_temp(seq, 2, 2700)
    data = build_luminance(seq, 2, 85, 2)
    #data = colour(seq, 2, 0, 0, 255, 1)
    print 'sending "%s"' % binascii.hexlify(data)
    sock.sendall(data)
    recv(sock)

    time.sleep(2)

    seq = seq + 1
    #data = onoff(seq, 2, 0)
    #data = build_temp(seq, 2, 2700)
    data = build_luminance(seq, 2, 65, 2)
    #data = colour(seq, 2, 255, 0, 0, 10)
    print 'sending "%s"' % binascii.hexlify(data)
    sock.sendall(data)
    recv(sock)

    time.sleep(2)

    seq = seq + 1
    #data = onoff(seq, 2, 1)
    #data = build_temp(seq, 2, 6500)
    data = build_luminance(seq, 2, lum, 10)
    #data = colour(seq, 2, 255, 255, 255, 1)
    print 'sending "%s"' % binascii.hexlify(data)
    sock.sendall(data)
    recv(sock)

    sock.close()
    sys.exit(0)