Transazioni di lettura

Lettura transazione

Uno dei primi casi d'uso quando si interagisce con i Nodi in Matter è la lettura di un attributo da un altro Nodo, ad esempio un valore di temperatura di un sensore. In queste interazioni, la prima azione da eseguire è l'azione di richiesta di lettura.

Sequenza di operazioni di una transazione di lettura
Figura 1: transazione di lettura

Azione di lettura della richiesta

Direzione: Iniziatore -> Destinazione

In questa azione, l'iniziatore esegue una query su un target fornendo:

  • Richieste di attributi: un elenco di zero o più attributi del target. Questo elenco è composto da zero o più percorsi agli attributi richiesti del target.
  • Richieste di eventi: elenco di zero o più percorsi agli eventi richiesti dal target.

Dopo che l'azione di richiesta di lettura è stata ricevuta dal target, verrà assemblata un'azione Report Data con le informazioni richieste.

Azione sui dati del report

Direzione: target -> iniziatore

In questa azione, il target risponde con:

  • Report sugli attributi: un elenco di zero o più attributi registrati richiesti nella richiesta di azione di lettura.
  • Report sugli eventi: un elenco di zero o più eventi segnalati.
  • Sostituisci risposta: un flag che determina se la risposta allo stato di questa azione deve essere eliminata.
  • ID abbonamento: se questo report fa parte di una transazione di abbonamento, deve includere un numero intero utilizzato per identificare la transazione di abbonamento.

Azione di risposta allo stato

Direzione: Target -> Iniziatore o Iniziatore -> Target

Una volta che l'iniziatore riceve i dati richiesti, per impostazione predefinita deve generare un'azione di risposta di stato. Questa azione viene inviata dall'iniziatore per confermare la ricezione dei dati segnalati. Se è impostato l'indicatore Elimina risposta di stato, l'iniziatore non deve inviare l'azione di risposta di stato.

Una volta che l'azione di risposta di stato viene inviata dall'iniziatore o che l'iniziatore riceve un'azione relativa ai dati del report con l'indicatore di soppressione della risposta abilitato, la query di lettura/report è terminata.

L'azione di risposta di stato contiene semplicemente un campo status che conferma il buon esito dell'operazione o presenta un codice di errore.

Restrizioni alla lettura

L'azione Leggi richiesta e l'azione Report sui dati sono solo per Unicast. Inoltre, i percorsi di queste richieste non possono avere come target un gruppo di nodi.

L'azione di risposta allo stato è solo per Unicast e non può essere generata come risposta a un gruppo.

Transazione di abbonamento

Sequenza di operazioni di una transazione di abbonamento
Figura 2: Transazione di abbonamento

Azione richiesta di iscrizione

Direzione: Iniziatore -> Destinazione

Oltre a un'azione di richiesta di lettura singola, un iniziatore può anche iscriversi agli aggiornamenti periodici di un attributo o di un evento. Pertanto, la stessa azione di dati report può essere generata a seguito di aggiornamenti periodici dei dati che seguono una transazione di abbonamento.

Un'interazione di abbonamento crea una relazione tra due nodi, in cui il target genera periodicamente azioni relative ai dati dei report per l'iniziatore. L'iniziatore è l'abbonato e la destinazione è il publisher.

Un'azione di richiesta di iscrizione contiene:

  • Intervallo minimo: l'intervallo minimo tra i report.
  • Soffitto intervallo massimo: l'intervallo massimo tra i report.
  • Report sugli attributi: un elenco di zero o più attributi registrati richiesti nella richiesta di azione di lettura.
  • Report sugli eventi: un elenco di zero o più eventi segnalati.

Dopo la richiesta di iscrizione, il target risponde all'iniziatore con un'azione Report Data contenente il primo lotto di dati registrati: i Dati pubblicati preparati.

L'iniziatore conferma quindi l'azione relativa ai dati del report con un'azione di risposta allo stato inviata al target. Quando il target riceve un'azione di risposta di stato che non segnala errori, invia un'azione di risposta di sottoscrizione.

Successivamente, la destinazione invierà periodicamente l'azione Report Data all'intervallo concordato e l'iniziatore risponderà a queste azioni finché l'abbonamento non viene perso o annullato.

Azione di risposta all'iscrizione

Direzione: target -> iniziatore

Questa è l'ultima azione nella transazione di abbonamento e conclude il processo. Comprende:

  • ID abbonamento: un numero intero che identifica l'abbonamento.
  • Intervallo min: l'intervallo minimo definito finale tra i report.
  • Intervallo max: l'intervallo massimo definito definitivo tra i report.

Restrizioni relative all'iscrizione

  • L'azione di richiesta di iscrizione e l'azione di risposta all'iscrizione sono azioni solo per Unicast.
  • Tutte le azioni relative ai dati dei report in un'interazione con l'abbonamento devono avere lo stesso ID abbonamento.
  • Se l'Abbonato non riceve un'azione relativa ai dati dei report entro l'intervallo massimo negoziato tra le azioni, l'abbonamento verrà interrotto.
  • Come conseguenza della regola precedente, il publisher può terminare un'interazione di abbonamento semplicemente interrompendo l'invio periodico di azioni relative ai dati dei report.
  • L'Abbonato può terminare l'Interazione di abbonamento rispondendo a un'azione Report Data con un codice stato INACTIVE_SUBSCRIPTION.