def main(): """Scan for devices and print results.""" parser = argparse.ArgumentParser(description='pyubee') parser.add_argument('host', help='Host') parser.add_argument('username', help='Username') parser.add_argument('password', help='Password') parser.add_argument('-m', '--model', default="detect", help='Model, supported models: ' + ', '.join(SUPPORTED_MODELS)) args = parser.parse_args() ubee = Ubee(host=args.host, username=args.username, password=args.password, model=args.model) if not ubee.session_active(): if not ubee.login(): print('Could not login') sys.exit(1) devices = ubee.get_connected_devices() if devices: print("Connected devices:") for device in devices: print("%s\t%s" % (device, devices[device])) else: print("No connected devices found")
class UbeeDeviceScanner(DeviceScanner): """This class queries a wireless Ubee router.""" def __init__(self, config): """Initialize the Ubee scanner.""" from pyubee import Ubee self.host = config[CONF_HOST] self.username = config[CONF_USERNAME] self.password = config[CONF_PASSWORD] self.last_results = {} self.mac2name = {} self.ubee = Ubee(self.host, self.username, self.password) _LOGGER.info("Logging in") results = self.get_connected_devices() self.success_init = results is not None if self.success_init: self.last_results = results else: _LOGGER.error("Login failed") def scan_devices(self): """Scan for new devices and return a list with found device IDs.""" self._update_info() return self.last_results def get_device_name(self, device): """Return the name of the given device or None if we don't know.""" if device in self.mac2name: return self.mac2name.get(device) return None def _update_info(self): """Retrieve latest information from the Ubee router.""" if not self.success_init: return _LOGGER.debug("Scanning") results = self.get_connected_devices() if results is None: _LOGGER.warning("Error scanning devices") return self.last_results = results or [] def get_connected_devices(self): """List connected devices with pyubee.""" if not self.ubee.session_active(): self.ubee.login() return self.ubee.get_connected_devices()
def get_scanner(hass, config): """Validate the configuration and return a Ubee scanner.""" info = config[DOMAIN] host = info[CONF_HOST] username = info[CONF_USERNAME] password = info[CONF_PASSWORD] model = info[CONF_MODEL] ubee = Ubee(host, username, password, model) if not ubee.login(): _LOGGER.error("Login failed") return None scanner = UbeeDeviceScanner(ubee) return scanner
def main(): """Scan for devices and print results.""" parser = argparse.ArgumentParser(description='pyubee') parser.add_argument('host', help='Host') parser.add_argument('username', help='Username') parser.add_argument('password', help='Password') parser.add_argument('-m', '--model', default="detect", help='Model, supported models: ' + ', '.join(SUPPORTED_MODELS)) parser.add_argument('-d', '--debug', action='store_true', help='Enable debug-logging') parser.add_argument('-t', '--show-traffic', action='store_true', help='Show sent/received traffic') args = parser.parse_args() if args.debug: _LOGGER.setLevel(logging.DEBUG) if args.show_traffic: _LOGGER_TRAFFIC.setLevel(logging.DEBUG) ubee = Ubee(host=args.host, username=args.username, password=args.password, model=args.model) if not ubee.session_active(): if not ubee.login(): print('Could not login') sys.exit(1) devices = ubee.get_connected_devices() if devices: print("Connected devices:") for device in devices: print("%s\t%s" % (device, devices[device])) else: print("No connected devices found")
def __init__(self, config): """Initialize the Ubee scanner.""" from pyubee import Ubee self.host = config[CONF_HOST] self.username = config[CONF_USERNAME] self.password = config[CONF_PASSWORD] self.last_results = {} self.mac2name = {} self.ubee = Ubee(self.host, self.username, self.password) _LOGGER.info("Logging in") results = self.get_connected_devices() self.success_init = results is not None if self.success_init: self.last_results = results else: _LOGGER.error("Login failed")