From add4ea65394caa47585c4d8959e6d4346dcacb2d Mon Sep 17 00:00:00 2001 From: "E. Almqvist" Date: Tue, 4 Aug 2020 20:19:21 +0200 Subject: [PATCH] Began work on remote --- hue_controller.py | 28 ++++++++++++++++++---------- hue_remote.py | 24 ++++++++++++++++++++++++ lib/vars.py | 17 ----------------- main.py | 9 --------- presets.py | 22 ++++++++++++++++++++++ 5 files changed, 64 insertions(+), 36 deletions(-) create mode 100755 hue_remote.py delete mode 100644 lib/vars.py delete mode 100755 main.py diff --git a/hue_controller.py b/hue_controller.py index 788e7ce..999c309 100644 --- a/hue_controller.py +++ b/hue_controller.py @@ -93,10 +93,13 @@ class controller: def setLightBrightness( index:int, b:int ): if( LIGHTS.get(str(index)) ): payload = '{"bri":' + str(b) + '}' - APIrequest.put( "/lights/" + str(index) + "/state", payload ) + loop.run_until_complete( APIrequest.put( "/lights/" + str(index) + "/state", payload ) ) else: print("Error: Light index '" + str(index) + "' out of range") + def setBrightness( b:int ): + for key in LIGHTS: + controller.setLightBrightness( key, b ) def setAllLightsColor( r:int, g:int, b:int ): for key in LIGHTS: @@ -106,19 +109,31 @@ class controller: loop.run_until_complete( controller.toggleLights(isOn) ) # Presets - def setPreset(index:int, p:str): + def setLightPreset( index:int, p:str ): if( LIGHTS.get(str(index)) ): if( PRESETS.get(p) ): preset = PRESETS[p] r, g, b = preset["color"] + brightness = preset["brightness"] + controller.setLightColor( index, r, g, b ) + controller.setLightBrightness( index, brightness ) else: print("Error: Unknown preset '" + p + "'") else: print("Error: Light index '" + str(index) + "' out of range") + def setPreset( presetDict ): + if( type(presetDict) is dict ): + for index, preset in presetDict.items(): + controller.setLightPreset( index, preset ) + elif( type(presetDict) is str ): + for key in LIGHTS: + controller.setLightPreset( key, presetDict ) + + # Controller "system" functions - def delay(n: int): + def delay(n:int): time.sleep(n) def init(): @@ -126,13 +141,6 @@ class controller: global LIGHTS LIGHTS = json.loads(jsonLights.text) - print(LIGHTS) def end(): loop.close() - -def testReq(): - controller.init() - controller.Power(True) - controller.setAllLightsColor( 178, 199, 255 ) - controller.end() diff --git a/hue_remote.py b/hue_remote.py new file mode 100755 index 0000000..79645e9 --- /dev/null +++ b/hue_remote.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +from lib.input import * # Commandline parser + +import hue_controller as hue # Actual controller + +cmd = "hue" + +def help(): + print("--Help page--") + + print( "'" + cmd + "' : Display this help page" ) + print( "'" + cmd + " light (index)' ... : Specify light target" ) + print( "'" + cmd + " lights' ... : Specify all lights\n" ) + + print("--Commands--") + print( "'on/off' : Turn light(s) on/off" ) + print( "'set ...'" ) + print( " 'preset (preset ID)' : Set the preset (from presets.py)" ) + print( " 'color (red) (green) (blue)' : Set the color, from 0-255" ) + print( " 'brightness (brightness)' : Set the brightness, from 0-255" ) + + print("\nExamples:\n'hue light 2 on' : Turn on light 2\n'hue lights set color 255 255 255' : Set all lights colors to white") + +help() diff --git a/lib/vars.py b/lib/vars.py deleted file mode 100644 index 5133eaa..0000000 --- a/lib/vars.py +++ /dev/null @@ -1,17 +0,0 @@ -eng_alphabet = *"abcdefghijklmnopqrstuvwxyz", -swe_alphabet = *"abcdefghijklmnopqrstuvwxyzåäö", - -# Definitions -alphabet = dict() - -alphabet["ENG"] = eng_alphabet -alphabet["SWE"] = swe_alphabet - -# Functions -def listToString( l ): - returnStr = "" - - for char in l: - returnStr += char - - return returnStr diff --git a/main.py b/main.py deleted file mode 100755 index 324048d..0000000 --- a/main.py +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env python -from lib.input import * # Commandline parser - -import hue_controller as hue # Actual controller - -def init(): - hue.testReq() - -init() diff --git a/presets.py b/presets.py index 17cb7a2..4f08f9b 100644 --- a/presets.py +++ b/presets.py @@ -1,7 +1,29 @@ # Presets goes in here PRESETS = { + "default": { "color": (178, 199, 255), "brightness": 255 + }, + + "red": { + "color": (255, 0, 0), + "brightness": 255 + }, + + "green": { + "color": (0, 255, 0), + "brightness": 255 + }, + + "blue": { + "color": (0, 0, 255), + "brightness": 255 + }, + + "sleep": { + "color": (185, 155, 25), + "brightness": 80 } + }