Matter-Gerät bauen

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 integrieren Sie ein physisches Gerät in Matter.
  • So richten Sie Ihr Matter-Gerät mit Google Home ein und steuern es.

Voraussetzungen

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. Anhand dieser Informationen können Sie Ihr Entwicklerboard programmieren und damit interagieren.

  1. Verbinden Sie das Entwicklerboard über ein USB-Kabel mit Ihrem Computer.
  2. Suchen Sie im /dev-Dateisystem nach dem Entwicklerboard. Sie können Ihre Suche eingrenzen, indem Sie das Gerätepräfix Ihres Entwicklerboards angeben. Der ESP32 von Espressif verwendet /dev/ttyUSBx:
    user@host $ ls /dev/ttyUSB*
    /dev/ttyUSB0
    

Hub einrichten

Richte deinen Hub mit demselben Google-Konto ein, das du für dieses Codelab verwenden möchtest.

Entwicklungsumgebung einrichten

Vorbereitung

Diese Anleitung wurde unter Debian Linux getestet und sollte auf den meisten Debian-basierten Linux-Distributionen, einschließlich Ubuntu, funktionieren. Wenn Sie mit einer anderen Linux-Distribution arbeiten, kann sich das Verfahren zum Einrichten von Abhängigkeiten von den folgenden Schritten unterscheiden.

Abhängigkeiten installieren

Führen Sie den folgenden Befehl aus, um die erforderlichen Binärdateien für Linux-Pakete 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

Um dieses Codelab fortzusetzen, benötigen Sie das Espressif SDK (das Espressif IoT Development Framework oder „ESP-IDF“).

  1. Erstellen Sie ein Verzeichnis für die ESP-IDF:
    $ mkdir ~/esp-idf_tools
    
  2. 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
    
  3. Schließen Sie die Installation der Toolchain ab:
    $ cd ./esp-idf
    $ ./install.sh
    $ cd ~/
    

Matter SDK einrichten

  1. 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
    
  2. Rufen Sie die Untermodule des Repositorys ab:
    $ ./scripts/checkout_submodules.py --shallow --platform esp32
    
  3. Matter-Entwicklungsumgebung einrichten:
    $ 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, die sich in der Entwicklung befinden und nicht zertifiziert wurden, können unter bestimmten Bedingungen im Google Home-Ökosystem in Betrieb genommen werden. Weitere Informationen finden Sie unter Einschränkungen beim Koppeln.

Entwicklerprojekt erstellen

Rufen Sie zuerst die Google Home Developer Console auf:

  1. Klicken Sie auf Projekt erstellen.
  2. Geben Sie einen eindeutigen Projektnamen ein und klicken Sie auf Projekt erstellen. Dialogfeld „Neues Projekt erstellen“
  3. Klicke auf + Verknüpfung hinzufügen. Dadurch gelangst du zum Bildschirm Matter-Ressourcen, auf dem du die Matter-Entwicklerdokumentation und Informationen zu einigen Tools findest.
  4. Wenn Sie bereit sind, klicken Sie auf Weiter: Entwickeln. Die Seite Matter-Checkliste wird angezeigt.
  5. Klicken Sie auf Weiter: Einrichtung.
  6. Geben Sie auf der Seite Einrichtung den Produktnamen ein.
  7. Klicken Sie auf Gerätetyp auswählen und wählen Sie den Gerätetyp aus dem Drop-down-Menü aus (in diesem Fall Light).
  8. Wählen Sie unter „Vendor 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. Klicken Sie dann auf der nächsten Seite auf Speichern. Verwenden Sie genau diese VID/PID-Werte, da spätere Codelab-Schritte davon abhängen.
    Projekt einrichten
  9. Ihre Integration wird jetzt unter Matter-Integrationen angezeigt.
  10. Starte deinen Hub neu, damit er die aktuelle Projektkonfiguration für die Matter-Integration erhält. Wenn Sie die VID oder PID später ändern müssen, müssen Sie das Gerät nach dem Speichern des Projekts neu starten, damit die Änderung wirksam wird. Eine detaillierte Anleitung zum Neustart findest du unter Google Nest- oder Google Wifi-Geräte neu starten.

4. Gerät bauen

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 lighting-app.

In diesem Beispiel wird ein einfaches Gerät verwendet, das in Google Home als Ein/Aus-Lampe angezeigt wird und auf die Befehle „Ein“ und „Aus“ reagiert. Das Steuern einer tatsächlichen elektrischen Lampe geht über den Rahmen dieses Codelabs hinaus.

