API Документация
Описание
В данном документе описаны методы для взаимодействия с домофонной панелью Сокол Плюс через HTTP-запросы.
На устройстве по умолчанию 2 виртуальных сетевых интерфейса:
 - Динамический;
 - Статический (192.168.0.100).
Метод для настройки сетевых интерфейсов:
   /v1/network
Данные для авторизации по умолчанию:
   - логин: root
   - пароль: 123456
Метод для смены пароля по умолчанию:
   /user/change_password
Обязательные заголовки
Некоторые методы могут иметь другое значение для указанных заголовков или новые заголовки.
Запрос
| Наименование | Значение | Описание | 
| OPTIONS,GET, PUT, POST, DELETE | ||
| Authorization | Basic cm9vdDoxMjM0NTY= | Заголовок "Базовой авторизации" | 
| PUT, POST, DELETE | ||
| Content-Type | application/json | Тип передаваемых данных | 
| Content-Length | 0 | Размер передаваемых данных | 
Ответ
Заголовки
| Наименование | Значение | Описание | 
| Authorization | Basic cm9vdDoxMjM0NTY= | Заголовок "Базовой авторизации" | 
| Content-Type | application/json | Тип возвращаемых данных | 
| Content-Length | 0 | Размер возвращаемых данных | 
| X-Device-Mac | 08:13:00:00:00:00 | Мак адрес устройства | 
Коды
| Наименование | Значение | 
| Успешные | 
 | 
| Пользовательские | 
 | 
| Серверные | 
 | 
Авторизация
/auth/check
Метод проверки данных используемых для авторизации.
GET - Проверка авторизации
Ответы
200 OK
Авторизация пройдена
Заголовки:
| Наименование | Значение | Описание | 
| Content-Type | text/html; charset=ISO-8859-1 | Тип возвращаемых данных | 
401 Unauthorized
- Не корректно передан заголовок Authorization
- Используются не корректные данные логин или пароль
Заголовки:
| Наименование | Значение | Описание | 
| WWW-Authenticate | Basic realm="Access to camofon", charset="UTF-8" | Заголовок обязательной авторизации | 
| Content-Type | text/html; charset=ISO-8859-1 | Тип возвращаемых данных | 
Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/auth/check'Пользователь
/user
Метод смены текущего пароля пользователя на новый.
Метод не доступен для устройств на прошивке ниже 2.5.0.12.x
Описание параметров
| Название | Тип | Описание | 
| username | String | Новый пароль для указанного пользователя в заголовке авторизации. - По умолчанию: 123456 | 
| setup | Object | Первый запуск устройства. | 
| master | Boolean | Флаг означающий завершение мастера устройства. - По умолчанию: false | 
| logout | Object | Завершение сессии пользователя | 
| auto | Boolean | Флаг означающий авто завершение сессии пользователя. - По умолчанию: false | 
| timeout | Integer | Время авто завершения сессии пользователя. - Ограничения: 60 - 1800 - По умолчанию: 900 | 
GET - Получение параметров
Ответы
200 OK
Тело:
{
    "username": "root",
    "setup": {
        "master": false
    },
    "logout": {
        "auto": false,
        "timeout": 900
    }
}
Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/user'PUT - Изменение параметров
Запрос
Тело: 
{
    "username": "root",
    "setup": {
        "master": false
    },
    "logout": {
        "auto": false,
        "timeout": 900
    }
}Ответы
200 OK
Тело:
{
    "username": "root",
    "setup": {
        "master": false
    },
    "logout": {
        "auto": false,
        "timeout": 900
    }
}400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| field | String | Название переменной к которой относиться ошибка. | 
| message | String | Сообщение об ошибки для переменной из поля "field". | 
{
    "errors": [
        {
            "field": "auto",
            "message": "Тип параметра должен быть boolean"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/user' \
--data-raw '{
    "username": "root",
    "setup": {
        "master": false
    },
    "logout": {
        "auto": false,
        "timeout": 900
    }
}' 
/user/change_password
Метод смены текущего пароля пользователя на новый.
Описание параметров
| Название | Тип | Описание | 
| newPassword | String | Новый пароль для указанного пользователя в заголовке авторизации. - По умолчанию: 123456 | 
PUT - Обновление пароля пользователя
Запрос
Тело: 
{
  "newPassword": "123456"
}Ответы
200 OK
Успешная смена пароля
Заголовки:
| Название | Значение | Описание | 
| Content-Type | text/html; charset=ISO-8859-1 | Тип возвращаемых данных | 
400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| field | String | Название переменной к которой относиться ошибка. | 
| message | String | Сообщение об ошибки для переменной из поля "field". | 
{
    "errors": [
        {
            "field": "newPassword",
            "message": "Ошибка получения поля newPassword из запроса"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/user/change_password' \
--data-raw '{"newPassword": "123456"}'Параметры API
/v1/api
Методы получения и настройки параметров HTTP-сервера.
Описание параметров
| Название | Тип | Описание | 
| port | Integer | Порт для работы HTTP-сервера. - По умолчанию: 80 | 
GET - Получение параметров
Ответы
200 OK
Успешное получение данных
Тело:
{
    "port": 80
}Примеры
Curl:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/api'PUT - Изменение параметров
Запрос
Тело:
{
    "port": 80
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "port": 80
}400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Не удалось распарсить json"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/api' \
--data-raw '{"port": 80}'/v1/certs/https/key.pem
Методы получения/изменения ключа шифрования HTTPS.
Метод не доступен для устройств на прошивке ниже 2.5.0.12.x
GET - Получение ключа шифрования
Ответы
200 OK
Тело:
-----BEGIN PRIVATE KEY-----
   *** PRIVATE KEY ***
-----END PRIVATE KEY-----Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/certs/https/key.pem'PUT - Установка ключа шифрования
Запрос
Тело:
-----BEGIN PRIVATE KEY-----
   *** PRIVATE KEY ***
-----END PRIVATE KEY-----Ответы
200 OK
Тело:
-----BEGIN PRIVATE KEY-----
   *** PRIVATE KEY ***
-----END PRIVATE KEY-----400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Заголовок \"Content-Type\" должен быть \"text/plain\""
        }
    ]
}500 Internal Server Error
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Не достаточно места для файла"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: text/plain' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/certs/https/key.pem' \
--data-raw '-----BEGIN PRIVATE KEY-----
   *** PRIVATE KEY ***
-----END PRIVATE KEY-----'/v1/certs/https/cert.pem
Методы получения/изменения сертификата шифрования HTTPS.
Метод не доступен для устройств на прошивке ниже 2.5.0.12.x
GET - Получение сертификата шифрования
Ответы
200 OK
Тело:
-----BEGIN CERTIFICATE-----
   *** CERTIFICATE ***
-----END CERTIFICATE-----Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/certs/https/cert.pem'PUT - Установка сертификата шифрования
Запрос
Тело:
-----BEGIN CERTIFICATE-----
   *** CERTIFICATE ***
-----END CERTIFICATE-----Ответы
200 OK
Тело:
-----BEGIN CERTIFICATE-----
   *** CERTIFICATE ***
-----END CERTIFICATE-----400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Заголовок \"Content-Type\" должен быть \"text/plain\""
        }
    ]
}500 Internal Server Error
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Не достаточно места для файла"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: text/plain' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/certs/https/cert.pem' \
--data-raw '-----BEGIN CERTIFICATE-----
   *** CERTIFICATE ***
-----END CERTIFICATE-----'Параметры DDNS
/v1/ddns
Методы получение и изменения параметров ddns клиента, основанного на открытом No-IP протоколе.
Описание параметров
| Название | Тип | Описание | 
| enabled | Boolean | Флаг включения / отключения DDNS клиента. - По умолчанию: false | 
| method | String | Метод отправки http запросов на сервер. - Ограничения: GET, POST - По умолчанию: GET 
 Доступен начиная с версии 2.5.0.12.x | 
| interval | Integer | Интервал отправки http запросов на сервер. - По умолчанию: 300 | 
| server | Object | Параметры подключения к сервере | 
| port | Integer | Порт сервера для отправки запросов. - По умолчанию: 8081 | 
| address | String | Адрес сервера для отправки запросов. - По умолчанию: 10.199.63.7 | 
| username | String | Логин для авторизации. - По молчанию: default | 
| password | String | Пароль для авторизации. - По молчанию: default | 
| data | Object | Отправляемые данные. | 
| hostname | String | Передаваемый тип устройства. - По умолчанию: ddns.ISCom | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "enabled": true,
    "interval": 300,
    "server": {
        "port": 8081,
        "address": "10.199.63.7",
        "username": "default",
        "password": "default"
    },
    "data": {
        "hostname": "ddns.ISCom"
    }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/ddns'PUT - Изменение параметров
Запрос
Тело:
{
    "enabled": true,
    "interval": 300,
    "server": {
        "port": 8081,
        "address": "10.199.63.7",
        "username": "default",
        "password": "default"
    },
    "data": {
        "hostname": "ddns.ISCom"
    }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "enabled": true,
    "interval": 300,
    "server": {
        "port": 8081,
        "address": "10.199.63.7",
        "username": "default",
        "password": "default"
    },
    "data": {
        "hostname": "ddns.ISCom"
    }
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/ddns' \
--data-raw '{
    "enabled": true,
    "interval": 300,
    "server": {
        "port": 8081,
        "address": "10.199.63.7",
        "username": "default",
        "password": "default"
    },
    "data": {
        "hostname": "ddns.ISCom"
    }
}'DELETE - Сброс параметров
Ответы
200 OK
Успешный сброс параметров
Тело:
| Название | Тип | Описание | 
| enabled | Boolean | Флаг включения / отключения DDNS клиента. - По умолчанию: false | 
| interval | Integer | Интервал отправки http запросов на сервер. - По умолчанию: 300 | 
| server | Object | Параметры подключения к сервере | 
| port | Integer | Порт сервера для отправки запросов. - По умолчанию: 8081 | 
| address | String | Адрес сервера для отправки запросов. - По умолчанию: 10.199.63.7 | 
| username | String | Логин для авторизации. - По молчанию: default | 
| password | String | Пароль для авторизации. - По молчанию: default | 
| data | Object | Отправляемые данные. | 
| hostname | String | Передаваемый тип устройства. - По умолчанию: ddns.ISCom | 
{
    "enabled": true,
    "interval": 300,
    "server": {
        "port": 8081,
        "address": "10.199.63.7",
        "username": "default",
        "password": "default"
    },
    "data": {
        "hostname": "ddns.ISCom"
    }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request DELETE 'http://192.168.0.100:80/v1/ddns'Видеопоток
RTSP
Методы получения основного и дополнительного видеопотоков.
По умолчанию "Альтернативный видеопоток 2" выключен
Для включения используйте метод: /camera/codec
Основной видеопоток
VLC:
vlc rtsp://root:123456@192.168.0.100:554/ch0FFPLAY:
ffplay rtsp://root:123456@192.168.0.100:554/ch0Альтернативный видеопоток
VLC:
vlc rtsp://root:123456@192.168.0.100:554/ch1FFPLAY:
ffplay rtsp://root:123456@192.168.0.100:554/ch1Альтернативный видеопоток 2
VLC:
vlc rtsp://root:123456@192.168.0.100:554/ch2FFPLAY:
ffplay rtsp://root:123456@192.168.0.100:554/ch2/camera/md
Методы получение и изменения параметров детектора движения видеопотока.
Описание параметров
| Название | Тип | Описание | 
| md_enable | Boolean | Флаг включения / отключения детектора движения. - По умолчанию: false | 
| md_area_thr | Integer | Минимальный размер детектируемой области. Для людей на близком расстоянии примерно 100000 пикселей. - По умолчанию: 30000 пикселей | 
| md_send_snapshot_enable | Boolean | Флаг включения / отключения отправки картинок на сервер указанный в параметре "snap_send_url". - По умолчанию: false | 
| md_send_snapshot_interval | Integer | Интервал в секундах между отправкой картинок на сервер. - Ограничение: 1 - 20 секунд - По умолчанию: 1 секунда 
 ВАЖНО! Будет отправлена одна картинка, даже если за этот период было задетектировано больше движений. | 
| md_rects_enable | Boolean | Флаг включения / отключения отображения рамок детектора. - По умолчанию: false | 
| md_logs_enable | Boolean | Флаг включения / отключения отправки событий детектора в логи. - По умолчанию: false | 
| md_rect_color | String | Цвет отображающихся рамок детектора. - По умолчанию: 0xFF0000 | 
| md_frame_int | Integer | Интервал между кадрами, отправляемыми на поиск движения. - По умолчанию: 30 кадров | 
| md_frame_shift | Integer | Смещение второго кадра, участвующего в определении детекции. - По умолчанию: 1 кадр | 
| md_max_rect_ratio | Double | Максимальное соотношение длина / ширина прямоугольника для отображения. - По умолчанию: 8.0 | 
| snap_send_url | String | HTTP адрес на который будут отправляться картинки детектора. - По умолчанию: "" | 
| Добавлено после версий от 01.08 md_active_time | Integer | Если после последней детекции движения проходит md_active_time секунд, то отправляется событие EVENT: Detected motion finished оповещающее о конце движения. 
 Для отправки событий о начале и конце движения, также должны быть установлены параметры md_enable и md_logs_enable в значения true. 
 - По умолчанию: 1 секунда - Ограничение: 1 - 5 секунд 
 | 
При использовании удаленного HTTP-сервера детекции (snap_send_url).
Данные формата application/json отправляются на HTTP-сервер с помощью POST метода.
| Название | Тип | Описание | 
| time | String | Дата и время в формате "%y-%m-%d %H:%M:%S". | 
| df_id | String | Мак адрес устройства без символов двоеточия. | 
| img_bytes | String | Представление картинки в base64 строке. | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "md_enable": false,
    "md_area_thr": 30000,
    "md_send_snapshot_enable": false,
    "md_send_snapshot_interval": 1,
    "md_rects_enable": false,
    "md_logs_enable": false,
    "md_rect_color": "0xFF0000",
    "md_frame_int": 30,
    "md_frame_shift": 1,
    "md_max_rect_ratio": 8.0,
    "snap_send_url": ""
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/camera/md'PUT - Изменение параметров
Запрос
Тело:
{
    "md_enable": false,
    "md_area_thr": 30000,
    "md_send_snapshot_enable": false,
    "md_send_snapshot_interval": 1,
    "md_rects_enable": false,
    "md_logs_enable": false,
    "md_rect_color": "0xFF0000",
    "md_frame_int": 30,
    "md_frame_shift": 1,
    "md_max_rect_ratio": 8.0,
    "snap_send_url": ""
}Ответы
200 OK
Успешное получение параметров
Тело:
{
    "md_enable": false,
    "md_area_thr": 30000,
    "md_send_snapshot_enable": false,
    "md_send_snapshot_interval": 1,
    "md_rects_enable": false,
    "md_logs_enable": false,
    "md_rect_color": "0xFF0000",
    "md_frame_int": 30,
    "md_frame_shift": 1,
    "md_max_rect_ratio": 8.0,
    "snap_send_url": ""
}400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Ошибка получения md настроек: 400 (JSON поле data отсутствует)"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/camera/md' \
--data-raw '{
    "md_enable": false,
    "md_area_thr": 30000,
    "md_send_snapshot_enable": false,
    "md_send_snapshot_interval": 1,
    "md_rects_enable": false,
    "md_logs_enable": false,
    "md_rect_color": "0xFF0000",
    "md_frame_int": 30,
    "md_frame_shift": 1,
    "md_max_rect_ratio": 8.0,
    "snap_send_url": ""
}'
/camera/rtsp
Методы получение и изменения параметра порта rtsp.
Описание параметров
| Название | Тип | Описание | 
| port | Int | Текущий порт для получения rtsp потока. - Ограничения: 100 - 65535 - По умолчанию: 554 | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "port": 554
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/camera/rtsp'PUT - Изменение параметров
Запрос
Тело:
{
    "port": 554
}Ответы
200 OK
Успешное получение параметров
Тело:
{
    "port": 554
}400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Ошибка получения rtsp настроек: 400 (JSON поле data отсутствует)"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/camera/rtsp' \
--data-raw '{
    "port": 554
}'
/camera/audio
Методы получение и изменения параметров звука.
Описание параметров
| Название | Тип | Описание | 
| aac_enable | Boolean | Флаг включения / отключения кодирования звука в AAC. - По умолчанию: false (звук в PCMU) | 
| format | String | Формат кодирования звука. - По умолчанию: AAC - Поддерживаемые варианты: - AAC; - PCM; - PCMA (G.711A); - PCMU (G.711U); | 
| mic_gain | Integer | Усиление микрофона.   - По умолчанию: -30 | 
| spk_gain | Integer | Громкость динамика. - По умолчанию: 6 | 
| micGain | Integer | Программное усиление микрофона. - По умолчанию: 5 | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "aac_enable": true,
    "format": "AAC",
    "mic_gain": -30,
    "spk_gain": 6,
    "micGain": 5
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/camera/audio'PUT - Изменение параметров
Запрос
Тело:
{
    "aac_enable": true,
    "format": "AAC",
    "mic_gain": -30,
    "spk_gain": 6,
    "micGain": 5
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "aac_enable": true,
    "format": "AAC",
    "mic_gain": -30,
    "spk_gain": 6,
    "micGain": 5
}400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Ошибка получения md настроек: 400 (JSON поле data отсутствует)"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/camera/audio' \
--data-raw '{
    "aac_enable": true,
    "format": "AAC",
    "mic_gain": -30,
    "spk_gain": 6,
    "micGain": 5
}'/camera/codec
Методы получения и изменения параметров видеопотоков (основного, альтернативных).
Описание параметров
| Название | Тип | Описание | 
| Channels | Array | Массив видео потоков. | 
| Channel | Integer | Номер видео потока. | 
| Type | String | Тип кодека видео. | 
| Profile | Integer | Профиль кодека. - По умолчанию: 1 (Main) - Поддерживаемые варианты: - 0 - Baseline; - 1 - Main; - 2 - High; | 
| ByFrame | Boolean | Флаг, указывающий формат получения потока (покадрово /попакетно) | 
| Width / Height | Integer | Разрешение видео потока. - Поддерживаемые варианты: - 1920х1080 (основной поток); - 1280х720; - 720х576; - 704х576; - 640х480; - 640х360. | 
| GopMode | String | Режим, определяющий использование P (в том числе SP, VI) и B кадров и их чередование. - По умолчанию: 2 - Поддерживаемые варианты: - NormalP - SmartP       - DualP | 
| IPQpDelta | Integer | Разница между средним значением и текущим значением QP. - Ограничения: -10 - 30 - По умолчанию: 2 | 
| RcMode | String | Режим управления кодированием. - По умолчанию: AVBR | 
| IFrameInterval | Integer | Интервал опорного кадра (кадр/сек). - По умолчанию: 30 | 
| MaxBitrate | Integer | Максимальный битрейт видеопотока (Кбит/сек). | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "Channels": [
        {
            "Channel": 0,
            "Type": "H264",
            "Profile": 0,
            "ByFrame": true,
            "Width": 1920,
            "Height": 1080,
            "GopMode": "NormalP",
            "IPQpDelta": 2,
            "RcMode": "AVBR",
            "IFrameInterval": 30,
            "MaxBitrate": 4096
        },
        ...
        {
            "Channel": 2,
            "Enabled": true,
            "Type": "H264",
            "Profile": 1,
            "ByFrame": true,
            "Width": 640,
            "Height": 480,
            "GopMode": "NormalP",
            "IPQpDelta": 2,
            "RcMode": "AVBR",
            "IFrameInterval": 30,
            "MaxBitrate": 1536
        }
    ]
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/camera/codec'PUT - Изменение параметров
Запрос
Тело:
{
    "Channels": [
        {
            "Channel": 0,
            "Type": "H264",
            "Profile": 1,
            "ByFrame": true,
            "Width": 1280,
            "Height": 720,
            "GopMode": "NormalP",
            "IPQpDelta": 2,
            "RcMode": "AVBR",
            "IFrameInterval": 30,
            "MaxBitrate": 3072
        },
        ...,
        {
            "Channel": 2,
            "Type": "H264",
            "Profile": 1,
            "ByFrame": true,
            "Width": 640,
            "Height": 480,
            "GopMode": "NormalP",
            "IPQpDelta": 2,
            "RcMode": "AVBR",
            "IFrameInterval": 30,
            "MaxBitrate": 1536
        }
    ]
}Ответы
200 OK
Успешное получение параметров
Тело:
{
    "Channels": [
        {
            "Channel": 0,
            "Type": "H264",
            "Profile": 0,
            "ByFrame": true,
            "Width": 1920,
            "Height": 1080,
            "GopMode": "NormalP",
            "IPQpDelta": 2,
            "RcMode": "AVBR",
            "IFrameInterval": 30,
            "MaxBitrate": 4096
        },
        ...,
        {
            "Channel": 2,
            "Enabled": true,
            "Type": "H264",
            "Profile": 1,
            "ByFrame": true,
            "Width": 640,
            "Height": 480,
            "GopMode": "NormalP",
            "IPQpDelta": 2,
            "RcMode": "AVBR",
            "IFrameInterval": 30,
            "MaxBitrate": 1536
        }
    ]
}400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Ошибка получения md настроек: 400 (JSON поле data отсутствует)"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/camera/codec' \
--data-raw '{
    "Channels": [
        {
            "Channel": 0,
            "Type": "H264",
            "Profile": 0,
            "ByFrame": true,
            "Width": 1920,
            "Height": 1080,
            "GopMode": "NormalP",
            "IPQpDelta": 2,
            "RcMode": "AVBR",
            "IFrameInterval": 30,
            "MaxBitrate": 4096
        },
        {
            "Channel": 1,
            "Type": "H264",
            "Profile": 1,
            "ByFrame": true,
            "Width": 1280,
            "Height": 720,
            "GopMode": "NormalP",
            "IPQpDelta": 2,
            "RcMode": "AVBR",
            "IFrameInterval": 30,
            "MaxBitrate": 1536
        },
        {
            "Channel": 2,
            "Enabled": true,
            "Type": "H264",
            "Profile": 1,
            "ByFrame": true,
            "Width": 640,
            "Height": 480,
            "GopMode": "NormalP",
            "IPQpDelta": 2,
            "RcMode": "AVBR",
            "IFrameInterval": 30,
            "MaxBitrate": 1536
        }
    ]
}'/camera/picture
Методы получение и изменения параметров картинки (отражение по вертикали, отражение по горизонтали).
Описание параметров
| Название | Тип | Описание | 
| Image | Object | Параметры отражения картинки по вертикали и по горизонтали. | 
| Flip | Boolean | Отражение картинки по вертикали. - По умолчанию: false | 
| Mirror | Boolean | Отражение картинки по горизонтали. - По умолчанию: false | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "Image": {
        "Flip": false,
        "Mirror": false
    }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/camera/picture'PUT - Изменение параметров
Запрос
Тело:
{
    "Image": {
        "Flip": false,
        "Mirror": false
    }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "Image": {
        "Flip": false,
        "Mirror": false
    }
}400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Ошибка получения md настроек: 400 (JSON поле data отсутствует)"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/camera/picture' \
--data-raw '{
    "Image": {
        "Flip": false,
        "Mirror": false
    }
}'/camera/snapshot
Метод получение картинки с видеопотока в данный момент.
Размер картинки зависит от размера основного видеопотока
Для смены размера картинки видеопотока используйте:
   /camera/codec
