Добавление устройств пользователя (post devices)
Вендор уведомляет умный дом Sber о том, что пользователь добавил одно или несколько устройств.
Пример ситуации использования:
- Пользователь в приложении вендора добавляет одно или несколько устройств.
- Вендор отправляет уведомление умному дому Sber о добавленных устройствах.
- Умный дом Sber добавляет новые устройства и отображает их в приложении Салют, приложении СберБанк Онлайн, на SberBox и других устройствах с ассистентом Салют.
Формат запроса
Вендор отправляет уведомление на эндпоинт умного дома Sber: https://partners.iot.sberdevices.ru/. Обратите внимание, что для обращения к облаку Sber на сервере вендора должны быть установлены российские сертификаты.
Заголовки см. в разделе Заголовки запросов.
POST /v1/devices
Тело запроса:
| Поле | Тип | Обязательное? | Описание | 
| user_id | string | ✔︎ | Идентификатор пользователя. Умный дом получает ID при связывании аккаунтов и затем хранит их (см. метод Запрос информации о пользователе (get user)) | 
| devices | list<object> | ✔︎ | Список добавленных устройств (см. Устройство пользователя (device)) | 
{
    "user_id": string,
    "devices": [
        {
            "id": string,
            "parent_id": string,
            "name": string,
            "default_name": string,
            "nicknames": [
                string,
                string
                // ...
            ],
            "home": string,
            "room": string,
            "groups": [
                string,
                string
                // ...
            ],
            "model_id": string,
            "hw_version": string,
            "sw_version": string,
            "partner_meta": {
                "key": value,
                "key": value,
                // ...
            },
        },
        {
            // ...
        }
    ]
}
Формат ответа
Умный дом Sber отправляет ответ на эндпоинт вендора. Заголовки см. в разделе Заголовки запросов.
Успешный ответ:
HTTP/1.1 200 OK
При возникновении ошибки умный дом может возвращать:
- Список errors, содержащий объекты error. Каждый объект указывает на конкретные устройства, добавить которые не удалось.
- Общую ошибку common error. Описывает проблему в целом и отправляется, только если проблему не удалось соотнести с конкретными устройствами.
Если вендор уведомил о нескольких устройствах, и часть из них умный дом смог добавить, а при добавлении остальных произошла ошибка, умный дом отправит ответ с ошибкой — в нем будет список недобавленных устройств.
Ошибка конкретного устройства:
{
    "errors": [
        {
            "id": string,
            "code": integer,
            "message": string
        }
    ]
}
Общая ошибка:
{
    "code": integer,
    "message": string,
    "details": list<string>
}
Пример запроса и ответа
В примере пользователь добавляет умную лампу. Вендор оповещает умный дом Sber об этом.
Запрос:
curl -i -X POST /v1/devices HTTP/1.1 \
-H Host: example.com \
-H Content-Type: application/json \
-H Authorization: Bearer qwerty-1234-... \
-H X-Request-Id: abcd-0000-ifgh-...
{
    "user_id": "AB12345",
    "devices": [
        {
            "id": "ABCD_003",
            "name": "Моя лампа",
            "default_name": "Умная лампа",
            "nicknames": [
                "Светодиодная лампа",
                "Смарт-лампа"
            ],
            "home": "Мой дом",
            "room": "Гостиная",
            "groups": [
                "Верхний свет",
                "Ниша"
            ],
            "model_id": "QWERTY123",
            "hw_version": "3.2",
            "sw_version": "5.7",
            "partner_meta": {
                "internal-id": 1234,
                "specificity": "microchip 2A"
            }
        }
    ]
}
Успешный ответ:
HTTP/1.1 200 OK
Ответ с ошибкой:
{
    "errors": [
        {
            "id": "ABCD_003",
            "code": 500,
            "message": "System error"
        }
    ]
}