![](https://developers.google.cn/nest/device-access/images/device-thermostat.png?authuser=8&hl=pt-br)
Todos os Google Nest Thermostat de ML são compatíveis com pela API Smart Device Management (SDM). Esses dispositivos retornam o TERMOSTATO tipo de dispositivo:
sdm.devices.types.THERMOSTAT
Características
Referência
As seguintes características, comandos ou eventos estão relacionados a esse grupo:
Características | Descrição | Comandos |
---|---|---|
Conectividade | Essa característica pertence a qualquer dispositivo que tenha informações de conectividade. | |
Fã | Essa característica 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 | Essa característica pertence a qualquer dispositivo para informações relacionadas ao dispositivo. | |
Configurações | Essa característica pertence a qualquer dispositivo para informações de configurações relacionadas ao dispositivo. | |
Temperatura | Essa característica pertence a qualquer dispositivo que tenha um sensor para medir a temperatura. | |
ThermostatEco | Essa característica pertence a tipos de dispositivos de TERMOSTATO que oferecem suporte aos modos ECO. | SetMode |
ThermostatHvac | Essa característica pertence aos tipos de dispositivos de TERMOSTATO que podem informar detalhes de AVAC (aquecimento, ventilação e ar-condicionado). | |
ThermostatMode | Essa característica pertence a tipos de dispositivos de THERMOSTAT que oferecem suporte a diferentes modos de termostato. | SetMode |
ThermostatTemperatureSetpoint | Essa característica pertence a tipos de dispositivos de TERMOSTATO que oferecem suporte à definição de temperatura-alvo e faixa de temperatura. | SetHeat SetCool SetRange |
JSON
A ausência de uma característica em uma resposta GET indica que a característica ou não está disponível para o dispositivo no momento. Consulte Tipos de dispositivo para mais opções informações imprecisas ou inadequadas.
{ "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 o Temperatura A música ambiente é medida no dispositivo.
Para ler a umidade do ambiente do termostato, use o Umidade . A música ambiente a umidade é 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 do SDM. Para determinar a escala de temperatura atualmente definida pelo usuário, use o Configurações :
Mudar o modo
O modo do termostato é gerenciado por duas características diferentes: ThermostatMode and TermostatoEco.
Meios padrão
Para mudar o modo do termostato para Aquecer, Resfriar ou Aquecer, use o comando SetMode da característica ThermostatMode.
Esse comando também pode ser usado para DESLIGAR o modo do termostato. Ele não pode ser usado para transformar no 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 outras características com base no status atual ou nas mudanças do modo Eco:
- Se o modo Eco estiver DESATIVADO, o termostato usará o último modo padrão ativo (Aquecer, Resfriar, Aquecer ou DESLIGAR).
- Se o modo Eco for MANUAL_ECO:
- Os comandos para o atributo ThermostatTemperatureSetpoint são rejeitados.
- As temperaturas programadas não são retornadas pela característica ThermostatTemperatureSetpoint .
Mudar as temperaturas programadas
As temperaturas programadas só podem ser mudadas quando o termostato está em os modos HEAT, COOL ou HEATCOOL, e as temperaturas programadas permitidas correspondem ao modo atual do termostato. Temperatura os pontos de controle não podem ser alterados quando o modo estiver DESATIVADO ou quando o O modo Eco está definido como MANUAL_ECO.
Antes da mudança, o termostato precisa estar no modo que corresponde ao comando chamado as temperaturas programadas. O comando e os campos para mudar as temperaturas programadas variam de acordo com o termostato modo
Por exemplo, para emitir o SetHeat o termostato precisa estar no modo Aquecer primeiro:
Modo | Comando | Campo(s) |
---|---|---|
AQUECIMENTO | SetHeat | heatCelsius |
FRIO | SetCool | coolCelsius |
AQUECIMENTO | SetRange | heatCelsius , coolCelsius |
Os comandos de temperatura programada só usam graus em Celsius como parâmetro, embora o valor O Google Nest Thermostat pode mostrar a temperatura em graus Celsius ou Fahrenheit.
Por exemplo, para mudar a temperatura programada quando o termostato estiver Aquecimento, use o Comando SetHeat da característica ThermostatTemperaturaSetpoint:
Solicitação
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat
",
"params" : {
"heatCelsius" : 22.0
}
}
Resposta
{}
Programações do modo Eco
Os setpoints heatCelsius
e coolCelsius
retornados pelo
características do ThermostatEco são definidas pelo usuário.
não podem ser alterados com a API SDM.
Ligar ou desligar o ventilador
Se o termostato for compatível com um ventilador, use o comando SetTimer da característica da ventilação para ligar ou desligar. Ao ligar, você pode especificar por quanto tempo quer que o ventilador funcione, 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 será executado 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 da API relacionada ao dispositivo, use o Conectividade para verificar conectividade do dispositivo para um status OFF-LINE. Verifique o conexão com a Internet e verifique se o Nest O serviço está ativo.
Se você ativou os eventos, também deve ter recebido um evento de recurso indicando que o dispositivo ficou off-line:
Payload
{
"eventId" : "e9fc64cf-84d9-46ae-b305-e4435a5ed06d",
"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 alteração em um campo de característica gera um evento.
Por exemplo, você receberia
o seguinte evento resourceUpdate
se o sistema AVAC (aquecimento, ventilação e ar-condicionado) do termostato
status alterado para HEATING:
Payload
{
"eventId" : "77fe1905-dc6f-457a-abcd-6e5230deab28",
"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. Ativar eventos se você precisar reagir como parte de uma integração.
Marcação de tempo dos eventos
Um evento para uma mudança no status do AVAC não pode ser entregue ao mesmo tempo que os eventos para alterar o 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 AVAC (aquecimento, ventilação e ar-condicionado) sistema. Neste cenário, a mudança do modo do termostato pode enviar inicialmente eventos apenas para ThermostatMode and ThermostatTemperaturaSetpoint mudam, com a ThermostatHvac alteração de características enviada mais tarde como um item separado evento assim que o sistema for realmente ativado. Se não houve atraso na ativação do sistema AVAC (aquecimento, ventilação e ar-condicionado), todos três eventos seriam 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 do resfriamento precisa ser maior que o valor do aquecimento. | INVALID_ARGUMENT |
Verifique se o campo heatCelsius é menor que o campo coolCelsius no comando. |
Comando não permitido no modo de termostato atual. | FAILED_PRECONDITION |
Alguns modelos de termostato não são compatíveis com a mudança do modo Eco quando ele estiver DESATIVADO, de acordo com o ThermostatMode . O modo do termostato precisa ser alterado para Aquecer, Resfriar ou Aquecer completamente antes de mudar o modo Eco. |
Ventilador do termostato indisponível. | FAILED_PRECONDITION |
O termostato não tem capacidade para ventilador. Características e comandos relacionados ao ventilador não podem ser usados para este dispositivo. |
Comando não permitido no modo MANUAL_ECO do termostato. | FAILED_PRECONDITION |
Não é possível definir a temperatura programada quando o termostato está no modo Eco manual. |
Consulte a Referência do código de erro da API para a lista completa de códigos de erro da API.