Matter-Gerät bauen

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

  • So binden Sie ein physisches Gerät in Matter ein.
  • Matter-Gerät mit Google Home in Betrieb nehmen und steuern

Voraussetzungen

2. Umgebung einrichten

Serielles Gerät identifizieren

Der erste Schritt bei der Einrichtung Ihrer Entwicklungsumgebung besteht darin, zu bestimmen, mit welchem seriellen Port Ihr Gerät verbunden ist. Anhand dieser Informationen können Sie Ihr Developer Board programmieren und mit ihm interagieren.

  1. Verbinden Sie das Developer Board über ein USB-Kabel mit Ihrem Computer.
  2. Suchen Sie im Dateisystem /dev nach dem Developer Board-Gerät. Sie können Ihre Suche eingrenzen, indem Sie das Gerätepräfix Ihres Developer Boards angeben. 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

Voraussetzungen

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

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 mit diesem Codelab fortzufahren, benötigen Sie das Espressif SDK (das Espressif IoT Development Framework oder ESP-IDF).

  1. Erstellen Sie ein Verzeichnis, das die ESP-IDF enthalten soll:
    $ 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 Toolchain-Installation 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 Repository-Untermodule ab:
    $ ./scripts/checkout_submodules.py --shallow --platform esp32
    
  3. Bootstrapping der Matter-Entwicklungsumgebung ausführen:
    $ source ./scripts/bootstrap.sh
    

3. Google Home-Entwicklerkonsole

Die Google Home Developer Console ist die Webanwendung, in der du deine Matter-Integrationen mit Google Home verwalten kannst.

Alle Matter-Geräte, die die Matter-Zertifizierung der Connectivity Standards Alliance (Alliance) bestanden haben, können in Google Home verwendet werden. Geräte in der Entwicklung, die nicht zertifiziert sind, können unter bestimmten Bedingungen für Google Home in Betrieb genommen werden. Weitere Informationen finden Sie unter Einschränkungen bei der Kopplung.

Entwicklerprojekt erstellen

Rufe als Erstes 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 + Integration hinzufügen. Dadurch gelangst du zum Bildschirm Matter-Ressourcen. Dort kannst du dir die Dokumentation zur Matter-Entwicklung ansehen und dich über einige Tools informieren.
  4. Wenn Sie fortfahren möchten, klicken Sie auf Weiter: Entwickeln. Die Seite Matter-Checkliste wird angezeigt.
  5. Klicken Sie auf Weiter: Einrichtung.
  6. Geben Sie auf der Seite Einrichtung Ihren 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 „Anbieter-ID (VID)“ die Option Test-VID und dann im Drop-down-Menü „Test-VID“ die Option „0xFFF1“ aus. Geben Sie unter „Produkt-ID (PID)“ den Wert „0x8000“ ein, klicken Sie auf Speichern und fortfahren und dann auf der nächsten Seite auf Speichern. Verwende genau diese VID-/PID-Werte. Spätere Codelab-Schritte sind davon abhängig.
    Projekt einrichten
  9. Die Integration wird jetzt unter Matter-Integrationen angezeigt.
  10. Starten Sie Ihren Hub neu, damit er die aktuelle Konfiguration des Matter-Integrationsprojekts erhält. Wenn du die VID oder PID später ändern musst, musst du auch nach dem Speichern des Projekts neu starten, 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 entwickeln

Alle Beispiele in Matter befinden sich im Beispielordner im GitHub-Repository. Es sind mehrere Beispiele verfügbar, aber wir konzentrieren uns auf dieses Codelab auf die Lighting-App.

Dieses Beispiel ist ein einfaches Gerät, das in Google Home als Ein-/Aus-Licht angezeigt wird und auf Ein- und Aus-Befehle reagiert. Die Steuerung eines tatsächlichen elektrischen Lichts wird in diesem Codelab nicht behandelt.

