Перейти к основному контенту

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
Мак адрес устройства

X-Device-Revision

ISCom X1 (rev.5)
Ревизия устройства

X-Max-Content-Length

512000

Максимальный размер принимаемых данных

Доступен начиная с версии 2.5.0.12.x

Коды

Наименование

Значение

Успешные

  • 200 OK;
  • 201 OK;
  • 204 OK.

Пользовательские

  • 400 Bad Request;
  • 401 Unauthorized;
  • 404 Not Found;
  • 405 Method Not Allowed;
  • 413 Payload Too Large;
  • 422 Unprocessable Entity;
  • 429 Too Many Requests.

Серверные

  • 500 Internal Server Error;
  • 501 Not Implemented.

Авторизация

/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/ch0

FFPLAY:

ffplay rtsp://root:123456@192.168.0.100:554/ch0
Альтернативный видеопоток

VLC:

vlc rtsp://root:123456@192.168.0.100:554/ch1

FFPLAY:

ffplay rtsp://root:123456@192.168.0.100:554/ch1
Альтернативный видеопоток 2

VLC:

vlc rtsp://root:123456@192.168.0.100:554/ch2

FFPLAY:

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
- По умолчанию: 0
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


ВАЖНО: Панель приложенный ключ проверит  два раза прямой и обратный идентификатор т.е. AABBCCDD и DDCCBBAA.

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'

/crypto/profiles

Методы настройки профилей шифрования ключей SL1 / SL3.

Метод не доступен для устройств на прошивке ниже 2.5.0.11.x

Описание параметров
Название
Тип

Описание

id Integer

ИдентификаторИдентификатор профиля

- Ограничения: 0 - 6
Профиль 0 имеет общие поля с настройками из /key/settings и является стандартным профилем

block Integer

Номер блока в ключе

 - Ограничения: 0 - 2

sector
Integer

Номер сектора в ключе

- Ограничения: 0 - 31

key_type
String

Типа ключа 

- Ограничения: "A" или  "B"

securityLevel
String

Уровень шифрования ключа

Допустимые значения:

  • 0  - ПроверкаТолько идентификатора;проверка UID
  • 1  - SL1 (- только авторизация в сектор);сектор
  • 11 - SL1 (авторизацияс в сектор) + инкремент;инкрементом
  • 3  SL3 (авторизация в сектор);
valueLen
Integer

Длина секретного значения, по которому будет проверяться валидность записанных в блок данных. 

Например,

- Ограничения: 0 - 16

 

