# API Документация ### **Описание** В данном документе описаны API-методы для взаимодействия с домофонной панелью Сокол (rev.2) через http-запросы.

На устройстве по умолчанию 2 виртуальных сетевых интерфейса: - Динамический; - Статический ([**192.168.0.100**](http://192.168.0.100:80/)). Метод для настройки сетевых интерфейсов: **[/v1/network](#bkmrk-%2Fv1%2Fnetwork)**

Данные для авторизации по умолчанию: - логин: **root** - пароль: **123456** Метод для смены пароля по умолчанию: **[/user/change\_password](#bkmrk-%2Fuser%2Fchange_passwor)**

--- ### **Обязательные заголовки**

Некоторые методы могут иметь другое значение для указанных заголовков или новые заголовки.

#### **Запрос**
**Наименование** **Значение****Описание**
**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
Мак адрес устройства
##### Коды
**Наименование** **Значение**
Успешные
- 200 OK; - 201 OK; - 204 OK.
Пользовательские
- 400 Bad Request; - 404 Not Found; - 405 Method Not Allowed; - 422 Unprocessable Entity.
Серверные
- 500 Internal Server Error; - 501 Not Implemented.
--- ### **Авторизация** #### /auth/check Метод проверки данных, используемых для авторизации, при вызове API-методов. Для авторизации поддерживается "Базовая аутентификация (Basic access authentication)" .
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:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/auth/check' ```
--- ### **Пользователь** #### /user/change\_password Метод смены текущего пароля пользователя на новый.
Описание параметров
**Название** **Тип****Описание**
newPasswordStringНовый пароль для указанного пользователя в заголовке авторизации. \- По умолчанию: 123456
PUT - Обновление пароля
Запрос **Тело:** ```JSon { "newPassword": "123456" } ```
Ответы
200 OK

Успешная смена пароля

**Заголовки:**
**Название** **Значение****Описание**
Content-Type text/html; charset=ISO-8859-1Тип возвращаемых данных
400 Bad Request

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

**Тело:**
**Название** **Тип****Описание**
errors ArrayМассив возвращаемых ошибок.
field String Название переменной к которой относиться ошибка.
message String Сообщение об ошибки для переменной из поля "field".
```json { "errors": [ { "field": "newPassword", "message": "Ошибка получения поля newPassword из запроса" } ] } ```
Примеры **CURL:** ```bash 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

Успешное получение данных

**Тело:** ```json { "port": 80 } ```
Примеры **Curl:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/v1/api' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "port": 80 } ```
Ответы
200 OK

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

**Тело:** ```json { "port": 80 } ```
400 Bad Request

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

**Тело:**
**Название** **Тип** **Описание**
errors ArrayМассив возвращаемых ошибок.
message String Сообщение с ошибкой.
```json { "errors": [ { "message": "Не удалось распарсить json" } ] } ```
Примеры **CURL:** ```bash curl \ --header 'Content-Type: application/json' \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/v1/api' \ --data-raw '{"port": 80}' ```
--- ### **Параметры DDNS** #### /v1/ddns Методы получение и изменения параметров ddns клиента, основанного на открытом No-IP протоколе.
Описание параметров
**Название** **Тип** **Описание**
enabledBooleanФлаг включения / отключения DDNS клиента. \- По умолчанию: false
intervalIntegerИнтервал отправки 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

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

**Тело:** ```json { "enabled": true, "interval": 300, "server": { "port": 8081, "address": "10.199.63.7", "username": "default", "password": "default" }, "data": { "hostname": "ddns.ISCom" } } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/v1/ddns' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "enabled": true, "interval": 300, "server": { "port": 8081, "address": "10.199.63.7", "username": "default", "password": "default" }, "data": { "hostname": "ddns.ISCom" } } ```
Ответы
200 OK

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

**Тело:** ```json { "enabled": true, "interval": 300, "server": { "port": 8081, "address": "10.199.63.7", "username": "default", "password": "default" }, "data": { "hostname": "ddns.ISCom" } } ```
Примеры **CURL:** ```bash 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

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

**Тело:** ```json { "enabled": true, "interval": 300, "server": { "port": 8081, "address": "10.199.63.7", "username": "default", "password": "default" }, "data": { "hostname": "ddns.ISCom" } } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request DELETE 'http://192.168.0.100:80/v1/ddns' ```
--- ### **Видеопоток** #### RTSP Методы получения основного и дополнительного видеопотоков.
Основной видеопоток **VLC:** ```bash vlc rtsp://root:123456@192.168.0.100:554/ch0 ``` **FFPLAY:** ```bash ffplay rtsp://root:123456@192.168.0.100:554/ch0 ```
Дополнительный видеопоток **VLC:** ```bash vlc rtsp://root:123456@192.168.0.100:554/ch1 ``` **FFPLAY:** ```bash ffplay rtsp://root:123456@192.168.0.100:554/ch1 ```
#### /camera/md Методы получение и изменения параметров детектора движения видеопотока.
Описание параметров
**Название** **Тип** **Описание**
md\_enableBooleanФлаг включения / отключения детектора движения. \- По умолчанию: false
md\_area\_thrIntegerМинимальный размер детектируемой области. Для людей на близком расстоянии примерно 100000 пикселей. \- По умолчанию: 30000 пикселей
md\_send\_snapshot\_enableBooleanФлаг включения / отключения отправки картинок на сервер указанный в параметре "snap\_send\_url". \- По умолчанию: false
md\_send\_snapshot\_intervalIntegerИнтервал в секундах между отправкой картинок на сервер. \- Ограничение: 1 - 20 секунд \- По умолчанию: 1 секунда **ВАЖНО!** Будет отправлена одна картинка, даже если за этот период было задетектировано больше движений.
md\_rects\_enableBooleanФлаг включения / отключения отображения рамок детектора. \- По умолчанию: false
md\_logs\_enableBooleanФлаг включения / отключения отправки событий детектора в логи. \- По умолчанию: false
md\_rect\_colorStringЦвет отображающихся рамок детектора. \- По умолчанию: 0xFF0000
md\_frame\_intIntegerИнтервал между кадрами, отправляемыми на поиск движения. \- По умолчанию: 30 кадров
md\_frame\_shiftIntegerСмещение второго кадра, участвующего в определении детекции. \- По умолчанию: 1 кадр
md\_max\_rect\_ratioDoubleМаксимальное соотношение длина / ширина прямоугольника для отображения. \- По умолчанию: 8.0
snap\_send\_urlStringHTTP адрес на который будут отправляться картинки детектора. \- По умолчанию: ""

При использовании удаленного 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

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

**Тело:** ```json { "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:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/camera/md' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "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

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

**Тело:** ```json { "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:** ```bash 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/audio Методы получение и изменения параметров звука.
Описание параметров
**Название** **Тип** **Описание**
aac\_enableBooleanФлаг включения / отключения кодирования звука в AAC. \- По умолчанию: false (звук в PCMU)
formatStringФормат кодирования звука. \- По умолчанию: AAC \- Поддерживаемые варианты: \- AAC; \- PCM; \- PCMA (G.711A); \- PCMU (G.711U);
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "aac_enable": true, "format": "AAC" } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/camera/audio' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "aac_enable": true } ```
Ответы
200 OK

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

**Тело:** ```json { "aac_enable": true, "format": "AAC" } ```
Примеры **CURL:** ```bash 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" }' ```
#### /camera/codec Методы получения и изменения параметров видеопотоков (основного, дополнительного).
Описание параметров
**Название** **Тип** **Описание**
ChannelsArrayМассив видео потоков.
Channel Integer Номер видео потока.
Type String Тип кодека видео.
Profile Integer Профиль кодека. \- По умолчанию: 1 (Main) \- Поддерживаемые варианты: \- 1 - Main; \- 2 - Baseline; \- 3 - High;
ByFrame Boolean
Width / Height Integer Разрешение видео потока. \- Поддерживаемые варианты: \- 1920х1080 (**основной поток**); \- 1280х720; \- 720х576; \- 704х576; \- 640х480; \- 640х360.
GopMode String
IPQpDelta Integer
RcMode String Режим управления кодированием. \- По умолчанию: AVBR
IFrameInterval Integer Интервал опорного кадра (кадр/сек). \- По умолчанию: 30
MaxBitrate Integer Максимальный битрейт видеопотока (Кбит/сек).
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "Channels": [ { "Channel": 0, "Type": "H264", "Profile": 1, "ByFrame": true, "Width": 1280, "Height": 720, "GopMode": "NormalP", "IPQpDelta": 2, "RcMode": "AVBR", "IFrameInterval": 30, "MaxBitrate": 3072 }, { "Channel": 1, "Type": "H264", "Profile": 1, "ByFrame": true, "Width": 640, "Height": 480, "GopMode": "NormalP", "IPQpDelta": 2, "RcMode": "AVBR", "IFrameInterval": 30, "MaxBitrate": 1536 } ] } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/camera/codec' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "Channels": [ { "Channel": 0, "Type": "H264", "Profile": 1, "ByFrame": true, "Width": 1280, "Height": 720, "GopMode": "NormalP", "IPQpDelta": 2, "RcMode": "AVBR", "IFrameInterval": 30, "MaxBitrate": 3072 }, { "Channel": 1, "Type": "H264", "Profile": 1, "ByFrame": true, "Width": 640, "Height": 480, "GopMode": "NormalP", "IPQpDelta": 2, "RcMode": "AVBR", "IFrameInterval": 30, "MaxBitrate": 1536 } ] } ```
Ответы
200 OK

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

**Тело:** ```json { "Channels": [ { "Channel": 0, "Type": "H264", "Profile": 1, "ByFrame": true, "Width": 1280, "Height": 720, "GopMode": "NormalP", "IPQpDelta": 2, "RcMode": "AVBR", "IFrameInterval": 30, "MaxBitrate": 3072 }, { "Channel": 1, "Type": "H264", "Profile": 1, "ByFrame": true, "Width": 640, "Height": 480, "GopMode": "NormalP", "IPQpDelta": 2, "RcMode": "AVBR", "IFrameInterval": 30, "MaxBitrate": 1536 } ] } ```
Примеры **CURL:** ```bash 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": 1, "ByFrame": true, "Width": 1280, "Height": 720, "GopMode": "NormalP", "IPQpDelta": 2, "RcMode": "AVBR", "IFrameInterval": 30, "MaxBitrate": 3072 }, { "Channel": 1, "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

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

**Тело:** ```json { "Image": { "Flip": false, "Mirror": false } } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/camera/picture' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "Image": { "Flip": false, "Mirror": false } } ```
Ответы
200 OK

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

**Тело:** ```json { "Image": { "Flip": false, "Mirror": false } } ```
Примеры **CURL:** ```bash 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**](#bkmrk-%2Fcamera%2Fcodec)

GET - Получение картинки
Ответы
200 OK **Заголовки:**
**Название** **Значение****Описание**
Content-Type image/jpegТип возвращаемых данных
**Тело:** ```json *** Бинарное представление картинки *** ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/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

Успешное получение данных

**Тело:** ```json { "state": false, "threshold": { "exposureCurrent": 100000, "exposureLight": 22000, "exposureNight": 250000 } } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/camera/whiteBlack' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "threshold": { "exposureLight": 22000, "exposureNight": 250000 } } ```
Ответы
200 OK

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

**Тело:** ```json { "state": false, "threshold": { "exposureCurrent": 100000, "exposureLight": 22000, "exposureNight": 250000 } } ```
400 Bad Request

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

**Тело:**
**Название** **Тип** **Описание**
errorsArrayМассив возвращаемых ошибок.
message String Сообщение об ошибке.
```json { "errors": [ { "message": "Не удалось распарсить JSON 3: unexpected token near '}'" } ] } ```
Примеры **CURL:** ```bash 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Размер отображаемой информации.
textStringОтображаемый текст. \- Длина строки: 0 - 100 символов
color StringЦвет osd в hex.
date ObjectПараметры отображения даты.
enable Boolean Флаг включения / отключения отображения даты.
format String Формат отображаемой даты ([форматы](https://www.tutorialspoint.com/c_standard_library/c_function_strftime.htm)).
time ObjectПараметры отображения времени.
enable Boolean Флаг включения / отключения отображения времени.
format String Формат отображаемового времени ([форматы](https://www.tutorialspoint.com/c_standard_library/c_function_strftime.htm)).
position ObjectПараметры смещения текста.
x Integer Смещение по оси "X" (пиксели).
y Integer Смещение по оси "Y" (пиксели).
background ObjectПараметры отображения фона.
enable Boolean Флаг включения / отключения фона.
color String Цвет фона в hex.
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json [ { "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:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/v2/camera/osd' ```
PUT - Изменение параметров
Запрос **Тело:** ```json [ { "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

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

**Тело:** ```json [ { "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" } } ] ```
400 Bad Request

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

**Тело:**
**Название** **Тип** **Описание**
errors ArrayМассив возвращаемых ошибок.
message String Сообщение с ошибкой.
```json { "errors": [ { "message": "Ошибка получения md настроек: 400 (JSON поле data отсутствует)" } ] } ```
Примеры **CURL:** ```bash 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

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

**Тело:** ```json { "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 } }, ..., "15": { "sharpness": { "au16TextureFreq": 170, "au16EdgeFreq": 96, "au8OverShoot": 10, "au8UnderShoot": 15, "au8DetailCtrl": 120, "au8RGain": 31, "au8GGain": 31, "au8BGain": 31, "au8SkinGain": 31, "au16MaxSharpGain": 80 } } } } } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/v2/camera/picture' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "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 } }, ..., "15": { "sharpness": { "au16TextureFreq": 170, "au16EdgeFreq": 96, "au8OverShoot": 10, "au8UnderShoot": 15, "au8DetailCtrl": 120, "au8RGain": 31, "au8GGain": 31, "au8BGain": 31, "au8SkinGain": 31, "au16MaxSharpGain": 80 } } } } } ```
Ответы
200 OK

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

**Тело:** ```json { "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 } }, ..., "15": { "sharpness": { "au16TextureFreq": 170, "au16EdgeFreq": 96, "au8OverShoot": 10, "au8UnderShoot": 15, "au8DetailCtrl": 120, "au8RGain": 31, "au8GGain": 31, "au8BGain": 31, "au8SkinGain": 31, "au16MaxSharpGain": 80 } } } } } ```
Примеры **CURL:** ```bash 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Размер отображаемой информации.
textStringОтображаемый текст. \- Длина строки: 0 - 100 символов
color StringЦвет osd в hex.
date ObjectПараметры отображения даты.
enable Boolean Флаг включения / отключения отображения даты.
format String Формат отображаемой даты ([форматы](https://www.tutorialspoint.com/c_standard_library/c_function_strftime.htm)).
time ObjectПараметры отображения времени.
enable Boolean Флаг включения / отключения отображения времени.
format String Формат отображаемового времени ([форматы](https://www.tutorialspoint.com/c_standard_library/c_function_strftime.htm)).
position ObjectПараметры смещения текста.
x Integer Смещение по оси "X" в процентном соотношении.
y Integer Смещение по оси "Y" в процентном соотношении.
background ObjectПараметры отображения фона.
enable Boolean Флаг включения / отключения фона.
color String Цвет фона в hex.
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json [ { "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:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/v3/camera/osd' ```
PUT - Изменение параметров
Запрос **Тело:** ```json [ { "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

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

**Тело:** ```json [ { "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 Сообщение с ошибкой.
```json { "errors": [ { "message": "Ошибка получения md настроек: 400 (JSON поле data отсутствует)" } ] } ```
Примеры **CURL:** ```bash 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 Методы получения и добавления кодов на устройство.
Описание параметров
**Название** **Тип** **Описание**
codeIntegerИдентификатор "Кода доступа".
panelCodeIntegerНомер квартиры к которой привязан "Код доступа".
GET - Получение списка
Ответы
200 OK **Тело:** ```json [ { "code": 12345, "panelCode": 0 } ] ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/openCode' ```
POST - Добавление кода
Запрос **Тело:** ```json { "code": 12345, "panelCode": 0 } ```
Ответы
201 OK

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

**Тело:** ```json [ { "code": 12345, "panelCode": 0 } ] ```
400 Bad Request **Тело:**
**Название** **Тип** **Описание**
errorsArrayМассив возвращаемых ошибок.
field String Название переменной к которой относиться ошибка.
message String Сообщение об ошибки для поля "field".
```json { "errors": [ { "field": "code", "message": "Код для квартиры уже установлен" } ] } ```
Примеры **CURL:** ```bash 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

Успешное удаление кодов

404 Not Found

Ошибка при отсутствии кодов на панели

**Тело:**
**Название** **Тип** **Описание**
errors ArrayМассив возвращаемых ошибок.
messgae String Сообщение об ошибке.
```json { "errors": [ { "message": "Коды на домофонной панели отсутствуют" } ] } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request DELETE 'http://192.168.0.100:80/openCode/clear' ```
#### /openCode/{номер квартиры} Методы получения и изменения кодов у указанной квартиры.
Описание параметров
**Название** **Тип** **Описание**
codeIntegerИдентификатор "Кода доступа".
panelCodeIntegerНомер квартиры к которой привязан "Код доступа".
GET - Получение кодов
Ответы
200 OK

Успешное получение кодов

**Тело:** ```json [ { "code": 12345, "panelCode": 0 } ] ```
400 Bad Request

Ошибка при указании не верного номера квартиры

**Тело:**
**Название** **Тип** **Описание**
errorsIntegerМассив возвращаемых ошибок.
message String Сообщение об ошибке.
```json { "errors": [ { "message": "Неверный формат номера квартиры" } ] } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/openCode/0' ```
DELETE - Удаление кодов
Ответы
204 OK

Успешное удаление кодов для указанной квартиры

404 Not Found

Ошибка при удалении не существующих кодов для указанной квартиры

**Тело:**
**Название** **Тип** **Описание**
errorsArrayМассив возвращаемых ошибок.
message String Сообщение об ошибке.
```json { "errors": [ { "message": "Код в указанной квартире не существует" } ] } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request DELETE 'http://192.168.0.100:80/openCode/1' ```
#### /openCode/{номер квартиры}/{идентификатор кода} Метод удаления указанного кода для указанной квартиры.
DELETE - Удаление кода
Ответы
204 OK

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

404 Not Found

Ошибка при удалении не существующего кода для указанной квартиры

**Тело:**
**Название** **Тип** **Описание**
errors ObjectМассив возвращаемых ошибок.
message String Сообщение об ошибке.
```json { "errors": [ { "message": "Код в указанной квартире не существует" } ] } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request DELETE 'http://192.168.0.100:80/openCode/0/12345' ```
--- ### **Ключи** #### /key/settings Методы получение и изменения параметров панели при взаимодействии с ключами.
Описание параметров
**Название** **Тип** **Описание**
modeIntegerРежим работы базы данных с ключами 4 или 7 байт. 1 - режим 4 байта; 2 - режим 7 байт; \- Ограничения: 1 - 2 \- По умолчанию: 1 **ВАЖНО:** При переключении режимов из базы данных будут удалены все ключи и вся информация о прошитых секторах.
autocollectObjectПараметры режима автосбора ключей.
enabled Boolean Флаг включения / выключения режима. \- По умолчанию: false
room Integer Номер квартиры к которой будут привязаны приложенные ключи. \- По умолчанию: 0
encryptionObjectПараметры проверки шифрованных ключей.
enabled Boolean Флаг включения / выключения режима. \- По умолчанию: false
key\_type String Тип ключа для авторизации в сектор ключа. \- Ограничения: A, B \- По умолчанию: A
key\_auth String Значение ключа для авторизации в сектор ключа. \- Длина строки: 12 символов (16-ой системе) \- По умолчанию: FFFFFFFFFFFF
sector Integer Сектор, который будет проверяться на шифрование. \- Ограничения: 0 - 15 \- По умолчанию: 0
increment Object Параметры инкрементирования значения в указанном блоке сектора.
enabled Boolean Флаг включения / выключения режима. \- По умолчанию: false
block Integer Блок в котором будет увеличиваться значение инкремента. \- Ограничения: 0 - 2 \- По умолчанию: 0
openByError Boolean Флаг открытия двери при ошибке инкремента. \- По умолчанию: false
kb\_codesBooleanФлаг включения / выключения сервисных кодов. \- По умолчанию: true **ВАЖНО!** При использовании панели в продуктивной среде на постоянной основе **НЕОБХОДИМО** выключать сервисные коды.
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "mode": 1, "autocollect": { "enabled": false, "room": 0 }, "encryption": { "enabled": false, "key_type": "A", "key_auth": "FFFFFFFFFFFF", "sector": 0, "increment": { "enabled": true, "block": 0, "openByError": true } }, "kb_codes": false } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/key/settings' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "mode": 1, "autocollect": { "enabled": false, "room": 0 }, "encryption": { "enabled": false, "key_type": "A", "key_auth": "FFFFFFFFFFFF", "sector": 0, "increment": { "enabled": true, "block": 0, "openByError": true } }, "kb_codes": false } ```
Ответы
200 OK

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

**Тело:** ```json { "mode": 1, "autocollect": { "enabled": false, "room": 0 }, "encryption": { "enabled": false, "key_type": "A", "key_auth": "FFFFFFFFFFFF", "sector": 0, "increment": { "enabled": true, "block": 0, "openByError": true } }, "kb_codes": false } ```
400 Bad Request

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

**Тело:**
**Название** **Тип** **Описание**
errorsArrayМассив возвращаемых ошибок.
message String Сообщение об ошибке.
```json { "errors": [ { "message": "Ключ уже существует - 000000AABBCCDD" } ] } ```
Примеры **CURL:** ```bash curl \ --header 'Content-Type: application/json' \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/key/settings' \ --data-raw '{ "mode": 1, "autocollect": { "enabled": false, "room": 0 }, "encryption": { "enabled": false, "key_type": "B", "key_auth": "FFFFFFFFFFF3", "sector": 0, "increment": { "enabled": true, "block": 0, "openByError": true } }, "kb_codes": false }' ```
#### /key/store Методы получения и добавления ключей.
Описание параметров
**Название** **Тип** **Описание**
uuidStringИдентификатор ключа.
panelCodeIntegerНомер квартиры к которой привязан ключ.
encryptionBooleanФлаг включения / выключения персональной проверки шифрования. **ВАЖНО!** Работает при включенном общем параметре "Проверка шифрования".
GET - Получение ключей
Ответы
200 OK

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

**Тело:** ```json [ { "uuid": "000000AABBCCDD", "panelCode": 0, "encryption": true }, { "uuid": "000000BBCCDDEE", "panelCode": 1, "encryption": true }, { "uuid": "000000CCDDEEFF", "panelCode": 2, "encryption": true } ] ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/key/store' ```
POST - Добавление ключа
Запрос **Тело:** ```json { "uuid": "000000AABBCCDD", "panelCode": 0, "encryption": true } ```
Ответы
200 OK

Успешное добавление ключа

**Тело:** ```json { "uuid": "000000AABBCCDD", "panelCode": 0, "encryption": true } ```
Примеры **CURL:** ```bash 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": 0, "encryption": true }' ```
#### /key/store/clear Метод удаления всех ключей.
DELETE - Удаление ключей
Ответы
204 OK

Успешное удаление ключей

Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request DELETE 'http://192.168.0.100:80/key/store/clear' ```
#### /key/store/merge Метод изменения указанных ключей.
Описание параметров
**Название** **Тип** **Описание**
uuidStringИдентификатор ключа.
panelCodeIntegerНомер квартиры к которой привязан ключ.
encryptionBooleanФлаг включения / выключения персональной проверки шифрования. **ВАЖНО!** Работает при включенном общем параметре "Проверка шифрования".
PUT - Изменение ключей
Запрос **Тело:** ```json [ { "uuid": "000000AABBCCDD", "panelCode": 0, "encryption": true }, { "uuid": "000000BBCCDDEE", "panelCode": 0, "encryption": true } ] ```
Ответы
200 OK

Успешное изменение ключей

**Тело:** ```json [ { "uuid": "000000AABBCCDD", "panelCode": 0, "encryption": true }, { "uuid": "000000BBCCDDEE", "panelCode": 0, "encryption": true } ] ```
Примеры **CURL:** ```bash curl \ --header 'Content-Type: application/json' \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/key/store/merge' \ --data-raw '[ { "uuid": "000000AABBCCDD", "panelCode": 0, "encryption": true }, { "uuid": "000000BBCCDDEE", "panelCode": 0, "encryption": true } ]' ```
#### /key/store/{идентификатор ключа} Методы получения и изменения указанного ключа.
Описание параметров
**Название** **Тип** **Описание**
uuidStringИдентификатор ключа.
panelCodeIntegerНомер квартиры к которой привязан ключ.
encryptionBooleanФлаг включения / выключения персональной проверки шифрования. **ВАЖНО!** Работает при включенном общем параметре "Проверка шифрования".
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "uuid": "000000AABBCCDD", "panelCode": 0, "encryption": true } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/key/store/000000AABBCCDD' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "panelCode": 0, "encryption": true } ```
Ответы
200 OK

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

**Тело:** ```json { "uuid": "000000AABBCCDD", "panelCode": 0, "encryption": true } ```
Примеры **CURL:** ```bash 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": 0, "encryption": true }' ```
DELETE - Удаление ключа
Ответы
204 OK

Успешное удаление ключа

Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request DELETE 'http://192.168.0.100:80/key/store/000000AABBCCDD' ```
#### /v1/key/markup/mifare Методы получения и изменения разметки "Mifare" для прошивки ключей.
Описание параметров
**Название** **Тип** **Описание**
enabledBooleanФлаг включения / выключения прошивки ключей. \- По умолчанию: false
numSectorsIntegerКоличество прошиваемых секторов за раз в момент удержания ключа. \- Ограничения: 1 - 16 \- По умолчанию: 16
markupObjectРазметка для прошивки 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

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

**Тело:** ```json { "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:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/v1/key/markup/mifare' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "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 } } } ```
Ответы
200 OK

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

**Тело:** ```json { "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:** ```bash 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:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/v1/key/markup/mifare' ```
--- ### **Квартиры** #### /panelCode Методы получения и добавления квартир на устройство.
Описание параметров
**Название** **Тип** **Описание**
panelCodeIntegerНомер квартиры.
callsEnabledObjectПараметры разрешения вызовов в АТ и SIP.
sip Boolean Флаг включения / выключения вызовов в SIP. \- По умолчанию: true
handset Boolean Флаг включения / выключения вызовов в АТ. \- По умолчанию: true
soundOpenThBooleanФлаг включения / выключения звука открытия двери при открытии привязанным ключом к квартире.
typeSoundIntegerРежимы эхоподавления при вызове в АТ. \- Ограничения: 0, 1, 2, 3 - 0, 1, 2 - варианты эхоподавления; \- 3 - общие настройки. \- По умолчанию: 3
volumesObjectПерсональные громкости при вызове в квартиру. **Важно!** Значения "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
resistancesObjectПараметры сопротивления трубки для смены состояний. **Важно!** Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир.
quiescent Integer Уровень поднятия трубки. \- Ограничения: 0 - 254, 255 или null \- По умолчанию: null
answer Integer Уровень открытия двери. \- Ограничения: 0 - 254, 255 или null \- По умолчанию: null
GET - Получение квартир
Ответы
200 OK

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

**Тело:** ```json [ { "panelCode": 1, "callsEnabled": { "sip": true, "handset": true }, "soundOpenTh": null, "typeSound": 3, "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, "typeSound": 3, "volumes": { "thCall": null, "thTalk": null, "uartFrom": null, "uartTo": null, "panelCall": null, "panelTalk": null }, "resistances": { "quiescent": null, "answer": null }, "sipAccounts": [ "1" [ } ] ```
Примеры **CURL:** ```bash curl --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/panelCode' ```
POST - Добавление квартиры
Запрос **Тело:** ```json { "panelCode": 1, "callsEnabled": { "sip": false, "handset": true }, "soundOpenTh": null, "typeSound": 3, "volumes": { "thCall": null, "thTalk": null, "uartFrom": null, "uartTo": null, "panelCall": null, "panelTalk": null }, "resistances": { "quiescent": null, "answer": null } } ```
Ответы
200 OK

Успешное добавление квартиры

**Тело:** ```json { "panelCode": 1, "callsEnabled": { "sip": false, "handset": true }, "soundOpenTh": null, "typeSound": 3, "volumes": { "thCall": null, "thTalk": null, "uartFrom": null, "uartTo": null, "panelCall": null, "panelTalk": null }, "resistances": { "quiescent": null, "answer": null } } ```
400 Bad Request

Ошибка при добавлении существующей квартиры

**Тело:**
**Название** **Тип** **Описание**
errorsArrayМассив возвращаемых ошибок.
field String Название переменной к которой относиться ошибка.
message String Сообщение об ошибки для переменной из поля "field".
```json { "errors": [ { "field": "panelCode", "message": "Квартира уже существует - 1" } ] } ```
Примеры **CURL:** ```bash 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, "typeSound": 3, "volumes": { "thCall": null, "thTalk": null, "uartFrom": null, "uartTo": null, "panelCall": null, "panelTalk": null }, "resistances": { "quiescent": null, "answer": null } }' ```
#### /panelCode/clear Метод удаления всех квартир с устройства.
DELETE - Удаление квартир
Ответы
204 OK

Успешное удаление квартир

Примеры **CURL:** ```bash 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
typeSoundIntegerОбщий тип эхоподавления используемый для персональных настроек квартир со значением "255" или "null". \- Ограничение: 0, 1, 3 \- По умолчанию: 3
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "consiergeRoom": "999", "sosRoom": "", "sosDelay": true, "soundOpenPanel": true, "soundOpenTh": false, "typeSound": 3, "sosType": true, "sosDelayTime": 255 } ```
Примеры **CURL:** ```bash curl --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/panelCode/settings' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "consiergeRoom": "999", "sosRoom": "", "sosDelay": true, "soundOpenPanel": true, "soundOpenTh": false, "typeSound": 3, "sosType": true, "sosDelayTime": 255 } ```
Ответы
200 OK

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

**Тело:** ```json { "consiergeRoom": "999", "sosRoom": "", "sosDelay": true, "soundOpenPanel": true, "soundOpenTh": false, "typeSound": 3, "sosType": true, "sosDelayTime": 255 } ```
Примеры **CURL:** ```bash 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 - Получение замеров
Запрос **Тело:** ```json [1, 2, 3, 4, 5] ```
Ответы
200 OK

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

**Тело:** ```json { "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:** ```bash 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/{номер квартиры} Методы получения и изменения персональных параметров квартиры.
Описание параметров
**Название** **Тип** **Описание**
panelCodeIntegerНомер квартиры.
callsEnabledObjectПараметры разрешения вызовов в АТ и SIP.
sip Boolean Флаг включения / выключения вызовов в SIP. \- По умолчанию: true
handset Boolean Флаг включения / выключения вызовов в АТ. \- По умолчанию: true
soundOpenThBooleanФлаг включения / выключения звука открытия двери при открытии привязанным ключом к квартире.
typeSoundIntegerРежимы эхоподавления при вызове в АТ. \- Ограничения: 0, 1, 3 \- По умолчанию: 3
volumesObjectПерсональные громкости при вызове в квартиру. **Важно!** Значения "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
resistancesObjectПараметры сопротивления трубки для смены состояний. **Важно!** Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир.
quiescent Integer Уровень поднятия трубки. \- Ограничения: 0 - 254, 255 или null \- По умолчанию: null
answer Integer Уровень открытия двери. \- Ограничения: 0 - 254, 255 или null \- По умолчанию: null
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "panelCode": 1, "callsEnabled": { "sip": true, "handset": true }, "soundOpenTh": null, "typeSound": 3, "volumes": { "thCall": null, "thTalk": null, "uartFrom": null, "uartTo": null, "panelCall": null, "panelTalk": null }, "resistances": { "quiescent": null, "answer": null } } ```
Примеры **CURL:** ```bash curl --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/panelCode/1' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "panelCode": 1, "callsEnabled": { "sip": true, "handset": true }, "soundOpenTh": null, "typeSound": 3, "volumes": { "thCall": null, "thTalk": null, "uartFrom": null, "uartTo": null, "panelCall": null, "panelTalk": null }, "resistances": { "quiescent": null, "answer": null } } ```
Ответы
200 OK

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

**Тело:** ```json { "panelCode": 1, "callsEnabled": { "sip": true, "handset": true }, "soundOpenTh": null, "typeSound": 3, "volumes": { "thCall": null, "thTalk": null, "uartFrom": null, "uartTo": null, "panelCall": null, "panelTalk": null }, "resistances": { "quiescent": null, "answer": null } } ```
Примеры **CURL:** ```bash 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, "typeSound": 3, "volumes": { "thCall": null, "thTalk": null, "uartFrom": null, "uartTo": null, "panelCall": null, "panelTalk": null }, "resistances": { "quiescent": null, "answer": null } }' ```
DELETE - Удаление квартиры
Ответы
204 OK

Успешное удаление квартиры

Примеры **CURL:** ```bash curl --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request DELETE 'http://192.168.0.100:80/panelCode/1' ```
#### /panelCode/{номер квартиры}/levels Методы получения и изменения персональных уровней громкости и сопротивлений абонентских трубок.
Описание параметров
**Название** **Тип** **Описание**
volumesObjectПерсональные громкости при вызове в квартиру. **Важно!** Значения "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
resistancesObjectПараметры сопротивления трубки для смены состояний. **Важно!** Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир.
quiescent Integer Уровень поднятия трубки. \- Ограничения: 0 - 254, 255 или null \- По умолчанию: null
answer Integer Уровень открытия двери. \- Ограничения: 0 - 254, 255 или null \- По умолчанию: null
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "volumes": { "thCall": null, "thTalk": null, "uartFrom": null, "uartTo": null, "panelCall": null, "panelTalk": null }, "resistances": { "quiescent": null, "answer": null } } ```
Примеры **CURL:** ```bash curl --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/panelCode/1/levels' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "volumes": { "thCall": null, "thTalk": null, "uartFrom": null, "uartTo": null, "panelCall": null, "panelTalk": null }, "resistances": { "quiescent": null, "answer": null } } ```
Ответы
200 OK

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

