Esquema de atributo RunCycle da casa inteligente
action.devices.traits.RunCycle
: essa característica representa qualquer dispositivo que tenha uma duração contínua para a operação que pode ser consultada.
Dispositivos como esses informam o número total de ciclos no início da operação e a cada ciclo em que o dispositivo está em execução. Isso permite que o usuário faça consultas, como as seguintes:
- Em que ciclo está a secadora?
- Quantos ciclos a lava-louças tem restantes?
- O que a secadora está fazendo?
- Quando será a lavagem?
Alguns dispositivos incluem uma duração em um formato não cíclico. Qualquer dispositivo que seja executado por um período específico pode informar o tempo restante, sem ciclos. Isso também processa casos em que os ciclos podem não ser consistentes (por exemplo, lava-louças nem sempre usam todos os ciclos). Por exemplo, um usuário pode perguntar Por quanto tempo meu aspirador vai funcionar?, que vai retornar a quantidade de tempo em unidades proporcional ao tempo restante. Isso também se aplica aos dispositivos listados acima. A consulta Quanto tempo minhas roupas vão levar para secar? vai retornar uma duração em minutos.
Os dispositivos podem retornar o que sabem, e a resposta de TTS do Google Assistente vai formar a melhor resposta com os dados disponíveis (por exemplo, A lava-louças está funcionando e vai ser concluída em cerca de 20 minutos).
O RunCycle é atualmente um traço somente leitura. Ele não tem comandos, apenas estados para consulta. No futuro, talvez haja mecanismos para repetir ciclos ou pular ciclos (bom para sprinklers, ruim para máquinas de lavar).
ATRIBUTOS do dispositivo
Nenhum.
ESTADOS DO DISPOSITIVO
As entidades com essa característica podem informar os seguintes
estados como parte da operação QUERY
. Para saber
mais sobre o processamento de intents QUERY
, consulte
Fulfillment de intents.
Estados | Tipo | Descrição |
---|---|---|
currentRunCycle |
Array |
Obrigatório. Contém os sinônimos do ciclo atual em cada idioma com suporte. |
[item, ...] |
Object |
Nomes de sinônimos de ciclo. |
currentCycle |
String |
Obrigatório. O ciclo atual está sendo executado. |
nextCycle |
String |
Opcional. Próximo ciclo a ser realizado. |
lang |
String |
Obrigatório. Código do idioma para os nomes dos ciclos fornecidos. Consulte Idiomas aceitos. |
currentTotalRemainingTime |
Número inteiro |
Obrigatório. Tempo restante em operação, em segundos. |
currentCycleRemainingTime |
Número inteiro |
Obrigatório. Tempo restante no ciclo atual, em segundos. |
Exemplos
O dispositivo está em enxágue por mais 5 minutos e terminará em 20 minutos.
{ "currentRunCycle": [ { "currentCycle": "rinse", "lang": "en" } ], "currentTotalRemainingTime": 1200, "currentCycleRemainingTime": 300 }
O dispositivo fica em enxágue por mais 5 minutos antes de passar para a centrifugação.
{ "currentRunCycle": [ { "currentCycle": "rinse", "nextCycle": "spin", "lang": "en" } ], "currentTotalRemainingTime": 600, "currentCycleRemainingTime": 300 }
COMANDOS do dispositivo
Nenhum.
NOTIFICAÇÕES DO DISPOSITIVO
Dispositivos com essa característica podem retornar o seguinte payload de notificação como parte de uma mudança de estado do dispositivo. Para saber mais sobre como implementar notificações, consulte Notificações para ações de casa inteligente.
Campos | Tipo | Descrição |
---|---|---|
RunCycle |
Obrigatório. Payload de notificação: |
|
Suporte a uma das seguintes opções: | ||
0
|
Object |
Sucesso |
priority |
Número inteiro |
Obrigatório. Representa o nível de notificação. O valor aceito no momento é 0, o que indica que a notificação precisa ser lida em voz alta. |
status |
String |
Obrigatório. Resultado da operação. Valores aceitos:
|
currentCycleRemainingTime |
Número inteiro |
Obrigatório. Tempo restante no ciclo atual, em segundos. |
1
|
Object |
Falha |
priority |
Número inteiro |
Obrigatório. Representa o nível de notificação. O valor aceito no momento é 0, o que indica que a notificação precisa ser lida em voz alta. |
status |
String |
Obrigatório. Resultado da operação. Valores aceitos:
|
errorCode |
String |
Obrigatório. O valor pode ser qualquer código de erro para essa característica, por exemplo, |
Exemplos
O dispositivo terminou a execução.
{ "RunCycle": { "priority": 0, "status": "SUCCESS", "currentCycleRemainingTime": 0 } }
Ocorreu um erro ao concluir o ciclo atual.
{ "RunCycle": { "priority": 0, "status": "FAILURE", "errorCode": "deviceStuck" } }