Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Complemento Matter
¿Qué es Matter Plugin
El complemento Matter es una implementación de referencia creada con la Plugin de protocolo personalizado función del SDK de Managed Integrations Hub. Permite que su hub controle los dispositivos Matter tanto de forma local en la misma red, siguiendo las especificaciones de Matter, como de forma remota mediante integraciones gestionadas.
El complemento Matter está incluido en el SDK de Hub. Se comunica con los dispositivos Matter, implementa las funcionalidades de Matter Controller y expone una ruta de control remoto mediante integraciones gestionadas.
chip-tool es un controlador de referencia basado en la línea de comandos de connectedhomeip.
El alcance de esta distribución no incluye una aplicación móvil de producción, ni cubre las actividades de certificación y producción, como las pruebas de laboratorio y la certificación de la CSA. Estas siguen siendo parte del proceso de desarrollo de sus productos.
¿Cómo crear el complemento Matter
El complemento Matter tiene las siguientes dependencias además del SDK de Hub:
Configure el repositorio con el siguiente comando:
cd IotMI-DeviceSDK-MatterPlugin mkdir build cd build cmake ..
A continuación, compruébelo con el siguiente comando:
cmake --build .
Tras la compilación, añada la ruta de la biblioteca a LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=/path/to/libraries:$LD_LIBRARY_PATH
Inicio rápido: configurar y ejecutar el complemento Matter
Siga los pasos que se indican a continuación para configurar el complemento Matter y la solución Matter correspondiente. El flujo se basa en dos máquinas: una Hub (que ejecuta el Hub SDK y el complemento Matter) y una Raspberry Pi, que representa la «aplicación móvil» para la puesta en marcha y el control básico.
Administración de identificadores de nodos
En Matter, cada nodo de una estructura (incluidos los dispositivos, los controladores y los comisionados) debe tener un ID de nodo único. Para evitar colisiones, se requiere una política de asignación coherente. En esta guía, los ID de nodo se asignan manualmente; en producción, debe gestionar los ID de nodo correctamente.
Para los ejemplos de este documento, la herramienta de chip del Hub (utilizada por el complemento Matter) usa el ID de nodo predeterminado112233, y la herramienta de chip de la aplicación móvil Raspberry Pi usa el ID de nodo. 123456 A los dispositivos recién puestos en servicio se les asignan identificadores de nodo no conflictivos en la misma estructura (por ejemplo, 101 en la guía de inicio rápido).
Requisitos previos
Antes de comenzar, asegúrese de que dispone de lo siguiente:
-
Tu Hub ya está integrado en las integraciones gestionadas y el SDK de Hub ya está implementado (mediante script o systemd). Si aún no lo has incorporado, sigue Configuración de incorporación del hub para incorporar las integraciones gestionadas y ejecutar el SDK del hub. Instale y valide el SDK de Hub de integraciones administradas Una vez incorporado, anota el ID de elemento gestionado de tu hub. Será necesario hacerlo más adelante.
-
Tiene una Raspberry Pi (o cualquier máquina) que puede ejecutar tanto chip-tool como AWS CLI.
-
Dispone de un dispositivo Matter para realizar pruebas. Puede ser un dispositivo Matter real o un dispositivo Matter virtual (p. ej., una aplicación de iluminación)
Paso 1. Prepara la Raspberry Pi (que representa la aplicación móvil)
-
Instalación de AWS CLI y creación e instalación de chip-tool
-
Cree chip-tool siguiendo la guía oficial
de creación de chip-tool. La versión que hemos verificado es la v1.4.2.0. -
Instale AWS CLI siguiendo las instrucciones oficiales.
-
Prepare el almacenamiento persistente para chip-tool
mkdir -p $HOME/iotmi/matter/ -
Genere la cadena de certificados del comisionado (asigne el ID de nodo
123456a esta herramienta de chips)cd connectedhomeip/ cd out/chip-tool/ ./chip-tool pairing get-commissioner-root-certificate \ --commissioner-nodeid 123456 \ --storage-directory $HOME/iotmi/matter/
La cadena generada se almacena en: $HOME/iotmi/matter/chip_tool_config.alpha.ini
Copiarás este archivo en el Hub más adelante.
Paso 2. Prepara el Hub (que ejecuta el complemento Matter)
-
Cree o instale una herramienta de chip en el Hub (el complemento Matter la usa para realizar operaciones con Matter). Puedes consultar la guía de creación de herramientas para chips
. La versión que hemos verificado es la v1.4.2.0.
También necesitaremos el sha256sum de la herramienta de chips para usarlo más adelante. Puedes usar el siguiente comando para obtener el sha256sum:
sha256sum /path/to/chip-tool
-
Prepare el almacenamiento y copie el archivo comisionado de la 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/ -
Ejecute el complemento Matter (proporcione la ruta de la herramienta del chip, su SHA256 y la carpeta de almacenamiento)
./iotmi_matter_plugin \ --chip-tool-path /path/to/chip-tool \ --sha256sum SHA256SUM_OF_THE_CHIP_TOOL \ --storage-folder $HOME/iotmi/matter/ \ --node-id 112233
Los siguientes pasos deben ejecutarse en la Raspberry Pi, es decir, en el Commissioner.
Paso 3. Encargue un dispositivo Matter (en la Raspberry Pi)
Utilice una herramienta de chip para poner en marcha el dispositivo utilizando su código QR decodificado y sus credenciales de aprovisionamiento. Wi-Fi En este ejemplo, el dispositivo usará el ID de nodo 101 y el ID del nodo comisionado sí. 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/
Notas:
-
101es el ID del nodo principal del dispositivo (puede elegir un valor diferente). -
MT:MFAA0W8C00UFQV2VL00es el contenido QR decodificado del dispositivo. Para obtener el contexto decodificado de un código QR, debes elegir una aplicación o biblioteca de códigos QR para decodificarlo. También puedes usar un servicio web que admita la decodificación de códigos QR. -
-bypass-attestation-verifier 1es solo para uso de prueba. Para la producción, actualice el almacén de PAA y realice comprobaciones de certificación.
chip-tool admite diferentes métodos de emparejamiento, incluido el emparejamiento de códigos QR o PIN con Thread o dispositivos. WiFi Para obtener más información sobre el comando de emparejamiento chip-tool
Paso 4. Conceda acceso al Hub en el dispositivo (actualice la ACL)
Tras la puesta en servicio, deje que el chip-herramienta del Hub controle el dispositivo. En este ejemplo, el ID de nodo 123456 (Raspberry Pi) tiene permiso de administrador (5) y el ID de nodo 112233 (Hub) tiene permiso de administración (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/
Paso 5. Cree un elemento gestionado para el dispositivo (User-Guided Configuración)
-
Inicia la detección (sustitúyela por el ID de elemento gestionado de tu 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>
El ejemplo de respuesta incluye un ID de trabajo de configuración guiado por el usuario:
{ "Id": "USER_GUIDED_SETUP_JOB_ID", "StartedAt": 1753683326.056 }
-
Consulte los dispositivos detectados mediante el ID de trabajo:
aws iot-managed-integrations \ list-discovered-devices --identifier <USER_GUIDED_SETUP_JOB_ID>
Respuesta de ejemplo:
{ "Items": [ { "DeviceTypes": [], "DiscoveredAt": "2025-08-05T06:46:35.407000+08:00", "AuthenticationMaterial": "<AUTH_MATERIAL>" } ] }
-
Cree un elemento gestionado para el dispositivo mediante AuthenticationMaterial:
aws iot-managed-integrations create-managed-thing \ --role DEVICE \ --authentication-material-type DISCOVERED_DEVICE \ --authentication-material "<AUTH_MATERIAL>"
Ejemplo de respuesta (con el ID de elemento gestionado 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" }
Paso 6. Controle el dispositivo mediante integraciones gestionadas
Usa el send-managed-thing-command comando para enviar un comando a tu dispositivo gestionado.
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"
Paso 7. Lee el estado del dispositivo
Envíe el siguiente comando para obtener el estado del dispositivo.
aws iot-managed-integrations get-managed-thing-state \ --managed-thing-id "DEVICE_MANAGED_THING_ID"
Ejemplo de resultado:
{ "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" } ] } ] } ] }
Paso 8. Elimina lo gestionado de tu hub
-
Elimine lo gestionado de su hub con el siguiente comando
aws iot-managed-integrations delete-managed-thing \ --identifier "DEVICE_MANAGED_THING_ID" -
Desvincula el dispositivo de la estructura de la Raspberry Pi (si lo deseas):
./chip-tool pairing unpair 101 \ --commissioner-nodeid 123456 \ --storage-directory $HOME/iotmi/matter/
Tipos de dispositivos Matter compatibles
Añadir soporte para clústeres adicionales
Para ampliar el complemento Matter para que admita tipos y capacidades de dispositivos adicionales, modifique el archivo matter_action_converter.cpp siguiendo este patrón:
Patrón de implementación:
-
Defina mapeos para enumeraciones y mapas de bits
-
Agregue lógica para UpdateState los atributos que se pueden escribir
-
Agregue procesamiento de comandos para las acciones del clúster
-
Agregue el análisis de atributos para los informes estatales
Utilice los clústeres existentes como plantillas:
-
OnOff cluster: la referencia más simple que muestra los cuatro componentes con enumeraciones básicas, atributos que se pueden escribir, comandos e informes de atributos
-
DoorLock cluster: ejemplo complejo que muestra varios tipos de enumeración, campos de mapa de bits, parámetros de estructura, parámetros de comando opcionales y una amplia cobertura de atributos
Todos los clústeres compatibles (Identify,, OnOff, LevelControl, Thermostat DoorLock, ColorControl, BooleanState) siguen esta estructura. Revise las implementaciones existentes en matter_action_converter.cpp para comprender el patrón completo.
Integre diferentes soluciones de Matter Controller
Esta sección proporciona orientación sobre cómo integrar diferentes soluciones de Matter Controller con el complemento Matter. Describe los posibles enfoques y las consideraciones importantes, pero no proporciona un código de implementación detallado.
Hay dos formas principales de integrar las soluciones Matter Controller. La primera es usar el complemento Matter con una herramienta de chip personalizada. La segunda consiste en utilizar un Matter Controller de su elección e integrarlo con las integraciones gestionadas a través de la biblioteca de protocolos personalizados.
Uso del complemento Matter con un complemento personalizado Chip-Tool
En este enfoque, el complemento Matter se amplía para que funcione con una versión personalizada del Chip-Tool. Para lograrlo, es posible que tengas que modificar el código fuente del complemento Matter e introducir una lógica adicional:
-
Ajusta la lógica de análisis de STDIO: si tu herramienta de chip personalizada genera registros con un patrón diferente, actualiza la lógica de análisis en consecuencia.
-
Implemente un almacenamiento seguro: el complemento Matter proporciona un mecanismo de almacenamiento basado en archivos para la información del dispositivo. Para uso en producción, sustitúyalo por una implementación de almacenamiento más segura o aplique un cifrado a los datos. Y también necesita un procedimiento de limpieza adecuado cuando se desinstala el complemento Matter.
-
Implemente la firma binaria y la protección de la integridad: en las implementaciones de producción, debe reforzar la protección de la integridad tanto de la herramienta de chip personalizada como del complemento Matter ampliado. Esto incluye firmar los archivos binarios como parte del proceso de publicación del software, verificar las firmas durante el inicio e integrar las funciones de seguridad de la plataforma, como el arranque seguro o las herramientas de integridad. OS-level
-
Introduzca una limitación task/event de velocidad: para evitar la sobrecarga, asegúrese de que el complemento Matter incluya una limitación adecuada de la frecuencia de tareas y eventos. En las implementaciones de producción, también deberías añadir métricas y monitorización básicas para detectar patrones de actualización anormales y limitar o suspender temporalmente el dispositivo o la suscripción afectados. Este comportamiento similar al de un interruptor automático no lo proporciona la implementación de referencia y debe implementarlo el cliente.
-
Integre directamente la lógica de la función principal de la herramienta de chip: si prefiere no confiar en STDIO, puede integrar la función principal de la herramienta de chip en el complemento Matter. De este modo, input/output la lógica estándar se puede conectar a las funciones de la clase read/write . ChptoolProc
-
Support a la generación de código: Implemente un mecanismo para gestionar las actualizaciones de las versiones de las especificaciones de Matter mediante la generación de código.
-
Implemente las funciones de administración de materias, que incluyen:
-
Asignación de identificadores de nodo a los dispositivos Commissioner, Controller y Matter.
-
Gestión de varios tejidos.
-
Por lo que respecta al uso de chips, también se recomiendan las siguientes mejoras:
-
Utilice un almacenamiento seguro: la herramienta con chip almacena los certificados de Matter, las claves privadas y las estadísticas en los directorios locales. Sustituya esto por una implementación segura.
-
Habilitar el procesamiento paralelo: de forma predeterminada, Chip-Tool ejecuta un comando a la vez. Agregar soporte de ejecución paralela puede mejorar la eficiencia en ciertos escenarios.
Uso de un controlador de materias existente con integraciones gestionadas
Si su Matter Controller no está basado en una herramienta basada en chips (por ejemplo, una solución basada en una Python-based implementación o una llamada de función), es posible que el enfoque STDIO no sea adecuado. En esos casos, puedes integrarte directamente con las integraciones gestionadas utilizando un complemento Matter como Plugin de protocolo personalizado referencia. Tenga en cuenta las siguientes consideraciones:
-
Mantenga los ID de estructura y nodo: asegúrese de que los metadatos de los dispositivos, como los adding/removing dispositivos y los atributos de almacenamiento en caché, se mantengan de forma coherente.
-
Administre las suscripciones: cada dispositivo debe mantener hasta una suscripción activa, de modo que su estado pueda actualizarse continuamente.
-
Propaga los cambios de estado: cuando un dispositivo actualiza su estado, verifica los cambios y propaga los eventos a las integraciones gestionadas.
-
Implemente un traductor de modelos de datos Matter: aunque Managed Integrations utiliza el modelo de datos Matter, su representación está en formato JSON. Se necesita un traductor para mapear entre el formato del modelo de datos de Matter y la representación en JSON.