**Тело:** ```json { "volumes": { "thCall": null, "thTalk": null, "uartFrom": null, "uartTo": null, "panelCall": null, "panelTalk": null }, "resistances": { "quiescent": null, "answer": null } } ```
Примеры **CURL:** ```bash 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 } }' ```
#### /panelCode/{номер квартиры}/resist Метод получения уровня сопротивления трубки у указанной квартиры.
Описание параметров
**Название** **Тип****Описание**
resist IntegerЗначение сопротивления измеренное панелью. \- Ограничения: 0 - 255
status StringПоложение трубки полученное из ограничений общих параметров "quiesence" и "answer" \- Ограничения: \- down - положенная трубка (зеленый); \- up - поднятая трубка (желтый).
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "resist": 75, "status": "down" } ``` или ```json { "resist": 190, "status": "up" } ```
500 Internal Server Error

Внутренняя ошибка при обработке метода

**Тело:**
**Название** **Тип** **Описание**
errors ArrayМассив возвращаемых ошибок.
message String Сообщение с ошибкой.
```json { "errors": [ { "message": "Обрыв трубки, кв. 1" } ] } ```
Примеры **CURL:** ```bash curl --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/panelCode/1/resist' ```
#### /panelCode/rooms\_update Метод массового обновления параметров указанных квартир.
Описание параметров
**Название** **Тип** **Описание**
panelCodeIntegerНомер квартиры.
callsEnabledObjectПараметры разрешения вызовов в АТ и SIP.
sip Boolean Флаг включения / выключения вызовов в SIP. \- По умолчанию: true
handset Boolean Флаг включения / выключения вызовов в АТ. \- По умолчанию: true
soundOpenThBooleanФлаг включения / выключения звука открытия двери при открытии привязанным ключом к квартире.
typeSoundIntegerРежимы эхоподавления при вызове в АТ. \- Ограничения: 0, 1, 2, 3 - 0, 1, 2 - варианты эхоподавления; \- 3 - общие настройки. \- По умолчанию: 3
volumesObjectПерсональные громкости при вызове в квартиру. **Важно!** Значения "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
resistancesObjectПараметры сопротивления трубки для смены состояний. **Важно!** Значения "255" или "null" означают, что используются не персональные настройки квартир, а общие настройки для квартир.
quiescent Integer Уровень поднятия трубки. \- Ограничения: 0 - 254, 255 или null \- По умолчанию: null
answer Integer Уровень открытия двери. \- Ограничения: 0 - 254, 255 или null \- По умолчанию: null
PUT - Обновление параметров
Запрос **Тело:** ```json [ { "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 **Заголовки:**
**Название** **Значение****Описание**
Content-Type text/html; charset=ISO-8859-1Тип возвращаемых данных
400 Bad Request

Ошибка при добавлении существующей квартиры

**Тело:**
**Название** **Тип** **Описание**
errorsArrayМассив возвращаемых ошибок.
message String Сообщение об ошибке.
```json { "errors": [ { "message": "Не удалось распарсить JSON 15: ']' expected near end of file" } ] } ```
Примеры **CURL:** ```bash 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 } } ]' ```
--- ### **Калитка** #### /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

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

