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 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 acondicionar y controlar tu dispositivo Matter con Google Home
Requisitos
- Un concentrador, que es cualquier dispositivo Google Nest que admita 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 en serie
El primer paso para configurar tu entorno de desarrollo es determinar a qué puerto en 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 en el sistema de archivos
/devpara encontrar el dispositivo de la placa de desarrollo. Puedes acotar la búsqueda si especificas 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 de Linux basadas en Debian, incluido Ubuntu. Si trabajas con una distribución de Linux diferente, el procedimiento de configuración de dependencias puede variar de lo que sigue.
Instala dependencias
Ejecuta el siguiente comando para instalar los archivos binarios de paquetes de Linux requeridos que 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 framework 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 de 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 hayan certificado se pueden acondicionar en el ecosistema de Google Home en ciertas condiciones. Consulta Restricciones de vinculación para obtener más información.
Crea un proyecto de desarrollador
Para comenzar, ve a la consola para desarrolladores de Google Home:
- Haz clic en Crear proyecto.
- Ingresa un nombre de proyecto único y, luego, haz clic en Crear proyecto.

- Haz clic en + Agregar integración, que te lleva a la pantalla Recursos de Matter, donde puedes ver la documentación de desarrollo de Matter y leer sobre algunas herramientas.
- Cuando estés listo para continuar, haz clic en Siguiente: Desarrollar, 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 tipo de dispositivo y selecciona el tipo de dispositivo en el menú desplegable (en este caso,
Light). - En ID de proveedor (VID), selecciona VID de prueba y elige 0xFFF1 en el menú desplegable VID de prueba. En ID de 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 tu concentrador para asegurarte de que reciba la configuración más reciente del proyecto de integración de Matter. Si debes cambiar el VID o el PID más adelante, también deberás reiniciar 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 de reinicio paso a paso.
4. Compila el dispositivo
Todos los ejemplos de Matter se colocan en la carpeta examples del repositorio de GitHub. Hay varias muestras disponibles, pero nuestro enfoque en este codelab es en el lighting-app.
Este ejemplo es un dispositivo simple que aparece en Google Home como una luz de encendido/apagado, que 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 ESP32
lighting-appy establece 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 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 Alliance 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 Return 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 de desarrollo conectada a tu computadora, puedes omitir la opción
-p {device}. El dispositivo debería detectarse automáticamente):idf.py -p {device} erase-flash - Copia tu nueva aplicación en la placa de desarrollo con:
idf.py -p {device} flash
Puedes encontrar más información sobre las opciones de parpadeo en la página de documentación Espressif esptool.py.
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 GNU
screen:$ screen -L {device} 115200 - Si ves una consola en blanco, presiona el botón RESET para iniciar el proceso de arranque del dispositivo.
6. Acondiciona el dispositivo
Nota: Este paso solo se realizará correctamente si ya configuraste tu proyecto en la consola para desarrolladores de Google Home.
Nest Hub
Se requiere un concentrador para acondicionar tu dispositivo en la estructura de Matter. Este es un dispositivo Google Nest, como el Nest Hub (2ª gen.), que admite Matter y que servirá como un router de borde para dispositivos habilitados para Thread y como una ruta de acceso de fulfillment local para enrutar intents de casa inteligente.
Consulta esta lista para ver qué concentradores admiten Matter.
Antes de comenzar el proceso de acondicionamiento, verifica lo siguiente:
- Tu concentrador está vinculado con la misma Cuenta de Google que usaste para acceder a Google Home Console.
- Tu concentrador está en la misma red Wi-Fi que la computadora que usas para ejecutar tu dispositivo Matter virtual.
- Tu concentrador está en la misma estructura que usas en la app de Google Home. (La "casa" en el Google Home Graph representa tu estructura).
Vincula el dispositivo
Sigue las instrucciones de vinculación de ESP32 para vincular tu dispositivo.
Nota: Si usas un M5STACK, ten en cuenta que su pantalla permanecerá en blanco después de que se flashee, por lo que deberás ver el código QR con la URL que aparece en la consola. O bien, puedes ingresar 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 el acondicionamiento
- 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 haber seleccionado el
Device Typecorrecto en la configuración de compilación.
Para obtener más sugerencias de solución de problemas, consulta la página Solución de problemas de Matter.
7. Controla el dispositivo
Una vez que tu dispositivo compatible con Matter se acondicione 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 el Asistente de Google en tu teléfono o concentrador para activar o desactivar el estado del dispositivo con comandos de voz, como "Hey Google, activa o desactiva mis luces".
Consulta la sección Controla dispositivos inteligentes para la casa con comandos de voz de Cómo controlar los dispositivos de casa inteligente 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 On y Off junto al ícono de 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, con el simulador del Asistente de Google, puedes emitir expresiones a tu dispositivo con una interfaz similar a un chat.
8. ¡Felicitaciones!
Creaste y acondicionaste correctamente tu primer dispositivo Matter. Excelente.
En este codelab aprendiste a hacer lo siguiente:
- Instalar un entorno de desarrollo de Matter desde los requisitos hasta un estado de funcionamiento
- Compilar y ejecutar un dispositivo Matter
- Acondicionar y controlar tu dispositivo desde Google Home
Para obtener más información sobre Matter, explora estas referencias:
- El Matter Primer de Google Home, donde 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.