Domótica con IA: cómo crear un hogar inteligente que realmente funcione
He instalado hogares inteligentes para mí y para mis clientes. El patrón es casi siempre el mismo: alguien compra un montón de dispositivos de diferentes marcas, los conecta a tres aplicaciones diferentes y, en seis meses, la mitad deja de funcionar porque una actualización del firmware ha estropeado algo, un servicio en la nube ha cerrado o el puente Wi-Fi que lo conectaba todo ha dejado de funcionar.
La promesa de un hogar inteligente es atractiva. La realidad, para la mayoría de la gente, es una colección de aparatos caros que funcionan de forma intermitente y requieren una atención constante. Después de años lidiando con esto, dejé de comprar productos de consumo para el hogar inteligente y construí mi propio sistema a partir de componentes de código abierto. Funciona en un servidor remoto en contenedores Docker, se comunica a través de MQTT e integra IA para automatizaciones que van más allá de las simples reglas «si... entonces».
Así es como funciona y cómo puedes construir lo mismo.
Por qué fracasan la mayoría de los hogares inteligentes
Hay tres problemas que acaban con la mayoría de las configuraciones de hogares inteligentes:
Dependencia del proveedor. Si compras un puente Philips Hue, tus luces solo se comunican de forma nativa con el ecosistema de Philips Hue. Si añades un timbre Ring, necesitarás una segunda aplicación. Si añades algunos sensores Aqara, necesitarás un tercer concentrador. Cada fabricante quiere que quedes atrapado en su ecosistema. Los dispositivos de diferentes marcas no se comunican bien entre sí, y las integraciones que existen son soluciones frágiles y dependientes de la nube.
Dependencia de la nube. La mayoría de los dispositivos domésticos inteligentes para consumidores dirigen todo a través de los servidores en la nube del fabricante. Tu interruptor de luz se comunica con un servidor en China, que se comunica con un servidor en EE. UU., que envía un comando de vuelta a tu interruptor de luz. Cuando se cae tu conexión a Internet, tu hogar inteligente se convierte en un hogar tonto. Cuando el fabricante cierra o deja de fabricar la línea de productos, tu hardware se convierte en basura electrónica. Esto ha ocurrido repetidamente: ¿recuerdas cuando Google eliminó Works with Nest?
Ecosistemas propietarios que se rompen. Las actualizaciones automáticas de firmware cambian el comportamiento sin previo aviso. Las API quedan obsoletas. Los productos pierden funciones en nombre de la «simplificación». No tienes visibilidad de lo que está sucediendo, ni capacidad para solucionarlo, ni alternativa cuando las cosas van mal.
El problema fundamental: usted no es propietario del sistema. Está alquilando el acceso a la plataforma de otra persona, y esta puede cambiar las condiciones en cualquier momento.
La pila: Home Assistant + ESPHome + MQTT
Mi solución utiliza tres componentes de código abierto que abordan todos los puntos de fallo mencionados anteriormente. Si te interesa crear una infraestructura de servidor robusta, esta es la pila que debes aprender.
Home Assistant es el cerebro. Es una plataforma de domótica de código abierto con más de 2000 integraciones. Se ejecuta localmente, procesa todo en tu hardware y no depende de ningún servicio en la nube. Tus automatizaciones funcionan incluso cuando no hay conexión a Internet. La comunidad es enorme: si existe un dispositivo, es probable que alguien haya escrito una integración para él.
ESPHome gestiona hardware personalizado. Te permite programar microcontroladores ESP32 y ESP8266 utilizando sencillos archivos de configuración YAML. Una placa ESP32 de 4 $ más un sensor de temperatura de 2 $ se convierten en un dispositivo conectado que envía informes a Home Assistant a través de tu red local. Sin nube. Sin suscripción. Sin fabricantes que puedan quebrar. Usted escribe un archivo YAML que describe lo que hace el dispositivo, ESPHome lo compila en firmware y usted lo actualiza a través de Wi-Fi.
MQTT (Mosquitto) es la columna vertebral de la comunicación. Es un protocolo de mensajería ligero de publicación-suscripción diseñado para dispositivos IoT. Los dispositivos publican los datos de los sensores en temas, y Home Assistant se suscribe a esos temas. El sistema está desacoplado: si Home Assistant se reinicia, los dispositivos siguen publicando. Cuando HA vuelve a estar en línea, continúa donde lo dejó. MQTT gestiona miles de mensajes por segundo con un hardware mínimo.
Home Assistant
Motor de automatización. Más de 2000 integraciones. Interfaz de usuario con panel de control. Procesamiento local, sin dependencia de la nube.
ESPHome
Dispositivos personalizados. Configuración YAML. Actualizaciones OTA. Convierte microcontroladores de 4 $ en sensores y interruptores inteligentes.
Mosquitto MQTT
Corredor de mensajes. Protocolo pub-sub ligero. Gestiona miles de mensajes por segundo. Resistente a los reinicios del servicio.
Implementación de Docker en un VDS
La mayoría de los tutoriales de Home Assistant te dicen que lo ejecutes en una Raspberry Pi en casa. Eso funciona para hacer pruebas, pero no es fiable para un sistema del que dependes. La Pi puede sobrecalentarse, la tarjeta SD puede dañarse y, si tu red doméstica se cae, pierdes el acceso a todo.
Yo ejecuto toda mi pila en contenedores Docker en un VDS Contabo con 6 núcleos de CPU y 12 GB de RAM. El docker-compose.yml define tres servicios:
- Home Assistant: la plataforma de automatización y el panel de control, expuestos en el puerto 8123.
- ESPHome: el panel de control de gestión de dispositivos, expuesto en el puerto 6052.
- Mosquitto: el bróker MQTT, que escucha en el puerto 1883 con autenticación.
Docker Compose hace que esto sea muy fácil de gestionar. docker-compose up -d lo inicia todo. docker-compose pull && docker-compose up -d actualiza los tres servicios. Si un contenedor se bloquea, Docker lo reinicia automáticamente. Todo el sistema se puede reconstruir a partir del archivo compose en cuestión de minutos.
Ejecutarlo en un VDS en lugar de en hardware local te proporciona separación geográfica: tu casa podría quedarse sin electricidad y tu sistema de automatización seguiría conectado. También te ofrece un rendimiento constante, un almacenamiento fiable (sin fallos de tarjetas SD) y un cortafuegos real. Bloqueo UFW para permitir solo los puertos que necesito, y SSH es solo clave en un puerto no estándar. Si quieres saber más sobre este tipo de arquitectura de servidor, he documentado los patrones que utilizo en múltiples proyectos.
Integración de IA: más allá de las automatizaciones simples
El modelo básico de automatización de Home Assistant es sencillo: cuando se detecta movimiento, se enciende la luz. Cuando la temperatura baja de 68, se enciende la calefacción. Son útiles, pero no son inteligentes, solo son activadores condicionales.
La integración de la IA es donde las cosas se ponen realmente interesantes, y se vincula directamente con los sistemas de IA que construyo para otros proyectos:
Conciencia del contexto impulsada por sensores. En lugar de un único sensor de movimiento que activa una única luz, se combinan los datos de varios sensores (movimiento, nivel de luz ambiental, hora del día, estado de la puerta, temperatura) y se deja que un modelo de aprendizaje automático determine la respuesta adecuada. ¿La habitación está a oscuras y alguien acaba de entrar a las 11 de la noche? Atenúa las luces al 20 %, no al 100 %. ¿Es martes por la mañana y la puerta principal se ha abierto a las 7:45? Esa es la hora habitual de salida, así que activa el sistema de seguridad y baja el termostato.
Comportamiento predictivo. Después de recopilar datos de los sensores durante unas semanas, el reconocimiento de patrones se vuelve muy potente. El sistema aprende a qué hora suele levantarse, cuándo sale y cuándo regresa. Puede precalentar una habitación antes de que llegue, ajustar las persianas en función de la posición del sol y su horario, o señalar actividades inusuales. Una puerta que se abre a las 3 de la madrugada, cuando se supone que no hay nadie en casa, no es solo un evento del sensor de la puerta, es una anomalía que desencadena una respuesta diferente a la de una puerta que se abre a las 3 de la tarde.
Control de voz local. Los asistentes de voz basados en la nube envían cada palabra que dices a servidores remotos. Con Home Assistant y herramientas como Rhasspy o Wyoming, el procesamiento de voz se realiza íntegramente en tu red local. Tus comandos de voz nunca salen de tu casa. Privacidad sin renunciar a la comodidad.
El procesamiento de la IA se ejecuta localmente en el mismo VDS que aloja Home Assistant, utilizando la CPU del servidor para la inferencia. Ningún dato sale de tu infraestructura. Este es el mismo principio que subyace a los servicios de automatización que creo para las empresas: mantener los datos locales, mantener el procesamiento rápido y mantener el sistema bajo tu control.
Ejemplo real: el proyecto SyncSita
SyncSita es mi sistema personal de automatización del hogar creado sobre esta misma pila. Ejecuta Home Assistant, ESPHome y Mosquitto en Docker en un VDS Contabo con 6 núcleos, 12 GB de RAM y 200 GB de almacenamiento SSD.
La pieza clave que hace que funcione desde cualquier lugar es Cloudflare Tunnels. En lugar de abrir puertos en el firewall del servidor (un riesgo para la seguridad), Cloudflare crea un túnel cifrado de salida desde el VDS a la red periférica de Cloudflare. El resultado:
connect.syncsita.com— Acceso seguro al panel de control de Home Assistant desde cualquier parte del mundo.esphome.syncsita.com— gestión remota de dispositivos, compilación de firmware y actualizaciones OTA
No es necesario abrir puertos de firewall entrantes. El VDS está reforzado con UFW, que bloquea todo excepto el túnel Cloudflare y SSH. SSL se gestiona mediante un certificado de origen de Cloudflare. El sistema lleva meses funcionando de forma ininterrumpida sin tiempo de inactividad.
En cuanto a los dispositivos, tengo placas ESP32 con firmware ESPHome en toda la casa, que informan de la temperatura, la humedad, el movimiento y el estado de las puertas y ventanas a través de MQTT al broker Mosquitto. Home Assistant se suscribe a esos temas y ejecuta automatizaciones basadas en los datos combinados de los sensores. La configuración de nuevos dispositivos tarda unos 15 minutos: se escribe una configuración YAML, se compila, se actualiza a través de Wi-Fi y el dispositivo aparece automáticamente en Home Assistant.
Lista de verificación para empezar
Si quieres crear algo similar, aquí tienes los pasos prácticos:
- Consigue un VDS. Contabo, DigitalOcean, Vultr... cualquier proveedor con al menos 4 núcleos y 8 GB de RAM. Presupuesta entre 10 y 15 dólares al mes.
- Instala Docker y Docker Compose. Son la base de tu implementación. Todos los servicios se ejecutan en un contenedor.
- Implemente primero Mosquitto. Configure el bróker MQTT con autenticación. Pruébelo con un cliente MQTT de línea de comandos antes de añadir nada más.
- Implementa Home Assistant. La versión Docker (HA Core) se ejecuta en un contenedor. Empieza con la interfaz de usuario web y añade algunas automatizaciones básicas.
- Implementa ESPHome. Configura el panel de control y, a continuación, compra algunas placas ESP32 y sensores. Empieza con algo sencillo: un sensor de temperatura/humedad es un buen primer proyecto.
- Configura Cloudflare Tunnels para un acceso remoto seguro sin abrir puertos del firewall.
- Añada dispositivos gradualmente. Cada nuevo sensor o interruptor requiere una configuración YAML de 15 minutos. No intente automatizar todo a la vez.
- Recopile datos y luego automatice. Deje que el sistema recopile datos de los sensores durante unas semanas antes de crear automatizaciones complejas. Los patrones se harán evidentes una vez que tenga los datos.
Todo el conjunto cuesta menos de 50 dólares para empezar: un VDS barato, unas cuantas placas ESP32 y algunos sensores. Sin suscripciones, sin dependencias de la nube, sin dependencia de un proveedor. Solo la infraestructura que usted posee y controla.
Una casa inteligente que realmente funcione requiere dos cosas: control local y estándares abiertos. Home Assistant + ESPHome + MQTT te ofrece ambas cosas. Ejecutarlo en Docker en un VDS te proporciona fiabilidad. Y añadir IA te ofrece automatizaciones que son realmente inteligentes, no solo reactivas. El esfuerzo inicial es real, pero el resultado es un sistema que funciona de forma fiable durante años sin depender del servicio en la nube de una sola empresa.