Transazioni di lettura

Lettura transazione

Uno dei primi casi d'uso durante l'interazione con i Nodi in Matter è la lettura di un attributo da un altro Nodo, ad esempio il 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

Lettura azione di richiesta

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 verso gli attributi richiesti dalla destinazione.
  • Richieste di eventi: elenco di zero o più percorsi per gli eventi richiesti dal target.

Dopo aver ricevuto l'azione richiesta di lettura, il target assembla un'azione dati report con le informazioni richieste.

Segnala azione dati

Direzione: Target -> Iniziatore

In questa Azione, il target risponde con:

  • Report sugli attributi: un elenco di zero o più degli Attributi segnalati richiesti nella richiesta di azione di lettura.
  • Report sugli eventi: un elenco di zero o più eventi segnalati.
  • 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 sottoscrizione, deve includere un numero intero utilizzato per identificare la transazione dell'abbonamento.

Azione risposta 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 dello stato. Questa azione viene inviata dall'iniziatore, a conferma della ricezione dei dati segnalati. Se è impostato il flag Suppress Status Response, l'iniziatore non deve inviare l'azione di risposta di stato.

Quando l'azione di risposta dello stato viene inviata dall'iniziatore o viene ricevuta un'azione dei dati del report dall'iniziatore con il flag Elimina risposta abilitato, la query di lettura/report viene completata.

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

Limitazioni di lettura

L'azione richiesta di lettura e l'azione dati 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 in risposta a un gruppo di cast.

Transazione abbonamento

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

Azione richiesta di iscrizione

Direzione: Iniziatore -> Target

Oltre a una singola Azione di richiesta di lettura, un iniziatore può anche sottoscrivere gli aggiornamenti periodici di un Attributo o un Evento. Pertanto, la stessa azione sui dati del report può essere generata come risultato di aggiornamenti periodici dei dati che seguono una transazione di abbonamento.

Un'interazione di sottoscrizione crea una relazione tra due Nodi, in cui la destinazione genera periodicamente azioni sui dati del report per l'iniziatore. L'iniziatore è l'Sottoscrittore e il target è l'Editore.

Un'azione di richiesta di iscrizione contiene:

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

Dopo la richiesta di sottoscrizione, la destinazione risponde all'iniziatore con un'azione dati report contenente il primo batch di dati inclusi nel report: i dati pubblicati prioritari.

L'iniziatore riconosce quindi l'azione dati report con un'azione di risposta di stato inviata alla destinazione. Quando il target riceve un'azione di risposta di stato che segnala l'assenza di errori, invia un'azione di risposta di sottoscrizione.

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

Azione di risposta all'iscrizione

Direzione: Target -> Iniziatore

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

  • 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

  • L'azione di richiesta di iscrizione e l'azione di risposta all'iscrizione sono azioni solo di Unicast.
  • Tutte le azioni sui dati dei report di un'interazione sottoscrizione 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.
  • Come conseguenza della regola precedente, l'Editore può risolvere un'interazione di abbonamento semplicemente interrompendo l'invio di Azioni periodiche sui dati del report.
  • L'Abbonato può terminare l'interazione con l'abbonamento rispondendo a un'azione sui dati del report con un codice di stato INACTIVE_SUBSCRIPTION.