Saltar al contenido

Asistente de ventilación en Home Assistant: cuándo abrir o cerrar las ventanas

01/08/2026
Asistente de ventilación en Home Assistant comparando el aire interior y exterior

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 INSUFICIENTES
  • NO HACE FALTA VENTILAR
  • VENTILA AHORA
  • VENTILANDO
  • YA PUEDES CERRAR
  • NO CONVIENE ABRIR
  • USA 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.

OFERTAS · TIENDA OFICIAL

Descuentos en domótica SONOFF

Interruptores WiFi, relés, sensores, tiras LED y más. Las promociones cambian con frecuencia en la tienda oficial.

Cupón: TECNOYFOTO (10% de descuento al pagar)

Ver ofertas oficiales Enlace de afiliado · Tienda Sonoff

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ísticaEspecificación
ProtocoloZigbee 3.0, IEEE 802.15.4
Alimentación1 pila CR2477, 3 V
Autonomía anunciadaHasta aproximadamente 2 años
Temperatura de trabajoDe -20 a 60 °C
Humedad de trabajoDel 5 al 95 % HR, sin condensación
Presión de trabajoDe 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
Dimensiones45 × 45 × 17,6 mm
Peso27,3 g con la pila
Uso previstoInterior; 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:

  1. ¿La habitación necesita que hagamos algo?
  2. ¿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:

  • T es la temperatura en grados Celsius.
  • HR es la humedad relativa en porcentaje.
  • e es 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ónMedición obligatoriaEjemplo
InteriorTemperaturaAirGuard TH Pressure
InteriorHumedad relativaAirGuard TH Pressure
ExteriorTemperaturaBME280, estación local o sonda equivalente
ExteriorHumedad relativaBME280, 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 opcionalQué mejora
Contacto de ventanaPermite distinguir VENTILANDO y YA PUEDES CERRAR
Detección de lluviaEvita recomendar abrir cuando llueve
Racha de vientoBloquea la apertura cuando supera un límite
Entidad climateEvita abrir mientras calefacción o aire acondicionado están activos
Ventilador controlableOfrece una alternativa cuando abrir no mejora la habitación
NotificacionesEnvía avisos al móvil o por voz
Presión atmosféricaAñade media y tendencia barométrica
Sensor de CO₂Detecta necesidad de renovación del aire, no solo confort térmico
VOC y PM2.5Amplían el proyecto hacia contaminación y calidad del aire
Batería y calidad de enlaceAyudan 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

  1. Retira la lengüeta aislante de la pila.
  2. Si no entra automáticamente en emparejamiento, mantén pulsado el botón durante 5 segundos.
  3. El indicador parpadeará lentamente durante un máximo de 180 segundos.
  4. Activa «Permitir unión» en Zigbee2MQTT o añade un dispositivo desde ZHA.
  5. Espera a que termine la entrevista del dispositivo.
  6. 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_pressure

Debes 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 → Estados

Comprueba 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 packages

Si ya existe una sección homeassistant:, no crees otra: añade únicamente packages: dentro de la existente.

2. Descargar los tres archivos

  1. Package público del Asistente de ventilación.
  2. Plantilla para rellenar las entidades.
  3. 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_id como sensor.dormitorio_humedad identifica 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 on signifique ventana abierta en el sensor normalizado.
  • Que el ventilador conserve su dominio real: fan o switch.
  • 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_humedad

Los 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.yaml

No 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ón

No 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_ventilacion

Home 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:

AyudanteValor inicialFunción
Humedad relativa alta60 %Indica necesidad de actuar
Temperatura alta26 °CIndica exceso de calor
Diferencia de humedad para abrir1,2 g/m³Ventaja mínima exterior
Diferencia de humedad para cerrar0,4 g/m³Histéresis para evitar cambios continuos
Ventaja térmica mínima para abrir0,8 °CDiferencia normal para iniciar la ventilación por calor
Ventaja térmica para mantener abierto0,2 °CUmbral de cierre térmico con histéresis
Descenso exterior en 15 minutos0,2 °CPermite anticipar el enfriamiento nocturno
Exterior máximo sobre interior1 °CTolerancia para secar solo cuando no existe exceso de calor
Racha máxima45 km/hBloqueo opcional por viento
Tiempo de ventilador20 minDuració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 VENTILANDO mientras 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: hablar

Adapta 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_ventilador

Despué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:

EscenarioResultado esperado
Caso 1VENTILA AHORA
Caso 2NO CONVIENE ABRIR por humedad exterior
Caso 3YA PUEDES CERRAR
Caso 4USA EL VENTILADOR
Caso 5NO 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 unknown o unavailable.
  • 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.