
Todos os modelos do Google Nest Thermostat são compatíveis com a API Smart Device Management (SDM). Esses dispositivos retornam o tipo de dispositivo THERMOSTAT:
sdm.devices.types.THERMOSTAT
Características
Referência
As seguintes características, comandos ou eventos estão relacionados a esse grupo:
Característica | Descrição | Comandos |
---|---|---|
Conectividade | Esse traço pertence a qualquer dispositivo que tenha informações de conectividade. | |
Ventoinha | Esse traço pertence a qualquer dispositivo que tenha a capacidade do sistema de controlar o ventilador. | SetTimer |
Umidade | Essa característica pertence a qualquer dispositivo que tenha um sensor para medir a umidade. | |
Informações | Esse atributo pertence a qualquer dispositivo para informações relacionadas a ele. | |
Configurações | Esse traço pertence a qualquer dispositivo para informações de configurações relacionadas a ele. | |
Temperatura | Essa característica pertence a qualquer dispositivo que tenha um sensor para medir a temperatura. | |
ThermostatEco | Esse traço pertence a tipos de dispositivos TERMOSTATO que oferecem suporte a modos ECO. | SetMode |
ThermostatHvac | Esse traço pertence a tipos de dispositivos TERMOSTATO que podem informar detalhes de HVAC. | |
ThermostatMode | Esse traço pertence a tipos de dispositivos THERMOSTAT que oferecem suporte a diferentes modos de termostato. | SetMode |
ThermostatTemperatureSetpoint | Esse traço pertence a tipos de dispositivos THERMOSTAT que aceitam definir a temperatura desejada e o intervalo de temperatura. | SetHeat SetCool SetRange |
JSON
A ausência de uma característica em uma resposta GET indica que a característica ou recurso não está disponível no momento para o dispositivo. Consulte Tipos de dispositivos para mais informações.
{ "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 e umidade
Para ler a temperatura ambiente do termostato, use a característica Temperature . A temperatura ambiente é medida no dispositivo.
Para ler a umidade ambiente do termostato, use a característicaHumidity . A umidade ambiente é medida no dispositivo.
Escala de temperatura
O Google Nest Thermostat pode mostrar a temperatura em graus Celsius ou Fahrenheit, mas a escala não pode ser definida pela API SDM. Para determinar a escala de temperatura definida pelo usuário, use a característicaSettings .
Mudar o modo
O modo do termostato é gerenciado por duas características diferentes: ThermostatMode e ThermostatEco.
Modos padrão
Para mudar o modo do termostato para HEAT, COOL ou HEATCOOL, use o comando SetMode da característica ThermostatMode.
Esse comando também pode ser usado para desligar o termostato, mas não para ativar o modo Eco.Por exemplo, para mudar um dos modos padrão do termostato:
Solicitação
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode
",
"params" : {
"mode" : "HEAT"
}
}
Resposta
{}
Modo Eco
Para ativar o modo Eco, use MANUAL_ECO como o modo com o comando SetMode da característica ThermostatEco:
Solicitação
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode
",
"params" : {
"mode" : "MANUAL_ECO"
}
}
Resposta
{}
Esse comando afeta outros traços com base no status atual ou nas mudanças no modo econômico:
- Se o modo Eco estiver DESATIVADO, o modo do termostato será definido como o último modo padrão (AQUECER, RESFRIAR, AQUECER • RESFRIAR ou DESATIVADO) que estava ativo.
- Se o modo Eco for MANUAL_ECO:
- Os comandos para o traço ThermostatTemperatureSetpoint são rejeitados.
- Os pontos de ajuste de temperatura não são retornados pela característica ThermostatTemperatureSetpoint .
Mudar as temperaturas programadas
As temperaturas programadas só podem ser mudadas quando o termostato está nos modos AQUECER, RESFRIAR ou AQUECERRESFRIAR, e as temperaturas programadas permitidas correspondem ao modo atual do termostato. Os pontos de ajuste de temperatura não podem ser alterados quando o modo está DESATIVADO ou quando o modo Eco está definido como MANUAL_ECO.
O termostato precisa estar no modo correspondente ao comando chamado antes de mudar os pontos de ajuste de temperatura. O comando e os campos para mudar as temperaturas programadas variam de acordo com o modo do termostato.
Por exemplo, para emitir o comando SetHeat, o termostato precisa estar no modo AQUECER primeiro:
Modo | Comando | Campo(s) |
---|---|---|
AQUECIMENTO | SetHeat | heatCelsius |
COOL | SetCool | coolCelsius |
HEATCOOL | SetRange | heatCelsius , coolCelsius |
Os comandos de temperatura programada usam apenas graus Celsius como parâmetro, mas o termostato Google Nest pode mostrar a temperatura em graus Celsius ou Fahrenheit.
Por exemplo, para mudar a temperatura definida quando o termostato está no modo HEAT, use o comando SetHeat da característica ThermostatTemperatureSetpoint:
Solicitação
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat
",
"params" : {
"heatCelsius" : 22.0
}
}
Resposta
{}
Pontos de ajuste do modo Eco
Os pontos de ajuste heatCelsius
e coolCelsius
retornados pela
característica ThermostatEco são definidos pelo usuário e
não podem ser alterados pela API SDM.
Ligar ou desligar o ventilador
Se o termostato for compatível com um ventilador, use o comando SetTimer da característica "Ventilador" para ligar ou desligar o aparelho. Ao ligar, você pode especificar o tempo de funcionamento do ventilador em segundos.
Por exemplo, para ligar o ventilador por uma hora:
Solicitação
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer
",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
Resposta
{}
Se o campo duration
for omitido, o ventilador vai funcionar por um tempo padrão de 15 minutos.
Verificar a conectividade do dispositivo
Se o dispositivo não estiver respondendo a comandos ou enviando eventos, ou se você receber erros da API relacionados ao dispositivo, use a característicaConnectivity para verificar a conectividade do dispositivo com um status OFFLINE. Verifique a conexão do dispositivo com a Internet e confira se o Serviço Nest está funcionando.
Se você tiver eventos ativados, também vai receber um evento de recurso indicando que o dispositivo ficou off-line:
Payload
{
"eventId" : "c10c1ae5-2bf3-434b-a77f-42a2b94f689b",
"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"
]
}
Reagir a eventos do dispositivo
Qualquer mudança em um campo de característica gera um evento.
Por exemplo, você receberia
o seguinte evento resourceUpdate
se o status
do HVAC do termostato mudasse para HEATING:
Payload
{
"eventId" : "880ace18-f08a-4703-8d46-ddba8a7c9542",
"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"
]
}
Os eventos são acionados para todas as características associadas a esse tipo de dispositivo. Ative eventos se precisar reagir a eles de alguma forma como parte de uma integração.
Tempo dos eventos
Um evento de mudança no status do HVAC pode não ser entregue ao mesmo tempo que eventos de mudança no modo do termostato.
Por exemplo, às vezes há um atraso no início do modo de aquecimento ou resfriamento de um termostato para proteger o sistema de AVAC. Nesse cenário, a mudança no modo do termostato pode enviar inicialmente apenas eventos para ThermostatMode e ThermostatTemperatureSetpoint , com a mudança de ThermostatHvac enviada posteriormente como um evento separado quando o sistema for ligado. Se não houver atraso na ativação do sistema de HVAC, os três eventos serão enviados ao mesmo tempo.
Erros
Os seguintes códigos de erro podem ser retornados em relação a este dispositivo:
Mensagem de erro | RPC | Solução de problemas |
---|---|---|
O valor de resfriamento precisa ser maior que o valor de aquecimento. | INVALID_ARGUMENT |
Verifique se o campo heatCelsius é menor que o campo coolCelsius no comando. |
O comando não é permitido no modo atual do termostato. | FAILED_PRECONDITION |
Alguns modelos de termostato não permitem mudar o modo Eco quando o modo do termostato está DESATIVADO, de acordo com a característica ThermostatMode . O modo do termostato precisa ser mudado para AQUECER, RESFRIAR ou AQUECERRESFRIAR antes de mudar o modo econômico. |
O ventilador do termostato está indisponível. | FAILED_PRECONDITION |
O termostato não tem um ventilador. Não é possível usar comandos e características relacionados a ventiladores neste dispositivo. |
O comando não é permitido quando o termostato está no modo MANUAL_ECO. | FAILED_PRECONDITION |
Não é possível definir o ponto de ajuste de temperatura quando o termostato está no modo Eco manual. |
Consulte a Referência de códigos de erro da API para conferir a lista completa de códigos de erro da API.