API de Smart Device Management

La API de SDM es una API de REST que proporciona varios métodos para ver atributos y ejecutar comandos de atributos para la administración de dispositivos Google Nest. Usa el token de acceso otorgado durante el proceso de autorización con cada llamada a la API.

Rasgos

La API de SDM usa un modelo basado en atributos para la información y funcionalidad del dispositivo. Consulta las guías de dispositivos individuales para ver qué atributos están disponibles para un dispositivo:

Métodos

Consulta la referencia de la API para obtener detalles completos sobre todos los métodos disponibles para la API de SDM.

executeCommand

Ejecuta un comando en un dispositivo autorizado.

Usa una llamada POST para ejecutar un comando. Por ejemplo, para cambiar el modo del termostato, haz lo siguiente:

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

Puedes encontrar más ejemplos de comandos en cada página de referencia de rasgos individual. Consulta la lista completa de atributos para obtener más información.

get

Obtiene información sobre una estructura o un dispositivo autorizado.

Una llamada a GET muestra una sola respuesta con los campos y valores actuales de todos los atributos disponibles para una estructura o un dispositivo que user autorizó y un objeto "parentRelations", que representa el recurso superior del recurso actual, ya sea una estructura o una habitación.

Por ejemplo, un Nest Thermostat podría mostrar lo siguiente:

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

Muestra una lista de las estructuras, las salas o los dispositivos autorizados.

Para mostrar una lista de todas las estructuras, salas o dispositivos autorizados con un solo token de acceso, realiza una llamada GET al extremo de recursos correspondiente:

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

Integraciones con Asistente de Google

Una vez que un dispositivo está autorizado para la SDM, Google lo detecta en Home Graph y administra su estado directamente. Si tienes la integración de Asistente de Google como parte de tu oferta comercial, haz lo siguiente:

Errores

Consulta la referencia de códigos de error de la API para obtener la lista completa de los códigos de error de la API.