**Тело:** ```json { "gateMode": false, "prefixHouse": false, "direct": { "mode": false, "rules": { "0": { "1-10": "192.168.0.101" } } } } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/gate/settings' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "gateMode": false, "prefixHouse": false, "direct": { "mode": false, "rules": { "0": { "1-10": "192.168.0.101" } } } } ```
Ответы
200 OK

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

**Тело:** ```json { "gateMode": false, "prefixHouse": false, "direct": { "mode": false, "rules": { "0": { "1-10": "192.168.0.101" } } } } ```
Примеры **CURL:** ```bash 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 Методы получения и изменения общих уровней громкости и сопротивлений абонентских трубок.
Описание параметров
**Название** **Тип** **Описание**
resistancesObjectПараметры сопротивления трубки для смены состояний. **Важно!** Значения "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
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

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

**Тело:** ```json { "resistances": { "break": 240, "error": 105, "quiescent": 255, "answer": 255 }, "volumes": { "panelCall": 110, "panelTalk": 125, "thTalk": 250, "thCall": 130, "uartFrom": 135, "uartTo": 255 } } ```
Примеры **CURL:** ```bash curl --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/levels' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "resistances": { "break": 240, "error": 105, "quiescent": 255, "answer": 255 }, "volumes": { "panelCall": 110, "panelTalk": 125, "thTalk": 250, "thCall": 130, "uartFrom": 135, "uartTo": 255 } } ```
Ответы
200 OK

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

