HectorziN - Domótica y Home Assistant
Blog de HectorziN
Volver a todas las entradas

Aire Acondicionado Super Inteligente: Climatiza por Sensación Térmica en Home Assistant

¿Te ha pasado que el termostato marca 24°C pero sientes calor? Esto ocurre porque la temperatura real es solo una parte de la ecuación; la humedad juega un papel crucial en cómo percibimos el clima. En este artículo, vamos a llevar tu domótica al siguiente nivel: aprenderás a crear un termostato inteligente que no se basa en la temperatura del aire, sino en la sensación térmica, logrando un confort absoluto en tu hogar.

En YouTube comparto más tutoriales, pruebas y domótica real. Suscribirme

Climatización mediante la sensación térmica

Vídeo relacionado en YouTube

Video

1. El Concepto: Temperatura vs. Sensación Térmica

La sensación térmica es lo que realmente siente nuestro cuerpo. Si hay mucha humedad, el sudor no se evapora y sentimos más calor del que marca el termómetro. Home Assistant nos permite calcular este índice (Heat Index) de forma automática para tomar mejores decisiones de climatización.

Requisitos Previos

2. Visualización: Comfortable Environment Card

Antes de automatizar, vamos a visualizar el nivel de confort. Para ello, instalaremos una tarjeta espectacular desde HACS:

  1. Busca e instala: Comfortable Environment Card.
  2. Añádela a tu Dashboard vinculando tus sensores de temperatura y humedad.
  3. Resultado: Verás de forma gráfica si tu ambiente es "confortable", "demasiado húmedo" o "muy seco".

👉 Repositorio de la tarjeta

3. Creación del Termostato Basado en Plantillas

Para que el aire acondicionado actúe según la sensación térmica, necesitamos una integración que nos permita crear un "clima virtual". Usaremos Template Climate.

Paso 1: Instalar Template Climate

Desde HACS, añade el siguiente repositorio personalizado: https://github.com/jcwillox/hass-template-climate

Paso 2: Configuración del código

Debes añadir la lógica en tu configuration.yaml. Aquí tienes el esquema básico:

Sensor de sensación térmica y de confort:

yaml
template:
  - sensor:
      - name: "Sensación Térmica HACS"
        unique_id: sensacion_termica_hacs
        unit_of_measurement: "°C"
        state: >
          {% set T = (states('sensor.termostato_calefaccion') | float(0) * 9 / 5) + 32 %}
          {% set RH = states('sensor.termometro_multimedia_humidity') | float(0) %}

          {% set simple_HI = 0.5 * (T + 61.0 + ((T - 68.0) * 1.2) + (RH * 0.094)) %}

          {% if simple_HI >= 80.0 %}
            {% set HI = -42.379
              + 2.04901523 * T
              + 10.14333127 * RH
              - 0.22475541 * T * RH
              - 0.00683783 * T * T
              - 0.05481717 * RH * RH
              + 0.00122874 * T * T * RH
              + 0.00085282 * T * RH * RH
              - 0.00000199 * T * T * RH * RH %}

            {% if RH < 13.0 and T >= 80.0 and T <= 112.0 %}
              {% set HI = HI - (((13.0 - RH) / 4.0) * (((17.0 - (T - 95.0) | abs) / 17.0) | sqrt)) %}
            {% elif RH > 85.0 and T >= 80.0 and T <= 87.0 %}
              {% set HI = HI + (((RH - 85.0) / 10.0) * ((87.0 - T) / 5.0)) %}
            {% endif %}
          {% else %}
            {% set HI = simple_HI %}
          {% endif %}

          {{ ((HI - 32) * 5 / 9) | round(1) }}

      - name: "Confort Térmico"
        unique_id: confort_termico
        unit_of_measurement: "°C"
        state: >
          {% set tempInC = states('sensor.termostato_calefaccion') | float(0) %}
          {% set humValue = states('sensor.termometro_multimedia_humidity') | float(0) %}
          {% set confort = tempInC - (0.55 * (1 - 0.01 * humValue) * (tempInC - 14.5)) %}
          {{ confort | round(2) }}

Termostato que funciona basado en la sensación térmica:

yaml
climate:
  - platform: climate_template
    name: "Aire Acondicionado Salón (Sensación térmica)"
    unique_id: aire_acondicionado_salon_sensacion_termica

    modes:
      - "off"
      - "cool"

    min_temp: 18
    max_temp: 30
    precision: 0.5
    temp_step: 0.5

    hvac_mode_template: "{{ states('climate.aire_acondicionado') }}"

    current_temperature_template: >
      {{ states('sensor.sensacion_termica') | float(0) }}

    target_temperature_template: >
      {% set target_real = state_attr('climate.aire_acondicionado', 'temperature') | float(24) %}
      {% set temp_real = state_attr('climate.aire_acondicionado', 'current_temperature') | float(0) %}
      {% set sensacion = states('sensor.sensacion_termica') | float(0) %}
      {{ target_real - (temp_real - sensacion) }}

    set_hvac_mode:
      - action: climate.set_hvac_mode
        target:
          entity_id: climate.aire_acondicionado
        data:
          hvac_mode: "{{ hvac_mode }}"

    set_temperature:
      - action: climate.set_temperature
        target:
          entity_id: climate.aire_acondicionado
        data:
          temperature: >
            {% set temp_real = state_attr('climate.aire_acondicionado', 'current_temperature') | float(0) %}
            {% set sensacion = states('sensor.sensacion_termica') | float(0) %}
            {{ temperature + (temp_real - sensacion) }}
Nota: Tienes todos los códigos detallados y listos para copiar en mi Gist de GitHub.

Si tu aire acondicionado es antiguo y usas un emisor IR, este termostato virtual enviará las señales de "Encender" o "Apagar" a tu Broadlink cuando la sensación térmica supere el umbral que tú definas. Es la forma más barata y eficiente de convertir un aire viejo en uno de última generación.

Conclusión

Automatizar por sensación térmica no es solo un capricho tecnológico, es optimizar el uso de la energía y mejorar tu bienestar diario. Al final, lo que buscamos no es que el termómetro marque un número, sino sentirnos bien en nuestra propia casa.

Recursos útiles para tu proyecto:

  • ¿Dudas? Únete a la comunidad en Telegram.

¡No olvides suscribirte a YouTube HectorziN para más trucos que hacen tu casa realmente inteligente!

Video relacionado

CUPONES ALIEXPRESS