def main(): """ the main function. :return: none """ args = setup_args_parser() setup_logging(args.loglevel) controller = Controller(ble_adapter=args.adapter) try: controller.load_data(args.file) except HomeKitException as exception: print(exception) logging.debug(exception, exc_info=True) sys.exit(-1) if args.alias not in controller.get_pairings(): print('"{a}" is no known alias'.format(a=args.alias)) sys.exit(-1) try: pairing = controller.get_pairings()[args.alias] pairing.add_pairing(args.pairing_id, args.key, args.permission) if pairing.pairing_data['Connection'] == 'IP': text = 'Please add this to homekit.finish_add_remote_pairing:\n' \ ' -c {c} -i {id} -k {pk}' \ .format(c=pairing.pairing_data['Connection'], id=pairing.pairing_data['AccessoryPairingID'], pk=pairing.pairing_data['AccessoryLTPK'] ) print(text) elif pairing.pairing_data['Connection'] == 'BLE': text = 'Please add this to homekit.finish_add_remote_pairing:\n' \ ' -c {c} -i {id} -m {mac} -k {pk}' \ .format(c=pairing.pairing_data['Connection'], id=pairing.pairing_data['AccessoryPairingID'], mac=pairing.pairing_data['AccessoryMAC'], pk=pairing.pairing_data['AccessoryLTPK'] ) print(text) else: print('Not known') except HomeKitException as exception: print(exception) logging.debug(exception, exc_info=True) sys.exit(-1)
parser = argparse.ArgumentParser(description='HomeKit list pairings app') parser.add_argument('-f', action='store', required=True, dest='file', help='File with the pairing data') parser.add_argument('-a', action='store', required=True, dest='alias', help='alias for the pairing') return parser.parse_args() if __name__ == '__main__': args = setup_args_parser() controller = Controller() controller.load_data(args.file) if args.alias not in controller.get_pairings(): print('"{a}" is no known alias'.format(a=args.alias)) exit(-1) pairing = controller.get_pairings()[args.alias] pairings = pairing.list_pairings() for pairing in pairings: print('Pairing Id: {id}'.format(id=pairing['pairingId'])) print('\tPublic Key: 0x{key}'.format(key=pairing['publicKey'])) print('\tPermissions: {perm} ({type})'.format( perm=pairing['permissions'], type=pairing['controllerType']))
if __name__ == '__main__': args = setup_args_parser() setup_logging(args.loglevel) controller = Controller() try: controller.load_data(args.file) except Exception as e: print(e) logging.debug(e, exc_info=True) sys.exit(-1) try: pairings = controller.get_pairings() if args.alias not in pairings: print('"{a}" is no known alias'.format(a=args.alias)) sys.exit(-1) pairing_data = pairings[args.alias]._get_pairing_data() pairing_data['Connection'] = args.connection if args.connection == 'IP': pairing_data['AccessoryPairingID'] = args.id pairing_data['AccessoryLTPK'] = args.key elif args.connection == 'BLE': pairing_data['AccessoryPairingID'] = args.id pairing_data['AccessoryLTPK'] = args.key pairing_data['AccessoryMAC'] = args.mac controller.save_data(args.file)
if __name__ == '__main__': args = setup_args_parser() setup_logging(args.loglevel) controller = Controller() try: controller.load_data(args.file) except Exception as e: print(e) logging.debug(e, exc_info=True) sys.exit(-1) try: pairings = controller.get_pairings() if args.alias in pairings: pairing_data = pairings[args.alias]._get_pairing_data() additional_controller_pairing_identifier = pairing_data[ 'iOSPairingId'] ios_device_ltpk = pairing_data['iOSDeviceLTPK'] text = 'Alias "{a}" is already in state add additional pairing.\n'\ 'Please add this to homekit.add_additional_pairing:\n'\ ' -i {id} -k {pk}'\ .format(a=args.alias, id=additional_controller_pairing_identifier, pk=ios_device_ltpk ) raise AlreadyPairedError(text) additional_controller_pairing_identifier = str(uuid.uuid4())