Sensación térmica de OpenData AEMET en Home Asssistant.

Hoy vamos a mejorar la integración de una estación de la Agencia Estatal de Meteorología, usando OpenData AEMET para calcular la Sensación térmica en Home Assistant para condiciones extremas de frío y calor, como siempre… con Paciencia.

Una de las integraciones más útiles que podemos usar en nuestro sistema Home Assistant son los datos de alguna estación meteorológica cercana, con la garantía de estar mantenida y calibrada por la Agencia Estatal de Meteorología.

Una vez tengamos los datos en nuestro sistema, crearemos templates para realizar los cálculos y ver su riesgo asociado, tanto en situaciones de mucho frío como de mucho calor.

Para ver condiciones en el interior de la vivienda os recomiendo la siguiente oferta , y el post relacionado:

  • Higrómetro doméstico, los datos se pueden leer con claridad en varios brillos y ángulos.
  • Alta sensibilidad y precisión de Suiza, siente los cambios sutiles de temperatura y humedad en un suspiro.
  • Una expresión para deletrear comodidad, dulce y sencilla.
  • Pantalla de bajo consumo, batería de botón CR2032 para un año.
  • Sensor avanzado de temperatura y humedad Sensirion integrado, precisión de temperatura de 0,1 grados, precisión de humedad del 0,1 por ciento de humedad relativa
  • A través de la aplicación Mi para encender el humidificador cuando la humedad interior es demasiado baja y el aire acondicionado cuando la temperatura interior es demasiado alta
  • Pantalla digital LED, puede comprobar fácilmente la temperatura y la humedad
  • Tenga en cuenta que las pilas no están incluidas.

Vamos paso a paso:

Paso 1. Obtención de API Key para OpenData AEMET

Lo primero es obtener una clave API para poder acceder a los datos en abierto. Desde openData de AEMET solicitaremos dicha clave:

AEMET OpenData API

Nos pedirán nuestro email para el siguiente paso:

AEMET OpenData

Finalmente nos habrá llegado un email con un enlace para confirmar. Tendremos que esperar muy poco hasta recibir, de nuevo por email, la clave API de acceso.

Guardad esta clave, pues nos hará falta para este u otros proyectos. La agencia estatal pone a dispoción del público información muy valiosa si se sabe usar, y van ampliando el catálogo.

Paso 2. Elección de la estación

Desde la página de observación, seleccionamos «hoy y últimos días», y podréis buscar vuestra población desde un mapa o directamente en una tabla:

Identificación estación AEMET

En el encabezado de los datos obtenidos tendremos nuestra identificación de estación. La anotamos:

Identificación estación AEMET Home Assistant

Paso 3. Integración AEMET

Con la API key y el código de nuestra estación, el siguiente paso es la instalación en nuestro propio sistema HA.

La manera más fácil de integrar la podemos encontrar en HACS. Si no tenéis instalado HACS os lo recomiendo, y podéis verlo en un apartado dentro de este otro post

Una vez tengamos HACS, buscaremos el addon en el repositorio:

Temperatura AEMET Home Assistant

Nos queda incluir las siguientes líneas en el fichero configuration.yaml, y mejor si se pone la api_key en secrets (yo lo dejo para que se vea la posición donde va). Recordad reemplazar los datos de API key y la id de estación con los vuestros:

- platform: aemet
    name: "AEMET"
    api_key: "xxxbGciOiJIUzIxxxxxyJzdWvbmlvLxxxxxxGxhLnNpbHZhQGdtYWlsL..."
    station_id: "5911A"
    monitored_conditions:
      - temperature
      - humidity
      - pressure
      - precipitation
      - snow
      - visibility
      - wind_speed
      - wind_max_speed
      - wind_bearing

Otra opción más fácil si quieres todos y cada uno de los atributos disponibles es desde la propia instalación de la integración:

Hasta 37 entidades rescata con la API de OpenData de AEMET, tomando los datos de la estación más cercana a la ubicación definida en la aplicación. Entre dichos datos estará (como un sensor más expuesto del sistema) el código de la estación, precipitaciones. nieve, temperaturas, etc… todo guardado en histórico si os apetece.

