From 6a42563bc5d2c17ca34525b2a6fc08cb8c829312 Mon Sep 17 00:00:00 2001 From: "E. Almqvist" Date: Tue, 4 Aug 2020 11:51:49 +0200 Subject: [PATCH] Light on/off --- hue_controller.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) 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()