1. Einführung
Matter ist ein Konnektivitätsprotokoll, das spannende Möglichkeiten für die Entwicklung von Smart-Home-Geräten bietet. In diesem Codelab baust du dein 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
- Hier erfährst du, wie du ein physisches Gerät in Matter integrierst.
- Matter-Gerät mit Google Home in Betrieb nehmen und steuern
Voraussetzungen
- Ein Hub, also ein Google Nest-Gerät, das Matter unterstützt, z. B. Nest Hub (2. Generation).
- Entweder ein ESP32-DevkitC von Espressif Systems oder ein ESP32 M5STACK Matter Evaluation Board.
- Ein PC mit Linux.
- Grundkenntnisse in Linux
2. Umgebung einrichten
Serielles Gerät identifizieren
Der erste Schritt bei der Einrichtung Ihrer Entwicklungsumgebung besteht darin, zu ermitteln, mit welchem seriellen Port Ihr Gerät verbunden ist. Anhand dieser Informationen können Sie Ihr Developer Board programmieren und mit ihm interagieren.
- Verbinden Sie das Developer Board über ein USB-Kabel mit Ihrem Computer.
- Suchen Sie im Dateisystem
/dev
nach dem Gerät des Developer Boards. Sie können Ihre Suche eingrenzen, indem Sie das Gerätepräfix Ihres Developer Boards angeben. Der ESP32 von Espressif verwendet/dev/ttyUSBx
:user@host $ ls /dev/ttyUSB* /dev/ttyUSB0
Hub einrichten
Richten Sie Ihren Hub mit dem 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 mit einer anderen Linux-Distribution arbeiten, kann die Einrichtung der Abhängigkeit von den folgenden Schritten abweichen.
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
Wenn Sie mit diesem Codelab fortfahren möchten, benötigen Sie das Espressif SDK (das Espressif IoT Development Framework oder „ESP-IDF“).
- Erstellen Sie ein Verzeichnis für die ESP-IDF:
$ mkdir ~/esp-idf_tools
- Klonen Sie die ESP-IDF aus 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 Toolchain-Installation 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 Repository-Untermodule ab:
$ ./scripts/checkout_submodules.py --shallow --platform esp32
- Bootstrapping der Matter-Entwicklungsumgebung ausführen:
$ source ./scripts/bootstrap.sh
3. Google Home-Entwicklerkonsole
Die Google Home Developer Console ist die Webanwendung, in der Sie Ihre Matter-Integrationen in Google Home verwalten.
Alle Matter-Geräte, die die Matter-Zertifizierung der Connectivity Standards Alliance (Alliance) bestanden haben, funktionieren in der Google Home-Umgebung. Geräte in der Entwicklung, die nicht zertifiziert sind, können unter bestimmten Bedingungen im Google Home-System in Betrieb genommen werden. Weitere Informationen finden Sie unter Einschränkungen für Kopplung.
Entwicklerprojekt erstellen
Rufe 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 können Sie sich die Matter-Entwicklungsdokumentation und Informationen zu einigen Tools ansehen.
- Wenn Sie fortfahren möchten, klicken Sie auf Weiter: Entwickeln, um die Seite Checkliste für Sachverhalte aufzurufen.
- Klicken Sie auf Weiter: Einrichtung.
- Geben Sie auf der Seite Einrichtung Ihren Produktnamen ein.
- Klicken Sie auf Gerätetyp auswählen und wählen Sie im Drop-down-Menü den Gerätetyp aus (in diesem Fall
Light
). - Wähle unter „Vendor ID (VID)“ die Option Test VID aus und wähle dann im Drop-down-Menü „Test-VID“ die Option „0xFFF1“ aus. Geben Sie unter Produkt-ID (PID) 0x8000 ein und klicken Sie auf Speichern und weiter und klicken Sie dann auf der nächsten Seite auf Speichern. Verwenden Sie genau diese VID/PID-Werte. Die späteren Codelab-Schritte hängen davon ab.
- Nun wird deine Integration unter Matter-Integrationen angezeigt.
- Starten Sie Ihren Hub neu, damit er die neueste Konfiguration des Matter-Integrationsprojekts erhält. Wenn du die VID oder PID später ändern musst, musst du nach dem Speichern des Projekts neu starten, damit die Änderung wirksam wird. Eine detaillierte Anleitung finden Sie unter Google Nest- oder Google Wifi-Geräte neu starten.
4. Das Gerät bauen
Alle Beispiele in Matter werden im GitHub-Repository im Ordner „examples“ abgelegt. Es gibt mehrere Beispiele. In diesem Codelab konzentrieren wir uns aber auf die lighting-app.
Dieses Beispiel zeigt ein einfaches Gerät, das in Google Home als Ein/Aus-Licht angezeigt wird und auf Ein-/Aus-Befehle reagiert. In diesem Codelab geht es nicht darum, ein echtes elektrisches Licht steuern zu lassen.
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
lighting-app
und legen Sie die Zielarchitektur fest:$ cd ./examples/lighting-app/esp32 $ idf.py set-target esp32
- Führen Sie das Konfigurationsprogramm aus:
$ idf.py menuconfig
- Wählen Sie
Demo -> Device Type
aus und setzen SieDevice Type
aufESP32-DevKitC
. - Drücken Sie die Nach-links-Taste, 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. - Lege für
Vendor ID
die von der Allianz zugewiesene VID oder eine Test-VID fest. - Setze
Product ID
auf die PID, die du bei der Matter-Integration in der Google Home Developer Console festgelegt hast. - Drücken Sie zum Speichern S.
- Drücken Sie die Eingabetaste, um den Standardpfad zum Speichern der Konfiguration zu übernehmen.
- Drücken Sie die Eingabetaste, um das Dialogfeld zur Bestätigung des Speicherns zu schließen.
- Drücken Sie Q, um das Konfigurationsprogramm zu beenden.
- Führen Sie das Konfigurationsprogramm 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 Ihr Developer Board über ein USB-Kabel mit Ihrem Computer.
- Löschen Sie alle früheren Firmware auf dem Gerät. Wenn nur ein Developer Board 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 in das Developer Board mit:
idf.py -p {device} flash
Weitere Informationen zu den Blinkoptionen finden Sie auf der Dokumentationsseite für Espressif esptool.py
.
5. Mit dem Gerät verbinden
- Öffnen Sie ein Terminalfenster.
- Notiere dir, in welchem Verzeichnis du dich gerade befindest, und stelle dann mit GNU
screen
eine Verbindung zu deinem neuen Matter-Gerät her:$ screen -L {device} 115200
- Wenn die Konsole leer ist, drücken Sie die Taste RESET (Zurücksetzen), um den Gerätestart zu starten.
6. Gerät in Betrieb nehmen
Hinweis: Dieser Schritt funktioniert nur, wenn Sie Ihr Projekt bereits in der Google Home Developer Console eingerichtet haben.
Nest Hub
Für die Inbetriebnahme des Geräts auf dem Matter-Fabric ist ein Hub erforderlich. Dies ist ein Google Nest-Gerät wie Nest Hub (2. Generation), das Matter unterstützt und sowohl als Border-Router für Thread-fähige Geräte als auch als lokaler Ausführungspfad für das Routing von Smart-Home-Intents dient.
dieser Liste kannst du entnehmen, welche Hubs Matter unterstützen.
Überprüfen Sie vor Beginn der Inbetriebnahme Folgendes:
- Dein Hub ist mit demselben Google-Konto gekoppelt, mit dem du dich in der Google Home Console angemeldet hast.
- Dein Hub befindet sich im selben WLAN wie der Computer, auf dem du dein Virtual Matter-Gerät ausführen möchtest.
- Dein Hub befindet sich in derselben Struktur, die du in der Google Home App verwendest. Das „Haus“ in Google Home Graph steht für Ihr Gebäude.
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. Zum Anzeigen des QR-Codes müssen Sie die URL verwenden, die in der Konsole angezeigt wird. Du kannst auch den Code für die manuelle Kopplung 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
Fehler bei der Inbetriebnahme
- Achte darauf, dass du in der Google Home Console ein Projekt mit der richtigen Kombination aus VID und PID erstellt hast.
- Achte darauf, dass du die richtige VID und PID in der Build-Konfiguration eingegeben hast.
- Achten Sie darauf, dass Sie in der Build-Konfiguration die richtige
Device Type
ausgewählt haben.
Weitere Tipps zur Fehlerbehebung finden Sie auf der Seite Matter-Fehlerbehebung.
7. Gerät steuern
Sobald Ihr Matter-kompatibles Gerät erfolgreich in Betrieb genommen wurde und in der Google Home App als Glühbirne angezeigt wird, können Sie es mit Google Assistant, der Google Home App oder dem Google Assistant Simulator in der Google Home-Erweiterung für VS Code steuern.
Google Assistant
Sie können Google Assistant auf Ihrem Smartphone oder Hub verwenden, um den Gerätestatus über Sprachbefehle umzuschalten, z. B. „Hey Google, schalte meine Lampen ein“.
Weitere Beispiele für Befehle finden Sie im Abschnitt Smart-Home-Geräte mit Sprachbefehlen steuern von Smart-Home-Geräte steuern, die der Google Home App hinzugefügt wurden.
Google Home App
Sie können neben dem in der Google Home App angezeigten Glühbirnensymbol auf die Labels An oder Aus tippen.
Weitere Informationen finden Sie unter Geräte mit der Google Home App steuern.
Google Assistant-Simulator
Mit der Google Home-Erweiterung für VS Code können Sie mithilfe des Google Assistant-Simulators über eine chatähnliche Benutzeroberfläche Äußerungen an Ihr Gerät senden.
8. Glückwunsch!
Du hast dein erstes Matter-Gerät erstellt und in Betrieb genommen. Super!
In diesem Codelab haben Sie gelernt, wie Sie:
- Matter-Entwicklungsumgebung installieren – von den Anforderungen bis zu einem funktionsfähigen Zustand
- Matter-Gerät erstellen und ausführen
- Dein Gerät über Google Home steuern und in Betrieb nehmen.
Weitere Informationen zu Matter finden Sie hier:
- In der Matter Primer App von Google Home erfährst du mehr über die wichtigsten Konzepte und Prinzipien des Matter-Protokolls.
- Matter Specification, Matter Device Library und Matter Application Cluster Library, veröffentlicht von der Connected Standard Alliance.
- Das Matter GitHub-Repository.