1. Einführung
Matter ist ein Verbindungsprotokoll, das spannende Möglichkeiten für die Entwicklung von Smart-Home-Geräten bietet. In diesem Codelab erstellen Sie Ihr erstes Matter-Gerät. Weitere Informationen zu Matter finden Sie im Google Home Developer Center: Matter oder auf der Website der Connectivity Standards Alliance.
Lerninhalte
- So binden Sie ein physisches Gerät in Matter ein.
- So richten Sie Ihr Matter-Gerät mit Google Home ein und steuern es.
Voraussetzungen
- Ein Hub, z. B. ein Google Nest Hub (2. Generation), also ein beliebiges Google Nest-Gerät, das Matter unterstützt.
- Entweder ein Espressif Systems ESP32-DevkitC oder ein ESP32 M5STACK Matter-Evaluierungsboard.
- Ein PC mit Linux.
- Grundkenntnisse in Linux.
2. Umgebung einrichten
Serielles Gerät identifizieren
Der erste Schritt beim Einrichten Ihrer Entwicklungsumgebung besteht darin, den seriellen Port zu ermitteln, mit dem Ihr Gerät verbunden ist. Mit diesen Informationen können Sie Ihr Entwicklerboard programmieren und damit interagieren.
- Verbinden Sie das Entwicklerboard über ein USB-Kabel mit Ihrem Computer.
- Suchen Sie im Dateisystem
/devnach dem Gerät des Entwicklerboards. Sie können die Suche eingrenzen, indem Sie das Gerätepräfix des Entwicklerboards angeben. Für den ESP32 von Espressif wird/dev/ttyUSBxverwendet:user@host $ ls /dev/ttyUSB* /dev/ttyUSB0
Hub einrichten
Richten Sie Ihren Hub mit demselben Google-Konto ein, das Sie für dieses Codelab verwenden möchten.
Entwicklungsumgebung einrichten
Vorbereitung
Diese Anleitung wurde unter Debian Linux getestet und sollte auf den meisten Debian-basierten Linux-Distributionen funktionieren, einschließlich Ubuntu. Wenn Sie eine andere Linux-Distribution verwenden, kann sich die Einrichtung der Abhängigkeiten von der folgenden Anleitung unterscheiden.
Abhängigkeiten installieren
Führen Sie den folgenden Befehl aus, um die erforderlichen Linux-Paketbinärdateien zu installieren, die möglicherweise noch nicht installiert sind:
$ 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
SDK einrichten
Für dieses Codelab benötigen Sie das Espressif SDK (das Espressif IoT Development Framework oder „ESP-IDF“).
- Erstellen Sie ein Verzeichnis für das ESP-IDF:
$ mkdir ~/esp-idf_tools
- Klonen Sie das ESP-IDF von GitHub in dieses Verzeichnis:
$ cd ~/esp-idf_tools $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
- Schließen Sie die Installation der Toolchain ab:
$ cd ./esp-idf $ ./install.sh $ cd ~/
Matter SDK einrichten
- Klonen Sie das Open-Source-Matter-Repository:
$ git clone https://github.com/project-chip/connectedhomeip.git $ cd ./connectedhomeip $ git fetch origin v1.0-branch $ git checkout FETCH_HEAD
- Rufen Sie die Untermodule des Repository ab:
$ ./scripts/checkout_submodules.py --shallow --platform esp32
- Bootstrappen Sie die Matter-Entwicklungsumgebung:
$ source ./scripts/bootstrap.sh
3. Google Home Developer Console
Die Google Home Developer Console ist die Webanwendung, in der Sie Ihre Matter-Integrationen mit Google Home verwalten.
Alle Matter-Geräte, die die Matter-Zertifizierung der Connectivity Standards Alliance (Alliance) bestanden haben, funktionieren im Google Home-Ökosystem. Geräte in der Entwicklung, die noch nicht zertifiziert wurden, können unter bestimmten Bedingungen im Google Home-Ökosystem eingerichtet werden. Weitere Informationen finden Sie unter Einschränkungen beim Pairing.
Entwicklerprojekt erstellen
Rufen Sie zuerst die Google Home Developer Console auf:
- Klicken Sie auf Projekt erstellen.
- Geben Sie einen eindeutigen Projektnamen ein und klicken Sie dann auf Projekt erstellen.

