API управления интеллектуальными устройствами

SDM API — это REST API, который предоставляет различные методы для просмотра характеристик и выполнения команд характеристик для управления устройствами Google Nest. Используйте токен доступа, предоставленный в процессе авторизации, при каждом вызове API.

Черты

API SDM использует модель на основе признаков для информации и функциональности устройства. Проверьте руководства по отдельным устройствам, чтобы узнать, какие функции доступны для устройства:

Методы

См. справочник по API для получения полной информации обо всех методах, доступных для API SDM.

выполнитькоманду

Выполняет команду авторизованному устройству.

Используйте вызов POST для выполнения команды. Например, чтобы изменить режим термостата:

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.ThermostatMode.SetMode",
  "params" : {
    "mode" : "HEAT"
  }
}

Дополнительные примеры команд можно найти на каждой отдельной справочной странице по характеристикам. Для получения дополнительной информации смотрите полный список характеристик .

получать

Получает информацию о авторизованной структуре или устройстве.

Вызов GET возвращает один ответ с текущими полями и значениями для всех характеристик, доступных для структуры или устройства, которое user имеет авторизацию и объект «parentRelations», который представляет родительский ресурс текущего ресурса, либо структуру, либо комнату.

Например, термостат Nest может возвращать следующее:

GET /enterprises/project-id/devices/device-id
{
  "name" : "enterprises/project-id/devices/device-id",
  "type" : "sdm.devices.types.THERMOSTAT",
  "assignee" : "enterprises/project-id/structures/structure-id/rooms/room-id",
  "traits" : {
    "sdm.devices.traits.Connectivity" : {
      "status" : "ONLINE"
    },
    "sdm.devices.traits.Fan" : {
      "timerMode" : "ON",
      "timerTimeout" : "2019-05-10T03:22:54Z"
    },
    "sdm.devices.traits.Humidity" : {
      "ambientHumidityPercent" : 35.0
    },
    "sdm.devices.traits.Info" : {
      "customName" : "My device"
    },
    "sdm.devices.traits.Settings" : {
      "temperatureScale" : "CELSIUS"
    },
    "sdm.devices.traits.Temperature" : {
      "ambientTemperatureCelsius" : 23.0
    },
    "sdm.devices.traits.ThermostatEco" : {
      "availableModes" : ["MANUAL_ECO", "OFF"],
      "mode" : "MANUAL_ECO",
      "heatCelsius" : 20.0,
      "coolCelsius" : 22.0
    },
    "sdm.devices.traits.ThermostatHvac" : {
      "status" : "HEATING"
    },
    "sdm.devices.traits.ThermostatMode" : {
      "availableModes" : ["HEAT", "COOL", "HEATCOOL", "OFF"],
      "mode" : "COOL"
    },
    "sdm.devices.traits.ThermostatTemperatureSetpoint" : {
      "heatCelsius" : 20.0,
      "coolCelsius" : 22.0
    }
  },
  "parentRelations" : [
    {
      "parent" : "enterprises/project-id/structures/structure-id/rooms/room-id",
      "displayName" : "Lobby"
    }
  ]
}

список

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

Чтобы перечислить все структуры, комнаты или устройства, авторизованные с помощью одного токена доступа, выполните вызов GET для соответствующей конечной точки ресурса:

GET /enterprises/project-id/structures
GET /enterprises/project-id/structures/structure-id/rooms
GET /enterprises/project-id/devices

Интеграция с Google Ассистентом

Как только устройство авторизуется для SDM, Google узнает об устройстве в Home Graph и напрямую управляет его состоянием. Если у вас есть интеграция с Google Assistant как часть вашего коммерческого предложения:

Ошибки

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