GET - Получение картинки
Ответы
200 OK
Заголовки:
| Название | Значение | Описание | 
| Content-Type | image/jpeg | Тип возвращаемых данных | 
Тело:
*** Бинарное представление картинки ***Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100/camera/snapshot'/camera/whiteBlack
Методы получения и изменения параметров черно-белого режима видеопотока. Для перехода в цветной и черно-белый режим используется экспозиция.
- Для перехода потока в цветной режим: необходимо значение "exposureCurrent" менее "exposureLight"
- Для перехода потока в черно-белый режим: необходимо значение "exposureCurrent" более  "exposureNight" 
Описание параметров
| Название | Тип | Описание | 
| state | Boolean | Текущее состояние черно-белого режима. | 
| threshold | Object | Пороги переключения черно-белого режима. | 
| exposureCurrent | Integer | Текущее значение экспозиции сенсора. | 
| exposureLight | Integer |    Порог включение цветного режима. - Ограничения: 0 - 4294967295 - По умолчанию: 22000 | 
| exposureNight | Integer | Порог включения черно-белого режима. - Ограничения: 0 - 4294967295 - По умолчанию: 250000 | 
GET - Получение параметров
Ответы
200 OK
Успешное получение данных
Тело:
{
    "state": false,
    "threshold": {
        "exposureCurrent": 100000,
        "exposureLight": 22000,
        "exposureNight": 250000
    }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/camera/whiteBlack'PUT - Изменение параметров
Запрос
Тело:
{
    "threshold": {
        "exposureLight": 22000,
        "exposureNight": 250000
    }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "state": false,
    "threshold": {
        "exposureCurrent": 100000,
        "exposureLight": 22000,
        "exposureNight": 250000
    }
}400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Ошибка получения md настроек: 400 (JSON поле data отсутствует)"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/camera/whiteBlack' \
--data-raw '{
    "threshold": {
        "exposureLight": 22000,
        "exposureNight": 250000
    }
}'/v2/camera/osd
Методы получения и изменения параметров наложения текста на видеопоток (osd).
Видео поток поддерживает отображение до 3-х строк.
Описание параметров
| Название | Тип | Описание | 
| size | Integer | Размер отображаемой информации. | 
| text | String | Отображаемый текст. - Длина строки: 0 - 100 символов | 
| color | String | Цвет osd в hex. | 
| date | Object | Параметры отображения даты. | 
| enable | Boolean | Флаг включения / отключения отображения даты. | 
| format | String | Формат отображаемой даты (форматы). | 
| time | Object | Параметры отображения времени. | 
| enable | Boolean | Флаг включения / отключения отображения времени. | 
| format | String | Формат отображаемового времени (форматы). | 
| position | Object | Параметры смещения текста. | 
| x | Integer | Смещение по оси "X" (пиксели). | 
| y | Integer | Смещение по оси "Y" (пиксели). | 
| background | Object | Параметры отображения фона. | 
| enable | Boolean | Флаг включения / отключения фона. | 
| color | String | Цвет фона в hex. | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
[
    {
        "size": 2,
        "text": "",
        "color": "0xFFFFFF",
        "date": {
            "enable": true,
            "format": "%d-%m-%Y"
        },
        "time": {
            "enable": true,
            "format": "%H:%M:%S"
        },
        "position": {
            "x": 2,
            "y": 10
        },
        "background": {
            "enable": false,
            "color": "0x0053DE"
        }
    },
    ...,
    {
        "size": 1,
        "text": "",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": ""
        },
        "time": {
            "enable": false,
            "format": ""
        },
        "position": {
            "x": 140,
            "y": 0
        },
        "background": {
            "enable": false,
            "color": "0xFFFFFF"
        }
    }
]Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v2/camera/osd'PUT - Изменение параметров
Запрос
Тело:
[
    {
        "size": 1,
        "text": "Строка 1",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": "%d-%m-%Y"
        },
        "time": {
            "enable": false,
            "format": "%H:%M:%S"
        },
        "position": {
            "x": 10,
            "y": 10
        },
        "background": {
            "enable": false,
            "color": "0x000000"
        }
    },
    ...,
    {
        "size": 3,
        "text": "Строка 3",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": ""
        },
        "time": {
            "enable": false,
            "format": ""
        },
        "position": {
            "x": 10,
            "y": 60
        },
        "background": {
            "enable": false,
            "color": "0x000000"
        }
    }
]Ответы
200 OK
Успешное изменение параметров
Тело:
[
    {
        "size": 1,
        "text": "Строка 1",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": "%d-%m-%Y"
        },
        "time": {
            "enable": false,
            "format": "%H:%M:%S"
        },
        "position": {
            "x": 10,
            "y": 10
        },
        "background": {
            "enable": false,
            "color": "0x0053DE"
        }
    },
    ...,
    {
        "size": 3,
        "text": "Строка 3",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": ""
        },
        "time": {
            "enable": false,
            "format": ""
        },
        "position": {
            "x": 10,
            "y": 60
        },
        "background": {
            "enable": false,
            "color": "0xFFFFFF"
        }
    }
]400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Ошибка получения md настроек: 400 (JSON поле data отсутствует)"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v2/camera/osd' \
--data-raw '[
    {
        "size": 1,
        "text": "Строка 1",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": "%d-%m-%Y"
        },
        "time": {
            "enable": false,
            "format": "%H:%M:%S"
        },
        "position": {
            "x": 10,
            "y": 10
        },
        "background": {
            "enable": false,
            "color": "0x0053DE"
        }
    },
    {
        "size": 2,
        "text": "Строка 2",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": ""
        },
        "time": {
            "enable": false,
            "format": ""
        },
        "position": {
            "x": 10,
            "y": 30
        },
        "background": {
            "enable": false,
            "color": "0x000000"
        }
    },
    {
        "size": 3,
        "text": "Строка 3",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": ""
        },
        "time": {
            "enable": false,
            "format": ""
        },
        "position": {
            "x": 10,
            "y": 60
        },
        "background": {
            "enable": false,
            "color": "0xFFFFFF"
        }
    }
]'/v2/camera/picture
Методы получение и изменения параметров картинки видеопотока.
Описание параметров
| Название | Тип | Описание | 
| u8Contr | Integer | Контрастность изображения. - По умолчанию: 50 
 ВАЖНО! - При значении больше 50-ти - контрастность увеличена. - При значении меньше 50-ти - контрастность уменьшена. | 
| u8Luma | Integer | Яркость изображения.  - По умолчанию: 50 
 ВАЖНО! - При значении больше 50-ти - яркость увеличена. - При значении меньше 50-ти - яркость уменьшена. | 
| u8Satu | Integer | Насыщенность изображения. - По умолчанию: 50 
 ВАЖНО! - При значении больше 50-ти - насыщенность увеличена. - При значении меньше 50-ти - насыщенность уменьшена. | 
| u8Hue | Integer | Регулировка оттенка изображения. - По умолчанию: 50 
 ВАЖНО! - При значении больше 50-ти - регулировка изменяется по часовой стрелке: красный имеет синий оттенок, синий имеет зеленый оттенок. - При значении меньше 50-ти - регулировакаи изменяется против часовой стрелки: синий имеет красный оттенок, красный имеет зеленый оттенок. | 
| wb | Object | Параметры баланса белого | 
| u8RGStrength | Integer | |
| u8BGStrength | Integer | |
| dehaze | Object | Параметры устранения дымки. | 
| u8strength | Integer | Интенсивность устранения дымки. 
 ВАЖНО! Чем больше значение, тем больше устранение дымки (влияет на контрастность изображения). | 
| drc | Object | Параметры регулирования динамического диапазона. 
 Соотношение яркости между самым ярким и самым темным объектом. | 
| u16Strength | Integer |       Интенсивность. 
 ВАЖНО! Чем больше значение, тем ярче общее изображение. | 
| u16StrengthMax | Integer |       Граница светлого. 
 ВАЖНО! Чем больше значение, тем больше ярких областей распознается. | 
| u16StrengthMin | Integer |       Граница темного. 
 ВАЖНО! Чем больше значение, тем меньше темных областей распознается. | 
| iso | Object | |
| index | Integer | |
| params | Object | |
| 0-15 | Object | |
| sharpness | Object | |
| au16TextureFreq | Integer | |
| au16EdgeFreq | Integer | |
| au8OverShoot | Integer | |
| au8UnderShoot | Integer | |
| au8DetailCtrl | Integer | |
| au8RGain | Integer | |
| au8GGain | Integer | |
| au8BGain | Integer | |
| au8SkinGain | Integer | |
| au16MaxSharpGain | Integer | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "u8Contr": 42,
    "u8Luma": 52,
    "u8Satu": 52,
    "u8Hue": 50,
    "wb": {
        "u8RGStrength": 128,
        "u8BGStrength": 128
    },
    "dehaze": {
        "u8strength": 125
    },
    "drc": {
        "u16Strength": 100,
        "u16StrengthMax": 127,
        "u16StrengthMin": 0
    },
    "iso": {
        "index": 2,
        "params": {
            "0": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 58,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "1": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 58,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "2": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 55,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "3": {
                "sharpness": {
                    "au16TextureFreq": 215,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 55,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "4": {
                "sharpness": {
                    "au16TextureFreq": 215,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 19,
                    "au8UnderShoot": 53,
                    "au8DetailCtrl": 128,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "5": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 18,
                    "au8UnderShoot": 34,
                    "au8DetailCtrl": 130,
                    "au8RGain": 16,
                    "au8GGain": 45,
                    "au8BGain": 26,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 58
                }
            },
            "6": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 11,
                    "au8UnderShoot": 34,
                    "au8DetailCtrl": 130,
                    "au8RGain": 16,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 42
                }
            },
            "7": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 1,
                    "au8UnderShoot": 34,
                    "au8DetailCtrl": 130,
                    "au8RGain": 26,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 42
                }
            },
            "8": {
                "sharpness": {
                    "au16TextureFreq": 250,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 1,
                    "au8UnderShoot": 28,
                    "au8DetailCtrl": 130,
                    "au8RGain": 8,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 42
                }
            },
            "9": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 24,
                    "au8UnderShoot": 28,
                    "au8DetailCtrl": 116,
                    "au8RGain": 8,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "10": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 40,
                    "au8UnderShoot": 50,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "11": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 40,
                    "au8UnderShoot": 50,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "12": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "13": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "14": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "15": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            }
        }
    }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v2/camera/picture'PUT - Изменение параметров