**Тело:** ```json { "resistances": { "break": 240, "error": 105, "quiescent": 255, "answer": 255 }, "volumes": { "panelCall": 110, "panelTalk": 125, "thTalk": 250, "thCall": 130, "uartFrom": 135, "uartTo": 255 } } ```
Примеры **CURL:** ```bash 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 } }' ```
#### /levels/realtime Методы получения и изменения уровней громкости только во время текущего вызова.
Описание параметров
**Название** **Тип** **Описание**
thCallIntegerГромкость мелодии трубки во время вызова в АТ. \- Ограничения: 0 - 255 \- По умолчанию: 0
thTalkIntegerГромкость в трубке во время разговора по АТ. \- Ограничения: 0 - 255 \- По умолчанию: 0
uartFromIntegerГромкость на панели во время разговора по SIP. \- Ограничения: 0 - 255 \- По умолчанию: 0
uartToIntegerУсиление микрофона панели во время разговора по SIP. \- Ограничения: 0 - 255 - По умолчанию: 0
panelCallIntegerСистемные звуки панели. \- Ограничения: 0 - 255 \- По умолчанию: 0
panelTalkIntegerГромкость на панели во время разговора по АТ. \- Ограничения: 0 - 255 \- По умолчанию: 0
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "thCall": 0, "panelCall": 0, "thTalk": 0, "panelTalk": 0, "uartFrom": 0, "uartTo": 0 } ```
Примеры **CURL:** ```bash curl --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/levels/realtime' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "thCall": 0, "panelCall": 0, "thTalk": 0, "panelTalk": 0, "uartFrom": 0, "uartTo": 0 } ```
Ответы
200 OK

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

