{"id":2552,"date":"2026-02-18T06:55:00","date_gmt":"2026-02-18T06:55:00","guid":{"rendered":"https:\/\/www.mainmind.com\/blog\/?p=2552"},"modified":"2026-04-18T07:03:23","modified_gmt":"2026-04-18T07:03:23","slug":"anticipacion-meteorologica-suelo-radiante-home-assistant","status":"publish","type":"post","link":"https:\/\/www.mainmind.com\/blog\/anticipacion-meteorologica-suelo-radiante-home-assistant\/","title":{"rendered":"Anticipaci\u00f3n meteorol\u00f3gica para suelo radiante con Home Assistant"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">El suelo radiante tiene un problema inherente: reacciona tarde. Cuando el termostato detecta que hace fr\u00edo y pide calor, el agua caliente tiene que calentar la solera, que a su vez tiene que calentar el aire de la habitaci\u00f3n. Ese proceso puede tardar entre 2 y 4 horas dependiendo del grosor de la solera y de si el suelo est\u00e1 en fr\u00edo o ya templado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La consecuencia pr\u00e1ctica es que si esperas a que baje la temperatura para encender la calefacci\u00f3n, ya llevas horas de retraso. La soluci\u00f3n es anticiparse: saber que va a hacer fr\u00edo <em>antes<\/em> de que haga fr\u00edo, y arrancar el sistema con suficiente antelaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos a intentar explicarlo y c\u00f3mo implementar en Home Assistant usando la predicci\u00f3n meteorol\u00f3gica de Met.no, que ya viene integrada de serie.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">La idea<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La integraci\u00f3n de Met.no en Home Assistant incluye un forecast horario con hasta 90 horas de predicci\u00f3n. En lugar de reaccionar a la temperatura actual exterior, podemos mirar qu\u00e9 temperatura va a hacer en N horas y actuar en consecuencia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El par\u00e1metro N es lo que llamamos <strong>inercia t\u00e9rmica del suelo<\/strong>: el tiempo que tarda el sistema en llegar a temperatura desde que arranca. Es algo que hay que medir emp\u00edricamente en cada instalaci\u00f3n, pero un punto de partida razonable son 2 horas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">El sensor de temperatura anticipada<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El primer componente es un sensor template que consulta el forecast de Met.no y devuelve la temperatura prevista dentro de N horas:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\ntemplate:\n  - sensor:\n      - name: &quot;temp_exterior_anticipada&quot;\n        unique_id: clima_temp_exterior_anticipada\n        unit_of_measurement: &quot;\u00b0C&quot;\n        device_class: temperature\n        icon: mdi:weather-partly-cloudy\n        state: &gt;\n          {% set horas = states(&#039;input_number.inercia_suelo_horas&#039;) | int(2) %}\n          {% set forecast = state_attr(&#039;weather.casa&#039;, &#039;forecast&#039;) %}\n          {% if forecast is none or forecast | length == 0 %}\n            {{ state_attr(&#039;weather.casa&#039;, &#039;temperature&#039;) | float(0) }}\n          {% else %}\n            {% set objetivo = (now() + timedelta(hours=horas)) .isoformat() %}\n            {% set ns = namespace(temp=none) %}\n            {% for f in forecast %}\n              {% if ns.temp is none and f.datetime &gt; objetivo %}\n                {% set ns.temp = f.temperature %}\n              {% endif %}\n            {% endfor %}\n            {{ ns.temp if ns.temp is not none\n               else state_attr(&#039;weather.casa&#039;, &#039;temperature&#039;) | float(0) }}\n          {% endif %}\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Cambia <code>weather.casa<\/code> por el nombre de tu entidad de Met.no. El sensor recorre el forecast hasta encontrar la primera entrada futura que supera el horizonte temporal que has configurado, y devuelve esa temperatura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si el forecast no est\u00e1 disponible (por ejemplo, justo tras reiniciar HA), cae de vuelta a la temperatura actual exterior.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">El helper de inercia t\u00e9rmica<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El n\u00famero de horas de anticipaci\u00f3n es configurable desde el dashboard, no est\u00e1 hardcodeado:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\ninput_number:\n  inercia_suelo_horas:\n    name: &quot;Inercia t\u00e9rmica suelo (h)&quot;\n    min: 0.5\n    max: 6.0\n    step: 0.5\n    initial: 2.0\n    unit_of_measurement: h\n    icon: mdi:clock-fast\n\n  anticipacion_umbral_temp:\n    name: &quot;Umbral anticipaci\u00f3n exterior (\u00b0C)&quot;\n    min: 0\n    max: 15\n    step: 0.5\n    initial: 8.0\n    unit_of_measurement: &quot;\u00b0C&quot;\n    icon: mdi:thermometer-low\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><code>anticipacion_umbral_temp<\/code> es la temperatura exterior por debajo de la cual el sistema decide arrancar en modo anticipaci\u00f3n. Con 8\u00b0C como punto de partida, si la predicci\u00f3n indica que en 2 horas va a bajar de 8\u00b0C, el sistema act\u00faa ahora.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La automatizaci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Con el sensor listo, la automatizaci\u00f3n es sencilla:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\nautomation:\n  - id: clima_anticipacion_meteo\n    alias: &quot;Clima \u00b7 Anticipaci\u00f3n meteorol\u00f3gica suelo radiante&quot;\n    description: &gt;\n      Activa preset comfort de forma anticipada cuando la temperatura\n      exterior prevista cae del umbral configurado.\n    mode: single\n    trigger:\n      - platform: time_pattern\n        minutes: &quot;\/30&quot;\n    condition:\n      - condition: template\n        value_template: &gt;\n          {{ states(&#039;input_select.modo_casa&#039;) in &#x5B;&#039;Invierno&#039;, &#039;Confort&#039;] }}\n      - condition: template\n        value_template: &gt;\n          {{ states(&#039;sensor.temp_exterior_anticipada&#039;) | float(20) &lt;\n             states(&#039;input_number.anticipacion_umbral_temp&#039;) | float(8) }}\n      - condition: template\n        value_template: &gt;\n          {{ state_attr(&#039;climate.aerotermia_salon&#039;, &#039;preset_mode&#039;) != &#039;comfort&#039; }}\n      - condition: not\n        conditions:\n          - condition: state\n            entity: climate.aerotermia_salon\n            state: &quot;off&quot;\n    action:\n      - service: climate.set_preset_mode\n        target:\n          entity_id: climate.aerotermia_salon\n        data:\n          preset_mode: &quot;comfort&quot;\n      - service: notify.moviles_de_la_granja\n        data:\n          title: &quot;&amp;#x2744;&amp;#xfe0f; Anticipaci\u00f3n clim\u00e1tica activa&quot;\n          message: &gt;\n            Temperatura prevista en\n            {{ states(&#039;input_number.inercia_suelo_horas&#039;) }}h:\n            {{ states(&#039;sensor.temp_exterior_anticipada&#039;) }}\u00b0C.\n            Aerotermia en modo confort por anticipaci\u00f3n.\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">La automatizaci\u00f3n se eval\u00faa cada 30 minutos. Si las condiciones se cumplen, sube el preset de la aerotermia a <code>comfort<\/code> (temperatura m\u00e1s alta) para que el suelo llegue a temperatura antes de que realmente haga falta.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Visualizaci\u00f3n: la clave para calibrar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La parte m\u00e1s interesante es poder ver en una gr\u00e1fica la temperatura exterior real junto con la anticipada. Si est\u00e1n bien alineadas, significa que Met.no predice con precisi\u00f3n y que el par\u00e1metro de inercia es correcto.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\n- type: history-graph\n  title: Exterior y referencia\n  hours_to_show: 24\n  entities:\n    - entity: sensor.aerotermia1_displayedoutsidetemp\n      name: Exterior (sonda)\n    - entity: sensor.temperatura_internet\n      name: Exterior (internet)\n    - entity: sensor.temp_exterior_anticipada\n      name: Exterior anticipada\n    - entity: sensor.aerotermia1_z1roomtemp\n      name: Sal\u00f3n (referencia)\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Lo que ver\u00e1s en la gr\u00e1fica es que la curva \u00abanticipada\u00bb se desplaza N horas hacia la izquierda respecto a la curva real. Si tu suelo tarda 2 horas en responder y configuras <code>inercia_suelo_horas = 2<\/code>, las dos curvas deber\u00edan solaparse visualmente en el historial \u2014 lo que ves en \u00abanticipada\u00bb ahora es lo que tendr\u00e1s como \u00abreal\u00bb en 2 horas.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"311\" height=\"290\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/grafica_temperaturas.jpg\" alt=\"grafica_temperaturas sobre Aerotermia\" class=\"wp-image-2557\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/grafica_temperaturas.jpg 311w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/grafica_temperaturas-300x280.jpg 300w\" sizes=\"auto, (max-width: 311px) 100vw, 311px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"323\" height=\"264\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/grafica_circuito_hidraulico.jpg\" alt=\"grafica_circuito_hidraulico sobre Aerotermia\" class=\"wp-image-2555\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/grafica_circuito_hidraulico.jpg 323w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/grafica_circuito_hidraulico-300x245.jpg 300w\" sizes=\"auto, (max-width: 323px) 100vw, 323px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"309\" height=\"282\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/grafica_termostatos.jpg\" alt=\"grafica_termostatos sobre Aerotermia\" class=\"wp-image-2556\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/grafica_termostatos.jpg 309w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/grafica_termostatos-300x274.jpg 300w\" sizes=\"auto, (max-width: 309px) 100vw, 309px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo calibrar la inercia t\u00e9rmica<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El proceso de calibraci\u00f3n es emp\u00edrico y requiere unos d\u00edas de observaci\u00f3n:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Arranca con 2 horas<\/strong> \u2014 es un buen punto de partida para soleras est\u00e1ndar de 5-8 cm.<\/li>\n\n\n\n<li><strong>Observa la temperatura interior<\/strong> en las horas que siguen a una bajada brusca exterior. Si el sal\u00f3n empieza a enfriarse antes de que el suelo responda, aumenta el valor.<\/li>\n\n\n\n<li><strong>Ajusta en pasos de 0,5 horas<\/strong> hasta que el sistema empiece a calentar justo a tiempo.<\/li>\n\n\n\n<li><strong>Considera la estaci\u00f3n<\/strong>: en oto\u00f1o el suelo est\u00e1 m\u00e1s fr\u00edo de base y tarda m\u00e1s. En primavera responde m\u00e1s r\u00e1pido.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Una se\u00f1al clara de que el par\u00e1metro est\u00e1 bien ajustado es que nunca notes que el suelo llega tarde \u2014 la casa siempre est\u00e1 a temperatura cuando la necesitas, sin haber arrancado el sistema antes de lo necesario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Par\u00e1metros de configuraci\u00f3n avanzada<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El sistema completo expone todos sus par\u00e1metros como helpers de HA, accesibles desde el dashboard sin tocar YAML. Esto es importante para poder ajustar el comportamiento en el d\u00eda a d\u00eda sin necesidad de editar configuraci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hist\u00e9resis de demanda<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\ninput_number:\n  clima_histeresis:\n    name: &quot;Hist\u00e9resis demanda zonas&quot;\n    min: 0.1\n    max: 1.0\n    step: 0.1\n    initial: 0.3\n    unit_of_measurement: &quot;\u00b0C&quot;\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">La hist\u00e9resis evita el efecto de flapping: que una v\u00e1lvula se abra y cierre repetidamente cuando la temperatura oscila justo alrededor del setpoint. Con 0,3\u00b0C, la v\u00e1lvula se abre cuando la temperatura baja 0,3\u00b0C por debajo del setpoint y se cierra cuando lo supera. Este par\u00e1metro solo aplica a las zonas sin termostato Beca \u2014 las que tienen Beca usan directamente el <code>relay_state<\/code> del propio termostato, que ya incorpora su propia hist\u00e9resis interna.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Throttle de v\u00e1lvulas: cooldown y ventana de correcci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las v\u00e1lvulas de suelo radiante son actuadores lentos. Abrirlas y cerrarlas repetidamente en poco tiempo es ineficiente y potencialmente da\u00f1ino. El sistema implementa un throttle con dos par\u00e1metros:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\ninput_number:\n  valvula_cooldown_min:\n    name: &quot;Cooldown v\u00e1lvulas (min)&quot;\n    min: 1\n    max: 30\n    step: 1\n    initial: 10\n    unit_of_measurement: min\n\n  valvula_correccion_seg:\n    name: &quot;Ventana correcci\u00f3n r\u00e1pida (seg)&quot;\n    min: 5\n    max: 60\n    step: 5\n    initial: 15\n    unit_of_measurement: s\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">La l\u00f3gica: despu\u00e9s de actuar sobre una v\u00e1lvula, el sistema bloquea nuevos cambios durante el cooldown (10 minutos por defecto). Sin embargo, si han pasado menos de 15 segundos desde el \u00faltimo cambio, s\u00ed se permite actuar de nuevo \u2014 es la ventana de correcci\u00f3n para revertir un cambio accidental sin esperar 10 minutos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El throttle se implementa con timestamps Unix en <code>input_number<\/code> en lugar de <code>input_datetime<\/code>, que resulta m\u00e1s robusto en los templates de HA:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\ntemplate:\n  - sensor:\n      - name: &quot;valvula_puede_actuar_03&quot;\n        state: &gt;\n          {% set ts = states(&#039;input_number.ts_suelo_03&#039;) | float(0) %}\n          {% if ts == 0 %}true\n          {% else %}\n            {% set seg = now().timestamp() - ts %}\n            {% set corr = states(&#039;input_number.valvula_correccion_seg&#039;) | float(15) %}\n            {% set cool = states(&#039;input_number.valvula_cooldown_min&#039;) | float(10) * 60 %}\n            {{ (seg &lt; corr or seg &gt; cool) | string | lower }}\n          {% endif %}\n\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">Consignas para zonas sin termostato<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las zonas sin termostato Beca (ba\u00f1os y sal\u00f3n\/cocina) usan sensores de temperatura a pilas y un setpoint configurable:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\ninput_number:\n  consigna_banyo_pasillo:\n    name: &quot;Consigna ba\u00f1o pasillo&quot;\n    min: 15\n    max: 26\n    step: 0.5\n    initial: 21.0\n    unit_of_measurement: &quot;\u00b0C&quot;\n\n  consigna_salon:\n    name: &quot;Consigna sal\u00f3n \/ cocina \/ comedor&quot;\n    min: 15\n    max: 26\n    step: 0.5\n    initial: 21.0\n    unit_of_measurement: &quot;\u00b0C&quot;\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">El sal\u00f3n, cocina y comedor comparten sensor y consigna porque son un espacio abierto \u2014 climatizarlos de forma independiente no tiene sentido hidr\u00e1ulico.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A tener en cuenta<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Suelo refrescante en verano<\/strong>: la misma l\u00f3gica se puede invertir para el modo refrigeraci\u00f3n. En lugar de anticipar bajadas de temperatura, anticipa subidas. El umbral y la inercia son diferentes (el suelo tarda menos en refrescar porque trabaja con menor diferencial t\u00e9rmico), as\u00ed que conviene tener par\u00e1metros separados para cada temporada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>D\u00edas nublados vs d\u00edas de sol<\/strong>: la temperatura exterior es una proxy imperfecta. Un d\u00eda nublado de 10\u00b0C y un d\u00eda soleado de 10\u00b0C tienen demandas de calefacci\u00f3n muy diferentes por la ganancia solar. En una instalaci\u00f3n m\u00e1s avanzada se puede a\u00f1adir un sensor de luminosidad para corregir este factor \u2014 pero eso es material para otro post.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Integraci\u00f3n con presencia<\/strong>: si la casa va a estar vac\u00eda durante el d\u00eda, no tiene sentido anticipar. El sistema de anticipaci\u00f3n deber\u00eda desactivarse en modo \u00abAusente\u00bb y reactivarse con suficiente antelaci\u00f3n antes de volver a casa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Todo el c\u00f3digo de este post forma parte de un paquete m\u00e1s amplio de control clim\u00e1tico multi-zona. El sensor de temperatura anticipada y los helpers son independientes y se pueden usar solos sin el resto del sistema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si tienes suelo radiante con aerotermia y usas Home Assistant, este tipo de anticipaci\u00f3n es probablemente la mejora de confort m\u00e1s grande que puedes implementar con relativamente poco esfuerzo. El coste computacional es m\u00ednimo \u2014 es una consulta al forecast que ya tienes disponible \u2014 y los beneficios en confort y eficiencia energ\u00e9tica son significativos.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"345\" height=\"655\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/panel_control.jpg\" alt=\"panel_control sobre Aerotermia\" class=\"wp-image-2558\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/panel_control.jpg 345w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/panel_control-158x300.jpg 158w\" sizes=\"auto, (max-width: 345px) 100vw, 345px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"351\" height=\"493\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/panel_zonas.jpg\" alt=\"panel_zonas sobre Aerotermia\" class=\"wp-image-2559\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/panel_zonas.jpg 351w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/panel_zonas-214x300.jpg 214w\" sizes=\"auto, (max-width: 351px) 100vw, 351px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"357\" height=\"496\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/configuracion_avanzada.jpg\" alt=\"configuracion_avanzada sobre Aerotermia\" class=\"wp-image-2554\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/configuracion_avanzada.jpg 357w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/Aerotermia\/configuracion_avanzada-216x300.jpg 216w\" sizes=\"auto, (max-width: 357px) 100vw, 357px\" \/><\/figure>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>C\u00f3mo usar el forecast de Met.no en Home Assistant para anticipar la demanda de calefacci\u00f3n en suelo radiante. Sensor template, throttle de v\u00e1lvulas y calibraci\u00f3n de inercia t\u00e9rmica paso a paso.<\/p>\n","protected":false},"author":1,"featured_media":2563,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[864],"tags":[1044,866,1046,1043,1045],"class_list":["post-2552","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-domotica","tag-aerotermia","tag-home-assistant","tag-inercia-termica","tag-suelo-radiante","tag-yaml"],"_links":{"self":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/2552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/comments?post=2552"}],"version-history":[{"count":2,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/2552\/revisions"}],"predecessor-version":[{"id":2562,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/2552\/revisions\/2562"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media\/2563"}],"wp:attachment":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media?parent=2552"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/categories?post=2552"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/tags?post=2552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}