AEMET proporciona datos codificados. La interpretación de cada código nos la puede facilitar la propia AEMET en los metadatos, pero mucho más fácil que esta integración nos la traduzca directamente, ¿verdad?

Paso 4. Cálculo de expresiones de sensación térmica en Home Assistant

Para ampliar la información que nos facilitan desde la Agencia, haremos el cálculo en HA, haciendo uso de dos índices establecidos por la propia Agencia, llamados Wind Chill para el caso de frío, y Heat Index en el caso de calor. Esto nos dará información muy util sobr estos conceptos.

Lo primero es aclarar un error muy común: El resultado de estos cálculos NO es una temperatura y NO tiene unidades de ºC. Es un número adimensional para luego evaluar en varios tramos de peligrosidad cada caso.

Las expresiones que implementaremos para el cálculo de la sensación térmica usarán la temperatura como una de las variables, además de la velocidad del viento:

Para el caso de sensación de frío:

Sensación térmica por frío. Home Assistant

Y para la sensación de calor:

Sensación Térmica por calor. Home Assistant
  • T = temperatura del aire ambiente en grados Celsius
  • V = velocidad del viento en km/h a la altura estándar de medida (10 m), que tendremos que multiplicar por 1.5 para adaptar a la altura de la cara.
  • HR = humedad relativa del aire en %

Los posibles valores podemos verlos representados en las siguientes tablas:

Cálculo de sensación térmica en Home Assistant.

Cálculo de sensación térmica en Home Assistant.

Como véis las variables que necesitamos las tenemos ya disponibles en la integración de (temperatura, humedad relativa y velocidad de viento):

También, para hacer las cosas bien, tendremos en cuenta los rangos de aplicación de estas dos fórmulas:

  • Para el caso de frío el cálculo será válido para -50ºC < T < 10ºC
  • Para el caso de calor el cálculo será váliso para T > 26ºC y HR > 40%

Pues bien, con todos estos datos, ya podemos empezar. Primero averiguando los nombres de nuestras variables en nuestro sistema:

  • T = sensor.aemet_temperature
  • V = sensor.aemet_wind_speed
  • HR = sensor.aemet_humidity

Y haciendo uso de la magia de Jinja, los template de los nuevos sensores nos quedarán de la siguiente forma en nuestro fichero configuration.yaml:

  - platform: template
    sensors:

      aemet_stf:
        friendly_name: "Sensac térmica por frío"
        unit_of_measurement: ''
        value_template: "
		{% set T=states('sensor.aemet.temperature')|float %}
		{% set V=states('sensor.aemet_wind_speed')|float %}
		{%- if T>-50 and T<10 -%}
		  {{ (( 13.1267 + 0.6215*T)-11.37*(V*1.5)**0.16 + 0.3965*T*(V*1.5)**0.16 ) | round(0)}}
		{%- else -%}
		  No evaluado
		{%- endif -%}"


      aemet_stc:
        friendly_name: "Sensac térmica por calor"
        unit_of_measurement: ''
        value_template: "
		{% set T=states('sensor.aemet_temperature')|float %}
		{% set HR=states('sensor.aemet_humidity')|float %}
		{%- if T>26 and HR>40 -%}
		  {{ (-8.78469476 + 1.61139411*T + 2.338548839*HR - 0.14611605*T*HR - 0.012308094*T**2 - 0.016424828*HR**2 + 0.002211732*T**2*HR + 0.00072546*T*HR**2 - 0.000003582*T**2*HR**2) | round(0)}}
		{%- else -%}
		  No evaluado
		{%- endif -%}"

Estos índices numéricos de sensación térmica de por sí no nos dicen mucho. Deberemos evaluarlos usando las siguiente tablas facilitadas por la Agencia:

Para el caso de frío:

Evaluación riesgo frío. Home Assistant

Y para el caso de calor:

Evaluación riesgo calor. Home Assistant