**Тело:** ```json { "thCall": 0, "panelCall": 0, "thTalk": 0, "panelTalk": 0, "uartFrom": 0, "uartTo": 0 } ```
Примеры **CURL:** ```bash curl --header 'Content-Type: application/json' \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/levels/realtime' \ --data-raw '{ "thCall": 0, "panelCall": 0, "thTalk": 0, "panelTalk": 0, "uartFrom": 0, "uartTo": 0 }' ```
--- ### **Логи** #### /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:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/log/last' ```
#### /v2/logs/{сервис} Метод получения логов указанного сервиса.

Список поддерживаемых параметров "{сервис}": - **all** - все логи устройства; - **api** - логи API сервера; - **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:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/v2/log/all' ```
--- ### **Настройки сети** #### /v1/network Методы получения и изменения виртуальных сетевых интерфейсов.

Устройство поддерживает до 3-х виртуальных сетевых интерфейсов.

Описание параметров
**Название** **Тип****Описание**
inet StringТип виртуального сетевого интерфейса. Ограничения: dhcp, static
inetStatic ObjectПараметры для настройки статического виртуального сетевого интерфейса.
netmask String Сетевая маска при подключении к сети. \- Ограничения: IPv4 адрес \- По умолчанию: 255.255.255.0
gateway String Сетевой шлюз при подключении к сети. \- Ограничения: IPv4 адрес \- По умолчанию: ""
ipAddress String IP адрес устройства при подключении к сети. \- Ограничения: IPv4 адрес \- По умолчанию: 192.168.0.100
dnsServer String IP адрес DNS сервера. \- Ограничения: IPv4 адрес \- По умолчанию: ""
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json [ { "inet": "dhcp" }, { "inet": "static", "inetStatic": { "netmask": "255.255.255.0", "gateway": "", "ipAddress": "192.168.0.100", "dnsServer": "" } } ] ```
Примеры **CURL:** ```bash curl --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/v1/network' ```
PUT - Изменение параметров
Запрос **Тело:** ```json [ { "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" } } ] ```
Ответы
200 OK

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

**Тело:** ```json [ { "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" } } ] ```
Примеры **CURL:** ```bash 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

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

**Тело:** ```json [ { "inet": "dhcp" }, { "inet": "static", "inetStatic": { "netmask": "255.255.255.0", "gateway": "", "ipAddress": "192.168.0.100", "dnsServer": "" } } ] ```
Примеры **CURL:** ```bash curl --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request DELETE 'http://192.168.0.100:80/v1/network' ```
--- ### **Уведомления** #### /v1/notification/forced/list Метод получения списка аудиофайлов для воспроизведения.
Описание параметров
**Название** **Тип** **Описание**
nameStringНаименование файла.
GET - Получение списка
Ответы
200 OK

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

**Тело:** ```json [ { "name": "test.wav" } ] ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/v1/notification/forced/list' ```
#### /v1/notification/forced/play Метод запуска воспроизведения указанного аудиофайла.
Описание параметров
**Название** **Тип** **Описание**
nameStringНаименование файла для запуска воспроизведения.
repeatIntegerКоличество повторений воспроизведений указанного файла.
PUT - Воспроизведения аудио файла
Запрос **Тело:** ```json { "name": "test.wav", "repeat": 3 } ```
Ответы
200 OK

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

**Тело:** ```json { "name": "test.wav", "repeat": 3 } ```
Примеры **CURL:** ```bash curl \ --header 'Content-Type: application/json' \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/v1/notification/forced/play' \ --data-raw '{ "name": "test.wav", "repeat": 3 }' ```
#### /v1/notification/forced/stop Метод остановки воспроизводимого аудиофайла.
PUT - Остановка аудио файла
Ответы
200 OK

Успешная остановка воспроизводимого аудио файла

