1. Introducción
Matter es un protocolo de conectividad que ofrece oportunidades interesantes para el desarrollo de dispositivos inteligentes. En este codelab, compilarás tu primer dispositivo Matter. Para obtener más información sobre Matter, visita el Centro para desarrolladores de Google Home: Matter o el sitio web de Connectivity Standards Alliance.
Qué aprenderás
- Cómo integrar un dispositivo físico con Matter
- Cómo poner en funcionamiento y controlar tu dispositivo Matter con Google Home
Requisitos
- Un concentrador, que es cualquier dispositivo Google Nest compatible con Matter, como el Nest Hub (2ª gen.).
- Una placa de evaluación de Matter ESP32-DevkitC o ESP32 M5STACK de Espressif Systems
- Una PC con Linux
- Conocimientos básicos de Linux
2. Configura tu entorno
Identifica el dispositivo serial
El primer paso para configurar tu entorno de desarrollo es determinar a qué puerto serie está conectado tu dispositivo. Esta información te permitirá programar e interactuar con tu placa de desarrollo.
- Conecta la placa de desarrollo a la computadora con un cable USB.
- Busca el dispositivo de la placa de desarrollo en el sistema de archivos
/dev. Puedes limitar la búsqueda especificando el prefijo del dispositivo de la placa de desarrollo. El ESP32 de Espressif usa/dev/ttyUSBx:user@host $ ls /dev/ttyUSB* /dev/ttyUSB0
Configura tu concentrador
Configura tu concentrador con la misma Cuenta de Google que piensas usar para este codelab.
Configura tu entorno de desarrollo
Requisitos previos
Estas instrucciones se probaron en Debian Linux y deberían funcionar en la mayoría de las distribuciones Linux basadas en Debian, incluido Ubuntu. Si trabajas con una distribución de Linux diferente, el procedimiento de configuración de dependencias puede variar con respecto a lo que se indica a continuación.
Instala dependencias
Ejecuta el siguiente comando para instalar los archivos binarios de los paquetes de Linux requeridos que tal vez aún no estén instalados:
$ 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
Configura el SDK
Para continuar con este codelab, necesitarás el SDK de Espressif (el marco de desarrollo de IoT de Espressif o "ESP-IDF").
- Crea un directorio para contener el ESP-IDF:
$ mkdir ~/esp-idf_tools
- Clona el ESP-IDF desde GitHub en este directorio:
$ cd ~/esp-idf_tools $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
- Completa la instalación de la cadena de herramientas:
$ cd ./esp-idf $ ./install.sh $ cd ~/
Configura el SDK de Matter
- Clona el repositorio de Matter de código abierto:
$ git clone https://github.com/project-chip/connectedhomeip.git $ cd ./connectedhomeip $ git fetch origin v1.0-branch $ git checkout FETCH_HEAD
- Recupera los submódulos del repositorio:
$ ./scripts/checkout_submodules.py --shallow --platform esp32
- Inicia el entorno de desarrollo de Matter:
$ source ./scripts/bootstrap.sh
3. Consola para desarrolladores de Google Home
La Consola para desarrolladores de Google Home es la aplicación web en la que administras tus integraciones de Matter con Google Home.
Cualquier dispositivo Matter que haya aprobado la certificación de Matter de Connectivity Standards Alliance (Alliance) funciona en el ecosistema de Google Home. Los dispositivos en desarrollo que no se certificaron se pueden poner en funcionamiento en el ecosistema de Google Home bajo ciertas condiciones. Consulta Restricciones de vinculación para obtener más información.
Crea un proyecto de desarrollador
Para comenzar, ve a Google Home Developer Console:
- Haz clic en Crear proyecto.
- Ingresa un nombre único para el proyecto y, luego, haz clic en Crear proyecto.

