Ir al contenido principal

Cómo Integrar Dispositivos Xiaozhi AI como Satélites de Voz en Home Assistant

8 min

Integra dispositivos Xiaozhi AI con ESPHome como satélites de voz en Home Assistant. Asistente de voz local, personalizable y sin depender de la nube. Guía completa con instalación paso a paso.

📧¿Te gusta este contenido?

Únete a 547+ profesionales que reciben tips de IA cada semana. Sin spam, cancela cuando quieras.

Integrando Xiaozhi AI con ESPHome para Home Assistant: Arquitectura, retos y aprendizajes

La domótica doméstica avanza a pasos agigantados, pero lograr que distintos dispositivos hablen el mismo “idioma” sigue siendo un desafío para muchos entusiastas y desarrolladores. En el ecosistema Home Assistant, la integración de asistentes de voz satélite personalizados abre la puerta a experiencias realmente adaptadas a cada usuario y espacio del hogar. En este post comparto cómo desarrollé ziaozhi-esphome: una solución para convertir dispositivos Xiaozhi AI en satélites de voz totalmente integrados con Home Assistant, usando ESPHome como puente.

Repositorio en GitHub de ziaozhi-esphome

¿Estás pensando llevar este tipo de asistentes de voz locales a un hotel, oficina, clínica o coworking? Diseño integraciones IA + voz + Home Assistant para empresas que necesitan privacidad total (cero datos en la nube). Cuéntame el caso →


🧐 Contexto y motivación

En mi experiencia configurando casas inteligentes, noté que si bien existen asistentes de voz comerciales (Alexa, Google Home), sus opciones de personalización y control de datos son limitadas. Además, dispositivos más asequibles o alternativos —como los Xiaozhi AI basados en ESP32— quedaban relegados por falta de integraciones robustas.

La comunidad de Home Assistant y ESPHome ha crecido muchísimo, pero no había una solución sencilla para usar Xiaozhi AI como satélites de voz descentralizados. Algunos de los retos eran:

  • Integración directa con Home Assistant sin hacks ni configuraciones manuales excesivas.
  • Posibilidad de personalizar el comportamiento y el procesamiento de voz.
  • Mantener un flujo de instalación simple y accesible para makers y usuarios intermedios.

Así nació ziaozhi-esphome: un proyecto para “democratizar” el acceso a asistentes de voz personalizados y modulares en el hogar.


🏛️ Arquitectura y enfoque técnico

1. Componentes principales

La solución se apoya en tres pilares tecnológicos:

  • ESPHome: Framework que permite definir la lógica de dispositivos ESP32/ESP8266 mediante YAML, facilitando su integración con Home Assistant.
  • Dispositivos Xiaozhi AI: Hardware compacto y asequible, basado en ESP32, con micrófono incorporado y capacidad de procesamiento local.
  • Home Assistant: Plataforma central de automatización y control del hogar.

Diagrama general

code
1[Usuario]
2 ⇅ Voz
3[Xiaozhi AI c/ ESPHome]
4 ⇅ WiFi (MQTT/API)
5[Home Assistant]
6
7[Automatizaciones / Control central]

  • Xiaozhi AI actúa como punto de captura de voz y comandos.
  • ESPHome se encarga de la conexión, gestión de firmware y comunicación.
  • Home Assistant recibe eventos y procesa las acciones.


2. Decisiones técnicas clave

a) Uso de ESPHome como “puente universal”

Elegí ESPHome porque:

  • Permite actualizaciones OTA (over-the-air).
  • Es ampliamente adoptado en la comunidad Home Assistant.
  • Admite personalizaciones avanzadas (automatizaciones locales, sensores, triggers, etc.).
  • Tiene soporte activo y documentación sólida.

b) Abstracción de configuración

Quise que el usuario final no tuviera que modificar código fuente ni lidiar con configuraciones complejas. Por eso, basé la integración en la edición y despliegue de archivos YAML a través de la interfaz de ESPHome Web, permitiendo cambiar solo lo esencial (nombre del dispositivo, WiFi, opciones extra).

