Получение моделей устройств (get models)
Обновлено 25 ноября 2022
Приложение-агент на контроллере отправляет в умный дом Sber запрос на получение перечня поддерживаемых умным домом моделей устройств.
Пример ситуации использования:
- При загрузке агент отрисовывает контрол — выпадающий список поддерживаемых моделей устройств. Чтобы наполнить список, агент отправляет в умный дом Sber запрос на получение перечня поддерживаемых моделей.
- Умный дом Sber возвращает список моделей.
- Приложение-агент отрисовывает выпадающий список с актуальным перечнем поддерживаемых моделей.
Формат запроса
Запрос отправляется на эндпоинт информационного API — адрес этого эндпоинта приходит в сообщении с глобальной конфигурацией. Заголовки см. в разделе Заголовки запросов.
GET /v1/mqtt-gate/models
Формат ответа
Умный дом Sber отправляет ответ приложению-агенту. Заголовки см. в разделе Заголовки запросов.
Успешный ответ:
Поле | Тип | Обязательное? | Описание |
models | list<object> | ✔︎ | Список моделей устройств (см. Модель устройства (model)) |
{
"models": [
{
"id": string,
"manufacturer": string,
"model": string,
"hw_version": string,
"sw_version": string,
"description": string,
"category": string,
"features": [
"online": string,
"on_off": string
// ...
],
"dependencies": {
"func_name": {
"key": string,
"value": [
{
"type": string,
"type_value": object
},
{
// ...
}
]
},
{
// ...
}
}
},
{
// ...
}
]
}
При возникновении ошибки возвращается объект типа common error:
{
"code": integer,
"message": string,
"details": list<string>
}
Пример запроса и ответа
Приложение-агент запрашивает у умного дома Sber список поддерживаемых моделей устройств. Умный дом возвращает одну модель — модель лампы.
Запрос:
curl -i -X GET /v1/mqtt-gate/models HTTP/1.1 \
-H Host: example.com \
-H Content-Type: application/json \
-H Authorization: Basic qwerty-1234-... \
-H X-Request-Id: abcd-0000-ifgh-...
Успешный ответ:
{
"models": [
{
"id": "QWERTY123",
"manufacturer": "Factory",
"model": "SM0123456789",
"hw_version": "3.2",
"sw_version": "5.7",
"description": "About device",
"category": "light",
"features": [
"online",
"on_off"
]
}
]
}
Ответ с ошибкой:
{
"code": 500,
"message": "Internal server error",
"details": []
}