- Haz clic en + Agregar integración, que te llevará a la pantalla Recursos de Matter, donde podrás ver la documentación de desarrollo de Matter y leer sobre algunas herramientas.
- Cuando esté todo listo para continuar, haz clic en Siguiente: Desarrollo, que muestra la página Lista de tareas de Matter.
- Haz clic en Siguiente: Configuración.
- En la página Configuración, ingresa el Nombre del producto.
- Haz clic en Seleccionar el tipo de dispositivo y elige el tipo de dispositivo en el menú desplegable (en este caso,
Light). - En ID de proveedor (VID), selecciona VID de prueba y, luego, 0xFFF1 en el menú desplegable VID de prueba. En ID del producto (PID), ingresa 0x8000 y haz clic en Guardar y continuar y, luego, en Guardar en la página siguiente. Usa estos valores exactos de VID/PID, ya que los pasos posteriores del codelab dependen de ellos.

- Ahora verás tu integración en Integraciones de Matter.
- Reinicia la unidad central para asegurarte de que reciba la configuración del proyecto de integración de Matter más reciente. Si debes cambiar el VID o el PID más adelante, también deberás reiniciar el dispositivo después de guardar el proyecto para que el cambio se aplique. Consulta Cómo reiniciar los dispositivos Google Nest o Google Wifi para obtener instrucciones paso a paso sobre el reinicio.
4. Cómo construir el dispositivo
Todos los ejemplos de Matter se encuentran en la carpeta de ejemplos del repositorio de GitHub. Hay varias muestras disponibles, pero en este codelab nos centraremos en lighting-app.
Este ejemplo es un dispositivo simple que aparece en Google Home como una luz de encendido/apagado y responde a los comandos de encendido y apagado. Hacer que controle una luz eléctrica real está fuera del alcance de este codelab.
Configura la compilación
- Configura el SDK de Matter y activa el entorno de compilación de Matter:
$ cd ~/esp-idf_tools/esp-idf $ source export.sh $ cd ~/connectedhomeip $ source ./scripts/activate.sh
- Habilita Ccache, que acelera el proceso de compilación:
$ export IDF_CCACHE_ENABLE=1
- Ve al directorio de compilación de
lighting-appESP32 y configura la arquitectura de destino:$ cd ./examples/lighting-app/esp32 $ idf.py set-target esp32
- Ejecuta la utilidad de configuración:
$ idf.py menuconfig
- Selecciona
Demo -> Device Typey estableceDevice TypeenESP32-DevKitC. - Presiona la tecla de flecha hacia la izquierda para volver al menú de nivel superior.
- Selecciona
Component config --->. - Selecciona
CHIP Device Layer --->. - Selecciona
Device Identification Options --->. - Establece
Vendor IDen el VID asignado por la alianza o en un VID de prueba. - Establece
Product IDen el PID que configuraste en la integración de Matter en la consola para desarrolladores de Google Home. - Presiona S para guardar.
- Presiona Intro para aceptar la ruta de acceso predeterminada en la que se guardará la configuración.
- Presiona Return para descartar el diálogo de confirmación de guardado.
- Presiona Q para salir de la utilidad de configuración.
- Ejecuta la utilidad de configuración:
Ejecuta la compilación
Invoca la secuencia de comandos de compilación:
idf.py build
La compilación debería completarse sin errores.
Programa el dispositivo
- Conecta la placa de desarrollo a la computadora con un cable USB.
- Borra cualquier firmware anterior del dispositivo (si solo tienes una placa para desarrolladores conectada a tu computadora, puedes omitir la opción
-p {device}; el dispositivo se detectará automáticamente):idf.py -p {device} erase-flash - Copia tu nueva aplicación en la placa de desarrollo con el siguiente comando:
idf.py -p {device} flash
Puedes encontrar más información sobre las opciones de escritura en la página de documentación de esptool.py de Espressif.
5. Conéctate al dispositivo
- Abre una ventana de terminal.
- Toma nota del directorio en el que te encuentras y, luego, conéctate a tu nuevo dispositivo Matter con
screende GNU:$ screen -L {device} 115200 - Si ves una consola en blanco, presiona el botón RESET para iniciar el proceso de arranque del dispositivo.
6. Cómo poner en funcionamiento el dispositivo
Nota: Este paso solo se completará correctamente si ya configuraste tu proyecto en Google Home Developer Console.
Nest Hub
Se requiere una unidad central para poner en funcionamiento tu dispositivo en la estructura de Matter. Este es un dispositivo Google Nest, como el Nest Hub (2ª gen.), que admite Matter y que funcionará como router de borde para los dispositivos compatibles con Thread y como ruta de cumplimiento local para enrutar las intenciones de casa inteligente.
Consulta esta lista para ver qué concentradores admiten Matter.
Antes de comenzar el proceso de puesta en marcha, verifica lo siguiente:
- Tu concentrador está vinculado a la misma Cuenta de Google que usaste para acceder a Google Home Console.
- El concentrador está en la misma red Wi-Fi que la computadora que usas para ejecutar tu dispositivo virtual de Matter.
- El dispositivo central está en la misma estructura que usas en la app de Google Home (la "casa" en el Google Home Graph representa tu estructura).
Cómo vincular el dispositivo
Sigue las instrucciones de vinculación del ESP32 para vincular tu dispositivo.
Nota: Si usas un M5STACK, ten en cuenta que la pantalla permanecerá en blanco después de que se escriba el firmware, por lo que deberás ver el código QR con la URL que aparece en la consola. También puedes escribir el código de vinculación manual.
Ejemplo de resultado de la consola que muestra la URL del código QR:
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]]
Solución de problemas
Falla en la puesta en servicio
- Asegúrate de haber creado un proyecto con la combinación correcta de VID/PID en Google Home Console.
- Asegúrate de haber ingresado el VID y el PID correctos en la configuración de compilación.
- Asegúrate de seleccionar el
Device Typecorrecto en la configuración de compilación.
Para obtener más sugerencias de solución de problemas, consulta la página de solución de problemas de Matter.
7. Controlar el dispositivo
Una vez que el dispositivo compatible con Matter se haya puesto en funcionamiento correctamente y aparezca en la app de Google Home como una bombilla, puedes intentar controlarlo con el Asistente de Google, la app de Google Home o el simulador del Asistente de Google en la extensión de Google Home para VS Code.
Asistente de Google
Usa Asistente de Google en tu teléfono o dispositivo central para alternar el estado del dispositivo con comandos por voz, como "Hey Google, alterna mis luces".
Consulta la sección Cómo controlar los dispositivos inteligentes para la casa con comandos por voz en Cómo controlar los dispositivos inteligentes para la casa que se hayan agregado a la app de Google Home para obtener más ejemplos de comandos.
App de Google Home
Puedes presionar las etiquetas Encendido y Apagado junto al ícono de la bombilla que se muestra en la app de Google Home.
Consulta Cómo controlar dispositivos con la app de Google Home para obtener más información.
Simulador del Asistente de Google
En la extensión de Google Home para VS Code, puedes usar el Simulador de Asistente de Google para emitir instrucciones a tu dispositivo con una interfaz similar a un chat.
8. ¡Felicitaciones!
Creaste y pusiste en funcionamiento correctamente tu primer dispositivo Matter. ¡Genial!
En este codelab aprendiste a hacer lo siguiente:
- Instala un entorno de desarrollo de Matter desde los requisitos hasta un estado de funcionamiento.
- Compila y ejecuta un dispositivo Matter.
- Puesta en marcha y control del dispositivo desde Google Home
Para obtener más información sobre Matter, explora estas referencias:
- La Guía básica de Matter de Google Home, en la que aprenderás los conceptos y principios importantes del protocolo Matter
- La especificación de Matter, la biblioteca de dispositivos Matter y la biblioteca de clústeres de aplicaciones Matter, publicadas por la Connected Standard Alliance.
- El repositorio de GitHub de Matter.