
Este artículo puede contener enlaces de afiliado. Si compras desde estos enlaces, el precio para ti es el mismo y la tienda me paga una pequeña comisión que ayuda a mantener Tecnoyfoto.
En este proyecto vamos a crear un Asistente de ventilación para Home Assistant capaz de decidir cuándo conviene abrir, cuándo es mejor mantener la ventana cerrada y cuándo ya podemos terminar de ventilar. Para medir el ambiente interior utilizaré el SONOFF AirGuard TH Pressure SNZB-02M, mientras que un segundo sensor situado en el exterior permitirá comparar las condiciones reales a ambos lados de la ventana.
El resultado no es una automatización que mira únicamente si la humedad relativa supera el 60 %. El asistente calcula humedad absoluta, punto de rocío y VPD, filtra las mediciones exteriores, comprueba posibles bloqueos y presenta una recomendación comprensible:
DATOS INSUFICIENTESNO HACE FALTA VENTILARVENTILA AHORAVENTILANDOYA PUEDES CERRARNO CONVIENE ABRIRUSA EL VENTILADOR
Además, todos los automatismos potencialmente molestos —avisos y encendido del ventilador— quedan desactivados por defecto. Primero observamos, después ajustamos los umbrales y solo entonces decidimos qué queremos automatizar.
Importante: este proyecto evalúa confort higrotérmico. El AirGuard TH Pressure no mide CO₂, compuestos orgánicos volátiles ni partículas. No debemos presentar sus lecturas como una medición completa de calidad del aire. Más adelante podemos añadir una sonda de CO₂ para detectar también la necesidad real de renovar el aire.
Descargar el proyecto completo
Para compartir el proyecto he preparado tres archivos. El primero contiene todo el asistente; el segundo recoge las entidades de cada vivienda; el tercero proporciona instrucciones precisas para que ChatGPT o Codex adapte el YAML sin inventar dispositivos.
Privacidad: para adaptar este proyecto no hace falta compartir contraseñas, tokens, webhooks, el contenido de secrets.yaml ni archivos internos de .storage. Solo se necesitan los identificadores de entidad que aparecen en la plantilla. Si quieres separar correctamente tus credenciales, consulta también la guía del archivo secrets.yaml en Home Assistant.
Qué es el SONOFF AirGuard TH Pressure
El SONOFF AirGuard TH Pressure SNZB-02MEnlace de afiliado es un sensor Zigbee 3.0 para interiores que mide físicamente tres magnitudes:
- Temperatura.
- Humedad relativa.
- Presión atmosférica.
SONOFF lo presenta como monitor ambiental «5 en 1» porque, a partir de temperatura y humedad, su plataforma también calcula:
- Punto de rocío.
- Déficit de presión de vapor o VPD.
Es importante entender la diferencia: el punto de rocío y el VPD no proceden de dos sondas adicionales. Son valores derivados matemáticamente de las mediciones de temperatura y humedad. En Home Assistant podemos calcularlos localmente y conservar nuestro propio historial.
Especificaciones principales del SNZB-02M
Según el manual oficial del SNZB-02M, el manual ampliado facilitado por el fabricante y la ficha oficial:
| Característica | Especificación |
|---|---|
| Protocolo | Zigbee 3.0, IEEE 802.15.4 |
| Alimentación | 1 pila CR2477, 3 V |
| Autonomía anunciada | Hasta aproximadamente 2 años |
| Temperatura de trabajo | De -20 a 60 °C |
| Humedad de trabajo | Del 5 al 95 % HR, sin condensación |
| Presión de trabajo | De 700 a 1100 hPa |
| Precisión de temperatura | ±0,2 °C |
| Precisión de humedad | ±2 % HR |
| Precisión de presión | ±0,1 hPa |
| Dimensiones | 45 × 45 × 17,6 mm |
| Peso | 27,3 g con la pila |
| Uso previsto | Interior; no es impermeable |
La autonomía es una estimación de laboratorio. El intervalo de informes, la estabilidad de la red Zigbee, la temperatura y la cantidad de reintentos pueden cambiar el resultado real. Reducir mucho el intervalo de reporte también aumenta el consumo.
Qué aporta la presión atmosférica
La presión permite registrar tendencias y añadir contexto. Una bajada sostenida puede acompañar un cambio de tiempo, pero no debe utilizarse como pronóstico meteorológico independiente. El propio fabricante advierte que la tendencia barométrica proporciona información general y no sustituye una previsión.
En este Asistente de ventilación la presión es secundaria: nunca abriremos o cerraremos una ventana únicamente porque haya subido o bajado.
Precio y descuento del 10 %
El precio normal indicado para el SONOFF AirGuard TH Pressure es de 20,47 €.
Con el código:
TECNOYFOTO
se aplica un 10 % de descuento. Tomando como base 20,47 €, el precio resultante es aproximadamente:
- Precio normal: 20,47 €.
- Descuento: 2,05 €.
- Precio final aproximado: 18,42 €.
Consultar el SONOFF AirGuard TH Pressure en la tienda oficialEnlace de afiliado
El precio, los impuestos, el envío y la disponibilidad pueden cambiar. Comprueba el importe final mostrado por la tienda antes de completar el pedido.
Este artículo puede contener enlaces de afiliado. Si compras mediante estos enlaces, el precio es el mismo para ti y la tienda me paga una pequeña comisión que ayuda a mantener Tecnoyfoto.
Cómo funciona el Asistente de ventilación
La lógica se divide en dos preguntas diferentes:
- ¿La habitación necesita que hagamos algo?
- ¿Abrir la ventana mejorará realmente la situación?
Una habitación puede necesitar intervención porque está demasiado caliente o húmeda, pero eso no significa que abrir sea la mejor respuesta. Si el aire exterior contiene todavía más agua o está más caliente, la recomendación puede ser mantener cerrado o utilizar un ventilador.
Por qué no basta con comparar humedad relativa
La humedad relativa depende mucho de la temperatura. Un 70 % en una noche fría puede contener menos vapor de agua que un 55 % durante una tarde calurosa.
Por eso calculamos la humedad absoluta, expresada en gramos de agua por metro cúbico de aire:
HA = (6,112 × e^((17,67 × T) / (T + 243,5)) × HR × 2,1674) / (273,15 + T)Donde:
Tes la temperatura en grados Celsius.HRes la humedad relativa en porcentaje.ees el número de Euler.
Si dentro hay 15 g/m³ y fuera 9 g/m³, abrir ofrece una mejora potencial clara. Si fuera hay 17 g/m³, abrir no ayudará a secar la habitación aunque el porcentaje de humedad exterior parezca menor.
Punto de rocío
El punto de rocío es la temperatura a la que el aire alcanzaría la saturación y comenzaría a condensar agua. Resulta útil para interpretar riesgo de condensación en superficies frías, aunque conocer la temperatura real de esas superficies exigiría sensores adicionales o una estimación térmica. En la guía para crear un sensor de punto de rocío en Home Assistant explico el cálculo con más detalle.
VPD
El VPD, o déficit de presión de vapor, expresa la diferencia entre la cantidad de vapor que el aire podría contener y la que contiene realmente. Es muy utilizado en cultivo y también sirve para describir si el ambiente está relativamente seco o cargado.
Para decidir cuándo abrir, la humedad absoluta es la comparación principal. Punto de rocío y VPD aportan diagnóstico, contexto e historial.
Sensores obligatorios para montar el sistema
La versión pública del package solo considera imprescindibles cuatro mediciones:
| Ubicación | Medición obligatoria | Ejemplo |
|---|---|---|
| Interior | Temperatura | AirGuard TH Pressure |
| Interior | Humedad relativa | AirGuard TH Pressure |
| Exterior | Temperatura | BME280, estación local o sonda equivalente |
| Exterior | Humedad relativa | BME280, estación local o sonda equivalente |
Por tanto, el montaje mínimo necesita realmente dos dispositivos ambientales: uno interior y otro exterior, siempre que ambos proporcionen temperatura y humedad.
No hace falta comprar sensores físicos de humedad absoluta, punto de rocío ni VPD. Home Assistant los calcula.
El sensor exterior importa tanto como el interior
No recomiendo sustituir permanentemente el sensor exterior por una previsión de Internet. Una estación meteorológica puede estar a varios kilómetros, a diferente altura o en un entorno completamente distinto.
El sensor exterior debe instalarse:
- Protegido de la radiación solar directa.
- Resguardado de la lluvia.
- Con circulación de aire.
- Alejado de paredes calientes, salidas de aire y unidades exteriores.
- Preferiblemente dentro de una garita meteorológica.
El AirGuard TH Pressure es un dispositivo para interiores y no es impermeable. Para el exterior utiliza una sonda y una protección adecuadas.
Sensores y entidades opcionales recomendados
El sistema básico ya puede recomendar abrir o no abrir. Estas entidades añaden seguridad, contexto y automatización:
| Entidad opcional | Qué mejora |
|---|---|
| Contacto de ventana | Permite distinguir VENTILANDO y YA PUEDES CERRAR |
| Detección de lluvia | Evita recomendar abrir cuando llueve |
| Racha de viento | Bloquea la apertura cuando supera un límite |
Entidad climate | Evita abrir mientras calefacción o aire acondicionado están activos |
| Ventilador controlable | Ofrece una alternativa cuando abrir no mejora la habitación |
| Notificaciones | Envía avisos al móvil o por voz |
| Presión atmosférica | Añade media y tendencia barométrica |
| Sensor de CO₂ | Detecta necesidad de renovación del aire, no solo confort térmico |
| VOC y PM2.5 | Amplían el proyecto hacia contaminación y calidad del aire |
| Batería y calidad de enlace | Ayudan a diagnosticar sensores Zigbee |
La ampliación más importante será el CO₂. Con temperatura y humedad sabemos si abrir ayudará térmicamente o a retirar vapor de agua; con CO₂ sabremos también si la ocupación está degradando la renovación del aire.
Dónde colocar el AirGuard
Busca una posición representativa del aire que respiran los ocupantes. Evita:
- Sol directo.
- Radiadores, ordenadores o televisores que desprendan calor.
- La corriente inmediata de un aire acondicionado.
- Colocarlo justo al lado de la ventana que vamos a abrir.
- Rincones cerrados sin circulación.
- Humidificadores o cuartos de baño si no son el objetivo de la medición.
El sensor puede fijarse magnéticamente a una superficie metálica, mediante la placa atornillada o con el adhesivo 3M incluido. Antes de fijarlo definitivamente conviene observar las lecturas durante unas horas.
Integrar el AirGuard TH Pressure en Home Assistant
El SNZB-02M requiere un coordinador o hub Zigbee. El manual contempla gateways SONOFF y compatibilidad con Home Assistant mediante ZHA o Zigbee2MQTT. Si todavía no tienes la red preparada, puedes seguir la guía completa de Zigbee2MQTT en Home Assistant.
Emparejamiento
- Retira la lengüeta aislante de la pila.
- Si no entra automáticamente en emparejamiento, mantén pulsado el botón durante 5 segundos.
- El indicador parpadeará lentamente durante un máximo de 180 segundos.
- Activa «Permitir unión» en Zigbee2MQTT o añade un dispositivo desde ZHA.
- Espera a que termine la entrevista del dispositivo.
- Ponle un nombre reconocible, por ejemplo
airguard_habitacion.
Una pulsación corta permite verificar la comunicación: el manual indica dos destellos cuando el sensor está añadido correctamente. Mantener el botón durante 10 segundos restaura los valores de fábrica.
Zigbee2MQTT
La ficha oficial del SNZB-02M en Zigbee2MQTT documenta temperatura, humedad, presión, batería, calibraciones y actualizaciones OTA. Las entidades que Home Assistant crea finalmente dependen del nombre asignado, del descubrimiento MQTT y de la versión utilizada.
En el package público utilizo nombres genéricos como estos:
sensor.airguard_habitacion_temperature
sensor.airguard_habitacion_humidity
sensor.airguard_habitacion_pressureDebes sustituirlos por los tuyos.
ZHA
El manual de SONOFF advierte que la integración mediante ZHA puede necesitar el script específico proporcionado por el fabricante. Consulta siempre el centro de conocimiento del producto y utiliza la versión más reciente de las instrucciones.
Verificar las entidades
En Home Assistant abre:
Herramientas para desarrolladores → EstadosComprueba que temperatura, humedad y presión tengan valores numéricos y unidades coherentes. Si aparecen unknown o unavailable, no continúes todavía con las automatizaciones.
Instalar el package del Asistente de ventilación
He organizado el proyecto como un package porque permite mantener ayudantes, sensores calculados, scripts y automatizaciones dentro de un solo archivo. Home Assistant documenta oficialmente esta forma de organizar la configuración.
1. Habilitar packages
Añade esto a configuration.yaml si todavía no utilizas packages:
homeassistant:
packages: !include_dir_named packagesSi ya existe una sección homeassistant:, no crees otra: añade únicamente packages: dentro de la existente.
2. Descargar los tres archivos
- Package público del Asistente de ventilación.
- Plantilla para rellenar las entidades.
- Prompt de adaptación para ChatGPT o Codex.
El package utiliza nombres genéricos y no contiene mis entidades personales, claves, direcciones ni webhooks. No lo copies todavía en la carpeta activa: primero debes adaptarlo.
3. Localizar las entidades de tu instalación
Abre Herramientas para desarrolladores → Estados y busca las cuatro mediciones imprescindibles:
- Temperatura interior.
- Humedad relativa interior.
- Temperatura exterior.
- Humedad relativa exterior.
Copia el identificador completo —por ejemplo, sensor.dormitorio_temperatura— y anota una lectura actual y su unidad. Después completa los opcionales que tengas: presión, ventana, lluvia, racha de viento, climatización, ventilador y notificaciones. Si algo no existe, escribe literalmente NO TENGO.
4. Rellenar la plantilla sin compartir secretos
La ficha separa datos generales, cuatro fuentes obligatorias, funciones opcionales y preferencias. No adjuntes secrets.yaml, tokens de larga duración, webhooks ni el registro de entidades completo. Una IA no necesita esos datos para cambiar referencias YAML.
Un
entity_idcomosensor.dormitorio_humedadidentifica una entidad, pero no concede acceso remoto a Home Assistant. Un token o una contraseña sí puede concederlo; nunca los incluyas.
5. Adaptarlo con ChatGPT o Codex
Crea una conversación nueva y adjunta el package y la plantilla rellenada. Después pega el prompt completo. En ChatGPT puedes pedir que devuelva el YAML íntegro como archivo; con Codex, si está trabajando directamente sobre tu carpeta de configuración, dile que cree un archivo nuevo y que no sobrescriba nada.
El prompt obliga a la IA a comprobar las entradas, no inventar identificadores, adaptar dominios fan o switch, invertir el contacto si fuera necesario, convertir unidades de viento y eliminar de forma segura los opcionales ausentes. También exige entregar el package completo: nada de fragmentos o frases como «el resto queda igual».
6. Revisar el informe antes del YAML
La respuesta debe comenzar con una tabla que relacione cada función con la entidad recibida. Comprueba especialmente:
- Que no se haya inventado ninguna entidad.
- Que temperatura y humedad correspondan a la ubicación correcta.
- Que
onsignifique ventana abierta en el sensor normalizado. - Que el ventilador conserve su dominio real:
fanoswitch. - Que no quede ningún placeholder como
sensor.exterior_temperatura. - Que avisos y control automático empiecen desactivados.
7. Adaptación manual alternativa
Si prefieres editarlo tú mismo, sustituye como mínimo estas cuatro fuentes:
# INTERIOR
sensor.airguard_habitacion_temperature
sensor.airguard_habitacion_humidity
# EXTERIOR
sensor.exterior_temperatura
sensor.exterior_humedadLos placeholders opcionales son sensor.airguard_habitacion_pressure, binary_sensor.ventana_habitacion, binary_sensor.lluvia, sensor.racha_viento, climate.habitacion, fan.ventilador_habitacion y notify.mobile_app_tu_movil. No sustituyas un opcional por una entidad parecida si no conoces su significado.
8. Guardar el package adaptado
Guarda el resultado con un nombre nuevo y descriptivo:
/config/packages/asistente_ventilacion_dormitorio.yamlNo debe contener una clave exterior adicional con el nombre del archivo. Cuando utilizamos !include_dir_named, el contenido empieza directamente por input_number:, template: y el resto de dominios del package.
9. Comprobar y reiniciar
Crea una copia de seguridad de Home Assistant y ejecuta:
Herramientas para desarrolladores → YAML → Comprobar configuraciónNo reinicies si aparece un error. Revisa primero la ruta y la línea indicadas. Si la comprobación termina correctamente, reinicia Home Assistant y busca la entidad principal que la IA haya indicado; en la versión genérica es:
sensor.asistente_de_ventilacionHome Assistant permite utilizar plantillas con disponibilidad para evitar que un sensor sin datos se convierta accidentalmente en cero. Puedes consultar la documentación de Template para ampliar esta parte.
Umbrales configurables
El package crea ayudantes para modificar el comportamiento sin editar YAML:
| Ayudante | Valor inicial | Función |
|---|---|---|
| Humedad relativa alta | 60 % | Indica necesidad de actuar |
| Temperatura alta | 26 °C | Indica exceso de calor |
| Diferencia de humedad para abrir | 1,2 g/m³ | Ventaja mínima exterior |
| Diferencia de humedad para cerrar | 0,4 g/m³ | Histéresis para evitar cambios continuos |
| Ventaja térmica mínima para abrir | 0,8 °C | Diferencia normal para iniciar la ventilación por calor |
| Ventaja térmica para mantener abierto | 0,2 °C | Umbral de cierre térmico con histéresis |
| Descenso exterior en 15 minutos | 0,2 °C | Permite anticipar el enfriamiento nocturno |
| Exterior máximo sobre interior | 1 °C | Tolerancia para secar solo cuando no existe exceso de calor |
| Racha máxima | 45 km/h | Bloqueo opcional por viento |
| Tiempo de ventilador | 20 min | Duración del accionamiento automático |
No existe un valor universal perfecto. El edificio, estación del año, clima local, aislamiento y preferencias cambian mucho. Empieza con los valores propuestos, observa durante varios días y ajusta poco a poco.
Por qué hay dos diferencias de humedad
Usamos una diferencia mayor para recomendar abrir y otra menor para recomendar cerrar. Es una histéresis:
- Abrir cuando la mejora supera 1,2 g/m³.
- Cerrar cuando cae hasta 0,4 g/m³.
Sin esa separación, pequeñas fluctuaciones podrían alternar constantemente entre abrir y cerrar.
Por qué también hay dos diferencias de temperatura
El criterio térmico distingue entre empezar a ventilar y seguir ventilando:
- Recomienda abrir normalmente cuando fuera hay al menos 0,8 °C menos.
- Si fuera ya está más fresco y ha bajado al menos 0,2 °C durante los últimos 15 minutos, también reconoce el comienzo del enfriamiento nocturno.
- Una vez abierta la ventana, continúa en
VENTILANDOmientras el exterior conserve una ventaja de más de 0,2 °C.
Esta histéresis evita el error de reutilizar el umbral de apertura como orden de cierre. Por ejemplo, con 31,3 °C dentro y 30,8 °C fuera solo hay 0,5 °C de diferencia: quizá sea una ventaja modesta para iniciar la ventilación, pero sigue siendo aire más fresco y no hay motivo térmico para cerrar una ventana que ya está abierta.
Los objetivos térmico y de humedad se evalúan por separado. Si aún hace demasiado calor y el exterior sigue más fresco, una diferencia pequeña de humedad absoluta no cancela la evacuación de calor. De forma equivalente, si aún hay demasiada humedad y fuera está suficientemente más seco, el asistente puede seguir ventilando aunque la ventaja térmica haya desaparecido.
Tendencia exterior de quince minutos
El sensor estadístico de cambio de temperatura exterior permite detectar que está empezando a refrescar. La tendencia no sustituye a la comparación interior-exterior: solo adelanta la recomendación cuando fuera ya está más fresco que dentro y continúa bajando.
Confirmación de cinco minutos
Las mediciones ambientales pueden oscilar alrededor de un umbral y provocar cambios repetidos entre VENTILA AHORA, USA EL VENTILADOR y YA PUEDES CERRAR. Para evitarlo, los sensores de necesidad, oportunidad y beneficio de mantener abierto exigen que una condición normal permanezca durante cinco minutos antes de cambiar.
Esta confirmación funciona tanto al aparecer como al desaparecer una oportunidad. Mientras se completa, el motivo explica que hay un cambio pendiente. Los bloqueos de seguridad —lluvia, viento fuerte y climatización— se comprueban directamente en el estado final y continúan actuando de inmediato.
También se evita un conflicto frecuente: si la habitación ya supera el umbral de temperatura, el asistente no recomienda abrir solo para secar cuando fuera está más caliente. El margen «Exterior máximo sobre interior» se aplica al secado únicamente cuando no existe ya un problema de calor.
Media exterior de cinco minutos
El package aplica una media temporal de cinco minutos a la humedad absoluta exterior. Así una lectura aislada no cambia inmediatamente la recomendación. Home Assistant incluye el filtro time_simple_moving_average, explicado en su documentación de Filter.
Los escenarios de demostración no alimentan esta media real, por lo que probar el vídeo no altera el historial usado para decidir.
Estados del Asistente de ventilación
DATOS INSUFICIENTES
Falta al menos una de las cuatro mediciones obligatorias. No se toma ninguna decisión automática y se enumeran las fuentes ausentes.
NO HACE FALTA VENTILAR
La temperatura y la humedad interiores están dentro de los límites configurados.
VENTILA AHORA
La habitación necesita intervención y el exterior ofrece una reducción suficiente de humedad absoluta o una ventaja térmica útil. No hay bloqueos conocidos.
El motivo indica qué beneficio justifica la apertura. Si fuera está más fresco pero contiene más humedad absoluta, lo expresa como un compromiso —por ejemplo, «aunque fuera hay 2,1 g/m³ más de humedad, está 5,2 °C más fresco»— en lugar de presentar una diferencia negativa como si significara «menos humedad».
VENTILANDO
El contacto indica que la ventana está abierta y el exterior continúa ofreciendo al menos una mejora útil: térmica o de humedad. El umbral de apertura ya no se reutiliza para decidir el cierre.
Cuando coinciden una ventaja térmica y una desventaja de humedad, el texto muestra ambas. Así queda claro que se mantiene abierto para evacuar calor a pesar de introducir algo más de humedad, y no porque el exterior sea más seco.
YA PUEDES CERRAR
La ventana está abierta y se ha alcanzado el objetivo, han desaparecido tanto la ventaja térmica como la de humedad aplicables, o ha surgido un bloqueo. El motivo diferencia estos casos y no afirma que el objetivo esté alcanzado cuando todavía hay exceso de calor o humedad.
NO CONVIENE ABRIR
La habitación necesita intervención, pero abrir introduciría más humedad o calor, está lloviendo, hay viento fuerte o funciona la climatización.
USA EL VENTILADOR
Hay exceso de calor, pero abrir no mejoraría la habitación. Un ventilador puede aumentar el confort percibido, aunque no enfría el aire ni renueva por sí solo la calidad del aire.
Código de notificación al móvil
El package incorpora esta automatización, desactivada mediante un input_boolean hasta que el usuario la habilite:
automation:
- id: av_notificar_cambio_relevante
alias: "Asistente ventilacion - Notificar cambio relevante"
mode: queued
triggers:
- trigger: state
entity_id: sensor.asistente_de_ventilacion
to: "VENTILA AHORA"
for: "00:02:00"
- trigger: state
entity_id: sensor.asistente_de_ventilacion
to: "YA PUEDES CERRAR"
for: "00:02:00"
- trigger: state
entity_id: sensor.asistente_de_ventilacion
to: "USA EL VENTILADOR"
for: "00:02:00"
conditions:
- condition: state
entity_id: input_boolean.av_avisos_movil
state: "on"
actions:
- action: notify.mobile_app_tu_movil
data:
title: "Asistente de ventilación"
message: >-
{{ states('sensor.asistente_de_ventilacion') }}:
{{ state_attr('sensor.asistente_de_ventilacion', 'motivo') }}Los dos minutos de permanencia evitan avisos producidos por una única medición fugaz.
Avisos por voz
Si ya tienes instalada mi centralita de avisos, puedes sustituir la acción móvil por el script explicado en Avisos por voz en Home Assistant:
actions:
- action: script.anunciar_por_voz_alexa_google_2
data:
message: >-
{{ states('sensor.asistente_de_ventilacion') }}.
{{ state_attr('sensor.asistente_de_ventilacion', 'motivo') }}
devices:
- show
urgent: false
modo: hablarAdapta devices a los nombres lógicos configurados en tu centralita.
Control opcional del ventilador
El ventilador automático permanece desactivado de fábrica. Cuando se habilita, solo se enciende si el estado USA EL VENTILADOR se mantiene durante dos minutos.
El package guarda además un marcador para recordar si fue el propio asistente quien encendió el ventilador. Así evita apagar un ventilador que el usuario hubiese encendido manualmente.
- id: av_encender_ventilador
alias: "Asistente ventilacion - Encender ventilador"
triggers:
- trigger: state
entity_id: sensor.asistente_de_ventilacion
to: "USA EL VENTILADOR"
for: "00:02:00"
conditions:
- condition: state
entity_id: input_boolean.av_control_automatico_ventilador
state: "on"
actions:
- action: fan.turn_on
target:
entity_id: fan.ventilador_habitacion
- action: input_boolean.turn_on
target:
entity_id: input_boolean.av_ventilador_iniciado_por_asistente
- action: timer.start
target:
entity_id: timer.av_ventilador_automatico
data:
duration: >-
{{ timedelta(minutes=states('input_number.av_minutos_ventilador') | int(20)) }}No recomiendo automatizar la apertura física de una ventana sin analizar antes atrapamientos, lluvia, seguridad, mascotas y mecanismos de parada. Este proyecto empieza ofreciendo recomendaciones humanas.
Tarjeta básica para Lovelace
Esta versión utiliza únicamente tarjetas nativas:
type: vertical-stack
cards:
- type: tile
entity: sensor.asistente_de_ventilacion
name: Asistente de ventilación
vertical: false
features_position: bottom
- type: markdown
content: >-
**{{ states('sensor.asistente_de_ventilacion') }}**
{{ state_attr('sensor.asistente_de_ventilacion', 'motivo') }}
- type: entities
title: Comparación higrotérmica
show_header_toggle: false
entities:
- sensor.asistente_ventilacion_temperatura_interior
- sensor.asistente_ventilacion_humedad_relativa_interior
- sensor.asistente_ventilacion_humedad_absoluta_interior
- sensor.asistente_ventilacion_punto_de_rocio_interior
- sensor.asistente_ventilacion_vpd_interior
- sensor.asistente_ventilacion_temperatura_exterior
- sensor.asistente_ventilacion_humedad_relativa_exterior
- sensor.asistente_ventilacion_humedad_absoluta_exterior
- type: entities
title: Control
entities:
- input_select.av_escenario
- input_boolean.av_avisos_movil
- input_boolean.av_control_automatico_ventiladorDespués puedes mejorarla con button-card, gráficos y botones para los escenarios.
Cinco escenarios para probar sin esperar al tiempo real
El selector input_select.av_escenario permite comprobar toda la lógica:
| Escenario | Resultado esperado |
|---|---|
| Caso 1 | VENTILA AHORA |
| Caso 2 | NO CONVIENE ABRIR por humedad exterior |
| Caso 3 | YA PUEDES CERRAR |
| Caso 4 | USA EL VENTILADOR |
| Caso 5 | NO CONVIENE ABRIR por climatización |
Selecciona siempre Real al terminar las pruebas.
Los datos de demostración solo alimentan los sensores normalizados y no la media real del exterior. Esto evita que una prueba artificial condicione las recomendaciones posteriores.
Calibración del AirGuard
El SNZB-02M permite aplicar compensaciones de temperatura, humedad y presión. No calibres comparándolo durante unos minutos con cualquier termómetro doméstico.
Una comprobación razonable requiere:
- Colocar ambos dispositivos juntos.
- Mantenerlos lejos del sol y de corrientes directas.
- Esperar a que se estabilicen.
- Comparar durante varias horas.
- Utilizar como referencia un instrumento en el que confíes.
- Aplicar correcciones pequeñas y documentarlas.
El manual indica que el sensor debe despertarse con una pulsación antes de cambiar algunos parámetros. En Zigbee2MQTT también pueden configurarse los desplazamientos de calibración.
Qué haría diferente con un sensor de CO₂
Al añadir CO₂ separaría nuevamente dos conceptos:
- Necesidad de renovar el aire: CO₂ alto, VOC o partículas.
- Oportunidad de abrir: temperatura, humedad absoluta, lluvia, viento y climatización.
Por ejemplo, un CO₂ elevado puede obligarnos a ventilar aunque la diferencia higrotérmica no sea perfecta. El estado podría cambiar a VENTILA POR CO2, o activar una ventilación mecánica si existe.
No conviene estimar CO₂ a partir de temperatura y humedad. Para medirlo hace falta una sonda específica, preferiblemente con un principio de medición adecuado y documentado.
Problemas frecuentes
El estado indica DATOS INSUFICIENTES
Abre los atributos de binary_sensor.asistente_ventilacion_datos_disponibles. El atributo fuentes_faltantes enumera qué medición no tiene un valor válido.
Comprueba especialmente:
- Errores al copiar los
entity_id. - Sensores en
unknownounavailable. - Unidades incorrectas.
- El filtro exterior durante los primeros minutos después del reinicio.
Aparecen temperatura, humedad y presión, pero no batería
Zigbee2MQTT documenta la batería, pero las entidades finales pueden variar según el descubrimiento MQTT, la versión o la configuración. La batería no es obligatoria para el asistente.
El sensor se desconecta
El manual recomienda reducir distancia y obstáculos. Una red Zigbee estable necesita routers alimentados permanentemente —enchufes, relés o bombillas adecuadas— distribuidos entre el coordinador y los sensores de batería.
La recomendación cambia demasiado
Comprueba que utilizas la versión con confirmación de cinco minutos. Esta permanencia elimina cambios causados por una lectura aislada, mientras que la histéresis térmica evita órdenes prematuras de cierre. Si aun así existe inestabilidad, aumenta el filtrado de los sensores antes de modificar los umbrales.
En verano recomienda abrir cuando no quiero
Revisa la ventaja térmica mínima para abrir, el descenso exterior de 15 minutos y el máximo exterior permitido sobre la temperatura interior. También puedes añadir condiciones horarias, presencia o previsión de temperatura nocturna.
La presión parece distinta de la estación meteorológica
Confirma si comparas presión absoluta o corregida al nivel del mar. Dos servicios pueden mostrar referencias distintas aunque ambos funcionen correctamente.
Preguntas frecuentes sobre el Asistente de ventilación
¿Puedo montarlo solo con el AirGuard?
No para comparar interior y exterior. El AirGuard proporciona la parte interior, pero hace falta temperatura y humedad exteriores. No coloques el SNZB-02M a la intemperie porque no es impermeable.
¿Es obligatorio medir presión?
No. La presión mejora el contexto y el historial, pero la decisión principal utiliza temperatura y humedad absoluta.
¿Necesito un contacto en la ventana?
No para recibir VENTILA AHORA, pero sí para que Home Assistant sepa que estás ventilando y pueda avisarte de cuándo cerrar.
¿Puedo utilizar OpenWeatherMap como sensor exterior?
Puede servir para empezar o como respaldo, pero una sonda local protegida representa mucho mejor el microclima real de la vivienda.
¿La humedad relativa del exterior debe ser menor?
No necesariamente. Lo importante es la humedad absoluta. Aire frío con una humedad relativa elevada puede contener menos agua que aire interior caliente con un porcentaje inferior.
¿El AirGuard mide calidad del aire?
Mide temperatura, humedad y presión. No mide CO₂, VOC ni partículas, por lo que no sustituye un monitor completo de calidad del aire.
¿Puedo encender automáticamente un extractor?
Sí. Sustituye la entidad fan por tu extractor o adapta la acción al dominio switch. Empieza con la autorización automática desactivada y verifica varios días las decisiones.
¿Por qué el asistente recomienda un ventilador si hace calor?
Porque fuera puede estar todavía más caliente o húmedo. El ventilador mueve el aire y mejora la sensación térmica, pero no enfría la habitación ni renueva el aire por sí mismo.
Conclusión
Este proyecto convierte un sensor ambiental económico en algo mucho más útil que una gráfica. El Asistente de ventilación compara interior y exterior, distingue necesidad de oportunidad, evita decisiones basadas únicamente en humedad relativa y explica por qué recomienda abrir, cerrar o esperar.
El SONOFF AirGuard TH Pressure encaja muy bien como sonda interior por su combinación de temperatura, humedad, presión, Zigbee, calibración y alimentación por pila. Sin embargo, el valor principal nace al combinarlo con Home Assistant, un buen sensor exterior y la lógica adecuada.
Empieza con recomendaciones, observa los resultados y ajusta. La combinación de package, ficha y prompt permite trasladar el proyecto a otra instalación sin exigir que todos sus usuarios sepan programar Jinja, pero Home Assistant sigue teniendo la última palabra: revisa las entidades y valida siempre la configuración antes de reiniciar.
Después podrás añadir contacto de ventana, climatización, lluvia, viento, avisos, ventilador y, en una segunda fase, una sonda de CO₂ para transformar este asistente higrotérmico en un sistema de ventilación todavía más completo.
