Lettura della 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 Richiesta di lettura.
Azione Richiesta di lettura
Direzione: iniziatore -> target
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 del target.
Dopo che il target ha ricevuto l'azione Richiesta di lettura, assembla un'azione Dati del report con le informazioni richieste.
Azione Dati del report
Direzione: target -> iniziatore
In questa azione, il target 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: un flag che determina se la risposta di 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 di abbonamento.
Azione Risposta di stato
Direzione: target -> iniziatore o iniziatore -> target
Una volta che l'iniziatore riceve i dati richiesti, per impostazione predefinita deve generare un'azione 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 Risposta di stato.
Una volta che l'iniziatore invia l'azione Risposta di stato o che l'iniziatore riceve un'azione Dati del report con il flag Suppress Response attivato, la query di lettura/report è terminata.
L'azione Risposta di stato contiene semplicemente un campo 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 del report sono Unicast-only. Inoltre, i percorsi di queste richieste non possono avere come target un gruppo di nodi.
L'azione Risposta di stato è Unicast-only e non può essere generata come risposta a un groupcast.
Transazione di abbonamento
Azione Richiesta di abbonamento
Direzione: iniziatore -> target
Oltre a una singola azione Richiesta di lettura, un iniziatore può anche abbonarsi agli aggiornamenti periodici di un attributo o di un evento. Pertanto, la stessa azione 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 il target genera periodicamente azioni Dati del report per l'iniziatore. L'iniziatore è l'abbonato e il target è il publisher.
Un'azione Richiesta di abbonamento contiene:
- Min Interval Floor: l'intervallo minimo tra i report.
- Max Interval Ceiling: 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 abbonamento, il target risponde all'iniziatore con un'azione Dati del report contenente il primo batch di dati segnalati: i dati pubblicati con priming.
L'iniziatore riconosce quindi l'azione Dati del report con un'azione Risposta di stato inviata al target. Una volta che il target riceve un'azione Risposta di stato che non segnala errori, invia un'azione Risposta di abbonamento.
Successivamente, il target invierà periodicamente l'azione Dati del report all'intervallo negoziato e l'iniziatore risponderà a queste azioni finché l'abbonamento non viene perso o annullato.
Azione Risposta di abbonamento
Direzione: target -> iniziatore
Questa è l'ultima azione della transazione di abbonamento e conclude la procedura. Comprende:
- ID abbonamento: 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 Richiesta di abbonamento e l'azione Risposta di abbonamento sono Unicast-only actions.
- Tutte le azioni Dati del report in un'interazione di abbonamento devono avere lo stesso ID abbonamento.
- Se l'abbonato non riceve un'azione Dati del report entro l'intervallo massimo negoziato tra le azioni, l'abbonamento verrà terminato.
- Di conseguenza alla regola precedente, il publisher può terminare un'interazione di abbonamento semplicemente interrompendo l'invio periodico di azioni Dati del report.
- L'abbonato può terminare l'interazione di abbonamento rispondendo a un'azione Dati del report con un codice di stato
INACTIVE_SUBSCRIPTION.