Modèle de données de l'appareil

Les appareils de Matter disposent d'un modèle de données (DM) bien défini, qui est une modélisation hiérarchique des fonctionnalités d'un appareil. Au premier niveau 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 constituent un ensemble de points de terminaison. Chaque point de terminaison contient un ensemble de fonctionnalités. Par exemple, un point de terminaison peut être lié à une fonctionnalité d'éclairage, tandis qu'un autre concerne la détection des mouvements, et un autre gère les utilitaires comme 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 des nœuds

Un rôle 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:

  • Commissaire: nœud qui effectue la mise en service.
  • Contrôleur: nœud pouvant contrôler un ou plusieurs nœuds. Exemples : Google Home app (GHA), Google Assistant et Google Nest Hub (2nd gen). Certains types d'appareils, tels que l'interrupteur 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 qui ont le rôle Contrôleur, tels que l'interrupteur Marche/Arrêt. L'interrupteur Marche/Arrêt peut uniquement être un contrôleur. Il ne peut pas s'agir d'un élément de contrôle.
  • Fournisseur OTA: nœud pouvant fournir des mises à jour logicielles OTA.
  • Demandeur OTA: nœud pouvant demander les mises à jour logicielles OTA.

Clusters

Dans un point de terminaison, un nœud possède un ou plusieurs clusters. Il s'agit d'une autre étape de la hiérarchie des appareils, car elles regroupent des fonctionnalités spécifiques, telles qu'un cluster activé/désactivé sur une prise connectée ou un cluster de contrôle de niveau sur un point de terminaison avec une luminosité réduite.

Un nœud peut également avoir plusieurs points de terminaison, chacun créant une instance ayant la même fonctionnalité. Par exemple, un luminaire peut permettre un contrôle indépendant de l'éclairage individuel, ou une multiprise peut exposer le contrôle de prises individuelles.

Attributs

Le dernier niveau comporte les attributs. Il s'agit des états détenus par le nœud, comme l'attribut niveau actuel d'un cluster de type niveau de contrôle. 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 disposent également de commandes, qui sont des actions pouvant être effectuées. Ils sont équivalents dans le DM d'un appel de procédure à distance de Matter. Les commandes ressemblent à des verbes, comme verrouiller la porte sur un cluster 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, 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 à augmentation monotone, un horodatage et une priorité. Ils permettent de capturer les transitions d'état et la modélisation des données qui n'est pas facilement réalisée avec des attributs.

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

Le point de terminaison 0 est réservé aux clusters d'utilitaires. Les clusters d'utilitaires sont des clusters spécifiques qui incluent des fonctionnalités de maintenance sur un point de terminaison, telles que la découverte, l'adressage, les diagnostics et la mise à jour logicielle. En revanche, les clusters d'application acceptent des 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 lorsque le fabricant d'un appareil planifie un nouvel appareil ?

La spécification Matter nécessite 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 niveau supérieur d'un appareil physique, tels que Dimmable Light (Lumière à intensité réduite), Porte serrure ou Video Player.

Les types d'appareils ne sont pas spécifiés dans le document principal de la spécification Matter, 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'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. En plus des 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 doit lancer des interactions avec un cluster de serveurs distant, ce qui implique les opérations suivantes:

  • lit depuis et écrit vers ses attributs distants.
  • lectures de ses événements distants.
  • appel de ses commandes distantes.

Bien que le DM soit hiérarchique au sein d'un nœud, ce n'est pas le cas de la relation entre les nœuds. Les nœuds dans Matter n'ont pas de relation de contrôleur vertical/périphérique ou de responsable/suiveur. Au contraire, la relation est horizontale: tous les clusters peuvent être de type Serveur ou Client. Ainsi, un nœud peut être à la fois serveur et client en ce qui concerne les différents clusters et fonctionnalités.

Prenons l'exemple de deux lampes de chevet: Nœud A et Nœud B. Les deux nœuds implémentent un type d'appareil On/Off Light. Ce type d'appareil inclut un cluster Serveur d'activation/de désactivation qui contrôle leurs sorties d'éclairage physiques respectives.

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

Lampes utilisant à la fois un interrupteur Marche/Arrêt et un interrupteur
Figure 4: Clusters client et serveur

Dans cet exemple, le cluster client activé/désactivé sur le nœud A modifie les attributs du cluster de serveurs On/Off sur les nœuds A et B, tandis que le cluster client du nœud B ne modifie que le cluster de serveurs du nœud B.

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

Cluster de descripteurs

Comme son nom l'indique, le serveur du cluster de descripteurs 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.
  • Points de terminaison supplémentaires, appelés "parties".

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 permet au client de parcourir toute l'arborescence des points de terminaison disponibles et d'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 trouvées sur le cluster de descripteurs pour modéliser l'appareil (éclairage, interrupteur, pompe, thermostat) et les fonctionnalités spécifiques implémentées par cette instance particulière de l'appareil, montrant l'interface utilisateur appropriée à l'utilisateur.

Clusters de serveurs

L'attribut ServerList indique les serveurs de cluster dans le point de terminaison.

Clusters clients

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 de 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, en dehors 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 exige un cluster de serveur de mesure de la température, et rien d'autre.

D'autres types d'appareils peuvent être composés dans une arborescence de plusieurs instances de types d'appareils. 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 Content App, chacun sur 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 représentant un nœud différent. Dans ce guide, tous les appareils contiennent un seul nœud. Il est prévu que la plupart des appareils physiques suivent ce schéma.