Build konfigurieren

  1. Konfiguriere das Matter SDK und aktiviere die Matter-Build-Umgebung:
    $ cd ~/esp-idf_tools/esp-idf
    $ source export.sh
    $ cd ~/connectedhomeip
    $ source ./scripts/activate.sh
    
  2. Aktivieren Sie Ccache, um den Build-Prozess zu beschleunigen:
    $ export IDF_CCACHE_ENABLE=1
    
  3. Wechseln Sie zum ESP32-Build-Verzeichnis lighting-app und legen Sie die Zielarchitektur fest:
    $ cd ./examples/lighting-app/esp32
    $ idf.py set-target esp32
    
    1. Führen Sie das Konfigurationsdienstprogramm aus:
      $ idf.py menuconfig
      
    2. Wählen Sie Demo -> Device Type aus und setzen Sie Device Type auf ESP32-DevKitC.
    3. Drücken Sie den Linkspfeil, um zum Menü der obersten Ebene zurückzukehren.
    4. Wählen Sie Component config ---> aus.
    5. Wählen Sie CHIP Device Layer ---> aus.
    6. Wählen Sie Device Identification Options ---> aus.
    7. Legen Sie für Vendor ID die von der Alliance zugewiesene VID oder eine Test-VID fest.
    8. Setze Product ID auf die PID, die du in der Google Home Developer Console für die Matter-Integration festgelegt hast.
    9. Drücken Sie S, um zu speichern.
    10. Drücken Sie die Eingabetaste, um den Standardpfad zu akzeptieren, in dem die Konfiguration gespeichert wird.
    11. Drücken Sie die Eingabetaste, um das Bestätigungsdialogfeld zum Speichern zu schließen.
    12. Drücken Sie Q, um das Konfigurationsdienstprogramm zu beenden.

Build ausführen

Rufen Sie das Build-Skript auf:

idf.py build

Der Build sollte ohne Fehler abgeschlossen werden.

Gerät programmieren

  1. Verbinden Sie Ihr Entwicklerboard über ein USB-Kabel mit Ihrem Computer.
  2. Entfernen Sie die vorherige Firmware 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
    
  3. Kopieren Sie Ihre neue Anwendung mit folgendem Befehl auf das Entwicklerboard:
    idf.py -p {device} flash
    

Weitere Informationen zu den Flash-Optionen finden Sie auf der Dokumentationsseite zu Espressif esptool.py.

5. Mit dem Gerät verbinden

  1. Öffnen Sie ein Terminalfenster.
  2. Notieren Sie sich, in welchem Verzeichnis Sie sich befinden, und stellen Sie dann mit GNU screen eine Verbindung zu Ihrem neuen Matter-Gerät her:
    $ screen -L {device} 115200
    
  3. Wenn die Konsole leer ist, drücken Sie die RESET-Taste, um den Bootvorgang des Geräts 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

Du benötigst einen Hub, um dein Gerät in der Matter-Fabric in Betrieb zu nehmen. Das ist ein Google Nest-Gerät, z. B. der 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.

Hier findest du eine Liste der Hubs, die Matter unterstützen.

Prüfen Sie vor Beginn der Inbetriebnahme, ob Folgendes zutrifft:

  • Dein Hub ist mit demselben Google-Konto verknüpft, mit dem du dich in der Google Home Console angemeldet hast.
  • Dein Hub ist mit demselben WLAN wie der Computer verbunden, auf dem du dein virtuelles Matter-Gerät ausführst.
  • Dein Hub befindet sich in derselben Struktur, die du in der Google Home App verwendest. Das „Haus“ im Google Home Graph steht für deine Struktur.

Gerät koppeln

Folge der Anleitung zum Koppeln von ESP32, um dein Gerät zu koppeln.

Hinweis: Wenn Sie einen M5STACK verwenden, bleibt der Bildschirm nach dem Flashen leer. Sie müssen den QR‑Code also ü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

Inbetriebnahme fehlgeschlagen

Weitere Tipps zur Fehlerbehebung findest du auf der Seite zur Fehlerbehebung bei Matter.

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 versuchen, das Gerät mit Google Assistant, der Google Home App oder dem Google Assistant Simulator in der Google Home Extension für VS Code zu steuern.

Google Assistant

Sie können Google Assistant auf Ihrem Smartphone oder Hub verwenden, um den Gerätestatus per Sprachbefehl zu ändern, z. B. indem Sie „Hey Google, schalte meine Beleuchtung um“ sagen.

Weitere Beispiele für Befehle findest du 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

Tippe in der Google Home App neben dem Glühbirnensymbol auf die Labels Ein und Aus.

Weitere Informationen findest du unter Geräte mit der Google Home App steuern.

Google Assistant Simulator

Mit der Google Home-Erweiterung für VS Code und dem Google Assistant Simulator können Sie Äußerungen über eine Chat-ähnliche Oberfläche an Ihr Gerät senden.

8. Glückwunsch!

Sie haben Ihr erstes Matter-Gerät erfolgreich erstellt und in Betrieb genommen. Sehr gut!

In diesem Codelab haben Sie Folgendes gelernt:

  • Installieren Sie eine Matter-Entwicklungsumgebung von den Anforderungen bis zum funktionierenden Zustand.
  • Matter-Gerät erstellen und ausführen
  • Gerät über Google Home in Betrieb nehmen und steuern

Weitere Informationen zu Matter finden Sie in diesen Referenzen: