Home Assistant: calefacción según presencia y ventilación con el detector de presencia

Home Assistant: calefacción según presencia y ventilación con el detector de presencia

La temporada de calefacción ya ha empezado, y la mayoría de los termostatos de radiador funcionan con un programa horario. Pero el programa no sabe si el martes por la noche se usa de verdad el salón o si todos están sentados en la cocina. Con un detector de presencia, Home Assistant baja la temperatura cuando la habitación lleva un rato vacía y vuelve a calentar en cuanto alguien se queda. Si sube la humedad, Home Assistant le avisa de que debe ventilar, apaga la calefacción durante el tiempo de ventilación y después le recuerda que cierre las ventanas. En el baño, el mismo valor medido enciende el ventilador.

Los detectores de presencia Senvolon KL, KL LD y KL MZ no solo detectan si hay alguien en la habitación. En el mismo aparato miden también la temperatura, la humedad y la presión atmosférica, justo donde está montado el detector, es decir, en la habitación y no directamente junto al radiador. Nuestras guías anteriores trataban de la luz según presencia y luminosidad y de la sirena como alarma. Esta vez el tema es el clima interior. Un solo detector le da a Home Assistant todo lo que necesita una calefacción según presencia: si hay alguien en la habitación, qué temperatura hace y qué humedad tiene el aire.

Probado con Home Assistant 2026.10.2, el detector de presencia KL MZ y dos termostatos · Estado a 23.10.2026

Requisitos

  • Un detector de presencia con sensor de clima ambiental: KL, KL LD o KL MZ, integrado en Home Assistant mediante MQTT. La configuración se explica en Integrar el detector de presencia en Home Assistant. El modelo Basis no mide el clima ambiental, pero se puede ampliar con el multisensor climático.
  • Un termostato de radiador que Home Assistant pueda controlar. Aparece allí como entidad climate.…, tanto si está conectado mediante Zigbee, Matter, wifi o la integración del fabricante. En esta guía se llama climate.wohnzimmer.
  • Home Assistant a partir de la versión 2024.10.
  • Para el paso 5: un ventilador de baño conmutable, por ejemplo mediante un actuador de conmutación empotrado (switch.badluefter).
  • Para los avisos: la aplicación Home Assistant Companion en el smartphone (notify.mobile_app_ihr_smartphone).

Nota: Los ejemplos utilizan los ID de entidad que MQTT Discovery crea para el KL MZ (multi_zone_presence_sensor_…). En el KL y el KL LD, y después de un cambio de nombre, se llaman de otra forma. Encontrará sus ID reales en Herramientas para desarrolladores → Estados.

Lo que el detector de presencia sabe mejor que el termostato

Un programa horario fija cuándo debe estar caliente cada habitación, y la vida diaria rara vez lo sigue. El despacho se calienta desde las 8 de la mañana, aunque hoy trabaje en la mesa de la cocina. Y en el salón la calefacción funciona desde las 17 h, mientras todos siguen en la cocina. Home Assistant suele saber ya por el smartphone si hay alguien en casa. Pero así no sabe qué habitación se está utilizando en ese momento; para eso hace falta un detector en la habitación. Lo más evidente sería un detector de movimiento. Sin embargo, solo reacciona al movimiento: quien lee tranquilamente en el sofá deja de existir para él al cabo de unos minutos, y la calefacción baja en plena tarde. El radar del detector de presencia reconoce también a las personas que están sentadas en silencio o durmiendo. En el KL MZ, las zonas de permanencia mantienen además la presencia en el sofá o en el escritorio.

A esto se suma la temperatura. El termostato mide justo al lado del radiador. Sus 22 °C no son los 22 °C del sofá, y un valor de corrección fijo solo ayuda a medias: con la calefacción en marcha la diferencia es grande, y con ella apagada se reduce. El detector de presencia mide donde usted se sienta y, a partir del paso 3, el termostato regula según ese valor. Con la humedad ocurre lo mismo. La humedad relativa depende de la temperatura del aire, de modo que junto a un radiador caliente marca menos que en el centro de la habitación. En nuestro salón, dos termostatos de radiador, el termostato de pared y el detector de presencia indicaban al mismo tiempo 58, 65, 61 y 66 %. Por eso los avisos de ventilación se basan en el valor del detector.

