Finished remote

fetchIP
E. Almqvist 4 years ago
parent 4dcf07a15b
commit c434aae77e
  1. 2
      hue_controller.py
  2. 43
      hue_remote.py

@ -133,6 +133,8 @@ class controller:
else: else:
controller.setLightPreset( index, presetID ) controller.setLightPreset( index, presetID )
def countLights():
return len(LIGHTS)
# Controller "system" functions # Controller "system" functions
def delay(n:int): def delay(n:int):

@ -11,7 +11,7 @@ def help():
print("--Help page--") print("--Help page--")
print( "'" + cmd + "' : Display this help page" ) print( "'" + cmd + "' : Display this help page" )
print( "'" + cmd + " light (index)' ... : Specify light target" ) print( "'" + cmd + " light (index)' ... : Specify light target, from 1-" + str(hue.controller.countLights()) )
print( "'" + cmd + " lights' ... : Specify all lights\n" ) print( "'" + cmd + " lights' ... : Specify all lights\n" )
print("--Commands--") print("--Commands--")
@ -31,26 +31,56 @@ boolConvert = {
def parseCommand( cmd:list, pos:int, i=-1 ): def parseCommand( cmd:list, pos:int, i=-1 ):
index = int(i) index = int(i)
try:
if( cmd[pos] == "on" or cmd[pos] == "off" ): if( cmd[pos] == "on" or cmd[pos] == "off" ):
if( index == -1 ): if( index == -1 ):
hue.controller.Power( boolConvert[cmd[pos]] ) hue.controller.Power( boolConvert[cmd[pos]] )
else: else:
hue.controller.powerLight( index, boolConvert[cmd[pos]] ) hue.controller.powerLight( index, boolConvert[cmd[pos]] )
return
elif( cmd[pos] == "switch" ): elif( cmd[pos] == "switch" ):
if(index == -1): if(index == -1):
hue.controller.switchLights() hue.controller.switchLights()
else: else:
hue.controller.switchLight(index) hue.controller.switchLight(index)
return
elif( cmd[pos] == "set" ): elif( cmd[pos] == "set" ):
if( cmd[pos+1] == "preset" ): if( cmd[pos+1] == "preset" ):
hue.controller.setPreset( cmd[pos+2], index ) hue.controller.setPreset( cmd[pos+2], index )
return
elif( cmd[pos+1] == "color" ):
if( len(cmd) > pos+4 ):
r, g, b = int(cmd[pos+2]), int(cmd[pos+3]), int(cmd[pos+4])
if( index == -1 ):
hue.controller.setAllLightsColor( r, g, b ) # this code is bad
else:
hue.controller.setLightColor( index, r, g, b )
#elif( cmd[pos+1] == "color" ): return
else:
print("Error: Missing parameters")
help()
elif( cmd[pos+1] == "brightness" ):
if( len(cmd) > pos+2 ):
bri = int(cmd[pos+2])
if( index == -1 ):
hue.controller.setBrightness(bri)
else:
hue.controller.setLightBrightness( index, bri )
return
help() # display help if function did nothing
#elif( cmd[pos+1] == "preset" ): except (RuntimeError, TypeError, NameError, IndexError):
help() # display the help page if parameters are missing (it will give out an IndexError)
def parseCommandline(): # this is the most spaghetti code I have ever written but it works and I do not intend to fix def parseCommandline(): # this is the most spaghetti code I have ever written but it works and I do not intend to fix
@ -58,8 +88,7 @@ def parseCommandline(): # this is the most spaghetti code I have ever written bu
print(cmd) print(cmd)
if( len(cmd) > 1 ): if( len(cmd) > 1 ):
if( cmd[1] == "light" ): if( cmd[1] == "light" ):
index = cmd[2] parseCommand( cmd, 3, cmd[2] )
parseCommand( cmd, 3, index )
elif( cmd[1] == "lights" ): elif( cmd[1] == "lights" ):
parseCommand( cmd, 2 ) parseCommand( cmd, 2 )
@ -68,8 +97,8 @@ def parseCommandline(): # this is the most spaghetti code I have ever written bu
def init(): def init():
hue.controller.init() hue.controller.init() # very important to initialize the controller
parseCommandline() parseCommandline()
hue.controller.end() hue.controller.end() # also to end it
init() init()

Loading…
Cancel
Save