diff --git a/hue_controller.py b/hue_controller.py index e00f7f3..1bd53ca 100644 --- a/hue_controller.py +++ b/hue_controller.py @@ -1,6 +1,7 @@ import requests as req # Used for HTTP requests for the Hue API import json # API uses JSON import asyncio # ASync stuff + import config # Configuration for the controller (/config.py <- change this file) LIGHTS = {} # dictionary of all the lights @@ -57,32 +58,51 @@ class APIrequest: class controller: + # Info async def getLights(): return await APIrequest.get("/lights") async def getLight(index: int=1): return await APIrequest.get( "/lights/" + str(index) ) + # Lower level light manipulation async def toggleLight(index: int=1, isOn: bool=True): await APIrequest.put( "/lights/" + str(index) + "/state", '{"on":' + boolToString(isOn) + '}' ) + async def toggleLights(isOn: bool=True): + for key in LIGHTS: + await controller.toggleLight(key, isOn) + + # Turning lights on/off def switchLight( index: int=1 ): key = LIGHTS.get(str(index)) if(key): - if( key.get(state) ): - loop.run_until_complete( controller.toggleLight( index, boolToString(StrBool[LIGHTS[str(index)]["state"]["on"]]) ) ) + if( key.get("state") ): + curPower = LIGHTS[str(index)]["state"]["on"] + loop.run_until_complete( controller.toggleLight(index, not curPower)) else: print("Error: Light index out of range") + def switchLights(): + for key in LIGHTS: + controller.switchLight(key) + + def Power(isOn: bool=True): + loop.run_until_complete( controller.toggleLights(isOn) ) + + # Very important init function def init(): jsonLights = loop.run_until_complete(APIrequest.get("/lights")) global LIGHTS LIGHTS = json.loads(jsonLights.text) print(LIGHTS) + print("----------------") def testReq(): controller.init() - controller.switchLight( 1 ) + controller.Power(False) # turn on all lights + + #controller.switchLights() # loop.run_until_complete( controller.toggleLight(1, True) ) # try to turn on/off a light loop.close()