¿Qué valores utilizamos?

No existe una única temperatura ambiente correcta. Algunas personas pasan frío a 20 °C y otras duermen mejor con la ventana abierta. Los valores que le convienen los decide usted, y por eso en esta guía se guardan en ayudantes que puede cambiar en cualquier momento. Para simplificar, en los ejemplos nos orientamos por la Agencia Federal de Medio Ambiente de Alemania (Umweltbundesamt, UBA). Recomienda en la zona de estar como máximo 20 °C (en alemán), en la cocina 18 °C y en el dormitorio 17 °C. Si va a estar fuera varias horas, conviene bajar a unos 18 °C. Para los dormitorios, la UBA indica 16 °C como límite inferior, y también las habitaciones poco utilizadas deben mantenerse ligeramente calefactadas: si una habitación se enfría, aumenta la humedad relativa y puede crecer moho en las paredes frías.

La humedad óptima en la vivienda se sitúa, según la Agencia Federal de Medio Ambiente, entre el 40 y el 60 por ciento de humedad relativa. Si permanece claramente por encima durante días, puede formarse moho en las paredes frías. Quien quiere evitar el moho y mejorar el clima ambiental ventila por eso según el valor medido y no según la sensación. Ventilar correctamente en invierno significa: dos o tres veces al día, abrir las ventanas de par en par durante unos cinco minutos y apagar la calefacción mientras tanto. Después de ducharse o cocinar, la UBA aconseja ventilar durante cinco a diez minutos inmediatamente después. Una ventana basculante permanente enfría la pared junto a la ventana, desperdicia energía de calefacción y aporta poco aire fresco.

Paso 1: Crear los ayudantes

Las temperaturas no pertenecen a la automatización de forma fija, sino a ayudantes. Así podrá cambiarlas más adelante en el panel sin tocar YAML. En Ajustes → Dispositivos y servicios → Ayudantes → Crear ayudante → Número cree dos ayudantes. Los nombres de los ayudantes se escriben tal cual, en alemán, porque Home Assistant forma de ellos los ID de entidad que utilizan los ejemplos:

  • Komforttemperatur (temperatura de confort): mínimo 16, máximo 24, paso 0,5, unidad °C, valor inicial 20. Home Assistant genera a partir de él input_number.komforttemperatur.
  • Absenktemperatur (temperatura reducida): los mismos límites, valor inicial 18. De él resulta input_number.absenktemperatur.

Además, cree un ayudante del tipo Interruptor llamado Heizen nach Anwesenheit (calefacción según presencia; input_boolean.heizen_nach_anwesenheit). Con él desactiva todo el control, por ejemplo en verano o cuando duermen invitados en la habitación.

Un segundo interruptor llamado Wohnzimmer belegt (salón ocupado; input_boolean.wohnzimmer_belegt) recuerda si el paso 2 consideró la habitación por última vez como ocupada o como vacía. El paso 3 lo lee. Usted no lo conmuta, por lo que tampoco hace falta que esté en el panel.

Paso 2: Bajar la calefacción según la presencia

La automatización tiene dos disparadores. Si la habitación está vacía durante 30 minutos, pone el termostato en la temperatura reducida. Si el detector de presencia detecta a alguien durante cinco minutos seguidos, lo devuelve a la temperatura de confort. En ambos casos establece además el ayudante Wohnzimmer belegt.

¿Por qué 30 minutos? Quien va un momento a la cocina no debería volver a una habitación que se está enfriando. Un radiador tarda un rato en volver a calentarse, y los cambios continuos no sirven de nada. En el propio aparato, el «Retardo de la sala» solo se puede ajustar hasta 120 segundos. Por eso, el tiempo de espera más largo lo asume Home Assistant.

Lo más rápido es el blueprint «Heizen nach Anwesenheit» (calefacción según presencia). Un blueprint es una automatización con marcadores de posición. Al crearla, Home Assistant le pide en un formulario el detector de presencia, el termostato y los ayudantes del paso 1, y allí ajusta también los tiempos de espera de 5 y 30 minutos. No tiene que cambiar ningún ID de entidad en el YAML. Después de importarlo, vaya a Ajustes → Automatizaciones y escenas → Blueprints y haga clic en el blueprint para crear la automatización, una más por cada habitación adicional. Todos los blueprints de esta guía están disponibles en GitHub. Sus nombres y descripciones están en alemán.

