Esquema de características de Smart Run RunCycle
action.devices.traits.RunCycle
: essa característica representa qualquer dispositivo com uma duração contínua para a operação que pode ser consultada.
Dispositivos como esses vão informar o número total de ciclos no início da operação e em cada ciclo em que o dispositivo está atualmente 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 ainda tem?
- O que a secadora está fazendo?
- Quando a lavagem será feita?
Alguns dispositivos incluem uma duração em um formato não cíclico. Qualquer dispositivo 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, as lava-louças nem sempre usam todos os ciclos. Por exemplo, o usuário pode perguntar: por quanto tempo meu aspirador vai ser executado?, o que retornará a quantidade de tempo em unidades proporcional ao tempo restante. Isso também se aplica aos dispositivos listados acima. Por quanto tempo minhas roupas vão secar? retornará uma duração em minutos.
Os dispositivos retornam 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á em execução e será concluída em cerca de 20 minutos).
No momento, o RunCycle é uma característica somente leitura. Não há comandos, apenas estados para consulta. No futuro, poderá haver mecanismos para executar ciclos novamente ou pular ciclos. Ideal para sprinklers e uso de máquinas de lavar.
ATRIBUTOS DO DISPOSITIVO
Nenhuma.
STATES do dispositivo
Entidades com essa característica podem relatar os estados
a seguir como parte da operação QUERY
. Para saber
mais sobre como processar intents QUERY
, consulte
fulfillment de intent.
Estados | Tipo | Descrição |
---|---|---|
currentRunCycle |
Array |
Obrigatório. Contém os sinônimos do ciclo atual em cada idioma aceito. |
[item, ...] |
Object |
Nomes de sinônimos de ciclos. |
currentCycle |
String |
Obrigatório. Ciclo em execução. |
nextCycle |
String |
Opcional. Próximo ciclo a ser realizado. |
lang |
String |
Obrigatório. Código do idioma para os nomes de ciclo fornecidos. Consulte Idiomas compatíveis. |
currentTotalRemainingTime |
Número inteiro |
Obrigatório. Tempo restante de operação em segundos. |
currentCycleRemainingTime |
Número inteiro |
Obrigatório. Tempo restante no ciclo atual, em segundos. |
Exemplos
O dispositivo será lavado por mais 5 minutos e terminará em 20 minutos.
{ "currentRunCycle": [ { "currentCycle": "rinse", "lang": "en" } ], "currentTotalRemainingTime": 1200, "currentCycleRemainingTime": 300 }
O dispositivo é executado por 5 minutos antes de girar.
{ "currentRunCycle": [ { "currentCycle": "rinse", "nextCycle": "spin", "lang": "en" } ], "currentTotalRemainingTime": 600, "currentCycleRemainingTime": 300 }
Comandos do dispositivo
Nenhuma.
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: |
|
É compatível com: | ||
0
|
Object |
Sucesso |
priority |
Número inteiro |
Obrigatório. Representa o nível de notificação. O valor aceito atualmente é 0, o que indica que a notificação deve ser falada em voz alta. |
status |
String |
Obrigatório. Resultado da operação. Os valores suportados são:
|
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 atualmente é 0, o que indica que a notificação deve ser falada em voz alta. |
status |
String |
Obrigatório. Resultado da operação. Os valores suportados são:
|
errorCode |
String |
Obrigatório. O valor pode ser qualquer código de erro dessa característica, por exemplo, |
Exemplos
O dispositivo terminou de executar.
{ "RunCycle": { "priority": 0, "status": "SUCCESS", "currentCycleRemainingTime": 0 } }
Ocorreu um erro ao concluir o ciclo atual.
{ "RunCycle": { "priority": 0, "status": "FAILURE", "errorCode": "deviceStuck" } }