- Klicken Sie auf + Integration hinzufügen, um zum Bildschirm Matter-Ressourcen zu gelangen. Dort finden Sie die Matter-Entwicklerdokumentation und Informationen zu einigen Tools.
- Wenn Sie bereit sind, klicken Sie auf Weiter: Entwickeln, um die Seite Matter-Checkliste aufzurufen.
- Klicken Sie auf Weiter: Einrichtung.
- Geben Sie auf der Seite Einrichtung den Produktnamen ein.
- Klicken Sie auf Gerätetyp auswählen und wählen Sie den Gerätetyp aus dem Drop-down-Menü aus (in diesem Fall
Light). - Wählen Sie unter „Anbieter-ID (VID)“ die Option Test-VID aus und wählen Sie im Drop-down-Menü „Test-VID“ die Option „0xFFF1“ aus. Geben Sie unter „Produkt-ID (PID)“ „0x8000“ ein und klicken Sie auf Speichern und fortfahren und dann auf der folgenden Seite auf Speichern. Verwenden Sie genau diese VID/PID-Werte, da sie für spätere Schritte im Codelab erforderlich sind.

- Ihre Integration wird jetzt unter Matter-Integrationen angezeigt.
- Starten Sie Ihren Hub neu, damit er die aktuelle Konfiguration des Matter-Integrationsprojekts erhält. Wenn Sie die VID oder PID später ändern müssen, müssen Sie den Hub auch neu starten, nachdem Sie das Projekt gespeichert haben, damit die Änderung wirksam wird. Eine detaillierte Anleitung zum Neustart finden Sie unter Google Nest- oder Google Wifi-Geräte neu starten.
4. Gerät erstellen
Alle Beispiele in Matter befinden sich im Ordner „examples“ im GitHub-Repository. Es sind mehrere Beispiele verfügbar, aber in diesem Codelab konzentrieren wir uns auf die Beleuchtungs-App.
Dieses Beispiel ist ein einfaches Gerät, das in Google Home als Ein/Aus-Licht angezeigt wird und auf die Befehle „Ein“ und „Aus“ reagiert. Die Steuerung einer tatsächlichen elektrischen Lampe geht über den Rahmen dieses Codelabs hinaus.
Build konfigurieren
- Konfigurieren Sie das Matter SDK und aktivieren Sie die Matter-Build-Umgebung:
$ cd ~/esp-idf_tools/esp-idf $ source export.sh $ cd ~/connectedhomeip $ source ./scripts/activate.sh
- Aktivieren Sie Ccache, um den Build-Prozess zu beschleunigen:
$ export IDF_CCACHE_ENABLE=1
- Wechseln Sie zum ESP32-Build-Verzeichnis von
lighting-appund legen Sie die Zielarchitektur fest:$ cd ./examples/lighting-app/esp32 $ idf.py set-target esp32
- Führen Sie das Konfigurationsdienstprogramm aus:
$ idf.py menuconfig
- Wählen Sie
Demo -> Device Typeaus und legen SieDevice TypeaufESP32-DevKitCfest. - Drücken Sie die linke Pfeiltaste, um zum Menü der obersten Ebene zurückzukehren.
- Wählen Sie
Component config --->aus. - Wählen Sie
CHIP Device Layer --->aus. - Wählen Sie
Device Identification Options --->aus. - Legen Sie für
Vendor IDdie von der Alliance zugewiesene VID oder eine Test-VID fest. - Legen Sie für
Product IDdie PID fest, die Sie für die Matter-Integration in der Google Home Developer Console festgelegt haben. - Drücken Sie S , um zu speichern.
- Drücken Sie die Eingabetaste , um den Standardpfad zu übernehmen, in dem die Konfiguration gespeichert wird.
- Drücken Sie die Eingabetaste , um das Dialogfeld zur Bestätigung des Speicherns zu schließen.
- Drücken Sie Q , um das Konfigurationsdienstprogramm zu beenden.
- Führen Sie das Konfigurationsdienstprogramm aus:
Build ausführen
Rufen Sie das Build-Skript auf:
idf.py build
Der Build sollte ohne Fehler abgeschlossen werden.
Gerät programmieren
- Verbinden Sie das Entwicklerboard über ein USB-Kabel mit Ihrem Computer.
- Löschen Sie alle vorherigen Firmwareversionen auf dem Gerät. Wenn nur ein Entwicklerboard mit Ihrem Computer verbunden ist, können Sie die Option
-p {device}weglassen. Das Gerät sollte automatisch erkannt werden:idf.py -p {device} erase-flash - Kopieren Sie Ihre neue Anwendung mit dem folgenden Befehl auf das Entwicklerboard:
idf.py -p {device} flash
Weitere Informationen zu den Flash-Optionen finden Sie auf der Espressif esptool.py Dokumentationsseite.
5. Mit dem Gerät verbinden
- Öffnen Sie ein Terminalfenster.
- Notieren Sie sich, in welchem Verzeichnis Sie sich befinden, und stellen Sie dann mit GNU
screeneine Verbindung zu Ihrem neuen Matter-Gerät her:$ screen -L {device} 115200 - Wenn eine leere Konsole angezeigt wird, drücken Sie die Schaltfläche RESET , um den Startvorgang des Geräts zu starten.
6. Gerät einrichten
Hinweis: Dieser Schritt ist nur erfolgreich, wenn Sie Ihr Projekt bereits in der Google Home Developer Console eingerichtet haben.
Nest Hub
Ein Hub ist erforderlich, um Ihr Gerät in der Matter-Fabric einzurichten. Dabei handelt es sich um ein Google Nest-Gerät, z. B. den Nest Hub (2. Generation), das Matter unterstützt und sowohl als Border-Router für Thread-fähige Geräte als auch als lokaler Fulfillment-Pfad für das Routing von Smart-Home-Intents dient.
In dieser Liste finden Sie die Hubs, die Matter unterstützen.
Bevor Sie mit der Einrichtung beginnen, prüfen Sie Folgendes:
- Ihr Hub ist mit demselben Google-Konto gekoppelt, mit dem Sie sich in der Google Home Console angemeldet haben.
- Ihr Hub befindet sich im selben WLAN wie der Computer, auf dem Sie Ihr virtuelles Matter-Gerät ausführen.
- Ihr Hub befindet sich in derselben Struktur, die Sie in der Google Home App verwenden. Das "Haus" im Google Home Graph stellt Ihre Struktur dar.
Gerät koppeln
Folgen Sie der Anleitung zum Koppeln des ESP32, um Ihr Gerät zu koppeln.
Hinweis: Wenn Sie einen M5STACK verwenden, bleibt der Bildschirm nach dem Flashen leer. Sie müssen den QR-Code über die URL aufrufen, die in der Konsole angezeigt wird. Alternativ können Sie den manuellen Kopplungscode eingeben.
Beispiel für die Konsolenausgabe mit der QR-Code-URL:
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]]
Fehlerbehebung
Einrichtung schlägt fehl
- Prüfen Sie, ob Sie in der Google Home Console ein Projekt mit der richtigen VID/PID-Kombination erstellt haben.
- Prüfen Sie, ob Sie die richtige VID und PID in der Build-Konfiguration eingegeben haben.
- Prüfen Sie, ob Sie in der Build-Konfiguration den richtigen
Device Typeausgewählt haben.
Weitere Tipps zur Fehlerbehebung finden Sie auf der Seite Fehlerbehebung bei Matter.
7. Gerät steuern
Sobald Ihr Matter-kompatibles Gerät eingerichtet wurde und in der Google Home App als Glühbirne angezeigt wird, können Sie versuchen, das Gerät mit Google Assistant, der Google Home App oder dem Google Assistant-Simulator in der Google Home-Erweiterung für VS Code zu steuern.
Google Assistant
Verwenden Sie Google Assistant auf Ihrem Smartphone oder Hub, um den Gerätestatus mit Sprachbefehlen zu ändern, z. B. „Hey Google, schalte meine Lampen ein“.
Weitere Beispiele für Befehle finden Sie im Abschnitt Smart-Home-Geräte mit Sprachbefehlen steuern unter Smart-Home-Geräte steuern, die der Google Home App hinzugefügt wurden.
Google Home App
Sie können auf die Labels Ein und Aus neben dem Glühbirnensymbol in der Google Home App tippen.
Weitere Informationen finden Sie unter Geräte mit der Google Home App steuern.
Google Assistant-Simulator
In der Google Home-Erweiterung für VS Code können Sie mit dem Google Assistant-Simulator Äußerungen an Ihr Gerät senden, indem Sie eine chatähnliche Oberfläche verwenden.
8. Glückwunsch!
Sie haben Ihr erstes Matter-Gerät erfolgreich erstellt und eingerichtet. Sehr gut!
In diesem Codelab haben Sie Folgendes gelernt:
- Eine Matter-Entwicklungsumgebung von den Anforderungen bis zum funktionsfähigen Zustand zu installieren.
- Ein Matter-Gerät zu erstellen und auszuführen.
- Ihr Gerät über Google Home einzurichten und zu steuern.
Weitere Informationen zu Matter finden Sie in diesen Referenzen:
- Der Matter Primer von Google Home, in dem Sie die wichtigsten Konzepte und Prinzipien des Matter-Protokolls kennenlernen.
- Die Matter-Spezifikation, die Matter-Gerätebibliothek und die Matter-Anwendungsclusterbibliothek, veröffentlicht von der Connected Standards Alliance.
- Das Matter-GitHub-Repository.