Уведомление об изменении состояний устройств

Уведомляет платформу умного дома об изменившемся состоянии устройств.

Пример ситуации, в которой отправляется текущий запрос: пользователь прошел мимо датчика движения, датчик сработал.

  1. Формат запроса
  2. Формат ответа
  3. Пример
Примечание. Сервис уведомлений доступен только для опубликованных навыков. Если вы только разрабатываете навык, то можно сделать его приватным на время тестирования и не открывать для внешних пользователей.

Формат запроса

POST https://dialogs.yandex.net/api/v1/skills/{skill_id}/callback/state
skill_id

Идентификатор вызываемого навыка, присвоенный при создании.

Чтобы узнать идентификатор своего навыка, откройте его в консоли разработчика — идентификатор можно скопировать на вкладке Общие сведения, внизу страницы.

skill_id

Идентификатор вызываемого навыка, присвоенный при создании.

Чтобы узнать идентификатор своего навыка, откройте его в консоли разработчика — идентификатор можно скопировать на вкладке Общие сведения, внизу страницы.

Заголовки запроса

Заголовок Описание Обязательный
Authorization Авторизационный токен владельца навыка. Да
Content-Type Формат передаваемых/отправляемых данных. Возможные значения: application/json. Да, в операциях с http-методом POST
Заголовок Описание Обязательный
Authorization Авторизационный токен владельца навыка. Да
Content-Type Формат передаваемых/отправляемых данных. Возможные значения: application/json. Да, в операциях с http-методом POST

Формат тела запроса

{
    "ts": Float,
    "payload": {
        "user_id": String,
        "devices": [{
            "id": String,
            "capabilities": [
                "<capability1>": Object,
                "<capability2>": Object
                    ...
                    ],
            "properties": [
                "<property1>": Object,
                "<property2>": Object
                    ...
                    ]
        }]
    }
}               
Параметр Тип Описание Обязательный
ts Float Время возникновения события в секундах, формат unix timestamp. Да
payload Object Объект с устройствами. Да
Объект payload
user_id String Идентификатор пользователя, который был передан в ответе на запрос Информация об устройствах пользователя. Да
devices Array of objects Массив с устройствами, которые изменили свое состояние. Да
Объект devices
id String Идентификатор устройства. Должен быть уникален среди всех устройств производителя. Да
capabilities Array of objects Массив с информацией о новых состояниях умений устройств. Да, если отсутствует properties
properties Array of objects Массив с информацией о новых состояниях свойств. Да, если отсутствует capabilities
Объект capabilities
<capability1> Object Описание нового состояния умения. Подробнее со списком доступных умений и их параметрами можно ознакомиться в разделе Об умениях. Формат описания нового состояния совпадает с форматом, который используется в ответе на запрос Информация о состояниях устройств пользователя. Нет
<capability2> Object Описание нового состояния умения. Подробнее со списком доступных умений и их параметрами можно ознакомиться в разделе Об умениях. Формат описания нового состояния совпадает с форматом, который используется в ответе на запрос Информация о состояниях устройств пользователя. Нет
Объект properties
<property1> Object Описание нового состояния свойства. Подробнее со списком доступных свойств и их параметрами можно ознакомиться в разделе О свойствах. Формат описания нового состояния совпадает с форматом, который используется в ответе на запрос Информация о состояниях устройств пользователя. Нет
<property2> Object Описание нового состояния свойства. Подробнее со списком доступных свойств и их параметрами можно ознакомиться в разделе О свойствах. Формат описания нового состояния совпадает с форматом, который используется в ответе на запрос Информация о состояниях устройств пользователя. Нет
Параметр Тип Описание Обязательный
ts Float Время возникновения события в секундах, формат unix timestamp. Да
payload Object Объект с устройствами. Да
Объект payload
user_id String Идентификатор пользователя, который был передан в ответе на запрос Информация об устройствах пользователя. Да
devices Array of objects Массив с устройствами, которые изменили свое состояние. Да
Объект devices
id String Идентификатор устройства. Должен быть уникален среди всех устройств производителя. Да
capabilities Array of objects Массив с информацией о новых состояниях умений устройств. Да, если отсутствует properties
properties Array of objects Массив с информацией о новых состояниях свойств. Да, если отсутствует capabilities
Объект capabilities
<capability1> Object Описание нового состояния умения. Подробнее со списком доступных умений и их параметрами можно ознакомиться в разделе Об умениях. Формат описания нового состояния совпадает с форматом, который используется в ответе на запрос Информация о состояниях устройств пользователя. Нет
<capability2> Object Описание нового состояния умения. Подробнее со списком доступных умений и их параметрами можно ознакомиться в разделе Об умениях. Формат описания нового состояния совпадает с форматом, который используется в ответе на запрос Информация о состояниях устройств пользователя. Нет
Объект properties
<property1> Object Описание нового состояния свойства. Подробнее со списком доступных свойств и их параметрами можно ознакомиться в разделе О свойствах. Формат описания нового состояния совпадает с форматом, который используется в ответе на запрос Информация о состояниях устройств пользователя. Нет
<property2> Object Описание нового состояния свойства. Подробнее со списком доступных свойств и их параметрами можно ознакомиться в разделе О свойствах. Формат описания нового состояния совпадает с форматом, который используется в ответе на запрос Информация о состояниях устройств пользователя. Нет

Формат ответа

HTTP/1.1 202 Accepted

{
  "request_id": String,
  "status": "ok"
}
Параметр Тип Описание Обязательный
request_id String Идентификатор запроса. Необходимо логировать для расследования инцидентов. Да
status String Статус обработки запроса. Допустимые значения:
  • ok.
Да
Параметр Тип Описание Обязательный
request_id String Идентификатор запроса. Необходимо логировать для расследования инцидентов. Да
status String Статус обработки запроса. Допустимые значения:
  • ok.
Да

Пример

curl -i -X POST 'https://dialogs.yandex.net/api/v1/skills/user-test-skill/callback/state' \
-H 'Authorization: OAuth 123qwe456a...' \
-H 'Content-Type: application/json' \
-d '{
    "ts": 1602703322.1,
    "payload": {
        "user_id": "provider-user-id-1",
        "devices": [{
            "id": "sensor-001-snsr",
            "capabilities": [],
            "properties": [{
                "type": "devices.properties.event",
                "state": {
                    "instance": "motion",
                    "value": "detected"
                }
            }]
        }]
    }
}'