Ler transações

Transação de leitura

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 ler a solicitação.

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 alvo que fornece:

  • 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 pelo destino.

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

Ação de dados do relatório

Direção: alvo -> iniciador

Nesta 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 relatados.
  • 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: alvo -> iniciador ou iniciador -> alvo

Quando o iniciador recebe os dados solicitados, ele precisa gerar uma ação de resposta de status por padrão. Essa ação é enviada pelo iniciador, confirmando 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.

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

A ação de resposta de status simplesmente contém 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 ler a solicitação e a ação de informar dados são apenas Unicast. Além disso, os caminhos dessas solicitações podem não direcionar um grupo de nós.

A ação de resposta de status é exclusiva para Unicast e não pode ser gerada como uma resposta a um groupcast.

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 inscrição

Direção: iniciador -> destino

Além de uma ação de solicitação de leitura única, um iniciador também pode se inscrever em atualizações periódicas de um atributo ou evento. Assim, a mesma ação de dados do 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 uma relação entre dois nós, em que o destino gera periodicamente ações de dados de relatório para o iniciador. O iniciador é o inquilino, e o alvo é o editor.

Uma ação de pedido de inscrição contém:

  • Intervalo mínimo: 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 inscrição, o destino responde ao iniciador com uma ação de dados de relatório contendo o primeiro lote de dados informados: os dados publicados com ativação.

O iniciador então confirma a ação de dados do relatório com uma ação de resposta de status enviada para o destino. Quando o Target recebe uma Ação de resposta de status que não informa erros, ele envia uma Ação de resposta de inscrição.

O destino vai enviar a ação de dados do 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 inscrição

Direção: alvo -> iniciador

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

  • 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 inscrição

  • A ação de solicitação de assinatura e a ação de resposta de assinatura são ações somente Unicast.
  • Todas as ações de dados de relatório em uma interação de assinatura precisam ter o mesmo ID.
  • Se o assinante não receber uma ação de dados de relatório no 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 periódicas de dados de relatório.
  • 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.