Hoy vamos a integrar M5StackChan en Home Assistant, probablemente el dispositivo con más personalidad que hemos probado.
Índice
M5Stack Chan
El M5StackChan es un dispositivo pensado para ser un simpático asistente de escritorio con inteligencia artificial, con las siguientes características:
- El controlador del dispositivo es un CoreS3, que corre sobre una placa ESP32-S3, con 16 MB de memoria y 8 MB de PSRAM.
- El controlador incorpora una pantalla táctil de 2″ (320×240 píxeles), cámara de 0,3 MP, sensor de proximidad y luz ambiental, IMU de 9 ejes (acelerómetro + giroscopio + magnetómetro), ranura para tarjeta microSD, altavoz de 1 W y micrófonos duales.
- Además, el cuerpo del robot incorpora una batería de 550 mAh, dos servomotores con retroalimentación (rotación continua de 360 grados en el eje horizontal y movimiento de 90 grados en el eje vertical) y dos filas con un total de 12 LED RGB.
- También dispone de transmisor y receptor de infrarrojos, un panel táctil de tres zonas y un módulo NFC con todas las funciones.

Firmware oficial
Además, antes de integrar M5StackChan en Home Assistant, merece la pena explorar el firmware de fábrica. Nada más encenderlo (pulsando el botón en el lateral izquierdo) te pedirá que hagas un test del servo.
Luego te pedirá que instales la aplicación StackChan World, para crear una cuenta, añadir tu dispositivo y conectarlo a tu red WiFi (2.4GHz).
A partir de aquí puedes jugar con la aplicación, para configurarlo como asistente de IA o utilizar sus miniapplicaciones.
Integración en Home Assistant
Ahora sí, vamos a integrar M5StackChan en Home Assistant siguiendo estos pasos:
- Conecta el dispositivo a tu ordenador, por el puerto USB-C de la parte inferior.
- Entra en esta página de la documentación oficial de M5Stack y pulsa en el enlace «Online Flashing for Voice Assistant Firmware».
- Selecciona tu dispositivo en la ventana emergente y pulsa en «Install StackChan Voice Assistant».
- Cuando termine, conéctalo a tu red WiFi (2.4 GHz) y luego pulsa en «Add to Home Assistant». Como siempre, te recomiendo que asignes una IP fija en tu router para evitar fallos en el futuro si esta cambia.
- Esto te llevará al apartado Configuración > Dispositivos y servicios de tu instancia, donde tendrás que aceptar configurarlo como dispositivo de ESPHome. En el campo ‘Host’ tendrás que indicar la IP que se ha asignado al dispositivo (puedes localizarla en la configuración de tu router o utilizando Advanced IP Scanner).
- Hecho esto, arrancará el asistente de configuración de Assist. En este momento, te recomiendo que cambies la palabra de activación a «OK Nabu», ya que es la que mejor funciona.
- Una vez finalice la configuración, ya puedes ir a tu dispositivo dentro del bloque de ESPHome en el panel de integraciones para encontrar todas sus entidades, incluyendo el servomotor.

Personalización como Wall·E
Y el toque final para terminar de integrar M5StackChan en Home Assistant es elegir una carcasa que le dé aún más personalidad. Personalmente, desde que lo vi moverse, supe que tenía que ser una réplica del simpático Wall·E de Disney.
Si te gusta, también puedes descargar mi diseño (encargárselo a La R3D)!



Personalización de sus movimientos
Otra cosa que puedes hacer para darle un toque gracioso a tu asistente, es hacer que se enciendan los LED y que te mire cuando le llamas. Esto es fácil, ya que tienes ambos componentes expuestos en Home Assistant.
Por ejemplo, a continuación te dejo el código de una automatización que, cuando el estado del asistente pasa a escuchando, enciende los LEDs en amarillo y gira el dispositivo hacia arriba y luego a la derecha. Una vez que procesa el comando, apaga los LED y vuelve a su posición original.
alias: Wall-E
description: ''
triggers:
- trigger: state
entity_id:
- assist_satellite.wall_e_4d3b84_assist_satellite
to:
- listening
id: Listening
- trigger: state
entity_id:
- assist_satellite.wall_e_4d3b84_assist_satellite
to:
- idle
id: Idle
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id:
- Listening
sequence:
- action: number.set_value
metadata: {}
target:
entity_id:
- number.wall_e_4d3b84_servo_y_angle
data:
value: '30'
- action: number.set_value
metadata: {}
target:
entity_id:
- number.wall_e_4d3b84_servo_x_angle
data:
value: '-30'
- action: light.turn_on
metadata: {}
target:
entity_id:
- light.wall_e_4d3b84_stackchan_light_bar
data:
rgb_color:
- 254
- 239
- 72
- action: light.turn_on
metadata: {}
data: {}
target:
entity_id:
- light.wall_e_4d3b84_lcd_backlight
- conditions:
- condition: trigger
id:
- Idle
sequence:
- action: number.set_value
metadata: {}
target:
entity_id:
- number.wall_e_4d3b84_servo_y_angle
- number.wall_e_4d3b84_servo_x_angle
data:
value: '0'
- action: light.turn_off
metadata: {}
target:
entity_id:
- light.wall_e_4d3b84_lcd_backlight
- light.wall_e_4d3b84_stackchan_light_bar
data: {}
mode: single
No obstante, esta es solo una idea para inspirarte. Por ejemplo, puedes hacer que se encienda en azul cuando acaba la lavadora, o que se mueva de lado a lado cuando llaman a la puerta.

