Como Controlar Home Assistant con LLMs: GPT-4, Claude y Lenguaje Natural en 2026
TL;DR - Resumen Rapido
- LLM HomeAssistant es una integracion gratuita que conecta GPT-4 (o cualquier LLM compatible) con Home Assistant
- Control por voz real: no solo responde preguntas, ejecuta acciones con function calling
- Crea automatizaciones conversando: "Si llueve, cierra las persianas" → genera el YAML automaticamente
- 7 tipos de funciones: execute_service, add_automation, get_history, rest, scrape, sqlite, composite
- Compatible con modelos locales: funciona con LocalAI, Ollama y LM Studio para privacidad total
- Codigo abierto: github.com/ESJavadex/llm-homeassistant
Que Es LLM HomeAssistant y Por Que Lo Necesitas?
Home Assistant ya tiene una integracion oficial de OpenAI Conversation, pero es limitada. Solo puede responder preguntas y mantener conversaciones basicas. No puede ejecutar servicios, crear automatizaciones ni consultar el historial de tus dispositivos.
LLM HomeAssistant resuelve esto. Es un custom component que extiende la integracion oficial de OpenAI con capacidades avanzadas:
- Ejecuta servicios de Home Assistant directamente desde la conversacion
- Crea automatizaciones describiendolas en lenguaje natural
- Consulta APIs externas y paginas web
- Accede al historial de estados de cualquier entidad
- Consulta la base de datos SQLite con preguntas naturales
Segun Home Assistant (febrero 2026), la plataforma tiene mas de 500.000 instalaciones activas y soporta mas de 2.800 integraciones. LLM HomeAssistant anade una capa de inteligencia conversacional sobre todas ellas.
LLM HomeAssistant vs Alternativas: Comparativa
| Caracteristica | LLM HomeAssistant | OpenAI Conversation (oficial) | Google Home | Alexa |
|---|---|---|---|---|
| Ejecuta servicios | Si - cualquiera | No | Limitado | Limitado |
| Crea automatizaciones | Si - por voz | No | No | No |
| Consulta historial | Si | No | No | No |
| APIs externas | Si (REST, scrape) | No | No | Skills limitados |
| Consulta SQL | Si | No | No | No |
| Modelos compatibles | GPT-4, locales, Azure | Solo OpenAI | Google LLMs | Amazon LLMs |
| Privacidad | Configurable (local posible) | Solo nube | Solo nube | Solo nube |
| Coste | API + gratis (local) | API OpenAI | Gratis (limitado) | Gratis (limitado) |
| Open source | Si (MIT) | Si (HA Core) | No | No |
Como Funciona: Function Calling Explicado
La magia de LLM HomeAssistant esta en el function calling de OpenAI. Cuando le hablas al asistente, el LLM no solo genera texto como respuesta: decide que funcion ejecutar y con que parametros.
Flujo Completo
1Tu: "Enciende las luces del salon al 70%"2 ↓3┌─────────────────────────────────┐4│ 1. LLM recibe tu mensaje │5│ 2. Analiza intento │6│ 3. Decide: execute_service │7│ 4. Parametros: │8│ - domain: light │9│ - service: turn_on │10│ - entity_id: light.salon │11│ - brightness_pct: 70 │12│ 5. Ejecuta en Home Assistant │13│ 6. Responde: "Luces del salon │14│ encendidas al 70%" │15└─────────────────────────────────┘16 ↓17Home Assistant ejecuta light.turn_on
El LLM ya sabe como funcionan los servicios de Home Assistant. Solo necesita saber que dispositivos tienes, que es lo que configuras al exponer entidades.
Tutorial de Instalacion Paso a Paso
Paso 1: Instalar la Integracion
Opcion A: Via HACS (Recomendado)
- Abre HACS en Home Assistant
- Ve a Integrations > Explore & Download Repositories
- Busca "LLM HomeAssistant"
- Haz clic en Download
- Reinicia Home Assistant
Opcion B: Manual
1# Copiar la carpeta al directorio de custom_components2cd /config/custom_components/3git clone https://github.com/ESJavadex/llm-homeassistant.git llm_homeassistant4# Reiniciar Home Assistant
Paso 2: Configurar la Integracion
- Ve a Settings > Devices & Services
- Haz clic en Add Integration
- Busca "LLM HomeAssistant"
- Introduce tu API Key de OpenAI
- Configura el modelo (GPT-4 recomendado)
- Si usas un servidor compatible (LocalAI, Ollama), especifica la Base URL
Paso 3: Asignar como Agente Conversacional
- Ve a Settings > Voice Assistants
- Haz clic en Edit sobre tu asistente
- En Conversation agent, selecciona LLM HomeAssistant
Paso 4: Exponer Entidades
Este paso es critico. El LLM solo puede controlar entidades que tu expongas explicitamente:
- Ve a
/config/voice-assistants/expose - Selecciona las entidades que quieres que el LLM pueda controlar
- Recomendacion: empieza con pocas y ve anadiendo
Paso 5: Probar
Abre el asistente de voz y di:
1"Enciende la luz del salon"
Si todo esta bien configurado, la luz se encendera y el asistente confirmara la accion.
Las 7 Funciones de LLM HomeAssistant
1. execute_service - Ejecutar Servicios
La funcion mas basica y potente. Permite ejecutar cualquier servicio de Home Assistant.
1# Configuracion (viene por defecto)2- spec:3 name: execute_services4 description: Use this function to execute service of devices in Home Assistant.5 parameters:6 type: object7 properties:8 list:9 type: array10 items:11 type: object12 properties:13 domain:14 type: string15 service:16 type: string17 service_data:18 type: object19 properties:20 entity_id:21 type: string
Ejemplos de uso:
- "Enciende todas las luces de la casa"
- "Sube la persiana del dormitorio al 50%"
- "Pon la calefaccion a 22 grados"
- "Activa la aspiradora Roomba"
2. add_automation - Crear Automatizaciones
Crea automatizaciones de Home Assistant describiendo lo que quieres en lenguaje natural.
1- spec:2 name: add_automation3 description: Use this function to add an automation in Home Assistant.4 parameters:5 type: object6 properties:7 automation_config:8 type: string9 description: A configuration for automation in valid yaml format.10 function:11 type: native12 name: add_automation
Ejemplos de uso:
- "Crea una automatizacion para que las luces se enciendan al atardecer"
- "Avisa al movil cuando la puerta del garaje lleve abierta mas de 10 minutos"
- "Enciende la calefaccion si la temperatura baja de 18 grados y estoy en casa"
3. get_history - Consultar Historial
Accede al historial de estados de cualquier entidad.
Ejemplos de uso:
- "Que temperatura habia en el salon ayer a las 15h?"
- "Cuantas veces se abrio la puerta principal esta semana?"
- "Muestra el consumo electrico de las ultimas 24 horas"
4. rest - Llamar APIs Externas
Obtiene datos de cualquier API REST.
Ejemplos de uso:
- "Que tiempo hara manana?" (usando API de meteorologia)
- "Cual es el precio de la luz ahora?" (API de Red Electrica)
5. scrape - Extraer Datos de Webs
Raspa informacion de paginas web.
Ejemplos de uso:
- "Cual es la ultima version de Home Assistant?"
- "Que dice el titular de El Pais hoy?"
6. sqlite - Consultar Base de Datos
Genera y ejecuta consultas SQL sobre la base de datos de Home Assistant.
Ejemplos de uso:
- "Cuando fue la ultima vez que se encendio la calefaccion?"
- "Cuanto tiempo estuvo encendida la luz del salon ayer?"
7. composite - Funciones Compuestas
Encadena multiples funciones en secuencia para tareas complejas.
Ejemplo: Buscar y reproducir musica
1- spec:2 name: search_music3 description: Search and play music4 parameters:5 type: object6 properties:7 query:8 type: string9 function:10 type: composite11 sequence:12 - type: script13 sequence:14 - service: ytube_music_player.search15 data:16 entity_id: media_player.ytube_music_player17 query: "{{ query }}"18 - type: template19 value_template: >-20 {% for media in state_attr('sensor.ytube_music_player_extra', 'search') %}21 {{media.type}},{{media.id}},{{media.title}}22 {% endfor %}
Usando LLM HomeAssistant con Modelos Locales
Si la privacidad es tu prioridad, puedes usar LLM HomeAssistant con modelos que corren en tu propio hardware:
Opcion 1: Ollama
1# En la configuracion de LLM HomeAssistant:2# Base URL: http://localhost:11434/v13# Model: llama3.1:8b4# API Key: ollama (cualquier valor)
Opcion 2: LocalAI
1# Base URL: http://localhost:8080/v12# Model: gpt-4 (alias configurado en LocalAI)3# API Key: local (cualquier valor)
Opcion 3: LM Studio
1# Base URL: http://localhost:1234/v12# Model: (el que tengas cargado)3# API Key: lm-studio (cualquier valor)
Comparativa: Nube vs Local
| Aspecto | API en nube (GPT-4) | Modelo local (Llama 3.1) |
|---|---|---|
| Calidad respuestas | Excelente | Buena-Media |
| Velocidad | 1-3 seg | 3-10 seg (depende GPU) |
| Privacidad | Media (datos salen) | Maxima |
| Coste mensual | 5-20€ | 0€ (solo electricidad) |
| Hardware necesario | Cualquiera | GPU con 8GB+ VRAM |
| Function calling | Nativo y fiable | Limitado (depende modelo) |
Ejemplos Avanzados de Configuracion
Ejemplo 1: Anadir Items a la Lista de la Compra
1- spec:2 name: add_item_to_shopping_cart3 description: Add item to shopping cart4 parameters:5 type: object6 properties:7 item:8 type: string9 description: The item to be added to cart10 required:11 - item12 function:13 type: script14 sequence:15 - service: shopping_list.add_item16 data:17 name: '{{item}}'
Uso: "Anade leche y pan a la lista de la compra"
Ejemplo 2: Reproducir YouTube en la TV
1- spec:2 name: play_youtube3 description: Play Youtube video on TV4 parameters:5 type: object6 properties:7 video_id:8 type: string9 description: The YouTube video id10 required:11 - video_id12 function:13 type: script14 sequence:15 - service: webostv.command16 data:17 entity_id: media_player.tv_salon18 command: system.launcher/launch19 payload:20 id: youtube.leanback.v421 contentId: "{{video_id}}"
Uso: "Pon en la tele el ultimo video de Javadex en YouTube"
Ejemplo 3: Consultar Eventos del Calendario
1- spec:2 name: get_events3 description: Get calendar events4 parameters:5 type: object6 properties:7 start_date_time:8 type: string9 description: Start in '%Y-%m-%dT%H:%M:%S%z' format10 end_date_time:11 type: string12 description: End in '%Y-%m-%dT%H:%M:%S%z' format13 required:14 - start_date_time15 - end_date_time16 function:17 type: script18 sequence:19 - service: calendar.get_events20 data:21 start_date_time: "{{start_date_time}}"22 end_date_time: "{{end_date_time}}"23 target:24 entity_id:25 - calendar.personal26 - calendar.trabajo27 response_variable: _function_result
Uso: "Que reuniones tengo manana?"
Seguridad y Buenas Practicas
Controlar el Acceso
- Exponer solo lo necesario: no expongas entidades sensibles como cerraduras o alarmas a menos que sea imprescindible
- Limitar funciones: configura
Maximum Function Calls Per Conversationpara evitar bucles infinitos - Notificaciones de automatizaciones: configura alertas cuando el LLM cree nuevas automatizaciones
Monitorizar Logs
1# configuration.yaml - Activar logs de la integracion2logger:3 logs:4 custom_components.llm_homeassistant: info
Mi Recomendacion Personal
Llevo usando LLM HomeAssistant desde sus primeras versiones y puedo decir que ha cambiado completamente como interactuo con mi casa inteligente. Ya no abro la app de Home Assistant para encender luces o ajustar la temperatura: simplemente hablo.
- Para uso diario, GPT-4 es la mejor opcion por su fiabilidad con function calling
- Para privacidad maxima, Ollama + Llama 3.1 funciona bien para comandos simples
- Para automatizaciones complejas, combina LLM HomeAssistant con Claude Code Terminal Pro
Para la mayoria de usuarios, recomiendo empezar con GPT-4 y la configuracion por defecto. Es lo que mejor funciona "out of the box" y el coste es minimo (~5€/mes para uso domestico).
Preguntas Frecuentes (FAQ)
Que LLM es mejor para controlar Home Assistant en 2026?
GPT-4 y GPT-4o son los mas fiables para function calling en Home Assistant. Claude de Anthropic es excelente para texto pero su soporte de function calling es diferente. Para uso 100% local, Llama 3.1 con Ollama es la mejor opcion open source, aunque el function calling aun no es tan fiable como GPT-4.
Se puede controlar Home Assistant con ChatGPT?
Si, con la integracion LLM HomeAssistant puedes controlar Home Assistant usando la API de OpenAI (GPT-4/ChatGPT). La diferencia con la integracion oficial es que LLM HomeAssistant permite ejecutar servicios, crear automatizaciones y consultar el historial, no solo conversar.
LLM HomeAssistant funciona sin internet?
Si, si usas un modelo local como Ollama, LocalAI o LM Studio. Configura la Base URL al servidor local y no necesitaras conexion a internet. Ten en cuenta que los modelos locales requieren hardware con GPU (recomendado 8GB+ VRAM) y la calidad de las respuestas sera menor que GPT-4.
Cuantas entidades puedo exponer al LLM?
No hay un limite tecnico, pero se recomienda exponer solo las entidades que necesitas controlar por voz. Exponer demasiadas puede confundir al modelo y aumentar la latencia, ya que la lista de entidades se envia como contexto en cada peticion.
Es seguro dar acceso a un LLM a mi casa?
LLM HomeAssistant solo accede a entidades que tu expongas explicitamente. No puede acceder a dispositivos no expuestos, no puede modificar la configuracion de Home Assistant, y puedes limitar el numero de funciones por conversacion. Ademas, puedes configurar notificaciones cuando se crean automatizaciones nuevas.
Puedo usar LLM HomeAssistant con Azure OpenAI?
Si, es totalmente compatible con Azure OpenAI y APIM. Solo necesitas especificar la Base URL de tu endpoint de Azure en la configuracion de la integracion. Esto es especialmente util para empresas que necesitan cumplimiento normativo.
Recursos Adicionales
- LLM HomeAssistant - GitHub - Codigo fuente y documentacion
- OpenAI Function Calling - Documentacion oficial
- Ollama - Ejecutar modelos locales
- Home Assistant Voice - Control por voz oficial
- La Escuela de IA - Comunidad gratuita
Posts Relacionados
- Guia Completa: Integrar IA en Home Assistant - Las 3 formas de poner IA en tu casa
- Claude Code en Home Assistant - Terminal IA para HA
- Como Crear un Asistente de Voz con Home Assistant - Whisper + Piper + Wyoming
- Que es un LLM? Guia Completa - Entender los modelos de lenguaje
- Ollama: Ejecutar Modelos IA en Local - IA sin internet