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}")
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)
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)
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
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)