Modèle de données de l'appareil

Les appareils de Matter ont un modèle de données (DM) bien défini, qui est une modélisation hiérarchique des fonctionnalités d'un appareil. Au niveau supérieur de cette hiérarchie se trouve un appareil.

Appareils et points de terminaison

Tous les appareils, y compris les smartphones et les assistants à domicile, sont composés de nœuds1. Un nœud est une ressource unique, identifiable et adressable dans un réseau, qu'un utilisateur peut percevoir comme un tout fonctionnel. La communication réseau dans Matter commence et s'arrête au niveau d'un nœud.

Les nœuds sont un ensemble de points de terminaison. Chaque point de terminaison contient un ensemble de caractéristiques. Par exemple, un point de terminaison peut être lié à une fonctionnalité d'éclairage, un autre à la détection de mouvement et un autre concerne les utilitaires tels que l'OTA de l'appareil.

Hiérarchie des appareils, des nœuds et des points de terminaison
Figure 1: Appareils, nœuds et points de terminaison

Rôles de nœud

Un rôle de nœud est un ensemble de comportements associés. Chaque nœud peut avoir un ou plusieurs rôles. Les rôles de nœud incluent:

  • Commissioner: nœud qui effectue la mise en service.
  • Contrôleur: un nœud qui peut contrôler un ou plusieurs nœuds. Par exemple, Google Home app (GHA), Google Assistant et Google Nest Hub (2nd gen). Certains types d'appareils, tels que l'interrupteur d'éclairage Marche/Arrêt, disposent du rôle Contrôleur.
  • Contrôleur: Nœud pouvant être contrôlé par un ou plusieurs nœuds. La plupart des types d'appareils peuvent être des contrôleurs, à l'exception de certains types d'appareils ayant le rôle "Contrôleur", tels que l'interrupteur d'éclairage Marche/Arrêt. L'interrupteur d'éclairage Marche/Arrêt peut uniquement servir de contrôleur. Il ne peut pas s'agir d'un Contrôleur.
  • Fournisseur OTA: un nœud pouvant fournir des mises à jour logicielles OTA.
  • Demandeur OTA: un nœud pouvant demander des mises à jour logicielles OTA.

Clusters

Dans un point de terminaison, un nœud comporte un ou plusieurs clusters. Ces étapes constituent une autre étape de la hiérarchie des appareils, car elles regroupent des fonctionnalités spécifiques telles qu'un cluster Marche/Arrêt sur une prise connectée, ou un cluster de contrôle de niveau sur un point de terminaison à luminosité faible.

Un nœud peut également avoir plusieurs points de terminaison, chacun créant une instance de la même fonctionnalité. Par exemple, un luminaire peut permettre un contrôle indépendant de certaines ampoules, ou une multiprise peut permettre de contrôler des prises individuelles.

Attributs

Au dernier niveau, nous trouvons les attributs, qui sont des états détenus par le nœud, tels que l'attribut de niveau actuel d'un cluster de contrôle de niveau. Les attributs peuvent être définis comme différents types de données, tels que uint8, des chaînes ou des tableaux.

Hiérarchie des nœuds, points de terminaison, attributs et commandes
Figure 2: Nœuds, points de terminaison, attributs et commandes

Commandes

Outre les attributs, les clusters disposent également de commandes, qui sont des actions pouvant être effectuées. Ils correspondent à un appel de procédure à distance dans la MP de Matter. Les commandes sont de type verbe, comme verrouiller la porte sur un cluster Serrure. Les commandes peuvent générer des réponses et des résultats. Dans Matter, ces réponses sont également définies comme des commandes, allant dans le sens inverse.

Événements

Enfin, les clusters peuvent également comporter des événements, qui peuvent être considérés comme un enregistrement des transitions d'état passées. Alors que les attributs représentent les états actuels, les événements constituent un journal des passages et incluent un compteur augmentant de manière monotone, un horodatage et une priorité. Ils permettent de capturer des transitions d'état, ainsi qu'une modélisation des données qui n'est pas facilement réalisable avec des attributs.

Exemple d'appareil complet
Figure 3: Exemple de la hiérarchie du modèle d'interaction des appareils Matter

Le point de terminaison 0 est réservé aux clusters d'utilitaires. Les clusters d'utilitaires sont des clusters spécifiques qui intègrent des fonctionnalités de maintenance sur un point de terminaison, telles que la découverte, l'adressage, les diagnostics et la mise à jour logicielle. D'autre part, les clusters d'application sont compatibles avec les actions principales, telles que l'activation/la désactivation ou la mesure de la température.

Types d'appareils

Au total, quelles combinaisons de clusters doivent être incluses lorsque le fabricant de l'appareil planifie un nouvel appareil ?

La spécification Matter nécessite que l'appareil implémente ou étend un ou plusieurs types d'appareils. Un type d'appareil est un ensemble de clusters obligatoires et facultatifs qui définissent les attributs de niveau supérieur d'un appareil physique, tels que Lumière à intensité variable, Verrouillage de porte ou Lecteur vidéo.

