{"id":1895,"date":"2025-06-15T08:00:02","date_gmt":"2025-06-15T06:00:02","guid":{"rendered":"https:\/\/domo.rem81.com\/?p=1895"},"modified":"2026-01-12T18:53:31","modified_gmt":"2026-01-12T17:53:31","slug":"ha-monitoring-et-controle-de-ma-pompe-a-chaleur-daikin-altherma-avec-espaltherma","status":"publish","type":"post","link":"https:\/\/domo.rem81.com\/index.php\/2025\/06\/15\/ha-monitoring-et-controle-de-ma-pompe-a-chaleur-daikin-altherma-avec-espaltherma\/","title":{"rendered":"HA-Monitoring et Contr\u00f4le de ma Pompe \u00e0 Chaleur Daikin Altherma avec ESPAltherma"},"content":{"rendered":"\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Update:<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li>12-01-2026: Voir mon article avec une version ESPHOME: <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-domo-rem-81 wp-block-embed-domo-rem-81\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"2hs0cUbAXU\"><a href=\"https:\/\/domo.rem81.com\/index.php\/2026\/01\/12\/ha-monitoring-de-ma-pac-daikin-altherma-avec-esphome-esphome-altherma-alternative-a-espaltherma\/\">HA \u2013 Monitoring de ma PAC Daikin Altherma avec ESPHome (esphome-altherma) : alternative \u00e0 ESPAltherma<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u00ab\u00a0HA \u2013 Monitoring de ma PAC Daikin Altherma avec ESPHome (esphome-altherma) : alternative \u00e0 ESPAltherma\u00a0\u00bb &#8212; Domo Rem81\" src=\"https:\/\/domo.rem81.com\/index.php\/2026\/01\/12\/ha-monitoring-de-ma-pac-daikin-altherma-avec-esphome-esphome-altherma-alternative-a-espaltherma\/embed\/#?secret=jq8EuHd7Cp#?secret=2hs0cUbAXU\" data-secret=\"2hs0cUbAXU\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Intro:<\/h1>\n\n\n\n<p>Dans cet article, je partage mon exp\u00e9rience sur le monitoring de ma Pompe \u00c0 Chaleur (PAC) Daikin Altherma. Je ne voulais pas d\u00e9pendre du cloud Daikin et j\u2019ai trouv\u00e9 une solution, certes un peu technique, mais tr\u00e8s efficace. Mon installation est compos\u00e9e d\u2019une unit\u00e9 ext\u00e9rieure Daikin Altherma (r\u00e9f\u00e9rence : ERLQ011CAV3) et d\u2019une unit\u00e9 hydraulique (r\u00e9f\u00e9rence : EHBX11CB9W). Le syst\u00e8me assure le chauffage par le sol sur un seul niveau, sans ballon d\u2019eau chaude sanitaire.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h1 class=\"wp-block-heading\">Solution retenue : ESPAltherma<\/h1>\n<\/blockquote>\n\n\n\n<p><strong>ESPAltherma<\/strong> : D\u00e9couvert sur GitHub, ce projet permet, via un simple ESP32, de lire (et uniquement lire) des informations de la PAC en se connectant \u00e0 sa carte m\u00e8re. Je ne vais pas vous expliquer comment programmer l\u2019ESP, car le site officiel le d\u00e9crit tr\u00e8s bien, mais je peux partager mes configurations et mon exp\u00e9rience.<\/p>\n\n\n\n<p><strong>Liens<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/raomin.github.io\/ESPAltherma\/\">https:\/\/raomin.github.io\/ESPAltherma\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/raomin\/ESPAltherma\">https:\/\/github.com\/raomin\/ESPAltherma<\/a><\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Mise en \u0153uvre<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Mat\u00e9riel et installation<\/h2>\n\n\n\n<p>Pour d\u00e9marrer, j\u2019ai utilis\u00e9 un ESP32, des c\u00e2bles adapt\u00e9s et suivi les instructions du projet ESPAltherma pour le connecter \u00e0 ma PAC Daikin Altherma. La documentation GitHub est claire, avec des sch\u00e9mas pr\u00e9cis pour \u00e9viter les erreurs. Une fois l\u2019ESP32 connect\u00e9, j\u2019ai flash\u00e9 le firmware ESPAltherma via l\u2019IDE Arduino. Si vous d\u00e9butez en programmation, pas d\u2019inqui\u00e9tude : le code est bien comment\u00e9, et la communaut\u00e9 est l\u00e0 pour aider.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Raccordement de l\u2019ESP32 au connecteur S21<\/h2>\n\n\n\n<p>Le raccordement de l\u2019ESP32 \u00e0 ma PAC se fait via le connecteur <strong>S21<\/strong> situ\u00e9 sur l\u2019unit\u00e9 hydraulique (EHBX11CB9W). Ce connecteur permet d\u2019acc\u00e9der aux donn\u00e9es de la PAC en lecture seule. Voici le sch\u00e9ma de raccordement que j\u2019ai utilis\u00e9 avec un ESP32 Lolin V1.0.0 :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"735\" height=\"509\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/Capture-decran-du-2025-04-14-18-46-52.png\" alt=\"\" class=\"wp-image-3896\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/Capture-decran-du-2025-04-14-18-46-52.png 735w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/Capture-decran-du-2025-04-14-18-46-52-300x208.png 300w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/Capture-decran-du-2025-04-14-18-46-52-135x93.png 135w\" sizes=\"auto, (max-width: 735px) 100vw, 735px\" \/><\/figure>\n\n\n\n<p><strong>D\u00e9tails du sch\u00e9ma<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>J\u2019ai utilis\u00e9 un module <strong>relais SRD-05VDC-SL-C<\/strong> pour permettre un contr\u00f4le par contact sec (voir section suivante pour plus de d\u00e9tails).<\/li>\n\n\n\n<li>Les broches de l\u2019ESP32 utilis\u00e9es pour la communication avec la PAC sont :<\/li>\n\n\n\n<li><strong>TX (broche 17)<\/strong> : Connect\u00e9e \u00e0 la broche 1 du connecteur S21.<\/li>\n\n\n\n<li><strong>RX (broche 16)<\/strong> : Connect\u00e9e \u00e0 la broche 2 du connecteur S21.<\/li>\n\n\n\n<li>Une r\u00e9sistance de 1 k\u03a9 (R2) est plac\u00e9e entre la broche de contr\u00f4le du relais et l\u2019ESP32 pour limiter le courant.<\/li>\n\n\n\n<li>Le connecteur S21 (J5 sur le sch\u00e9ma) est un connecteur \u00e0 2 broches (signal et masse).<\/li>\n\n\n\n<li>L\u2019alimentation de l\u2019ESP32 est assur\u00e9e via une source 5V (broche 5V de l\u2019ESP32), avec des c\u00e2bles de couleur pour rep\u00e9rer facilement les connexions : rouge (5V), blanc (masse), noir (0V).<\/li>\n<\/ul>\n\n\n\n<p><strong>Pr\u00e9cautions<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Assurez-vous que la PAC est hors tension avant de r\u00e9aliser les connexions.<\/li>\n\n\n\n<li>V\u00e9rifiez les polarit\u00e9s pour \u00e9viter tout court-circuit.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Contr\u00f4le de la PAC<\/h2>\n\n\n\n<p>Le module <strong>SRD-05VDC-SL-C<\/strong> est un relais qui permet de piloter la PAC via un contact sec. Cela offre la possibilit\u00e9 de remplacer le thermostat int\u00e9gr\u00e9 de la PAC par un thermostat virtuel dans Home Assistant. Voici comment cela fonctionne :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Le relais est connect\u00e9 \u00e0 une broche GPIO de l\u2019ESP32 (broche 4 dans mon cas, comme indiqu\u00e9 sur le sch\u00e9ma).<\/li>\n\n\n\n<li>Lorsqu\u2019un signal est envoy\u00e9 \u00e0 cette broche (par exemple, via une automatisation dans Home Assistant), le relais s\u2019active et ferme le contact sec.<\/li>\n\n\n\n<li>Ce contact sec peut \u00eatre connect\u00e9 aux bornes du thermostat de la PAC (g\u00e9n\u00e9ralement les bornes \u00ab\u00a0ON\/OFF\u00a0\u00bb ou similaires), permettant d\u2019allumer ou d\u2019\u00e9teindre la PAC \u00e0 distance.<\/li>\n\n\n\n<li>Dans Home Assistant, j\u2019ai configur\u00e9 une entit\u00e9 <code>switch<\/code> pour contr\u00f4ler cette broche GPIO via MQTT. Voici un exemple de configuration YAML pour ajouter ce switch :<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mqtt:\n  switch:\n    - name: \"PAC Power\"\n      unique_id: \"pac_power_switch\"\n      state_topic: \"espaltherma\/power\/state\"\n      command_topic: \"espaltherma\/power\/set\"\n      payload_on: \"ON\"\n      payload_off: \"OFF\"\n      state_on: \"ON\"\n      state_off: \"OFF\"<\/code><\/pre>\n\n\n\n<p>Avec cette configuration, je peux activer ou d\u00e9sactiver la PAC directement depuis Home Assistant. Par exemple, j\u2019ai cr\u00e9\u00e9 une automatisation qui \u00e9teint la PAC si la temp\u00e9rature int\u00e9rieure d\u00e9passe la consigne pendant plus d\u2019une heure, ou qui l\u2019allume si la temp\u00e9rature ext\u00e9rieure descend en dessous d\u2019un seuil critique.<\/p>\n\n\n\n<p><strong>Remarque<\/strong> : Pour que cela fonctionne, l\u2019ESP32 doit \u00eatre programm\u00e9 pour g\u00e9rer les commandes MQTT et contr\u00f4ler la broche GPIO connect\u00e9e au relais. Vous devrez adapter le firmware ESPAltherma ou utiliser un firmware personnalis\u00e9 (par exemple, avec ESPHome ou Tasmota).<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Int\u00e9gration avec Home Assistant<\/h1>\n\n\n\n<p>L\u2019objectif principal \u00e9tait d\u2019int\u00e9grer les donn\u00e9es de la PAC dans <strong>Home Assistant (HA)<\/strong>, ma plateforme domotique. ESPAltherma envoie les donn\u00e9es via MQTT, que j\u2019ai ensuite utilis\u00e9es pour cr\u00e9er des capteurs personnalis\u00e9s. Mon fichier <code>pac.yaml<\/code> (voir annexe) d\u00e9finit une s\u00e9rie de capteurs pour monitorer des param\u00e8tres comme la temp\u00e9rature de l\u2019eau, la pression, la vitesse des ventilateurs, ou encore le Coefficient de Performance (COP).<\/p>\n\n\n\n<p>Avec ces capteurs, j\u2019ai cr\u00e9\u00e9 un tableau de bord dans HA pour visualiser en temps r\u00e9el :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Les temp\u00e9ratures (eau d\u00e9part\/retour, air ext\u00e9rieur, consigne).<\/li>\n\n\n\n<li>La consommation \u00e9nerg\u00e9tique et l\u2019\u00e9tat de la PAC (chauffage, d\u00e9givrage, etc.).<\/li>\n\n\n\n<li>Le COP, pour \u00e9valuer l\u2019efficacit\u00e9 \u00e9nerg\u00e9tique.<\/li>\n<\/ul>\n\n\n\n<p>J\u2019ai aussi configur\u00e9 des automatisations pour recevoir des alertes, par exemple si le COP chute anormalement ou si la temp\u00e9rature ext\u00e9rieure indique un risque de gel.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zoom sur le calcul du COP<\/h2>\n\n\n\n<p>Le <strong>Coefficient de Performance (COP)<\/strong> est un indicateur cl\u00e9 pour mesurer l\u2019efficacit\u00e9 de ma PAC : il repr\u00e9sente le rapport entre l\u2019\u00e9nergie thermique produite (en kWh) et l\u2019\u00e9nergie \u00e9lectrique consomm\u00e9e (en kWh). Un COP \u00e9lev\u00e9 signifie une PAC performante.<\/p>\n\n\n\n<p>Dans mon fichier <code>pac.yaml<\/code>, j\u2019ai impl\u00e9ment\u00e9 un capteur qui calcule le COP en temps r\u00e9el. Voici comment cela fonctionne :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Donn\u00e9es utilis\u00e9es<\/strong> :<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>D\u00e9bit d\u2019eau<\/strong> (<code>sensor.espaltherma_capteur_debit<\/code>, en l\/min) : mesur\u00e9 par la PAC.<\/li>\n\n\n\n<li><strong>Temp\u00e9rature de l\u2019eau d\u00e9part<\/strong> (<code>sensor.espaltherma_temp_eau_depart_echangeur_plaque<\/code>, en \u00b0C) : temp\u00e9rature de l\u2019eau sortant de l\u2019\u00e9changeur.<\/li>\n\n\n\n<li><strong>Temp\u00e9rature de l\u2019eau retour<\/strong> (<code>sensor.espaltherma_temp_eau_retour_rt4<\/code>, en \u00b0C) : temp\u00e9rature de l\u2019eau revenant dans la PAC.<\/li>\n\n\n\n<li><strong>Puissance \u00e9lectrique<\/strong> (<code>sensor.ecocompteur_pac<\/code>, en W) : mesur\u00e9e via un compteur externe (Linky ou \u00e9quivalent).<\/li>\n\n\n\n<li><strong>Mode de fonctionnement<\/strong> (<code>sensor.espaltherma_mode_fonctionnement<\/code>) : pour s\u2019assurer que la PAC est en mode chauffage.<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Formule<\/strong> :<br>La formule utilis\u00e9e est bas\u00e9e sur la chaleur produite par l\u2019eau chauff\u00e9e :<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"746\" height=\"164\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-27.png\" alt=\"\" class=\"wp-image-3897\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-27.png 746w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-27-300x66.png 300w\" sizes=\"auto, (max-width: 746px) 100vw, 746px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>0.06<\/code> convertit le d\u00e9bit de l\/min en m\u00b3\/h.<\/li>\n\n\n\n<li><code>1.16<\/code> est la chaleur sp\u00e9cifique de l\u2019eau (kWh\/m\u00b3\u00b7\u00b0C).<\/li>\n\n\n\n<li>La puissance consomm\u00e9e est divis\u00e9e par 1000 pour passer de W \u00e0 kWh.<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Code du capteur<\/strong> :<br>Voici l\u2019extrait de <code>pac.yaml<\/code> pour le COP :<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   - name: \"espaltherma_cop\"\n     unique_id: \"espaltherma_cop\"\n     state_class: \"measurement\"\n     state: &gt;-\n       {% set debit = states('sensor.espaltherma_capteur_debit') | float(default=0) %}\n       {% set rt1 = states('sensor.espaltherma_temp_eau_depart_echangeur_plaque') | float(default=0) %}\n       {% set rt4 = states('sensor.espaltherma_temp_eau_retour_rt4') | float(default=0) %}\n       {% set pu = states('sensor.ecocompteur_pac') | float(default=0) %}\n       {% if is_state(\"sensor.espaltherma_mode_fonctionnement\", \"Heating\") and (states('sensor.espaltherma_courant_primaire')|float(default=0) &gt;0) %}\n         {% set cop=((debit*0.06*1.16)*(rt1-rt4)\/(pu\/1000))| float(default=0) | round(2) %}\n         {% if (cop&gt;=0) and (cop&lt;10) %}\n           {{ cop }}\n         {%else%}\n           0\n         {%endif%}\n       {%else%}\n         0\n       {%endif%}<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Garde-fous<\/strong> :<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Le calcul n\u2019est effectu\u00e9 que si la PAC est en mode \u00ab\u00a0Heating\u00a0\u00bb et que le courant primaire est sup\u00e9rieur \u00e0 0 (pour \u00e9viter des valeurs aberrantes).<\/li>\n\n\n\n<li>Si le COP calcul\u00e9 est n\u00e9gatif ou sup\u00e9rieur \u00e0 10 (peu r\u00e9aliste), il est ramen\u00e9 \u00e0 0 pour garantir la fiabilit\u00e9 des donn\u00e9es.<\/li>\n<\/ul>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Utilisation<\/strong> :<br>Ce capteur me permet de suivre l\u2019efficacit\u00e9 de ma PAC en temps r\u00e9el. Par exemple, un COP de 4 signifie que pour 1 kWh d\u2019\u00e9lectricit\u00e9 consomm\u00e9e, la PAC produit 4 kWh de chaleur. En analysant ces donn\u00e9es, j\u2019ai pu ajuster les consignes de temp\u00e9rature pour maximiser le COP, surtout par temps doux.<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\">Visualisation dans Home Assistant<\/h1>\n\n\n\n<p>Pour avoir une vue d\u2019ensemble du fonctionnement de ma PAC, j\u2019ai cr\u00e9\u00e9 un tableau de bord dans Home Assistant qui repr\u00e9sente sch\u00e9matiquement les deux circuits principaux : le c\u00f4t\u00e9 eau (\u00ab\u00a0Water Side\u00a0\u00bb) et le c\u00f4t\u00e9 r\u00e9frig\u00e9rant (\u00ab\u00a0Refrigerant Side\u00a0\u00bb). Voici une capture de cette vue :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"548\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/Capture-decran-du-2025-04-14-18-39-59-1024x548.png\" alt=\"\" class=\"wp-image-3899\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/Capture-decran-du-2025-04-14-18-39-59-1024x548.png 1024w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/Capture-decran-du-2025-04-14-18-39-59-300x160.png 300w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/Capture-decran-du-2025-04-14-18-39-59-768x411.png 768w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/Capture-decran-du-2025-04-14-18-39-59.png 1350w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>le code complet est disponible en annexe.<\/p>\n\n\n\n<p><strong>Description de la vue<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>C\u00f4t\u00e9 eau (Water Side)<\/strong> :<\/li>\n\n\n\n<li><strong>T\u00b0 Dpt R2T<\/strong> : Temp\u00e9rature de l\u2019eau de d\u00e9part apr\u00e8s le BUH (Backup Heater), ici 17,8\u00b0C (<code>sensor.espaltherma_temp_eau_depart<\/code>).<\/li>\n\n\n\n<li><strong>T\u00b0 Avant BUH<\/strong> : Temp\u00e9rature de l\u2019eau avant le BUH, ici 18,9\u00b0C (<code>sensor.espaltherma_temp_eau_depart_echangeur_plaque<\/code>).<\/li>\n\n\n\n<li><strong>T\u00b0 Retour R4T<\/strong> : Temp\u00e9rature de l\u2019eau de retour, ici 18,8\u00b0C (<code>sensor.espaltherma_temp_eau_retour_rt4<\/code>).<\/li>\n\n\n\n<li><strong>T\u00b0 Cons<\/strong> : Consigne de temp\u00e9rature int\u00e9rieure, ici 21,0\u00b0C (<code>sensor.espaltherma_consigne_thermostat_int<\/code>).<\/li>\n\n\n\n<li><strong>T\u00b0 Int<\/strong> : Temp\u00e9rature int\u00e9rieure mesur\u00e9e, ici 21,7\u00b0C (<code>sensor.espaltherma_temp_ambiante_int_r1t<\/code>).<\/li>\n\n\n\n<li><strong>D\u00e9bit<\/strong> : D\u00e9bit d\u2019eau, ici -0,3 l\/min (<code>sensor.espaltherma_capteur_debit<\/code>).<\/li>\n\n\n\n<li><strong>C\u00f4t\u00e9 r\u00e9frig\u00e9rant (Refrigerant Side)<\/strong> :<\/li>\n\n\n\n<li><strong>T\u00b0 Ext R1T<\/strong> : Temp\u00e9rature ext\u00e9rieure, ici 21,0\u00b0C (<code>sensor.espaltherma_temp_air_ext_r1t<\/code>).<\/li>\n\n\n\n<li><strong>T\u00b0 Ext R6T<\/strong> : Temp\u00e9rature ambiante ext\u00e9rieure (capteur R6T), ici 23,7\u00b0C (<code>sensor.espaltherma_temp_air_ext_r6t<\/code>).<\/li>\n\n\n\n<li><strong>T\u00b0 R3T<\/strong> : Temp\u00e9rature du r\u00e9frig\u00e9rant c\u00f4t\u00e9 liquide, ici 18,9\u00b0C (<code>sensor.espaltherma_temp_liquid_r3t<\/code>).<\/li>\n\n\n\n<li><strong>P<\/strong> : Pression du circuit r\u00e9frig\u00e9rant, ici 13,7 bar (<code>sensor.espaltherma_pression<\/code>).<\/li>\n\n\n\n<li><strong>Autres param\u00e8tres<\/strong> :<\/li>\n\n\n\n<li><strong>Status<\/strong> : \u00c9tat de la PAC, ici \u00ab\u00a0ON\u00a0\u00bb.<\/li>\n\n\n\n<li><strong>Fct<\/strong> : Fonctionnement, ici \u00ab\u00a0Fan Only\u00a0\u00bb (ventilateurs actifs uniquement, pas de chauffage).<\/li>\n\n\n\n<li><strong>Th Int\/Ext<\/strong> : Thermostats interne\/externe, ici \u00ab\u00a0OFF\u00a0\u00bb.<\/li>\n\n\n\n<li><strong>I<\/strong> : Courant primaire, ici 0 A (<code>sensor.espaltherma_courant_primaire<\/code>).<\/li>\n\n\n\n<li><strong>P<\/strong> : Puissance \u00e9lectrique, ici 560 W (<code>sensor.ecocompteur_pac<\/code>).<\/li>\n\n\n\n<li><strong>Ej<\/strong> : \u00c9nergie journali\u00e8re, ici 0,68 kWh.<\/li>\n\n\n\n<li><strong>COP<\/strong> : Coefficient de performance, ici 0 (car la PAC est en mode \u00ab\u00a0Fan Only\u00a0\u00bb).<\/li>\n<\/ul>\n\n\n\n<p>Cette vue me permet de comprendre rapidement l\u2019\u00e9tat de ma PAC et de d\u00e9tecter d\u2019\u00e9ventuelles anomalies, comme un d\u00e9bit d\u2019eau n\u00e9gatif ou une temp\u00e9rature de d\u00e9part incoh\u00e9rente.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Calcul de la temp\u00e9rature de d\u00e9part selon la loi d\u2019eau<\/h1>\n\n\n\n<p>Ma PAC Daikin Altherma utilise une <strong>loi d\u2019eau<\/strong> pour r\u00e9guler la temp\u00e9rature de d\u00e9part de l\u2019eau (<code>T\u00b0 Dpt R2T<\/code>) en fonction de la temp\u00e9rature ext\u00e9rieure (<code>T\u00b0 Ext R6T<\/code>). La loi d\u2019eau est une relation lin\u00e9aire qui ajuste la temp\u00e9rature de d\u00e9part pour maintenir un confort int\u00e9rieur tout en optimisant l\u2019efficacit\u00e9 \u00e9nerg\u00e9tique. Pour v\u00e9rifier et comprendre cette temp\u00e9rature de d\u00e9part calcul\u00e9e par la PAC, j\u2019ai impl\u00e9ment\u00e9 un capteur dans Home Assistant : <code>espaltherma_temp_dep_calculee<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Principe de la loi d\u2019eau<\/h2>\n\n\n\n<p>La loi d\u2019eau est d\u00e9finie par une relation lin\u00e9aire entre la temp\u00e9rature ext\u00e9rieure ((T_{ext})) et la temp\u00e9rature de d\u00e9part ((T_{dep})) :<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"744\" height=\"373\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-28.png\" alt=\"\" class=\"wp-image-3900\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-28.png 744w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-28-300x150.png 300w\" sizes=\"auto, (max-width: 744px) 100vw, 744px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"744\" height=\"373\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-29.png\" alt=\"\" class=\"wp-image-3901\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-29.png 744w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-29-300x150.png 300w\" sizes=\"auto, (max-width: 744px) 100vw, 744px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Calcul de la pente et de l\u2019ordonn\u00e9e<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"649\" height=\"265\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-30.png\" alt=\"\" class=\"wp-image-3903\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-30.png 649w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-30-300x122.png 300w\" sizes=\"auto, (max-width: 649px) 100vw, 649px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Limites et application<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"483\" height=\"89\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-31.png\" alt=\"\" class=\"wp-image-3904\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-31.png 483w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2025\/04\/image-31-300x55.png 300w\" sizes=\"auto, (max-width: 483px) 100vw, 483px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Code du capteur<\/h2>\n\n\n\n<p>Voici l\u2019extrait de <code>pac.yaml<\/code> pour ce calcul :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>- name: \"espaltherma_temp_dep_calculee\"\n  unique_id: \"espaltherma_temp_dep_calculee\"\n  state: &gt;-\n    {% set p102=37 %}\n    {% set p103=25 %}\n    {% set p100=-10 %}\n    {% set p101=20 %}\n    {% set a=(p102-p103)\/(p100-p101) | float(default=0) %}\n    {% set b=p103-a*p101 | float %}\n    {% set t = states('sensor.espaltherma_temp_air_ext_r6t') | float(default=0) %}\n    {% if t&lt;= p100 %}\n      {{ p100 }}\n    {%else%}\n      {% if t&gt;= p101 %}\n        {{ p101 }}\n      {%else%}\n        {{ (a*t)+b | float(default=0) |round(2)}}\n      {%endif%}\n    {%endif%}\n  unit_of_measurement: '\u00b0C'\n  state_class: \"measurement\"\n  device_class: \"temperature\"<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Analyse avec la vue HA<\/h2>\n\n\n\n<p>Dans la capture d\u2019\u00e9cran, la temp\u00e9rature ext\u00e9rieure (<code>T\u00b0 Ext R6T<\/code>) est de 23,7\u00b0C. Comme (T_{ext} \\geq 20\u00b0C), le capteur <code>espaltherma_temp_dep_calculee<\/code> renvoie (T_{dep} = 25\u00b0C), ce qui correspond \u00e0 la valeur affich\u00e9e (\u00ab\u00a0T\u00b0 Dpt Calcul\u00e9e : 25,00\u00b0C\u00a0\u00bb). Cependant, la PAC indique une temp\u00e9rature de d\u00e9part r\u00e9elle (<code>T\u00b0 Dpt R2T<\/code>) de 17,8\u00b0C, ce qui est inf\u00e9rieur. Cela peut s\u2019expliquer par le fait que la PAC est en mode \u00ab\u00a0Fan Only\u00a0\u00bb (pas de chauffage actif), donc la temp\u00e9rature de d\u00e9part n\u2019est pas ajust\u00e9e selon la loi d\u2019eau \u00e0 ce moment pr\u00e9cis. Cet \u00e9cart me permet de mieux comprendre le comportement de la PAC et de v\u00e9rifier si ses r\u00e9glages internes correspondent \u00e0 mes attentes.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Ce que j\u2019ai appris<\/h1>\n\n\n\n<p>Ce projet m\u2019a permis de mieux comprendre le fonctionnement de ma PAC Daikin Altherma et d\u2019optimiser son efficacit\u00e9 \u00e9nerg\u00e9tique. Le calcul du COP et de la temp\u00e9rature de d\u00e9part m\u2019a aid\u00e9 \u00e0 identifier les conditions o\u00f9 la PAC est la plus performante (par exemple, temp\u00e9ratures ext\u00e9rieures mod\u00e9r\u00e9es). L\u2019ajout du relais SRD-05VDC-SL-C m\u2019a \u00e9galement permis d\u2019aller au-del\u00e0 du simple monitoring, en int\u00e9grant un contr\u00f4le basique via Home Assistant. Enfin, l\u2019ind\u00e9pendance vis-\u00e0-vis du cloud Daikin est un gros plus : mes donn\u00e9es restent locales, et je ne d\u00e9pends pas d\u2019un service tiers.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Limites<\/h1>\n\n\n\n<p>ESPAltherma est limit\u00e9 \u00e0 la lecture des donn\u00e9es, ce qui est sa fonction principale. Cependant, gr\u00e2ce au relais SRD-05VDC-SL-C, j\u2019ai pu ajouter un contr\u00f4le basique (marche\/arr\u00eat) via un contact sec. Pour un contr\u00f4le plus avanc\u00e9 (par exemple, modifier la consigne de temp\u00e9rature ou les modes de fonctionnement), il faudrait explorer d\u2019autres solutions, comme l\u2019interface officielle Daikin. La configuration initiale demande aussi un peu de temps et des comp\u00e9tences techniques de base, notamment pour le raccordement et la programmation de l\u2019ESP32.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Perspectives<\/h1>\n\n\n\n<p>\u00c0 l\u2019avenir, je pr\u00e9vois d\u2019enrichir mon tableau de bord HA avec des pr\u00e9visions m\u00e9t\u00e9o pour anticiper les besoins de chauffage. J\u2019envisage aussi d\u2019ajouter des capteurs, comme un hygrom\u00e8tre pr\u00e8s de la PAC, pour d\u00e9tecter d\u2019\u00e9ventuelles anomalies li\u00e9es \u00e0 l\u2019humidit\u00e9. Enfin, je pourrais am\u00e9liorer le contr\u00f4le via le relais en int\u00e9grant des sc\u00e9narios plus complexes dans Home Assistant, comme un planning horaire pour la PAC.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Conclusion<\/h1>\n\n\n\n<p>ESPAltherma est une solution puissante pour monitorer et contr\u00f4ler une PAC Daikin Altherma sans passer par le cloud. Avec un ESP32, un relais SRD-05VDC-SL-C, un peu de patience et Home Assistant, j\u2019ai maintenant un syst\u00e8me robuste pour suivre les performances de ma PAC en temps r\u00e9el et la piloter \u00e0 distance. Si vous \u00eates pr\u00eat \u00e0 plonger dans la domotique, je vous encourage \u00e0 tester ce projet ! Mes fichiers de configuration sont en annexe ci-dessous, et je serais ravi d\u2019\u00e9changer avec vous sur vos propres exp\u00e9riences.<\/p>\n\n\n\n<p><strong>Liens utiles<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Projet ESPAltherma : <a href=\"https:\/\/raomin.github.io\/ESPAltherma\/\">https:\/\/raomin.github.io\/ESPAltherma\/<\/a><\/li>\n\n\n\n<li>GitHub : <a href=\"https:\/\/github.com\/raomin\/ESPAltherma\">https:\/\/github.com\/raomin\/ESPAltherma<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Annexes : <\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Contenu du fichier:  <code>pac.yaml<\/code><\/h2>\n\n\n\n<p>Voici le fichier complet de configuration utilis\u00e9 pour int\u00e9grer les donn\u00e9es ESPAltherma dans Home Assistant :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>####################################################\n#                                                  #\n#                      PAC                         #\n#                                                  #\n####################################################\n\n# \ntemplate:\n\n  - sensor:\n# Conversion de la trame JSON MQTT en template\n# Numero correspond au numero de ligne du fichier pac_attributs.txt\n    # L27\n    - name: \"espaltherma_mode_fonctionnement\"\n      unique_id: \"espaltherma_mode_fonctionnement\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Mode de fonctionnement') }}\n\n    # L28\n    - name: \"espaltherma_thermostat_ext\"\n      unique_id: \"espaltherma_thermostat_ext\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Thermostat ON\/OFF Ext') }}\n\n    # L31\n    - name: \"espaltherma_degivrage\"\n      unique_id: \"espaltherma_degivrage\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','D\u00e9givrage') }}\n\n    # L59\n    - name: \"espaltherma_temp_air_ext_r1t\"\n      unique_id: \"espaltherma_temp_air_ext_r1t\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Temp. d air ext\u00e9rieur(R1T)')|float(0)|round(1) }}\n      unit_of_measurement: '\u00b0C'\n      state_class: \"measurement\"\n      device_class: \"temperature\"\n\n    # L60\n    - name: \"espaltherma_temp_air_ext_r6t\"\n      unique_id: \"espaltherma_temp_air_ext_r6t\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Capteur ext. de temp. ambiante int\u00e9rieure (R6T)')|float(0)|round(1) }}\n      unit_of_measurement: '\u00b0C'\n      state_class: \"measurement\"\n      device_class: \"temperature\"\n\n    # L66\n    - name: \"espaltherma_pression\"\n      unique_id: \"espaltherma_pression\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Capteur de pression') }}\n      unit_of_measurement: 'bar'\n      state_class: \"measurement\"\n      device_class: \"pressure\"\n\n    # L69\n    - name: \"espaltherma_courant_primaire\"\n      unique_id: \"espaltherma_courant_primaire\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Courant primaire INV (A)') }}\n      unit_of_measurement: 'A'\n      state_class: \"measurement\"\n      device_class: \"current\"\n\n    # L92\n    - name: \"espaltherma_ventilateur1\"\n      unique_id: \"espaltherma_ventilateur1\"\n      state: &gt;-\n        {{ 10*state_attr('sensor.althermasensors','Ventilateur 1 (10 rpm)')|float(0) }}\n\n    # L93\n    - name: \"espaltherma_ventilateur2\"\n      unique_id: \"espaltherma_ventilateur2\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Ventilateur 2 (palier)')|float(0) }}\n\n    # L117\n    - name: \"espaltherma_thermostat_int\"\n      unique_id: \"espaltherma_thermostat_int\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Thermostat ON\/OFF Int') }}\n\n    # L26\n    - name: \"espaltherma_temp_cible\"\n      unique_id: \"espaltherma_temp_cible\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Consigne LW (principal)')|round(1,default=0) }}\n      unit_of_measurement: '\u00b0C'\n      device_class: \"temperature\"\n      state_class: \"measurement\"\n\n    # L138\n    - name: \"espaltherma_palier_buh1\"\n      unique_id: \"espaltherma_palier_buh1\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Palier1 BUH') }}\n\n    # L139\n    - name: \"espaltherma_palier_buh2\"\n      unique_id: \"espaltherma_palier_buh2\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Palier2 BUH') }}   \n\n    # L149\n    - name: \"espaltherma_temp_eau_depart_echangeur_plaque\"\n      unique_id: \"espaltherma_temp_eau_depart_echangeur_plaque\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Laisser temp. eau avant BUH (R1T)')|round(1,default=0) }}\n      unit_of_measurement: '\u00b0C'\n      state_class: \"measurement\"\n      device_class: \"temperature\"\n\n    # L150\n    - name: \"espaltherma_temp_eau_depart\"\n      unique_id: \"espaltherma_temp_eau_depart\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Laisser temp. eau apr\u00e8s BUH (R2T)')|round(1,default=0) }}\n      unit_of_measurement: '\u00b0C'\n      state_class: \"measurement\"\n      device_class: \"temperature\"\n\n    # L151\n    - name: \"espaltherma_temp_liquid_r3t\"\n      unique_id: \"espaltherma_temp_liquid_r3t\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Temp. r\u00e9frig. c\u00f4t\u00e9 liquide (R3T)')|round(1,default=0) }}\n      unit_of_measurement: '\u00b0C'\n      state_class: \"measurement\"\n      device_class: \"temperature\"\n\n    # L152\n    - name: \"espaltherma_temp_eau_retour_rt4\"\n      unique_id: \"espaltherma_temp_eau_retour_rt4\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Temp. d eau d entr\u00e9e (R4T)')|round(1,default=0) }}\n      unit_of_measurement: '\u00b0C'\n      state_class: \"measurement\"\n      device_class: \"temperature\"\n\n    # L154\n    - name: \"espaltherma_temp_ambiante_int_r1t\"\n      unique_id: \"espaltherma_temp_ambiante_int_r1t\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Temp. ambiante int\u00e9rieure (R1T)')|round(1,default=0) }}\n      unit_of_measurement: '\u00b0C'\n      state_class: \"measurement\"\n      device_class: \"temperature\"\n\n    # L167\n    - name: \"espaltherma_consigne_thermostat_int\"\n      unique_id: \"espaltherma_consigne_thermostat_int\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Consigne Thermostat int')|round(1,default=0) }}\n      unit_of_measurement: '\u00b0C'\n      device_class: \"temperature\"\n      state_class: \"measurement\"\n\n    # L184\n    - name: \"espaltherma_capteur_debit\"\n      unique_id: \"espaltherma_capteur_debit\"\n      state: &gt;-\n        {{ state_attr('sensor.althermasensors','Capteur de d\u00e9bit (l\/min)') }}\n      unit_of_measurement: 'l\/min'\n      state_class: \"measurement\"\n\n    # L186\n    - name: \"espaltherma_signal_ppe_eau\"\n      unique_id: \"espaltherma_signal_ppe_eau\"\n      state: &gt;-\n        {{ 100-state_attr('sensor.althermasensors','Signal de pompe \u00e0 eau (0:max-100:arr\u00eat)')|int(default=0) }}\n      unit_of_measurement: '%'\n      state_class: \"measurement\"\n\n# Extraction des attributs climate.althermat\n    # Consigne Chauffage\n    - name: \"pac_consigne_int\"\n      unique_id: \"pac_consigne_interieure\"\n      state: &gt;-\n        {{ state_attr('climate.altherma','temperature') }}\n      unit_of_measurement: '\u00b0C'\n      state_class: \"measurement\"\n      device_class: \"temperature\"\n\n# Calcul du COP\n    - name: \"espaltherma_cop\"\n      unique_id: \"espaltherma_cop\"\n      state_class: \"measurement\"\n      state: &gt;-\n        {% set debit = states('sensor.espaltherma_capteur_debit') | float(default=0) %}\n        {% set rt1 = states('sensor.espaltherma_temp_eau_depart_echangeur_plaque') | float(default=0) %}\n        {% set rt4 = states('sensor.espaltherma_temp_eau_retour_rt4') | float(default=0) %}\n        {% set i = states('sensor.espaltherma_courant_primaire') | float(default=0) %}\n        {% set u = states('sensor.linky_umoy') | float(default=0) %}\n        {% set pu = states('sensor.ecocompteur_pac') | float(default=0) %}\n        {% if is_state(\"sensor.espaltherma_mode_fonctionnement\", \"Heating\")\n          and (states('sensor.espaltherma_courant_primaire')|float(default=0) &gt;0) %}\n          {% set cop=((debit*0.06*1.16)*(rt1-rt4)\/(pu\/1000))| float(default=0) | round(2) %}\n          {% if (cop&gt;=0) and (cop&lt;10) %}\n            {{ cop }}\n          {%else%}\n            0\n          {%endif%}\n        {%else%}\n          0\n        {%endif%}\n\n# Calcul Temp\u00e9rature de d\u00e9part\n# {% set t = states('sensor.espaltherma_temp_air_ext_r1t') | float(default=0) %}\n    - name: \"espaltherma_temp_dep_calculee\"\n      unique_id: \"espaltherma_temp_dep_calculee\"\n      state: &gt;-\n        {% set p102=37 %}\n        {% set p103=25 %}\n        {% set p100=-10 %}\n        {% set p101=20 %}\n        {% set a=(p102-p103)\/(p100-p101) | float(default=0) %}\n        {% set b=p103-a*p101 | float %}\n        {% set t = states('sensor.espaltherma_temp_air_ext_r6t') | float(default=0) %}\n        {% if t&lt;= p100 %}\n          {{ p100 }}\n        {%else%}\n          {% if t&gt;= p101 %}\n            {{ p101 }}\n          {%else%}\n            {{ (a*t)+b | float(default=0) |round(2)}}\n          {%endif%}\n        {%endif%}\n      unit_of_measurement: '\u00b0C'\n      state_class: \"measurement\"\n      device_class: \"temperature\"\n\nmqtt:\n  sensor:\n    - name: \"ESP_altherma status\"\n      state_topic: \"espaltherma\/LWT\"\n\ninput_boolean:\n  thermostat_pac:\n    name: thermostat_pac\n    initial: true<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Code de la vue HA<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>aspect_ratio: 50%\nelements:\n  - entity: sensor.espaltherma_mode_fonctionnement\n    prefix: \"Fct= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 1%\n      top: 5%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_thermostat_int\n    prefix: \"Th Int= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 1%\n      top: 10%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_thermostat_ext\n    prefix: \"Th Ext= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 1%\n      top: 15%\n      transform: none\n    type: state-label\n  - entity: sensor.ecocompteur_pac\n    prefix: \"P= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 1%\n      top: 40%\n      transform: none\n    type: state-label\n  - entity: sensor.compteur_energie_pac_jour_hp_hc\n    prefix: \"EJ= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 1%\n      top: 60%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_temp_eau_depart\n    prefix: \"T\u00b0Dpt R2T= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 1%\n      top: 23%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_temp_cible\n    prefix: \"T\u00b0Dpt Cible= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 1%\n      top: 28%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_temp_dep_calculee\n    prefix: \"T\u00b0Dpt Calcul\u00e9e= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 1%\n      top: 33%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_palier_buh1\n    prefix: \"Resist. 1= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 50%\n      top: 10%\n    type: state-label\n  - entity: sensor.espaltherma_palier_buh2\n    prefix: \"Resist. 2= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 50%\n      top: 15%\n    type: state-label\n  - entity: sensor.espaltherma_temp_eau_depart_echangeur_plaque\n    prefix: \"T\u00b0Avant BUH= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 57%\n      top: 30%\n    type: state-label\n  - entity: sensor.espaltherma_signal_ppe_eau\n    prefix: \"Circ= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 62%\n      top: 85%\n    type: state-label\n  - entity: sensor.espaltherma_capteur_debit\n    prefix: \"D\u00e9bit= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 68.5%\n      top: 25%\n    type: state-label\n  - entity: sensor.espaltherma_temp_eau_retour_rt4\n    prefix: \"T\u00b0 Retour R4T= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 1%\n      top: 75%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_temp_liquid_r3t\n    prefix: \"T\u00b0R3T= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 80%\n      top: 78%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_consigne_thermostat_int\n    prefix: \"T\u00b0Cons= \"\n    style:\n      background: \"#000000\"\n      color: yellow\n      font-size: 110%\n      left: 25%\n      top: 40%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_temp_ambiante_int_r1t\n    prefix: \"T\u00b0Int= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 25%\n      top: 45%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_temp_air_ext_r1t\n    prefix: \"T\u00b0Ext R1T= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 80%\n      top: 8%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_temp_air_ext_r6t\n    prefix: \"T\u00b0Ext R6T= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 80%\n      top: 15%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_ventilateur1\n    prefix: \"Vent1= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 80%\n      top: 40%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_ventilateur2\n    prefix: \"Vent2= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 80%\n      top: 50%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_degivrage\n    prefix: \"Degivrage= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 80%\n      top: 60%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_cop\n    prefix: \"COP= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 25%\n      top: 60%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_courant_primaire\n    prefix: \"I= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 10%\n      top: 40%\n      transform: none\n    type: state-label\n  - entity: sensor.espaltherma_pression\n    prefix: \"P= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 59%\n      top: 67%\n    type: state-label\n  - entity: sensor.althermasensors\n    prefix: \"Status= \"\n    style:\n      background: \"#000000\"\n      color: white\n      font-size: 110%\n      left: 1%\n      top: 90%\n      transform: none\n    type: state-label\nimage: \/local\/images\/pac5.png\ntype: picture-elements\n<\/code><\/pre>\n\n\n\n<p>Lien de t\u00e9l\u00e9chargement du fichier \u00ab\u00a0pac5.png\u00a0\u00bb <a href=\"https:\/\/github.com\/remycrochon\/domo.rem81\/blob\/main\/pac5.png\">https:\/\/github.com\/remycrochon\/domo.rem81\/blob\/main\/pac5.png<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Update: Intro: Dans cet article, je partage mon exp\u00e9rience sur le monitoring de ma Pompe \u00c0 Chaleur (PAC) Daikin Altherma. Je ne voulais pas d\u00e9pendre du cloud Daikin et j\u2019ai &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[74,17],"class_list":["post-1895","post","type-post","status-publish","format-standard","hentry","category-homeassistant","tag-daikin","tag-esphome"],"_links":{"self":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts\/1895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/comments?post=1895"}],"version-history":[{"count":12,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts\/1895\/revisions"}],"predecessor-version":[{"id":4259,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts\/1895\/revisions\/4259"}],"wp:attachment":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/media?parent=1895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/categories?post=1895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/tags?post=1895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}