Lire les transactions

Transaction de lecture

L'un des premiers cas d'utilisation lors de l'interaction avec des nœuds dans Matter consiste à lire un attribut à partir d'un autre nœud, tel qu'une valeur de température provenant d'un capteur. Dans de telles interactions, la première action à effectuer est l'action de requête de lecture.

Séquence d'opérations d'une transaction de lecture
Figure 1 : Transaction de lecture

Action de requête de lecture

Direction : Initiateur -> Cible

Dans cette action, l'initiateur interroge une cible en fournissant les éléments suivants :

  • Requêtes d'attributs : liste de zéro ou plusieurs attributs de la cible. Cette liste est composée de zéro ou plusieurs chemins d'accès aux attributs demandés de la cible.
  • Requêtes d'événements : liste de zéro ou plusieurs chemins d'accès aux événements demandés de la cible.

Une fois l'action de requête de lecture reçue par la cible, elle assemble une action de données de rapport avec les informations demandées.

Action de données de rapport

Direction : Cible -> Initiateur

Dans cette action, la cible répond avec les éléments suivants :

  • Rapports d'attributs : liste de zéro ou plusieurs attributs signalés demandés dans la requête d'action de lecture.
  • Rapports d'événements : liste de zéro ou plusieurs événements signalés.
  • Supprimer la réponse : indicateur qui détermine si la réponse d'état à cette action doit être supprimée.
  • ID d'abonnement : si ce rapport fait partie d'une transaction d'abonnement, il doit inclure un entier permettant d'identifier la transaction d'abonnement.

Action de réponse d'état

Direction : Cible -> Initiateur ou Initiateur -> Cible

Une fois que l'initiateur reçoit les données demandées, il doit générer une action de réponse d'état par défaut. Cette action est envoyée par l'initiateur, accusant réception des données signalées. Si l'indicateur "Supprimer la réponse d'état" est défini, l'initiateur ne doit pas envoyer l'action de réponse d'état.

Une fois l'action de réponse d'état envoyée par l'initiateur ou une action de données de rapport reçue par l'initiateur avec l'indicateur "Supprimer la réponse" activé, la requête de lecture/rapport est terminée.

L'action de réponse d'état contient simplement un champ état qui accuse réception de la réussite de l'opération ou présente un code d'échec.

Restrictions de lecture

L'action de requête de lecture et l'action de données de rapport sont Unicast-only. De plus, les chemins d'accès de ces requêtes ne peuvent pas cibler un groupe de nœuds.

L'action de réponse d'état est Unicast-only et ne peut pas être générée en réponse à une multidiffusion.

Transaction d'abonnement

Séquence d'opérations d'une transaction d'abonnement
Figure 2 : Transaction d'abonnement

Action de requête d'abonnement

Direction : Initiateur -> Cible

En plus d'une action de requête de lecture unique, un initiateur peut également s'abonner à des mises à jour périodiques d'un attribut ou d'un événement. Ainsi, la même action de données de rapport peut être générée à la suite de mises à jour périodiques des données qui suivent une transaction d'abonnement.

Une interaction d'abonnement crée une relation entre deux nœuds, dans laquelle la cible génère périodiquement des actions de données de rapport pour l'initiateur. L'initiateur est l'abonné et la cible est l'éditeur.

Une action de requête d'abonnement contient les éléments suivants :

  • Plancher d'intervalle minimal : intervalle minimal entre les rapports.
  • Plafond d'intervalle maximal : intervalle maximal entre les rapports.
  • Rapports d'attributs : liste de zéro ou plusieurs attributs signalés demandés dans la requête d'action de lecture.
  • Rapports d'événements : liste de zéro ou plusieurs événements signalés.

Après la requête d'abonnement, la cible répond à l'initiateur avec une action de données de rapport contenant le premier lot de données signalées : les données publiées initiales.

L'initiateur accuse ensuite réception de l'action de données de rapport avec une action de réponse d'état envoyée à la cible. Une fois que la cible reçoit une action de réponse d'état ne signalant aucune erreur, elle envoie une action de réponse d'abonnement.

La cible envoie ensuite périodiquement une action de données de rapport à l'intervalle négocié, et l'initiateur répond à ces actions jusqu'à ce que l'abonnement soit perdu ou annulé.

Action de réponse d'abonnement

Direction : Cible -> Initiateur

Il s'agit de la dernière action de la transaction d'abonnement, qui conclut le processus. Il inclut les éléments suivants :

  • ID d'abonnement : entier qui identifie l'abonnement.
  • Intervalle minimal : intervalle minimal final et déterminé entre les rapports.
  • Intervalle maximal : intervalle maximal final et déterminé entre les rapports.

Restrictions d'abonnement

  • L'action de requête d'abonnement et l'action de réponse d'abonnement sont des actions Unicast-only.
  • Toutes les actions de données de rapport dans une interaction d'abonnement doivent avoir le même ID d'abonnement.
  • Si l'abonné ne reçoit pas d'action de données de rapport dans l'intervalle maximal négocié entre les actions, l'abonnement est résilié.
  • Par conséquent, l'éditeur peut résilier une interaction d'abonnement en arrêtant simplement d'envoyer des actions de données de rapport périodiques.
  • L'abonné peut résilier l'interaction d'abonnement en répondant à une action de données de rapport avec un code d'état INACTIVE_SUBSCRIPTION.