1. Introduction
Matter est un protocole de connectivité qui offre des opportunités intéressantes pour le développement d'appareils connectés. Dans cet atelier de programmation, vous allez créer votre premier appareil Matter. Pour en savoir plus sur Matter, consultez Google Home Developer Center : Matter ou le site Web de la Connectivity Standards Alliance.
Points abordés
- Intégrer un appareil physique à Matter
- Mettre en service et contrôler votre appareil Matter avec Google Home
Ce dont vous avez besoin
- Un hub, qui est un appareil Google Nest compatible avec Matter, comme le Nest Hub (2e génération)
- Une carte d'évaluation Matter Espressif Systems ESP32-DevkitC ou ESP32 M5STACK
- Un PC exécutant Linux
- Connaissances de base de Linux
2. Configurer votre environnement
Identifier l'appareil série
La première étape de la configuration de votre environnement de développement consiste à déterminer le port série auquel votre appareil est connecté. Ces informations vous permettront de programmer et d'interagir avec votre carte de développement.
- Connectez la carte de développement à votre ordinateur à l'aide d'un câble USB.
- Recherchez l'appareil de la carte de développement dans le système de fichiers
/dev. Vous pouvez affiner votre recherche en spécifiant le préfixe de l'appareil de votre carte de développement. L'ESP32 d'Espressif utilise/dev/ttyUSBx:user@host $ ls /dev/ttyUSB* /dev/ttyUSB0
Configurer votre hub
Configurez votre hub avec le même compte Google que celui que vous comptez utiliser pour cet atelier de programmation.
Configurer l'environnement de développement
Prérequis
Ces instructions ont été testées sur Debian Linux et devraient fonctionner sur la plupart des distributions Linux basées sur Debian, y compris Ubuntu. Si vous utilisez une autre distribution Linux, la procédure de configuration des dépendances peut différer de celle décrite ci-dessous.
Installer des dépendances
Exécutez la commande suivante pour installer les binaires de package Linux requis qui ne sont peut-être pas encore installés :
$ sudo apt-get install git gcc g++ pkg-config libssl-dev libdbus-1-dev \ libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev \ python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-dev screen
Configurer le SDK
Pour poursuivre cet atelier de programmation, vous aurez besoin du SDK Espressif (Espressif IoT Development Framework ou "ESP-IDF").
- Créez un répertoire pour contenir l'ESP-IDF :
$ mkdir ~/esp-idf_tools
- Clonez l'ESP-IDF depuis GitHub dans ce répertoire :
$ cd ~/esp-idf_tools $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
- Terminez l'installation de la chaîne d'outils :
$ cd ./esp-idf $ ./install.sh $ cd ~/
Configurer le SDK Matter
- Clonez le dépôt Matter Open Source :
$ git clone https://github.com/project-chip/connectedhomeip.git $ cd ./connectedhomeip $ git fetch origin v1.0-branch $ git checkout FETCH_HEAD
- Récupérez les sous-modules du dépôt :
$ ./scripts/checkout_submodules.py --shallow --platform esp32
- Amorcez l'environnement de développement Matter :
$ source ./scripts/bootstrap.sh
3. Google Home Developer Console
La Google Home Developer Console est l'application Web dans laquelle vous gérez vos intégrations Matter avec Google Home.
Tout appareil Matter ayant obtenu la certification Matter de la Connectivity Standards Alliance (Alliance) fonctionne dans l'écosystème Google Home. Les appareils en cours de développement qui n'ont pas été certifiés peuvent être mis en service dans l'écosystème Google Home sous certaines conditions. Pour en savoir plus, consultez Restrictions concernant l'association.
Créer un projet de développeur
Commencez par accéder à la Google Home Developer Console :
- Cliquez sur Create Project (Créer un projet).
- Saisissez un nom de projet unique, puis cliquez sur Create Project (Créer un projet).