**Заголовки:**
**Название** **Значение** **Описание**
Content-Type text/html; charset=ISO-8859-1Тип возвращаемых данных
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/v1/notification/forced/stop' ```
--- ### **Бегущая строка** #### /panelDisplay/settings Методы получения и изменения параметров бегущей строки на дисплее.
Описание параметров
**Название** **Тип** **Описание**
strDisplayOffBooleanФлаг включения / выключения бегущей строки. \- По умолчанию: false
imgStrStringТекст отображения на дисплее. \- Длина строки: 0 - 10 символов \- По умолчанию: "" **ВАЖНО!** Поддерживается латинский алфавит и цифры ASCII.
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "strDisplayOff": true, "imgStr": "" } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/panelDisplay/settings' ```
PUT - Изменить параметры
Запрос **Тело:** ```json { "strDisplayOff": true, "imgStr": "" } ```
Ответы
200 OK

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

**Тело:** ```json { "strDisplayOff": true, "imgStr": "" } ```
Примеры **CURL:** ```bash curl \ --header 'Content-Type: application/json' \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/panelDisplay/settings' \ --data-raw '{ "strDisplayOff": true, "imgStr": "" }' ```
--- ### **Реле** #### /relay/info Метод получения поддерживаемых номеров реле.
GET - Получение параметров
Ответы
200 OK

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

**Заголовки:**
**Название** **Значение** **Описание**
Content-Type text/html; charset=ISO-8859-1Тип возвращаемых данных
**Тело:** ```json [1, 2] ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/relay/info' ```
#### /relay/settings Методы получения и изменения общих параметров реле.
Описание параметров
**Название** **Тип** **Описание**
inverseDoorBooleanФлаг включения / выключения программного инвертирования "Основного" и "Дополнительного" выходов. \- По умолчанию: false
alwaysOpenNetModeBooleanФлаг включения / выключения режима открытых дверей при недоступности сети. \- По умолчанию: false
alwaysOpenBooleanФлаг включения / выключения режима открытых дверей. \- По умолчанию: false
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "inverseDoor": false, "alwaysOpenNetMode": false, "alwaysOpen": false } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/relay/settings' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "inverseDoor": false, "alwaysOpenNetMode": false, "alwaysOpen": false } ```
Ответы
200 OK

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

**Тело:** ```json { "inverseDoor": false, "alwaysOpenNetMode": false, "alwaysOpen": false } ```
Примеры **CURL:** ```bash curl \ --header 'Content-Type: application/json' \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/relay/settings' \ --data-raw '{ "inverseDoor": true, "alwaysOpenNetMode": false, "alwaysOpen": false }' ```
#### /relay/{номер реле}/open Метод открытия указанного номера реле.
PUT - Открытие реле
Запрос **Заголовки:**
**Название** **Значение** **Описание**
Authorization Basic cm9vdDoxMjM0NTY=Заголовок "Базовой авторизации"
Ответы
204 OK

Успешное открытие реле

Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/relay/1/open' ```
#### /relay/{номер реле}/settings Методы получения и изменения параметров указанного номера реле.
Описание параметров
**Название** **Тип** **Описание**
switchTimeIntegerВремя удержания двери в открытом состоянии. \- Ограничения: 1 - 10 секунд \- По умолчанию: 1
alwaysOpenBooleanФлаг включения / выключения режима открытых дверей. \- По умолчанию: false
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "switchTime": 1, "alwaysOpen": false } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/relay/1/settings' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "switchTime": 1, "alwaysOpen": false } ```
Ответы
200 OK

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

**Тело:** ```json { "switchTime": 1, "alwaysOpen": false } ```
Примеры **CURL:** ```bash 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, "alwaysOpen": false }' ```
--- ### **SIP** #### /sip/options Методы получения и изменения sip-параметров для управления вызовом;
Описание параметров
**Название** **Тип** **Описание**
dtmfObjectПараметры DTMF для выходов;
1, 2 String Символ необходимый для открытия выхода 1, 2. \- Длина: 1 символ - По умолчанию: 1, 2
callDelayIntegerЗадержка вызова в АТ. \- Ограничения: 0 - 255 секунд \- По умолчанию: 0 секунд
talkDurationIntegerВремя разговора с момента поднятия трубки в АТ или в SIP. \- Ограничения: 1 - 255 секунд \- По умолчанию: 180 секунд
ringDurationIntegerВремя совершения вызова до поднятия трубки в АТ или в SIP. \- Ограничения: 1 - 255 секунд \- По умолчанию: 60 секунд
echoDBooleanФлаг включения / выключения алгоритма эхоподавления в SIP. \- По умолчанию: true
GET - Получение параметров
Запрос **Заголовки:**
**Название** **Значение** **Описание**
Authorization Basic cm9vdDoxMjM0NTY=Заголовок "Базовой авторизации"
Ответы
200 OK **Заголовки:**
**Название** **Значение** **Описание**
Content-Type application/jsonТип возвращаемых данных
Content-Length 90Размер возвращаемых данных
X-Device-Mac 08:13:00:00:00:00Мак адрес устройства
**Тело:**
**Название** **Тип** **Описание**
dtmfObjectПараметры DTMF для выходов;
1 String Символ необходимый для открытия выхода 1. \- Длина: 1 символ - По умолчанию: 1
2 String Символ необходимый для открытия выхода 2. \- Длина: 1 символ - По умолчанию: 2
callDelayIntegerЗадержка вызова в АТ. \- Ограничения: 0 - 255 секунд \- По умолчанию: 0 секунд
talkDurationIntegerВремя разговора с момента поднятия трубки в АТ или в SIP. \- Ограничения: 1 - 255 секунд \- По умолчанию: 180 секунд
ringDurationIntegerВремя совершения вызова до поднятия трубки в АТ или в SIP. \- Ограничения: 1 - 255 секунд \- По умолчанию: 60 секунд
echoDBooleanФлаг включения / выключения алгоритма эхоподавления в SIP. \- По умолчанию: true
```json { "dtmf": { "1": "1", "2": "2" }, "callDelay": 0, "talkDuration": 180, "ringDuration": 60, "echoD": true } ```
500 Internal Server Error

Внутренняя ошибка при обработке метода

Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/sip/options' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "dtmf": { "1": "1", "2": "2" }, "callDelay": 0, "talkDuration": 180, "ringDuration": 60, "echoD": true } ```
Ответы
200 OK

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

**Тело:** ```json { "dtmf": { "1": "1", "2": "2" }, "callDelay": 0, "talkDuration": 180, "ringDuration": 60, "echoD": true } ```
Примеры **CURL:** ```bash 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-параметров для авторизации на сервере.
Описание параметров
**Название** **Тип** **Описание**
videoEnableBooleanФлаг включения / выключения видео-потока в видео вызове; \- По умолчанию: true
remoteObjectПараметры авторизации на SIP сервере.
port Integer Порт сервера на который отправляются запросы. \- По умолчанию: 5060
domain String Адрес сервера на который отправляются запросы. \- По умолчанию: domain.com
username String Логин для авторизации на сервере. \- По умолчанию: ""
password String Пароль для авторизации на сервере. \- По умолчанию: ""
registerStatus Boolean Флаг текущего состояния авторизации на сервере.
GET - Получение параметров
Запрос **Заголовки:**
**Название** **Значение** **Описание**
Authorization Basic cm9vdDoxMjM0NTY=Заголовок "Базовой авторизации"
Ответы
200 OK

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

**Заголовки:**
**Название** **Значение** **Описание**
Content-Type application/jsonТип возвращаемых данных
Content-Length 116Размер возвращаемых данных
X-Device-Mac 08:13:00:00:00:00Мак адрес устройства
**Тело:**
**Название** **Тип** **Описание**
videoEnableBooleanФлаг включения / выключения видео-потока в видео вызове; \- По умолчанию: true
remoteObjectПараметры авторизации на SIP сервере.
port Integer Порт сервера на который отправляются запросы. \- По умолчанию: 5060
domain String Адрес сервера на который отправляются запросы. \- По умолчанию: domain.com
username String Логин для авторизации на сервере. \- По умолчанию: ""
password String Пароль для авторизации на сервере. \- По умолчанию: ""
registerStatus Boolean Флаг текущего состояния авторизации на сервере.
```json { "videoEnable": true, "remote": { "port": 5060, "domain": "domain.com", "username": "", "password": "", "registerStatus": false } } ```
Примеры **CURL:** ```bash curl --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/sip/settings' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "videoEnable": true, "remote": { "port": 5060, "domain": "domain.com", "username": "", "password": "" } } ```
Ответы
200 OK

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

**Тело:** ```json { "videoEnable": true, "remote": { "port": 5060, "domain": "domain.com", "username": "", "password": "", "registerStatus": false } } ```
500 Internal Server Error

Внутренняя ошибка при обработке метода

**Тело:** ```json { "errors": [ { "field": "SetServer", "message": "Ошибка установки параметра" } ] } ```
Примеры **CURL:** ```bash curl --header 'Content-Type: application/json' \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/sip/settings' \ --data-raw '{ "videoEnable": true, "remote": { "port": 5060, "domain": "domain.com", "username": "", "password": "" } }' ```
#### /sip/test/{номер квартиры} Метод создания тестового вызова в абонентскую трубку и SIP для указанного номера квартиры.
GET - Отправка тестового вызова
Ответы
200 OK

