En los últimos años, el interés por la domótica y la automatización del hogar ha crecido de forma exponencial. Sin embargo, muchos proyectos se quedan en la fase de idea o en el cajón del taller. ¿Por qué ocurre esto? La clave está en centrar nuestros esfuerzos en soluciones realmente útiles, prácticas y sencillas de utilizar en el día a día. En este artículo voy a analizar cinco proyectos concretos que he implementado en mi propia vivienda durante los últimos doce meses. Cada uno de ellos está integrado en Home Assistant y te servirá de guía para dar los primeros (o segundos) pasos en la automatización de tu casa, sin necesidad de ser un experto en electrónica.
A lo largo de estas líneas te explicaré, paso a paso y con un lenguaje cercano, cómo funcionan estos dispositivos, qué componentes necesitas, cómo configurarlos en Home Assistant y qué tipo de automatizaciones he diseñado para sacarles el máximo partido. También incluiré enlaces a documentación oficial y recursos comunitarios para que puedas profundizar en cada tema.
Indice de contenidos
- 1 Si quieres ir a tiro hecho, aquí tienes los capítulos
- 2 1. Control de ventiladores desde el teléfono móvil
- 3 2. Puerta de garaje domótica con ESP32 y relé
- 4 3. Gestión de sensores Zigbee alimentados por pilas
- 5 4. Termostato inteligente para aire acondicionado con SwitchBot
- 6 5. Detector de correo (Mailbox Guard) vía LoRa
- 7 Conclusiones
Si quieres ir a tiro hecho, aquí tienes los capítulos
Si quieres ir a tiro hecho, aquí tienes los capítulos del vídeo donde hablo de los 5 proyectos más increíbles de este 2025.
00:00 Introducción
01:20 Automatización de ventiladores
03:00 Automatización de la puerta del garaje
04:46 Dispositivos Zigbee a pilas
07:54 Guardian del buzón con Home Assistant
1. Control de ventiladores desde el teléfono móvil
1.1. Objetivo del proyecto
Durante el verano pasado era habitual perder tiempo buscando el mando a distancia del ventilador o dejarlo encendido toda la noche por si refrescaba. Mi meta fue dotar a cada ventilador de mi salón de un control inteligente que me permitiera:
- Encender y apagar el ventilador desde la app de Home Assistant o con comandos de voz a través de Alexa o Google Assistant.
- Establecer velocidades y modos de funcionamiento predeterminados (presets).
- Integrar su apagado en rutinas nocturnas para evitar consumos innecesarios.
1.2. Componentes necesarios
- Broadlink RM4 Pro (mando universal IR/RF).
- Relé Wi-Fi (Sonoff, Shelly o Zigbee) para controlar el punto de luz donde va enchufado el ventilador.
- Una instalación eléctrica básica con conmutador.
- Home Assistant (versión recomendada 2023.10 o superior).
1.3. Cómo funciona el Broadlink RM4 Pro
El Broadlink RM4 Pro es un dispositivo que aprende señales por infrarrojos (IR) y radiofrecuencia (RF) a 433 MHz. Gracias a su biblioteca interna y al protocolo local, puede enviar estas señales sin salir de la red local, lo que garantiza rapidez y privacidad. No obstante, no es compatible con mandos RF con rolling code (códigos cambiantes).
En este proyecto, el RM4 Pro grabará las pulsaciones del mando del ventilador: encendido, apagado y selección de velocidades (baja, media, alta). Estos comandos se exportan a Home Assistant mediante la integración oficial de Broadlink.
1.4. Configuración en Home Assistant
- Instala la integración «Broadlink» desde Supervisor > Add-on Store > Broadlink.
- Conecta el RM4 Pro a la red Wi-Fi y anota su dirección IP.
- En tu archivo configuration.yaml añade:
switch:
– platform: broadlink
host: 192.168.1.50
mac: ’34:ea:34:12:ab:cd’
friendly_name: ‘RM4_Pro’
- Recoloca los archivos «.bin» que genera Home Assistant al aprender la señal en la carpeta «/config/broadlink».
1.5. Creación de un ventilador de plantilla
Home Assistant no entiende de ventiladores IR de forma nativa, así que definiremos cada ventilador como un «template fan». Por ejemplo:
fan:
– platform: template
fans:
ventilador_salon:
friendly_name: ‘Ventilador Salón’
value_template: «{{ is_state(‘switch.ventilador_salon’, ‘on’) }}»
turn_on:
service: switch.broadlink_send_packet_192_168_1_50
data:
packet: ‘JgKGAJKUEhISEhMSExISEhMSExISEBISExIQAhISEhMSExIS…’
turn_off:
service: switch.broadlink_send_packet_192_168_1_50
data:
packet: ‘JgKGAJKQEhITEhMSExITEhMSExITEhITEhIQAhITEhMSExIS…’
set_speed:
service: switch.broadlink_send_packet_192_168_1_50
data_template:
packet: >-
{% if speed == ‘low’ %}
JgKGASkTEhITEhMSExITEhMSExITEhIQAhITEhMSExIS…
{% elif speed == ‘medium’ %}
JgKGAToTEhITEhMSExITEhMSExITEhIQAhITEhMSExIS…
{% else %}
JgKGAS8TEhITEhMSExITEhMSExITEhIQAhITEhMSExIS…
{% endif %}
Ajusta los códigos «packet» con los archivos que hayas grabado.
1.6. Automatización para apagado nocturno
Para evitar que el ventilador se quede encendido de madrugada, podemos apagarlo junto al resto de luces y dispositivos. Un ejemplo de automatización:
automation:
– alias: ‘Apagar ventiladores al apagar luces’
trigger:
platform: state
entity_id: group.luces
to: ‘off’
action:
– service: fan.turn_off
entity_id: fan.ventilador_salon
– service: fan.turn_off
entity_id: fan.ventilador_dormitorio
De este modo, cada vez que apagues todas las luces del hogar, el sistema también detendrá los ventiladores.
1.7. Ventajas y conclusiones
- Control remoto y por voz sin necesidad de buscar el mando.
- Integración total en Home Assistant para rutinas y escenas.
- Ahorro energético al automatizar el apagado.
Referencias
Template Fan en Home Assistant
2. Puerta de garaje domótica con ESP32 y relé
2.1. El reto de los rolling codes
A diferencia de muchos aparatos RF sencillos, los mandos de garaje utilizan rolling code, un sistema criptográfico que cambia el código en cada pulsación. Esto impide clonar la señal con un mando universal. La solución pasa por emular la pulsación del propio mando mediante un relé seco controlado por un microcontrolador.
2.2. Materiales necesarios
- Mando original de garaje.
- Relé seco (sin conexión a neutro) de 5 V.
- Placa ESP32 (compatible con ESPHome).
- Regulador de tensión 12 V→5 V (si el mando funciona con pilas de 12 V).
- Caja y canaletas para la instalación.
2.3. Conexión eléctrica y montaje
- Abre con cuidado el mando de garaje. Localiza los dos puntos que, al unirse, simulan la pulsación de apertura.
- Solda dos cables a dichos puntos y llévalos a los contactos del relé seco.
- Alimenta el relé a 5 V desde el ESP32 o desde un regulador.
- Mete todo en una caja estanca y coloca canaletas para sujetar el paquete junto al mando.
2.4. Configuración de ESPHome
ESPHome facilita la creación de firmware para el ESP32 y su integración con Home Assistant. Añade este bloque en tu archivo .yaml de ESPHome:
esphome:
name: puerta_garaje
platform: ESP32
board: esp32dev
wifi:
ssid: ‘TU_SSID’
password: ‘TU_PASS’
mqtt:
broker: ‘192.168.1.10’
username: ‘usuario’
password: ‘pass’
switch:
– platform: gpio
id: rele_garaje
pin: GPIO23
name: ‘Rele Puerta Garaje’
binary_sensor:
– platform: homeassistant
name: ‘Estado Garaje’
id: estado_garaje
entity_id: cover.garaje
Luego, en Home Assistant, puedes exponer este switch como servicio para abrir o cerrar tu puerta de garaje.
2.5. Automatizaciones avanzadas
- Apertura automática al acercarse al hogar: usa la integración de geolocalización para activar el switch cuando tu móvil esté a menos de 200 m de casa.
- Notificaciones: envía un mensaje por Telegram si la puerta permanece abierta más de 5 minutos.
automation:
– alias: ‘Abrir garaje al llegar a casa’
trigger:
platform: zone
entity_id: person.luis
zone: zone.home
event: enter
action:
– service: switch.turn_on
entity_id: switch.rele_puerta_garaje
2.6. Beneficios del proyecto
- Control remoto y seguro de la puerta de garaje.
- Integración con rutinas de entrada/salida.
- Código abierto y bajo coste.
Referencias
3. Gestión de sensores Zigbee alimentados por pilas
3.1. El desafío de las baterías
Los sensores Zigbee (movimiento, inundación, humo) ofrecen gran flexibilidad de ubicación gracias a su alimentación por pilas. Sin embargo, un parque de 30–50 dispositivos puede convertirse en un quebradero de cabeza si no se monitoriza el nivel de batería.
3.2. Sensores destacados
- Detector de humos y fuego (Ikea Tradfri / Xiaomi Aqara).
- Sensor de inundación (Sonoff SNZB-04).
- Sensor de movimiento (Philips Hue / Aqara).
- Cerradura inteligente (Yale Linus, Nuki).
3.3. Integración en Home Assistant
La mayoría de estos dispositivos se conectan mediante un coordinador Zigbee (CC2531, Conbee II, Sonoff Zigbee 3.0). Una vez añadidos, cada sensor expone atributos importantes: battery, battery_low, battery_voltage.
3.4. Automatización de reporte semanal
Para evitar sorpresas, crearemos una automatización que envíe un informe semanal por Telegram con el estado de batería de cada sensor.
automation:
– alias: ‘Reporte semanal de baterías Zigbee’
trigger:
platform: time
at: ’08:00:00′
weekday: mon
action:
– service: notify.telegram
data:
title: ‘Estado de baterías Zigbee’
message: >-
{% for entidad in states.binary_sensor if ‘battery’ in entidad.attributes %}
• {{ entidad.name }}: {{ entidad.attributes.battery }}%
{% endfor %}
Para sensores críticos (cerraduras) puedes crear otro trigger que avise al instante si el nivel baja de un umbral, por ejemplo, 20%.
3.5. Consejos de mantenimiento
- Sustituye las pilas en lotes agrupando dispositivos por zona.
- Utiliza marcas de confianza (energizer, duracell).
- Anota la fecha de cambio en la descripción del dispositivo.
Referencias
4. Termostato inteligente para aire acondicionado con SwitchBot
4.1. Problema habitual de los aires acondicionado ventana
El control manual del aire acondicionado suele provocar noches de calor excesivo o frío inesperado. La solución: un «dedo robótico» (SwitchBot) que pulsa el mando del aire, junto con un termostato virtual en Home Assistant.
4.2. Componentes y configuración
- SwitchBot Bot: un actuador mecánico programable para pulsar botones.
- Termómetro/higrómetro Zigbee o Wi-Fi en la habitación.
- Integración SwitchBot en Home Assistant: https://github.com/OpenWonderLabs/python-bot
4.3. Definición del termostato genérico en Home Assistant
Usamos la plataforma «generic_thermostat» para controlar el switchbot:
climate:
– platform: generic_thermostat
name: ‘AC Salón’
heater: switch.switchbot_ac
target_sensor: sensor.temperatura_salon
min_temp: 20
max_temp: 26
ac_mode: true
target_temp: 23
cold_tolerance: 0.5
hot_tolerance: 0.5
initial_hvac_mode: ‘off’
away_temp: 28
4.4. Estrategia de control basada en sensores múltiples
Para evitar que el control se base en la lectura de un solo sensor (cerca del mando), podemos promediar varias lecturas de temperatura:
sensor:
– platform: averaging
name: ‘Temperatura Promedio Habitaciones’
entities:
– sensor.temperatura_salon
– sensor.temperatura_dormitorio1
– sensor.temperatura_dormitorio2
Luego, en el climate.target_sensor usamos sensor.temperatura_promedio_habitaciones.
4.5. Automatizaciones extra
- Modo Eco: apaga el aire si no detecta presencia en la habitación.
- Temporizador de descongelación: cada 4 horas enciende el ventilador interno sin frío para limpiar las aletas.
Referencias
5. Detector de correo (Mailbox Guard) vía LoRa
5.1. Por qué LoRa y LPWAN
Colocar un sensor de apertura o movimiento en el buzón exige comunicación a larga distancia con bajo consumo. LoRa (Long Range) entra en la categoría LPWAN y permite enviar paquetes de datos a kilómetros sin agotar la batería.
5.2. Hardware necesario
- Módulo LoRa SX1276 (RA-02) conectado a un Arduino Pro Mini o ESP32.
- Sensor PIR (HC-SR501) o interruptor magnético de puerta.
- Antena adecuada (433 MHz o 868 MHz según tu zona).
- Gateway LoRaWAN o concentrador DIY con concentrador Semtech SX1302.
5.3. Programación y configuración
- Instala Arduino IDE y las librerías «LoRa» y «PubSubClient» (para MQTT).
- Escribe un sketch que:
a. Inicialice LoRa en 915/868 MHz.
b. Lea el sensor PIR o magnético.
c. Formatee un mensaje JSON con estado y nivel de batería.
d. Envíe el paquete al concentrador.
Ejemplo de envío:
#include <SPI.h>
#include <LoRa.h>
#include <ArduinoJson.h>
#include <Wire.h>
#define PIR_PIN 2
#define LORA_SS 10
#define LORA_RST 9
#define LORA_DI0 2
void setup() {
Serial.begin(9600);
pinMode(PIR_PIN, INPUT);
LoRa.setPins(LORA_SS, LORA_RST, LORA_DI0);
if (!LoRa.begin(868E6)) {
while (1);
}
}
void loop() {
int motion = digitalRead(PIR_PIN);
StaticJsonDocument<200> doc;
doc[«device»] = «mailbox_guard»;
doc[«motion»] = motion;
doc[«battery»] = random(90, 100);
char buffer[128];
size_t n = serializeJson(doc, buffer);
LoRa.beginPacket();
LoRa.write((uint8_t*)buffer, n);
LoRa.endPacket();
delay(60000);
}
5.4. Gateway y lectura en Home Assistant
Para conectar LoRa con Home Assistant necesitas un servidor de red LoRaWAN (ChirpStack, TTN) o un gateway local con Semtech y MQTT. Una vez configurado el bridge, Home Assistant recibirá los mensajes en topics MQTT, por ejemplo:
topic: lora/0x26011BDA/up
payload:
{
«device»: «mailbox_guard»,
«motion»: 1,
«battery»: 95
}
Define un sensor en configuration.yaml:
sensor:
– platform: mqtt
name: ‘Buzon Movimiento’
state_topic: ‘lora/0x26011BDA/up’
value_template: ‘{{ value_json.motion }}’
device_class: motion
– platform: mqtt
name: ‘Buzon Batería’
state_topic: ‘lora/0x26011BDA/up’
value_template: ‘{{ value_json.battery }}’
unit_of_measurement: ‘%’
5.5. Avisos y usos secundarios
- Envía un mensaje de Telegram cuando motion == 1.
- Usa el sensor magnético para detectar apertura de buzón.
- Proyectos extra: monitorizar puertas de trastero, garaje, caseta de jardín.
Referencias
Conclusiones
En este repaso de los cinco proyectos que han marcado mi año en domótica con Home Assistant has aprendido a:
- Integrar dispositivos IR/RF mediante Broadlink RM4 Pro y relés inteligentes.
- Superar la barrera de los rolling codes en puertas de garaje con ESP32 y ESPHome.
- Gestionar baterías de decenas de sensores Zigbee con reportes automatizados.
- Crear un termostato doméstico para acondicionadores de aire usando SwitchBot y generic_thermostat.
- Desplegar un sistema LoRa para monitorizar el correo y puertas remotas.
Cada proyecto está diseñado para ser reproducido por aficionados sin demasiada experiencia previa. Espero que estas ideas te inspiren a continuar avanzando en tu propio hogar inteligente. Si quieres profundizar, en programarfacil.com encontrarás un curso gratuito de Home Assistant y domótica, además de numerosos tutoriales y comunidad para resolver dudas.
Ahora te animo a poner manos a la obra y a compartir tus resultados. ¡Nos vemos en el próximo artículo y recuerda: cada día un 1% mejor en domótica!