Modèle de données de l'appareil

Les appareils Matter disposent d'un modèle de données (MD) 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 fonctionnellement complète. La communication réseau dans Matter commence et se termine au niveau d'un nœud.

Les nœuds sont un ensemble de points de terminaison. Chaque point de terminaison comprend un ensemble de caractéristiques. Par exemple, un point de terminaison peut être lié à une fonctionnalité d'éclairage , tandis que un autre est lié à la détection de mouvement et un autre encore aux utilitaires tels que la mise à jour 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 les suivants :

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

Clusters

Dans un point de terminaison , un nœud comporte un ou plusieurs clusters. Il s'agit d'une autre étape dans la hiérarchie des appareils, car ils regroupent des fonctionnalités spécifiques telles qu'un cluster on/off sur une prise connectée ou un cluster de contrôle de niveau sur un point de terminaison d'éclairage à intensité variable.

Un nœud peut également comporter plusieurs points de terminaison, chacun créant une instance de la même fonctionnalité. Par exemple, un luminaire peut exposer un contrôle indépendant des lumières individuelles ou une multiprise peut exposer le contrôle 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 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, des points de terminaison, des attributs et des commandes
Figure 2 : Nœuds, points de terminaison, attributs et commandes

Commandes

Outre les attributs, les clusters comportent également des commandes, qui sont des actions pouvant être effectuées. Dans le MD de Matter, elles sont l'équivalent d' un appel de procédure à distance. Les commandes sont semblables à des verbes, comme verrouiller la porte sur un cluster de verrouillage de porte. 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 sont un journal du passé et incluent un compteur à incrémentation monotone, un code temporel et une priorité. Ils permettent de capturer les transitions d'état, ainsi que la modélisation de données qui n'est pas facilement réalisable avec des attributs.

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

Le point de terminaison 0 est réservé aux clusters utilitaires. Les clusters utilitaires sont des clusters spécifiques qui incluent des fonctionnalités de service sur un point de terminaison, telles que la détection, l'adressage, les diagnostics et la mise à jour logicielle. En revanche, les clusters d'application prennent en charge les actions principales telles que l'activation/la désactivation ou la mesure de la température.

Types d'appareils

Quelles combinaisons de clusters doivent être incluses lorsqu'un fabricant d'appareils prévoit un nouvel appareil ?

La spécification Matter exige que l'appareil implémente ou étende un ou plusieurs types d'appareils. Un type d'appareil est un ensemble de clusters obligatoires et facultatifs qui définissent les attributs de premier niveau d'un appareil physique, tels que Dimmable Light (Éclairage à intensité variable), Door Lock (Verrouillage de porte) ou Video Player (Lecteur vidéo).

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

Chaque point de terminaison implémentant un type d'appareil doit implémenter les clusters obligatoires qui définissent ce type d'appareil. En plus des clusters obligatoires, le point de terminaison peut implémenter 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 un cluster client ou un cluster serveur. 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 serveur distant, ce qui permet d'effectuer les opérations suivantes :

  • Lecture et écriture dans ses attributs distants.
  • Lecture de ses événements distants.
  • Appel de ses commandes distantes.

Bien que le MD soit hiérarchique dans un nœud, la relation entre les nœuds ne l'est pas. Les nœuds de Matter n'ont pas de relations verticales contrôleur/périphérique ou leader/suiveur. Au contraire, la relation est horizontale : n'importe quel cluster peut être un serveur ou un client. Ainsi, un nœud peut être à la fois un serveur et un client en ce qui concerne différents clusters et fonctionnalités.

Par exemple, nous pouvons avoir deux lampes de table : nœud A et nœud B. Les deux nœuds implémentent un type d'appareil On/Off Light (Éclairage on/off). Ce type d'appareil inclut un cluster On/Off Server (Serveur on/off) qui contrôle leurs sorties d'éclairage physiques respectives.

Toutefois, comme les lampes de table classiques, nos appareils physiques incluent également un type d'appareil On/Off Light Switch (Interrupteur d'éclairage on/off) pour leurs interrupteurs on/off locaux. Ce type d'appareil doit implémenter un cluster On/Off Client (Client on/off) afin de pouvoir contrôler les clusters serveur.

Lampes implémentant à la fois l'interrupteur et l'allumage/l'extinction de la lumière
Figure 4 : Clusters client et serveur

Dans cet exemple, le cluster client on/off du nœud A modifie les attributs du cluster serveur on/off du nœud A et du nœud B, tandis que le cluster client du nœud B ne modifie que le cluster serveur du nœud B lui-même.

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

Cluster de descripteur

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

  • Clusters serveur.
  • Clusters client.
  • Types d'appareils.
  • Points de terminaison supplémentaires, appelés "parties".

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

Le commissionneur ou l'appareil de contrôle, tel qu'un téléphone ou un hub, peut utiliser les informations trouvées sur le cluster de descripteur pour modéliser l'appareil (lumière, interrupteur, pompe, thermostat) et les fonctionnalités spécifiques implémentées par cette instance particulière de l'appareil, en affichant l'interface utilisateur appropriée à l'utilisateur.

Clusters serveur

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

Clusters client

L'attribut ClientList répertorie les clients de 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 de ses révisions respectives. Il doit contenir au moins un type d'appareil.

Liste des parties

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 PartsList des autres points de terminaison est généralement vide. Par exemple, un capteur de température nécessite un cluster serveur de mesure de 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'un haut-parleur et de différents types d'appareils d'application de contenu, chacun sur un point de terminaison différent.


  1. La spécification Matter détermine qu'un appareil peut comporter plusieurs nœuds. Par exemple, les smartphones peuvent comporter plusieurs applications, chacune étant un nœud différent. Pour les besoins de ce guide, tous les appareils contiendront un seul nœud. La plupart des appareils physiques devraient suivre ce modèle.