Получение списка моделей устройств (get models)
Обновлено 25 мая 2023
Вендор запрашивает у умного дома Sber список моделей своих устройств.
Пример ситуации использования:
- Вендор проверяет, информация о каких моделях его устройств есть в базе умного дома, а о каких — нет. Для этого отправляет запрос в умный дом.
- Умный дом Sber возвращает список моделей устройств и их функций.
Формат запроса
Вендор отправляет уведомление на эндпоинт умного дома Sber: https://partners.iot.sberdevices.ru/
. Обратите внимание, что для обращения к облаку Sber на сервере вендора должны быть установлены российские сертификаты.
Заголовки см. в разделе Заголовки запросов.
GET /v1/models
Формат ответа
Умный дом отправляет ответ на эндпоинт вендора. Заголовки см. в разделе Заголовки запросов.
Успешный ответ:
Поле | Тип | Обязательное? | Описание |
models | list<object> | ✔︎ | Список моделей устройств (см. Модель устройства (model)) |
{
"models": [
{
"id": string,
"manufacturer": string,
"model": string,
"hw_version": string,
"sw_version": string,
"description": string,
"category": string,
"features": [
string,
string,
// ...
],
"dependencies": {
"func_name": {
"key": string,
"value": [
{
"type": string,
"type_value": object
},
{
// ...
}
]
}
},
"allowed_values": {
"func_name": {
"type": string,
"type_values": {
"min": object,
"max": object,
"step": object
},
},
{
// ...
}
}
},
{
// ...
}
]
}
При возникновении ошибки возвращается объект типа common error:
{
"code": integer,
"message": string,
"details": list<string>
}
Пример запроса и ответа
Вендор запрашивает у умного дома Sber список моделей своих устройств. Умный дом возвращает одну модель — модель лампы.
Запрос:
curl -i -X GET /v1/models HTTP/1.1 \
-H Host: example.com \
-H Content-Type: application/json \
-H Authorization: Bearer qwerty-1234-... \
-H X-Request-Id: abcd-0000-ifgh-...
Успешный ответ:
{
"models": [
{
"id": "QWERTY123",
"manufacturer": "Xiaqara",
"model": "SM0123456789",
"hw_version": "3.2",
"sw_version": "5.7",
"description": "Умная лампа Xiaqara",
"category": "light",
"features": [
"online",
"on_off",
"light_mode",
"light_brightness",
"light_colour",
"light_colour_temp",
"sleep_timer"
],
"dependencies": {
"light_colour": {
"key": "light_mode",
"value": [
{
"type": "ENUM",
"enum_value": "colour"
}
]
}
},
"allowed_values": {
"light_brightness": {
"type": "INTEGER",
"integer_values": {
"min": "10",
"max": "900",
"step": "1"
}
}
}
}
]
}
Ответ с ошибкой:
{
"code": 500,
"message": "Internal server error",
"details": []
}