Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Plugin Matter
Cos'è Matter Plugin
Matter Plugin è un'implementazione di riferimento creata utilizzando la Plugin di protocollo personalizzato funzionalità dell'SDK Managed Integrations Hub. Consente all'hub di controllare i dispositivi Matter sia localmente sulla stessa rete, seguendo le specifiche Matter, sia in remoto tramite integrazioni gestite.
Il plugin Matter è incluso nell'Hub SDK. Comunica con i dispositivi Matter, implementa le funzionalità di Matter Controller ed espone un percorso di controllo remoto tramite integrazioni gestite.
chip-tool è un controller di riferimento basato sulla riga di comando di connectedhomeip.
L'ambito di questa distribuzione non include un'applicazione mobile di produzione, né copre attività di certificazione e produzione come i test e la certificazione di laboratorio CSA. Queste restano parte del processo di sviluppo del prodotto.
Come creare il plugin Matter
Il plugin Matter ha le seguenti dipendenze oltre all'Hub SDK:
-
OpenSSL 3.0.x: il requisito della versione di OpenSSL non è rigoroso: nella maggior parte dei casi, la versione predefinita del sistema funziona correttamente.
-
cJSON
v1.7.18 -
SDK CPP AWS
1.11.433
Configura il repository con il seguente comando:
cd IotMI-DeviceSDK-MatterPlugin mkdir build cd build cmake ..
Quindi costruiscilo con il seguente comando:
cmake --build .
Dopo la creazione, aggiungi il percorso della libreria a LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=/path/to/libraries:$LD_LIBRARY_PATH
Quickstart: configura ed esegui il plugin Matter
Segui i passaggi seguenti per configurare il plugin Matter e la soluzione Matter corrispondente. Il flusso presuppone due macchine: un Hub (che esegue Hub SDK + Matter Plugin) e un Raspberry Pi che rappresenta la «Mobile App» per la messa in servizio e il controllo di base.
Gestione degli ID dei nodi
In Matter, ogni nodo di una struttura, inclusi dispositivi, controller e commissari, deve avere un ID di nodo univoco. Per evitare collisioni, è necessaria una politica di allocazione coerente. In questa guida, gli ID dei nodi vengono assegnati manualmente; in produzione, è necessario gestire correttamente gli ID dei nodi.
Per gli esempi di questo documento, il chip-tool dell'Hub (utilizzato dal plugin Matter) utilizza il Node ID 112233 predefinito e il chip-tool sull'app mobile Raspberry Pi utilizza Node ID. 123456 Ai dispositivi appena messi in servizio vengono assegnati ID di nodo non in conflitto sullo stesso tessuto (ad esempio, 101 nel quickstart).
Prerequisiti
Prima di iniziare, assicurati di disporre di quanto riportato di seguito:
-
Il tuo Hub è già integrato nelle integrazioni gestite e l'SDK Hub è distribuito (tramite script o systemd). Se non hai già effettuato l'onboarding, procedi Configurazione dell'hub onboarding all'onboard alle integrazioni gestite ed esegui l'hub SDK. Installa e convalida le integrazioni gestite Hub SDK Una volta effettuato l'onboarding, prendi nota del Managed Thing ID del tuo hub. Questo sarà richiesto in seguito.
-
Hai un Raspberry Pi (o qualsiasi macchina) in grado di eseguire sia chip-tool che AWS CLI.
-
Hai un dispositivo Matter per i test. Può essere un dispositivo Matter reale o un dispositivo Matter virtuale (ad esempio, un'app per l'illuminazione)
Passaggio 1. Prepara il Raspberry Pi (che rappresenta l'app mobile)
-
Installa AWS CLI e crea e installa chip-tool
-
Crea chip-tool seguendo la guida ufficiale alla compilazione di chip-tool.
La versione che abbiamo verificato è la v1.4.2.0. -
Installa AWS CLI seguendo le istruzioni ufficiali.
-
Prepara lo storage persistente per il chip-tool
mkdir -p $HOME/iotmi/matter/ -
Genera la catena di certificati del commissario (assegna l'ID del nodo
123456a questo chip-tool)cd connectedhomeip/ cd out/chip-tool/ ./chip-tool pairing get-commissioner-root-certificate \ --commissioner-nodeid 123456 \ --storage-directory $HOME/iotmi/matter/
La catena generata è memorizzata in: $HOME/iotmi/matter/chip_tool_config.alpha.ini
Copierai questo file nell'Hub in un secondo momento.
Passaggio 2. Prepara l'Hub (che esegue il plugin Matter)
-
Crea o installa il chip-tool sull'Hub (il plugin Matter lo utilizza per eseguire le operazioni di Matter). Puoi fare riferimento alla guida alla costruzione di chip-tool
. La versione che abbiamo verificato è la v1.4.2.0.
Avremo anche bisogno dello sha256sum del chip-tool per un uso successivo. È possibile utilizzare il seguente comando per ottenere lo sha256sum:
sha256sum /path/to/chip-tool
-
Prepara l'archiviazione e copia il file del commissario dal 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/ -
Esegui il plugin Matter (fornisci il percorso del chip-tool, il relativo SHA256 e la cartella di archiviazione)
./iotmi_matter_plugin \ --chip-tool-path /path/to/chip-tool \ --sha256sum SHA256SUM_OF_THE_CHIP_TOOL \ --storage-folder $HOME/iotmi/matter/ \ --node-id 112233
I passaggi seguenti devono essere eseguiti su Raspberry Pi, ovvero su Commissioner.
Fase 3. Commissiona un dispositivo Matter (sul Raspberry Pi)
Utilizza chip-tool per mettere in servizio il dispositivo utilizzando il codice QR decodificato e le credenziali di fornitura. Wi-Fi In questo esempio, il dispositivo utilizzerà l'ID del nodo 101 e l'ID del nodo commissario è. 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/
Note:
-
101è l'ID del nodo Matter del dispositivo (puoi scegliere un valore diverso). -
MT:MFAA0W8C00UFQV2VL00è il contenuto QR decodificato per il dispositivo. Per ottenere il contesto decodificato da un codice QR, devi scegliere un'app o una libreria di codici QR per decodificarlo. Puoi anche utilizzare un servizio web che supporta la decodifica e la decodifica del codice QR. -
-bypass-attestation-verifier 1è solo per uso di prova. Per la produzione, aggiorna l'archivio PAA ed esegui i controlli di attestazione.
chip-tool supporta diversi metodi di associazione, tra cui l'associazione del codice QR o del codice PIN con Thread o dispositivi. WiFi Per ulteriori informazioni sul comando di associazione chip-tool, consulta la
Passaggio 4. Concedi l'accesso a Hub sul dispositivo (aggiorna ACL)
Dopo la messa in servizio, consenti al chip-tool dell'Hub di controllare il dispositivo. In questo esempio, l'ID del nodo 123456 (Raspberry Pi) ha l'autorizzazione di amministratore (5) e l'ID del nodo 112233 (Hub) ha l'autorizzazione di gestione (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/
Fase 5. Crea un oggetto gestito per il dispositivo (User-Guided Configurazione)
-
Inizia la scoperta (sostituiscilo con l'ID dell'oggetto gestito di Hub):
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>
La risposta di esempio include un ID del lavoro di configurazione guidato dall'utente:
{ "Id": "USER_GUIDED_SETUP_JOB_ID", "StartedAt": 1753683326.056 }
-
Interroga i dispositivi rilevati utilizzando l'ID del lavoro:
aws iot-managed-integrations \ list-discovered-devices --identifier <USER_GUIDED_SETUP_JOB_ID>
Risposta di esempio:
{ "Items": [ { "DeviceTypes": [], "DiscoveredAt": "2025-08-05T06:46:35.407000+08:00", "AuthenticationMaterial": "<AUTH_MATERIAL>" } ] }
-
Crea un oggetto gestito per il dispositivo utilizzando AuthenticationMaterial:
aws iot-managed-integrations create-managed-thing \ --role DEVICE \ --authentication-material-type DISCOVERED_DEVICE \ --authentication-material "<AUTH_MATERIAL>"
Esempio di risposta (con l'ID dell'oggetto gestito del dispositivo):
{ "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" }
Fase 6. Controlla il dispositivo tramite integrazioni gestite
Usa il send-managed-thing-command comando per inviare un comando alla tua cosa gestita.
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"
Fase 7. Leggi lo stato del dispositivo
Invia il seguente comando per ottenere lo stato del dispositivo.
aws iot-managed-integrations get-managed-thing-state \ --managed-thing-id "DEVICE_MANAGED_THING_ID"
Esempio di risultato:
{ "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" } ] } ] } ] }
Fase 8. Rimuovi la cosa gestita dal tuo hub
-
Rimuovi l'oggetto gestito dal tuo hub con il seguente comando
aws iot-managed-integrations delete-managed-thing \ --identifier "DEVICE_MANAGED_THING_ID" -
Annulla l'associazione del dispositivo dalla struttura del Raspberry Pi (se lo desideri):
./chip-tool pairing unpair 101 \ --commissioner-nodeid 123456 \ --storage-directory $HOME/iotmi/matter/
Tipi di dispositivi Matter supportati
Aggiungere il supporto per cluster aggiuntivi
Per estendere il plugin Matter al supporto di tipi e funzionalità di dispositivi aggiuntivi, modifica matter_action_converter.cpp seguendo questo schema:
Modello di implementazione:
-
Definire le mappature per enumerazioni e bitmap
-
Aggiungi logica UpdateState per gli attributi scrivibili
-
Aggiungi l'elaborazione dei comandi per le azioni del cluster
-
Aggiungi l'analisi degli attributi per la rendicontazione dello stato
Usa i cluster esistenti come modelli:
-
OnOff cluster: il riferimento più semplice che mostra tutti e quattro i componenti con enumerazioni di base, attributi scrivibili, comandi e report degli attributi
-
DoorLock cluster - Esempio complesso che dimostra più tipi di enum, campi bitmap, parametri struct, parametri di comando opzionali e un'ampia copertura degli attributi
Tutti i cluster supportati (Identify,,, OnOff, Thermostat LevelControl DoorLock,,) seguono questa struttura. ColorControl BooleanState Esamina le implementazioni esistenti in matter_action_converter.cpp per comprendere lo schema completo.
Integra diverse soluzioni Matter Controller
Questa sezione fornisce indicazioni su come integrare diverse soluzioni Matter Controller con il Matter Plugin. Descrive i possibili approcci e le considerazioni importanti, ma non fornisce un codice di implementazione dettagliato.
Esistono due modi principali per integrare le soluzioni Matter Controller. Il primo consiste nell'utilizzare il Matter Plugin con uno strumento di chip personalizzato. Il secondo consiste nell'utilizzare un Matter Controller a scelta e nell'integrazione con le integrazioni gestite tramite la libreria Custom Protocol.
Utilizzo del plug-in Matter con un file personalizzato Chip-Tool
In questo approccio, il plugin Matter viene esteso per funzionare con una versione personalizzata di Chip-Tool. Per raggiungere questo obiettivo, potrebbe essere necessario modificare il codice sorgente del plugin Matter e introdurre una logica aggiuntiva:
-
Modifica la logica di analisi STDIO: se il tuo chip-tool personalizzato genera log con uno schema diverso, aggiorna la logica di analisi di conseguenza.
-
Implementa l'archiviazione sicura: il plugin Matter fornisce un meccanismo di archiviazione basato su file per le informazioni sul dispositivo. Per uso in produzione, sostituiscilo con un'implementazione di archiviazione più sicura o applica la crittografia ai dati. Inoltre, necessita di procedure di pulizia adeguate quando il Matter Plugin viene disinstallato.
-
Implementa la firma binaria e la protezione dell'integrità: nelle implementazioni di produzione, è necessario applicare la protezione dell'integrità sia per il chip-tool personalizzato che per il plugin Matter esteso. Ciò include la firma dei file binari come parte del processo di rilascio del software, la verifica delle firme all'avvio e l'integrazione di funzionalità di sicurezza della piattaforma come l'avvio sicuro o gli strumenti di integrità. OS-level
-
Introduci la limitazione della task/event velocità: per evitare il sovraccarico, assicurati che il plugin Matter includa una corretta limitazione della frequenza delle attività e degli eventi. Nelle implementazioni di produzione, è inoltre necessario aggiungere metriche e monitoraggio di base per rilevare schemi di aggiornamento anomali e limitare o sospendere temporaneamente il dispositivo o l'abbonamento interessati. Questo comportamento simile a quello di un interruttore automatico non è previsto dall'implementazione di riferimento e deve essere implementato dal cliente.
-
Integra direttamente la logica della funzione principale di chip-tool: se preferisci non fare affidamento su STDIO, puoi integrare la funzione principale del chip-tool nel Matter Plugin. input/output La logica standard può quindi essere collegata alle funzioni della read/write classe. ChptoolProc
-
Supporta la generazione di codice: Implementa un meccanismo per gestire gli aggiornamenti delle versioni delle specifiche Matter tramite la generazione di codice.
-
Implementa funzionalità di Matter Administration, tra cui:
-
Assegnazione degli ID dei nodi ai dispositivi Commissioner, Controller e Matter.
-
Gestione di più Fabric.
-
Per quanto riguarda i chip tool, sono consigliati anche i seguenti miglioramenti:
-
Usa l'archiviazione sicura: chip-tool archivia i certificati Matter, le chiavi private e le statistiche nelle directory locali. Sostituiscilo con un'implementazione sicura.
-
Abilita l'elaborazione parallela: per impostazione predefinita, Chip-Tool esegue un comando alla volta. L'aggiunta del supporto per l'esecuzione parallela può migliorare l'efficienza in determinati scenari.
Utilizzo di un Matter Controller esistente con integrazioni gestite
Se il tuo Matter Controller non è basato su chip-tool (ad esempio, un' Python-based implementazione o una soluzione basata su chiamate di funzioni), l'approccio STDIO potrebbe non essere adatto. In questi casi, è possibile effettuare l'integrazione diretta con le integrazioni gestite utilizzando un plug-in Matter come Plugin di protocollo personalizzato riferimento. Tieni presente le seguenti considerazioni:
-
Mantieni gli ID Fabric e Node: assicurati che i metadati del dispositivo, come i adding/removing dispositivi e gli attributi di memorizzazione nella cache, vengano mantenuti in modo coerente.
-
Gestisci gli abbonamenti: ogni dispositivo deve mantenere fino a un abbonamento attivo, in modo che il relativo stato possa essere aggiornato continuamente.
-
Propagazione delle modifiche di stato: quando un dispositivo aggiorna il suo stato, verifica le modifiche e propaga gli eventi alle integrazioni gestite.
-
Implementa un traduttore di modelli di dati Matter: sebbene Managed integrations utilizzi il modello di dati Matter, la sua rappresentazione è in formato JSON. È necessario un traduttore per eseguire la mappatura tra il formato del modello di dati Matter e la rappresentazione JSON.