Importar el blueprint «Heizen nach Anwesenheit» en Home Assistant

Sin blueprint, o si quiere adaptar la automatización, vaya a Ajustes → Automatizaciones y escenas → Crear automatización → Crear una nueva automatización, abra arriba a la derecha el menú ⋮ → Editar en YAML e inserte lo siguiente:

Nota: Las automatizaciones utilizan el campo note: para comentarios en cada paso. Si su versión de Home Assistant no conoce este campo, elimine las líneas note:. La función no cambia.

alias: "Calefacción: salón según presencia"
description: >
  Baja la temperatura cuando el salón lleva 30 minutos vacío
  y vuelve a calentar cuando hay alguien en la habitación durante cinco minutos.
mode: restart
triggers:
  - trigger: state
    entity_id: binary_sensor.multi_zone_presence_sensor_presence
    to: "off"
    for:
      minutes: 30
    id: leer
    note: "Ajuste el tiempo de espera según sus necesidades. Introduzca su propio ID de entidad."
  - trigger: state
    entity_id: binary_sensor.multi_zone_presence_sensor_presence
    to: "on"
    for:
      minutes: 5
    id: belegt
    note: "Si alguien solo pasa o un aparato se activa brevemente, no se calienta."
conditions:
  - condition: state
    entity_id: input_boolean.heizen_nach_anwesenheit
    state: "on"
    note: "Interruptor principal del paso 1."
actions:
  - choose:
      - conditions:
          - condition: trigger
            id: leer
        sequence:
          - action: input_boolean.turn_off
            target:
              entity_id: input_boolean.wohnzimmer_belegt
          - action: climate.set_temperature
            target:
              entity_id: climate.wohnzimmer
            data:
              temperature: "{{ states('input_number.absenktemperatur') | float }}"
      - conditions:
          - condition: trigger
            id: belegt
        sequence:
          - action: input_boolean.turn_on
            target:
              entity_id: input_boolean.wohnzimmer_belegt
          - action: climate.set_temperature
            target:
              entity_id: climate.wohnzimmer
            data:
              temperature: "{{ states('input_number.komforttemperatur') | float }}"

La bajada de 2 °C es deliberadamente pequeña. La habitación se enfría de todos modos solo despacio en media hora y, cuando usted vuelve, está de nuevo caliente en poco tiempo. Quien baja más ahorra más durante el tiempo de vacío, pero espera más tiempo el calor.

Las detecciones breves no activan la calefacción. Si alguien solo atraviesa la habitación o un aparato se mueve durante unos segundos, el termostato permanece en la temperatura reducida gracias a los cinco minutos del disparador «belegt». Sin embargo, la media hora hasta la bajada vuelve a empezar desde cero con cada detección. En nuestra prueba, una impresora 3D en funcionamiento en la misma habitación activaba el detector una y otra vez, y la habitación nunca llegó a bajar de temperatura. En el KL MZ se descartan estas fuentes con una zona de interferencia. Si desea que el calor llegue más rápido al entrar, acorte los cinco minutos. Un radiador necesita de todos modos algunos minutos para calentarse.

Si el termostato tiene su propio programa horario, este puede volver a sobrescribir el valor de consigna en el siguiente punto de conmutación. En ese caso, desactive el programa en el termostato o en su aplicación y deje el control a Home Assistant. Nuestros termostatos funcionaron en la prueba sin programa horario; este caso no formó parte de la prueba.

Para más habitaciones, duplique la automatización, cambie el detector de presencia y el termostato y cree para cada habitación un ayudante propio como Schlafzimmer belegt (dormitorio ocupado). En el dormitorio, cree ayudantes propios con valores más bajos, por ejemplo 17 °C y 16 °C. El radar reconoce también a quienes duermen, así que la calefacción no se apaga por la noche por falta de movimiento.

Paso 3: Hacer que el termostato regule según la temperatura de la habitación

Lo más limpio es que el propio termostato acepte un valor de temperatura externo. Algunos modelos ofrecen para ello en su integración un ajuste propio, por ejemplo «temperatura externa» o «sensor remoto». Compruebe en Ajustes → Dispositivos y servicios si su termostato tiene una entidad de este tipo y escriba en ella, mediante una automatización, el valor del detector de presencia.