c) Interoperabilidad y modularidad

El proyecto debía ser agnóstico en cuanto a la versión de Home Assistant y compatible con futuras actualizaciones de ESPHome. Por eso, evité dependencias “raras” y me apoyé en los componentes core de ambas plataformas.


🛠️ Componentes del sistema y snippets clave

1. Configuración de ESPHome para Xiaozhi AI

Un punto central es la plantilla YAML personalizada para Xiaozhi. Incluye:

  • Configuración WiFi y OTA.
  • Sensores de estado (online/offline).
  • Integración con el asistente de voz de Home Assistant.
  • Comandos personalizados.

Ejemplo de snippet:

yaml
1esphome:
2 name: xiaozhi_voice_satellite
3 friendly_name: "Xiaozhi Satélite Salón"
4 
5esp32:
6 board: esp32dev
7 
8wifi:
9 ssid: !secret wifi_ssid
10 password: !secret wifi_password
11 
12api:
13 encryption:
14 key: !secret api_key
15 
16ota:
17 password: !secret ota_pass
18 
19voice_assistant:
20 id: assistant_salon
21 microphone:
22 i2s_adc:
23 id: mic_adc
24 ...
25 tts:
26 platform: google_cloud
27 api_key: !secret google_api_key

Esta configuración permite que el dispositivo capture audio, lo envíe a Home Assistant para su procesamiento (usando Rhasspy, por ejemplo) y reciba respuestas TTS.


2. Integración con Home Assistant

  • Una vez encendido y conectado, el Xiaozhi aparece como nuevo dispositivo en Home Assistant.
  • Se asocia automáticamente como satélite de voz y puede asignarse a una habitación/zona.
  • El flujo de comandos por voz queda centralizado, pero cada dispositivo puede tener automatizaciones locales, por ejemplo:

- Encender una luz si detecta un comando específico.

- Enviar notificaciones si se detecta ruido anómalo.


🧩 Challenges técnicos y cómo los resolví

1. Compatibilidad de hardware (Xiaozhi AI + ESPHome)

No todos los Xiaozhi AI estaban 100% documentados. Algunos modelos traían variantes en el pinout del micrófono o el DAC. Para solucionarlo:

  • Mapée manualmente los pines de varios modelos con multímetro y pruebas.
  • Definí “profiles” de hardware en la documentación del proyecto, con ejemplos YAML para cada variante.
  • Fomenté la colaboración de la comunidad para reportar y validar configuraciones nuevas.

2. Instalación inicial y actualizaciones OTA

El primer “flash” del firmware era complejo para usuarios sin experiencia:

  • Documenté paso a paso el uso de ESPHome Web.
  • Añadí recordatorios/descripciones sobre la necesidad de flasheo USB la primera vez (por el cambio de tabla de particiones).
  • Una vez instalado, todas las actualizaciones se pueden hacer de forma inalámbrica, simplificando la experiencia.

3. Latencia y calidad de audio

Transmitir audio por WiFi puede generar latencia o cortes:

  • Ajusté buffers y tasas de muestreo en la configuración I2S.
  • Recomiendo redes WiFi estables y routers con buena cobertura.
  • Incluí opciones para priorizar comandos críticos localmente en el ESP32 si el enlace se cae.

4. Privacidad y seguridad

Al ser dispositivos que capturan audio, prioricé:

  • Uso de API encriptado y contraseñas seguras.
  • Opciones para activar/desactivar la captura de audio con botón físico o comando desde Home Assistant.
  • Documentación sobre qué datos se transmiten y cómo proteger la red.


📊 Resultados e impacto

Desde la publicación del proyecto:

  • Más de 150 descargas del YAML base en la primera semana.
  • Feedback positivo de usuarios en Europa y LATAM, agradeciendo la facilidad de integración y la posibilidad de crear asistentes de voz “DIY” realmente funcionales.
  • Se han creado variantes para Xiaozhi AI con sensores ambientales y displays, ampliando el ecosistema.

