Lire les transactions

Transaction de lecture

L'un des premiers cas d'utilisation lors de l'interaction avec des nœuds dans Matter est la lecture d'un attribut à partir d'un autre nœud, comme une valeur de température 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 :

  • 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 que la cible a reçu l'action de requête de lecture, elle assemble une action de données de rapport avec les informations demandées.

Action sur les données de rapport

Direction : Cible -> Initiateur

Dans cette action, la cible répond par :

  • 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, un 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 par défaut générer une action de réponse d'état. Cette action est envoyée par l'initiateur, qui accuse réception des données signalées. Si l'indicateur "Suppress Status Response" (Supprimer la réponse d'état) est défini, l'initiateur ne doit pas envoyer l'action "Status Response" (Réponse d'état).

Une fois que l'initiateur a envoyé l'action de réponse d'état ou qu'il a reçu une action de données de rapport 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 status qui confirme la réussite de l'opération ou présente un code d'échec.

Restrictions de lecture

Les actions "Read Request" (Demande de lecture) et "Report Data" (Données de rapport) sont réservées à Unicast. 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 réservée à Unicast et ne peut pas être générée en réponse à un groupcast.

Transaction d'abonnement

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

Action de demande d'abonnement

Direction : Initiateur -> Cible

En plus d'une action de requête de lecture unique, un initiateur peut également s'abonner aux 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 régulièrement des actions de données de rapport pour l'initiateur. L'initiateur est l'abonné et la cible est l'éditeur.

Une action de demande d'abonnement contient les éléments suivants :

  • Min Interval Floor (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 par une action de rapport de données contenant le premier lot de données rapportées : les données publiées amorcées.

L'initiateur accuse ensuite réception de l'action « Données de rapport » en envoyant une action « Réponse d'état » à 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 enverra ensuite périodiquement l'action "Report Data" à l'intervalle négocié, et l'initiateur répondra à ces actions jusqu'à ce que l'abonnement soit perdu ou annulé.

Action de réponse à l'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

  • Les actions Subscribe Request et Subscribe Response sont des actions réservées à Unicast.
  • Toutes les actions de données de rapport d'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 sera résilié.
  • En conséquence de la règle précédente, l'Éditeur peut mettre fin à une Interaction d'abonnement en cessant simplement d'envoyer des Actions de données de rapport périodiques.
  • L'Abonné peut mettre fin à l'Interaction d'abonnement en répondant à une Action de données de rapport avec un code d'état INACTIVE_SUBSCRIPTION.