Успешная отправка тестового вызова

**Заголовки:**
**Название** **Значение** **Описание**
Content-Type text/html; charset=ISO-8859-1Тип возвращаемых данных
Примеры **CURL:** ```bash 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:** ```bash 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:** ```bash curl --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/sip/test/analog/1' ```
--- ### **Вызовы** #### /v1/call/stop Метод завершения текущего вызова.
PUT - Завершение вызова
Ответы
200 OK

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

**Заголовки:**
**Название** **Значение** **Описание**
Content-Type text/html; charset=ISO-8859-1Тип возвращаемых данных
Примеры **CURL:** ```bash curl --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/v1/call/stop' ```
--- ### **Матрицы** #### /switch/info/models Метод получения списка поддерживаемых коммутаторов устройством.
Описание параметров
**Название** **Тип** **Описание**
idStringМодель поддерживаемового коммутатора.
nameStringНаименование поддерживаемового коммутатора.
eCountIntegerКоличество единиц используемых для коммутации.
GET - Получение списка
Ответы
200 OK

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

**Тело:** ```json [ { "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:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/switch/info/models' ```
#### /switch/settings Методы получения и изменения общих параметров для коммутаторов.
Описание параметров
**Название** **Тип** **Описание**
modelIdStringМодель используемого коммутатора. Метод для получения поддерживаемых коммутаторов: [**/switch/info/models**](#bkmrk-%2Fswitch%2Finfo%2Fmodels)
usingCom3BooleanФлаг включения / выключения использования "Платы управления замком" или "Третьего коммутатора". \- По умолчанию: true
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "modelId": "CYFRAL", "usingCom3": true } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/switch/settings' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "modelId": "CYFRAL", "usingCom3": true } ```
Ответы
200 OK

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

**Тело:** ```json { "modelId": "CYFRAL", "usingCom3": true } ```
Примеры **CURL:** ```bash curl \ --header 'Content-Type: application/json' \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/switch/settings' \ --data-raw '{ "modelId": "CYFRAL", "usingCom3": true }' ```
#### /switch/matrix/{номер матрицы коммутации} Методы получения и изменения указанной матрицы коммутации.

Панель поддерживает подключение до 2-х коммутаторов: - Визит. Панель поддерживает подключение до 3-х коммутаторов: - Элтис; - Бевард; - Цифрал; - Метаком; - Факториал.

Описание параметров
**Название** **Тип** **Описание**
capacityIntegerРазмер указанного коммутатора. \- Ограничения: 0, 10, 20, 40, 64, 80, 100, 160, 220 - По умолчанию: 0
matrixArrayДвумерный массив с номерами квартир для коммутатора.
GET - Получение параметров
Ответы
200 OK **Тело:** ```json { "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:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/switch/matrix/1' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "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

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

**Тело:** ```json { "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:** ```bash curl \ --header 'Content-Type: application/json' \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET '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/mcu/info Метод получения информации о микроконтроллере.
Описание параметров
**Название** **Тип** **Описание**
powerObjectПараметры питания панели;
dc Float Входное напряжение;
chipIdIntegerИдентификатор микроконтроллера;
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "power": { "dc": 12.412 }, "chipId": 2321944743649890300 } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/v1/mcu/info' ```
--- ### **Системное** #### /system/tz Метод получения поддерживаемых временных зон.
GET - Получение списка
Ответы
200 OK

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

**Тело:** ```json [ "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:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/system/tz' ```
#### /system/info Метод получения системной информации устройства.
Описание параметров
**Название** **Тип** **Описание**
modelStringНазвание модели используемой камеры.
temperatureDoubleЗначение температуры процессора камеры. \- Нормальная температура до 95**°**C.
chipIdStringИдентификатор чипа камеры.
macStringМак адрес устройства.
deviceIDStringСерийный номер устройства.
deviceModelStringНаименование устройства.
uptimeIntegerВремя работы устройства.
registerStatusBooleanФлаг состояния SIP регистрации.
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "model": "HI3516EV200", "temperature": 72.69, "chipId": "020c39870e0038c96370030ac215b9932729d124509c25eb", "mac": "08:13:00:00:00:00", "deviceID": "0000000", "deviceModel": "ISCom X1 (rev.2)", "uptime": 310, "registerStatus": false } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/system/info' ```
#### /system/versions Метод получения текущих версий прошивки устройства.

