parser.add_argument('-e', action='store_true', required=False, dest='events', help='') return parser if __name__ == '__main__': parser = setup_args_parser() args = parser.parse_args() pairing_data = load_pairing(args.file) if pairing_data is None: print('File {file} not found!'.format(file=args.file)) sys.exit(-1) deviceId = pairing_data['AccessoryPairingID'] connection_data = find_device_ip_and_port(deviceId) if connection_data is None: print('Device {id} not found'.format(id=deviceId)) sys.exit(-1) conn = http.client.HTTPConnection(connection_data['ip'], port=connection_data['port']) controllerToAccessoryKey, accessoryToControllerKey = get_session_keys(conn, pairing_data) sec_http = SecureHttp(conn.sock, accessoryToControllerKey, controllerToAccessoryKey) # create URL url = '/characteristics?id=' + args.characteristics if args.meta: url += '&meta=1' if args.perms:
action='store_true', dest='overwrite', help='overwrite file with the pairing data') return parser.parse_args() iOSPairingId = str(uuid.uuid4()) if __name__ == '__main__': args = setup_args_parser() if os.path.isfile(args.file) and not args.overwrite: print('The pairing data file already exists!') exit(-1) connection_data = find_device_ip_and_port(args.device) if connection_data is None: print('Device {id} not found'.format(id=args.device)) sys.exit(-1) conn = HomeKitHTTPConnection(connection_data['ip'], port=connection_data['port']) try: pairing = perform_pair_setup(conn, args.pin, iOSPairingId) # add ip and port to pairing data pairing['AccessoryIP'] = connection_data['ip'] pairing['AccessoryPort'] = connection_data['port'] save_pairing(args.file, pairing)