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:

SUCCESS
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:

FAILURE
errorCode String

Obrigatório.

O valor pode ser qualquer código de erro para essa característica, por exemplo, deviceStuck.

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"
  }
}

ERROS no dispositivo

Veja a lista completa de erros e exceções.