Схема CameraEventImage

Nest Cam (устаревшая версия) Nest Hub Max Nest Doorbell (устаревшая версия)

sdm.devices.traits.CameraEventImage

Эта особенность присуща любому устройству, поддерживающему генерацию изображений на основе событий.

Поля

Для этого признака нет доступных полей.

Команды

GenerateImage

Предоставляет URL-адрес для загрузки изображения с камеры.

Эта команда поддерживает следующие события:

Тип Элемент Описание
Событие Событие движения свойства CameraMotion Камера зафиксировала движение.
Событие Событие Person черты CameraPerson Камера зафиксировала человека.
Событие Звуковое событие признака CameraSound Камера зафиксировала звук.
Событие Событие «Chime» черты DoorbellChime Был нажат дверной звонок.
Используйте eventId из поддерживаемого события в запросе команды, чтобы получить URL-адрес для загрузки изображения с камеры, связанного с этим событием.

Запрос и ответ GenerateImage

Запрос

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.CameraEventImage.GenerateImage",
  "params" : {
    "eventId" : "63AtNNNeaFqaKMHkZbSg4Kmuse..."
  }
}

Ответ

{
  "results" : {
    "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...",
    "token" : "g.0.eventToken"
  }
}

Поля запроса GenerateImage

Поле Описание Тип данных
eventId Идентификатор события, для которого необходимо запросить соответствующее изображение с камеры. string
Пример: «63AtNNNeaFqaKMHkZbSg4Kmuse...»

Поля ответа GenerateImage

Поле Описание Тип данных
url URL-адрес для загрузки изображения с камеры. string
Пример: "https:// domain /sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1..."
token Токен для использования в заголовке HTTP Authorization при загрузке изображения. string
Пример: «g.0.eventToken»

Загрузить изображение с камеры

Сделайте GET-вызов к url из GenerateImage В ответ на команду, используя token из заголовка HTTP Authorization с базовой авторизацией, выполняется загрузка изображения с камеры:

curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...

Используйте параметры запроса width или height для настройки разрешения загружаемого изображения. Необходимо указать только один из этих параметров. Другой параметр масштабируется автоматически в соответствии с соотношением сторон камеры.

Например, если соотношение сторон камеры составляет 4:3, то для загрузки изображения с камеры с разрешением 480 x 360 укажите либо ширину, либо высоту:

Ширина

curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?width=480

Высота

curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?height=360

Действуют и другие ограничения на URL-адрес загрузки:

  • Если в URL-адресе указаны оба параметра, используется width , а height игнорируется.
  • Если ни один из этих параметров не указан в URL-адресе, для width выбирается значение по умолчанию 480.

См. CameraImage признак для получения информации о свойствах изображения.

Ошибки

В отношении этого признака могут быть возвращены следующие коды ошибок:

Сообщение об ошибке RPC Поиск неисправностей
Изображение с камеры больше недоступно для скачивания. DEADLINE_EXCEEDED Изображения событий становятся недоступны через 30 секунд после публикации события. Убедитесь, что вы загрузили изображение до истечения этого срока.
Идентификатор события не принадлежит камере. FAILED_PRECONDITION Используйте правильный eventID возвращаемый событием камеры.

Полный список кодов ошибок API см. в Справочнике кодов ошибок API.