API SDM — это REST API, предоставляющий различные методы для просмотра характеристик и выполнения команд управления характеристиками устройств Google Nest. Используйте токен доступа, предоставленный в процессе авторизации, при каждом вызове API.
Черты
API SDM использует модель, основанную на характеристиках, для предоставления информации об устройстве и его функциональности. Чтобы узнать, какие характеристики доступны для конкретного устройства, ознакомьтесь с руководствами по отдельным устройствам:
- Камера
- Фотоаппарат (с батареей)
- Камера с прожектором
- Камера (проводная)
- Отображать
- Дверной звонок
- Дверной звонок (на батарейках)
- Дверной звонок (проводной)
- Термостат
Методы
Подробную информацию обо всех доступных методах для API SDM см. в справочнике API .
выполнитьКоманду
Выполняет команду для авторизованного устройства.
Для выполнения команды используйте 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 входит в ваше коммерческое предложение:
- Не отправляйте запросы на синхронизацию для устройств SDM.
- Исключите устройства SDM из любых ответов на запрос SYNC.
Ошибки
Полный список кодов ошибок API см. в Справочнике кодов ошибок API.