Групповое обновление API 1.7.0
Методы API для работы с разделом «Групповое обновление».
Базовый путь: https://{IP_контроллера}/api/v1.
Версия описания API: 1.7.0.
Примеры используют placeholder-значения для паролей, token, UUID, адресов и секретов. Перед выполнением запроса замените их на значения вашего контроллера.
Методы раздела
GET /group_update
Раздел: Групповое обновление.
Получение всех контроллеров и их прошивок
Назначение | URL запроса |
Получение всех контроллеров и их прошивок | https://{IP_контроллера}/api/v1/group_update |
Параметры запроса:
Отсутствуют
Варианты ответа:
Code 200 (Successfully returned device search results) - удачное выполнение запроса
Пример:
{
"1.7.0-lpv-dev.250619.519+insecure": [
"00000001",
"00000002"
],
"1.6.5-stable": [
"00000003"
]
}
Code 500 (Unexpected server error) - запрос не выполнен, получено сообщение об ошибке
Параметры и ответы по OpenAPI
{
"description": "Получение всех контроллеров и их прошивок",
"responses": {
"200": {
"description": "Successfully returned device search results",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/\\d+$",
"example": "00000001"
}
},
"example": {
"1.7.0-lpv-dev.250619.519+insecure": [
"00000001",
"00000002"
],
"1.6.5-stable": [
"00000003"
]
}
}
}
}
},
"500": {
"description": "Something went wrong. It seems there is a bug on server",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}
Примеры по OpenAPI
Сформированы по схеме контроллера; значения полей необходимо заменить.
Пример запроса
curl -k -X GET "https://{IP_контроллера}/api/v1/group_update" \
-H "Authorization: Bearer <token>"
Пример ответа
{
"1.7.0-lpv-dev.250619.519+insecure": [
"00000001",
"00000002"
],
"1.6.5-stable": [
"00000003"
]
}
GET /group_update/controller/file-version
Раздел: Групповое обновление.
Возвращает версию файла прошивки контроллера
Назначение | URL запроса |
Возвращает версию файла прошивки контроллера | https://{IP_контроллера}/api/v1/group_update/controller/file-version |
Параметры запроса:
Наименование, * - обязательный | Описание |
filePath* string (query) | Путь к файлу |
Варианты ответа:
Code 200 (Successfully returned list of registered devices) - удачное выполнение запроса
Название, * - обязательный | Тип | Формат | Назначение |
fileVersion* | string | Версия файла прошивки контроллера |
Пример:
Пример с исправленным синтаксисом JSON
Добавлена закрывающая фигурная скобка.
{
"fileVersion": "string"
}
Исходный пример Teamly
Пример из Teamly сохранён дословно, но не является корректным JSON.
{
"fileVersion": "string"
Code 400 (Bad request parameters) - запрос не выполнен, неверно указаны параметры запроса
Code 500 (Unexpected server error) - запрос не выполнен, получено сообщение об ошибке
Code 504 (HAL service not responding) - запрос не выполнен, HAL служба не отвечает
Параметры и ответы по OpenAPI
{
"description": "Returns controllers firmware file version",
"parameters": [
{
"in": "query",
"name": "filePath",
"description": "update file path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successfully returned list of registered devices",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"fileVersion"
],
"properties": {
"fileVersion": {
"type": "string"
}
}
}
}
}
},
"400": {
"description": "Bad parameters",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"500": {
"description": "Something went wrong. It seems there is a bug on server",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"504": {
"description": "HAL service not responding",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}
Примеры по OpenAPI
Сформированы по схеме контроллера; значения полей необходимо заменить.
Пример запроса
curl -k -X GET "https://{IP_контроллера}/api/v1/group_update/controller/file-version?filePath=<filePath>" \
-H "Authorization: Bearer <token>"
Пример ответа
{
"fileVersion": "string"
}
POST /group_update/controller/reset
Раздел: Групповое обновление.
Отчистка состояния обновления контроллеров
Назначение | URL запроса |
Отчистка состояния обновления контроллеров | https://{IP_контроллера}/api/v1/group_update/controller/reset |
Параметры запроса:
Название | Тип | Описание | |
group_update* | object(body) | Тело запроса | |
BODY | |||
Название * - обязательный | Тип | Формат | Назначение |
controllers* | string | pattern: ^[0-9]{9}$] | Список серийных номеров контроллеров |
Пример:
URL запроса: POST
https://{IP_контроллера}/api/v1/group_update/controller/reset
Body
{
"controllers": [
"000000023",
"000000033"
]
}
Варианты ответа:
Code 200 (Successfully returned device search results) - удачное выполнение запроса
{
"success": false,
"message": "string",
"data": {}
}
Code 500 (Unexpected server error) - запрос не выполнен, получено сообщение об ошибке
Параметры и ответы по OpenAPI
{
"description": "Отчистка состояния обновления контроллеров",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"controllers": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9]{9}$"
},
"description": "Список серийных номеров контроллеров"
}
},
"required": [
"controllers"
]
},
"example": {
"controllers": [
"000000023",
"000000033"
]
}
}
}
},
"responses": {
"200": {
"description": "Successfully returned device search results",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"500": {
"description": "Server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}
Примеры по OpenAPI
Сформированы по схеме контроллера; значения полей необходимо заменить.
Пример запроса
curl -k -X POST "https://{IP_контроллера}/api/v1/group_update/controller/reset" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
--data-raw '{
"controllers": [
"000000023",
"000000033"
]
}'
Пример тела запроса
{
"controllers": [
"000000023",
"000000033"
]
}
Пример ответа
{
"success": false,
"message": "string",
"data": {}
}
POST /group_update/controller/start
Раздел: Групповое обновление.
Старт обновления из загруженного файла
Назначение | URL запроса |
Старт обновления из загруженного файла | https://{IP_контроллера}/api/v1/group_update/controller/start |
Параметры запроса:
Название | Тип | Описание | |
group_update* | object(body) | Тело запроса | |
BODY | |||
Название * - обязательный | Тип | Формат | Назначение |
controllers* | string | pattern: ^[0-9]{9}$] | Список серийных номеров контроллеров |
filePath* | string | Путь к файлу прошивки | |
Пример:
URL запроса: POST
https://{IP_контроллера}/api/v1/group_update/controller/start
Body
{
"controllers": [
"000000023",
"000000033"
],
"filePath": "update.bin"
}
Варианты ответа:
Code 200 (Successfully returned device search results) - удачное выполнение запроса
{
"success": false,
"message": "string",
"data": {}
}
Code 500 (Unexpected server error) - запрос не выполнен, получено сообщение об ошибке
Параметры и ответы по OpenAPI
{
"description": "Старт обновления из загруженного файла",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"controllers": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9]{9}$"
},
"description": "Список серийных номеров контроллеров"
},
"filePath": {
"type": "string",
"description": "Путь к файлу прошивки"
}
},
"required": [
"controllers",
"filePath"
]
},
"example": {
"controllers": [
"000000023",
"000000033"
],
"filePath": "update.bin"
}
}
}
},
"responses": {
"200": {
"description": "Successfully returned device search results",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"500": {
"description": "Server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}
Примеры по OpenAPI
Сформированы по схеме контроллера; значения полей необходимо заменить.
Пример запроса
curl -k -X POST "https://{IP_контроллера}/api/v1/group_update/controller/start" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
--data-raw '{
"controllers": [
"000000023",
"000000033"
],
"filePath": "update.bin"
}'
Пример тела запроса
{
"controllers": [
"000000023",
"000000033"
],
"filePath": "update.bin"
}
Пример ответа
{
"success": false,
"message": "string",
"data": {}
}
GET /group_update/controller/status
Раздел: Групповое обновление.
Получение данных о статусе обновления
Назначение | URL запроса |
Получение данных о статусе обновления | https://{IP_контроллера}/api/v1/group_update/controller/status |
Параметры запроса:
Наименование, * - обязательный | Описание |
controllers string (query) | Список контроллеров по которым нужно получить статус обновления |
Варианты ответа:
Code 200 (Successfully returned device search results) - удачное выполнение запроса
Название, * - обязательный | Тип | Формат | Назначение |
status | string | [ UNDEFINED, PREPARATION, STOPPED, STARTED, FILE_TRANSFER ] | Статус обновления контроллера |
type | string | Тип обновления | |
error_status | string | Описание ошибки (при наличии) | |
progress | number | minimum: 0 | Прогресс выполнения обновления в процентах |
Пример:
{
"000000001": {
"status": "UNDEFINED",
"type": "STATUS",
"progress": 75.5
},
"000000002": {
"status": "STOPPED",
"type": "STATUS",
"progress": 100
},
"000000003": {
"status": "STOPPED",
"type": "STATUS",
"error_status": "Checksum mismatch",
"progress": 45
}
}
Code 400 (Bad request parameters) - запрос не выполнен, неверно указаны параметры запроса
Code 404 (User with specified login was not found) - запрос не выполнен, пользователь не найден
(User with specified uuid was not found) - запрос не выполнен, пользователь указанный в {uuid} не найден
(Specified device does not exist) - запрос не выполнен, указанное устройство не существует
(Specified access point does not exist) - запрос не выполнен, указанная точка прохода не существует
Code 500 (Unexpected server error) - запрос не выполнен получено сообщение об ошибке
Параметры и ответы по OpenAPI
{
"description": "Получение данных о статусе обновления",
"parameters": [
{
"in": "query",
"name": "controllers",
"schema": {
"type": "string",
"example": "[\"000000001\",\"000000002\"]"
},
"description": "Список контроллеров по которым нужно получить статус обновления"
}
],
"responses": {
"200": {
"description": "Successfully returned device search results",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"UNDEFINED",
"PREPARATION",
"STOPPED",
"STARTED",
"FILE_TRANSFER"
],
"example": "STARTED",
"description": "Статус обновления контроллера"
},
"type": {
"type": "string",
"enum": [
"STATUS"
],
"example": "STATUS",
"description": "Тип сообщения"
},
"error_status": {
"type": "string",
"nullable": true,
"example": "Connection timeout",
"description": "Описание ошибки если статус ERROR"
},
"progress": {
"type": "number",
"minimum": 0,
"maximum": 100,
"example": 75.5,
"description": "Прогресс обновления в процентах"
}
}
},
"example": {
"000000001": {
"status": "UNDEFINED",
"type": "STATUS",
"progress": 75.5
},
"000000002": {
"status": "STOPPED",
"type": "STATUS",
"progress": 100
},
"000000003": {
"status": "STOPPED",
"type": "STATUS",
"error_status": "Checksum mismatch",
"progress": 45
}
}
}
}
}
},
"500": {
"description": "Server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}
Примеры по OpenAPI
Сформированы по схеме контроллера; значения полей необходимо заменить.
Пример запроса
curl -k -X GET "https://{IP_контроллера}/api/v1/group_update/controller/status" \
-H "Authorization: Bearer <token>"
Пример ответа
{
"000000001": {
"status": "UNDEFINED",
"type": "STATUS",
"progress": 75.5
},
"000000002": {
"status": "STOPPED",
"type": "STATUS",
"progress": 100
},
"000000003": {
"status": "STOPPED",
"type": "STATUS",
"error_status": "Checksum mismatch",
"progress": 45
}
}
GET /group_update/osdp/file-version
Раздел: Групповое обновление.
Возвращает версию файла прошивки OSDP
Назначение | URL запроса |
Возвращает версию файла прошивки OSDP | https://{IP_контроллера}/api/v1/group_update/osdp/file-version |
Параметры запроса:
Наименование, * - обязательный | Описание |
filePath* string (query) | Путь к файлу |
Варианты ответа:
Code 200 (Successfully returned list of registered devices) - удачное выполнение запроса
Название, * - обязательный | Тип | Формат | Назначение |
fileVersion* | { | Версия прошивки | |
model_number | number | Номер | |
model_version | number | Версия | |
} |
Пример:
{
"fileVersion": {
"model_number": 0,
"model_version": 0
}
}
Code 400 (Bad request parameters) - запрос не выполнен, неверно указаны параметры запроса
Code 500 (Unexpected server error) - запрос не выполнен, получено сообщение об ошибке
Параметры и ответы по OpenAPI
{
"description": "Returns osdp firmware file version",
"parameters": [
{
"in": "query",
"name": "filePath",
"description": "update file path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successfully returned list of registered devices",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"fileVersion"
],
"properties": {
"fileVersion": {
"type": "object",
"properties": {
"model_number": {
"type": "number"
},
"model_version": {
"type": "number"
}
}
}
}
}
}
}
},
"400": {
"description": "Bad parameters",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"500": {
"description": "Something went wrong. It seems there is a bug on server",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"504": {
"description": "HAL service not responding",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}
Примеры по OpenAPI
Сформированы по схеме контроллера; значения полей необходимо заменить.
Пример запроса
curl -k -X GET "https://{IP_контроллера}/api/v1/group_update/osdp/file-version?filePath=<filePath>" \
-H "Authorization: Bearer <token>"
Пример ответа
{
"fileVersion": {
"model_number": 1.0,
"model_version": 1.0
}
}
GET /group_update/osdp/status/{controller}
Раздел: Групповое обновление.
Возвращает статус обновления прошивки OSDP
Назначение | URL запроса |
Возвращает статус обновления прошивки OSDP | https://{IP_контроллера}/api/v1/group_update/osdp/status/{controller} |
Параметры запроса:
Наименование, * - обязательный | Описание |
controller* string (path) | Серийный номер контроллера |
devices* string (query) | Массив адресов OSDP-устройств |
Варианты ответа:
Code 200 (Successfully returned list of members) - удачное выполнение запроса
Название, * - обязательный | Тип | Формат | Назначение |
device_addr | string | pattern: ^/\d+/\d+$ | Адрес устройства |
progress | number | minimum: 0 | Прогресс обновления прошивки в процентах |
status | string | [ UNDEFINED, FILE_TRANSFER, STOPPED, STARTED, PREPARATION ] | Статус процесса обновления |
stage | string | Этап обновления прошивки | |
error_status | string | Описание ошибки (при наличии) |
Пример:
[
{
"device_addr": "/1/1",
"progress": 75.5,
"status": "FILE_TRANSFER",
"stage": "Передача файла на контроллеры",
"error_status": ""
}
]
Code 400 (Bad request parameters) - запрос не выполнен, неверно указаны параметры запроса
Code 500 (Unexpected server error) - запрос не выполнен, получено сообщение об ошибке
Параметры и ответы по OpenAPI
{
"description": "Returns osdp firmware update status",
"parameters": [
{
"in": "path",
"name": "controller",
"description": "серийный номер контроллера",
"required": true,
"schema": {
"type": "string",
"pattern": "^\\d+$"
}
},
{
"in": "query",
"name": "devices",
"description": "массив адресов устройств",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successfully returned list of members",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"device_addr": {
"type": "string",
"pattern": "^/\\d+/\\d+$",
"example": "/1/1"
},
"progress": {
"type": "number",
"format": "float",
"minimum": 0,
"maximum": 100,
"example": 75.5
},
"status": {
"type": "string",
"enum": [
"UNDEFINED",
"FILE_TRANSFER",
"STOPPED",
"STARTED",
"PREPARATION"
],
"example": "FILE_TRANSFER"
},
"stage": {
"type": "string",
"example": "Передача файла на контроллеры"
},
"error_status": {
"type": "string",
"nullable": true,
"example": ""
}
}
}
}
}
}
},
"400": {
"description": "Bad parameters",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"500": {
"description": "Something went wrong. It seems there is a bug on server",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}
Примеры по OpenAPI
Сформированы по схеме контроллера; значения полей необходимо заменить.
Пример запроса
curl -k -X GET "https://{IP_контроллера}/api/v1/group_update/osdp/status/{controller}?devices=<devices>" \
-H "Authorization: Bearer <token>"
Пример ответа
[
{
"device_addr": "/1/1",
"progress": 75.5,
"status": "FILE_TRANSFER",
"stage": "Передача файла на контроллеры",
"error_status": ""
}
]