Si su termostato no puede hacerlo, Home Assistant compensa la diferencia. La siguiente automatización compara cada 15 minutos la temperatura del termostato con la del detector de presencia y desplaza el valor de consigna exactamente en esa diferencia. Si el termostato mide 23 °C y el detector en el sofá 20 °C, pero se desean 20 °C en el sofá, pone el termostato a 23 °C.

Como blueprint se llama «Heizen nach Raumtemperatur regeln» (regular según la temperatura ambiente). Allí ajusta el aumento máximo sobre la consigna; el valor predeterminado es 4 °C.

Importar el blueprint «Heizen nach Raumtemperatur regeln» en Home Assistant

alias: "Calefacción: regular el salón según la temperatura ambiente"
description: >
  Desplaza el valor de consigna del termostato en la diferencia
  entre el radiador y la habitación.
mode: single
triggers:
  - trigger: time_pattern
    minutes: /15
variables:
  ziel: >
    {{ states('input_number.komforttemperatur') | float
       if is_state('input_boolean.wohnzimmer_belegt', 'on')
       else states('input_number.absenktemperatur') | float }}
  am_thermostat: "{{ state_attr('climate.wohnzimmer', 'current_temperature') | float(0) }}"
  im_raum: "{{ states('sensor.multi_zone_presence_sensor_temperature') | float(0) }}"
  sollwert: "{{ [[ziel + am_thermostat - im_raum, ziel] | max, ziel + 4] | min | round(1) }}"
conditions:
  - condition: state
    entity_id: input_boolean.heizen_nach_anwesenheit
    state: "on"
  - condition: not
    conditions:
      - condition: state
        entity_id: climate.wohnzimmer
        state: "off"
    note: "Dejar en paz un termostato apagado, por ejemplo durante la ventilación."
  - condition: template
    value_template: "{{ am_thermostat > 0 and im_raum > 0 }}"
    note: "Calcular solo cuando ambos valores estén disponibles."
  - condition: template
    value_template: >
      {{ (sollwert - state_attr('climate.wohnzimmer', 'temperature') | float(0)) | abs >= 0.5 }}
    note: "Omitir los cambios pequeños, esto protege la batería del termostato."
actions:
  - action: climate.set_temperature
    target:
      entity_id: climate.wohnzimmer
    data:
      temperature: "{{ sollwert }}"

Hay dos límites incorporados. El valor de consigna nunca baja de la temperatura deseada y sube como máximo 4 °C por encima. Si el detector de presencia falla o no entrega ningún valor, la automatización no calcula y el termostato conserva su último valor de consigna.

Si en ese momento rige la temperatura de confort o la reducida, la regulación lo lee del ayudante Wohnzimmer belegt. Así, los 30 y los 5 minutos del paso 2 también se aplican aquí. En la primera prueba, la regulación todavía evaluaba el detector por sí misma y bajaba la temperatura en cuanto la habitación llevaba un minuto vacía; el tiempo de espera del paso 2 resultaba así ineficaz. Tras un reinicio de Home Assistant, el ayudante conserva su estado. La media hora del paso 2 vuelve sin embargo a empezar desde cero, y la habitación permanece como máximo media hora más en la temperatura de confort. La automatización deja en paz un termostato apagado, para no interferir con la ventilación que se describe más abajo.

Paso 4: Ventilar cuando sube la humedad

Cocinar, ducharse, secar la ropa e incluso respirar aportan humedad al aire de la habitación. Esta automatización le avisa cuando la humedad de la habitación está durante 15 minutos por encima del 60 % y hay alguien que puede ventilar. Si no hay nadie en la habitación, espera hasta que llegue alguien.

En el blueprint «Lüften nach Luftfeuchte (Hinweis)» (aviso de ventilación) ajusta el umbral, la duración, la pausa y el nombre de la habitación para el mensaje.

Importar el blueprint «Lüften nach Luftfeuchte (Hinweis)» en Home Assistant

alias: "Ventilación: aviso salón"
description: >
  Avisa de una humedad alta en cuanto hay alguien en la habitación.
