def list_units(): fmt = "%-25s %-25s %s" print(fmt % ("Device Name", "Device Number", "URL Address")) print(fmt % ("-" * 20, "-" * 20, "-" * 20)) # wait upto 5 seconds or after you have discovered two unit r = isy_discover(timeout=5, count=2) for key, unit in r.items(): print(fmt % (unit['friendlyName'], unit['UDN'], unit['URLBase']))
def list_units(): fmt = "%-25s %-25s %s" print(fmt % ("Device Name", "Device Number", "URL Address" )) print(fmt % ("-" * 20, "-" * 20, "-" * 20 )) # wait upto 5 seconds or after you have discovered two unit r = isy_discover(timeout=5, count=2) for key, unit in r.items(): print(fmt % ( unit['friendlyName'], unit['UDN'], unit['URLBase'] ))
def load_config(self): try: config_fp = open(os.path.join(self._config_path, 'HueISY.json')) config = json.load(config_fp) config_fp.close() except IOError: config = {} secret_key = config.get("SecretKey") if secret_key is not None: self._secret_key = base64.b64decode(secret_key) else: self._secret_key = None self._Hue_IP = config.get("HueIP", "") if self._Hue_IP == "": self._Hue_IP = phue.Bridge.get_ip_address() self._Hue_Username = config.get("HueUsername", "") self._Isy_IP = config.get("IsyIP", "") if self._Isy_IP == "": from ISY.IsyDiscover import isy_discover result = isy_discover(timeout=30, count=1) if len(result) == 1: import urlparse self._Isy_IP = urlparse.urlparse( result.values()[0]['URLBase']).netloc self._Isy_User = config.get("IsyUser", "") self._Isy_Pass = config.get("IsyPass", "") for action_cfg in config.get("actions", {}): action = Action.Action(settings=action_cfg) self._actions[action.name] = action for trigger_id in action.triggers: self._trigger_actions[trigger_id] = action for scene_cfg in config.get("scenes", {}): scene = Scene.Scene(settings=scene_cfg) self._scenes[scene.name] = scene
def load_config(self): try: config_fp = open(os.path.join(self._config_path, 'HueISY.json')) config = json.load(config_fp) config_fp.close() except IOError: config = {} secret_key = config.get("SecretKey") if secret_key is not None: self._secret_key = base64.b64decode(secret_key) else: self._secret_key = None self._Hue_IP = config.get("HueIP", "") if self._Hue_IP == "": self._Hue_IP = phue.Bridge.get_ip_address() self._Hue_Username = config.get("HueUsername", "") self._Isy_IP = config.get("IsyIP", "") if self._Isy_IP == "": from ISY.IsyDiscover import isy_discover result = isy_discover(timeout=30, count=1) if len(result) == 1: import urlparse self._Isy_IP = urlparse.urlparse(result.values()[0]['URLBase']).netloc self._Isy_User = config.get("IsyUser", "") self._Isy_Pass = config.get("IsyPass", "") for action_cfg in config.get("actions", {}): action = Action.Action(settings=action_cfg) self._actions[action.name] = action for trigger_id in action.triggers: self._trigger_actions[trigger_id] = action for scene_cfg in config.get("scenes", {}): scene = Scene.Scene(settings=scene_cfg) self._scenes[scene.name] = scene
def __init__(self, **kwargs): # # Keyword args # self.userl = kwargs.get("userl", os.getenv('ISY_USER', "admin")) self.userp = kwargs.get("userp", os.getenv('ISY_PASS', "admin")) self.addr = kwargs.get("addr", os.getenv('ISY_ADDR', None)) # (self.userl, self.userp, self.addr) = authtuple # print "AUTH: ", self.addr, self.userl, self.userp self.debug = kwargs.get("debug", 0) self.cachetime = kwargs.get("cachetime", 0) self.faststart = kwargs.get("faststart", 1) self.eventupdates = kwargs.get("eventupdates", 0) self._isy_event = None self.error_str = "" self.callbacks = dict () self._is_pro = True # data dictionaries for ISY state self.controls = None self.name2control = None self._folderlist = None self._folder2addr = None self._progdict = None self._nodedict = None self._nodegroups = None self._groups2addr = None self._node2addr = None self._nodeCategory = None self._vardict = None self._wolinfo = None self._net_resource = None self.climateinfo = None if self.addr == None : from ISY.IsyDiscover import isy_discover units = isy_discover(count=1) for device in units.values() : self.addr = device['URLBase'][7:] self.baseurl = device['URLBase'] else : self.baseurl = "http://" + self.addr if self.addr == None : warn("No ISY address : guessing \"isy\"") self.addr = "isy" # print "\n\taddr", "=>", self.addr, "\n\n" # if ( not self.userl or not self.userp ) : # netrc_info = netrc.netrc() # login, account, password = netrc_info.authenticators(self.addr) # print "login", "=>", repr(login) # print "account", "=>", repr(account) # print "password", "=>", repr(password) # self.userl = "admin" # self.userp = "admin" if self.debug & 0x01 : print("class Isy __init__") print("debug ", self.debug) print("cachetime ", self.cachetime) print("faststart ", self.faststart) # parse ISY_AUTH as LOGIN:PASS # # general setup logic # Isy._handler.add_password(None, self.addr, self.userl, self.userp) # self._opener = URL.build_opener(Isy._handler, URL.HTTPHandler(debuglevel=1)) # self._opener = URL.build_opener(Isy._handler) if self.debug & 0x02: print("baseurl: " + self.baseurl + " : " + self.userl + " : " + self.userp) if self.faststart < 2 : try: self.load_conf() except URL.URLError as e: print("Unexpected error:", sys.exc_info()[0]) print 'Problem connecting with ISY device :', self.addr print e raise IsyCommunicationError(e) if not self.faststart : self.load_nodes() # There for id's to Node/Var/Prog objects self.nodeCdict = dict () self.varCdict = dict () self.progCdict = dict () self.folderCdict = dict () if self.eventupdates : self.start_event_thread()