Ler transações

Ler transação

Um dos primeiros casos de uso ao interagir com nós em Matter é a leitura de um atributo de outro nó, como um valor de temperatura de um sensor. Nessas interações, a primeira ação que precisa ser realizada é a ação de solicitação de leitura.

Sequência de operações de uma transação de leitura
Figura 1: Transação de leitura

Ação de solicitação de leitura

Direção: iniciador -> destino

Nessa ação, o iniciador consulta um destino fornecendo:

  • Solicitações de atributo: uma lista de zero ou mais atributos do destino. Essa lista é composta por zero ou mais caminhos para os atributos solicitados do destino.
  • Solicitações de evento: lista de zero ou mais caminhos para os eventos solicitados do destino.

Depois que a ação de solicitação de leitura é recebida pelo destino, ela monta uma ação de dados de relatório com as informações solicitadas.

Ação de dados de relatório

Direção: destino -> iniciador

Nessa ação, o destino responde com:

  • Relatórios de atributos: uma lista de zero ou mais atributos informados solicitados na solicitação de ação de leitura.
  • Relatórios de eventos: uma lista de zero ou mais eventos informados.
  • Suprimir resposta: uma flag que determina se a resposta de status a essa ação precisa ser suprimida.
  • ID da assinatura: se esse relatório fizer parte de uma transação de assinatura, ele precisará incluir um número inteiro usado para identificar a transação de assinatura.

Ação de resposta de status

Direção: destino -> iniciador ou iniciador -> destino

Depois que o iniciador recebe os dados solicitados, por padrão, ele precisa gerar uma ação de resposta de status. Essa ação é enviada pelo iniciador, reconhecendo o recebimento dos dados informados. Se a flag "Suprimir resposta de status" estiver definida, o iniciador não poderá enviar a ação de resposta de status.

Depois que a ação de resposta de status é enviada pelo iniciador ou uma ação de dados de relatório é recebida pelo iniciador com a flag "Suprimir resposta" ativada, a consulta de leitura/relatório é concluída.

A ação de resposta de status contém apenas um campo status que reconhece o sucesso da operação ou apresenta um código de falha.

Restrições de leitura

A ação de solicitação de leitura e a ação de dados de relatório são Unicast-only. Além disso, os caminhos dessas solicitações não podem segmentar um grupo de nós.

A ação de resposta de status é Unicast-apenas e não pode ser gerada como resposta a uma transmissão em grupo.

Transação de assinatura

Sequência de operações de uma transação de assinatura
Figura 2: transação de assinatura

Ação de solicitação de assinatura

Direção: iniciador -> destino

Além de uma ação de solicitação de leitura única, um iniciador também pode se inscrever para receber atualizações periódicas de um atributo ou evento. Assim, a mesma ação de dados de relatório pode ser gerada como resultado de atualizações periódicas de dados que seguem uma transação de assinatura.

Uma interação de assinatura cria um relacionamento entre dois nós, em que o destino gera periodicamente ações de dados de relatório para o iniciador. O iniciador é o assinante e o destino é o editor.

Uma ação de solicitação de assinatura contém:

  • Limite mínimo de intervalo: o intervalo mínimo entre os relatórios.
  • Limite máximo de intervalo: o intervalo máximo entre os relatórios.
  • Relatórios de atributos: uma lista de zero ou mais atributos informados solicitados na solicitação de ação de leitura.
  • Relatórios de eventos: uma lista de zero ou mais eventos informados.

Após a solicitação de assinatura, o destino responde ao iniciador com uma ação de dados de relatório que contém o primeiro lote de dados informados: os dados publicados preparados.

Em seguida, o iniciador reconhece a ação de dados de relatório com uma ação de resposta de status enviada ao destino. Quando o destino recebe uma ação de resposta de status informando que não há erros, ele envia uma ação de resposta de assinatura.

O destino vai enviar a ação de dados de relatório periodicamente no intervalo negociado, e o iniciador vai responder a essas ações até que a assinatura seja perdida ou cancelada.

Ação de resposta de assinatura

Direção: destino -> iniciador

Essa é a última ação na transação de assinatura e conclui o processo. Ele inclui:

  • ID da assinatura: um número inteiro que identifica a assinatura.
  • Intervalo mínimo: o intervalo mínimo final e determinado entre os relatórios.
  • Intervalo máximo: o intervalo máximo final e determinado entre os relatórios.

Restrições de assinatura

  • A ação de solicitação de assinatura e a ação de resposta de assinatura são Unicast-only actions.
  • Todas as ações de dados de relatório em uma interação de assinatura precisam ter o mesmo ID de assinatura.
  • Se o assinante não receber uma ação de dados de relatório dentro do intervalo máximo negociado entre as ações, a assinatura será encerrada.
  • Como consequência da regra anterior, o editor pode encerrar uma interação de assinatura simplesmente parando de enviar ações de dados de relatório periódicas.
  • O assinante pode encerrar a interação de assinatura respondendo a uma ação de dados de relatório com um código de status INACTIVE_SUBSCRIPTION.