Guia do termostato de casa inteligente
action.devices.types.THERMOSTAT
: os termostatos são dispositivos de gerenciamento de temperatura com pontos e modos definidos. Assim, eles serão separados dos aquecedores e das unidades de CA, que podem ter somente modos e configurações (por exemplo, alta/baixa) em relação à meta de temperatura.
Esse tipo indica que o dispositivo recebe o ícone do termostato e alguns sinônimos e aliases relacionados.
Dispositivos desse tipo controlam a temperatura, enquanto algumas unidades de sala de aquecimento/refrigeração têm controles diferentes e modos de alta/baixa, mas não controles de temperatura.Recursos do dispositivo
Consulte a documentação de característica correspondente para ver detalhes de implementação, como atributos e estados aos quais seu serviço precisa oferecer suporte, e como criar respostas EXECUTE e QUERY.
Características necessárias
Essas características e os comandos são obrigatórios, se aplicável ao seu dispositivo.
Os comandos do termostato geralmente são encadeados em intents EXECUTE
. Um usuário que disser *Definir o aquecimento para 72* vai gerar um comando de modo seguido por um conjunto de temperatura.
Requisitos de qualidade
- Latência:precisa ser menor ou igual a 700 ms.
- Confiabilidade: precisa ser maior ou igual a 97%.
Exemplo de dispositivo: termostato simples
Esta seção contém exemplos de payloads de intent que representam um "Termostato" comum com base no tipo de dispositivo e nas características acima. Se você adicionar ou remover características na sua implementação, modifique suas respostas de acordo com essas mudanças.
Exemplo de resposta SYNC
{ "requestId": "6894439706274654512", "inputs": [ { "intent": "action.devices.SYNC" } ] }
{ "requestId": "6894439706274654512", "payload": { "agentUserId": "user123", "devices": [ { "id": "123", "type": "action.devices.types.THERMOSTAT", "traits": [ "action.devices.traits.TemperatureSetting" ], "name": { "name": "Simple thermostat" }, "willReportState": true, "attributes": { "availableThermostatModes": [ "off", "heat", "cool", "heatcool", "on" ], "thermostatTemperatureRange": { "minThresholdCelsius": 15, "maxThresholdCelsius": 30 }, "thermostatTemperatureUnit": "F" }, "deviceInfo": { "manufacturer": "smart-home-inc", "model": "hs1234", "hwVersion": "3.2", "swVersion": "11.4" } } ] } }
Exemplo de resposta QUERY
{ "requestId": "6894439706274654514", "inputs": [ { "intent": "action.devices.QUERY", "payload": { "devices": [ { "id": "123" } ] } } ] }
{ "requestId": "6894439706274654514", "payload": { "devices": { "123": { "status": "SUCCESS", "online": true, "thermostatMode": "cool", "thermostatTemperatureSetpoint": 23, "thermostatTemperatureAmbient": 25.1, "thermostatHumidityAmbient": 45.3 } } } }
Exemplos de comandos EXECUTE
Temperatura interna do termostato
Para mais detalhes sobre os parâmetros de comando, consulte a referência
action.devices.traits.TemperatureSetting
.
{ "requestId": "6894439706274654516", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.ThermostatTemperatureSetpoint", "params": { "thermostatTemperatureSetpoint": 22 } } ] } ] } } ] }
{ "requestId": "6894439706274654516", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "thermostatMode": "cool", "thermostatTemperatureSetpoint": 22, "thermostatTemperatureAmbient": 25.1 } } ] } }
Temperatura interna do termostato
Para mais detalhes sobre os parâmetros de comando, consulte a referência
action.devices.traits.TemperatureSetting
.
{ "requestId": "6894439706274654518", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.ThermostatTemperatureSetRange", "params": { "thermostatTemperatureSetpointHigh": 26, "thermostatTemperatureSetpointLow": 22 } } ] } ] } } ] }
{ "requestId": "6894439706274654518", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "thermostatMode": "heatcool", "thermostatTemperatureSetpointHigh": 26, "thermostatTemperatureSetpointLow": 22, "thermostatTemperatureAmbient": 25.1 } } ] } }
TermostatoSetMode
Para mais detalhes sobre os parâmetros de comando, consulte a referência
action.devices.traits.TemperatureSetting
.
{ "requestId": "6894439706274654520", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.ThermostatSetMode", "params": { "thermostatMode": "heatcool" } } ] } ] } } ] }
{ "requestId": "6894439706274654520", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "thermostatMode": "heatcool", "thermostatTemperatureSetpointHigh": 26, "thermostatTemperatureSetpointLow": 22, "thermostatTemperatureAmbient": 25.1 } } ] } }
Dispositivo ERRORS
Veja a lista completa de erros e exceções.inHeatOrCool
: falha nos comandos de aquecimento/refrigeração/intervalo porque o dispositivo está em aquecimento ou resfriamento explícito.inHeatCool
: falha nos comandos de aquecimento ou resfriamento, porque o dispositivo está no calor ou resfriado.lockedToRange
: o dispositivo está bloqueado para um intervalo de temperatura ou modo, e a mudança solicitada não pode ser feita.rangeTooClose
: os pontos de temperatura em um intervalo de calor são muito próximos.