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 da 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 richiesta di lettura

Direzione: iniziatore -> target

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

  • Attribute Requests (Richieste di attributi): un elenco di zero o più attributi della destinazione. Questo elenco è composto da zero o più percorsi agli attributi richiesti della destinazione.
  • Event Requests: elenco di zero o più percorsi agli eventi richiesti dalla destinazione.

Dopo aver ricevuto l'azione di richiesta di lettura, la destinazione assemblerà un'azione di dati del report con le informazioni richieste.

Azione sui dati del report

Direzione: Target -> Initiator

In questa azione, la destinazione risponde con:

  • Attribute Reports: un elenco di zero o più attributi segnalati richiesti nella richiesta di azione di lettura.
  • Report sugli eventi: un elenco di zero o più eventi segnalati.
  • Suppress Response: un flag che determina se la risposta di stato a 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 -> Initiator o Initiator -> Target

Una volta ricevuti i dati richiesti, per impostazione predefinita l'iniziatore deve generare un'azione di risposta di stato. Questa azione viene inviata dall'iniziatore, che conferma la ricezione dei dati segnalati. Se il flag Suppress Status Response è impostato, l'iniziatore non deve inviare l'azione di risposta allo stato.

Una volta inviata l'azione di risposta allo stato dall'iniziatore o ricevuta un'azione di dati del report dall'iniziatore con il flag di eliminazione della risposta attivato, la query di lettura/report è terminata.

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

Limitazioni di lettura

Le azioni Richiesta di lettura e Dati report sono solo Unicast. Inoltre, i percorsi di queste richieste potrebbero non avere come target un gruppo di nodi.

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

Transazione di abbonamento

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

Azione di richiesta di iscrizione

Direzione: iniziatore -> target

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

Un'interazione di abbonamento crea una relazione tra due nodi, in cui la destinazione genera periodicamente azioni di dati del report per l'iniziatore. L'iniziatore è l'abbonato e la destinazione è l'editore.

Un'azione di richiesta di iscrizione contiene:

  • Min Interval Floor: l'intervallo minimo tra i report.
  • Limite massimo intervallo: l'intervallo massimo tra i report.
  • Attribute Reports: un elenco di zero o più attributi segnalati richiesti nella richiesta di azione di lettura.
  • Report sugli eventi: un elenco di zero o più eventi segnalati.

Dopo la richiesta di iscrizione, la destinazione risponde all'iniziatore con un'azione Report Data contenente il primo batch di dati segnalati: i dati pubblicati preparati.

L'iniziatore riconosce quindi l'azione sui dati del report con una risposta di stato Azione inviata alla destinazione. Una volta che la destinazione riceve un'azione di risposta allo stato che segnala l'assenza di errori, invia un'azione di risposta all'iscrizione.

Successivamente, la destinazione invierà periodicamente l'azione di dati del report all'intervallo negoziato e l'iniziatore risponderà a queste azioni finché l'abbonamento non viene perso o annullato.

Azione di risposta Iscriviti

Direzione: Target -> Initiator

Questa è l'ultima azione sulla transazione di abbonamento e conclude la procedura. Comprende:

  • ID abbonamento: un numero intero che identifica l'abbonamento.
  • Intervallo minimo: l'intervallo minimo finale, determinato tra i report.
  • Intervallo massimo: l'intervallo massimo finale, determinato tra i report.

Limitazioni relative agli abbonamenti

  • Le azioni Richiesta di iscrizione e Risposta all'iscrizione sono azioni solo Unicast.
  • Tutte le azioni sui dati dei report in un'interazione con l'abbonamento devono avere lo stesso ID abbonamento.
  • Se l'abbonato non riceve un'azione sui dati del report entro l'intervallo massimo negoziato tra le azioni, l'abbonamento verrà interrotto.
  • In conseguenza della regola precedente, l'editore può terminare un'interazione di abbonamento semplicemente interrompendo l'invio di azioni periodiche sui dati dei report.
  • L'abbonato può terminare l'interazione con l'abbonamento rispondendo a un'azione di segnalazione dei dati con un codice di stato INACTIVE_SUBSCRIPTION.