Exemplo n.º 1
0
    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:
Exemplo n.º 2
0
                        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)