def applicationDidFinishLaunching_(self, notification): icon = NSImage.alloc().initByReferencingFile_('images/[email protected]') icon.setScalesWhenResized_(True) icon.setSize_((20, 20)) self.status_item = NSStatusBar.systemStatusBar().statusItemWithLength_(NSVariableStatusItemLength) self.status_item.setImage_(icon) self.status_item.setHighlightMode_(True) menu = NSMenu.alloc().init() self.toggle_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Toggle lights', 'toggle:', '') menu.addItem_(self.toggle_item) self.status_item.setMenu_(menu) self.lights = lifx.get_lights() self.toggle_item.setState_(self.lights[0].power) submenu = NSMenu.alloc().init() item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Colours', '', '') item.setSubmenu_( submenu ) menu.addItem_( item ) subitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'White', 'setColour:', '') subitem.setRepresentedObject_( 'White' ) submenu.addItem_( subitem ) subitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Bright White', 'setColour:', '') subitem.setRepresentedObject_( 'BrightWhite' ) submenu.addItem_( subitem ) subitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Red', 'setColour:', '') subitem.setRepresentedObject_( 'Red' ) submenu.addItem_( subitem ) subitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Green', 'setColour:', '') subitem.setRepresentedObject_( 'Green' ) submenu.addItem_( subitem ) subitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Blue', 'setColour:', '') subitem.setRepresentedObject_( 'Blue' ) submenu.addItem_( subitem ) for bulb in self.lights: bulb.get_info() submenu = NSMenu.alloc().init() #name = bulb.get_addr() #bulb.get_label() name = bulb.bulb_label item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( name, '', '') item.setSubmenu_( submenu ) menu.addItem_( item ) subitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Toggle light', 'toggleBulb:', '') subitem.setRepresentedObject_( bulb ) subitem.setState_(bulb.power) submenu.addItem_( subitem ) subitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Soft light', 'softBulb:', '') subitem.setRepresentedObject_( bulb ) submenu.addItem_( subitem ) subitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'bright light', 'brightBulb:', '') subitem.setRepresentedObject_( bulb ) submenu.addItem_( subitem ) quit_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Quit', 'terminate:', '') menu.addItem_(quit_item)
def all_colour(hue, saturation, brightness): lights = lifx.get_lights() # hue, saturation, brightness, kelvin, fade_time) # [ 0x0000, 0x0000, 0xffff, 6500, 10000 ] paramsTest = [hue, saturation, brightness, 3500, 50] print(paramsTest) lifx.set_color(*([BROADCAST_ADDR] + paramsTest))
def startCycle(self,bulbs,time,speed): lights = lifx.get_lights() lightsCycle = [] for light in lights: for bulb in bulbs: if bulb in light.bulb_label: lightsCycle.append(light) scheduleCycle = ScheduleCycle() scheduleCycle.driver(lightsCycle,time,speed)
def get_data(): lights = lifx.get_lights() data = [] for bulb in lights: data.append({'bulb_name': bulb.get_addr(), 'bulb_addr': bulb.get_addr()}) return data return [ {'name': 'Alpha', 'team': 'red'}, {'name': 'Beta', 'team': 'blue'}, {'name': 'Gamma', 'team': 'green'}, {'name': 'Delta', 'team': 'yellow'}, {'name': 'Epsilon', 'team': 'orange'}, ]
def get_bulbs(discovery = False): if( (len(BulbList) < 1) or (discovery) ): print("Getting bulbs from network") lights = lifx.get_lights() else: print("Getting bulbs from memory") lights = BulbList.values() data = [] for bulb in lights: #bulb.get_label() data.append({'bulb_name': bulb.bulb_label, 'bulb_addr': bulb.get_addr()}) #data.append({'name': bulb.bulb_label, 'addr': bulb.addr}) BulbList[bulb.get_addr()] = bulb return data
def driver(lightLabels): choice = userMenu() if choice == MENU_CHOICE_QUIT: quit else: lights = lifx.get_lights() for light in lights: if lightLabels: for lightLabel in lightLabels: if lightLabel in light.bulb_label: if choice == MENU_CHOICE_CHANGE_POWER_STATE: powerStateDriver(light) else: if choice == MENU_CHOICE_CHANGE_POWER_STATE: powerStateDriver(light) driver(lightLabels)
def setup(self, opts): self.rate = int(opts.get('report_rate', 10)) lifx.network.BCAST = opts.get('bcast_addr', '255.255.255.255') lifx.network.debug = False lights = [] while len(lights) == 0: lights = lifx.get_lights(['10.4.10.121']) print("Searching for lights...") self.lights = {l.bulb_label: l for l in lights} # assign numbers self.lightlabels = {idx: l for idx, l in enumerate(self.lights.values())} for idx, light in self.lightlabels.items(): onpath = self.add_timeseries('/light{0}/on'.format(idx), 'On/Off', 'milliseconds', 'numeric') self.attach_metadata(onpath, {'Point': {'Type': 'Command', 'Command': 'On'}}) huepath = self.add_timeseries('/light{0}/hue'.format(idx), 'Hue', 'milliseconds', 'numeric') self.attach_metadata(huepath, {'Point': {'Type': 'Command', 'Command': 'Hue'}}) bripath = self.add_timeseries('/light{0}/brightness'.format(idx), 'Brightness', 'milliseconds', 'numeric') self.attach_metadata(bripath, {'Point': {'Type': 'Command', 'Command': 'Brightness'}}) for path, timeseries in self.timeseries.items(): self.attach_metadata(path, {'Location': {'Building': "Soda Hall", 'Room': '410 Gabe'}, 'SourceName': '410 Lights', 'Device': { 'Manufacturer': 'LIFX', 'Model': 'LIFX' }, 'DeviceID': opts.get('deviceID'), 'Name': opts.get('name'), 'Lighting': { 'Zone': 'Gabe Desk', 'Type': 'Desklamp' } }) self.attach_actuator(onpath, self.turnon, kind = driver.BINARY_ACTUATOR) self.attach_actuator(bripath, self.setbri, kind = driver.CONTINUOUS_ACTUATOR)
def applicationDidFinishLaunching_(self, notification): icon = NSImage.alloc().initByReferencingFile_("images/[email protected]") icon.setScalesWhenResized_(True) icon.setSize_((20, 20)) self.status_item = NSStatusBar.systemStatusBar().statusItemWithLength_(NSVariableStatusItemLength) self.status_item.setImage_(icon) self.status_item.setHighlightMode_(True) menu = NSMenu.alloc().init() self.toggle_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_("Toggle lights", "toggle:", "") menu.addItem_(self.toggle_item) quit_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_("Quit", "terminate:", "") menu.addItem_(quit_item) self.status_item.setMenu_(menu) self.lights = lifx.get_lights() self.toggle_item.setState_(self.lights[0].power)
#!/usr/bin/env python3 import lifx lights = lifx.get_lights() for light in lights: print(light)
#!/usr/bin/env python3 import sys from binascii import unhexlify from struct import unpack import lifx def fromhex(datum): return unhexlify(bytes(datum, encoding='utf-8')) def intfromhex(datum): return unpack('>H', fromhex(datum))[0] lights = lifx.get_lights() for L in sys.stdin: L = L.strip('\n') (addr, hue, saturation, brightness, kelvin) = L.split(' ') lifx.set_power(addr, True) lifx.set_color(addr, intfromhex(hue), intfromhex(saturation), intfromhex(brightness), int(kelvin), 10000)
def applicationDidFinishLaunching_(self, notification): icon = NSImage.alloc().initByReferencingFile_( 'images/[email protected]') icon.setScalesWhenResized_(True) icon.setSize_((20, 20)) self.status_item = NSStatusBar.systemStatusBar().statusItemWithLength_( NSVariableStatusItemLength) self.status_item.setImage_(icon) self.status_item.setHighlightMode_(True) menu = NSMenu.alloc().init() self.toggle_item = NSMenuItem.alloc( ).initWithTitle_action_keyEquivalent_('Toggle All Lights', 'toggle:', '') menu.addItem_(self.toggle_item) self.status_item.setMenu_(menu) self.lights = lifx.get_lights() self.toggle_item.setState_(self.lights[0].power) submenu = NSMenu.alloc().init() item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Colours', '', '') item.setSubmenu_(submenu) menu.addItem_(item) subitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'White', 'setColour:', '') subitem.setRepresentedObject_('White') submenu.addItem_(subitem) subitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Red', 'setColour:', '') subitem.setRepresentedObject_('Red') submenu.addItem_(subitem) subitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Green', 'setColour:', '') subitem.setRepresentedObject_('Green') submenu.addItem_(subitem) subitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Blue', 'setColour:', '') subitem.setRepresentedObject_('Blue') submenu.addItem_(subitem) menu.addItem_(NSMenuItem.separatorItem()) for bulb in self.lights: submenu = NSMenu.alloc().init() name = bulb.bulb_label or bulb.get_addr() item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( name, '', '') item.setSubmenu_(submenu) menu.addItem_(item) subitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Toggle Light', 'toggleBulb:', '') subitem.setRepresentedObject_(bulb) subitem.setState_(bulb.power) submenu.addItem_(subitem) menu.addItem_(NSMenuItem.separatorItem()) quit_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Quit', 'terminate:', '') menu.addItem_(quit_item)
from twisted.internet.protocol import DatagramProtocol from twisted.internet import reactor from twisted.internet import task from binascii import hexlify import msgpack import socket import lifx import time stable = { 'id': 'LiFX'} _lights = {} for i, l in enumerate(lifx.get_lights()): _lights['setRGB{0}'.format(i+1)] = l _lights['powRGB{0}'.format(i+1)] = l stable['setRGB{0}'.format(i+1)] = {'s': 'setRGBLed'} stable['powRGB{0}'.format(i+1)] = {'s': 'setBool'} stable['trSetup'] = {'s': ""} stable['trAbort'] = {'s': ""} stable['getTime'] = {'s': ""} print(_lights) transactions = {} class LiFXService(DatagramProtocol): def sendError(self, msg, addr): print(msg) self.transport.write(msgpack.packb({'error': msg}), addr)
from twisted.internet.protocol import DatagramProtocol from twisted.internet import reactor from twisted.internet import task from binascii import hexlify import msgpack import socket import lifx import time stable = {'id': 'LiFX'} _lights = {} for i, l in enumerate(lifx.get_lights()): _lights['setRGB{0}'.format(i + 1)] = l _lights['powRGB{0}'.format(i + 1)] = l stable['setRGB{0}'.format(i + 1)] = {'s': 'setRGBLed'} stable['powRGB{0}'.format(i + 1)] = {'s': 'setBool'} stable['trSetup'] = {'s': ""} stable['trAbort'] = {'s': ""} stable['getTime'] = {'s': ""} print(_lights) transactions = {} class LiFXService(DatagramProtocol): def sendError(self, msg, addr): print(msg) self.transport.write(msgpack.packb({'error': msg}), addr)
#!/usr/bin/python -u import lifx import socket import sys from time import sleep print("Initializing light") light = lifx.get_lights()[0] print(light.hue) print(light.saturation) print(light.brightness) print(light.kelvin) print("Light done") sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1) print("Socket created") try: sock.bind(("localhost",5432)) except socket.error as msg: print('Bind failed. Error Code : ' + str(msg)) sys.exit() print("Socket bind complete") sock.listen(1) print("Socket now listening") try: while 1: