Découvrir Matter avec un Arduino Nano Matter

5
(1)

Dans ce tutoriel, nous allons explorer le standard Matter, conçu pour améliorer l’interopérabilité et la sécurité des objets connectés (IoT) utilisés dans le domaine de la domotique. Matter simplifie la mise en service des appareils de différents fabricants, il garantit leur interopérabilité et assurent qu’ils interagissent de manière sécurisée. L’objectif de Matter est de simplifier l’expérience utilisateur et renforcer la confiance dans les écosystèmes connectés.

Nous mettrons en pratique le standard Matter dans la deuxième partie du tuto, avec la création d’un appareil Matter de type ampoule RGB connectée réalisé avec un Arduino Nano Matter. Cette ampoule RGB sera intégrée dans l’application Amazon Alexa en tant qu’appareil Matter de type éclairage à couleur contrôlée.

Les objectifs du standard Matter

Le principal objectif de Matter est de proposer un standard unifié qui garantit l’interopérabilité et la sécurité d’une vaste gamme d’objets connectés.

Le standard Matter a été développé par le consortium Connectivity Standards Alliance (CSA), et compte parmi ces supporter des géants de la technologie comme Apple, Amazon, Google ou Samsung, ainsi que des leaders dans le domaine de la domotique tels que Legrand, Schneider Electric ou Somfy.

Les objets connectés compatibles avec le standard Matter peuvent ainsi être utilisés au sein de toutes les solutions domotiques, quelles soient propriétaires (Somfy TaHoma, Apple HomeKit, Google Home, Amazon Alexa…) ou ouvertes (Home Assistant, OpenHAB…).

Les couches du standard Matter

Matter est un standard basé sur IPv6 et conçu pour fonctionner au-dessus de plusieurs technologies de réseau, comme par exemple Wi-Fi, Ethernet, ou Thread.

La couche MRP dans le standard Matter gère le routage des messages au sein du réseau maillé, assurant une communication fiable et efficace entre les appareils. Elle optimise les chemins de données pour minimiser la latence et la consommation d’énergie, tout en garantissant la robustesse du réseau face aux pannes de certains nœuds. MRP permet également l’interopérabilité entre différents types de réseaux, comme Wi-Fi et Thread, en unifiant leur gestion.

La couche BTP dans le standard Matter utilise le Bluetooth Low Energy (BLE) pour faciliter le processus de commissionnement des appareils. Elle permet la transmission sécurisée des identifiants réseau nécessaires à la connexion des nouveaux appareils au réseau Matter. BTP joue un rôle crucial dans l’initialisation et la configuration des dispositifs, assurant une intégration fluide et sécurisée sans nécessiter d’interventions complexes de l’utilisateur.

Modèle en couches du standard Matter
Source : https://developers.home.google.com/matter/primer

Le choix des couches Ethernet, Wi-Fi ou Thread dépend des besoins et des caractéristiques de l’appareil Matter.

Ethernet permet des communications stables, fiables et plus sécurisées que les connexions sans fil, car elles sont moins susceptibles d’être interceptées.

Wi-Fi est particulièrement adapté aux équipements mobiles ou qui nécessitent une grande flexibilité dans leur placement, comme les smartphone ou les caméra IP.

De part sa faible consommation d’énergie, Thread est particulièrement adapté aux appareils alimentés par batterie. De plus la topologie maillée de Thread améliore la portée et la fiabilité du réseau.

BLE n’intègre pas la couche IP et est par conséquent utilisé uniquement lors de le processus de commissionnement d’un nouvel appareil dans la structure Matter.

Le modèle de données Matter

Pour assurer une parfaite interopérabilité, Matter défini un modèle de données, qui est une modélisation hiérarchique des fonctionnalités d’un appareil.

De nombreux types d’appareils sont modélisés dans les spécifications du standard Matter, parmi lesquels nous pouvons citer par exemple :

  • Éclairages
  • Prises
  • Interrupteurs et commandes
  • Capteurs
  • Fermetures
  • Médias
  • Appareils électroménagers
  • Dispositifs énergétiques

Chaque appareil Matter est modélisé par un modèle de données spécifique, décrivant précisément ses fonctionnalités (ex. : lampe à intensité variable), ses attributs (ex. :état allumé ou éteint) et les commandes (ex.: allumer ou éteindre) qui peuvent lui être appliquées.

Dans l’exemple ci-dessous, nous voyons le modèle de donnée d’une lampe à intensité variable. Le premier endpoint correspond à la fonctionnalité de base ayant comme attributs le nom du fabricant et celui du produit. Le second endpoint correspond à la fonctionnalité liée à la lampe elle même (son état, sa luminosité, les commandes qu’elle peut recevoir…).

Exemple de modèle pour une lampe à intensité variable
Source : https://developers.home.google.com/matter/primer/device-data-model

Un appareil ne transmet pas l’intégralité de son modèle de données sur le réseau, il fournit des informations cruciales via son cluster de descripteurs, permettant aux autres dispositifs de comprendre et d’interagir avec ses fonctionnalités. Un client (une application sur un smartphone par exemple), utilise les informations trouvées dans le cluster de descripteurs pour modéliser l’appareil Matter (lumière, interrupteur, pompe, thermostat) et ses fonctionnalités, et afficher une interface utilisateur appropriée.

