La API de SDM es una API de REST que proporciona varios métodos para ver las características y ejecutar comandos trait 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.
Rasgo
La API de SDM usa un modelo basado en traits para la información y la funcionalidad del dispositivo. Consulta las guías de dispositivos individuales para ver qué características están disponibles para un dispositivo:
- Cámara
- Cámara (con batería)
- Cámara con reflector
- Cámara (con cable)
- Pantalla
- Timbre
- Timbre (con batería)
- Timbre (con cable)
- Termostato
Métodos
Consulta la referencia de la API a fin de obtener detalles completos sobre todos los métodos disponibles para la API de SDM.
executeCommand
Ejecuta un comando para un dispositivo autorizado.
Usa una llamada a 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 característica individual. Consulta la lista de características completa para obtener más información.
get
Obtiene información sobre una estructura o un dispositivo autorizados.
Una llamada a GET
muestra una sola respuesta con campos y valores actuales para todas las características disponibles de 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 sala.
Por ejemplo, un Nest Thermostat puede 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 estructuras, salas o dispositivos autorizados.
Para enumerar todas las estructuras, las habitaciones o los dispositivos autorizados con un solo token de acceso, realiza una llamada a GET
en el extremo del recurso adecuado:
GET /enterprises/project-id/structures
GET /enterprises/project-id/structures/structure-id/rooms
GET /enterprises/project-id/devices
Integraciones de Asistente de Google
Una vez que se autoriza un dispositivo para SDM, Google lo detecta en Home Graph y administra su estado directamente. Si tienes integración con Asistente de Google como parte de tu oferta comercial, sigue estos pasos:
- No envíes solicitudes de sincronización de solicitud para dispositivos SDM.
- Omite dispositivos SDM de cualquier respuesta a un intent SYNC
Errores
Consulta la referencia de códigos de error de la API para ver la lista completa.