A API SDM é uma API REST que oferece vários métodos para visualizar características e executar comandos de características para o gerenciamento de dispositivos Google Nest. Use o token de acesso concedido durante o processo de autorização com cada chamada de API.
Características
A API SDM usa um modelo baseado em características para informações e funcionalidades do dispositivo. Consulte os guias de dispositivos individuais para saber quais características estão disponíveis para um dispositivo:
- Câmera
- Câmera (bateria)
- Câmera com holofote
- Câmera (com fio)
- Display
- Campainha
- Campainha (bateria)
- Campainha (com fio)
- Termostato
Métodos
Consulte a Referência da API para detalhes completos sobre todos os métodos disponíveis para a API SDM.
executeCommand
Executa um comando em um dispositivo autorizado.
Use uma chamada POST para executar um comando. Por exemplo, para mudar o modo do termostato:
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode",
"params" : {
"mode" : "HEAT"
}
}Outros exemplos de comandos podem ser encontrados em cada página de referência de característica individual. Consulte a lista completa de características para mais informações.
get
Recebe informações sobre uma estrutura ou dispositivo autorizado.
Uma chamada GET retorna uma única resposta com campos e valores atuais para todas
as características disponíveis para uma estrutura ou dispositivo que o user tenha
autorizado e um objeto `parentRelations`, que representa o recurso pai
do recurso atual, seja uma estrutura ou sala.
Por exemplo, um Nest Thermostat pode retornar o seguinte:
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"
}
]
}list
Lista estruturas, salas ou dispositivos autorizados.
Para listar todas as estruturas, salas ou dispositivos autorizados em um único token de acesso, faça uma chamada GET para o endpoint de recurso apropriado:
GET /enterprises/project-id/structures
GET /enterprises/project-id/structures/structure-id/rooms
GET /enterprises/project-id/devices
Integrações do Google Assistente
Depois que um dispositivo é autorizado para SDM, o Google fica ciente do dispositivo no Home Graph e gerencia o estado dele diretamente. Se você tiver a integração do Google Assistente como parte da sua oferta comercial:
- Não envie solicitações de sincronização para dispositivos SDM.
- Omita os dispositivos SDM de todas as respostas a uma SYNC intent.
Erros
Consulte a Referência de códigos de erro da API para conferir a lista completa de códigos de erro da API.