Запрос
Тело:
{
    "u8Contr": 42,
    "u8Luma": 52,
    "u8Satu": 52,
    "u8Hue": 50,
    "wb": {
        "u8RGStrength": 128,
        "u8BGStrength": 128
    },
    "dehaze": {
        "u8strength": 125
    },
    "drc": {
        "u16Strength": 100,
        "u16StrengthMax": 127,
        "u16StrengthMin": 0
    },
    "iso": {
        "index": 2,
        "params": {
            "0": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 58,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "1": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 58,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "2": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 55,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "3": {
                "sharpness": {
                    "au16TextureFreq": 215,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 55,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "4": {
                "sharpness": {
                    "au16TextureFreq": 215,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 19,
                    "au8UnderShoot": 53,
                    "au8DetailCtrl": 128,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "5": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 18,
                    "au8UnderShoot": 34,
                    "au8DetailCtrl": 130,
                    "au8RGain": 16,
                    "au8GGain": 45,
                    "au8BGain": 26,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 58
                }
            },
            "6": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 11,
                    "au8UnderShoot": 34,
                    "au8DetailCtrl": 130,
                    "au8RGain": 16,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 42
                }
            },
            "7": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 1,
                    "au8UnderShoot": 34,
                    "au8DetailCtrl": 130,
                    "au8RGain": 26,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 42
                }
            },
            "8": {
                "sharpness": {
                    "au16TextureFreq": 250,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 1,
                    "au8UnderShoot": 28,
                    "au8DetailCtrl": 130,
                    "au8RGain": 8,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 42
                }
            },
            "9": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 24,
                    "au8UnderShoot": 28,
                    "au8DetailCtrl": 116,
                    "au8RGain": 8,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "10": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 40,
                    "au8UnderShoot": 50,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "11": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 40,
                    "au8UnderShoot": 50,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "12": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "13": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "14": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "15": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            }
        }
    }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "u8Contr": 42,
    "u8Luma": 52,
    "u8Satu": 52,
    "u8Hue": 50,
    "wb": {
        "u8RGStrength": 128,
        "u8BGStrength": 128
    },
    "dehaze": {
        "u8strength": 125
    },
    "drc": {
        "u16Strength": 100,
        "u16StrengthMax": 127,
        "u16StrengthMin": 0
    },
    "iso": {
        "index": 2,
        "params": {
            "0": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 58,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "1": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 58,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "2": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 55,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "3": {
                "sharpness": {
                    "au16TextureFreq": 215,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 55,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "4": {
                "sharpness": {
                    "au16TextureFreq": 215,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 19,
                    "au8UnderShoot": 53,
                    "au8DetailCtrl": 128,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "5": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 18,
                    "au8UnderShoot": 34,
                    "au8DetailCtrl": 130,
                    "au8RGain": 16,
                    "au8GGain": 45,
                    "au8BGain": 26,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 58
                }
            },
            "6": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 11,
                    "au8UnderShoot": 34,
                    "au8DetailCtrl": 130,
                    "au8RGain": 16,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 42
                }
            },
            "7": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 1,
                    "au8UnderShoot": 34,
                    "au8DetailCtrl": 130,
                    "au8RGain": 26,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 42
                }
            },
            "8": {
                "sharpness": {
                    "au16TextureFreq": 250,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 1,
                    "au8UnderShoot": 28,
                    "au8DetailCtrl": 130,
                    "au8RGain": 8,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 42
                }
            },
            "9": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 24,
                    "au8UnderShoot": 28,
                    "au8DetailCtrl": 116,
                    "au8RGain": 8,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "10": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 40,
                    "au8UnderShoot": 50,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "11": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 40,
                    "au8UnderShoot": 50,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "12": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "13": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "14": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "15": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            }
        }
    }
}400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Ошибка получения md настроек: 400 (JSON поле data отсутствует)"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v2/camera/picture' \
--data-raw '{
    "u8Contr": 42,
    "u8Luma": 52,
    "u8Satu": 52,
    "u8Hue": 50,
    "wb": {
        "u8RGStrength": 128,
        "u8BGStrength": 128
    },
    "dehaze": {
        "u8strength": 125
    },
    "drc": {
        "u16Strength": 100,
        "u16StrengthMax": 127,
        "u16StrengthMin": 0
    },
    "iso": {
        "index": 2,
        "params": {
            "0": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 58,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "1": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 58,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "2": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 55,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "3": {
                "sharpness": {
                    "au16TextureFreq": 215,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 13,
                    "au8UnderShoot": 55,
                    "au8DetailCtrl": 139,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "4": {
                "sharpness": {
                    "au16TextureFreq": 215,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 19,
                    "au8UnderShoot": 53,
                    "au8DetailCtrl": 128,
                    "au8RGain": 28,
                    "au8GGain": 31,
                    "au8BGain": 28,
                    "au8SkinGain": 25,
                    "au16MaxSharpGain": 63
                }
            },
            "5": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 18,
                    "au8UnderShoot": 34,
                    "au8DetailCtrl": 130,
                    "au8RGain": 16,
                    "au8GGain": 45,
                    "au8BGain": 26,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 58
                }
            },
            "6": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 11,
                    "au8UnderShoot": 34,
                    "au8DetailCtrl": 130,
                    "au8RGain": 16,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 42
                }
            },
            "7": {
                "sharpness": {
                    "au16TextureFreq": 183,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 1,
                    "au8UnderShoot": 34,
                    "au8DetailCtrl": 130,
                    "au8RGain": 26,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 42
                }
            },
            "8": {
                "sharpness": {
                    "au16TextureFreq": 250,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 1,
                    "au8UnderShoot": 28,
                    "au8DetailCtrl": 130,
                    "au8RGain": 8,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 42
                }
            },
            "9": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 0,
                    "au8OverShoot": 24,
                    "au8UnderShoot": 28,
                    "au8DetailCtrl": 116,
                    "au8RGain": 8,
                    "au8GGain": 45,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "10": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 40,
                    "au8UnderShoot": 50,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "11": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 40,
                    "au8UnderShoot": 50,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "12": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "13": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "14": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            },
            "15": {
                "sharpness": {
                    "au16TextureFreq": 170,
                    "au16EdgeFreq": 96,
                    "au8OverShoot": 10,
                    "au8UnderShoot": 15,
                    "au8DetailCtrl": 120,
                    "au8RGain": 31,
                    "au8GGain": 31,
                    "au8BGain": 31,
                    "au8SkinGain": 31,
                    "au16MaxSharpGain": 80
                }
            }
        }
    }
}'/v3/camera/osd
Методы получения и изменения параметров наложения текста на видеопоток (osd).
Видео поток поддерживает отображение до 3-х строк.
Описание параметров
| Название | Тип | Описание | 
| size | Integer | Размер отображаемой информации. | 
| text | String | Отображаемый текст. - Длина строки: 0 - 100 символов | 
| color | String | Цвет osd в hex. | 
| date | Object | Параметры отображения даты. | 
| enable | Boolean | Флаг включения / отключения отображения даты. | 
| format | String | Формат отображаемой даты (форматы). | 
| time | Object | Параметры отображения времени. | 
| enable | Boolean | Флаг включения / отключения отображения времени. | 
| format | String | Формат отображаемового времени (форматы). | 
| position | Object | Параметры смещения текста. | 
| x | Integer | Смещение по оси "X" в процентном соотношении. | 
| y | Integer | Смещение по оси "Y" в процентном соотношении. | 
| background | Object | Параметры отображения фона. | 
| enable | Boolean | Флаг включения / отключения фона. | 
| color | String | Цвет фона в hex. | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
[
    {
        "size": 2,
        "text": "",
        "color": "0xFFFFFF",
        "date": {
            "enable": true,
            "format": "%d-%m-%Y"
        },
        "time": {
            "enable": true,
            "format": "%H:%M:%S"
        },
        "position": {
            "x": 2,
            "y": 10
        },
        "background": {
            "enable": false,
            "color": "0x0053DE"
        }
    },
    ...,
    {
        "size": 1,
        "text": "",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": ""
        },
        "time": {
            "enable": false,
            "format": ""
        },
        "position": {
            "x": 140,
            "y": 0
        },
        "background": {
            "enable": false,
            "color": "0xFFFFFF"
        }
    }
]Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v3/camera/osd'PUT - Изменение параметров
Запрос
Тело:
[
    {
        "size": 1,
        "text": "Строка 1",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": "%d-%m-%Y"
        },
        "time": {
            "enable": false,
            "format": "%H:%M:%S"
        },
        "position": {
            "x": 10,
            "y": 10
        },
        "background": {
            "enable": false,
            "color": "0x000000"
        }
    },
    ...,
    {
        "size": 3,
        "text": "Строка 3",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": ""
        },
        "time": {
            "enable": false,
            "format": ""
        },
        "position": {
            "x": 10,
            "y": 60
        },
        "background": {
            "enable": false,
            "color": "0x000000"
        }
    }
]Ответы
200 OK
Успешное изменение параметров
Тело:
[
    {
        "size": 1,
        "text": "Строка 1",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": "%d-%m-%Y"
        },
        "time": {
            "enable": false,
            "format": "%H:%M:%S"
        },
        "position": {
            "x": 10,
            "y": 10
        },
        "background": {
            "enable": false,
            "color": "0x0053DE"
        }
    },
    ...,
    {
        "size": 3,
        "text": "Строка 3",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": ""
        },
        "time": {
            "enable": false,
            "format": ""
        },
        "position": {
            "x": 10,
            "y": 60
        },
        "background": {
            "enable": false,
            "color": "0xFFFFFF"
        }
    }
]400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Ошибка получения md настроек: 400 (JSON поле data отсутствует)"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v3camera/osd' \
--data-raw '[
    {
        "size": 1,
        "text": "Строка 1",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": "%d-%m-%Y"
        },
        "time": {
            "enable": false,
            "format": "%H:%M:%S"
        },
        "position": {
            "x": 10,
            "y": 10
        },
        "background": {
            "enable": false,
            "color": "0x0053DE"
        }
    },
    {
        "size": 2,
        "text": "Строка 2",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": ""
        },
        "time": {
            "enable": false,
            "format": ""
        },
        "position": {
            "x": 10,
            "y": 30
        },
        "background": {
            "enable": false,
            "color": "0x000000"
        }
    },
    {
        "size": 3,
        "text": "Строка 3",
        "color": "0xFFFFFF",
        "date": {
            "enable": false,
            "format": ""
        },
        "time": {
            "enable": false,
            "format": ""
        },
        "position": {
            "x": 10,
            "y": 60
        },
        "background": {
            "enable": false,
            "color": "0xFFFFFF"
        }
    }
]'Коды
/openCode
Методы получения и добавления кодов на устройство.
Описание параметров
| Название | Тип | Описание | 
| code | Integer | Идентификатор "Кода доступа". | 
| panelCode | Integer | Номер квартиры к которой привязан "Код доступа". | 
GET - Получение списка
Ответы
200 OK
Тело:
[
    {
        "code": 12345,
        "panelCode": 0
    }
]Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/openCode'POST - Добавление кода
Запрос
Тело:
{
    "code": 12345,
    "panelCode": 0
}Ответы
201 OK
Успешное добавление кода
Тело:
[
    {
        "code": 12345,
        "panelCode": 0
    }
]400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| field | String | Название переменной к которой относиться ошибка. | 
| message | String | Сообщение об ошибки для поля "field". | 
{
    "errors": [
        {
            "message": "Код 12345 уже существует"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request POST 'http://192.168.0.100:80/openCode' \
--data-raw '{
    "code": 12345,
    "panelCode": 0
}'/openCode/clear
Метод очистки кодов на устройстве.
DELETE - Удаление кодов
Ответы
204 OK
Успешное удаление кодов
Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request DELETE 'http://192.168.0.100:80/openCode/clear'/openCode/{номер квартиры}
Методы получения и изменения кодов у указанной квартиры.
Описание параметров
| Название | Тип | Описание | 
| code | Integer | Идентификатор "Кода доступа". | 
| panelCode | Integer | Номер квартиры к которой привязан "Код доступа". | 
GET - Получение кодов
Ответы
200 OK
Успешное получение списка кодов
Тело:
[
    {
        "code": 12345,
        "panelCode": 0
    }
]400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| field | String | Название переменной к которой относиться ошибка. | 
| message | String | Сообщение об ошибки для поля "field". | 
{
    "errors": [
        {
            "message": "Неверный формат номера квартиры"
        }
    ]
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/openCode/0'DELETE - Удаление кодов
Ответы
204 OK
Успешное удаление кодов для указанной квартиры
400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| field | String | Название переменной к которой относиться ошибка. | 
| message | String | Сообщение об ошибки для поля "field". | 
{
    "errors": [
        {
            "message": "Неверный формат номера квартиры"
        }
    ]
}404 Not Found
Ошибка при удалении не существующих кодов для указанной квартиры
Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request DELETE 'http://192.168.0.100:80/openCode/1'/openCode/{номер квартиры}/{идентификатор кода}
Метод удаления указанного кода для указанной квартиры.
DELETE - Удаление кода
Ответы
204 OK
Успешное удаление кода
400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| field | String | Название переменной к которой относиться ошибка. | 
| message | String | Сообщение об ошибки для поля "field". | 
{
    "errors": [
        {
            "message": "Неверный формат номера квартиры"
        }
    ]
}404 Not Found
Ошибка при удалении не существующего кода для указанной квартиры
Тело:
| Название | Тип | Описание | 
| errors | Object | Массив возвращаемых ошибок. | 
| message | String | Сообщение об ошибке. | 
{
    "errors": [
        {
            "message": "Код в указанной квартире не существует"
        }
    ]
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request DELETE 'http://192.168.0.100:80/openCode/0/12345'/openCode/settings
Метод получения и изменения параметров кодов открытия
Описание параметров
| Название | Тип | Описание | 
| commonCode | Object | |
| enable | Boolean | Флаг включения общего кода По умолчанию: false | 
| value | Integer | Значение общего кода По умолчанию: 0 Ограничения: уникальный код в пределах 10000...99999 | 
GET - Получение параметров
Ответы
200 OK
Успешное получение данных
Тело:
{
    "commonCode": {
        "enable": false,
        "value": 12349
    }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET '192.168.0.100/openCode/settings'PUT - Изменение параметров
Запрос
Тело:
{
    "commonCode": {
        "enable": false,
        "value": 12345
    }
}Ответы
200 OK
Успешное получение данных
Тело:
{
    "commonCode": {
        "enable": false,
        "value": 12345
    }
}400 Bad Requst
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Код 12345 уже существует"
        }
    ]
}
* * *
{
    "errors": [
        {
            "message": "Общий код может быть выбран из диапазона от 10000 до 99999"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT '192.168.0.100/openCode/settings' \
--data '{
    "commonCode": {
        "enable": false,
        "value": 12345
    }
}'DELETE - Удаление параметров
Ответы
204 OK
Успешное удаление общего кода
Примеры
CURL:
curl \
--request DELETE '192.168.0.100/openCode/settings' \Ключи
/key/settings
Методы получение и изменения параметров панели при взаимодействии с ключами.
Описание параметров
| Название | Тип | Описание | 
| inverse_uid_open | Boolean | Режим проверки обратного идентификатора ключа. - По умолчанию: true 
 | 
| any_key_open | Boolean | Режим открытия двери любым ключом. - По умолчанию: true 
 ВАЖНО: При включенном режиме ключи приложенные к считывателю не записываются в базу данных. ВАЖНО: Режим автосбора ключей будет проигнорирован, если включен данный режим. | 
| autocollect | Object | Параметры режима автосбора ключей. | 
| enabled | Boolean | Флаг включения / выключения режима. - По умолчанию: false | 
| room | Integer | Номер квартиры к которой будут привязаны приложенные ключи. - По умолчанию: 0 | 
| keyMask | String | Маска идентификатора ключа - По умолчанию: xxxxxxxxxxxxxx ВАЖНО: На панель будет добавлены только те ключи, которые пройдут маску. | 
| access | Object | Параметры назначаемых доступов добавленных через режим автосбора ключей. | 
| main | Boolean | Доступ на открытие основной двери. - По умолчанию: true | 
| second | Boolean | Доступ на открытие дополнительной двери. - По умолчанию: false | 
| gates | Object | Параметры доступов на открытие внешних модулей NCS-102. | 
| 0-3 | Boolean | Доступ на открытие внешних модулей NCS-102 с адресами 0-3. - По умолчанию: false | 
| encryption | Object | Параметры проверки шифрованных ключей. | 
| enabled | Boolean | Флаг включения / выключения режима. - По умолчанию: false | 
| key_type | String | Тип ключа для авторизации в сектор ключа. - Ограничения: A, B - По умолчанию: A | 
| key_auth | String | Значение ключа для авторизации в сектор ключа. - Длина строки: 12 символов (16-ой системе) - По умолчанию: FFFFFFFFFFFF | 
| sector | Integer | Сектор, который будет проверяться на шифрование. - Ограничения: 0 - 15, 255 - По умолчанию: 255 | 
| increment | Object | Параметры инкрементирования значения в указанном блоке сектора. | 
| enabled | Boolean | Флаг включения / выключения режима. - По умолчанию: false | 
| block | Integer | Блок в котором будет увеличиваться значение инкремента. - Ограничения: 0 - 2 - По умолчанию: 0 | 
| openByError | Boolean | Флаг открытия двери при ошибке инкремента. - По умолчанию: false | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
  "inverse_uid_open": false,
  "any_key_open": false,
  "autocollect": {
    "enabled": true,
    "room": 0,
    "keyMask": "xxxxxxxxxxxxxx",
    "access": {
      "main": true,
      "second": false,
      "gates": {
        "0": false,
        "1": false,
        "2": false,
        "3": false
      }
    }
  },
  "encryption": {
    "increment": {
      "enabled": false,
      "block": null,
      "openByError": false
    },
    "enabled": false,
    "key_type": "A",
    "key_auth": "FFFFFFFFFFFF",
    "sector": 255
  }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/key/settings'PUT - Изменение параметров
Запрос
Тело:
{
  "inverse_uid_open": false,
  "any_key_open": false,
  "autocollect": {
    "enabled": true,
    "room": 0,
    "keyMask": "xxxxxxxxxxxxxx",
    "access": {
      "main": true,
      "second": false,
      "gates": {
        "0": false,
        "1": false,
        "2": false,
        "3": false
      }
    }
  },
  "encryption": {
    "increment": {
      "enabled": false,
      "block": null,
      "openByError": false
    },
    "enabled": false,
    "key_type": "A",
    "key_auth": "FFFFFFFFFFFF",
    "sector": 255
  }
}Ответы
200 OK
Успешное получение параметров
Тело:
{
  "inverse_uid_open": false,
  "any_key_open": false,
  "autocollect": {
    "enabled": true,
    "room": 0,
    "keyMask": "xxxxxxxxxxxxxx",
    "access": {
      "main": true,
      "second": false,
      "gates": {
        "0": false,
        "1": false,
        "2": false,
        "3": false
      }
    }
  },
  "encryption": {
    "increment": {
      "enabled": false,
      "block": null,
      "openByError": false
    },
    "enabled": false,
    "key_type": "A",
    "key_auth": "FFFFFFFFFFFF",
    "sector": 255
  }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/key/settings' \
--data-raw '{
  "inverse_uid_open": false,
  "any_key_open": false,
  "autocollect": {
    "enabled": true,
    "room": 0,
    "keyMask": "xxxxxxxxxxxxxx",
    "access": {
      "main": true,
      "second": false,
      "gates": {
        "0": false,
        "1": false,
        "2": false,
        "3": false
      }
    }
  },
  "encryption": {
    "increment": {
      "enabled": false,
      "block": null,
      "openByError": false
    },
    "enabled": false,
    "key_type": "A",
    "key_auth": "FFFFFFFFFFFF",
    "sector": 255
  }
}'/key/store
Методы получения и добавления ключей.
Описание параметров
| Название | Тип | Описание | 
| uuid | String | Идентификатор ключа. | 
| panelCode | Integer | Номер квартиры к которой привязан ключ. | 
| encryption | Boolean | Флаг включения / выключения персональной проверки шифрования. 
 ВАЖНО! Работает при включенном общем параметре "Проверка шифрования". | 
| access | Object | Флаги доступа ко входам | 
| main | Boolean | Флаг открытия первого входа. | 
| second | Boolean | Флаг открытия второго входа. | 
| gates | Object | Флаги открытия внешних входов. | 
| 0, 1, 2, 3 | Boolean | Флаг открытия внешнего входа. | 
GET - Получение ключей
Ответы
200 OK
Успешное получение списка ключей
Тело:
[
    {
        "uuid": "000000AABBCCDD",
        "panelCode": 1,
        "encryption": true,
        "access": {
            "main": true,
            "second": false,
            "gates": {
                "0": false,
                "1": false,
                "2": false,
                "3": false
            }
        }
    }
]Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/key/store'POST - Добавление ключа
Запрос
Тело:
{
  "uuid": "000000AABBCCDD",
  "panelCode": 1,
  "encryption": true,
  "access": {
    "main": true,
    "second": false,
    "gates": {
      "0": false,
      "1": false,
      "2": false,
      "3": false
    }
  }
}Ответы
200 OK
Успешное добавление ключа
Тело:
[
    {
        "uuid": "000000AABBCCDD",
        "panelCode": 1,
        "encryption": true,
        "access": {
            "main": true,
            "second": false,
            "gates": {
                "0": false,
                "1": false,
                "2": false,
                "3": false
            }
        }
    }
]400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| field | String | Название переменной к которой относиться ошибка. | 
| message | String | Сообщение об ошибки для поля "field". | 
{
    "errors": [
        {
            "message": "Ключ уже существует - 000000AABBCCDD"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request POST 'http://192.168.0.100:80/key/store' \
--data-raw '{
  "uuid": "000000AABBCCDD",
  "panelCode": 1,
  "encryption": true,
  "access": {
    "main": true,
    "second": false,
    "gates": {
      "0": false,
      "1": false,
      "2": false,
      "3": false
    }
  }
}'/key/store/clear
Метод удаления всех ключей.
DELETE - Удаление ключей
Ответы
204 OK
Успешное удаление ключей
Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request DELETE 'http://192.168.0.100:80/key/store/clear'/key/store/merge
Метод изменения указанных ключей.
Описание параметров
| Название | Тип | Описание | 
| uuid | String | Идентификатор ключа. | 
| panelCode | Integer | Номер квартиры к которой привязан ключ. | 
| encryption | Boolean | Флаг включения / выключения персональной проверки шифрования. 
 ВАЖНО! Работает при включенном общем параметре "Проверка шифрования". | 
| access | Object | Флаги доступа ко входам | 
| main | Boolean | Флаг открытия первого входа. | 
| second | Boolean | Флаг открытия второго входа. | 
| gates | Object | Флаги открытия внешних входов. | 
| 0, 1, 2, 3 | Boolean | Флаг открытия внешнего входа. | 
PUT - Изменение ключей
Запрос
Тело:
[
    {
        "uuid": "000000BBCCDDEE",
        "panelCode": 1,
        "encryption": true,
        "access": {
            "main": true,
            "second": false,
            "gates": {
                "0": false,
                "1": false,
                "2": false,
                "3": false
            }
        }
    }
]Ответы
200 OK
Успешное изменение ключей
Тело:
[
  {
    "uuid": "000000AABBCCDD",
    "panelCode": 1,
    "encryption": true,
    "access": {
      "main": true,
      "second": false,
      "gates": {
        "0": false,
        "1": false,
        "2": false,
        "3": false
      }
    }
  },
  {
    "uuid": "000000BBCCDDEE",
    "panelCode": 1,
    "encryption": true,
    "access": {
      "main": true,
      "second": false,
      "gates": {
        "0": false,
        "1": false,
        "2": false,
        "3": false
      }
    }
  }
]400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| field | String | Название переменной к которой относиться ошибка. | 
| message | String | Сообщение об ошибки для поля "field". | 
{
    "errors": [
        {
            "message": "Номер квартиры должен быть от 0 до 9999"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/key/store/merge' \
--data-raw '[
  {
    "uuid": "000000BBCCDDEE",
    "panelCode": 1,
    "encryption": true,
    "access": {
      "main": true,
      "second": false,
      "gates": {
        "0": false,
        "1": false,
        "2": false,
        "3": false
      }
    }
  }
]'/key/store/{идентификатор ключа}
Методы получения и изменения указанного ключа.
Описание параметров
| Название | Тип | Описание | 
| uuid | String | Идентификатор ключа. | 
| panelCode | Integer | Номер квартиры к которой привязан ключ. | 
| encryption | Boolean | Флаг включения / выключения персональной проверки шифрования. 
 ВАЖНО! Работает при включенном общем параметре "Проверка шифрования". | 
| access | Object | Флаги доступа ко входам | 
| main | Boolean | Флаг открытия первого входа. | 
| second | Boolean | Флаг открытия второго входа. | 
| gates | Object | Флаги открытия внешних входов. | 
| 0, 1, 2, 3 | Boolean | Флаг открытия внешнего входа. | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "uuid": "000000AABBCCDD",
    "panelCode": 1,
    "encryption": true,
    "access": {
        "main": true,
        "second": false,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": false
        }
    }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100/key/store/000000AABBCCDD'PUT - Изменение параметров
В прошивках позднее 08.08.2024: если использовать этот метод для ключа, которого нет в БД, то такой ключ будет добавлен в БД
Запрос
Тело:
{
    "uuid": "000000AABBCCDD",
    "panelCode": 1,
    "encryption": true,
    "access": {
        "main": true,
        "second": false,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": false
        }
    }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "uuid": "000000AABBCCDD",
    "panelCode": 1,
    "encryption": true,
    "access": {
        "main": true,
        "second": false,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": false
        }
    }
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/key/store/000000AABBCCDD' \
--data-raw '{
    "uuid": "000000AABBCCDD",
    "panelCode": 1,
    "encryption": true,
    "access": {
        "main": true,
        "second": false,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": false
        }
    }
}'DELETE - Удаление ключа
Ответы
200 OK
Успешное удаление ключа
400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| field | String | Название переменной к которой относиться ошибка. | 
| message | String | Сообщение об ошибки для поля "field". | 
{
    "errors": [
        {
            "field": "uuid",
            "message": "Ключ не является HEX-строкой: 0000000000-123"
        }
    ]
}404 Not Found
Ошибка при удалении не существующего ключа для указанной квартиры
Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request DELETE 'http://192.168.0.100:80/key/store/000000AABBCCDD'/key/{номер квартиры}
Методы для работы с ключами, привязанными к конкретной квартире
Метод не доступен для устройств на прошивке ниже 2.5.0.10.x
DELETE - Удаление ключей конкретной квартиры
Ответы
204 OK
Успешное удаление ключей
400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| field | String | Название переменной к которой относиться ошибка. | 
| message | String | Сообщение об ошибки для поля "field". | 
{
    "errors": [
        {
            "message": "Номер квартиры не найден"
        }
    ]
}404 Not Found
Ошибка при удалении не существующего ключа для указанной квартиры
Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY='
--request DELETE '192.168.1.51/key/34' \/v1/key/markup/mifare
Методы получения и изменения разметки "Mifare" для прошивки ключей.
Описание параметров
| Название | Тип | Описание | 
| enabled | Boolean | Флаг включения / выключения прошивки ключей. - По умолчанию: false | 
| numSectors | Integer | Количество прошиваемых секторов за раз в момент удержания ключа. - Ограничения: 1 - 16 - По умолчанию: 16 | 
| markup | Object | Разметка для прошивки Mifare ключей по протоколу SL1. | 
| 0 - 15 | String | Поддерживаемые сектора для прошивки в ключах. | 
| skip | Object | Параметры пропуска указанного сектора. | 
| err | Boolean | Пропуск сектора при ошибке во время прошивки. - По умолчанию: false | 
| always | Boolean | Пропуск сектора при любых действиях. - По умолчанию: false | 
| key | Object | Параметры авторизации в сектор ключа. | 
| type | String | Тип ключа для авторизации в сектор ключа. - Ограничения: A, B - По умолчанию: A | 
| value | String | Значение ключа для авторизации в сектор ключа. - Длина строки: 12 символов (16-ой системе) - По умолчанию: FFFFFFFFFFFF | 
| 0 - 3 | String | Блоки для указания различной информации. 
 ВАЖНО! Блок под номером 3 является управляющим блоком. Настоятельно рекомендуем ознакомиться с возможными данными для указания в данный блок. | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "enable": false,
    "numSectors": 16,
    "markup": {
        "0": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        ...,
        "15": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        }
    }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/key/markup/mifare'PUT - Изменение параметров
Запрос
Тело:
{
    "enable": false,
    "numSectors": 16,
    "markup": {
        "0": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "1": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "2": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "3": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "4": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "5": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "6": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "7": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "8": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "9": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "10": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "11": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "12": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "13": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "14": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "15": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        }
    }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "enable": false,
    "numSectors": 16,
    "markup": {
        "0": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        ...,
        "15": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        }
    }
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/key/markup/mifare' \
--data-raw '{
    "enable": false,
    "numSectors": 16,
    "markup": {
        "0": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "1": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "2": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "3": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "4": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "5": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "6": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "7": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "8": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "9": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "10": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "11": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "12": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "13": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "14": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        },
        "15": {
            "skip": {
                "err": true,
                "always": true
            },
            "key": {
                "type": "A",
                "value": "FFFFFFFFFFFF"
            },
            "3": null,
            "2": null,
            "1": null,
            "0": null
        }
    }
}'DELETE - Сброс параметров к стандартным
Ответы
204 OK
Успешный сброс параметров
Пример
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/key/markup/mifare'Квартиры
/panelCode
Методы получения и добавления квартир на устройство.
Описание параметров
| Название | Тип | Описание | 
| panelCode | Integer | Номер квартиры. | 
| callsEnabled | Object | Параметры разрешения вызовов в АТ и SIP. | 
| sip | Boolean | Флаг включения / выключения вызовов в SIP. - По умолчанию: true | 
| handset | Boolean | Флаг включения / выключения вызовов в АТ. - По умолчанию: true | 
| soundOpenTh | Boolean | Флаг включения / выключения звука открытия двери при открытии привязанным ключом к квартире. | 
| debtor с версий позже 30.07.2024 | Boolean | Флаг, обозначающий квартиру должника. - По умолчанию: false 
 При включенном оффлайн-ассистенте и установке этого флага, житель этой квартиры будет получать звуковое уведомление из динамика домофона, когда прикладывает свой ключ и ключ открывает дверь. | 
| volumes | Object | Персональные громкости при вызове в квартиру. 
 Важно! Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| thCall | Integer | Громкость мелодии трубки во время вызова в АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| thTalk | Integer | Громкость в трубке во время разговора по АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| uartFrom | Integer | Громкость на панели во время разговора по SIP. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| uartTo | Integer | Усиление микрофона панели во время разговора по SIP. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| panelCall | Integer | Системные звуки панели. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| panelTalk | Integer | Громкость на панели во время разговора по АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| resistances | Object | Параметры сопротивления трубки для смены состояний. 
 Важно! Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| quiescent | Integer | Уровень поднятия трубки. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| answer | Integer | Уровень открытия двери. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
GET - Получение квартир
Ответы
200 OK
Успешное получение квартир
Тело:
[
    {
        "panelCode": 1,
        "callsEnabled": {
            "sip": true,
            "handset": true
        },
        "soundOpenTh": null,
        "debtor": false,
        "volumes": {
            "thCall": null,
            "thTalk": null,
            "uartFrom": null,
            "uartTo": null,
            "panelCall": null,
            "panelTalk": null
        },
        "resistances": {
            "quiescent": null,
            "answer": null
        },
        "sipAccounts": [
            "1"
        ]
    },
    ...,
    {
        "panelCode": 100,
        "callsEnabled": {
            "sip": true,
            "handset": true
        },
        "soundOpenTh": null,
        "debtor": false,
        "volumes": {
            "thCall": null,
            "thTalk": null,
            "uartFrom": null,
            "uartTo": null,
            "panelCall": null,
            "panelTalk": null
        },
        "resistances": {
            "quiescent": null,
            "answer": null
        },
        "sipAccounts": [
            "100"
        ]
    }
]Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/panelCode'POST - Добавление квартиры
Запрос
Тело:
{
    "panelCode": 1,
    "callsEnabled": {
        "sip": false,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Ответы
200 OK
Успешное добавление квартиры
Тело:
{
    "panelCode": 1,
    "callsEnabled": {
        "sip": false,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}400 Bad Request
Ошибка при добавлении существующей квартиры
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| field | String | Название переменной к которой относиться ошибка. | 
| message | String | Сообщение об ошибки для переменной из поля "field". | 
{
    "errors": [
        {
            "field": "panelCode",
            "message": "Квартира уже существует - 1"
        }
    ]
}Примеры
CURL:
curl 
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request POST 'http://192.168.0.100:80/panelCode' \
--data-raw '{
    "panelCode": 1,
    "callsEnabled": {
        "sip": false,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}'/v1/panelCode
Методы получения и добавления квартир на устройство.
Описание параметров
| Название | Тип | Описание | 
| panelCode | Integer | Номер квартиры. | 
| callsEnabled | Object | Параметры разрешения вызовов в АТ и SIP. | 
| sip | Boolean | Флаг включения / выключения вызовов в SIP. - По умолчанию: true | 
| handset | Boolean | Флаг включения / выключения вызовов в АТ. - По умолчанию: true | 
| soundOpenTh | Boolean | Флаг включения / выключения звука открытия двери при открытии привязанным ключом к квартире. | 
| debtor с версий позже 30.07.2024 | Boolean | Флаг, обозначающий квартиру должника. - По умолчанию: false 
 При включенном оффлайн-ассистенте и установке этого флага, житель этой квартиры будет получать звуковое уведомление из динамика домофона, когда прикладывает свой ключ и ключ открывает дверь. | 
| volumes | Object | Персональные громкости при вызове в квартиру. 
 Важно! Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| thCall | Integer | Громкость мелодии трубки во время вызова в АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| thTalk | Integer | Громкость в трубке во время разговора по АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| uartFrom | Integer | Громкость на панели во время разговора по SIP. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| uartTo | Integer | Усиление микрофона панели во время разговора по SIP. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| panelCall | Integer | Системные звуки панели. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| panelTalk | Integer | Громкость на панели во время разговора по АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| resistances | Object | Параметры сопротивления трубки для смены состояний. 
 Важно! Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| quiescent | Integer | Уровень поднятия трубки. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| answer | Integer | Уровень открытия двери. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
GET - Получение квартир
Ответы
200 OK
Успешное получение квартир
Тело:
[
    {
        "panelCode": 1,
        "callsEnabled": {
            "sip": true,
            "handset": true
        },
        "soundOpenTh": null,
        "debtor": false,
        "volumes": {
            "thCall": null,
            "thTalk": null,
            "uartFrom": null,
            "uartTo": null,
            "panelCall": null,
            "panelTalk": null
        },
        "resistances": {
            "quiescent": null,
            "answer": null
        }
    },
    ...,
    {
        "panelCode": 100,
        "callsEnabled": {
            "sip": true,
            "handset": true
        },
        "soundOpenTh": null,
        "debtor": false,
        "volumes": {
            "thCall": null,
            "thTalk": null,
            "uartFrom": null,
            "uartTo": null,
            "panelCall": null,
            "panelTalk": null
        },
        "resistances": {
            "quiescent": null,
            "answer": null
        }
    }
]Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/panelCode'POST - Добавление квартиры
Запрос
Тело:
{
    "panelCode": 1,
    "callsEnabled": {
        "sip": false,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Ответы
200 OK
Успешное добавление квартиры
Тело:
{
    "panelCode": 1,
    "callsEnabled": {
        "sip": false,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}400 Bad Request
Ошибка при добавлении существующей квартиры
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| field | String | Название переменной к которой относиться ошибка. | 
| message | String | Сообщение об ошибки для переменной из поля "field". | 
{
    "errors": [
        {
            "field": "panelCode",
            "message": "Квартира уже существует - 1"
        }
    ]
}Примеры
CURL:
curl 
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request POST 'http://192.168.0.100:80/v1/panelCode' \
--data-raw '{
    "panelCode": 1,
    "callsEnabled": {
        "sip": false,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}'/panelCode/clear
Метод удаления всех квартир с устройства.
DELETE - Удаление квартир
Ответы
204 OK
Успешное удаление квартир
Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request DELETE 'http://192.168.0.100:80/panelCode/clear'/panelCode/settings
Методы получения и изменения параметров "SOS" и "Консьерж".
Описание параметров
| Название | Тип | Описание | 
| consiergeRoom | String | "Номер квартиры" или "SIP аккаунт" на который будет вызов при нажатии на кнопку "Консьерж". - По умолчанию: 999 | 
| sosRoom | String | "Номер квартиры" или "SIP аккаунт" на который будет вызов при нажатии на кнопку "SOS". - По умолчанию: "" | 
| sosDelay | Boolean | Флаг включения / выключения задержки при нажатии кнопки "SOS". - По умолчанию: true | 
| sosDelayTime | Integer | Время которое необходимо удерживать кнопку "SOS" для совершения вызова. - Ограничения: 1 - 10 секунд - По умолчанию: 3 секунды - Для установления значения по умолчанию также можно записать 0 или 255 | 
| sosType | Boolean | Тип отображаемой строки при удержании кнопки "SOS". - true - "112"; - false - "SOS". - По умолчанию: true | 
| soundOpenPanel | Boolean | Флаг включения / выключения звуков открытия и ошибок при прикладывании ключа. - По умолчанию: true | 
| soundOpenTh | Boolean | Флаг включения / выключения звуков открытия при прикладывании ключа привязанного к квартире. - По умолчанию: false | 
| typeSound | Integer | Общий тип эхоподавления используемый для персональных настроек квартир со значением "255" или "null". - Ограничение: 0, 1, 3 - По умолчанию: 3 | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "consiergeRoom": "999",
    "sosRoom": "",
    "sosDelay": true,
    "soundOpenPanel": true,
    "soundOpenTh": false,
    "typeSound": 3,
    "sosType": true,
    "sosDelayTime": 255
}Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/panelCode/settings'PUT - Изменение параметров
Запрос
Тело:
{
    "consiergeRoom": "999",
    "sosRoom": "",
    "sosDelay": true,
    "soundOpenPanel": true,
    "soundOpenTh": false,
    "typeSound": 3,
    "sosType": true,
    "sosDelayTime": 255
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "consiergeRoom": "999",
    "sosRoom": "",
    "sosDelay": true,
    "soundOpenPanel": true,
    "soundOpenTh": false,
    "typeSound": 3,
    "sosType": true,
    "sosDelayTime": 255
}Примеры
CURL:
curl 
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/panelCode/settings' \
--data-raw '{
    "consiergeRoom": "999",
    "sosRoom": "",
    "sosDelay": true,
    "soundOpenPanel": true,
    "soundOpenTh": false,
    "typeSound": 3,
    "sosType": true,
    "sosDelayTime": 255
}'/panelCode/diag
Метод массового замера уровня сопротивления абонентских трубок для указанных квартир.
Описание параметров
| Название | Тип | Описание | 
| 1 - 5 | Object | Номер квартиры к которой относятся данные. | 
| resist | Integer | Значение сопротивления измеренное панелью. - Ограничения: 0 - 255 | 
| status | String | Положение трубки полученное из ограничений общих параметров "quiesence" и "answer" - Ограничения: - down - положенная трубка (зеленый); - up - поднятая трубка (желтый); - error - ошибка при замере (красный). | 
| error | String | Сообщение ошибки при значении "error" в параметре "status". | 
POST - Получение замеров
Запрос
Тело:
[1, 2, 3, 4, 5]Ответы
200 OK
Успешное получение замеров
Тело:
{
    "1": {
        "resist": 75,
        "status": "down"
    },
    "2": {
        "resist": 190,
        "status": "up"
    },
    "3": {
        "resist": 0,
        "status": "error",
        "error": "Обрыв трубки, кв. 3"
    },
    "4": {
        "resist": 0,
        "status": "error",
        "error": "Обрыв трубки, кв. 4"
    },
    "5": {
        "resist": 0,
        "status": "error",
        "error": "Обрыв трубки, кв. 5"
    }
}Примеры
CURL:
curl 
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request POST 'http://192.168.0.100:80/panelCode/diag' \
--data-raw '[1, 2, 3, 4, 5]'/panelCode/{номер квартиры}
Методы получения и изменения персональных параметров квартиры.
Описание параметров
| Название | Тип | Описание | 
| panelCode | Integer | Номер квартиры. | 
| callsEnabled | Object | Параметры разрешения вызовов в АТ и SIP. | 
| sip | Boolean | Флаг включения / выключения вызовов в SIP. - По умолчанию: true | 
| handset | Boolean | Флаг включения / выключения вызовов в АТ. - По умолчанию: true | 
| soundOpenTh | Boolean | Флаг включения / выключения звука открытия двери при открытии привязанным ключом к квартире. | 
| debtor с версий позже 30.07.2024 | Boolean | Флаг, обозначающий квартиру должника. - По умолчанию: false 
 При включенном оффлайн-ассистенте и установке этого флага, житель этой квартиры будет получать звуковое уведомление из динамика домофона, когда прикладывает свой ключ и ключ открывает дверь. | 
| volumes | Object | Персональные громкости при вызове в квартиру. 
 Важно! Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| thCall | Integer | Громкость мелодии трубки во время вызова в АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| thTalk | Integer | Громкость в трубке во время разговора по АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| uartFrom | Integer | Громкость на панели во время разговора по SIP. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| uartTo | Integer | Усиление микрофона панели во время разговора по SIP. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| panelCall | Integer | Системные звуки панели. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| panelTalk | Integer | Громкость на панели во время разговора по АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| resistances | Object | Параметры сопротивления трубки для смены состояний. 
 Важно! Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| quiescent | Integer | Уровень поднятия трубки. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| answer | Integer | Уровень открытия двери. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "panelCode": 1,
    "callsEnabled": {
        "sip": true,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/panelCode/1'PUT - Изменение параметров
Запрос
Тело:
{
    "panelCode": 1,
    "callsEnabled": {
        "sip": true,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "panelCode": 1,
    "callsEnabled": {
        "sip": true,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Примеры
CURL:
curl 
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/panelCode/1' \
--data-raw '{
    "panelCode": 1,
    "callsEnabled": {
        "sip": true,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}'DELETE - Удаление квартиры
Ответы
204 OK
Успешное удаление квартиры
Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request DELETE 'http://192.168.0.100:80/panelCode/1'/v1/panelCode/{номер квартиры}
Методы получения и изменения персональных параметров квартиры.
Описание параметров
| Название | Тип | Описание | 
| panelCode | Integer | Номер квартиры. | 
| callsEnabled | Object | Параметры разрешения вызовов в АТ и SIP. | 
| sip | Boolean | Флаг включения / выключения вызовов в SIP. - По умолчанию: true | 
| handset | Boolean | Флаг включения / выключения вызовов в АТ. - По умолчанию: true | 
| soundOpenTh | Boolean | Флаг включения / выключения звука открытия двери при открытии привязанным ключом к квартире. | 
| debtor с версий позже 30.07.2024 | Boolean | Флаг, обозначающий квартиру должника. - По умолчанию: false 
 При включенном оффлайн-ассистенте и установке этого флага, житель этой квартиры будет получать звуковое уведомление из динамика домофона, когда прикладывает свой ключ и ключ открывает дверь. | 
| volumes | Object | Персональные громкости при вызове в квартиру. 
 Важно! Значения "16" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| thCall | Integer | Громкость мелодии трубки во время вызова в АТ. - Ограничения: 0 - 16, null - По умолчанию: null | 
| thTalk | Integer | Громкость в трубке во время разговора по АТ. - Ограничения: 0 - 16, null - По умолчанию: null | 
| uartFrom | Integer | Громкость на панели во время разговора по SIP. - Ограничения: 0 - 16, null - По умолчанию: null | 
| uartTo | Integer | Усиление микрофона панели во время разговора по SIP. - Ограничения: 0 - 16, null - По умолчанию: null | 
| panelCall | Integer | Системные звуки панели. - Ограничения: 0 - 16, null - По умолчанию: null | 
| panelTalk | Integer | Громкость на панели во время разговора по АТ. - Ограничения: 0 - 16, null - По умолчанию: null | 
| resistances | Object | Параметры сопротивления трубки для смены состояний. 
 Важно! Значения "256" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| quiescent | Integer | Уровень поднятия трубки. - Ограничения: 0 - 256, null - По умолчанию: null | 
| answer | Integer | Уровень открытия двери. - Ограничения: 0 - 256, null - По умолчанию: null | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "panelCode": 1,
    "callsEnabled": {
        "sip": true,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/panelCode/1'PUT - Изменение параметров
Запрос
Тело:
{
    "panelCode": 1,
    "callsEnabled": {
        "sip": true,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "panelCode": 1,
    "callsEnabled": {
        "sip": true,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "typeSound": 3,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Примеры
CURL:
curl 
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/panelCode/1' \
--data-raw '{
    "panelCode": 1,
    "callsEnabled": {
        "sip": true,
        "handset": true
    },
    "soundOpenTh": null,
    "debtor": false,
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}'DELETE - Удаление квартиры
Ответы
204 OK
Успешное удаление квартиры
Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request DELETE 'http://192.168.0.100:80/v1/panelCode/1'/panelCode/{номер квартиры}/levels
Методы получения и изменения персональных уровней громкости и сопротивлений абонентских трубок.
Описание параметров
| Название | Тип | Описание | 
| volumes | Object | Персональные громкости при вызове в квартиру. 
 Важно! Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| thCall | Integer | Громкость мелодии трубки во время вызова в АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| thTalk | Integer | Громкость в трубке во время разговора по АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| uartFrom | Integer | Громкость на панели во время разговора по SIP. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| uartTo | Integer | Усиление микрофона панели во время разговора по SIP. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| panelCall | Integer | Системные звуки панели. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| panelTalk | Integer | Громкость на панели во время разговора по АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| resistances | Object | Параметры сопротивления трубки для смены состояний. 
 Важно! Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| quiescent | Integer | Уровень поднятия трубки. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| answer | Integer | Уровень открытия двери. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/panelCode/1/levels'PUT - Изменение параметров
Запрос
Тело:
{
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Примеры
CURL:
curl 
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/panelCode/1/levels' \
--data-raw '{
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}'/v1/panelCode/{номер квартиры}/levels
Методы получения и изменения персональных уровней громкости и сопротивлений абонентских трубок.
Описание параметров
| Название | Тип | Описание | 
| volumes | Object | Персональные громкости при вызове в квартиру. 
 Важно! Значения "16" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| thCall | Integer | Громкость мелодии трубки во время вызова в АТ. - Ограничения: 0 - 16, null - По умолчанию: null | 
| thTalk | Integer | Громкость в трубке во время разговора по АТ. - Ограничения: 0 - 16, null - По умолчанию: null | 
| uartFrom | Integer | Громкость на панели во время разговора по SIP. - Ограничения: 0 - 16, null - По умолчанию: null | 
| uartTo | Integer | Усиление микрофона панели во время разговора по SIP. - Ограничения: 0 - 16, null - По умолчанию: null | 
| panelCall | Integer | Системные звуки панели. - Ограничения: 0 - 16, null - По умолчанию: null | 
| panelTalk | Integer | Громкость на панели во время разговора по АТ. - Ограничения: 0 - 16, null - По умолчанию: null | 
| resistances | Object | Параметры сопротивления трубки для смены состояний. 
 Важно! Значения "16" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| quiescent | Integer | Уровень поднятия трубки. - Ограничения: 0 - 16, null - По умолчанию: null | 
| answer | Integer | Уровень открытия двери. - Ограничения: 0 - 16, null - По умолчанию: null | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/panelCode/1/levels'PUT - Изменение параметров
Запрос
Тело:
{
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}Примеры
CURL:
curl 
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/panelCode/1/levels' \
--data-raw '{
    "volumes": {
        "thCall": null,
        "thTalk": null,
        "uartFrom": null,
        "uartTo": null,
        "panelCall": null,
        "panelTalk": null
    },
    "resistances": {
        "quiescent": null,
        "answer": null
    }
}'/panelCode/{номер квартиры}/resist
Метод получения уровня сопротивления трубки у указанной квартиры.
Описание параметров
| Название | Тип | Описание | 
| resist | Integer | Значение сопротивления измеренное панелью. - Ограничения: 0 - 255 | 
| status | String | Положение трубки полученное из ограничений общих параметров "quiesence" и "answer" - Ограничения: - down - положенная трубка (зеленый); - up - поднятая трубка (желтый). | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "resist": 3.0,
    "status": "down"
}или
{
    "resist": 7.0,
    "status": "up"
}500 Internal Server Error
Внутренняя ошибка при обработке метода
Тело:
{
    "errors": [
        {
            "message": "Обрыв трубки, кв. 1"
        }
    ]
}Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/panelCode/1/resist'/v1/panelCode/{номер квартиры}/resist
Метод получения уровня сопротивления трубки у указанной квартиры.
Описание параметров
| Название | Тип | Описание | 
| resist | Integer | Значение сопротивления измеренное панелью. - Ограничения: 0 - 255 | 
| status | String | Положение трубки полученное из ограничений общих параметров "quiesence" и "answer" - Ограничения: - down - положенная трубка (зеленый); - up - поднятая трубка (желтый). | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "resist": 3.0,
    "status": "down"
}или
{
    "resist": 7.0,
    "status": "up"
}500 Internal Server Error
Внутренняя ошибка при обработке метода
Тело:
{
    "errors": [
        {
            "message": "Обрыв трубки, кв. 1"
        }
    ]
}Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/panelCode/1/resist'/panelCode/rooms_update
Метод массового обновления параметров указанных квартир.
Описание параметров
| Название | Тип | Описание | 
| panelCode | Integer | Номер квартиры. | 
| callsEnabled | Object | Параметры разрешения вызовов в АТ и SIP. | 
| sip | Boolean | Флаг включения / выключения вызовов в SIP. - По умолчанию: true | 
| handset | Boolean | Флаг включения / выключения вызовов в АТ. - По умолчанию: true | 
| soundOpenTh | Boolean | Флаг включения / выключения звука открытия двери при открытии привязанным ключом к квартире. | 
| typeSound | Integer | Режимы эхоподавления при вызове в АТ.  - Ограничения: 0, 1, 2, 3 - По умолчанию: 3 | 
| volumes | Object | Персональные громкости при вызове в квартиру. 
 Важно! Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| thCall | Integer | Громкость мелодии трубки во время вызова в АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| thTalk | Integer | Громкость в трубке во время разговора по АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| uartFrom | Integer | Громкость на панели во время разговора по SIP. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| uartTo | Integer | Усиление микрофона панели во время разговора по SIP. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| panelCall | Integer | Системные звуки панели. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| panelTalk | Integer | Громкость на панели во время разговора по АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| resistances | Object | Параметры сопротивления трубки для смены состояний. 
 Важно! Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| quiescent | Integer | Уровень поднятия трубки. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| answer | Integer | Уровень открытия двери. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| debtor с версий позже 30.07.2024 | Boolean | Флаг, обозначающий квартиру должника. - По умолчанию: false 
 При включенном оффлайн-ассистенте и установке этого флага, житель этой квартиры будет получать звуковое уведомление из динамика домофона, когда прикладывает свой ключ и ключ открывает дверь. | 
PUT - Обновление параметров
Запрос
Тело:
[
    {
        "panelCode": 1,
        "callsEnabled": {
            "sip": true,
            "handset": true
        },
        "soundOpenTh": null,
        "typeSound": null,
        "volumes": {
            "thCall": null,
            "thTalk": null,
            "uartFrom": null,
            "uartTo": null,
            "panelCall": null,
            "panelTalk": null
        },
        "resistances": {
            "quiescent": null,
            "answer": null
        }
    },
    {
        "panelCode": 2,
        "callsEnabled": {
            "sip": true,
            "handset": true
        },
        "soundOpenTh": null,
        "typeSound": null,
        "volumes": {
            "thCall": null,
            "thTalk": null,
            "uartFrom": null,
            "uartTo": null,
            "panelCall": null,
            "panelTalk": null
        },
        "resistances": {
            "quiescent": null,
            "answer": null
        }
    }
]Ответы
200 OK
Успешное обновление параметров
400 Bad Request
Ошибка при добавлении существующей квартиры
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение об ошибке. | 
{
    "errors": [
        {
            "message": "Не удалось распарсить JSON 15: ']' expected near end of file"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/panelCode/rooms_update' \
--data-raw '[
    {
        "panelCode": 1,
        "callsEnabled": {
            "sip": true,
            "handset": true
        },
        "soundOpenTh": null,
        "typeSound": null,
        "volumes": {
            "thCall": null,
            "thTalk": null,
            "uartFrom": null,
            "uartTo": null,
            "panelCall": null,
            "panelTalk": null
        },
        "resistances": {
            "quiescent": null,
            "answer": null
        }
    },
    {
        "panelCode": 2,
        "callsEnabled": {
            "sip": true,
            "handset": true
        },
        "soundOpenTh": null,
        "typeSound": null,
        "volumes": {
            "thCall": null,
            "thTalk": null,
            "uartFrom": null,
            "uartTo": null,
            "panelCall": null,
            "panelTalk": null
        },
        "resistances": {
            "quiescent": null,
            "answer": null
        }
    }
]'/panelCode/adjustLevels
Метод авто регулировки уровней трубок для указанного диапазона квартир в матрицах ККМ.
Описание параметров
| Название | Тип | Описание | 
| 1, 2, 3 | object | Номер квартиры. | 
| resist | float | Уровень напряжения на абонентской трубке. | 
| status | string | Статус в котором находиться трубка. | 
| error | string | Описание ошибки при замере напряжения. | 
POST - Авто регулировка уровней трубок для диапазона квартир
Запрос
Тело:
| Тип | Описание | 
| Integer[] | Номера квартир по которым необходимо выполнить авто регулировку уровней трубок. | 
[1, 2, 3]Ответы
200 OK
Тело:
{
    "1": {
        "resist": 9.431,
        "status": "up"
    },
    "2": {
        "resist": 3.059,
        "status": "down"
    },
    "3": {
        "resist": 0.0,
        "status": "error",
        "error": "Обрыв трубки, кв. 3"
    }
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request POST 'http://192.168.0.100:80/panelCode/adjustLevels' \
--data-raw '[1, 2, 3]'/panelCode/adjustLevels/all
Метод авто регулировки уровней трубок для всех квартир в матрицах ККМ.
Описание параметров
| Название | Тип | Описание | 
| 1, 2, 3 | object | Номер квартиры. | 
| resist | float | Уровень напряжения на абонентской трубке. | 
| status | string | Статус в котором находиться трубка. | 
| error | string | Описание ошибки при замере напряжения. | 
POST - Авто регулировка уровней трубок для всех квартир
Ответы
200 OK
Тело:
{
    "1": {
        "resist": 9.431,
        "status": "up"
    },
    "2": {
        "resist": 3.059,
        "status": "down"
    },
    "3": {
        "resist": 0.0,
        "status": "error",
        "error": "Обрыв трубки, кв. 3"
    }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ 
--request POST 'http://192.168.0.100:80/panelCode/adjustLevels/all'Калитка
/gate/settings
Методы получение и изменения параметров панели в режиме "Калитка".
Описание параметров
| Название | Тип | Описание | 
| gateMode | Boolean | Флаг включения / выключения режима калитки. - По умолчанию: false | 
| prefixHouse | Boolean | Флаг включения / выключения вызовы с префиксом. - По умолчанию: false | 
| direct | Object | Параметры прямых вызовов с устройства на устройство. | 
| mode | Boolean | Флаг включения / выключения прямых вызовов. - По умолчанию: false | 
| rules | Object | Правила для прямых вызовов. | 
| 0 | String | Префикс дома при вызове. - Ограничения: цифры - По умолчанию: 0 
 ВАЖНО! Если требуются прямые вызовы, но не включен префикс, то всегда указываем 0. В остальных случаях указываем необходимый префикс дома. | 
| 1 - 10 | String | Диапазон квартир при наборе которого будет уходить вызов на указанное устройство. | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "gateMode": false,
    "prefixHouse": false,
    "direct": {
        "mode": false,
        "rules": {
           "0": {
              "1-10": "192.168.0.101"
           }
        }
    }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/gate/settings'PUT - Изменение параметров
Запрос
Тело:
{
    "gateMode": false,
    "prefixHouse": false,
    "direct": {
        "mode": false,
        "rules": {
           "0": {
              "1-10": "192.168.0.101"
           }
        }
    }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "gateMode": false,
    "prefixHouse": false,
    "direct": {
        "mode": false,
        "rules": {
           "0": {
              "1-10": "192.168.0.101"
           }
        }
    }
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/gate/settings' \
--data-raw '{
    "gateMode": false,
    "prefixHouse": false,
    "direct": {
        "mode": false,
        "rules": {}
    }
}'Уровни звука
/levels
Методы получения и изменения общих уровней громкости и сопротивлений абонентских трубок.
Описание параметров
| Название | Тип | Описание | 
| resistances | Object | Параметры сопротивления трубки для смены состояний. 
 Важно! Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| break | Integer | Уровень при неисправности трубки. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| error | Integer | Уровень при обрыве. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| quiescent | Integer | Уровень поднятия трубки. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| answer | Integer | Уровень открытия двери. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| volumes | Object | Персональные громкости при вызове в квартиру. 
 Важно! Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| thTalk | Integer | Громкость в трубке во время разговора по АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| uartFrom | Integer | Громкость на панели во время разговора по SIP. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| uartTo | Integer | Усиление микрофона панели во время разговора по SIP. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| panelCall | Integer | Системные звуки панели. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
| panelTalk | Integer | Громкость на панели во время разговора по АТ. - Ограничения: 0 - 254, 255 или null - По умолчанию: null | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "resistances": {
        "break": 240,
        "error": 105,
        "quiescent": 255,
        "answer": 255
    },
    "volumes": {
        "panelCall": 110,
        "panelTalk": 125,
        "thTalk": 250,
        "thCall": 130,
        "uartFrom": 135,
        "uartTo": 255
    }
}Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/levels'PUT - Изменение параметров
Запрос
Тело:
{
    "resistances": {
        "break": 240,
        "error": 105,
        "quiescent": 255,
        "answer": 255
    },
    "volumes": {
        "panelCall": 110,
        "panelTalk": 125,
        "thTalk": 250,
        "thCall": 130,
        "uartFrom": 135,
        "uartTo": 255
    }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "resistances": {
        "break": 240,
        "error": 105,
        "quiescent": 255,
        "answer": 255
    },
    "volumes": {
        "panelCall": 110,
        "panelTalk": 125,
        "thTalk": 250,
        "thCall": 130,
        "uartFrom": 135,
        "uartTo": 255
    }
}Примеры
CURL:
curl 
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/levels' \
--data-raw '{
    "resistances": {
        "break": 240,
        "error": 105,
        "quiescent": 255,
        "answer": 255
    },
    "volumes": {
        "panelCall": 110,
        "panelTalk": 125,
        "thTalk": 250,
        "thCall": 130,
        "uartFrom": 135,
        "uartTo": 255
    },
    "noise": {
        "line": null
    }
}'/v1/levels
Методы получения и изменения общих уровней громкости и сопротивлений абонентских трубок.
Описание параметров
| Название | Тип | Описание | 
| resistances | Object | Параметры сопротивления трубки для смены состояний. 
 Важно! Значения "256" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| quiescent | Integer | Уровень поднятия трубки. - Ограничения: 0 - 40, null - По умолчанию: null | 
| answer | Integer | Уровень открытия двери. - Ограничения: 0 - 40, null - По умолчанию: null | 
| error | Integer | Уровень ошибки. Если значение вольтажа в линии меньше, чем указанное, панель при замерах либо звонках воспримет как ошибку. - Ограничения: 0 - 65535, null - По умолчанию: null | 
| break | Integer | Уровень обрыва. Если значение вольтажа в линии больше, чем указанное, панель при замерах либо звонках воспримет как обрыв. - Ограничения: 0 - 65535, null - По умолчанию: null | 
| volumes | Object | Персональные громкости при вызове в квартиру. 
 Важно! Значения "16" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир. | 
| thTalk | Integer | Громкость в трубке во время разговора по АТ. - Ограничения: 0 - 16, null - По умолчанию: null | 
| uartFrom | Integer | Громкость на панели во время разговора по SIP. - Ограничения: 0 - 16, null - По умолчанию: null | 
| uartTo | Integer | Усиление микрофона панели во время разговора по SIP. - Ограничения: 0 - 16, null - По умолчанию: null | 
| panelCall | Integer | Системные звуки панели. - Ограничения: 0 - 16, null - По умолчанию: null | 
| panelTalk | Integer | Громкость на панели во время разговора по АТ. - Ограничения: 0 - 16, null - По умолчанию: null | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
  "resistances": {
    "quiescent": null,
    "answer": null
  },
  "volumes": {
    "panelCall": 5,
    "uartFrom": 12,
    "uartTo": 16,
    "panelTalk": 12,
    "thTalk": 4,
    "thCall": 1,
    "thGate": 13
  }
}Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/levels'PUT - Изменение параметров
Запрос
Тело:
{
  "resistances": {
    "quiescent": null,
    "answer": null
  },
  "volumes": {
    "panelCall": 5,
    "uartFrom": 12,
    "uartTo": 16,
    "panelTalk": 12,
    "thTalk": 4,
    "thCall": 1,
    "thGate": 13
  }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
  "resistances": {
    "quiescent": null,
    "answer": null
  },
  "volumes": {
    "panelCall": 5,
    "uartFrom": 12,
    "uartTo": 16,
    "panelTalk": 12,
    "thTalk": 4,
    "thCall": 1,
    "thGate": 13
  }
}Примеры
CURL:
curl 
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/levels' \
--data-raw '{
  "resistances": {
    "quiescent": null,
    "answer": null
  },
  "volumes": {
    "panelCall": 5,
    "uartFrom": 12,
    "uartTo": 16,
    "panelTalk": 12,
    "thTalk": 4,
    "thCall": 1,
    "thGate": 13
  }
}'Логи
/log/last
Метод получения последних 100 строк логов.
GET - Получение логов
Ответы
200 OK
Успешное получение логов
Заголовки:
| Название | Значение | Описание | 
| Content-Type | text/plain | Тип возвращаемых данных | 
Тело:
2023-08-14T13:48:07.458354+05:00 081300000000 UART[1001]: STM32.DEBUG: 07F765003901000003401084846270882020
2023-08-14T13:48:08.976034+05:00 081300000000 API[1037]: Вызов метода: 1 /camera/snapshot [192.168.0.10]
2023-08-14T13:48:08.978101+05:00 081300000000 STREAMER[986]: ProcessRequest with command: make_snapshot
2023-08-14T13:48:09.008538+05:00 081300000000 STREAMER[986]: Make snapshot: save to file 339469 bytes
2023-08-14T13:48:28.977651+05:00 081300000000 API[1037]: Вызов метода: 1 /camera/snapshot [192.168.0.10]
2023-08-14T13:48:28.986152+05:00 081300000000 STREAMER[986]: ProcessRequest with command: make_snapshot
2023-08-14T13:48:29.032053+05:00 081300000000 STREAMER[986]: Make snapshot: save to file 340180 bytes
2023-08-14T13:48:30.961621+05:00 081300000000 API[1037]: Вызов метода: 1 /system/fw_env [192.168.0.10]
2023-08-14T13:48:31.083043+05:00 081300000000 UART[1001]: STM32.DEBUG: 06Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/log/last'/v2/logs/{сервис}
Метод получения логов указанного сервиса.
Список поддерживаемых параметров "{сервис}":
   - all - все логи устройства;
   - api - логи HTTP сервера;
   - uart - логи UART клиента;
   - ddns - логи DDNS клиента;
   - camofon - логи SIP клиента;
   - streamer - логи RTSP сервера;
   - ircut - логи переключения ИК шторки;
   - upgrade - логи обновления устройства.
GET - Получение логов
Ответы
200 OK
Успешное получение логов
Заголовки:
| Название | Значение | Описание | 
| Content-Type | text/plain | Тип возвращаемых данных | 
Тело:
2023-08-14T13:48:07.458354+05:00 081300000000 UART[1001]: STM32.DEBUG: 07F765003901000003401084846270882020
2023-08-14T13:48:08.976034+05:00 081300000000 API[1037]: Вызов метода: 1 /camera/snapshot [192.168.0.10]
2023-08-14T13:48:08.978101+05:00 081300000000 STREAMER[986]: ProcessRequest with command: make_snapshot
2023-08-14T13:48:09.008538+05:00 081300000000 STREAMER[986]: Make snapshot: save to file 339469 bytes
2023-08-14T13:48:28.977651+05:00 081300000000 API[1037]: Вызов метода: 1 /camera/snapshot [192.168.0.10]
2023-08-14T13:48:28.986152+05:00 081300000000 STREAMER[986]: ProcessRequest with command: make_snapshot
2023-08-14T13:48:29.032053+05:00 081300000000 STREAMER[986]: Make snapshot: save to file 340180 bytes
2023-08-14T13:48:30.961621+05:00 081300000000 API[1037]: Вызов метода: 1 /system/fw_env [192.168.0.10]
2023-08-14T13:48:31.083043+05:00 081300000000 UART[1001]: STM32.DEBUG: 06Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v2/log/all'Настройки сети
/v1/network
Методы получения и изменения виртуальных сетевых интерфейсов.
Устройство поддерживает до 3-х виртуальных сетевых интерфейсов.
Описание параметров
| Название | Тип | Описание | 
| inet | String | Тип виртуального сетевого интерфейса. Ограничения: dhcp, static | 
| inetStatic | Object | Параметры для настройки статического виртуального сетевого интерфейса. | 
| netmask | String | Сетевая маска при подключении к сети. - Ограничения: IPv4 адрес - По умолчанию: 255.255.255.0 | 
| gateway | String | Сетевой шлюз при подключении к сети. - Ограничения: IPv4 адрес - По умолчанию: "" | 
| ipAddress | String | IP адрес устройства при подключении к сети. - Ограничения: IPv4 адрес - По умолчанию: 192.168.0.100 | 
| dnsServer | String | IP адрес DNS сервера. - Ограничения: IPv4 адрес - По умолчанию: "" | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
[
    {
        "inet": "dhcp"
    },
    {
        "inet": "static",
        "inetStatic": {
            "netmask": "255.255.255.0",
            "gateway": "",
            "ipAddress": "192.168.0.100",
            "dnsServer": ""
        }
    }
]Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/network'PUT - Изменение параметров
Запрос
Тело:
[
    {
        "inet": "dhcp"
    },
    {
        "inet": "static",
        "inetStatic": {
            "netmask": "255.255.255.0",
            "gateway": "",
            "ipAddress": "192.168.0.100",
            "dnsServer": ""
        }
    }
]Ответы
200 OK
Успешное изменение параметров
Тело:
[
    {
        "inet": "dhcp"
    },
    {
        "inet": "static",
        "inetStatic": {
            "netmask": "255.255.255.0",
            "gateway": "",
            "ipAddress": "192.168.0.100",
            "dnsServer": ""
        }
    }
]Примеры
CURL:
curl 
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/network' \
--data-raw '[
    {
        "inet": "dhcp"
    },
    {
        "inet": "static",
        "inetStatic": {
            "netmask": "255.255.255.0",
            "gateway": "192.168.0.1",
            "ipAddress": "192.168.0.100",
            "dnsServer": "192.168.0.1"
        }
    }
]'DELETE - Сброс к стандартным
Ответы
200 OK
Успешный сброс к стандартным
Тело:
[
    {
        "inet": "dhcp"
    },
    {
        "inet": "static",
        "inetStatic": {
            "netmask": "255.255.255.0",
            "gateway": "",
            "ipAddress": "192.168.0.100",
            "dnsServer": ""
        }
    }
]Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request DELETE 'http://192.168.0.100:80/v1/network'/v1/network/ping
Метод для проверки доступности хоста.
Описание параметров
| Название | Тип | Описание | 
| addr | String | Ip-адрес хоста - Обязательное поле | 
| numberPack | Integer | Число пакетов, которое необходимо отправить указанному адресу - Обязательное поле - Ограничения: [1; 100] | 
| interval | Integer | Интервал между пакетами в мсек - Ограничения: [1; 10000] - По умолчанию: 1000 | 
| sizePack | Integer | Размер пакетов в байтах - Ограничения: [1; 65535] - По умолчанию: 56 | 
| timeout | Integer | Таймаут для пакета - Ограничения: [1; 10] - По умолчанию: 5 | 
PUT - Выполнить команду ping
Запрос
Тело:
{
    "addr": "192.168.0.100",
    "numberPack": 1,
    "interval" : 1000,
    "sizePack" : 39,
    "timeout" : 1
}Ответы
200 OK
Заголовки:
| Название | Значение | Описание | 
| Content-Type | text/html; charset=ISO-8859-1 | Тип возвращаемых данных | 
Тело:
Массив строк - результат выполнения команды
[
    "PING 192.168.0.100 (192.168.0.100): 39 data bytes",
    "47 bytes from 192.168.0.100: seq=0 ttl=64 time=0.207 ms",
    "47 bytes from 192.168.0.100: seq=1 ttl=64 time=0.210 ms",
    "47 bytes from 192.168.0.100: seq=2 ttl=64 time=0.201 ms",
    "47 bytes from 192.168.0.100: seq=3 ttl=64 time=0.201 ms",
    "47 bytes from 192.168.0.100: seq=4 ttl=64 time=0.203 ms",
    "47 bytes from 192.168.0.100: seq=5 ttl=64 time=0.213 ms",
    "--- 192.168.0.100 ping statistics ---",
    "6 packets transmitted, 6 packets received, 0% packet loss",
    "round-trip min/avg/max = 0.201/0.205/0.213 ms"
]400 Bad Request
Ошибка при задании настроек для команд
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение об ошибке. | 
{
    "errors": [
        {
            "message": "Ошибка! Валидация адреса не пройдена"
        }
    ]
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--header 'Content-Type: application/json' \
--request PUT 'http://192.168.0.100:80/v1/network/ping' \
--data-raw '{
    "addr": "192.168.0.100",
    "numberPack": 5,
    "interval" : 1000,
    "sizePack" : 39,
    "timeout" : 1
}'/v1/network/syslog
Метод для задания адреса отправки логов
Описание параметров
| Название | Тип | Описание | 
| addr | String | Адрес сервера для отправки событий - По умолчанию: logserv.sokol | 
| port | Integer | Порт сервер для отправки событий - По умолчанию: 514 | 
| Появится в будущих прошивках | ||
| severity | integer | Уровень логирования - По умолчанию: 6 - Значения: 
 | 
| transport | integer | Транспорт отправки событий - По умолчанию: 1 - Значения: 
 | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "addr": "logserv.sokol",
    "port": 514,
    "severity": 6,
    "transport": 1
}Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
-request GET 'http://192.168.0.100:80/v1/network/syslog'PUT - Изменение параметров
Запрос
Тело:
{
    "addr": "192.168.0.100",
    "port": 514,
    "severity": 6,
    "transport": 1
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "addr": "192.168.0.100",
    "port": 514,
    "severity": 6,
    "transport": 1
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/network/syslog' \
--data-raw '{
    "addr": "192.168.0.100",
    "port": 514,
    "severity": 6,
    "transport": 1
}'/v1/network/traceroute
Метод для отслеживания маршрута данных, которые следуют к указанному хосту
Описание параметров
| Название | Тип | Описание | 
| addr | String | Ip-адрес хоста - Обязательное поле | 
| numberHops | Integer | Максимальное количество переходов - Обязательное поле - Ограничения: 1 - 100 Рекомендуем: проверять доступность маршрута изначально на маленьком числе переходов т.к. если маршрут не доступен то проверка может занимать до нескольких минут. | 
| udpPort | Integer | Порт назначения для запроса - По умолчанию: 33434 | 
| timeout | Integer | Максимальное время ожидания для каждого ответа - Ограничения: 1 - 10 - По умолчанию: 2 | 
PUT - Выполнить команду traceroute
Запрос
Тело:
{
    "addr": "192.168.0.100",
    "numberHops": 1,
    "udpPort" : 33434,
    "timeout" : 1
}Ответы
200 OK
Заголовки:
| Название | Значение | Описание | 
| Content-Type | text/html; charset=ISO-8859-1 | Тип возвращаемых данных | 
Тело: 
Массив строк - результат выполнения команды
[
    "traceroute to 192.168.1.48 (192.168.1.48), 100 hops max, 38 byte packets",
    " 1  192.168.1.48 (192.168.1.48)  0.044 ms  0.056 ms  0.021 ms"
]400 Bad Request
Ошибка при задании настроек для команд
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение об ошибке. | 
{
    "errors": [
        {
            "message": "Ошибка! Валидация адреса не пройдена"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/network/traceroute' \
--data-raw '{
    "addr": "192.168.0.100",
    "numberHops": 1,
    "udpPort" : 33434,
    "timeout" : 1
}'/v1/network/available
Метод получения/установки адреса для проверки доступности сети.
Метод не доступен для устройств на прошивке ниже 2.5.0.12.x
Описание параметров
| Название | Тип | Описание | 
| server | String | Адрес сервера для отправки ping запросов - По умолчанию: null | 
GET - Получение параметров
Ответы
200 OK
Тело:
{
    "server": "192.168.1.100"
}Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
-request GET 'http://192.168.0.100:80/v1/network/available'PUT - Изменение параметров
Запрос
Тело:
{
    "server": "192.168.1.100"
}Ответы
200 OK
Тело:
{
    "server": "192.168.1.100"
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/network/available' \
--data-raw '{
    "server": "192.168.1.100"
}'Уведомления
/v1/notification/forced/list
Метод получения списка аудиофайлов для воспроизведения.
Описание параметров
| Название | Тип | Описание | 
| name | String | Наименование файла. | 
GET - Получение списка
Ответы
200 OK
Успешное получение списка файлов
Тело:
[
    {
        "name": "test.wav"
    }
]Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/notification/forced/list'/v1/notification/forced/play
Метод запуска воспроизведения указанного аудиофайла.
Описание параметров
| Название | Тип | Описание | 
| name | String | Наименование файла для запуска воспроизведения. | 
| repeat | Integer | Количество повторений воспроизведений указанного файла. | 
PUT - Воспроизведения аудио файла
Запрос
Тело:
{
    "name": "test.wav",
    "repeat": 3
}Ответы
200 OK
Успешное воспроизведение аудио файла
Тело:
{
    "name": "test.wav",
    "repeat": 3
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/notification/forced/play' \
--data-raw '{
    "name": "test.wav",
    "repeat": 3
}'/v1/notification/debtor/list
Методы для работы с аудиофайлом для оповещения должников.
Методы данного раздела временно не доступны.
Метод не доступен для устройств на прошивке ниже 2.5.0.10.x
Для оповещения должников об оплате домофона, необходимо: 
   1. включить оффлайн-ассистента;
   2. установить в настройках квартиры флаг "debtor" (задолжник) в состояние "true";
   3. убедиться, что в папке /media/assistant/key/debtor существует файл для воспроизведения;
GET - Получение списка
Ответы
200 OK
Успешное получение списка файлов
Тело:
[
    {
        "name": "1.wav"
    }
]Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/notification/debtor/list'PUT - Изменение файла
Запрос
Заголовки:
| Название | Значение | Описание | 
| Content-Type | audio/wave или audio/wav или audio/x-wav или audio/x-pn-wav | Тип передаваемых данных | 
Тело:
*** Бинарный файл ***Ответы
200 OK
Успешное изменение файла
[
    {
        "name": "1.wav"
    }
]Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--header 'Content-Type: audio/wave' \
--data-binary '@/C:/Downloads/1.wav'
--request PUT 'http://192.168.0.100:80/v1/notification/debtor/list'DELETE - Удаление всех аудиозаписей для должников
Ответы
200 OK
Успешное удаление
Тело:
[]Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request DELETE 'http://192.168.0.100:80/v1/notification/debtor/list'Оповещение
Методы данного раздела временно не доступны.
/v1/notification/alarm
Методы для работы с аудио файлом для речевого оповещения в случае ЧС.
GET - Получение списка
Ответ
200 OK
Успешное получение списка файлов
[
    {
        "isPlay": false,
        "name": "1.wav"
    },
    {
        "isPlay": false,
        "name": "2.wav"
    }
]PUT - Добавление нового файла
Запрос
Заголовки:
| Название | Значение | Описание | 
| Content-Disposition | attachment; filename="filename.wav" | Желаемое имя файла. Поле не обязательное - возможна авто генерация имен | 
| Content-Type | audio/wave или audio/wav или audio/x-wav или audio/x-pn-wav | Тип передаваемых данных | 
Тело:
*** Бинарный файл ***Ответ
200 OK
Успешное добавление файла
[
    {
        "name": "1.wav"
    },
    {
        "name": "2.wav"
    }
]DELETE - Удаление конкретного аудиофайла
Запрос
Заголовки:
| Название | Значение | Описание | 
| Content-Type | application/json 
 | Тип передаваемых данных | 
{
  "name": "1.wav"
}
Ответ
200 OK
Успешное удаление файла
500
Файл отсутствует либо не верный формат json в теле запроса.
/v1/notification/alarm/play
Метод запуска воспроизведения указанного аудио файла.
Воспроизведение происходит непрерывно. Остановка производиться отдельным методом /v1/notification/alarm/stop
PUT - Воспроизведения аудио файла
Запрос
Тело:
{
    "name": "test.wav"
}Ответ
200 OK
/v1/notification/alarm/stop
Метод остановки речевого воспроизведения.
PUT - Остановка текущего воспроизведения аудиофайла
Ассистент
/assistant/settings
Метод получения и изменения параметров оффлайн ассистента.
Метод не доступен для устройств на прошивке ниже 2.5.0.14.0 (включительно).
Описание параметров
| Название | Тип | Описание | 
| assistant | Object | Параметры ассистента | 
| enable | Boolean | Состояние ассистента По умолчанию: true | 
| online | Boolean | Режим ассистента: По умолчанию: true - true: онлайн; - false: оффлайн; | 
| offlineVoice | Object | Параметры оффлайн ассистента | 
| volumes | Object | Параметры громкости | 
| rfVolume | Integer | Общая громкость По умолчанию: 12 Диапазон значений: [0; 15] | 
| bass | Integer | Эквалайзер: низкие частоты По умолчанию: 10 Диапазон значений: [-15; 15] | 
| middle | Integer | Эквалайзер: средние частоты По умолчанию: 10 Диапазон значений: [-15; 15] | 
| treble | Integer | Эквалайзер: высокие частоты По умолчанию: 10 Диапазон значений: [-15; 15] | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
  "assistant": {
    "enable": true,
    "online": true
  },
  "offlineVoice": {
    "volumes": {
      "rfVolume": 12,
      "bass": 10,
      "middle": 10,
      "treble": -15
    }
  }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/assistant/settings'PUT - Изменить параметры
Запрос
Тело:
{
  "assistant": {
    "enable": true,
    "online": true
  },
  "offlineVoice": {
    "volumes": {
      "rfVolume": 12,
      "bass": 10,
      "middle": 10,
      "treble": -15
    }
  }
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
  "assistant": {
    "enable": true,
    "online": true
  },
  "offlineVoice": {
    "volumes": {
      "rfVolume": 12,
      "bass": 10,
      "middle": 10,
      "treble": -15
    }
  }
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/assistant/settings' \
--data-raw '{
  "assistant": {
    "enable": true,
    "online": true
  },
  "offlineVoice": {
    "volumes": {
      "rfVolume": 12,
      "bass": 10,
      "middle": 10,
      "treble": -15
    }
  }
}'DELETE - Сброс параметров
Ответы
200 OK
Успешное изменение параметров
Тело:
{
  "assistant": {
    "enable": true,
    "online": true
  },
  "offlineVoice": {
    "volumes": {
      "rfVolume": 12,
      "bass": 10,
      "middle": 10,
      "treble": -15
    }
  }
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request DELETE 'http://192.168.0.100:80/assistant/settings'Ассистент / Оповещение (работа с локальными файлами)
Методы данного раздела временно не доступны.
Методы для ассистента, речевого оповещения в случае тревоги и задолженности повторяются за исключением самого типа оповещения, который отличается следующими значениями.
тип_оповещения
/assistant/button/neutral - Кнопка открытия двери
/assistant/key/open/neutral - Открытие панели ключом или цифровым кодом
/assistant/key/error/neutral - Ошибка открытия панели ключом или цифровым кодом
/assistant/tamper/alarm - Сработка тампера
/assistant/key/debtor - Оповещение задолжников
/notification/alarm - Речевое оповещение
/notification/forced - Принудительно воспроизвести файл на панели
/v1/{типы_оповещения}
GET - Получение списка файлов / состояние воспроизведения
Ответ
200 OK
Успешное получение списка файлов
[
    "isPlay": false,
    {
        "isPlay": false,
        "name": "1.wav"
    },
    {
        "isPlay": false,
        "name": "2.wav"
    }
]DELETE - Удаление всех файлов данного типа
Ответ
200 OK
Успешное удаление файлов
/v1/{типы_оповещения}/list
GET - Получение списка файлов / состояние воспроизведения
Ответ
200 OK
Успешное получение списка файлов
[
    "isPlay": false,
    {
        "isPlay": false,
        "name": "1.wav"
    },
    {
        "isPlay": false,
        "name": "2.wav"
    }
]DELETE - Удаление файлов по указанному списку
Запрос
Заголовки:
| Название | Значение | Описание | 
| Content-Type | application/json 
 | Тип передаваемых данных | 
["7.wav", "8.wav"]Ответ
200 OK
Успешное удаление файлов
/v1/{типы_оповещения}/file
PUT - Добавление нового файла
Запрос
Заголовки:
| Название | Значение | Описание | 
| Content-Disposition | attachment; filename="filename.wav" | Желаемое имя файла. Поле не обязательное - возможна авто генерация имен | 
| Content-Type | audio/wave или audio/wav или audio/x-wav или audio/x-pn-wav | Тип передаваемых данных | 
Тело:
*** Бинарный файл ***Ответ
200 OK
Успешное добавление файла
[
    {
        "name": "1.wav"
    },
    {
        "name": "2.wav"
    }
]DELETE - Удаление конкретного аудиофайла
Запрос
Заголовки:
| Название | Значение | Описание | 
| Content-Type | application/json 
 | Тип передаваемых данных | 
{
  "name": "1.wav"
}
Ответ
200 OK
Успешное удаление файла
500
Файл отсутствует либо не верный формат json в теле запроса.
Бегущая строка
/panelDisplay/settings
Методы получения и изменения параметров бегущей строки на дисплее.
Описание параметров
| Название | Тип | Описание | 
| speed | Integer | Скорость бегущей сроки в мсек. Например, 500 значит 500 мсек. - По умолчанию: 500 - Ограничения: [50; 1000] | 
| strDisplay | Boolean | Флаг включения / выключения бегущей строки. - По умолчанию: false | 
| imgStr | String | Текст отображения на дисплее. - Длина строки: [0; 99] символов - По умолчанию: "" 
 ВАЖНО! Поддерживается латинский алфавит и цифры ASCII. | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "strDisplay": true,
    "speed": 400,
    "imgStr": "74174"
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/panelDisplay/settings'PUT - Изменить параметры
Запрос
Тело:
{
    "strDisplay": true,
    "speed": 400,
    "imgStr": "74174"
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "strDisplay": true,
    "speed": 400,
    "imgStr": "74174"
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/panelDisplay/settings' \
--data-raw '{
    "strDisplay": true,
    "speed": 400,
    "imgStr": "74174"
}'/v1/display
Методы получения и изменения параметров бегущей строки на дисплее.
Описание параметров
| Название | Тип | Описание | 
| enable | Boolean | Флаг включения / выключения бегущей строки. - По умолчанию: false | 
| text | String | Текст отображения на дисплее. - Длина строки: [0; 99] символов - По умолчанию: "" 
 ВАЖНО! Поддерживается латинский алфавит и цифры ASCII. | 
| speed | Integer | Скорость бегущей сроки в мсек. Например, 500 значит 500 мсек. - По умолчанию: 500 - Ограничения: [50; 1000] | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "enable": true,
    "text": "123456",
    "speed": 1000
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/display'PUT - Изменить параметры
Запрос
Тело:
{
    "enable": true,
    "text": "123456",
    "speed": 1000
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "enable": true,
    "text": "123456",
    "speed": 1000
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/display' \
--data-raw '{
    "enable": true,
    "text": "123456",
    "speed": 1000
}'Реле
/relay/info
Метод получения поддерживаемых номеров реле.
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
[1, 2]Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/relay/info'/relay/settings
Методы получения и изменения общих параметров реле.
Описание параметров
| Название | Тип | Описание | 
| alwaysOpenNetMode | Boolean | Флаг включения / выключения режима открытых дверей при недоступности сети. - По умолчанию: false | 
| alwaysOpen | Boolean | Флаг включения / выключения режима открытых дверей. - По умолчанию: false | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "alwaysOpenNetMode": false,
    "alwaysOpen": false
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/relay/settings'PUT - Изменение параметров
Запрос
Тело:
{
    "alwaysOpenNetMode": false,
    "alwaysOpen": false
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "alwaysOpenNetMode": false,
    "alwaysOpen": false
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/relay/settings' \
--data-raw '{
    "alwaysOpenNetMode": false,
    "alwaysOpen": false
}'/relay/{номер реле}/open
Метод открытия указанного номера реле.
PUT - Открытие реле
Ответы
204 OK
Успешное открытие реле
Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/relay/1/open'/relay/{номер реле}/settings
Методы получения и изменения параметров указанного номера реле.
Описание параметров
| Название | Тип | Описание | 
| switchTime | Integer | Время удержания двери в открытом состоянии. - Ограничения: 1 - 10 секунд - По умолчанию: 1 | 
| alwaysOpen | Boolean | Флаг включения / выключения режима открытых дверей. - По умолчанию: false | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "switchTime": 1,
    "alwaysOpen": false
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/relay/1/settings'PUT - Изменение параметров
Запрос
Тело:
{
    "switchTime": 1
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "switchTime": 1
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/relay/1/settings' \
--data-raw '{
    "switchTime": 1
}'/relay/doors/mapping
Метод для связывания считывателей с доступными для открытия входами/выходами.
Описание параметров
| Название | Тип | Описание | 
| mainReader, extReader0, extReader1, extReader2, extReader3 | Object | mainReader - считыватель на панели. secondReader - дополнительный считыватель. extReader0,1,2,3 - внешние модули входов. | 
| main | Boolean | Флаг открытия первого входа. | 
| second | Boolean | Флаг открытия второго входа. | 
| gates | Object | Флаги открытия внешних входов | 
| 1, 2, 3, 4 | Boolean |    Флаг открытия внешнего входа. | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "mainReader": {
        "main": true,
        "second": false,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": false
        }
    },
    "secondReader": {
        "main": false,
        "second": true,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": false
        }
    },
    ...,
    "extReader3": {
        "main": false,
        "second": false,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": true
        }
    }
}Примеры
CURL:
curl 
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/relay/doors/mapping'PUT - Изменение параметров
Запрос
Тело:
{
    "mainReader": {
        "main": true,
        "second": false,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": false
        }
    },
    "secondReader": {
        "main": false,
        "second": true,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": false
        }
    },
    ...,
    "extReader3": {
        "main": false,
        "second": false,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": true
        }
    }
}Ответы
200 OK
Успешное получение параметров
Тело:
{
    "mainReader": {
        "main": true,
        "second": false,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": false
        }
    },
    "secondReader": {
        "main": false,
        "second": true,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": false
        }
    },
    ...,
    "extReader3": {
        "main": false,
        "second": false,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": true
        }
    }
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/relay/doors/mapping' \
--data '{
    "mainReader": {
        "main": true,
        "second": false,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": false
        }
    },
    "secondReader": {
        "main": false,
        "second": true,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": false
        }
    },
    "extReader0": {
        "main": false,
        "second": false,
        "gates": {
            "0": true,
            "1": false,
            "2": false,
            "3": false
        }
    },
    "extReader1": {
        "main": false,
        "second": false,
        "gates": {
            "0": false,
            "1": true,
            "2": false,
            "3": false
        }
    },
    "extReader2": {
        "main": false,
        "second": false,
        "gates": {
            "0": false,
            "1": false,
            "2": true,
            "3": false
        }
    },
    "extReader3": {
        "main": false,
        "second": false,
        "gates": {
            "0": false,
            "1": false,
            "2": false,
            "3": true
        }
    }
}'/relay/external/{адрес_контроллера}/open
Метод открытия дверей, управляемых внешними контроллерами.
PUT - Открытие реле
Ответы
204 OK
Успешное открытие реле
400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение с ошибкой. | 
{
    "errors": [
        {
            "message": "Контроллер с адресом 0 отключен"
        }
    ]
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/relay/external/1/open'/relay/door_controller
Метод для настройки внешних модулей входов
В данный момент поддерживаются внешние модули входов Beward NCS-102
Описание параметров
| Название | Тип | Описание | Тип запроса | 
| timeout | Integer | Таймаут между посылками в шине Ограничения: 170-1000 мс | GET PUT | 
| busErrors | Integer | Количество ошибок в шине. Сюда записываются ошибки, которые не удалось идентифицировать как ошибки, используемые в реализации протокола. | GET | 
| modules | Array | Массив параметров модулей (4 элемента) | GET PUT | 
| ... | Object | ||
| type | String | Тип модуля. На данный момент поддерживаются только модули Beward NCS-102 | GET | 
| enabled | Boolean | Флаг включения/выключения модуля | GET PUT | 
| address | Integer | Адрес модуля на шине RS-485 Ограничения: 0-3 | GET PUT | 
| version | String | Версия модуля* | GET | 
| openTime | Integer | Время открытия двери Ограничения: 1-9 секунд | GET PUT | 
| button | Boolean | Фактическое** состояние кнопки | GET | 
| tamper | Boolean | Фактическое** состояние тампера | GET | 
| alwaysOpen | Boolean | Состояние режима открытых дверей | GET PUT | 
| * обновляется при каждой перенастройке модулей; через ~10 секунд после каждого запуска |  | ||
| errors | Integer | Количество ошибок, которые удалось идентифицировать как ошибку, отправленную модулем в соответствии с реализованным протоколом | GET | 
| connection | Boolean | Подключение к модулю. Флаг меняется потере и возобновлении связи с модулем или его питания. | GET | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "timeout": 170,
    "busErrors": 0,
    "modules": [
        {
            "type": "NCS102",
            "enabled": true,
            "address": 0,
            "version": "1.2.1.11.5",
            "openTime": 9,
            "button": false,
            "tamper": false,
            "alwaysOpen": false,
            "errors": 0,
            "connection": true
        },
        {
            "type": "NCS102",
            "enabled": true,
            "address": 1,
            "version": "1.2.1.11.5",
            "openTime": 5,
            "button": false,
            "tamper": false,
            "alwaysOpen": false,
            "errors": 0,
            "connection": true
        },
        {
            "type": "NCS102",
            "enabled": true,
            "address": 2,
            "version": "1.2.1.11.5",
            "openTime": 5,
            "button": false,
            "tamper": false,
            "alwaysOpen": false,
            "errors": 0,
            "connection": true
        },
        {
            "type": "NCS102",
            "enabled": true,
            "address": 3,
            "version": "1.2.1.11.5",
            "openTime": 5,
            "button": false,
            "tamper": false,
            "alwaysOpen": false,
            "errors": 0,
            "connection": true
        }
    ]
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/relay/door_controller'
PUT - Изменение параметров
Запрос
Тело:
{
    "timeout": 170,
    "modules": [
        {
            "enabled": true,
            "address": 0,
            "alwaysOpen": false,
            "openTime": 9
        },
        {
            "enabled": true,
            "address": 1,
            "alwaysOpen": false,
            "openTime": 7
        },
        {   
            "enabled": true,
            "address": 2,
            "alwaysOpen": false,
            "openTime": 6
        },
        {
            "enabled": true,
            "address": 3,
            "alwaysOpen": false,
            "openTime": 6
        }
    ]
}
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "timeout": 170,
    "busErrors": 0,
    "modules": [
        {
            "type": "NCS102",
            "enabled": true,
            "address": 0,
            "version": "1.2.1.11.5",
            "openTime": 9,
            "button": false,
            "tamper": false,
            "alwaysOpen": false,
            "errors": 0,
            "connection": true
        },
        {
            "type": "NCS102",
            "enabled": true,
            "address": 1,
            "version": "1.2.1.11.5",
            "openTime": 5,
            "button": false,
            "tamper": false,
            "alwaysOpen": false,
            "errors": 0,
            "connection": true
        },
        {
            "type": "NCS102",
            "enabled": true,
            "address": 2,
            "version": "1.2.1.11.5",
            "openTime": 5,
            "button": false,
            "tamper": false,
            "alwaysOpen": false,
            "errors": 0,
            "connection": true
        },
        {
            "type": "NCS102",
            "enabled": true,
            "address": 3,
            "version": "1.2.1.11.5",
            "openTime": 5,
            "button": false,
            "tamper": false,
            "alwaysOpen": false,
            "errors": 0,
            "connection": true
        }
    ]
}400 Bad Request
Ошибка проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок | 
| message | String | Сообщение с ошибкой | 
{
    "errors": [
        {
            "message": "Адрес должен быть от 0 до 3"
        }
    ]
}Примеры
CURL:
curl  \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/relay/door_controller' \
--data '{
    "timeout": 170,
    "modules": [
        {
            "enabled": true,
            "address": 0,
            "alwaysOpen": false,
            "openTime": 9
        },
        {
            "enabled": true,
            "address": 1,
            "alwaysOpen": false,
            "openTime": 7
        },
        {   
            "enabled": true,
            "address": 2,
            "alwaysOpen": false,
            "openTime": 6
        },
        {
            "enabled": true,
            "address": 3,
            "alwaysOpen": false,
            "openTime": 6
        }
    ]
}'SIP
Обращаем ваше внимание!
Если отсутствует SIP регистрация, то проверьте доступен ли SIP-сервер. А также убедитесь, что IP-адрес, используемый для авторизации, является основным сетевым интерфейсом.
/sip/options
Методы получения и изменения sip-параметров для управления вызовом;
Описание параметров
| Название | Тип | Описание | 
| dtmf | Object | Параметры DTMF для выходов; | 
| 1 | String | Символ необходимый для открытия выхода 1. - Длина: 1 символ - По умолчанию: 1 | 
| 2 | String | Символ необходимый для открытия выхода 2. - Длина: 1 символ - По умолчанию: 2 | 
| callDelay | Integer | Задержка вызова в АТ. - Ограничения: 0 - 255 секунд - По умолчанию: 0 секунд | 
| talkDuration | Integer | Время разговора с момента поднятия трубки в АТ или в SIP. - Ограничения: 1 - 255 секунд - По умолчанию: 180 секунд | 
| ringDuration | Integer | Время совершения вызова до поднятия трубки в АТ или в SIP. - Ограничения: 1 - 255 секунд - По умолчанию: 60 секунд | 
| echoD | Boolean | Флаг включения / выключения алгоритма эхоподавления в SIP. - По умолчанию: true | 
GET - Получение параметров
Ответы
200 OK
Тело:
{
    "dtmf": {
        "1": "1",
        "2": "2"
    },
    "callDelay": 0,
    "talkDuration": 180,
    "ringDuration": 60,
    "echoD": true
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/sip/options'PUT - Изменение параметров
Запрос
Тело:
{
    "dtmf": {
        "1": "1",
        "2": "2"
    },
    "callDelay": 0,
    "talkDuration": 180,
    "ringDuration": 60,
    "echoD": true
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "dtmf": {
        "1": "1",
        "2": "2"
    },
    "callDelay": 0,
    "talkDuration": 180,
    "ringDuration": 60,
    "echoD": true
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/sip/options' \
--data-raw '{
    "dtmf": {
        "1": "1",
        "2": "2"
    },
    "callDelay": 0,
    "talkDuration": 180,
    "ringDuration": 60,
    "echoD": true
}'/sip/settings
Методы получения и изменения sip-параметров для авторизации на сервере.
Описание параметров
| Название | Тип | Описание | 
| videoEnable | Boolean | Флаг включения / выключения видео-потока в видео вызове; - По умолчанию: true | 
| remote | Object | Параметры авторизации на SIP сервере. | 
| port | Integer | Порт сервера на который отправляются вызовы. - По умолчанию: 5060 | 
| domain | String | Адрес сервера на который отправляются вызов. - По умолчанию: domain.com | 
| portRegister | Integer | Порт сервера на который отправляются запросы регистрации. - По умолчанию: 5060 | 
| domainRegister | String | Адрес сервера на который отправляются запросы регистрации. - По умолчанию: domain.com | 
| username | String | Логин для авторизации на сервере. - По умолчанию: "" | 
| password | String | Пароль для авторизации на сервере. - По умолчанию: "" | 
| proxy | Object | Параметры для работы с прокси сервером; | 
| port | Integer | Порт прокси сервера; - По умолчанию: "" | 
| domain | String | Адрес прокси сервера; - По умолчанию: "" | 
| enable | Boolean | Флаг использования прокси сервера; - По умолчанию: false | 
| transport | Object | Протоколы для работы с серверами; | 
| udp | Boolean | Флаг использования UDP; - По умолчанию: true | 
| tcp | Boolean | Флаг использования TCP; - По умолчанию: false | 
| registerStatus | Boolean | Флаг текущего состояния авторизации на сервере. | 
| videoEnable | Boolean | Флаг включения / выключения видео-потока в видео вызове; - По умолчанию: true | 
| videoStreamId | Integer | Идентификатор включения / выключения видео-потока в видео вызове; - По умолчанию: 1 0 - основной поток | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
  "remote": {
    "port": 5060,
    "domain": "domain.com",
    "portRegister": 5060,
    "domainRegister": "domain.com",
    "username": "",
    "password": "",
    "proxy": {
      "port": 5060,
      "domain": "",
      "enable": false
    },
    "transport": {
      "udp": true,
      "tcp": false
    },
    "registerStatus": false
  },
  "videoEnable": true,
  "videoStreamId": 1
}Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/sip/settings'PUT - Изменение параметров
Запрос
Тело:
{
  "remote": {
    "port": 5060,
    "domain": "domain.com",
    "portRegister": 5060,
    "domainRegister": "domain.com",
    "username": "",
    "password": "",
    "proxy": {
      "port": 5060,
      "domain": "",
      "enable": false
    },
    "transport": {
      "udp": true,
      "tcp": false
    },
    "registerStatus": false
  },
  "videoEnable": true,
  "videoStreamId": 1
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
  "remote": {
    "port": 5060,
    "domain": "domain.com",
    "portRegister": 5060,
    "domainRegister": "domain.com",
    "username": "",
    "password": "",
    "proxy": {
      "port": 5060,
      "domain": "",
      "enable": false
    },
    "transport": {
      "udp": true,
      "tcp": false
    },
    "registerStatus": false
  },
  "videoEnable": true,
  "videoStreamId": 1
}Примеры
CURL:
curl 
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/sip/settings' \
--data-raw '{
  "remote": {
    "port": 5060,
    "domain": "domain.com",
    "portRegister": 5060,
    "domainRegister": "domain.com",
    "username": "",
    "password": "",
    "proxy": {
      "port": 5060,
      "domain": "",
      "enable": false
    },
    "transport": {
      "udp": true,
      "tcp": false
    },
    "registerStatus": false
  },
  "videoEnable": true,
  "videoStreamId": 1
}'/sip/test/{номер квартиры}
Метод создания тестового вызова в абонентскую трубку и SIP для указанного номера квартиры.
Описание параметров
С версии прошивки выше 2.5.0.3.2
| Название | Тип | Описание | 
| prefixHouse | Integer | Префикс для калитки. Необходимо указывать, если калитка с префиксом. - Ограничения: 1-65535 | 
GET - Отправка тестового вызова
Ответы
200 OK
Успешная отправка тестового вызова
Тело:
{
    "prefixHouse": 2
}500 Internal Server Error
Внутренняя ошибка при обработке метода
Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/sip/test/1'/sip/test/sip/{номер квартиры}
Метод создания тестового вызова в SIP для указанного номера квартиры.
GET - Отправка тестового вызова
Ответы
200 OK
Успешная отправка тестового вызова
Заголовки:
| Название | Значение | Описание | 
| Content-Type | text/html; charset=ISO-8859-1 | Тип возвращаемых данных | 
Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/sip/test/sip/1'/sip/test/analog/{номер квартиры}
Метод создания тестового вызова в абонентскую трубку для указанного номера квартиры.
GET - Отправка тестового вызова
Ответы
200 OK
Успешная отправка тестового вызова
Заголовки:
| Название | Значение | Описание | 
| Content-Type | text/html; charset=ISO-8859-1 | Тип возвращаемых данных | 
Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/sip/test/analog/1'Вызовы
/v1/call/stop
Метод завершения текущего вызова.
PUT - Завершение вызова
Ответы
200 OK
Успешное завершение вызова
Примеры
CURL:
curl 
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/call/stop'Матрицы
/switch/info/models
Метод получения списка поддерживаемых коммутаторов устройством.
Описание параметров
| Название | Тип | Описание | 
| id | String | Модель поддерживаемового коммутатора. | 
| name | String | Наименование поддерживаемового коммутатора. | 
| eCount | Integer | Количество единиц используемых для коммутации. | 
GET - Получение списка
Ответы
200 OK
Успешное получение списка
Тело:
[
    {
        "id": "FACTORIAL",
        "name": "Факториал",
        "eCount": 8
    },
    {
        "id": "CYFRAL",
        "name": "Цифрал",
        "eCount": 10
    },
    {
        "id": "VIZIT",
        "name": "Визит",
        "eCount": 10
    },
    {
        "id": "METAKOM",
        "name": "Метаком",
        "eCount": 10
    },
    {
        "id": "ELTIS",
        "name": "Элтис",
        "eCount": 10
    }
]Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/switch/info/models'/switch/settings
Методы получения и изменения общих параметров для коммутаторов.
Описание параметров
| Название | Тип | Описание | 
| modelId | String | Модель используемого коммутатора. Метод для получения поддерживаемых коммутаторов: /switch/info/models | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "modelId": "CYFRAL"
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/switch/settings'PUT - Изменение параметров
Запрос
Тело:
{
    "modelId": "CYFRAL"
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "modelId": "CYFRAL"
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/switch/settings' \
--data-raw '{
    "modelId": "CYFRAL"
}'/switch/matrix/{номер матрицы коммутации}
Методы получения и изменения указанной матрицы коммутации.
Панель поддерживает подключение до 3-х коммутаторов:
   - Визит.
Панель поддерживает подключение до 4-х коммутаторов:
   - Элтис;
   - Бевард;
   - Цифрал;
   - Метаком;
   - Факториал.
Описание параметров
| Название | Тип | Описание | 
| capacity | Integer | Размер указанного коммутатора. | 
| matrix | Array | Двумерный массив с номерами квартир для коммутатора. | 
GET - Получение параметров
Ответы
200 OK
Тело:
{
    "capacity": 100,
    "matrix": [
        [
            100,
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9
        ],
        ...,
        [
            90,
            91,
            92,
            93,
            94,
            95,
            96,
            97,
            98,
            99
        ]
    ]
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/switch/matrix/1'PUT - Изменение параметров
Запрос
Тело:
{
    "capacity": 100,
    "matrix": [
        [
            100,
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9
        ],
        [
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19
        ],
        [
            20,
            21,
            22,
            23,
            24,
            25,
            26,
            27,
            28,
            29
        ],
        [
            30,
            31,
            32,
            33,
            34,
            35,
            36,
            37,
            38,
            39
        ],
        [
            40,
            41,
            42,
            43,
            44,
            45,
            46,
            47,
            48,
            49
        ],
        [
            50,
            51,
            52,
            53,
            54,
            55,
            56,
            57,
            58,
            59
        ],
        [
            60,
            61,
            62,
            63,
            64,
            65,
            66,
            67,
            68,
            69
        ],
        [
            70,
            71,
            72,
            73,
            74,
            75,
            76,
            77,
            78,
            79
        ],
        [
            80,
            81,
            82,
            83,
            84,
            85,
            86,
            87,
            88,
            89
        ],
        [
            90,
            91,
            92,
            93,
            94,
            95,
            96,
            97,
            98,
            99
        ]
    ]
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "capacity": 100,
    "matrix": [
        [
            100,
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9
        ],
        [
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19
        ],
        [
            20,
            21,
            22,
            23,
            24,
            25,
            26,
            27,
            28,
            29
        ],
        [
            30,
            31,
            32,
            33,
            34,
            35,
            36,
            37,
            38,
            39
        ],
        [
            40,
            41,
            42,
            43,
            44,
            45,
            46,
            47,
            48,
            49
        ],
        [
            50,
            51,
            52,
            53,
            54,
            55,
            56,
            57,
            58,
            59
        ],
        [
            60,
            61,
            62,
            63,
            64,
            65,
            66,
            67,
            68,
            69
        ],
        [
            70,
            71,
            72,
            73,
            74,
            75,
            76,
            77,
            78,
            79
        ],
        [
            80,
            81,
            82,
            83,
            84,
            85,
            86,
            87,
            88,
            89
        ],
        [
            90,
            91,
            92,
            93,
            94,
            95,
            96,
            97,
            98,
            99
        ]
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/switch/matrix/1' \
--data-raw '{
    "capacity": 100,
    "matrix": [
        [
            100,
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9
        ],
        [
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19
        ],
        [
            20,
            21,
            22,
            23,
            24,
            25,
            26,
            27,
            28,
            29
        ],
        [
            30,
            31,
            32,
            33,
            34,
            35,
            36,
            37,
            38,
            39
        ],
        [
            40,
            41,
            42,
            43,
            44,
            45,
            46,
            47,
            48,
            49
        ],
        [
            50,
            51,
            52,
            53,
            54,
            55,
            56,
            57,
            58,
            59
        ],
        [
            60,
            61,
            62,
            63,
            64,
            65,
            66,
            67,
            68,
            69
        ],
        [
            70,
            71,
            72,
            73,
            74,
            75,
            76,
            77,
            78,
            79
        ],
        [
            80,
            81,
            82,
            83,
            84,
            85,
            86,
            87,
            88,
            89
        ],
        [
            90,
            91,
            92,
            93,
            94,
            95,
            96,
            97,
            98,
            99
        ]
    ]
}'
/v1/switch/models
Метод получения списка поддерживаемых коммутаторов устройством.
Метод не доступен для устройств на прошивке ниже 2.5.0.10.x
Описание параметров
| Название | Тип | Описание | 
| id | String | Модель поддерживаемового коммутатора. | 
| name | String | Наименование поддерживаемового коммутатора. | 
| eCount | Integer | Количество единиц используемых для коммутации. | 
| dCount | Integer | Количество десятков используемых для коммутации. | 
| switchCount | Integer | Количество возможных коммутаторов подключаемых друг в друга. | 
GET - Получение списка
Ответы
200 OK
Успешное получение списка
Тело:
[
    {
        "id": 0,
        "name": "Факториал",
        "eCount": 8,
        "dCount": 0,
        "switchCount": 1
    },
    {
        "id": 1,
        "name": "Цифрал",
        "eCount": 10,
        "dCount": 0,
        "switchCount": 1
    },
    {
        "id": 2,
        "name": "Визит",
        "eCount": 10,
        "dCount": 0,
        "switchCount": 1
    },
    {
        "id": 3,
        "name": "Метаком",
        "eCount": 10,
        "dCount": 0,
        "switchCount": 1
    },
    {
        "id": 4,
        "name": "Элтис",
        "eCount": 10,
        "dCount": 0,
        "switchCount": 1
    },
    {
        "id": 10,
        "name": "Бевард",
        "eCount": 10,
        "dCount": 0,
        "switchCount": 1
    },
    {
        "id": 11,
        "name": "Бевард ККМ-105",
        "eCount": 10,
        "dCount": 10,
        "switchCount": 5
    },
    {
        "id": 12,
        "name": "Бевард ККМ-108",
        "eCount": 10,
        "dCount": 10,
        "switchCount": 8
    },
    {
        "id": 13,
        "name": "Бевард ККМ-100S2",
        "eCount": 10,
        "dCount": 10,
        "switchCount": 1
    },
    {
        "id": 20,
        "name": "Цифрал КМГ-100",
        "eCount": 10,
        "dCount": 10,
        "switchCount": 1
    },
    {
        "id": 30,
        "name": "Элтис КМ100-7.2",
        "eCount": 10,
        "dCount": 10,
        "switchCount": 1
    },
    {
        "id": 40,
        "name": "ДП-К2Д",
        "eCount": 0,
        "dCount": 0,
        "switchCount": 1
    },
    {
        "id": 50,
        "name": "Визит БК-4",
        "eCount": 4,
        "dCount": 1,
        "switchCount": 1
    },
    {
        "id": 51,
        "name": "Визит БК-10",
        "eCount": 10,
        "dCount": 1,
        "switchCount": 1
    },
    {
        "id": 52,
        "name": "Визит БК-100М",
        "eCount": 10,
        "dCount": 10,
        "switchCount": 1
    },
    {
        "id": 60,
        "name": "Метаком COM 80",
        "eCount": 10,
        "dCount": 8,
        "switchCount": 1
    },
    {
        "id": 61,
        "name": "Метаком COM 80 U",
        "eCount": 10,
        "dCount": 8,
        "switchCount": 1
    },
    {
        "id": 62,
        "name": "Метаком COM 80 UD",
        "eCount": 10,
        "dCount": 8,
        "switchCount": 1
    },
    {
        "id": 63,
        "name": "Метаком COM 160 U",
        "eCount": 10,
        "dCount": 16,
        "switchCount": 1
    },
    {
        "id": 64,
        "name": "Метаком COM 160 UD",
        "eCount": 10,
        "dCount": 16,
        "switchCount": 1
    },
    {
        "id": 65,
        "name": "Метаком COM 220 U",
        "eCount": 10,
        "dCount": 22,
        "switchCount": 1
    },
    {
        "id": 66,
        "name": "Метаком COM 220 UD",
        "eCount": 10,
        "dCount": 22,
        "switchCount": 1
    }
]Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/switch/info/models'/v1/switch/{номер матрицы коммутации}
Методы получения и изменения указанной матрицы коммутации.
Метод не доступен для устройств на прошивке ниже 2.5.0.10.x
Панель поддерживает подключение до 3-х коммутаторов:
   - Визит.
Панель поддерживает подключение до 4-х коммутаторов:
   - Элтис;
   - Бевард;
   - Цифрал;
   - Метаком;
   - Факториал.
Описание параметров
| Название | Тип | Описание | 
| type | Integer | Тип используемого коммутатора. | 
| matrices | Array | Список подматриц. | 
| ... | Object | Объект подматрицы. | 
| id | Integer | Номер матрицы. | 
| matrix | Integer | Массив со списками квартир. | 
| capacity | Integer | Количество квартир в матрице. | 
GET - Получение параметров
Ответы
200 OK
Тело:
{
    "type":10,
    "matrices":[
        {
            "id":1,
            "matrix":[
                [10, 1, 2, 3, 4, 5, 6, 7, 8, 9]
            ],
            "capacity":10
        }
    ]
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/switch/1'PUT - Изменение параметров
Запрос
Тело:
{
    "type":10,
    "matrices":[
        {
            "id":1,
            "matrix":[
                [10, 1, 2, 3, 4, 5, 6, 7, 8, 9]
            ],
            "capacity":10
        }
    ]
}Ответы
200 OK
Успешное изменение параметров
Тело:
{
    "type":10,
    "matrices":[
        {
            "id":1,
            "matrix":[
                [10, 1, 2, 3, 4, 5, 6, 7, 8, 9]
            ],
            "capacity":10
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v1/switch/1' \
--data-raw '{
    "type":10,
    "matrices":[
        {
            "id":1,
            "matrix":[
                [10, 1, 2, 3, 4, 5, 6, 7, 8, 9]
            ],
            "capacity":10
        }
    ]
}'Микроконтроллер
/v1/mcu/info
Метод получения информации о микроконтроллере.
Описание параметров
| Название | Тип | Описание | 
| power | Object | Параметры питания панели; | 
| dc | Float | Входное напряжение; | 
| chipId | Integer | Идентификатор микроконтроллера; | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "power": {
        "dc": 12.412
    },
    "chipId": 2321944743649890300
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/mcu/info'Сервисные коды
/serviceCode/settings
Метод получения и изменения параметров сервисного кода для настройки панели через клавиатуру.
Описание параметров
| Название | Тип | Описание | 
| enabled | Boolean | Флаг включения / выключения режима ввода сервисных кодов. - По умолчанию: true | 
| pass | Integer | Код доступа для сервисных функций - По умолчанию: 123456 | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "enabled": true,
    "pass": 874123
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/serviceCode/settings'PUT - Изменение параметров
Запрос
Тело:
{
    "enabled": true,
    "pass": 123456
}Ответы
200 OK
Успешное получение параметров
Тело:
{
    "enabled": true,
    "pass": 123456
}400 Bad Request
Ошибка проверки передаваемых данных
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение об ошибке. | 
{
    "errors": [
        {
            "message": "pass - Значение должно быть в диапазоне от 100000 до 999999"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/serviceCode/settings' \
--data-raw '{
    "enabled": true,
    "pass": 123456
}'Системное
/system/tz
Метод получения поддерживаемых временных зон.
GET - Получение списка
Ответы
200 OK
Успешное получение списка
Тело:
[
    "Africa/Abidjan",
    "Africa/Accra",
    "Africa/Addis_Ababa",
    "Africa/Algiers",
    "Africa/Asmara",
    "Africa/Asmera",
    "Africa/Bamako",
    "Africa/Bangui",
    "Africa/Banjul",
    "Africa/Bissau",
    "Africa/Blantyre",
    "Africa/Brazzaville",
    "Africa/Bujumbura",
    "Africa/Cairo",
    "Africa/Casablanca",
    "Africa/Ceuta",
    "Africa/Conakry",
    "Africa/Dakar",
    "Africa/Dar_es_Salaam",
    "Africa/Djibouti",
    "Africa/Douala",
    "Africa/El_Aaiun",
    "Africa/Freetown",
    "Africa/Gaborone",
    "Africa/Harare",
    "Africa/Johannesburg",
    "Africa/Juba",
    "Africa/Kampala",
    "Africa/Khartoum",
    "Africa/Kigali",
    "Africa/Kinshasa",
    "Africa/Lagos",
    "Africa/Libreville",
    "Africa/Lome",
    "Africa/Luanda",
    "Africa/Lubumbashi",
    "Africa/Lusaka",
    "Africa/Malabo",
    "Africa/Maputo",
    "Africa/Maseru",
    "Africa/Mbabane",
    "Africa/Mogadishu",
    "Africa/Monrovia",
    "Africa/Nairobi",
    "Africa/Ndjamena",
    "Africa/Niamey",
    "Africa/Nouakchott",
    "Africa/Ouagadougou",
    "Africa/Porto-Novo",
    "Africa/Sao_Tome",
    "Africa/Timbuktu",
    "Africa/Tripoli",
    "Africa/Tunis",
    "Africa/Windhoek",
    "America/Adak",
    "America/Anchorage",
    "America/Anguilla",
    "America/Antigua",
    "America/Araguaina",
    "America/Argentina/Buenos_Aires",
    "America/Argentina/Catamarca",
    "America/Argentina/ComodRivadavia",
    "America/Argentina/Cordoba",
    "America/Argentina/Jujuy",
    "America/Argentina/La_Rioja",
    "America/Argentina/Mendoza",
    "America/Argentina/Rio_Gallegos",
    "America/Argentina/Salta",
    "America/Argentina/San_Juan",
    "America/Argentina/San_Luis",
    "America/Argentina/Tucuman",
    "America/Argentina/Ushuaia",
    "America/Aruba",
    "America/Asuncion",
    "America/Atikokan",
    "America/Atka",
    "America/Bahia",
    "America/Bahia_Banderas",
    "America/Barbados",
    "America/Belem",
    "America/Belize",
    "America/Blanc-Sablon",
    "America/Boa_Vista",
    "America/Bogota",
    "America/Boise",
    "America/Buenos_Aires",
    "America/Cambridge_Bay",
    "America/Campo_Grande",
    "America/Cancun",
    "America/Caracas",
    "America/Catamarca",
    "America/Cayenne",
    "America/Cayman",
    "America/Chicago",
    "America/Chihuahua",
    "America/Coral_Harbour",
    "America/Cordoba",
    "America/Costa_Rica",
    "America/Creston",
    "America/Cuiaba",
    "America/Curacao",
    "America/Danmarkshavn",
    "America/Dawson",
    "America/Dawson_Creek",
    "America/Denver",
    "America/Detroit",
    "America/Dominica",
    "America/Edmonton",
    "America/Eirunepe",
    "America/El_Salvador",
    "America/Ensenada",
    "America/Fort_Nelson",
    "America/Fort_Wayne",
    "America/Fortaleza",
    "America/Glace_Bay",
    "America/Godthab",
    "America/Goose_Bay",
    "America/Grand_Turk",
    "America/Grenada",
    "America/Guadeloupe",
    "America/Guatemala",
    "America/Guayaquil",
    "America/Guyana",
    "America/Halifax",
    "America/Havana",
    "America/Hermosillo",
    "America/Indiana/Indianapolis",
    "America/Indiana/Knox",
    "America/Indiana/Marengo",
    "America/Indiana/Petersburg",
    "America/Indiana/Tell_City",
    "America/Indiana/Vevay",
    "America/Indiana/Vincennes",
    "America/Indiana/Winamac",
    "America/Indianapolis",
    "America/Inuvik",
    "America/Iqaluit",
    "America/Jamaica",
    "America/Jujuy",
    "America/Juneau",
    "America/Kentucky/Louisville",
    "America/Kentucky/Monticello",
    "America/Knox_IN",
    "America/Kralendijk",
    "America/La_Paz",
    "America/Lima",
    "America/Los_Angeles",
    "America/Louisville",
    "America/Lower_Princes",
    "America/Maceio",
    "America/Managua",
    "America/Manaus",
    "America/Marigot",
    "America/Martinique",
    "America/Matamoros",
    "America/Mazatlan",
    "America/Mendoza",
    "America/Menominee",
    "America/Merida",
    "America/Metlakatla",
    "America/Mexico_City",
    "America/Miquelon",
    "America/Moncton",
    "America/Monterrey",
    "America/Montevideo",
    "America/Montreal",
    "America/Montserrat",
    "America/Nassau",
    "America/New_York",
    "America/Nipigon",
    "America/Nome",
    "America/Noronha",
    "America/North_Dakota/Beulah",
    "America/North_Dakota/Center",
    "America/North_Dakota/New_Salem",
    "America/Ojinaga",
    "America/Panama",
    "America/Pangnirtung",
    "America/Paramaribo",
    "America/Phoenix",
    "America/Port-au-Prince",
    "America/Port_of_Spain",
    "America/Porto_Acre",
    "America/Porto_Velho",
    "America/Puerto_Rico",
    "America/Punta_Arenas",
    "America/Rainy_River",
    "America/Rankin_Inlet",
    "America/Recife",
    "America/Regina",
    "America/Resolute",
    "America/Rio_Branco",
    "America/Rosario",
    "America/Santa_Isabel",
    "America/Santarem",
    "America/Santiago",
    "America/Santo_Domingo",
    "America/Sao_Paulo",
    "America/Scoresbysund",
    "America/Shiprock",
    "America/Sitka",
    "America/St_Barthelemy",
    "America/St_Johns",
    "America/St_Kitts",
    "America/St_Lucia",
    "America/St_Thomas",
    "America/St_Vincent",
    "America/Swift_Current",
    "America/Tegucigalpa",
    "America/Thule",
    "America/Thunder_Bay",
    "America/Tijuana",
    "America/Toronto",
    "America/Tortola",
    "America/Vancouver",
    "America/Virgin",
    "America/Whitehorse",
    "America/Winnipeg",
    "America/Yakutat",
    "America/Yellowknife",
    "Antarctica/Casey",
    "Antarctica/Davis",
    "Antarctica/DumontDUrville",
    "Antarctica/Macquarie",
    "Antarctica/Mawson",
    "Antarctica/McMurdo",
    "Antarctica/Palmer",
    "Antarctica/Rothera",
    "Antarctica/South_Pole",
    "Antarctica/Syowa",
    "Antarctica/Troll",
    "Antarctica/Vostok",
    "Arctic/Longyearbyen",
    "Asia/Aden",
    "Asia/Almaty",
    "Asia/Amman",
    "Asia/Anadyr",
    "Asia/Aqtau",
    "Asia/Aqtobe",
    "Asia/Ashgabat",
    "Asia/Ashkhabad",
    "Asia/Atyrau",
    "Asia/Baghdad",
    "Asia/Bahrain",
    "Asia/Baku",
    "Asia/Bangkok",
    "Asia/Barnaul",
    "Asia/Beirut",
    "Asia/Bishkek",
    "Asia/Brunei",
    "Asia/Calcutta",
    "Asia/Chita",
    "Asia/Choibalsan",
    "Asia/Chongqing",
    "Asia/Chungking",
    "Asia/Colombo",
    "Asia/Dacca",
    "Asia/Damascus",
    "Asia/Dhaka",
    "Asia/Dili",
    "Asia/Dubai",
    "Asia/Dushanbe",
    "Asia/Famagusta",
    "Asia/Gaza",
    "Asia/Harbin",
    "Asia/Hebron",
    "Asia/Ho_Chi_Minh",
    "Asia/Hong_Kong",
    "Asia/Hovd",
    "Asia/Irkutsk",
    "Asia/Istanbul",
    "Asia/Jakarta",
    "Asia/Jayapura",
    "Asia/Jerusalem",
    "Asia/Kabul",
    "Asia/Kamchatka",
    "Asia/Karachi",
    "Asia/Kashgar",
    "Asia/Kathmandu",
    "Asia/Katmandu",
    "Asia/Khandyga",
    "Asia/Kolkata",
    "Asia/Krasnoyarsk",
    "Asia/Kuala_Lumpur",
    "Asia/Kuching",
    "Asia/Kuwait",
    "Asia/Macao",
    "Asia/Macau",
    "Asia/Magadan",
    "Asia/Makassar",
    "Asia/Manila",
    "Asia/Muscat",
    "Asia/Nicosia",
    "Asia/Novokuznetsk",
    "Asia/Novosibirsk",
    "Asia/Omsk",
    "Asia/Oral",
    "Asia/Phnom_Penh",
    "Asia/Pontianak",
    "Asia/Pyongyang",
    "Asia/Qatar",
    "Asia/Qostanay",
    "Asia/Qyzylorda",
    "Asia/Rangoon",
    "Asia/Riyadh",
    "Asia/Saigon",
    "Asia/Sakhalin",
    "Asia/Samarkand",
    "Asia/Seoul",
    "Asia/Shanghai",
    "Asia/Singapore",
    "Asia/Srednekolymsk",
    "Asia/Taipei",
    "Asia/Tashkent",
    "Asia/Tbilisi",
    "Asia/Tehran",
    "Asia/Tel_Aviv",
    "Asia/Thimbu",
    "Asia/Thimphu",
    "Asia/Tokyo",
    "Asia/Tomsk",
    "Asia/Ujung_Pandang",
    "Asia/Ulaanbaatar",
    "Asia/Ulan_Bator",
    "Asia/Urumqi",
    "Asia/Ust-Nera",
    "Asia/Vientiane",
    "Asia/Vladivostok",
    "Asia/Yakutsk",
    "Asia/Yangon",
    "Asia/Yekaterinburg",
    "Asia/Yerevan",
    "Atlantic/Azores",
    "Atlantic/Bermuda",
    "Atlantic/Canary",
    "Atlantic/Cape_Verde",
    "Atlantic/Faeroe",
    "Atlantic/Faroe",
    "Atlantic/Jan_Mayen",
    "Atlantic/Madeira",
    "Atlantic/Reykjavik",
    "Atlantic/South_Georgia",
    "Atlantic/St_Helena",
    "Atlantic/Stanley",
    "Australia/ACT",
    "Australia/Adelaide",
    "Australia/Brisbane",
    "Australia/Broken_Hill",
    "Australia/Canberra",
    "Australia/Currie",
    "Australia/Darwin",
    "Australia/Eucla",
    "Australia/Hobart",
    "Australia/LHI",
    "Australia/Lindeman",
    "Australia/Lord_Howe",
    "Australia/Melbourne",
    "Australia/NSW",
    "Australia/North",
    "Australia/Perth",
    "Australia/Queensland",
    "Australia/South",
    "Australia/Sydney",
    "Australia/Tasmania",
    "Australia/Victoria",
    "Australia/West",
    "Australia/Yancowinna",
    "Brazil/Acre",
    "Brazil/DeNoronha",
    "Brazil/East",
    "Brazil/West",
    "CET",
    "CST6CDT",
    "Canada/Atlantic",
    "Canada/Central",
    "Canada/Eastern",
    "Canada/Mountain",
    "Canada/Newfoundland",
    "Canada/Pacific",
    "Canada/Saskatchewan",
    "Canada/Yukon",
    "Chile/Continental",
    "Chile/EasterIsland",
    "Cuba",
    "EET",
    "EST",
    "EST5EDT",
    "Egypt",
    "Eire",
    "Etc/GMT",
    "Etc/GMT+0",
    "Etc/GMT+1",
    "Etc/GMT+10",
    "Etc/GMT+11",
    "Etc/GMT+12",
    "Etc/GMT+2",
    "Etc/GMT+3",
    "Etc/GMT+4",
    "Etc/GMT+5",
    "Etc/GMT+6",
    "Etc/GMT+7",
    "Etc/GMT+8",
    "Etc/GMT+9",
    "Etc/GMT-0",
    "Etc/GMT-1",
    "Etc/GMT-10",
    "Etc/GMT-11",
    "Etc/GMT-12",
    "Etc/GMT-13",
    "Etc/GMT-14",
    "Etc/GMT-2",
    "Etc/GMT-3",
    "Etc/GMT-4",
    "Etc/GMT-5",
    "Etc/GMT-6",
    "Etc/GMT-7",
    "Etc/GMT-8",
    "Etc/GMT-9",
    "Etc/GMT0",
    "Etc/Greenwich",
    "Etc/UCT",
    "Etc/UTC",
    "Etc/Universal",
    "Etc/Zulu",
    "Europe/Amsterdam",
    "Europe/Andorra",
    "Europe/Astrakhan",
    "Europe/Athens",
    "Europe/Belfast",
    "Europe/Belgrade",
    "Europe/Berlin",
    "Europe/Bratislava",
    "Europe/Brussels",
    "Europe/Bucharest",
    "Europe/Budapest",
    "Europe/Busingen",
    "Europe/Chisinau",
    "Europe/Copenhagen",
    "Europe/Dublin",
    "Europe/Gibraltar",
    "Europe/Guernsey",
    "Europe/Helsinki",
    "Europe/Isle_of_Man",
    "Europe/Istanbul",
    "Europe/Jersey",
    "Europe/Kaliningrad",
    "Europe/Kiev",
    "Europe/Kirov",
    "Europe/Lisbon",
    "Europe/Ljubljana",
    "Europe/London",
    "Europe/Luxembourg",
    "Europe/Madrid",
    "Europe/Malta",
    "Europe/Mariehamn",
    "Europe/Minsk",
    "Europe/Monaco",
    "Europe/Moscow",
    "Europe/Nicosia",
    "Europe/Oslo",
    "Europe/Paris",
    "Europe/Podgorica",
    "Europe/Prague",
    "Europe/Riga",
    "Europe/Rome",
    "Europe/Samara",
    "Europe/San_Marino",
    "Europe/Sarajevo",
    "Europe/Saratov",
    "Europe/Simferopol",
    "Europe/Skopje",
    "Europe/Sofia",
    "Europe/Stockholm",
    "Europe/Tallinn",
    "Europe/Tirane",
    "Europe/Tiraspol",
    "Europe/Ulyanovsk",
    "Europe/Uzhgorod",
    "Europe/Vaduz",
    "Europe/Vatican",
    "Europe/Vienna",
    "Europe/Vilnius",
    "Europe/Volgograd",
    "Europe/Warsaw",
    "Europe/Zagreb",
    "Europe/Zaporozhye",
    "Europe/Zurich",
    "Factory",
    "GB",
    "GB-Eire",
    "GMT",
    "GMT+0",
    "GMT-0",
    "GMT0",
    "Greenwich",
    "HST",
    "Hongkong",
    "Iceland",
    "Indian/Antananarivo",
    "Indian/Chagos",
    "Indian/Christmas",
    "Indian/Cocos",
    "Indian/Comoro",
    "Indian/Kerguelen",
    "Indian/Mahe",
    "Indian/Maldives",
    "Indian/Mauritius",
    "Indian/Mayotte",
    "Indian/Reunion",
    "Iran",
    "Israel",
    "Jamaica",
    "Japan",
    "Kwajalein",
    "Libya",
    "MET",
    "MST",
    "MST7MDT",
    "Mexico/BajaNorte",
    "Mexico/BajaSur",
    "Mexico/General",
    "NZ",
    "NZ-CHAT",
    "Navajo",
    "PRC",
    "PST8PDT",
    "Pacific/Apia",
    "Pacific/Auckland",
    "Pacific/Bougainville",
    "Pacific/Chatham",
    "Pacific/Chuuk",
    "Pacific/Easter",
    "Pacific/Efate",
    "Pacific/Enderbury",
    "Pacific/Fakaofo",
    "Pacific/Fiji",
    "Pacific/Funafuti",
    "Pacific/Galapagos",
    "Pacific/Gambier",
    "Pacific/Guadalcanal",
    "Pacific/Guam",
    "Pacific/Honolulu",
    "Pacific/Johnston",
    "Pacific/Kiritimati",
    "Pacific/Kosrae",
    "Pacific/Kwajalein",
    "Pacific/Majuro",
    "Pacific/Marquesas",
    "Pacific/Midway",
    "Pacific/Nauru",
    "Pacific/Niue",
    "Pacific/Norfolk",
    "Pacific/Noumea",
    "Pacific/Pago_Pago",
    "Pacific/Palau",
    "Pacific/Pitcairn",
    "Pacific/Pohnpei",
    "Pacific/Ponape",
    "Pacific/Port_Moresby",
    "Pacific/Rarotonga",
    "Pacific/Saipan",
    "Pacific/Samoa",
    "Pacific/Tahiti",
    "Pacific/Tarawa",
    "Pacific/Tongatapu",
    "Pacific/Truk",
    "Pacific/Wake",
    "Pacific/Wallis",
    "Pacific/Yap",
    "Poland",
    "Portugal",
    "ROC",
    "ROK",
    "Singapore",
    "Turkey",
    "UCT",
    "US/Alaska",
    "US/Aleutian",
    "US/Arizona",
    "US/Central",
    "US/East-Indiana",
    "US/Eastern",
    "US/Hawaii",
    "US/Indiana-Starke",
    "US/Michigan",
    "US/Mountain",
    "US/Pacific",
    "US/Pacific-New",
    "US/Samoa",
    "UTC",
    "Universal",
    "W-SU",
    "WET",
    "Zulu"
]Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/system/tz'/system/info
Метод получения системной информации устройства.
Описание параметров
| Название | Тип | Описание | 
| model | String | Название модели используемой камеры. | 
| temperature | Double | Значение температуры процессора камеры. - Нормальная температура до 95°C. | 
| chipId | String | Идентификатор чипа камеры. | 
| mac | String | Мак адрес устройства. | 
| deviceID | String | Серийный номер устройства. | 
| deviceModel | String | Наименование устройства. | 
| uptime | Integer | Время работы устройства. | 
| registerStatus | Boolean | Флаг состояния SIP регистрации. | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "model": "GK7205V300",
    "temperature": 84.68,
    "chipId": "232ae91c800955e300000000000000000000000000000000",
    "mac": "08:53:00:00:00:00",
    "deviceID": "5300000000",
    "deviceModel": "ISCom X1 (rev.5)",
    "uptime": 416,
    "registerStatus": false
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/system/info'/system/load
Метод получения количества свободной и задействованной памяти системой устройства.
Описание параметров
| Название | Тип | Описание | 
| memory | Obejct | Параметры использованной и задействованной памяти системой и приложениями; | 
| system | Object | Параметры памяти системы: | 
| used | Integer | Количество задействованной памяти; | 
| free | Integer | Количество свободной памяти; | 
| services | Object | Параметры использования памяти приложениями; | 
|       api | Object | Наименование приложения | 
| pid | Integer | Номер процессора; | 
| used | Integer | Количество используемой памяти; | 
| processor | Object | Параметры загруженность процессора за: | 
| 1 | Float | 1-у минуту; | 
| 5 | Float | 5-ть минут; | 
| 15 | Float | 15-ть минут; | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
  "memory": {
    "system": {
      "used": 19568,
      "free": 17060
    },
    "services": {
      "api": {
        "pid": 1136,
        "used": 3032
      },
      "uart": {
        "pid": 1093,
        "used": 1056
      },
      "ddns": {
        "pid": 1033,
        "used": 1204
      },
      "streamer": {
        "pid": 1052,
        "used": 7516
      },
      "camofon": {
        "pid": 1115,
        "used": 3628
      },
      "upgrade": {
        "pid": 1156,
        "used": 1056
      },
      "proguard": {
        "pid": 1011,
        "used": 1000
      },
      "ircut": {
        "pid": 1010,
        "used": 728
      }
    }
  },
  "processor": {
    "1": 2.48,
    "5": 2.1,
    "15": 1.11
  }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/system/load'/system/settings
Методы получения и изменения системных настроек.
Описание параметров
| Название | Тип | Описание | 
| log_level | Object | Уровни логирования приложений. | 
| api    uart    streamer store baresip libre | Integer | Уровень логирования приложения:     - 1 - Trace; - По умолчанию: 3 | 
| tz | String | Текущая временная зона (Поддерживаемые зоны). - По умолчанию: Asia/Yekaterinburg | 
| dateTime | String | Текущая дата и время | 
| dns | Object | Параметры DNS серверов 
 ВАЖНО! Является устаревшим, советуем использовать метод /v1/network для получения и изменения сетевых настроек включая сервера dns. | 
| auto | Boolean | Флаг работы с dns серверами. - true - автоматически; - false - в ручную. - По умолчанию: true | 
| nameservers | Array | Массив строк с dns серверами. | 
| ntp | Array | Массив строк с ntp серверами. | 
| assist | Object | Параметры для работы ассистента. | 
| enable | Boolean | Флаг включения / выключения ассистента. - По умолчанию: true | 
| online | Boolean | Флаг переключения онлайн и оффлайн ассистента. - По умолчанию: true 
 ВАЖНО! Онлайн ассистент подразумевает входящие вызовы на панель при реагировании на различные события в логах. | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "log_level": {
        "api": 3,
        "uart": 3,
        "camofon": 3,
        "streamer": 3,
        "proguard": 3,
        "store": 3,
        "baresip": 3,
        "libre": 3
    },
    "tz": "Asia/Yekaterinburg",
    "dateTime": "2024-06-06T13:21:38+0500",
    "dns": {
        "auto": true,
        "nameservers": [
            "78.29.2.21",
            "78.29.2.22"
        ]
    },
    "ntp": [
        "0.pool.ntp.org",
        "1.pool.ntp.org",
        "time.is74.ru"
    ],
    "assist": {
        "enable": true,
        "online": true
    }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/system/settings'PUT - Изменение параметров
Запрос
Тело:
{
    "log_level": {
        "api": 3,
        "uart": 3,
        "camofon": 3,
        "streamer": 3,
        "proguard": 3,
        "store": 3,
        "baresip": 3,
        "libre": 3
    },
    "tz": "UTC",
    "dns": {
        "auto": true,
        "nameservers": [
            "78.29.2.21",
            "78.29.2.22"
        ]
    },
    "ntp": [
        "0.pool.ntp.org",
        "1.pool.ntp.org",
        "10.100.12.14"
    ],
    "assist": {
        "enable": true,
        "online": true
    }
}Ответы
200 OK
Успешное получение параметров
Тело:
{
    "log_level": {
        "api": 3,
        "uart": 3,
        "camofon": 3,
        "streamer": 3,
        "proguard": 3,
        "store": 3,
        "baresip": 3,
        "libre": 3
    },
    "tz": "Asia/Yekaterinburg",
    "dateTime": "2024-06-06T13:21:38+0500",
    "dns": {
        "auto": true,
        "nameservers": [
            "78.29.2.21",
            "78.29.2.22"
        ]
    },
    "ntp": [
        "0.pool.ntp.org",
        "1.pool.ntp.org",
        "time.is74.ru"
    ],
    "assist": {
        "enable": true,
        "online": true
    }
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/system/settings' \
--data-raw '{
    "log_level": {
        "api": 3,
        "uart": 3,
        "camofon": 3,
        "streamer": 3,
        "proguard": 3,
        "store": 3,
        "baresip": 3,
        "libre": 3
    },
    "tz": "UTC",
    "dns": {
        "auto": true,
        "nameservers": [
            "78.29.2.21",
            "78.29.2.22"
        ]
    },
    "ntp": [
        "0.pool.ntp.org",
        "1.pool.ntp.org",
        "10.100.12.14"
    ],
    "assist": {
        "enable": true,
        "online": true
    }
}'/system/fw_env
Метод получения MAC-адреса устройства.
Описание параметров
| Название | Тип | Описание | 
| ethaddr | String | MAC адрес устройства | 
GET - Получение параметров
Ответы
200 OK
Успешное получение параметров
Тело:
{
    "ethaddr": "08:53:00:00:00:00"
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/system/fw_env'/system/backup
Метод создания резервной копии устройства.
Для восстановление резервной копии используется метод:
   /system/restore или /system/restore/ftp
GET - Создание резервной копии
Ответы
200 OK
Успешное создание резервной копии
Заголовки:
| Название | Значение | Описание | 
| Content-Type | application/octet-stream | Тип возвращаемых данных | 
| Content-Disposition | attachment; filename="backup-08:13:00:00:00:00.bin" | Формат возвращаемых данных | 
Тело:
*** Бинарное представление файла ***Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/system/backup'/system/backup/ftp
Метод создания резервной копии устройства с отправкой файла на FTP сервер.
Метод не доступен для устройств на прошивке ниже 2.5.0.10.x
Для восстановление резервной копии используется метод:
   /system/restore или /system/restore/ftp
Описание параметров
| Название | Тип | Описание | 
| server | String | Сервер и порт для скачивания файла резервной копии | 
| auth | Object | Данные для авторизации на сервере | 
|    username | String | Логин | 
|    password | String | Пароль | 
| path | String | Путь к папке на сервере | 
| name | String | Название файла в папке | 
PUT - Создание резервной копии
Запрос
Тело:
{
    "server": "192.168.0.100:21",
    "auth": {
        "username": "username",
        "password": "password"
    },
    "path": "",
    "name": "backup.bin"
}Ответы
200 OK
Успешное создание резервной копии
Заголовки:
| Название | Значение | Описание | 
| Content-Type | text/html; charset=ISO-8859-1 | Тип возвращаемых данных | 
Примеры
CURL:
curl \
--header 'Content-Type: application/octet-stream' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/system/backup/ftp' \
--data-raw '{
    "server": "192.168.0.100:21",
    "auth": {
        "username": "username",
        "password": "password"
    },
    "path": "",
    "name": "backup.bin"
}'/system/restore
Метод восстановления резервной копии устройства.
Для создания резервной копии используется метод:
   /system/backup или /system/backup/ftp
PUT - Восстановление резервной копии
Запрос
Заголовки:
| Название | Значение | Описание | 
| Content-Type | application/octet-stream | Тип передаваемых данных | 
Тело:
*** Бинарный файл ***Ответы
200 OK
Успешное восстановление резервной копии
Заголовки:
| Название | Значение | Описание | 
| Content-Type | text/html; charset=ISO-8859-1 | Тип возвращаемых данных | 
Примеры
CURL:
curl \
--header 'Content-Type: application/octet-stream' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/system/restore' \
--data-binary './backup-08_13_00_00_00_00.bin'/system/restore/ftp
Метод восстановления резервной копии устройства со скачиванием файла с FTP сервера.
Метод не доступен для устройств на прошивке ниже 2.5.0.10.x
Для создания резервной копии используется метод:
   /system/backup или /system/backup/ftp
Описание параметров
| Название | Тип | Описание | 
| server | String | Сервер и порт для скачивания файла резервной копии | 
| auth | Object | Данные для авторизации на сервере | 
|    username | String | Логин | 
|    password | String | Пароль | 
| path | String | Путь к папке на сервере | 
| name | String | Название файла в папке | 
PUT - Восстановление резервной копии
Запрос
Тело:
{
    "server": "192.168.0.100:21",
    "auth": {
        "username": "username",
        "password": "password"
    },
    "path": "",
    "name": "backup.bin"
}Ответы
200 OK
Успешное восстановление резервной копии
Заголовки:
| Название | Значение | Описание | 
| Content-Type | text/html; charset=ISO-8859-1 | Тип возвращаемых данных | 
Примеры
CURL:
curl \
--header 'Content-Type: application/octet-stream' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/system/restore/ftp' \
--data-raw '{
    "server": "192.168.0.100:21",
    "auth": {
        "username": "username",
        "password": "password"
    },
    "path": "",
    "name": "backup.bin"
}'/system/reboot
Метод перезагрузки устройства.
PUT - Перезагрузка устройства
Ответы
200 OK
Успешная перезагрузка устройства
Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/system/reboot'/system/restart/{сервис}
Метод перезапуска указанного сервиса.
Список поддерживаемых параметров "{сервис}":
   - api;
   - uart;
   - upgrade;
   - camofon;
   - streamer.
PUT - Перезапуск сервиса
Ответы
204 OK
Успешный перезапуск сервиса
Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/system/restart/api'/system/factory-reset
Метод сброса устройства к заводским настройкам.
Описание параметров
| Название | Тип | Описание | 
| netReset | boolean | Флаг сброса сетевых настроек. | 
PUT - Сброс к заводским настройкам
Запрос
Тело:
{
    "netReset": false
}Ответы
204 OK
Успешный сброс устройства к заводским настройкам
Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/system/factory-reset' \
--data-raw '{
    "netReset": false
}'/v2/system/versions
Метод получения текущих версий прошивки устройства.
Описание параметров
| Название | Тип | Описание | 
| opt | Object | Версии устройства для раздела с приложениями. | 
| date | Date | Дата создания прошивки для раздела. | 
| name | String | Версия прошивки для раздела. | 
| versions | Object | Версии по конкретным приложения. | 
| api proguard camofon ddns streamer uart upgrade overlay | Object | Описание версии приложения. | 
| name | String | Версия приложения. | 
| hash | String | Хэш сумма коммита приложения. | 
| hw | Object | Описание версии платы. | 
| name | String | Версия платы. | 
| mcu | Object | Описание версии микроконтроллера. | 
| name | String | Версия прошивки микроконтроллера. | 
| media | Object | Версии устройства для раздела с аудио записями (оффлайн ассистента, оповещения). | 
| date | Date | Дата создания прошивки для раздела. | 
| name | String | Версия прошивки для раздела. | 
| versions | Object | Версии по конкретным приложения. | 
| overlay | Object | Описание версии приложения. | 
| name | String | Версия приложения. | 
| hash | String | Хэш сумма коммита приложения. | 
| rootfs | Object | Версии устройства для раздела Linux. | 
| date | Date | Дата создания прошивки для раздела. | 
| name | String | Версия прошивки для раздела. | 
| versions | Object | Версии по конкретным приложения. | 
| libre libiscom baresip ircut rootfs overlay | Object | Описание версии приложения. | 
| name | String | Версия приложения. | 
| hash | String | Хэш сумма коммита приложения. | 
GET - Получение версий
Ответы
200 OK
Успешное получение версий прошивки
Тело:
{
    "opt": {
        "date": "2024-05-27",
        "name": "2.5.0.7.2",
        "versions": {
            "api": {
                "name": "0.7.2",
                "hash": "6e0b6f9159ac22d9a1efcdae56fa337777056cd2"
            },
            "proguard": {
                "name": "0.0.5",
                "hash": "a308a3732ea8584bee9fc1fa08ea0299ba0eeea3"
            },
            "camofon": {
                "name": "0.4.8",
                "hash": "217aaad3c8b003975ff9173ea8279e86074e89a9"
            },
            "ddns": {
                "name": "0.0.6",
                "hash": "634934435463f78df7236d49d5669a3639cf4a24"
            },
            "streamer": {
                "name": "2.10.22",
                "hash": "e7a5ca779b74ae85eef5f36bbb265c1b486accea"
            },
            "uart": {
                "name": "0.0.21",
                "hash": "6a58107a0fee1a606e3d62d5dcd34275551b8dad"
            },
            "upgrade": {
                "name": "0.1.8",
                "hash": "06e5727e2a5308999e23f1b3fe1a0915a0267943"
            },
            "overlay": {
                "name": "0.3.5",
                "hash": "48d7606fad16a16f9d276708379d5ece25d5a062"
            },
            "hw": {
                "name": "5.1"
            },
            "mcu": {
                "name": "7.37"
            }
        }
    },
    "media": {
        "date": "2024-05-27",
        "name": "2.5.0.7.2",
        "versions": {
            "overlay": {
                "name": "0.3.5",
                "hash": "48d7606fad16a16f9d276708379d5ece25d5a062"
            }
        }
    },
    "rootfs": {
        "date": "2024-05-27",
        "name": "2.5.0.7.2",
        "versions": {
            "libre": {
                "name": "0.1.2",
                "hash": "6a2cda92898fa7eb413dd6f0469242d6a964c28f"
            },
            "libiscom": {
                "name": "0.0.32",
                "hash": "0c824a3dd9d1a3821bf0671640fa98329daa2bca"
            },
            "baresip": {
                "name": "0.1.3",
                "hash": "f2b04ea4e43ebe139606037756ccb002ea28ff4d"
            },
            "ircut": {
                "name": "0.1.2",
                "hash": "ceaa84a5cdbd1e3ee62a2a8cd9426ee5ff181f6c"
            },
            "rootfs": {
                "name": "0.0.9",
                "hash": "78e43316f723c413c24e1ee897b60fca507332a6"
            },
            "overlay": {
                "name": "0.3.5",
                "hash": "48d7606fad16a16f9d276708379d5ece25d5a062"
            }
        }
    }
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v2/system/versions'/v2/system/upgrade
Методы для работы с обновлением устройства.
Метод не доступен для устройств на прошивке ниже 2.5.0.10.x
На поздних прошивках использовать новый метод:
   /v3/system/upgrade 
Для данного способа обновления необходим HTTP-сервер
Описание параметров
GET
| Название | Тип | Описание | 
| state | String | Описание состояния обновления. | 
| stateId | Integer | Идентификатор состояния обновления. - По умолчанию: 0 | 
| message | String | Описание под состояния обновления. | 
| messageId | Integer | Идентификатор под состояния обновления | 
PUT
| Название | Тип | Описание | 
| code | Integer | Код ответа на запрос. | 
| data | Object | Параметры используемые при обновлении. | 
| url | String | Ссылка на папку с файлами обновления на HTTP сервере. | 
| mcu | Boolean | Флаг включения обновления микроконтроллера устройства. - По умолчанию: false | 
| opt | Boolean | Флаг включения обновления раздела с приложениями на камере. - По умолчанию: false | 
| media | Boolean | Флаг включения обновления раздела с аудио записями (оффлайн ассистент, оповещение) на камере. - По умолчанию: false | 
| rootfs | Boolean | Флаг включения обновления раздела Linux на камере. - По умолчанию: false | 
| skipVersion | Boolean | Флаг пропуска проверки версий прошивок. - По умолчанию: false 
 Доступен начиная с версии 2.5.0.12.x | 
GET - Получение состояния обновления
Метод получения состояния обновления устройства доступен с прошивки 2.5.0.5.6
Ответы
200 OK
Успешное получение состояния обновления
Тело:
{
    "state": "Обновление не запущено",
    "stateId": 0,
    "message": "Приложение Upgrade запущено",
    "messageId": 0
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v2/system/upgrade'PUT - Запуск обновления
Запрос
Тело:
{
    "url": "http://192.168.0.10:8000/2.5.6.1",
    "mcu": true,
    "opt": true,
    "media": true,
    "rootfs": true
}Ответы
200 OK
Успешное получение задания на обновление
Тело:
{
    "code": 200,
    "data": {
        "url": "http://192.168.0.10:8000/2.5.6.1",
        "mcu": true,
        "opt": true,
        "media": true,
        "rootfs": true
    }
}400 Bad Request
Ошибка при проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение об ошибке. | 
{
    "errors": [
        {
            "message": "Ошибка: url - Параметр пуст или не найден"
        }
    ]
}или
{
    "errors": [
        {
            "message": "Ошибка: stm - Должен быть логической переменной"
        }
    ]
}или
{
    "errors": [
        {
            "message": "Ошибка: opt - Должен быть логической переменной"
        }
    ]
}или
{
    "errors": [
        {
            "message": "Ошибка: media - Должен быть логической переменной"
        }
    ]
}или
{
    "errors": [
        {
            "message": "Ошибка: rootfs - Должен быть логической переменной"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v2/system/upgrade' \
--data-raw '{
    "url": "http://192.168.0.10:8000/2.5.0.6.1",
    "mcu": true,
    "opt": true,
    "media": true,
    "rootfs": true
}'/v3/system/upgrade
Методы для работы с обновлением устройства с помощью HTTP сервера.
На прошивках начиная с 2.5.0.10.x перед обновлением устройство будет перезагружено.
Данный способ обновления проверяет файл обновления на электронную подпись.
Описание параметров
GET
| Название | Тип | Описание | 
| state | String | Описание состояния обновления. | 
| stateId | Integer | Идентификатор состояния обновления. - По умолчанию: 0 | 
| message | String | Описание под состояния обновления. | 
| messageId | Integer | Идентификатор под состояния обновления | 
PUT
| Название | Тип | Описание | 
| code | Integer | Код ответа на запрос. | 
| data | Object | Параметры используемые при обновлении. | 
| url | String | Ссылка на папку с файлами обновления на HTTP сервере. | 
| mcu | Boolean | Флаг включения обновления микроконтроллера устройства. - По умолчанию: false | 
| opt | Boolean | Флаг включения обновления раздела с приложениями на камере. - По умолчанию: false | 
| media | Boolean | Флаг включения обновления раздела с аудио записями (оффлайн ассистент, оповещение) на камере. - По умолчанию: false | 
| rootfs | Boolean | Флаг включения обновления раздела Linux на камере. - По умолчанию: false | 
| skipVersion | Boolean | Флаг пропуска проверки версий прошивок. - По умолчанию: false 
 Доступен начиная с версии 2.5.0.12.x | 
GET - Получение состояния обновления
Ответы
200 OK
Успешное получение состояния обновления
Тело:
{
    "state": "Обновление не запущено",
    "stateId": 0,
    "message": "Приложение Upgrade запущено",
    "messageId": 0
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v3/system/upgrade'PUT - Запуск обновления
Запрос
Тело:
{
    "url": "http://192.168.0.10:8000/2.5.0.9.4",
    "mcu": true,
    "opt": true,
    "media": true,
    "rootfs": true
}Ответы
200 OK
Успешное получение задания на обновление
Тело:
{
    "code": 200,
    "data": {
        "url": "http://192.168.0.10:8000/2.5.0.9.4",
        "mcu": true,
        "opt": true,
        "media": true,
        "rootfs": true
    }
}400 Bad Request
Ошибка при проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение об ошибке. | 
{
    "errors": [
        {
            "message": "Ошибка: url - Параметр пуст или не найден"
        }
    ]
}или
{
    "errors": [
        {
            "message": "Ошибка: stm - Должен быть логической переменной"
        }
    ]
}или
{
    "errors": [
        {
            "message": "Ошибка: opt - Должен быть логической переменной"
        }
    ]
}или
{
    "errors": [
        {
            "message": "Ошибка: media - Должен быть логической переменной"
        }
    ]
}или
{
    "errors": [
        {
            "message": "Ошибка: rootfs - Должен быть логической переменной"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v3/system/upgrade' \
--data-raw '{
    "url": "http://192.168.0.10:8000/2.5.0.9.4",
    "mcu": true,
    "opt": true,
    "media": true,
    "rootfs": true
}'/v4/system/upgrade
Методы для работы с обновлением устройства с помощью FTP сервера.
Метод не доступен для устройств на прошивке ниже 2.5.0.11.x
Данный способ обновления проверяет файл обновления на электронную подпись.
Описание параметров
GET
| Название | Тип | Описание | 
| state | String | Описание состояния обновления. | 
| stateId | Integer | Идентификатор состояния обновления. - По умолчанию: 0 | 
| message | String | Описание под состояния обновления. | 
| messageId | Integer | Идентификатор под состояния обновления | 
PUT
| Название | Тип | Описание | 
| code | Integer | Код ответа на запрос. | 
| data | Object | Параметры используемые при обновлении. | 
|     server | String | Сервер и порт для скачивания файла резервной копии | 
|     auth | Object | Данные для авторизации на сервере | 
|        username | String | Логин | 
|        password | String | Пароль | 
|     path | String | Путь к папке на сервере | 
|     name | String | Название файла в папке | 
| mcu | Boolean | Флаг включения обновления микроконтроллера устройства. - По умолчанию: false | 
| opt | Boolean | Флаг включения обновления раздела с приложениями на камере. - По умолчанию: false | 
| media | Boolean | Флаг включения обновления раздела с аудио записями (оффлайн ассистент, оповещение) на камере. - По умолчанию: false | 
| rootfs | Boolean | Флаг включения обновления раздела Linux на камере. - По умолчанию: false | 
| skipVersion | Boolean | Флаг пропуска проверки версий прошивок. - По умолчанию: false 
 Доступен начиная с версии 2.5.0.12.x | 
GET - Получение состояния обновления
Ответы
200 OK
Успешное получение состояния обновления
Тело:
{
    "state": "Обновление не запущено",
    "stateId": 0,
    "message": "Приложение Upgrade запущено",
    "messageId": 0
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v4/system/upgrade'PUT - Запуск обновления
Запрос
Тело:
{
    "server": "192.168.0.100:21",
    "auth": {
        "username": "username",
        "password": "password"
    },
    "path": "",
    "name": "goke_7205_v300_imx335.iscom",
    "mcu": true,
    "opt": true,
    "media": true,
    "rootfs": true
}Ответы
200 OK
Успешное получение задания на обновление
Тело:
{
    "code":200,
    "data":{
        "server":"192.168.0.100:21",
        "auth":{
            "username":"username",
            "password":"password"
        },
        "path":"",
        "name":"goke_7205_v300_imx335.iscom",
        "mcu":true,
        "opt":true,
        "media":true,
        "rootfs":true
    }
}400 Bad Request
Ошибка при проверки переданных параметров
Тело:
| Название | Тип | Описание | 
| errors | Array | Массив возвращаемых ошибок. | 
| message | String | Сообщение об ошибке. | 
{
    "errors": [
        {
            "message": "Ошибка: url - Параметр пуст или не найден"
        }
    ]
}или
{
    "errors": [
        {
            "message": "Ошибка: stm - Должен быть логической переменной"
        }
    ]
}или
{
    "errors": [
        {
            "message": "Ошибка: opt - Должен быть логической переменной"
        }
    ]
}или
{
    "errors": [
        {
            "message": "Ошибка: media - Должен быть логической переменной"
        }
    ]
}или
{
    "errors": [
        {
            "message": "Ошибка: rootfs - Должен быть логической переменной"
        }
    ]
}Примеры
CURL:
curl \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request PUT 'http://192.168.0.100:80/v4/system/upgrade' \
--data-raw '{
    "server":"192.168.0.100:21",
    "auth":{
        "username":"username",
        "password":"password"
    },
    "path":"",
    "name":"goke_7205_v300_imx335.iscom",
    "mcu":true,
    "opt":true,
    "media":true,
    "rootfs":true
}'Производитель
/v1/manufacturer
Метод получения информации об устройстве указанной на производстве.
Описание параметров
| Название | Тип | Описание | 
| mac | String | MAC адрес устройства. | 
| serialNumber | String | Серийный номе устройства. | 
| revision | String | Ревизия устройства. | 
| timestamp | String | Дата и время создания QR кода. | 
| testTimestamp | String | Дата и время завершения тестирования. | 
| manufacturer | String | Наименование производитель. | 
| batchNumber | Integer | Номер партии. | 
GET - Получение информации
Ответы
200 OK
Успешное получение информации
Тело:
{
    "mac": "08:13:00:00:00:00",
    "serialNumber": "0000000000",
    "revision": "5.3",
    "timestamp": "2024-05-28 09:39:23",
    "testTimestamp": "2024-05-28 09:39:24",
    "manufacturer": "VD",
    "batchNumber": 10
}Примеры
CURL:
curl \
--header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
--request GET 'http://192.168.0.100:80/v1/manufacturer'