Les types d'appareils ne sont pas spécifiés dans le document principal de la spécification Matter, mais par un document associé: la bibliothèque d'appareils. De même, tous les clusters d'application sont définis dans la bibliothèque de clusters d'applications. Ces trois documents sont disponibles sur le site Web des membres Connectivity Standards Alliance (Alliance).

Chaque point de terminaison mettant en œuvre un type d'appareil doit mettre en œuvre les clusters obligatoires qui définissent ce type d'appareil. Outre les clusters obligatoires, le point de terminaison peut mettre en œuvre des clusters supplémentaires, y compris un ou plusieurs clusters facultatifs du type d'appareil, ou même des clusters qui ne font pas partie du type d'appareil.

Clients et serveurs

Les clusters peuvent être des clusters client ou des clusters de serveurs. Alors qu'un serveur est avec état et contient des attributs, des événements et des commandes, un client est sans état et sa responsabilité consiste à lancer des interactions avec un cluster de serveurs distant, ce qui permet d'effectuer les opérations suivantes:

  • reads et writes sur ses attributs distants
  • reads de ses événements distants.
  • appel de ses commandes distantes.

Bien que la DM soit hiérarchique au sein d'un nœud, la relation entre les nœuds ne l'est pas. Les nœuds dans Matter n'ont pas de relations contrôleur/périphérique verticales ou leader/follower. Au contraire, la relation est horizontale: chaque cluster peut être de type Server (Serveur) ou Client (Client). Ainsi, un nœud peut être à la fois un serveur et un client selon les clusters et les fonctionnalités.

Prenons l'exemple de deux lampes de table: Node A et Node B. Les deux nœuds implémentent un type d'appareil Lumière Marche/Arrêt. Ce type d'appareil inclut un cluster Serveur Activé/Désactivé qui contrôle leurs sorties de lumière physiques respectives.

Mais, comme le font les lampes de chevet classiques, nos appareils physiques incluront également un type d'interrupteur Marche/Arrêt pour leurs interrupteurs locaux. Ce type d'appareil doit mettre en œuvre un cluster de client activé/désactivé afin de pouvoir contrôler les clusters de serveurs.

Lampes dotées à la fois d'un système d'éclairage Marche/Arrêt et d'un interrupteur
Figure 4: Clusters client et serveur

Dans cet exemple, le cluster client On/Off du nœud A modifie les attributs du cluster de serveurs On/Off sur le nœud A et le nœud B, tandis que le cluster client du nœud B ne modifie que le cluster de serveurs du nœud B lui-même.

Dans la section suivante, nous détaillerons comment les clusters client et serveur interagissent: le modèle d'interaction.

Cluster "Descriptor"

Comme son nom l'indique, le serveur de cluster Descriptor fournit des informations d'introspection. Il décrit le point de terminaison en énumérant les éléments suivants:

  • Clusters de serveurs.
  • Clusters clients.
  • Types d'appareils.
  • des points de terminaison supplémentaires, appelés pièces.

Chaque type d'appareil nécessite l'implémentation de clusters de descripteurs. Le type d'appareil racine est défini sur le point de terminaison 0. La lecture de son cluster de descripteurs offre au client la visibilité nécessaire pour parcourir l'arborescence complète des points de terminaison disponibles et effectuer les opérations applicables.

Le commissaire ou l'appareil de contrôle, tel qu'un téléphone ou un hub, peut utiliser les informations du cluster de descripteurs pour modéliser l'appareil (éclairage, interrupteur, pompe, thermostat) et des fonctionnalités spécifiques implémentées par cette instance particulière de l'appareil, afin de présenter l'UI appropriée à l'utilisateur.

Clusters de serveurs

L'attribut ServerList répertorie les serveurs de cluster du point de terminaison.

Clusters clients

L'attribut ClientList liste les clients du cluster dans le point de terminaison.

Liste des types d'appareils

L'attribut DeviceTypeList est une liste des types d'appareils compatibles avec le point de terminaison, ainsi que leurs révisions respectives. Il doit contenir au moins un type d'appareil.

Liste des pièces

PartsList contient la liste des points de terminaison utilisés pour implémenter ce type d'appareil.

Le PartsList du point de terminaison 0 (nœud racine) contient tous les points de terminaison de l'appareil, à l'exception de lui-même (point de terminaison 0).

Le champ PartsList des autres points de terminaison est généralement vide. Par exemple, un capteur de température n'impose qu'un cluster de serveurs de mesure de la température, et rien d'autre.

D'autres types d'appareils peuvent être composés dans une structure arborescente de plusieurs instances de type d'appareil. Par exemple, un type d'appareil de lecteur vidéo peut être composé d'un téléviseur, d'un lecteur vidéo, d'une enceinte et de différents types d'appareils pour l'application de contenu, chacun étant associé à un point de terminaison différent.


  1. La spécification Matter détermine qu'un appareil peut avoir plusieurs nœuds. Par exemple, les smartphones peuvent avoir plusieurs applications, chaque application correspondant à un nœud différent. Pour les besoins de ce guide, tous les appareils ne contiendront qu'un seul nœud. La plupart des appareils physiques suivent ce schéma.