![](https://developers.google.cn/nest/device-access/images/device-thermostat.png?authuser=19&hl=es-419)
Todos los Google Nest Thermostat modelos son compatibles la API de Smart Device Management (SDM). Estos dispositivos devuelven el TERMOSTATO tipo de dispositivo:
sdm.devices.types.THERMOSTAT
Rasgos
Referencia
Los siguientes rasgos, comandos o eventos están relacionados con este grupo:
Rasgo | Descripción | Comandos |
---|---|---|
Conectividad | Esta característica pertenece a cualquier dispositivo que tenga información de conectividad. | |
Con ventilador | Este rasgo pertenece a cualquier dispositivo que tenga la capacidad del sistema para controlar el ventilador. | SetTimer |
Humedad | Esta característica pertenece a cualquier dispositivo que tenga un sensor para medir la humedad. | |
Información | Esta característica pertenece a cualquier dispositivo para obtener información relacionada con él. | |
Configuración | Esta característica pertenece a cualquier dispositivo para obtener información de configuración relacionada. | |
Temperatura | Esta característica pertenece a cualquier dispositivo que tenga un sensor para medir la temperatura. | |
ThermostatEco | Esta característica pertenece a los tipos de dispositivos del TERMOSTATO que admiten modos ECO. | SetMode |
ThermostatHvac | Esta característica pertenece a los tipos de dispositivos de TERMOSTATO que pueden informar detalles de HVAC. | |
ThermostatMode | Esta característica pertenece a los tipos de dispositivos de TERMOSTAT que admiten diferentes modos. | SetMode |
ThermostatTemperatureSetpoint | Esta característica pertenece a los tipos de dispositivos de TERMOSTAT que admiten la configuración de la temperatura final y el rango de temperatura. | SetHeat SetCool SetRange |
JSON
La ausencia de una característica en una respuesta GET indica que la característica o no está disponible actualmente para el dispositivo. Consulta Tipos de dispositivos para obtener más información información.
{ "type" : "sdm.devices.types.THERMOSTAT", "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 } } }
Temperatura y humedad
Para leer la temperatura ambiente del termostato, usa el Característica de temperatura. El ambiente se mide en el dispositivo.
Para leer la humedad del ambiente del termostato, usa el Humedad . El ambiente se mide en el dispositivo.
Escala de temperatura
El Google Nest Thermostat puede mostrar la temperatura en grados Celsius Fahrenheit, pero la API de SDM no puede establecer la escala. Para determinar la escala de temperatura establecida actualmente por el usuario, usa el Característica de configuración.
Cambiar el modo
El modo del termostato se administra con dos características diferentes: ThermostatMode and ThermostatEco.
Modos estándar
Para cambiar el modo del termostato a CALOR, Frío o HEATCOOL, usa el comando SetMode de la característica ThermostatMode.
Este comando también se puede usar para desactivar el modo del termostato. No se puede usar para encender en modo Eco.Por ejemplo, para cambiar uno de los modos estándar del termostato, haz lo siguiente:
Solicitud
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode
",
"params" : {
"mode" : "HEAT"
}
}
Respuesta
{}
Modo Eco
Para activar el modo Eco, utiliza MANUAL_ECO como el modo con las Comando SetMode de la característica ThermostatEco:
Solicitud
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode
",
"params" : {
"mode" : "MANUAL_ECO"
}
}
Respuesta
{}
Este comando afecta otras características, según el estado actual del modo Eco o los cambios en él:
- Si el modo Eco está DESACTIVADO, el termostato usará de forma predeterminada el último modo estándar (CALOR, FRÍO, CALEFACCIÓN o APAGADO) que estuvo activo.
- Si el modo Eco es MANUAL_ECO:
- Se rechazaron los comandos de la característica Punto de ajuste de temperatura del termostato .
- La característica ThermostatTemperatureSetpoint no devuelve los puntos de ajuste de temperatura.
Cambia los puntos de ajuste de la temperatura
Los puntos de ajuste de temperatura solo se pueden cambiar cuando el termostato está en modos (CALOR, FRÍO o HEATCOOL) y los puntos de ajuste permitidos corresponden al modo actual del termostato. Temperatura los puntos de ajuste no pueden modificarse cuando el modo está Apagado o cuando El modo Eco está configurado en MANUAL_ECO.
El termostato debe estar en el modo que corresponda al comando al que se llama antes de cambiar los puntos de ajuste de la temperatura. El comando y los campos para cambiar los puntos de ajuste varían según el termostato. .
Por ejemplo, para emitir el SetHeat el termostato debe estar en modo CALOR primero:
Modo | Comando | Campos |
---|---|---|
CALOR | SetHeat | heatCelsius |
FRÍO | SetCool | coolCelsius |
HEATCOOL | SetRange | heatCelsius , coolCelsius |
Ten en cuenta que los comandos de punto de ajuste solo toman grados en Celsius como parámetro, aunque la Google Nest Thermostat puede mostrar la temperatura en grados Celsius o Fahrenheit.
Por ejemplo, para cambiar el punto de ajuste de la temperatura cuando el termostato está en modo CALOR, usa el Comando SetHeat de la característica ThermostatTemperatureSetpoint:
Solicitud
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat
",
"params" : {
"heatCelsius" : 22.0
}
}
Respuesta
{}
Puntos de ajuste del modo Eco
Los puntos de ajuste de heatCelsius
y coolCelsius
que devuelve el
El usuario establece las características ThermostatEco.
no se pueden cambiar a través de la API de SDM.
Cómo encender o apagar el ventilador
Si el termostato admite un ventilador, usa el comando SetTimer de la característica Ventilador para encenderlo o apagarlo. Puedes especificar durante cuánto tiempo quieres que funcione el ventilador, en segundos.
Por ejemplo, para hacer funcionar el ventilador durante una hora:
Solicitud
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer
",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
Respuesta
{}
Si se omite el campo duration
, el ventilador se ejecutará durante un tiempo predeterminado de 15.
minutos.
Verifica la conectividad del dispositivo
Si el dispositivo no responde a comandos ni envía eventos, o si recibes errores de la API relacionados con el dispositivo, usa el Característica de conectividad para verificar la conectividad del dispositivo para obtener el estado SIN CONEXIÓN. Revisa el conexión a Internet y asegúrate de que el Nest El servicio está activo.
Si tienes eventos habilitados, también deberías haber recibido un evento de recurso indica que el dispositivo se quedó sin conexión:
Carga útil
{
"eventId" : "f8c9a10e-db84-49f1-9c6f-246d3cfd3df3",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.Connectivity
" : {
"status" : "OFFLINE"
}
}
},
"userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [
"enterprises/project-id/devices/device-id"
]
}
Reaccionar a eventos del dispositivo
Cualquier cambio que se realice en un campo de característica genera un evento.
Por ejemplo, recibirías
el siguiente evento resourceUpdate
si el sistema de HVAC del termostato
el estado cambió a CALEFACCIÓN:
Carga útil
{
"eventId" : "c4359ca0-9a82-49e2-9e72-ee7918cdc14b",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.ThermostatHvac
" : {
"status" : "HEATING"
}
}
},
"userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [
"enterprises/project-id/devices/device-id"
]
}
Los eventos se activan para todas las características asociadas a este tipo de dispositivo. Habilitar eventos si debes reaccionar de alguna manera como parte de una integración.
Plazo de los eventos
Ten en cuenta que es posible que un evento de cambio en el estado de HVAC no se entregue al mismo tiempo que los eventos para cambiar el modo del termostato.
Por ejemplo, a veces hay a demora en el inicio del modo de calefacción o enfriamiento de un termostato para proteger el sistema de HVAC en un sistema de archivos. En este caso, al cambiar el modo del termostato, es posible que inicialmente solo se envíen eventos para ThermostatMode and Cambios en la característica ThermostatTemperatureSetpoint con la El cambio de característica del termostato Hvac se envía más tarde como un cuando el sistema se encienda. Si no hubo demora en la activación del sistema de HVAC, todo tres eventos se enviarán al mismo tiempo.
Errores
Es posible que se muestren los siguientes códigos de error en relación con este dispositivo:
Mensaje de error | RPC | Soluciona problemas |
---|---|---|
El valor de enfriamiento debe ser superior al valor de calor. | INVALID_ARGUMENT |
Asegúrate de que el campo heatCelsius sea menor que el campo coolCelsius de tu comando. |
No se permite el comando en el modo del termostato actual. | FAILED_PRECONDITION |
Algunos modelos de termostatos no admiten el cambio del modo Eco cuando el modo del termostato está DESACTIVADO, según la característica Mododetermostato . El modo del termostato debe cambiarse a CALOR, FRÍO o HEATCOOL antes de cambiar el modo Eco. |
El ventilador del termostato no está disponible. | FAILED_PRECONDITION |
El termostato no tiene capacidad para ventilador. No se pueden usar en este dispositivo los rasgos ni los comandos relacionados con el ventilador. |
No se permite el comando cuando el termostato está en modo MANUAL_ECO. | FAILED_PRECONDITION |
No se puede establecer el punto de ajuste de la temperatura cuando el termostato está en modo Eco manual. |
Consulta la referencia de códigos de error de API para la lista completa de códigos de error de API.