Por tanto, tendremos estos otros dos sensores a incluir en la misma sección que los dos anteriores en nuestro fichero configuration.yaml para luego mostrarlos en nuestro dashboard:

      aemet_stf_riesgo:
        friendly_name: "Riesgo térmico por frío"
        unit_of_measurement: ''
        value_template: "
		{% set stf=states('sensor.aemet_stf') %}
        {%- if stf!='No evaluado' -%}
          {% set stf=states('sensor.aemet_stf')|int %}
		  {%- if stf>-10 -%}
            Sin riesgo
          {%- elif stf<=-10 and stf>=-27 -%}
		    Riesgo bajo
          {%- elif stf<=-28 and stf>=-39 -%}
            Riesgo moderado
          {%- elif stf<=-40 and stf>=-54 -%}
            Riesgo alto
          {%- elif stf<=-55 -%}
            Riesgo muy alto
          {%- endif -%}
		{%- else -%}
          No evaluado
        {%- endif -%}"
        

      aemet_stc_riesgo:
        friendly_name: "Riesgo térmico por calor"
        unit_of_measurement: ''
        value_template: "
        {% set stc=states('sensor.aemet_stc') %}
        {%- if stc!='No evaluado' -%}
          {% set stc=states('sensor.aemet_stc')|int %}
	      {%- if stc<27 -%}
            Sin riesgo
          {%- elif stc>=27 and stc<=32 -%}
	        Precaución
          {%- elif stc>=33 and stc<=40 -%}
            Precaución extrema
          {%- elif stc>=41 and stc<=53 -%}
            Peligro
          {%- elif stc>=54 -%}
            Peligro extremo
          {%- endif -%}
	    {%- else -%}
          No evaluado
        {%- endif -%}"

En nuestro dashboard la representación de la sensación térmica nos quedaría de la siguiente manera:

Cálculo de sensación térmica en Home Assistant.

En mi opinión las estaciones de la Agencia Estatal de Meteorología son la solición ideal para estos temas tratados, pero para aquellos enamorados de le meteorología, lo ideal es montar tu estación a medida por ejemplo con el equipo de Netatmo:

  • Controla en tiempo real tu ambiente interior y exterior: temperatura, humedad y calidad del aire al interior y exterior, nivel del ruido interior, presión barométrica
  • Recibe alertas en tiempo real: con nuestra estación meteorológica, configura alertas interiores y exteriores y recibe notificaciones en tu smartphone; sabrás cuando hay que ventilar con la alerta de ventilación
  • Accede a tus datos a distancia y con tu voz: accede con total facilidad y en todo momento a tus mediciones meteorológicas desde tu smartphone, tableta u ordenador, o utilizando tu voz para interactuar con alexa en amazon echo o con siri gracias a la compatibilidad con apple homekit
  • Analiza el pasado: accede el histórial de tus datos para observar lo que sucede cuando no estás o analiza los gráficos para entender las tendencias meteorológicas
  • Prevé el futuro: consulta las previsiones meteorológicas de 7 días para adaptar tu vestimenta y tus actividades en el exterior
  • Programa automáticamente tu Estación Meteorológica Inteligente con tus otros dispositivos conectados para optimizar sus funciones
  • Puedes utilizar la temperatura exterior indicada por la Estación para ajustar la calefacción con el Termostato Inteligente Netatmo
  • Apuesta por una concepción francesa y un diseño elegante: se acabaron las estaciones meteorológicas poco estéticas, la estación meteorológica interior exterior netatmo se integra en tu casa
  • Fácil instalación y aplicación gratuita: la instalación de tu estación meteorológica wifi es fácil y la aplicación es gratuita para siempre
  • Únete a la comunidad netatmo: comparte tus datos meteorológicos con tus amigos y consulta nuestro weathermap para comparar tus datos con los de nuestra comunidad de estaciones meteorológicas

Aparte de mostrarlos, podréis usarlo para otros casos en automatizaciones basados en la sensación térmica, avisos por telegram, etc. Podéis dejar vuestras ideas en los comentarios.

Deja un comentario