Настройка и открытие двери с помощью динамического QR-кода (TOTP)
Данное руководство поможет вам настроить панель доступа и сгенерировать QR-код для бесконтактного открытия двери.
Версия прошивки должна быть не ниже 2.5.0.14.7
Время на вашем мобильном телефоне и на панели доступа должно быть абсолютно точным и актуальным. Даже небольшая рассинхронизация приведет к тому, что QR-код не сработает.
Этап 1. Предварительная настройка панели (через API)
Для работы функции необходимо создать виртуальный ключ и активировать сканер на панели с помощью API-запросов.
1. Создание виртуального ключа с флагом virtual
Отправьте запрос
POST /key/store со следующим телом:json
{
"uuid": "AABBCCDDEEFF",
"virtual": true
}
uuid — уникальный идентификатор вашего виртуального ключа.
virtual — флаг (значение true), подтверждающий, что создаваемый ключ является виртуальным.
2. Включение QR-сканера
Отправьте запрос
PUT /v1/qr/settings для активации модуля камеры:json
{
"enable": true
}
3. Настройка параметров TOTP-кода
Задайте правила безопасности для генерации одноразовых паролей, отправив запрос
PUT /v1/qr/options/1:json
{
"salt": "12345",
"step": 30,
"length": 6,
"window": 5
}
salt — секретная строка (соль), используемая для шифрования.
step — период обновления TOTP-кода (в секундах). В данном примере код меняется каждые 30 секунд.
length — количество цифр в генерируемом TOTP-коде (6 знаков).
window — допустимый интервал проверки (количество кодов назад от текущего времени). Значение 5 означает, что панель примет код, даже если он немного устарел.
Этап 2. Генерация секретного ключа (Secret)
Чтобы мобильное приложение могло создавать правильные коды, необходимо сгенерировать секретный ключ на основе ваших данных.
salt|uuidПример ввода:
12345|AABBCCDDEEFF
Нажмите «Generate» и скопируйте полученный результат. Пример хэша:
c984b6908a2bd65ca107056c050324a5
Кодирование в Base32:
Пример:
MM4TQNDCGY4TAODBGJRGINRVMNQTCMBXGA2TMYZQGUYDGMRUME2Q====
Этап 3. Получение одноразового кода и создание QR-кода
6
Period: 30
Algorithm: SHA-1
Система отобразит текущий 6-значный цифровой код (он обновляется каждые 30 секунд).
Формирование данных для QR-кода:
json
{
"op": 1,
"k": "AABBCCDDEEFF",
"p": 123456,
"t": 123456789,
"f": 123
}
op — номер операции (всегда 1 — открытие двери по QR).
k — ваш уникальный идентификатор ключа (uuid).
p — свежий TOTP-код, полученный на предыдущем шаге.
t — текущее время в формате UNIX-timestamp.
f — номер вашей квартиры.
Создайте (сгенерируйте) QR-код на основе этого измененного JSON-текста.
Этап 4. Проход через точку доступа