Build konfigurieren

  1. 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
    
  2. Aktivieren Sie Ccache, um den Build-Prozess zu beschleunigen:
    $ export IDF_CCACHE_ENABLE=1
    
  3. Wechseln Sie in das 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 legen Sie Device Type auf ESP32-DevKitC fest.
    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. Lege für Vendor ID die von einer Allianz zugewiesene VID oder eine Test-VID fest.
    8. Lege für Product ID die PID fest, die du bei der Matter-Integration in der Google Home Developer Console festgelegt hast.
    9. Drücken Sie zum Speichern S.
    10. Drücken Sie die Eingabetaste, um den Standardpfad zu übernehmen, unter dem die Konfiguration gespeichert wird.
    11. Drücken Sie die Eingabetaste, um das Dialogfeld zum Bestätigen des Speicherns 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 Developer Board über ein USB-Kabel mit Ihrem Computer.
  2. Lösche die gesamte Firmware auf dem Gerät. Wenn nur ein Entwickler-Board mit deinem Computer verbunden ist, kannst du 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
    idf.py -p {device} flash
    
    in das Entwickler-Board:

Weitere Informationen zu den Blinkoptionen finden Sie auf der Dokumentationsseite zu Espressif esptool.py.

5. Mit dem Gerät verbinden

  1. Öffnen Sie ein Terminalfenster.
  2. Notiere dir, in welchem Verzeichnis du dich befindest, und verbinde dich dann mit deinem neuen Matter-Gerät über GNU screen:
    $ screen -L {device} 115200
    
  3. Wenn die Konsole leer ist, drücken Sie ZURÜCKSETZEN, um den Bootvorgang zu starten.

6. Gerät in Betrieb nehmen

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 dein Gerät auf dem Matter-Fabric in Betrieb zu nehmen. Es handelt sich um ein Google Nest-Gerät wie Nest Hub (2. Generation), das Matter unterstützt und als Border-Router für Thread-kompatible Geräte sowie als lokaler Auftragsausführungspfad für das Routing von Smart-Home-Intents dient.

In dieser Liste siehst du, welche Hubs Matter unterstützen.

Prüfen Sie vor der Inbetriebnahme Folgendes:

  • Ihr Hub ist mit demselben Google-Konto gekoppelt, mit dem Sie sich in der Google Home Console angemeldet haben.
  • Der Hub ist mit demselben WLAN wie der Computer verbunden, auf dem du dein Virtual Matter-Gerät verwendest.
  • Dein Hub befindet sich in der Struktur, die du in der Google Home App verwendest. Das „Haus“ in Google Home Graph ist dein Gebäude.

Gerät koppeln

Folgen Sie der Anleitung zum Koppeln des ESP32, um Ihr Gerät zu koppeln.

Hinweis: Beachten Sie bei Verwendung eines M5STACK, dass der Bildschirm nach dem Flashen leer bleibt. Sie müssen also den QR-Code über die URL aufrufen, die in der Konsole angezeigt wird. Alternativ kannst du stattdessen den Code für die manuelle Kopplung eingeben.

Beispiel für eine 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 schlägt fehl

Weitere Tipps zur Fehlerbehebung finden Sie auf der Seite Matter-Fehlerbehebung.

7. Gerät steuern

Sobald Ihr Matter-kompatibles Gerät in Betrieb genommen wurde und in der Google Home App als Glühbirne angezeigt wird, können Sie versuchen, es 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

Mit Google Assistant auf Ihrem Smartphone oder Hub können Sie den Gerätestatus per Sprachbefehl ändern, z. B. mit „Hey Google, schalte meine Lampen“.

Weitere Beispiele für Befehle finden Sie im Abschnitt Smart-Home-Geräte mit Sprachbefehlen steuern des Hilfeartikels Zur Google Home App hinzugefügte Smart-Home-Geräte steuern.

Google Home App

Sie können neben dem Glühbirnensymbol, das in der Google Home App angezeigt wird, auf die Labels An und Aus tippen.

Weitere Informationen finden Sie unter Geräte über die Google Home App steuern.

Google Assistant-Simulator

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

8. Glückwunsch!

Du hast dein erstes Matter-Gerät erstellt und in Betrieb genommen. Prima!

In diesem Codelab haben Sie Folgendes gelernt:

  • Matter-Entwicklungsumgebung installieren, um sie in einen funktionierenden Zustand zu verlagern
  • Ein Matter-Gerät entwickeln und ausführen.
  • Gerät über Google Home in Betrieb nehmen und steuern.

Weitere Informationen zu Matter finden Sie in den folgenden Referenzen: