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: lettura della transazione

Azione richiesta di lettura

Direzione: iniziatore -> target

In questa azione l'iniziatore interroga un target che fornisce:

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

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

Segnala azione sui dati

Direzione: Destinazione -> Iniziatore

In questa azione il bersaglio risponde con:

  • Report sugli attributi: 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 (Ignora risposta): un flag che determina se la risposta dello stato a questa azione deve essere soppressa.
  • ID abbonamento: se questo report fa parte di una transazione di abbonamento, deve includere un numero intero utilizzato per identificare la transazione dell'abbonamento.

Azione di risposta dello stato

Direzione: Target -> Iniziatore o iniziatore -> Destinazione

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

Una volta che l'azione di risposta dello stato è stata inviata dall'iniziatore o dopo aver ricevuto un'azione dati report con il flag Soppress Response abilitato, la query di lettura/report viene terminata.

L'azione di risposta dello stato contiene semplicemente un campo status che confermerà l'esito dell'operazione o presenterà un codice di errore.

Limitazioni in lettura

L'azione richiesta di lettura e l'azione dati del report sono solo Unicast. Inoltre, i percorsi di queste richieste potrebbero non avere come target un gruppo di nodi.

L'azione di risposta dello stato è solo Unicast e non può essere generata come risposta a un groupcast.

Transazione di abbonamento

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

Azione richiesta di iscrizione

Direzione: iniziatore -> target

Oltre a una singola azione di richiesta di lettura, un iniziatore può anche sottoscrivere 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 con la sottoscrizione crea una relazione tra due Nodi, in cui il Target genera periodicamente Azioni sui dati del report per l'Iniziatore. L'iniziatore è il sottoscrittore e il target è il publisher.

Un'azione di richiesta di iscrizione contiene:

  • Minimo intervallo minimo: l'intervallo minimo tra i report.
  • Limite massimo intervallo: l'intervallo massimo tra i report.
  • Report sugli attributi: 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 sottoscrizione, il target risponde all'iniziatore con un'azione sui dati del report contenente il primo batch di dati segnalati: i dati pubblicati automaticamente.

L'iniziatore conferma quindi l'azione dati del report con un'azione di risposta dello stato inviata alla destinazione. Quando il bersaglio riceve un'azione di risposta allo stato che non segnala errori, invia un'azione di risposta all'abbonamento.

Successivamente, il Target invierà periodicamente l'Azione sui dati del report all'intervallo negoziato e l'Iniziatore risponderà a queste Azioni finché l'abbonamento non verrà perso o annullato.

Azione di risposta all'iscrizione

Direzione: Destinazione -> Iniziatore

Questa è l'ultima azione della transazione di abbonamento e conclude il processo. tra cui:

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

Limitazioni di abbonamento

  • L'azione di richiesta di sottoscrizione e l'azione di risposta di sottoscrizione sono azioni esclusive per Unicast.
  • Tutte le azioni sui dati del report in un'interazione con l'abbonamento devono avere lo stesso ID abbonamento.
  • Se il sottoscrittore non riceve un'azione sui dati del report entro l'intervallo massimo negoziato tra le azioni, la sottoscrizione verrà terminata.
  • Come conseguenza della regola precedente, l'Editore può interrompere un'Interazione con l'abbonamento semplicemente interrompendo l'invio di Azioni periodiche sui dati del report.
  • Il sottoscrittore può interrompere l'interazione con l'abbonamento rispondendo a un'azione dati del report con un codice di stato INACTIVE_SUBSCRIPTION.