La sécurité dans Matter

Matter ne repose pas uniquement sur la sécurité des technologies de communication sur lesquelles il s’appuie (IPv6, Ethernet, Wi-Fi, Thread). La spécification Matter met au contraire un fort accent sur la sécurité, notamment en garantissant l’authenticité des appareils, en utilisant des protocoles cryptographiques robustes, et en assurant la confidentialité et l’intégrité des communications entre les appareils Matter.

La sécurité est intégrée dans plusieurs aspects du standard, y compris le processus de commissionnement, avec un processus rigoureux d’authentification des appareils. En effet, chaque dispositif Matter doit prouver son authenticité avant d’être intégré au réseau. Cette vérification repose sur les certificats des fabricants, et assure que seuls les appareils légitimes sont autorisés, renforçant ainsi la sécurité globale du système. Chaque appareil Matter reçoit deux certificats. Le premier, le certificat d’appareil, est programmé par le fabricant avant la livraison. Les clés réseau Wi-Fi ou Thread ne sont fournies à l’appareil qu’après vérification et authentification de ce certificat. Le second, le certificat opérationnel, est attribué par le commissaire lors de la mise en service. Ce certificat permet de prouver l’autorisation de l’appareil sur le réseau Matter et de l’identifier de manière sécurisée.

Mise en service d’un nouvel équipement Matter

L’appareil qui assure le processus de mise en service est appelé “Commissioner“. Le demandeur de mise en service est le nouvel appareil qui doit être commissionné dans le réseau Matter.

Matter supporte plusieurs méthodes de commissionnement, selon que l’appareil est déjà connecté au réseau (par exemple, via un câble Ethernet) ou qu’il nécessite des identifiants réseau pour le Wi-Fi ou Thread. Dans ce dernier cas, les identifiants des appareils Wi-Fi et Thread sont configurés via Bluetooth Low Energy (BLE) avant qu’ils puissent être connectés au réseau opérationnel.

Un QR Code est généralement fourni avec un appareil Matter, il contient plusieurs informations dont le l’identifiant du constructeur et du produit, ainsi qu’un mot de passe. Ce mot de passe est utilisé par le commissioner (un smartphone en général) qui va établir la connexion BLE avec l’appareil Matter et réaliser son commissionnement dans le réseau Matter.

Exemple de QR code fourni avec un appareil Matter et qui est utilisé pour son commissionnement sur le réseau Matter

Le commissionnement peut également être effectué avec un code d’appairage manuel à 11 chiffres fourni par l’appareil Matter. Il doit être saisi dans l’application, et suit ensuite le même processus que pour le commissionnement par QR Code.

Réalisation d’un appareil Matter avec un Arduino Nano Matter

Comme je l’ai indiqué plus haut, nous allons réaliser un appareil Matter de type ampoule RGB connectée avec un Arduino Nano Matter. Cette ampoule RGB sera intégrée dans l’application Amazon Alexa en tant qu’appareil Matter de type éclairage à couleur contrôlée. L’enceinte connectée Amazon Echo sera utilisée comme contrôleur Matter et communiquera avec l’Arduino avec le protocole radio Thread.

Le croquis pour l’Arduino Nano Matter

Il faut commencer par installer le gestionnaire de carte Silicon Labs pour l’Arduino Nano Matter et ouvrir l’exemple fourni nano_matter_lightbulb_color.

Une fois que cet exemple est téléversé sur l’Arduino Nano Matter, le code d’appairage manuel et un lien pour visualiser le QR Code de commissionnement est affiché dans le moniteur série.

Exemple d’appareil Matter de type ampoule couleur fourni par Silicon Labs pour l’Arduino Nano Matter
QR Code de commissionnement généré par le site à partir

Veuillez noter qu’un appareil Matter supplémentaire de type Hub est ajouté en plus de l’ampoule. Cette étape est nécessaire au bon fonctionnement sur l’écosystème Amazon. Cet appareil peut être ignoré une fois l’intégration terminée.

Après quelques minutes votre Arduino Nano Matter est ajouté à la liste des appareils que vous pouvez contrôler depuis Alexa. Avec l’exemple nano_matter_lightbulb_color vous pouvez allumer ou éteindre la LED RGB, et choisir sa couleur ainsi que sa luminosité.

Note : la documentation mentionne que “l’exemple matter_lightbulb est le seul profil officiellement certifié Matter pour l’Arduino Nano Matter. Par conséquent, lors de l’exécution de l’un des autres exemples de profils disponibles, il est attendu d’obtenir un message “Appareil non certifié” dans les différentes applications compatibles Matter.” Pourtant même avec l’exemple matter_lightbulb Alexa indique que l’appareil n’est pas certifié Matter. Cela ne vous empêche pas de tester ces différents profils dans un cadre didactique.

Je vous recommande de lire la documentation de l’Arduino Nano Matter pour aller plus loin 🙂

J’espère que ce tuto vous aura intéressé. N’hésitez pas à donner votre avis en cliquant sur les étoiles ci-dessous. Je ne suis pas rémunéré au nombre d’étoiles mais c’est important pour moi afin de voir que mon travail est utile aux autres.

Votre avis compte !

Note moyenne : 5 / 5. Nombre de votes : 1

Pas encore de vote pour ce tutoriel