Fixed bugs with HTTPS etc

fetchIP
E. Almqvist 4 years ago
parent f70a1e6f12
commit af00694476
  1. 27
      modules/hue/hue_controller.py

@ -10,24 +10,25 @@ from os.path import expanduser # to get the home dir
homedir = expanduser("~") # get the home directory of the current user homedir = expanduser("~") # get the home directory of the current user
IP_FETCH_URL = "https://discovery.meethue.com/" # returns the HUE bridges local IP IP_FETCH_URL = "http://discovery.meethue.com/" # returns the HUE bridges local IP
LIGHTS = {} # dictionary of all the lights LIGHTS = {} # dictionary of all the lights
CONFIG = {} # the configuration CONFIG = {} # the configuration
PRESETS = {} # the presets PRESETS = {} # the presets
PRE_URL = "" # prefix BRIDGE_ADDRESS = ""
loop = asyncio.get_event_loop() # ASync loop loop = asyncio.get_event_loop() # ASync loop
def genUrl(params: str): def genUrl(params: str):
return PRE_URL + params return f"http://{BRIDGE_ADDRESS}/api/{CONFIG['username']}{params}"
class APIrequest: class APIrequest:
async def fetchBridgeIP(): def fetchBridgeIP():
try: try:
apiReq = req.get(IP_FETCH_URL) apiReq = req.get(IP_FETCH_URL)
return apiReq.json()["internalipaddress"] data = apiReq.json()
return data[0]["internalipaddress"]
except req.exceptions.RequestException as err: except req.exceptions.RequestException as err:
print("Unable to fetch HUE Bridge IP!") print("Unable to fetch HUE Bridge IP!")
@ -170,16 +171,12 @@ class controller:
global PRESETS global PRESETS
PRESETS = presets PRESETS = presets
global PRE_URL global BRIDGE_ADDRESS
PRE_URL = "https://" # If there is no address in the config then get it via the API
if( "address" in CONFIG ):
if( "address" in CONFIG ): # check if there is an address BRIDGE_ADDRESS = CONFIG["address"]
PRE_URL += f"{CONFIG['address']}" else:
else: # else then fetch it BRIDGE_ADDRESS = APIrequest.fetchBridgeIP()
PRE_URL += APIrequest.fetchBridgeIP()
PRE_URL += f"/api/{CONFIG['username']}" # append the rest
jsonLights = loop.run_until_complete(APIrequest.get("/lights")) jsonLights = loop.run_until_complete(APIrequest.get("/lights"))
global LIGHTS global LIGHTS

Loading…
Cancel
Save