Пример:

    Еслиесли в блок ключа записано секретное значение "AABBCCDDEEFF", и valueLen равен= "4"4, то сравниваться будут только 4 байта "AABBCCDD". ЕслиВажно, если valueLen равно= "0",0, то секретное значение проверяться не будет. ПроверкаВалидность будет поопределена авторизациитолько авторизацией в сектор.

    - Ограничения: 0 - 16

    key
    String

    Строка с ключом авторизации

    - Ограничения: длина 1 - 16 байт (HEX)в формате HEX

    GET - Получение параметров
    Ответы
    200 OK

    Успешное получение параметров

    Тело:

    [
        {
            "id": 0,
            "block": 1,
            "sector": 31,
            "key_type": "A",
            "securityLevel": 0,
            "valueLen": 7,
            "key": "D3F9************************C820"
        },
        {
            "id": 1,
            "block": 0,
            "sector": 15,
            "key_type": "B",
            "securityLevel": 3,
            "valueLen": 7,
            "key": "4C32************************4D70"
        },
        {
            "id": 2,
            "block": 1,
            "sector": 3,
            "key_type": "A",
            "securityLevel": 1,
            "valueLen": 4,
            "key": "C5D0************************0000"
        }
    ]
    Примеры

    CURL:

    curl \
    --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
    --request GET 'http://192.168.0.100:80/crypto/profiles'
    PUT - Изменение параметров
    Запрос

    Тело:

    [
        {
            "id": 0,
            "securityLevel": 0,
            "block": 1,
            "sector": 31,
            "key_type": "A",
            "valueLen": 7,
            "key": "1234567890AABBCCDDEEFF1234566789"
        },
        {
            "id": 1,
            "securityLevel": 3,
            "block": 0,
            "sector": 15,
            "key_type": "B",
            "valueLen": 7,
            "key": "1234567890AABBCCDDEEFF1234566789"
        },
        {
            "id": 2,
            "securityLevel": 1,
            "block": 1,
            "sector": 3,
            "key_type": "A",
            "valueLen": 4,
            "key": "AABBCCDDEEFF1234"
        }
    ]
    Ответы
    200 OK

     Успешное изменение параметров

    Тело:

    [
        {
            "id": 0,
            "block": 1,
            "sector": 31,
            "key_type": "A",
            "securityLevel": 0,
            "valueLen": 7,
            "key": "1234************************6789"
        },
        {
            "id": 1,
            "block": 0,
            "sector": 15,
            "key_type": "B",
            "securityLevel": 3,
            "valueLen": 7,
            "key": "1234************************6789"
        },
        {
            "id": 2,
            "block": 1,
            "sector": 3,
            "key_type": "A",
            "securityLevel": 1,
            "valueLen": 4,
            "key": "AABB************************0000"
        }
    ]
    400 Bad Request

    Ошибка проверки переданных параметров

    Тело:

    Название

    Тип
    Описание

    errors

    Array Массив возвращаемых ошибок.

       field

       String    Имя поля

       message

       String    Сообщение с ошибкой.
    {
        "errors": [
            {
                "field": "sector",
                "message": "Значение параметра должно быть в диапазоне [0 - 31]"
            }
        ]
    }

     

    Примеры

     CURL:

    curl \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
    --request PUT 'http://192.168.0.100:80/crypto/profiles' \
    --data-raw '[
        {
            "id": 0,
            "securityLevel": 0,
            "block": 1,
            "sector": 31,
            "key_type": "A",
            "valueLen": 7,
            "key": "AABBCCDDEEFF"
        },
        {
            "id": 1,
            "securityLevel": 3,
            "block": 0,
            "sector": 15,
            "key_type": "B",
            "valueLen": 7,
            "key": "AABBCCDDEEFF"
        },
        {
            "id": 2,
            "securityLevel": 1,
            "block": 1,
            "sector": 3,
            "key_type": "A",
            "valueLen": 4,
            "key": "AABBCCDDEEFF"
        }
    ]'
    DELETE - Сброс параметров к стандартным
    Запрос

    Тело:

    [
        {
            "id": 0
        },
        {
            "id": 1
        },
        {
            "id": 2
        }
    ]

     

    Ответы
    204 OK

    Успешный сброс параметров

    Пример

    CURL:

    curl \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
    --request DEL 'http://192.168.0.100:80/crypto/profiles' \
    --data-raw '[
        {
            "id": 0
        },
        {
            "id": 1
        },
        {
            "id": 2
        }
    ]'

    Квартиры

    /panelCode

    Методы получения и добавления квартир на устройство.

    Описание параметров
    Название
    Тип

    Описание

    panelCode Integer

    Номер квартиры.

    callsEnabled Object

    Параметры разрешения вызовов в АТ и SIP.

       sip     Boolean

       Флаг включения / выключения вызовов в SIP. 

       - По умолчанию: true

       handset    Boolean

       Флаг включения / выключения вызовов в АТ.

       - По умолчанию: true

    soundOpenTh Boolean

    Флаг включения / выключения звука открытия двери при открытии привязанным ключом к квартире.

    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

    inform

    Boolean

    Флаг, обозначающий информирование при прикладывании ключа.

        - По умолчанию: false

     

    При включенном оффлайн-ассистенте и установке этого флага, житель этой квартиры будет получать звуковое уведомление из динамика домофона, когда прикладывает свой ключ и ключ открывает дверь.

     

    Доступен начиная с версии 2.5.0.12.x

    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

    Флаг включения / выключения звука открытия двери при открытии привязанным ключом к квартире.

    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

    inform

    Boolean

    Флаг, обозначающий информирование при прикладывании ключа.

        - По умолчанию: false

     

    При включенном оффлайн-ассистенте и установке этого флага, житель этой квартиры будет получать звуковое уведомление из динамика домофона, когда прикладывает свой ключ и ключ открывает дверь.

     

    Доступен начиная с версии 2.5.0.12.x

    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

    Флаг включения / выключения звука открытия двери при открытии привязанным ключом к квартире.

    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

    inform

    Boolean

    Флаг, обозначающий информирование при прикладывании ключа.

        - По умолчанию: false

     

    При включенном оффлайн-ассистенте и установке этого флага, житель этой квартиры будет получать звуковое уведомление из динамика домофона, когда прикладывает свой ключ и ключ открывает дверь.

     

    Доступен начиная с версии 2.5.0.12.x

    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
       - 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 / inetDhcp

    Object

    Параметры виртуального сетевого интерфейса.
    inetDhcp - Доступен начиная с версии 2.5.0.13.x

       netmask

       String

       Сетевая маска при подключении к сети.

        - Ограничения: IPv4 адрес

       gateway

       String

       Сетевой шлюз при подключении к сети.

        - Ограничения: IPv4 адрес

       ipAddress

       String

       IP адрес устройства при подключении к сети.

        - Ограничения: IPv4 адрес

       dnsServer

       String

       IP адрес DNS сервера.

        - Ограничения: IPv4 адрес

       dnsServer1

       String

       IP адрес DNS сервера.

        - Ограничения: IPv4 адрес
    Доступен начиная с версии 2.5.0.13.x

    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

    Метод для задания адреса отправки логов

    Описание параметров

    Название

    Тип Описание

    port

    Integer

    Порт сервер для отправки  событий

    - По умолчанию: 514

    addr

    String

    Адрес сервера для отправки событий 
    - Ограничения: IPv4, DNS имя

    - По умолчанию:  logserv.sokol

    severity

    integer

    Уровень логирования

    - По умолчанию: 6

    - Значения: 

    • 0 - Emergency
    • 1 - Alert
    • 2 - Critical
    • 3 - Error
    • 4 - Warning
    • 5 - Notice
    • 6 - Info
    • 7 - Debug

    Доступен начиная с версии 2.5.0.13.x

    transport

    integer

    Транспорт отправки событий

    - По умолчанию: 1

    - Значения:

    • 1 - UDP
    • 2 - TCP

    Доступен начиная с версии 2.5.0.13.x

    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

    Описание параметров

    Название

    Тип Описание

    enable

    boolean

    Флаг включения проверки доступности сервера

    - По умолчанию: true

    Доступен начиная с версии 2.5.0.13.x

    server

    String

    Адрес сервера для отправки ping запросов 

    - По умолчанию:  null
    - Ограничения: IPv4, DNS имя

    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
    }'


    Ассистент

    /assistant/settings

    Метод получения и изменения параметров оффлайн ассистента.

    Описание параметров
    Название
    Тип

    Описание

    assistant Object

    Параметры ассистента

       enable    Boolean

       Состояние ассистента

       По умолчанию: true

       online    Boolean

       Режим ассистента:

       По умолчанию: true

          - true: онлайн;

          - false: оффлайн;

    offlineVoice Object

    Параметры оффлайн ассистента

     

    Доступен начиная с версии 2.5.0.10.x

       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/inform - Информирование при прикладывании ключа;
      • Ранее информирование при задолженности;
    • /assistant/key/open/neutral - Открытие панели ключом или цифровым кодом;
    • /assistant/key/error/neutral - Ошибка открытия панели ключом или цифровым кодом;
    • /assistant/tamper/alarm - Информирование при сработке тампера;
    • /notification/alarm - Речевое оповещение;
      • Временно не доступно;
    • /notification/forced - Принудительно воспроизвести файл на панели;

    /v1/{событие}

    Методы получения/удаления аудио файлов офлайн ассистента.

    Метод не доступен для устройств на прошивке ниже 2.5.0.12.x

    GET - Получение списка файлов
    Ответы
    200 OK
    {
        "isPlay": false,
        "files": [
            {
                "name": "1.wav",
                "size": 156740,
                "isPlay": false
            }
        ]
    }
    Примеры

    CURL:

    curl \
    --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
    'http://192.168.0.100:80/v1/{событие}'
    DELETE - Удаление указанного файла
    Ответы
    204 No Content

    Успешное удаление указанного файла

    Примеры

    CURL:

    curl \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
    --request DELETE 'http://192.168.0.100:80/v1/{событие}' \
    --data '{
        "name": "1.wav"
    }'

    /v1/{событие}/list

    Методы получения/удаления аудио файлов офлайн ассистента.

    Метод не доступен для устройств на прошивке ниже 2.5.0.12.x

    GET - Получение списка файлов
    Ответы
    200 OK
    {
        "isPlay": false,
        "files": [
            {
                "name": "1.wav",
                "size": 174800,
                "isPlay": false
            }
        ]
    }
    Примеры

    CURL:

    curl \
    --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
    'http://192.168.0.100:80/v1/{событие}/list'
    DELETE - Удаление указанных файлов
    Запрос

    Тело:

    ["1.wav", "2.wav"]
    Ответы
    204 No Content

    Успешное удаление указанных файлов

    Примеры

    CURL:

    curl \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
    --request DELETE 'http://192.168.0.100:80/v1/{событие}/list' \
    --data '["test-1.wav", "test.wav"]'

    /v1/{событие}/file

    Метод добавления/удаления аудио файла офлайн ассистента.

    Метод не доступен для устройств на прошивке ниже 2.5.0.12.x

    PUT - Добавление нового файла
    Запрос

     Заголовки:

    Название

    Значение

    Описание

    Content-Type

    audio/wave

          или 

    audio/wav

          или

    audio/x-wav

          или

    audio/x-pn-wav

    Тип передаваемых данных

    Content-Disposition

    attachment; filename="filename.wav"

    filename.wav - желаемое имя файла

     

    По умолчанию используется авто генерация названий.

    Поле не обязательное.

    Тело:

    *** Бинарный файл ***
    Ответы
    200 OK
    {
        "isPlay": false,
        "files": [
            {
                "name": "1.wav",
                "size": 56344,
                "isPlay": false
            }
        ]
    }
    Примеры

    CURL:

    curl \
    --header 'Content-Type: audio/wave' \
    --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
    --header 'Content-Disposition: attachment; filename="1.wav"'
    --request PUT 'http://192.168.0.100:80/v1/{событие}/file' \
    --data-binary '1.wav'
    DELETE - Удаление указанного файла
    Запрос

    Тело:

    {
      "name": "1.wav"
    }
    Ответы
    204 Not Content

    Успешное удаление файла

    Примеры

    CURL:

    curl \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \
    --request DELETE 'http://192.168.0.100:80/v1/{событие}/file' \
    --data '{
        "name": "1.wav"
    }'


    Оповещение

    Методы данного раздела временно не доступны.

    /v1/notification/alarm

    Методы для работы с аудио файлом для речевого оповещения в случае ЧС.

    Метод не доступен для устройств на прошивке ниже 2.5.0.x.x

    GET - Получение списка
    Ответы
    200 OK

    Успешное получение списка файлов

    [
        {
            "isPlay": false,
            "name": "1.wav"
        },
        {
            "isPlay": false,
            "name": "2.wav"
        }
    ]
    Примеры

     

    PUT - Добавление нового файла
    Запрос

     Заголовки:

    Название

    Значение

    Описание

    Content-Type

    audio/wave

          или 

    audio/wav

          или

    audio/x-wav

          или

    audio/x-pn-wav

    Тип передаваемых данных

    Content-Disposition

    attachment; filename="filename.wav"

    filename.wav - желаемое имя файла

     

    По умолчанию используется авто генерация названий.

    Поле не обязательное.

    Тело:

    *** Бинарный файл ***
    Ответы
    200 OK

     Успешное добавление файла

    [
        {
            "name": "1.wav"
        },
        {
            "name": "2.wav"
        }
    ]
    Примеры

    CURL:

    
    
    DELETE - Удаление конкретного аудиофайла
    Запрос

    Заголовки:

    Название

    Значение

    Описание

    Content-Type

     

    application/json

     

    Тип передаваемых данных
    {
      "name": "1.wav"
    }

     

    Ответы
    200 OK

    Успешное удаление файла

    500 Internal Server Error

    Файл отсутствует либо не верный формат json в теле запроса.

    Примеры

    CURL:

    
    

    /v1/notification/alarm/play

    Метод запуска воспроизведения указанного аудио файла.

    Метод не доступен для устройств на прошивке ниже 2.5.0.x.x

    Воспроизведение происходит непрерывно
    Остановка производиться отдельным методом: /v1/notification/alarm/stop

    PUT - Воспроизведения аудио файла
    Запрос

    Тело:

    {
        "name": "test.wav"
    }
    Ответы
    200 OK

     

    Примеры

    CURL:

    
    

    /v1/notification/alarm/stop

    Метод остановки речевого воспроизведения.

    Метод не доступен для устройств на прошивке ниже 2.5.0.x.x

    PUT - Остановка текущего воспроизведения аудиофайла
    Ответы

     

    Примеры

    CURL:

    
    

    Бегущая строка

    /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

    Метод для связывания считывателей с доступными для открытия входами/выходами.

    Метод не доступен для устройств на прошивке ниже 2.5.0.6.x

    Описание параметров
    Название
    Тип

    Описание

    mainReader,
    secondReader,

    extReader0,
    extReader1,
    extReader2,
    extReader3
    Object


    mainReader - считыватель на панели.

    secondReader - дополнительный считыватель.

    extReader0,1,2,3 - внешние модули входов.


       main Boolean

    Флаг открытия первого входа.
    - По умолчанию: true

       second Boolean

    Флаг открытия второго входа.
    - По умолчанию: true

       gates Object

    Флаги открытия внешних входов

          1, 2, 3, 4 Boolean

       Флаг открытия внешнего входа.
       - По умолчанию: false

    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

    Метод открытия дверей, управляемых внешними контроллерами. 

    Метод не доступен для устройств на прошивке ниже 2.5.0.6.x

    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

    Метод для настройки внешних модулей входов

    Метод не доступен для устройств на прошивке ниже 2.5.0.9.x

    В данный момент поддерживаются внешние модули входов 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 секунд после каждого запуска
    ** значение отправляется самим модулем через 30 секунд после старта и далее обновляется каждые 25 секунд


       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

    Размер указанного коммутатора.
     - Ограничения: 0, 10, 20, 40, 64, 80, 100, 160, 220
     - По умолчанию: 0

    summator integer

    Поддержка указанного сумматора.

    - Ограничения: 
       - 0 - не выбрано;
       - 1 - Цифрал С-01;

    - По умолчанию: null
    Доступен начиная с версии 2.5.0.13.x

    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

    Тип используемого коммутатора.
    - По умолчанию: null
    - Ограничения:
       - из метода "/v1/switch/models"

    summator integer

    Поддержка указанного сумматора.

    - Ограничения: 
       - 0 - не выбрано;
       - 1 - Цифрал С-01;

    - По умолчанию: null
    Доступен начиная с версии 2.5.0.13.x

    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

    Метод получения и изменения параметров сервисного кода для настройки панели через клавиатуру.

    Метод не доступен для устройств на прошивке ниже 2.5.0.4.x

    Описание параметров
    Название
    Тип

    Описание

    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

    Метод получения количества свободной и задействованной памяти системой устройства.

    Метод не доступен для устройств на прошивке ниже 2.5.0.9.x

    Описание параметров
    Название
    Тип

    Описание

    memory

    Obejct Параметры использованной и задействованной памяти системой и приложениями;

       system

       Object    Параметры памяти системы:

          used

          Integer       Количество задействованной памяти;

          free

          Integer       Количество свободной памяти;

       services

       Object    Параметры использования памяти приложениями;

          api
          uart
          ddns
          streamer
          camofon
          upgrade
          proguard
          ircut

          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
       camofon

       streamer
       proguard

       store

       baresip

       libre

       Integer

       Уровень логирования приложения:

        - 1 - Trace;
        - 2 - Debug;
        - 3 - Info;
        - 4 - Warning;
        - 5 - Error;
        - 6 - Fatal.

        - По умолчанию: 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

    Описание под состояния обновления.
     - По умолчанию: Приложение Upgrade запущено

    messageId Integer

    Идентификатор под состояния обновления
     - По умолчанию: 0

    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

    Описание под состояния обновления.
     - По умолчанию: Приложение Upgrade запущено

    messageId Integer

    Идентификатор под состояния обновления
     - По умолчанию: 0

    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

    Описание под состояния обновления.
     - По умолчанию: Приложение Upgrade запущено

    messageId Integer

    Идентификатор под состояния обновления
     - По умолчанию: 0

    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

    Метод получения информации об устройстве указанной на производстве.

    Метод не доступен для устройств на прошивке ниже 2.5.0.4.x

    Описание параметров
    Название
    Тип

    Описание

    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'