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

Групповое обновление API 1.7.0

Методы API для работы с разделом «Групповое обновление».

Базовый путь: https://{IP_контроллера}/api/v1. Версия описания API: 1.7.0.

Примеры используют placeholder-значения для паролей, token, UUID, адресов и секретов. Перед выполнением запроса замените их на значения вашего контроллера.

Методы раздела

МетодПуть
GET/group_update
GET/group_update/controller/file-version
POST/group_update/controller/reset
POST/group_update/controller/start
GET/group_update/controller/status
GET/group_update/osdp/file-version
GET/group_update/osdp/status/{controller}

GET /group_update

Раздел: Групповое обновление.

Получение всех контроллеров и их прошивок

Источник в Teamly

Назначение

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

Раздел: Групповое обновление.

Возвращает версию файла прошивки контроллера

Источник в Teamly

Назначение

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

Раздел: Групповое обновление.

Отчистка состояния обновления контроллеров

Источник в Teamly

Назначение

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

Раздел: Групповое обновление.

Старт обновления из загруженного файла

Источник в Teamly

Назначение

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

Раздел: Групповое обновление.

Получение данных о статусе обновления

Источник в Teamly

Назначение

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
maximum: 100

Прогресс выполнения обновления в процентах

Пример:

{
"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

Источник в Teamly

Назначение

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

Источник в Teamly

Назначение

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
maximum: 100

Прогресс обновления прошивки в процентах

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": ""
}
]