Example #1
0
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")
Example #2
0
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()
Example #3
0
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")