mode: single
max_exceeded: silent
triggers:
  - trigger: numeric_state
    entity_id: sensor.multi_zone_presence_sensor_humidity
    above: 60
    for:
      minutes: 15
    note: "Umbral según la UBA. Introduzca su propio ID de entidad."
  - trigger: state
    entity_id: binary_sensor.multi_zone_presence_sensor_presence
    to: "on"
conditions:
  - condition: numeric_state
    entity_id: sensor.multi_zone_presence_sensor_humidity
    above: 60
  - condition: state
    entity_id: binary_sensor.multi_zone_presence_sensor_presence
    state: "on"
actions:
  - action: notify.mobile_app_ihr_smartphone
    data:
      title: "Por favor, ventile"
      message: >
        Humedad en el salón:
        {{ states('sensor.multi_zone_presence_sensor_humidity') | round(0) }} %.
        Abra las ventanas de par en par durante cinco minutos.
  - delay:
      hours: 2
    note: "Un aviso como máximo cada dos horas."

El disparador de presencia hace que el aviso no se pierda: si la humedad sube mientras todos están fuera, el mensaje llega en cuanto alguien entra en la habitación. La pausa del final evita que se lo recuerden cada vez que entra. Mientras dura, Home Assistant descarta otros disparadores; max_exceeded: silent evita que en el registro aparezca cada vez la advertencia «Already running».

Ventilar con la calefacción apagada

Para que el radiador no caliente contra la ventana abierta al ventilar a fondo, el panel recibe un botón «Lüften». Con una pulsación se apaga la calefacción; pasados cinco minutos, Home Assistant le recuerda cerrar y vuelve a poner la calefacción. Para ello cree un ayudante del tipo Botón llamado Wohnzimmer lüften (ventilar salón). Home Assistant forma el ID de entidad a partir del nombre y reduce las diéresis a la letra base: de ahí resulta input_button.wohnzimmer_luften, no wohnzimmer_lueften.

El blueprint correspondiente se llama «Lüften mit abgedrehter Heizung (Taste)» (botón de ventilación), y allí se puede ajustar el tiempo de ventilación.

Importar el blueprint «Lüften mit abgedrehter Heizung (Taste)» en Home Assistant

alias: "Ventilación: calefacción apagada mientras se ventila"
description: >
  Apaga la calefacción durante cinco minutos y después recuerda
  cerrar las ventanas.
mode: restart
triggers:
  - trigger: state
    entity_id: input_button.wohnzimmer_luften
actions:
  - action: climate.set_hvac_mode
    target:
      entity_id: climate.wohnzimmer
    data:
      hvac_mode: "off"
  - delay:
      minutes: 5
    note: "En invierno bastan, según la UBA, unos cinco minutos."
  - action: notify.mobile_app_ihr_smartphone
    data:
      title: "Cerrar las ventanas"
      message: "La calefacción del salón vuelve a funcionar."
  - action: climate.set_hvac_mode
    target:
      entity_id: climate.wohnzimmer
    data:
      hvac_mode: heat
  - action: climate.set_temperature
    target:
      entity_id: climate.wohnzimmer
    data:
      temperature: "{{ states('input_number.komforttemperatur') | float }}"
    note: "Quien ventila está en la habitación: temperatura de confort."

Si su termostato no tiene el modo «off», ponga durante los cinco minutos la temperatura más baja que acepte y después vuelva a la temperatura de confort.

Panel de Home Assistant del salón: termostato a 20 °C, interruptor Heizen nach Anwesenheit, Komforttemperatur 20 °C y Absenktemperatur 18 °C, botón Lüften y debajo presencia, temperatura y humedad del detector de presencia
Así se ve el salón en el panel: termostato, interruptor principal, las dos temperaturas del paso 1, el botón «Lüften» y los valores medidos del detector de presencia.

Paso 5: Ventilador del baño según la humedad

En el baño no decide la presencia, sino la humedad después de ducharse. El ventilador se pone en marcha cuando la humedad supera el 70 % y se apaga cuando está diez minutos por debajo del 60 %. La distancia entre ambos umbrales evita que el ventilador se encienda y se apague cada minuto.

Para ello, monte el detector de presencia fuera de la zona de salpicaduras de la ducha y del lavabo. Además detecta si hay alguien en el baño y puede encender la luz al mismo tiempo, como se describe en Control de la iluminación con el KL MZ.

