Merge pull request #9 from E-Almqvist/fetchIP

Fetching HUE Bridge IP from the API
master
E. Almqvist 4 years ago committed by GitHub
commit 9a6abb0776
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 28
      modules/hue/hue_controller.py

@ -10,17 +10,31 @@ from os.path import expanduser # to get the home dir
homedir = expanduser("~") # get the home directory of the current user
IP_FETCH_URL = "http://discovery.meethue.com/" # returns the HUE bridges local IP
LIGHTS = {} # dictionary of all the lights
CONFIG = {} # the configuration
PRESETS = {} # the presets
PRE_URL = "" # prefix
BRIDGE_ADDRESS = ""
loop = asyncio.get_event_loop() # ASync loop
def genUrl(params: str):
return PRE_URL + params
return f"http://{BRIDGE_ADDRESS}/api/{CONFIG['username']}{params}"
class APIrequest:
def fetchBridgeIP():
try:
apiReq = req.get(IP_FETCH_URL)
data = apiReq.json()
return data[0]["internalipaddress"]
except req.exceptions.RequestException as err:
print("Unable to fetch HUE Bridge IP!")
print(err)
exit()
# Get Req
async def get( dest: str="", payload: str="" ):
try:
@ -147,7 +161,7 @@ class controller:
def delay(n:int):
time.sleep(n)
def init( cfgPath="{0}/.config/roomcomputer/config.json".format(homedir), presetPath="{0}/.config/roomcomputer/presets.json".format(homedir) ):
def init( cfgPath=f"{homedir}/.config/roomcomputer/config.json", presetPath=f"{homedir}/.config/roomcomputer/presets.json" ):
config = readconfig(cfgPath)
presets = readconfig(presetPath)
@ -157,8 +171,12 @@ class controller:
global PRESETS
PRESETS = presets
global PRE_URL
PRE_URL = "http://" + CONFIG["address"] + "/api/" + CONFIG["username"]
global BRIDGE_ADDRESS
# If there is no address in the config then get it via the API
if( "address" in CONFIG ):
BRIDGE_ADDRESS = CONFIG["address"]
else:
BRIDGE_ADDRESS = APIrequest.fetchBridgeIP()
jsonLights = loop.run_until_complete(APIrequest.get("/lights"))
global LIGHTS

Loading…
Cancel
Save