Esquema de traços de RunCycle para casa inteligente
action.devices.traits.RunCycle
: essa característica representa qualquer dispositivo que tem uma duração contínua para 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á minha secadora?
- Quantos ciclos faltam a lava-louças?
- 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 executada por um período específico pode informar o tempo restante, sem ciclos. Isso também lida com 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: Como por quanto tempo meu aspirador de pó vai funcionar?, que retornará o tempo em unidades proporcional ao tempo restante. Isso também se aplica aos dispositivos listados acima; Quanto tempo a mais vai levar minhas roupas estarem secando? retorna uma duração em minutos.
Os dispositivos podem retornar o que sabem, e a resposta de TTS do Google Assistente forma a melhor resposta com os dados disponíveis (por exemplo, A lava-louças está funcionando e será concluído em cerca de 20 minutos.)
No momento, o RunCycle é somente leitura. Ele não tem comandos, apenas estados para consulta. No futuro, poderá haver mecanismos para executar novamente ciclos ou ignorar (bom para aspersores, ruim para máquinas de lavar).
ATRIBUTOS DO dispositivo
Nenhum.
STATES do dispositivo
Entidades com essa característica podem relatar o seguinte
como parte da operação QUERY
. Para saber
mais sobre como lidar com intents QUERY
, consulte
Fulfillment da intent.
Estados | Tipo | Descrição |
---|---|---|
currentRunCycle |
Array |
Obrigatório. Contém os sinônimos do ciclo atual em cada idioma compatível. |
[item, ...] |
Object |
Nomes de sinônimos do 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 dos nomes de ciclo especificados. Consulte Idiomas compatíveis. |
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 é enxaguado por mais cinco minutos, antes de passar para a rotaçã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 a implementação de notificações, consulte Notificações de ações de casa inteligente.
Campos | Tipo | Descrição |
---|---|---|
RunCycle |
Obrigatório. Payload de notificação: |
|
Oferece 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 compatível atualmente é 0, o que indica que a notificação deve ser falada em voz alta. |
status |
String |
Obrigatório. Resultado da operação. Valores compatíveis:
|
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 compatível atualmente é 0, o que indica que a notificação deve ser falada em voz alta. |
status |
String |
Obrigatório. Resultado da operação. Valores compatíveis:
|
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" } }