Esta automatización solo la hemos comprobado con valores medidos simulados, no en el baño. Los umbrales 70 y 60 % son un valor inicial; después de unos días, observe la evolución de la humedad tras la ducha y ajústelos a su baño.

alias: "Baño: ventilador según humedad"
description: >
  Enciende el ventilador por encima del 70 % y lo apaga por debajo del 60 %.
mode: restart
triggers:
  - trigger: numeric_state
    entity_id: sensor.multi_zone_presence_sensor_humidity
    above: 70
    id: feucht
    note: "Introduzca el ID de entidad del detector del baño."
  - trigger: numeric_state
    entity_id: sensor.multi_zone_presence_sensor_humidity
    below: 60
    for:
      minutes: 10
    id: trocken
actions:
  - choose:
      - conditions:
          - condition: trigger
            id: feucht
        sequence:
          - action: switch.turn_on
            target:
              entity_id: switch.badluefter
      - conditions:
          - condition: trigger
            id: trocken
        sequence:
          - action: switch.turn_off
            target:
              entity_id: switch.badluefter

Para que los valores medidos sean correctos

  • Tiempo de estabilización: Tras el encendido, la temperatura, la humedad y la presión atmosférica necesitan hasta 30 minutos para ser correctas. Pruebe las automatizaciones solo después.
  • Lugar de montaje: no directamente encima del radiador, no al sol junto a la ventana y no junto a la cafetera. De lo contrario, el detector mide la fuente de calor en lugar de la habitación.
  • Asiento dentro de la zona de presencia: si el detector solo lo reconoce de vez en cuando en el sofá, la calefacción depende de esas detecciones breves. Si faltan durante más tiempo que el tiempo de espera, Home Assistant baja la temperatura aunque usted esté sentado en la habitación. El planificador de habitaciones muestra antes del montaje si el sofá y el sillón están dentro de la zona de presencia. En el KL MZ, además, una zona de permanencia en el sofá mantiene la presencia.
  • Calibración: si un valor se desvía de un aparato de comparación, corríjalo en la interfaz del detector, en «System», con un offset, por separado para temperatura, humedad y presión atmosférica.

¿Qué detector de presencia es el adecuado?

Para salón, dormitorio y despacho con un asiento fijo, el KL MZ es la primera opción: las zonas de permanencia mantienen la presencia en el sofá, las zonas de interferencia descartan un ventilador o una cortina, y distingue hasta cuatro personas. Para habitaciones sencillas bastan el KL con 6 m o el KL LD con 9 m de alcance. Los tres miden el clima ambiental sin un segundo aparato. Si ya tiene un modelo Basis, amplíelo con el multisensor climático. La comparación de todos los modelos la encontrará en la vista general de todos los detectores de presencia.

Preguntas frecuentes

¿El control según la presencia ahorra costes de calefacción?

Calienta menos las habitaciones en las que no hay nadie, y eso ahorra energía. Cuánto depende de la casa, de la calefacción y de la frecuencia con que las habitaciones están vacías. Por eso no indicamos una cifra fija.

¿El detector de presencia sustituye al termostato?

No. El detector de presencia mide y avisa, el termostato regula el radiador. Home Assistant conecta ambos.

¿Funciona también con suelo radiante?

Los avisos de ventilación, sí. La bajada según la presencia aporta poco con suelo radiante, porque tarda horas en alcanzar una nueva temperatura.

¿Puede el detector de presencia reconocer ventanas abiertas?

No directamente. Para eso existen los contactos de ventana. El botón «Lüften» de esta guía apaga la calefacción al ventilar sin necesidad de un contacto.

¿Necesito la nube?

No. Los detectores de presencia envían sus valores mediante MQTT directamente a Home Assistant en su propia red.

Todos los datos de los aparatos figuran en las páginas de producto del detector de presencia KL MZ y del detector de presencia KL con sensor de clima ambiental. Cómo funciona el radar frente a un detector de movimiento se explica en ¿Detector de presencia o detector de movimiento?

Vea qué cubre su detector de presencia antes de comprar

Dibuje su habitación con muebles y puertas, coloque un detector y vea dónde detecta presencia. En el navegador, también en el móvil, sin registro.