- Cliquez sur + Add integration (+ Ajouter une intégration), ce qui vous redirige vers l'écran Matter resources (Ressources Matter), où vous pouvez consulter la documentation de développement Matter et en savoir plus sur certains outils.
- Lorsque vous êtes prêt à continuer, cliquez sur Next: Develop (Suivant : Développer), ce qui affiche la page Matter checklist (Liste de contrôle Matter).
- Cliquez sur Next: Setup (Suivant : Configuration).
- Sur la page Setup (Configuration), saisissez le Product name (Nom du produit).
- Cliquez sur Select device type (Sélectionner le type d'appareil), puis sélectionnez le type d'appareil dans le menu déroulant (dans ce cas,
Light). - Dans Vendor ID (VID) (ID du fournisseur), sélectionnez Test VID (ID de test), puis sélectionnez 0xFFF1 dans le menu déroulant Test VID. Dans Product ID (PID) (ID du produit), saisissez 0x8000, puis cliquez sur Save &continue (Enregistrer et continuer), puis sur Save (Enregistrer) sur la page suivante. Utilisez ces valeurs VID/PID exactes, car les étapes ultérieures de l'atelier de programmation en dépendent.

- Votre intégration s'affiche désormais sous Matter integrations (Intégrations Matter).
- Redémarrez votre hub pour vous assurer qu'il reçoit la configuration la plus récente du projet d'intégration Matter. Si vous devez modifier le VID ou le PID ultérieurement, vous devrez également redémarrer après avoir enregistré le projet pour que la modification prenne effet. Pour obtenir des instructions de redémarrage détaillées, consultez Redémarrer des appareils Google Nest ou Google Wifi.
4. Créer l'appareil
Tous les exemples de Matter sont placés dans le dossier examples du dépôt GitHub. Plusieurs exemples sont disponibles, mais cet atelier de programmation se concentre sur l'application d'éclairage lighting-app.
Cet exemple est un appareil simple qui apparaît dans Google Home comme une lumière marche/arrêt, répondant aux commandes "On" (Allumer) et "Off" (Éteindre). Le faire contrôler une lumière électrique réelle dépasse le cadre de cet atelier de programmation.
Configurer la compilation
- Configurez le SDK Matter et activez l'environnement de compilation Matter :
$ cd ~/esp-idf_tools/esp-idf $ source export.sh $ cd ~/connectedhomeip $ source ./scripts/activate.sh
- Activez Ccache, qui accélère le processus de compilation :
$ export IDF_CCACHE_ENABLE=1
- Accédez au répertoire de compilation ESP32
lighting-appet définissez l'architecture cible :$ cd ./examples/lighting-app/esp32 $ idf.py set-target esp32
- Exécutez l'utilitaire de configuration :
$ idf.py menuconfig
- Sélectionnez
Demo -> Device Typeet définissezDevice TypesurESP32-DevKitC. - Appuyez sur la flèche vers la gauche pour revenir au menu de premier niveau.
- Sélectionnez
Component config --->(Configuration des composants --->). - Sélectionnez
CHIP Device Layer --->(Couche d'appareil CHIP --->). - Sélectionnez
Device Identification Options --->(Options d'identification de l'appareil --->). - Définissez
Vendor ID(ID du fournisseur) sur le VID attribué par l'Alliance ou sur un VID de test. - Définissez
Product ID(ID du produit) sur le PID que vous avez défini sur l'intégration Matter dans la Google Home Developer Console. - Appuyez sur S pour enregistrer.
- Appuyez sur Return (Retour) pour accepter le chemin par défaut où la configuration sera enregistrée.
- Appuyez sur Return (Retour) pour fermer la boîte de dialogue de confirmation de l'enregistrement.
- Appuyez sur Q pour quitter l'utilitaire de configuration.
- Exécutez l'utilitaire de configuration :
Exécuter le build
Appelez le script de compilation :
idf.py build
La compilation doit se terminer sans erreur.
Programmer l'appareil
- Connectez votre carte de développement à votre ordinateur à l'aide d'un câble USB.
- Effacez tout micrologiciel précédent sur l'appareil (si vous n'avez qu'une seule carte de développement connectée à votre ordinateur, vous pouvez omettre l'option
-p {device}. L'appareil doit être détecté automatiquement) :idf.py -p {device} erase-flash - Copiez votre nouvelle application sur la carte de développement avec :
idf.py -p {device} flash
Pour en savoir plus sur les options de flashage, consultez la page de documentation Espressif esptool.py.
5. Se connecter à l'appareil
- Ouvrez une fenêtre de terminal.
- Notez le répertoire dans lequel vous vous trouvez, puis connectez-vous à votre nouvel appareil Matter à l'aide de GNU
screen:$ screen -L {device} 115200 - Si une console vide s'affiche, appuyez sur le bouton RESET pour démarrer le processus de démarrage de l'appareil.
6. Mettre en service l'appareil
Remarque : Cette étape ne réussira que si vous avez déjà configuré votre projet dans la Google Home Developer Console.
Nest Hub
Un hub est nécessaire pour mettre en service votre appareil sur le réseau Matter. Il s'agit d'un appareil Google Nest, tel que le Nest Hub (2e génération), compatible avec Matter et qui servira à la fois de routeur de bordure pour les appareils compatibles avec Thread et de chemin d'exécution local pour le routage des intents Smart Home.
Consultez cette liste pour voir quels hubs sont compatibles avec Matter.
Avant de commencer le processus de mise en service, vérifiez les points suivants :
- Votre hub est associé au même compte Google que celui que vous avez utilisé pour vous connecter à la Google Home Console.
- Votre hub se trouve sur le même réseau Wi-Fi que l'ordinateur que vous utilisez pour exécuter votre appareil Matter virtuel.
- Votre hub se trouve dans la même structure que celle que vous utilisez dans votre application Google Home. (La "maison" dans le graphique Google Home représente votre structure.)
Associer l'appareil
Suivez les instructions d'association ESP32 pour associer votre appareil.
Remarque : Si vous utilisez un M5STACK, sachez que son écran restera vide après le flashage. Vous devrez donc afficher le QR code à l'aide de l'URL qui s'affiche dans la console. Vous pouvez également saisir le code d'association manuel.
Exemple de sortie de la console affichant l'URL du QR code :
I (1926) chip[DL]: Done driving station state, nothing else to do...
I (1936) chip[SVR]: SetupQRCode: [MT:X.XXXXXXXXXXXXXXXXX]
I (1936) chip[SVR]: Copy/paste the below URL in a browser to see the QR Code:
I (1946) chip[SVR]: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3XX.KXXXXXXXXXXXXXXXX
I (1956) chip[SVR]: Manual pairing code: [XXXXXXXXXXX]]
Dépannage
Échec de la mise en service
- Assurez-vous d'avoir créé un projet avec la bonne combinaison VID/PID dans la Google Home Console.
- Assurez-vous d'avoir saisi le VID et le PID corrects dans la configuration de compilation.
- Assurez-vous d'avoir sélectionné le
Device Typeapproprié dans la configuration de compilation.
Pour obtenir d'autres conseils de dépannage, consultez la page Dépannage de Matter.
7. Contrôler l'appareil
Une fois votre appareil compatible avec Matter mis en service et affiché dans l'application Google Home sous la forme d'une ampoule, vous pouvez essayer de le contrôler à l'aide de l'Assistant Google, de l'application Google Home ou du simulateur de l'Assistant Google dans l'extension Google Home pour VS Code.
Assistant Google
Utilisez l'Assistant Google sur votre téléphone ou votre hub pour activer ou désactiver l'état de l'appareil à l'aide de commandes vocales, par exemple en disant "Hey Google, allume mes lumières".
Pour obtenir d'autres exemples de commandes, consultez la section Contrôler les appareils connectés par commande vocale de Contrôler les appareils connectés via l'application Google Home.
Application Google Home
Vous pouvez appuyer sur les libellés On (Allumer) et Off (Éteindre) à côté de l'icône d'ampoule affichée dans l'application Google Home.
Pour en savoir plus, consultez Contrôler des appareils avec l'application Google Home.
Simulateur de l'Assistant Google
Dans l'extension Google Home pour VS Code, à l'aide du simulateur de l'Assistant Google, vous pouvez envoyer des requêtes à votre appareil à l'aide d'une interface de type chat.
8. Félicitations !
Vous avez créé et mis en service votre premier appareil Matter. Formidable !
Dans cet atelier de programmation, vous avez appris ce qui suit :
- Installer un environnement de développement Matter, des exigences à un état de fonctionnement
- Créer et exécuter un appareil Matter
- Mettre en service et contrôler votre appareil depuis Google Home
Pour en savoir plus sur Matter, consultez les références suivantes :
- Le Matter Primer de Google Home, où vous découvrirez les concepts et principes importants du protocole Matter
- La spécification Matter, la bibliothèque d'appareils Matter et la bibliothèque de clusters d'applications Matter, publiées par la Connected Standard Alliance
- Le dépôt GitHub Matter.