API Smart Device Management

A API SDM é uma API REST que oferece vários métodos para visualizar 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. Confira os guias de dispositivos individuais para saber quais características estão disponíveis para um dispositivo:

Métodos

Consulte a referência da API para conferir todos os detalhes 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 na página de referência de cada atributo. Consulte a lista completa de atributos para mais informações.

get

Recebe informações sobre uma estrutura ou um dispositivo autorizado.

Uma chamada GET retorna uma única resposta com campos e valores atuais para todos os atributos disponíveis para uma estrutura ou dispositivo que o user autorizou 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 com um único token de acesso, faça uma chamada GET no 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

Quando um dispositivo é autorizado para o SDM, o Google identifica o 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:

Erros

Consulte a Referência de códigos de erro da API para conferir a lista completa de códigos de erro da API.