Algunos casos de uso reales:

  • Habitación infantil: Comandos de voz para música y luces, sin micrófonos “siempre activos” de grandes empresas.
  • Cocina: Timer por voz y control de electrodomésticos inteligentes.
  • Espacios de trabajo: Automatización de escenas con mensajes personalizados.


🧠 Aprendizajes y mejoras futuras

Lo que aprendí

  • La importancia de documentar bien cada paso y variante de hardware.
  • Cómo pequeñas decisiones de UX (como automatizar la detección en Home Assistant) marcan la diferencia.
  • El valor de la comunidad: recibí patches y mejoras de usuarios que probaron en modelos que ni conocía.

Próximos pasos

  • Añadir integración nativa de wake-word para activación local (sin depender totalmente de Home Assistant).
  • Mejorar la gestión de ruido ambiente y calidad de audio con DSP en el firmware.
  • Facilitar aún más la configuración, quizás con un asistente gráfico para generar YAMLs personalizados.
  • Explorar integraciones con otros asistentes open source como Rhasspy o Wyoming.


🚀 Conclusión

Integrar dispositivos Xiaozhi AI con ESPHome y Home Assistant permite llevar la personalización y el control del hogar inteligente a otro nivel, sin depender de soluciones propietarias ni grandes inversiones. Si además quieres videovigilancia local, puedes integrar cámaras Ezviz en Home Assistant sin nube, o incluso usar Claude Code para Home Assistant para automatizar configuraciones con IA. El proyecto ziaozhi-esphome demuestra que, con las herramientas adecuadas y una comunidad activa, es posible construir asistentes de voz distribuidos, privados y adaptados a cada hogar.

¿Te gustaría colaborar, reportar un bug o aportar una nueva variante de hardware? ¡Échale un vistazo al repo en GitHub y súmate a la conversación!


¿Lo quieres montar en tu empresa, hotel o clínica?

Este tutorial es para makers. Pero si necesitas desplegar asistentes de voz 100% locales (sin Alexa, sin Google, sin enviar conversaciones fuera) en oficinas, hoteles, coworkings, clínicas o retail — hay un salto entre el YAML y una instalación profesional:

  • Elección de hardware (Xiaozhi, M5 Stack, ReSpeaker, etc.) según presupuesto y acústica
  • Integración con tu CRM, reservas, punto de venta o IoT existente
  • Modelo IA local (Ollama/LLama/Whisper) con tus propios comandos y contexto
  • Formación interna y mantenimiento

Si ese es tu caso, escríbeme:


¡Gracias por leer! Si tienes dudas, sugerencias o simplemente te apasiona la domótica, déjame un comentario o contáctame vía GitHub. Seguimos construyendo el futuro del hogar, un YAML a la vez. 😊

¿Crees que estás sacando partido a la IA en tu empresa?

Si la respuesta no es un sí rotundo, te estás dejando horas, dinero y ventaja competitiva cada día que pasa. Mientras tú lo valoras, tu competencia ya lo está usando para moverse el doble de rápido.

Te implemento un sistema de IA que ahorra tiempo, reduce costes y aumenta ingresos: 100% adaptado a tu stack, tus datos y tus procesos. En 4-8 semanas tienes una primera versión funcionando, no dentro de seis meses.

📬

¿Te ha gustado? Hay más cada semana

Únete a "IA Sin Humo" — la newsletter donde comparto lo que realmente funciona en inteligencia artificial. Sin teoría innecesaria, sin postureo.

📚

1 Tutorial

Paso a paso, práctico

🛠️

3 Herramientas

Probadas y útiles

💡

0 Bullshit

Solo lo que importa

+547 suscriptores • Cada martes • Cancela cuando quieras

Javier Santos - Especialista en IA & Machine Learning

Javier Santos

Consultor de IA para empresas. Comparto contenido sobre inteligencia artificial, automatización y desarrollo cada semana.