

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Matter-Plugin
<a name="matter-plugin"></a>

**Topics**
+ [Was ist Matter Plugin](#what-is-matter-plugin)
+ [Wie erstellt man das Matter Plugin](#how-to-build-matter-plugin)
+ [Schnellstart: Richten Sie das Matter-Plugin ein und führen Sie es aus](#quickstart-setup-run-matter-plugin)
+ [Die folgenden Schritte müssen auf dem Raspberry Pi, d. h. dem Commissioner, ausgeführt werden.](#raspberry-pi-commissioner-steps)
+ [Unterstützte Matter-Gerätetypen](#supported-matter-device-types)
+ [Support für zusätzliche Cluster hinzufügen](#adding-support-for-additional-clusters)
+ [Integrieren Sie verschiedene Matter Controller-Lösungen](#integrate-different-matter-controller-solutions)

## Was ist Matter Plugin
<a name="what-is-matter-plugin"></a>

Das Matter Plugin ist eine Referenzimplementierung, die mithilfe der [Benutzerdefiniertes Protokoll-Plugin](custom-protocol-plugin.md) Funktion des Managed Integrations Hub SDK erstellt wurde. Es ermöglicht Ihrem Hub, Matter-Geräte sowohl lokal im selben Netzwerk gemäß der Matter-Spezifikation als auch ferngesteuert über verwaltete Integrationen zu steuern.

![Architekturdiagramm, das die Integration des Matter-Plug-ins mit dem Managed Integrations Hub SDK zeigt](https://docs.aws.amazon.com/de_de/iot-mi/latest/devguide/images/iotmi-matter-plugin.png)


Das Matter-Plugin ist im Hub-SDK enthalten. Es kommuniziert mit Matter-Geräten, implementiert Matter Controller-Funktionen und stellt über verwaltete Integrationen einen Fernsteuerungspfad zur Verfügung.

[chip-tool ist ein befehlszeilenbasierter Referenzcontroller von Connectedhomeip.](https://github.com/project-chip/connectedhomeip) Er fungiert als Commissioner/Controller On-a-Matter-Fabric, sodass Sie Geräte und read/write Attribute in Betrieb nehmen und Befehle aufrufen können. Er ist für Entwicklungs- und Interoperabilitätstests vorgesehen. In diesem Handbuch verwendet das Matter-Plugin ein Chip-Tool zur Steuerung des Matter-Geräts und demonstriert außerdem die Inbetriebnahme von Matter über die mobile App.

Der Umfang dieser Distribution umfasst weder mobile Produktionsanwendungen noch Zertifizierungs- und Produktionsaktivitäten wie CSA-Labortests und Zertifizierungen. Diese bleiben Teil Ihres Produktentwicklungsprozesses.

## Wie erstellt man das Matter Plugin
<a name="how-to-build-matter-plugin"></a>

Das Matter-Plugin hat zusätzlich zum Hub-SDK die folgenden Abhängigkeiten:
+ OpenSSL 3.0.x: Die OpenSSL-Versionsanforderungen sind nicht streng — in den meisten Fällen funktioniert die Standardversion des Systems einwandfrei.
+ [nng v1.4.0](https://github.com/nanomsg/nng)
+ [cJSON v1.7.18](https://github.com/DaveGamble/cJSON)
+ [AWS IoT IoT-Geräte-SDK CPP V2 v1.33.0](https://github.com/aws/aws-iot-device-sdk-cpp-v2)
+ [AWS-SDK CPP 1.11.433](https://github.com/aws/aws-sdk-cpp)

Konfigurieren Sie das Repo mit dem folgenden Befehl:

```
cd IotMI-DeviceSDK-MatterPlugin  
mkdir build  
cd build  
cmake ..
```

Dann baue es mit dem folgenden Befehl:

```
cmake --build .
```

Fügen Sie nach dem Erstellen den Bibliothekspfad zu LD\_LIBRARY\_PATH hinzu:

```
export LD_LIBRARY_PATH=/path/to/libraries:$LD_LIBRARY_PATH
```

## Schnellstart: Richten Sie das Matter-Plugin ein und führen Sie es aus
<a name="quickstart-setup-run-matter-plugin"></a>

Gehen Sie wie folgt vor, um das Matter-Plugin und die entsprechende Matter-Lösung einzurichten. Der Ablauf geht von zwei Maschinen aus: einem Hub (auf dem das Hub SDK \+ Matter Plugin ausgeführt wird) und einem Raspberry Pi, der die „Mobile App“ für die Inbetriebnahme und grundlegende Steuerung darstellt.

### Verwaltung der Knoten-IDs
<a name="node-id-management"></a>

In Matter muss jeder Knoten auf einer Fabric — einschließlich Geräten, Controllern und Beauftragten — über eine eindeutige Knoten-ID verfügen. Um Kollisionen zu vermeiden, ist eine konsistente Zuweisungsrichtlinie erforderlich. In diesem Handbuch werden Knoten-IDs manuell zugewiesen. In der Produktion sollten Sie die Knoten-IDs ordnungsgemäß verwalten.

Für die Beispiele in diesem Dokument verwendet das Chip-Tool des Hubs (das vom Matter Plugin verwendet wird) die Standard-Node-ID`112233`, und das Chip-Tool auf der Mobile App Raspberry Pi verwendet die Node-ID. `123456` Neu in Betrieb genommenen Geräten werden widersprüchliche Node-IDs auf derselben Fabric zugewiesen (z. B. 101 im Schnellstart).

### Voraussetzungen
<a name="prerequisites"></a>

Beginnen Sie erst, wenn Folgendes vorliegt:
+ Ihr Hub ist bereits in Managed Integrations integriert und das Hub-SDK ist bereitgestellt (per Skript oder Systemd). Falls Sie noch nicht integriert sind, folgen Sie den Anweisungen [Einrichtung des Hub-Onboardings](managedintegrations-sdk-v2-cookbook-hubsetup.md) zum Onboarding zu Managed Integrations und zum Ausführen des Hub-SDK. [Installieren und validieren Sie das Hub-SDK für verwaltete Integrationen](managedintegrations-sdk-v2-cookbook-deployment.md) Notieren Sie sich nach dem Onboarding die verwaltete Thing-ID Ihres Hubs. Dies wird später erforderlich sein.
+ Sie haben einen Raspberry Pi (oder einen beliebigen Computer), auf dem sowohl das Chip-Tool als auch die AWS-CLI ausgeführt werden können.
+ Sie haben ein Matter-Gerät zum Testen. Es kann ein echtes Matter-Gerät oder ein virtuelles Matter-Gerät sein (z. B. eine [Light-App)](https://github.com/project-chip/connectedhomeip/tree/master/examples/lighting-app/linux)

### Schritt 1. Bereiten Sie den Raspberry Pi vor (der die mobile App darstellt)
<a name="step1-prepare-raspberry-pi"></a>
+ Installieren Sie AWS CLI und erstellen und installieren Sie das Chip-Tool
+ Erstellen Sie das Chip-Tool gemäß der [offiziellen](https://github.com/project-chip/connectedhomeip/blob/master/docs/development_controllers/chip-tool/chip_tool_guide.md#building-from-source) Anleitung zum Erstellen von Chip-Tools. Die Version, die wir verifiziert haben, ist v1.4.2.0.
+ Installieren Sie AWS CLI gemäß den [offiziellen Anweisungen](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).
+ Bereiten Sie den persistenten Speicher für das Chip-Tool vor

  ```
  mkdir -p $HOME/iotmi/matter/
  ```
+ Generieren Sie die Commissioner-Zertifikatskette (weisen Sie diesem Chip-Tool eine Knoten-ID `123456` zu)

  ```
  cd connectedhomeip/  
  cd out/chip-tool/  
  ./chip-tool pairing get-commissioner-root-certificate \  
      --commissioner-nodeid 123456 \  
      --storage-directory $HOME/iotmi/matter/
  ```

Die generierte Kette wird gespeichert unter: `$HOME/iotmi/matter/chip_tool_config.alpha.ini`

Sie werden diese Datei später auf den Hub kopieren.

### Schritt 2. Bereiten Sie den Hub vor (auf dem das Matter-Plugin ausgeführt wird)
<a name="step2-prepare-hub"></a>
+ Erstellen oder installieren Sie das Chip-Tool auf dem Hub (das Matter-Plugin verwendet es, um Matter-Operationen auszuführen). Sie können sich an der Anleitung zum Erstellen von [Chip-Tools orientieren](https://github.com/project-chip/connectedhomeip/blob/master/docs/development_controllers/chip-tool/chip_tool_guide.md#building-from-source). Die Version, die wir verifiziert haben, ist v1.4.2.0.

Wir benötigen auch die Sha256-Summe des Chip-Tools für die spätere Verwendung. Sie können den folgenden Befehl verwenden, um die Sha256sum zu ermitteln:

```
sha256sum /path/to/chip-tool
```
+ Bereiten Sie den Speicher vor und kopieren Sie die Commissioner-Datei vom Raspberry Pi

  ```
  mkdir -p $HOME/iotmi/matter/  
  # From Raspberry Pi to Hub (example):  
  # scp $HOME/iotmi/matter/chip_tool_config.alpha.ini user@HUB_HOST:$HOME/iotmi/matter/
  ```
+ Führen Sie das Matter-Plugin aus (geben Sie den Chip-Tool-Pfad, seinen SHA256 und den Speicherordner an)

  ```
  ./iotmi_matter_plugin \  
      --chip-tool-path /path/to/chip-tool \  
      --sha256sum SHA256SUM_OF_THE_CHIP_TOOL \  
      --storage-folder $HOME/iotmi/matter/ \
      --node-id 112233
  ```

## Die folgenden Schritte müssen auf dem Raspberry Pi, d. h. dem Commissioner, ausgeführt werden.
<a name="raspberry-pi-commissioner-steps"></a>

### Schritt 3. Commission a Matter-Gerät (auf dem Raspberry Pi)
<a name="step3-commission-matter-device"></a>

Verwenden Sie das Chip-Tool, um das Gerät mithilfe des dekodierten QR-Codes und der Anmeldeinformationen in Betrieb zu nehmen. Wi-Fi In diesem Beispiel verwendet das Gerät die Knoten-ID 101 und die Commissioner-Knoten-ID lautet. `123456`

```
./chip-tool pairing code-wifi 101 \  
    YOUR_WIFI_SSID YOUR_WIFI_PW  \  
    MT:MFAA0W8C00UFQV2VL00 \  
    --bypass-attestation-verifier 1 \  
    --commissioner-nodeid 123456 \  
    --storage-directory $HOME/iotmi/matter/
```

**Hinweise:**
+ `101`ist die Matter-Knoten-ID des Geräts (Sie können einen anderen Wert wählen).
+ `MT:MFAA0W8C00UFQV2VL00`ist der dekodierte QR-Inhalt für das Gerät. Um den dekodierten Kontext aus einem QR-Code zu erhalten, müssen Sie eine QR-Code-App oder -Bibliothek auswählen, um ihn zu dekodieren. Sie können auch einen Webdienst verwenden, der die Dekodierung von QR-Codes unterstützt.
+ `-bypass-attestation-verifier 1`ist nur für Testzwecke bestimmt. Aktualisieren Sie für die Produktion den PAA-Speicher und führen Sie Bestätigungsprüfungen durch.

Das Chip-Tool unterstützt verschiedene Kopplungsmethoden, einschließlich der Kopplung von QR-Code oder PIN-Codes mit Thread oder Geräten. WiFi Weitere Informationen zum [Chip-Tool-Pairing-Befehl](https://github.com/project-chip/connectedhomeip/blob/master/docs/development_controllers/chip-tool/chip_tool_guide.md#pairing) finden Sie in der offiziellen Dokumentation.

### Schritt 4. Gewähren Sie Hub-Zugriff auf dem Gerät (ACL aktualisieren)
<a name="step4-grant-hub-access"></a>

Lassen Sie das Gerät nach der Inbetriebnahme vom Chip-Tool des Hubs steuern. In diesem Beispiel verfügt die Knoten-ID `123456` (Raspberry Pi) über Administratorrechte (5) und die Knoten-ID `112233` (Hub) über die Verwaltungsberechtigung (4).

```
chip-tool accesscontrol write acl \  
    '[{"fabricIndex":1,"privilege":5,"authMode":2,"subjects":[123456], "targets": null},{"fabricIndex":1,"privilege":4,"authMode":2,"subjects":[112233], "targets": null}]' \  
    101 0 \  
    --commissioner-nodeid 123456  
    --storage-directory $HOME/iotmi/matter/
```

### Schritt 5. Erstellen Sie ein verwaltetes Objekt für das Gerät (User-Guided Setup)
<a name="step5-create-managed-thing"></a>
+ Starten Sie die Erkennung (ersetzen Sie sie durch die verwaltete Thing-ID Ihres Hubs):

  ```
  aws iot-managed-integrations start-device-discovery \  
      --discovery-type CUSTOM \  
      --custom-protocol-detail '{"Name": "Matter", "NodeId":"101", "FabricId":"1"}' \  
      --controller-identifier <HUB_MANAGED_THING_ID>
  ```

Die Beispielantwort enthält eine Benutzer-geführte Job-ID für die Einrichtung:

```
{  
    "Id": "USER_GUIDED_SETUP_JOB_ID",  
    "StartedAt": 1753683326.056  
}
```
+ Fragen Sie die erkannten Geräte anhand der Job-ID ab:

  ```
  aws iot-managed-integrations \  
      list-discovered-devices --identifier <USER_GUIDED_SETUP_JOB_ID>
  ```

Beispielantwort:

```
{  
    "Items": [  
        {  
            "DeviceTypes": [],  
            "DiscoveredAt": "2025-08-05T06:46:35.407000+08:00",  
            "AuthenticationMaterial": "<AUTH_MATERIAL>"  
        }  
    ]  
}
```
+ Erstellen Sie ein verwaltetes Objekt für das Gerät mithilfe von AuthenticationMaterial:

  ```
  aws iot-managed-integrations create-managed-thing \  
      --role DEVICE \  
      --authentication-material-type DISCOVERED_DEVICE \  
      --authentication-material "<AUTH_MATERIAL>"
  ```

Beispielantwort (mit der ID des verwalteten Objekts des Geräts):

```
{  
    "Id": "DEVICE_MANAGED_THING_ID",  
    "Arn": "arn:aws:iotmanagedintegrations:eu-west-1:228183742813:managed-thing/515cf5a707ec41aaabb9914a1dd2889f",  
    "CreatedAt": "2025-08-06T15:00:08.718000+08:00"  
}
```

### Schritt 6: Steuern Sie das Gerät über verwaltete Integrationen
<a name="step6-control-device"></a>

Verwenden Sie den `send-managed-thing-command` Befehl, um einen Befehl an Ihr verwaltetes Ding zu senden.

```
json=$(jq -cr '.|@json' <<EOF  
[  
  {  
    "endpointId": "1",  
    "capabilities": [  
      {  
        "id": "matter.OnOff@1.4",  
        "name": "On/Off",  
        "version": "1",  
        "actions": [  
          {  
            "name": "Toggle",  
            "parameters": {}  
          }  
        ]  
      }  
    ]  
  }  
]  
EOF  
)  
aws iot-managed-integrations send-managed-thing-command \  
    --managed-thing-id "DEVICE_MANAGED_THING_ID" \  
    --endpoints "$json"
```

### Schritt 7. Gerätestatus lesen
<a name="step7-read-device-state"></a>

Senden Sie den folgenden Befehl, um den Gerätestatus abzurufen.

```
aws iot-managed-integrations get-managed-thing-state \  
    --managed-thing-id "DEVICE_MANAGED_THING_ID"
```

Beispielergebnis:

```
{  
    "Endpoints": [  
        {  
            "endpointId": "1",  
            "capabilities": [  
                {  
                    "id": "matter.OnOff@1.4",  
                    "name": "On/Off",  
                    "version": "1.4",  
                    "properties": [  
                        {  
                            "value": {  
                                "lastChangedAt": "2025-08-14T13:16:02.132Z",  
                                "propertyValue": false  
                            },  
                            "name": "OnOff"  
                        }  
                    ]  
                }  
            ]  
        }  
    ]  
}
```

### Schritt 8. Entferne das verwaltete Ding aus deinem Hub
<a name="step8-remove-managed-thing"></a>
+ Entfernen Sie das verwaltete Ding mit dem folgenden Befehl von Ihrem Hub

  ```
  aws iot-managed-integrations delete-managed-thing \  
      --identifier "DEVICE_MANAGED_THING_ID"
  ```
+ Trennen Sie das Gerät von der Struktur des Raspberry Pi (falls gewünscht):

  ```
  ./chip-tool pairing unpair 101 \  
      --commissioner-nodeid 123456 \  
      --storage-directory $HOME/iotmi/matter/
  ```

## Unterstützte Matter-Gerätetypen
<a name="supported-matter-device-types"></a>


| Matter-Gerätetyp | Unterstützte Funktionen | 
| --- | --- | 
| [OnOffLight](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/OnOffPlug-inUnit.xml) | [Identifizieren Sie (0x0003)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml), [On/Off (0x0006), [Levelkontrolle](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml) (0x0008)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml) | 
| [DimmableLight](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/DimmableLight.xml) | [Identifizieren Sie (0x0003), (0x0006)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml)[, Levelkontrolle [On/Off (](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml)0x0008)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml) | 
| [ColorTemperatureLight](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/ColorTemperatureLight.xml) | [Identifizieren Sie (0x0003), (0x0006)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml) [[, [Füllstandskontrolle On/Off ](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml) (0x0008), Farbsteuerung (0x0300)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/ColorControl.xml)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml) | 
| [OnOffPlug-InUint](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/OnOffPlug-inUnit.xml) | [[[Identifizieren Sie (0x0003), (0x0006), Füllstandskontrolle (0x0008) On/Off ](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml) | 
| [DimmablePlug-InUnit](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/DimmablePlug-InUnit.xml) | [Identifizieren Sie (0x0003), (0x0006)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml)[, Levelkontrolle [On/Off (](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml)0x0008)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml) | 
| [OnOffLightSwitch](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/OnOffLightSwitch.xml) | [[Identifizieren Sie (0x0003), (0x0006) On/Off ](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml) | 
| [DimmerSwitch](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/DimmerSwitch.xml) | [Identifizieren Sie (0x0003), (0x0006)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml)[, [On/Off Levelkontrolle (0x0008](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml))](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml) | 
| [ColorDimmerSwitch](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/ColorDimmerSwitch.xml) | [Identifizieren Sie (0x0003), (0x0006)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml) [[, [Füllstandskontrolle On/Off ](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/LevelControl.xml) (0x0008), Farbsteuerung (0x0300)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/ColorControl.xml)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/OnOff.xml) | 
| [DoorLock](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/DoorLock.xml) | [[Identifizieren Sie (0x0003), Türschloss (0x0101)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/DoorLock.xml)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml) | 
| [Thermostat](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/Thermostat.xml) | [Identifizieren Sie (0x0003)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml), [Thermostat (](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Thermostat.xml)0x0201) | 
| [WaterLeakDetector](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/device_types/WaterLeakDetector.xml) | [[Identifizieren (0x0003), Boolescher Status (0x0045)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/BooleanState.xml)](https://github.com/project-chip/connectedhomeip/blob/master/data_model/1.4/clusters/Identify.xml) | 

## Support für zusätzliche Cluster hinzufügen
<a name="adding-support-for-additional-clusters"></a>

Um das Matter-Plugin so zu erweitern, dass es zusätzliche Gerätetypen und Funktionen unterstützt, ändern Sie **matter\_action\_converter.cpp** nach diesem Muster:

**Implementierungsmuster:**

1. Definieren Sie Zuordnungen für Enums und Bitmaps

1. Fügen Sie Logik für beschreibbare Attribute hinzu UpdateState 

1. Fügen Sie die Befehlsverarbeitung für Cluster-Aktionen hinzu

1. Fügen Sie die Attributanalyse für die Statusberichterstattung hinzu

**Verwenden Sie vorhandene Cluster als Vorlagen:**

1. **OnOff Cluster** — Einfachste Referenz, die alle vier Komponenten mit grundlegenden Aufzählungen, beschreibbaren Attributen, Befehlen und Attributberichten zeigt

1. **DoorLock cluster** — Komplexes Beispiel, das mehrere Aufzählungstypen, Bitmap-Felder, Strukturparameter, optionale Befehlsparameter und eine umfangreiche Attributabdeckung demonstriert

Alle unterstützten Cluster (Identify,, OnOff, LevelControl DoorLock, Thermostat, ColorControl, BooleanState) folgen dieser Struktur. Sehen Sie sich die vorhandenen Implementierungen in matter\_action\_converter.cpp an, um das vollständige Muster zu verstehen.

## Integrieren Sie verschiedene Matter Controller-Lösungen
<a name="integrate-different-matter-controller-solutions"></a>

Dieser Abschnitt enthält Anleitungen zur Integration verschiedener Matter Controller-Lösungen in das Matter Plugin. Es beschreibt die möglichen Ansätze und wichtige Überlegungen, enthält jedoch keinen detaillierten Implementierungscode.

Es gibt zwei Hauptmethoden zur Integration von Matter Controller-Lösungen. Die erste ist die Verwendung des Matter-Plugins mit einem maßgeschneiderten Chip-Tool. Die zweite Möglichkeit besteht darin, einen Matter Controller Ihrer Wahl zu verwenden und über die benutzerdefinierte Protokollbibliothek in verwaltete Integrationen zu integrieren.

### Verwenden Sie das Matter-Plugin mit einem benutzerdefinierten Chip-Tool
<a name="using-matter-plugin-customized-chip-tool"></a>

Bei diesem Ansatz wird das Matter-Plugin so erweitert, dass es mit einer angepassten Version von funktioniert Chip-Tool. Um dies zu erreichen, müssen Sie möglicherweise den Quellcode des Matter-Plugins ändern und zusätzliche Logik einführen:
+ Passen Sie die STDIO-Parsing-Logik an: Wenn Ihr benutzerdefiniertes Chip-Tool Logs mit einem anderen Muster generiert, aktualisieren Sie die Parsing-Logik entsprechend.
+ Implementieren Sie sicheren Speicher: Das Matter Plugin bietet einen dateibasierten Speichermechanismus für Geräteinformationen. Für den Einsatz in der Produktion können Sie dies durch eine sicherere Speicherimplementierung ersetzen oder die Daten verschlüsseln. Außerdem sind angemessene Bereinigungsverfahren erforderlich, wenn das Matter-Plugin deinstalliert wird.
+ Implementieren Sie binäre Signaturen und Integritätsschutz: In Produktionsbereitstellungen sollten Sie den Integritätsschutz sowohl für das benutzerdefinierte Chip-Tool als auch für das erweiterte Matter-Plugin durchsetzen. Dazu gehören das Signieren der Binärdateien als Teil Ihres Softwareveröffentlichungsprozesses, die Überprüfung der Signaturen beim Start und die Integration von Plattformsicherheitsfunktionen wie sicherem Start oder Integritätstools. OS-level 
+ Führen task/event Sie eine Ratenbegrenzung ein: Um eine Überlastung zu vermeiden, stellen Sie sicher, dass das Matter-Plug-In eine angemessene Begrenzung der Aufgaben- und Ereignisrate enthält. In Produktionsbereitstellungen sollten Sie außerdem grundlegende Metriken und Überwachungen hinzufügen, um ungewöhnliche Aktualisierungsmuster zu erkennen und das betroffene Gerät oder Abonnement vorübergehend zu drosseln oder auszusetzen. Dieses Verhalten, das einem Schutzschalter ähnelt, ist in der Referenzimplementierung nicht vorgesehen und muss vom Kunden implementiert werden.
+ Integrieren Sie die Hauptfunktionslogik des Chip-Tools direkt: Wenn Sie sich nicht auf STDIO verlassen möchten, können Sie die Hauptfunktion des Chip-Tools in das Matter-Plugin integrieren. Die input/output Standardlogik kann dann mit den Funktionen der read/write Klasse verbunden werden. ChptoolProc 
+ Support der Codegenerierung: Implementieren Sie einen Mechanismus zur Bearbeitung von Versionsupdates der Matter-Spezifikation durch Codegenerierung.
+ Implementieren Sie Funktionen zur Themenverwaltung, darunter:
  + Zuweisen von Knoten-IDs zu den Commissioner-, Controller- und Matter-Geräten.
  + Verwaltung mehrerer Fabrics.

Was die Chip-Tools anbelangt, so werden die folgenden Verbesserungen ebenfalls empfohlen:
+ Verwenden Sie sicheren Speicher: Chip-Tool speichert Matter-Zertifikate, private Schlüssel und Statistiken in lokalen Verzeichnissen. Ersetzen Sie dies durch eine sichere Implementierung.
+ Parallelverarbeitung aktivieren: Chip-Tool Führt standardmäßig jeweils einen Befehl aus. Das Hinzufügen von Unterstützung für parallel Ausführung kann die Effizienz in bestimmten Szenarien verbessern.

### Verwenden eines vorhandenen Matter Controllers mit verwalteten Integrationen
<a name="using-existing-matter-controller-iot-managed-integration"></a>

Wenn Ihr Matter Controller nicht auf einem Chip-Tool basiert (z. B. eine Lösung, die auf einer Python-based Implementierung oder auf Funktionsaufrufen basiert), ist der STDIO-Ansatz möglicherweise nicht geeignet. In solchen Fällen können Sie mithilfe von a eine direkt in verwaltete Integrationen integrieren und gleichzeitig das Matter-Plug-In als [Benutzerdefiniertes Protokoll-Plugin](custom-protocol-plugin.md) Referenz verwenden. Beachten Sie die folgenden Überlegungen:
+ Fabric- und Node-IDs verwalten: Stellen Sie sicher, dass Geräte-Metadaten wie adding/removing Geräte und Caching-Attribute konsistent verwaltet werden.
+ Abonnements verwalten: Jedes Gerät sollte über bis zu ein aktives Abonnement verfügen, damit sein Status kontinuierlich aktualisiert werden kann.
+ Statusänderungen weitergeben: Wenn ein Gerät seinen Status aktualisiert, verifizieren Sie die Änderungen und leiten Sie Ereignisse an verwaltete Integrationen weiter.
+ Implementieren Sie einen Matter-Datenmodell-Translator: Managed Integrations verwendet zwar das Matter-Datenmodell, dessen Darstellung erfolgt jedoch im JSON-Format. Für die Zuordnung zwischen Ihrem Matter-Datenmodellformat und der JSON-Darstellung ist ein Übersetzer erforderlich.