Метод действителен для устройств на прошивках до 2.5.6.1 (включительно) Советуем использовать новый метод: **[ /v2/system/versions](#bkmrk-%2Fv2%2Fsystem%2Fversions)**

Описание параметров
**Название** **Тип** **Описание**
rootfsStringВерсия раздела камеры с Linux.
webStringВерсия web интерфейса.
camofonStringВерсия SIP клиента.
streamerStringВерсия RTSP сервера.
hwStringВерсия платы устройства.
swStringВерсия прошивки микроконтроллера.
GET - Получение версий прошивки
Ответы
200 OK

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

**Тело:** ```json { "rootfs": "1.1.1", "web": "2.2.2", "camofon": "3.3.3", "streamer": "4.4.4", "hw": "2.2", "sw": "3.3" } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/system/versions' ```
#### /system/settings Методы получения и изменения системных настроек.
Описание параметров
**Название** **Тип** **Описание**
log\_levelObjectУровни логирования приложений.
api uart camofon streamer proguard store baresip libre Integer Уровень логирования приложения: \- 1 - Trace; \- 2 - Debug; \- 3 - Info; \- 4 - Warning; \- 5 - Error; \- 6 - Fatal. \- По умолчанию: 3
tz StringТекущая временная зона ([**Поддерживаемые зоны**](#bkmrk-%2Fsystem%2Ftz)). \- По умолчанию: Asia/Yekaterinburg
dateTime StringТекущая дата и время
dns ObjectПараметры DNS серверов **ВАЖНО!** Является устаревшим, советуем использовать метод **[/v1/network](#bkmrk-%2Fv1%2Fnetwork)** для получения и изменения сетевых настроек включая сервера dns.
auto Boolean Флаг работы с dns серверами. \- true - автоматически; \- false - в ручную. \- По умолчанию: true
nameservers Array Массив строк с dns серверами.
ntp ArrayМассив строк с ntp серверами.
assist ObjectПараметры для работы ассистента.
enable Boolean Флаг включения / выключения ассистента. \- По умолчанию: true
online Boolean Флаг переключения онлайн и оффлайн ассистента. \- По умолчанию: true **ВАЖНО!** Онлайн ассистент подразумевает входящие вызовы на панель при реагировании на различные события в логах.
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "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 } } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/system/settings' ```
PUT - Изменение параметров
Запрос **Тело:** ```json { "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

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

**Тело:** ```json { "log_level": { "api": 3, "uart": 3, "camofon": 3, "streamer": 3, "proguard": 3, "store": 3, "baresip": 3, "libre": 3 }, "tz": "Asia/Yekaterinburg", "dateTime": "2024-06-13T11:02:22+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:** ```bash 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-адреса.
Описание параметров
**Название** **Тип** **Описание**
ethaddrStringMAC адрес устройства
GET - Получение параметров
Ответы
200 OK

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

**Тело:** ```json { "ethaddr": "08:13:00:00:00:00" } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100/system/fw_env' ```
#### /system/backup Метод создания резервной копии устройства.

Для восстановление резервной копии используется метод: [**/system/restore**](#bkmrk-%2Fsystem%2Frestore)

GET - Создание резервной копии
Ответы
200 OK

Успешное создание резервной копии

**Заголовки:**
**Название****Значение****Описание**
Content-Type application/octet-streamТип возвращаемых данных
Content-Disposition attachment; filename="backup-08:13:00:00:00:00.bin"Формат возвращаемых данных
**Тело:** ``` *** Бинарное представление файла *** ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/system/backup' ```
#### /system/restore Метод восстановления резервной копии устройства.

Для создания резервной копии используется метод: [**/system/backup**](#bkmrk-%2Fsystem%2Fbackup)

PUT - Восстановление резервной копии
Запрос **Заголовки:**
**Название** **Значение****Описание**
Content-Type application/octet-streamТип передаваемых данных
**Тело:** ``` *** Бинарный файл *** ```
Ответы
200 OK

Успешное восстановление резервной копии

**Заголовки:**
**Название** **Значение****Описание**
Content-Type text/html; charset=ISO-8859-1Тип возвращаемых данных
Примеры **CURL:** ```bash 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/reboot Метод перезагрузки устройства.
PUT - Перезагрузка устройства
Ответы
200 OK

Успешная перезагрузка устройства

**Заголовки:**
**Название** **Значение****Описание**
Content-Type text/html; charset=ISO-8859-1Тип возвращаемых данных
Примеры **CURL:** ```bash 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:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/system/restart/api' ```
#### /system/factory-reset Метод сброса устройства к заводским настройкам.
PUT - Сброс устройства к заводским настройкам
Ответы
204 OK

Успешный сброс устройства к заводским настройкам

Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/system/factory-reset' ```
#### /system/upgrade Метод обновления микроконтроллера устройства.

Метод действителен для устройств на прошивках до 2.5.6.1 (включительно) На поздних прошивках использовать новый метод: [**/v2/system/upgrade**](#bkmrk-%2Fv2%2Fsystem%2Fupgrade)

Для данного способа обновления необходим TFTP сервер

PUT - Запуск обновления
Ответы
200 OK

Успешный запуск обновления

**Заголовки:**
**Название** **Значение****Описание**
Content-Type text/html; charset=ISO-8859-1Тип возвращаемых данных
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/system/upgrade' ```
#### /system/upload\_fw Метод загрузки прошивки в микроконтроллер.

Метод действителен для устройств на прошивках до 2.5.6.1 (включительно) На поздних прошивках использовать новый метод: [**/v2/system/upgrade**](#bkmrk-%2Fv2%2Fsystem%2Fupgrade)

Для данного способа обновления необходим TFTP сервер

PUT - Загрузка прошивки
Ответы
200 OK **Заголовки:**
**Название** **Значение****Описание**
Content-Type text/html; charset=ISO-8859-1Тип возвращаемых данных
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/system/upload_fw' ```
#### /system/cam/upgrade Метод обновления разделов камеры устройства.

Метод действителен для устройств на прошивкой до 2.5.6.1 (включительно) На поздних прошивках использовать новый метод: [**/v2/system/upgrade**](#bkmrk-%2Fv2%2Fsystem%2Fupgrade)

Для данного способа обновления необходим TFTP сервер

Описание параметров
**Название** **Тип** **Описание**
serverStringIP адрес или DNS имя TFTP сервера с папкой для обновления.
folderStringПуть до папки с файлами обновления на TFTP сервере.
stmBooleanФлаг обновления прошивки микроконтроллера. \- По умолчанию: false
optBooleanФлаг обновления раздела камеры с приложениями. \- По умолчанию: false
mediaBooleanФлаг обновления раздела камеры с аудио записями (оффлайн ассистента, оповещения). \- По умолчанию: false
rootfsBooleanФлаг обновления раздела камеры с Linux. \- По умолчанию: false
PUT - Запуск обновления камеры
Запрос **Тело:** ```json { "server": "192.168.0.10", "folder": "ISComX1/2.5.6.1", "opt": true, "media": true, "rootfs": true } ```
Ответы
200 OK

Успешный запуск обновления

**Тело:** ```json { "server": "192.168.0.10", "folder": "ISComX1/2.5.6.1", "stm": true, "opt": true, "media": true, "rootfs": true } ```
Примеры **CURL:** ```bash curl \ --header 'Content-Type: application/json' \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request PUT 'http://192.168.0.100:80/system/cam/upgrade' \ --data-raw '{ "server": "192.168.0.10", "folder": "ISComX1/2.5.6.1", "opt": true, "media": true, "rootfs": true } ' ```
#### /v2/system/versions Метод получения текущих версий прошивки устройства.
Описание параметров
**Название** **Тип** **Описание**
optObjectВерсии устройства для раздела с приложениями.
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 Версия прошивки микроконтроллера.
mediaObjectВерсии устройства для раздела с аудио записями (оффлайн ассистента, оповещения).
date Date Дата создания прошивки для раздела.
name String Версия прошивки для раздела.
versions Object Версии по конкретным приложения.
overlay Object Описание версии приложения.
name String Версия приложения.
hash String Хэш сумма коммита приложения.
rootfsObjectВерсии устройства для раздела Linux.
date Date Дата создания прошивки для раздела.
name String Версия прошивки для раздела.
versions Object Версии по конкретным приложения.
libre libiscom baresip ircut rootfs overlay Object Описание версии приложения.
name String Версия приложения.
hash String Хэш сумма коммита приложения.
GET - Получение версий
Ответы
200 OK

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

**Тело:** ```json { "opt": { "date": "2023-07-13", "name": "2.2.5.9.0", "versions": { "api": { "name": "0.3.3", "hash": "5c171d90a121cd53847397141784fd446fbf2992" }, "proguard": { "name": "0.0.2", "hash": "2f52c0e931885b33cae5bb995c8e56fcc76baf80" }, "camofon": { "name": "0.1.4", "hash": "9e52cf80bbe1908e6e668467e25e0cdcb4929ddc" }, "ddns": { "name": "0.0.2", "hash": "adc486d21c5e3204980290b1eb413541446aff56" }, "store": { "name": "0.0.4", "hash": "b4838b51190da1eea2e30b3ca0d54be47f565875" }, "streamer": { "name": "2.8.1", "hash": "db96ab3070d1bc2daeb13bd0bd7786b33052c527" }, "uart": { "name": "0.0.7", "hash": "f9e5460bddeef002a85fca1730927f6073e1eb9f" }, "web_front": { "name": "2.5.4", "hash": "d8f8cead3fcb11cce809a4e6e67cb3f0edf77ab5" }, "overlay": { "name": "0.1.8", "hash": "bd66e9a3d542dcced458decbe505ea911640958a" }, "hw": { "name": "2.5" }, "mcu": { "name": "3.44" } } }, "media": { "date": "2023-05-10", "name": "2.5.7.19", "versions": { "overlay": { "name": "0.1.1", "hash": "45acfbd6cc600fee89e00fecbe9aaa9f0434fb13" } } }, "rootfs": { "date": "2023-07-10", "name": "2.2.5.9.0", "versions": { "libre": { "name": "0.0.1", "hash": "fce5ecdd3513d37fa5d87e1515a82072761a7a06" }, "librem": { "name": "0.0.1", "hash": "01ebe94c4b8671e684c2601b339efe211640a5c5" }, "libiscom": { "name": "0.0.10", "hash": "1beb6432294d22c0e35014f059cc844e1eec4c39" }, "baresip": { "name": "0.0.1", "hash": "b711f10af2417de49e4c718ac4a2ad181009d2f8" }, "ircut": { "name": "0.0.9", "hash": "2558b1e9f7f57f1eb91e4d1979b1cbe4aa214082" }, "rootfs": { "name": "0.0.14", "hash": "3a0bfa2ecf5f118fdcd22ce068fa3bd0d73fc48d" }, "overlay": { "name": "0.1.8", "hash": "bd66e9a3d542dcced458decbe505ea911640958a" } } } } ```
Примеры **CURL:** ```bash curl \ --header 'Authorization: Basic cm9vdDoxMjM0NTY=' \ --request GET 'http://192.168.0.100:80/v2/system/versions' ```
#### /v2/system/upgrade Метод обновления устройства.

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

Для данного способа обновления необходим HTTP сервер

Описание параметров
GET
**Название** **Тип** **Описание**
stateStringОписание состояния обновления. \- По умолчанию: Обновление не запущено
stateIdIntegerИдентификатор состояния обновления. \- По умолчанию: 0
messageStringОписание под состояния обновления. \- По умолчанию: Приложение Upgrade запущено
messageIdIntegerИдентификатор под состояния обновления \- По умолчанию: 0
PUT
**Название** **Тип** **Описание**
codeIntegerКод ответа на запрос.
dataObjectПараметры используемые при обновлении.
url String Ссылка на папку с файлами обновления на HTTP сервере.
mcu Boolean Флаг включения обновления микроконтроллера устройства. \- По умолчанию: false
opt Boolean Флаг включения обновления раздела с приложениями на камере. \- По умолчанию: false
media Boolean Флаг включения обновления раздела с аудио записями (оффлайн ассистент, оповещение) на камере. \- По умолчанию: false
rootfs Boolean Флаг включения обновления раздела Linux на камере. \- По умолчанию: false
PUT - Запуск обновления
Запрос **Тело:** ```json { "url": "http://192.168.0.10:8000/2.5.6.1", "mcu": true, "opt": true, "media": true, "rootfs": true } ```
Ответы
200 OK

Успешное получение задания на обновление

**Тело:** ```json { "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

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

**Тело:**
**Название** **Тип** **Описание**
errorsArrayМассив возвращаемых ошибок.
message String Сообщение об ошибке.
```json { "errors": [ { "message": "Ошибка: url - Параметр пуст или не найден" } ] } ``` или ```json { "errors": [ { "message": "Ошибка: stm - Должен быть логической переменной" } ] } ``` или ```json { "errors": [ { "message": "Ошибка: opt - Должен быть логической переменной" } ] } ``` или ```json { "errors": [ { "message": "Ошибка: media - Должен быть логической переменной" } ] } ``` или ```json { "errors": [ { "message": "Ошибка: rootfs - Должен быть логической переменной" } ] } ```
Примеры **CURL:** ```bash 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.6.1", "mcu": true, "opt": true, "media": true, "rootfs": true }' ```