예제 #1
0
	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)
예제 #2
0
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))
예제 #3
0
파일: forms.py 프로젝트: jheld/lifx-django
 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)
예제 #4
0
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'},
	]
예제 #5
0
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
예제 #6
0
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)
예제 #7
0
    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)
예제 #8
0
    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)
예제 #9
0
#!/usr/bin/env python3
import lifx

lights = lifx.get_lights()

for light in lights:
    print(light)
예제 #10
0
#!/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)
예제 #11
0
    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)
예제 #12
0
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)
예제 #13
0
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)
예제 #14
0
#!/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: