{"id":527,"date":"2021-08-14T19:22:00","date_gmt":"2021-08-14T17:22:00","guid":{"rendered":"https:\/\/domo.rem81.com\/?p=527"},"modified":"2025-04-28T18:35:54","modified_gmt":"2025-04-28T16:35:54","slug":"ha-gestion-piscine-5_regulation-du-ph","status":"publish","type":"post","link":"https:\/\/domo.rem81.com\/index.php\/2021\/08\/14\/ha-gestion-piscine-5_regulation-du-ph\/","title":{"rendered":"HA-R\u00e9gulation du Ph d&rsquo;une piscine"},"content":{"rendered":"\n\n\n\n<h1 class=\"wp-block-heading\">Intro<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Avant de publier cet article, j&rsquo;ai laiss\u00e9 passer un \u00e9t\u00e9 de mise au point du process de r\u00e9gulation, c&rsquo;est le temps que je me suis laiss\u00e9 pour obtenir un r\u00e9sultat fiable et publiable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puisque que le pH de ma piscine a tendance \u00e0 augmenter de part la nature du traitement, il me faut donc injecter du pH-.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je ne reviens pas sur la mesure de pH d\u00e9velopp\u00e9 dans un <a href=\"https:\/\/domo.rem81.com\/index.php\/2021\/05\/11\/home-assistant-gestion-piscine-4_mesure-ph\/\" data-type=\"URL\" data-id=\"https:\/\/domo.rem81.com\/home-assistant-gestion-piscine-4_mesure-ph\/\" target=\"_blank\" rel=\"noreferrer noopener\">article pr\u00e9c\u00e9dent<\/a>, la mesure est consid\u00e9r\u00e9e comme fiable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La partie mat\u00e9rielle<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La liste des courses se r\u00e9sume \u00e0:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Une pompe p\u00e9ristaltique achet\u00e9 chez <a href=\"https:\/\/fr.aliexpress.com\/item\/1005002087163427.html?spm=a2g0s.9042311.0.0.84416c37w5W2kK\" data-type=\"URL\" data-id=\"https:\/\/fr.aliexpress.com\/item\/1005002087163427.html?spm=a2g0s.9042311.0.0.84416c37w5W2kK\">AliExpress<\/a>. Alimentation en 220 VCa, d\u00e9bit variable de 0 \u00e0 7.2 l\/h avec une pression de 0.1 bar.<\/li>\n\n\n\n<li>Du liquide pH- disponible dans les boutiques sp\u00e9cialis\u00e9es dans le traitement des piscines, Cash piscine pour moi.<\/li>\n\n\n\n<li>Un module de pilotage avec un relais \u00e9quip\u00e9 d&rsquo;un contact sec et int\u00e9grable dans HA &lsquo;switch&rsquo;. Dans mon cas j\u2019utilise un automate WAGO s\u00e9rie 750 communiquant en Modbus, \u00e9quip\u00e9 d\u2019une carte d\u2019entr\u00e9es pt100, d\u2019une carte d\u2019entr\u00e9es digitales et d\u2019une carte de sortie relais. <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Bien entendu, cet automate peut \u00eatre remplac\u00e9 par n\u2019importe quel dispositif compatible HA, remplissant les m\u00eames fonctionnalit\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Attention, il faut que la commande de la pompe soit fiabilis\u00e9e. A savoir qu&rsquo;en cas de plantage HA ou de perte de communication  ou tout autre raison, la commande relais doit \u00eatre remise \u00e0 z\u00e9ro. Dans mon cas le module Wago communique en modbus en cas de perte de communication la sortie est mise \u00e0 z\u00e9ro. Id\u00e9alement il faudrait piloter la pompe p\u00e9ristaltique avec un GPIO + relais de l&rsquo;ESP. C&rsquo;est  la solution adopt\u00e9e dans mon article <a href=\"https:\/\/domo.rem81.com\/index.php\/2024\/09\/01\/ha-gestion-complete-dune-piscine-avec-esp32-et-esphome\/\">https:\/\/domo.rem81.com\/index.php\/2024\/09\/01\/ha-gestion-complete-dune-piscine-avec-esp32-et-esphome\/<\/a> .<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cahier des charges<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fonctionne en mode automatique<\/li>\n\n\n\n<li>Validation du mode automatique simple d&#8217;emploi.<\/li>\n\n\n\n<li>Les param\u00e8tres doivent \u00eatre accessibles et modifiables<\/li>\n\n\n\n<li>Notification en cas de pH hors limite<\/li>\n\n\n\n<li>Notification du d\u00e9but et fin de cycle<\/li>\n\n\n\n<li>Notification du volume de pH- inject\u00e9 et utilis\u00e9<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">La partie logicielle<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Automatisme \u00ab\u00a0Piscine pH Injection\u00a0\u00bb<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Fonctionnement<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Trois modes de fonctionnement s\u00e9lectable par un \u00ab\u00a0input_select.mode_fonct_regulation_ph\u00a0\u00bb d\u00e9clar\u00e9 dans \u00ab\u00a0\/config\/helpers\u00a0\u00bb:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"536\" height=\"504\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-1.png\" alt=\"\" class=\"wp-image-3228\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-1.png 536w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-1-300x282.png 300w\" sizes=\"auto, (max-width: 536px) 100vw, 536px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Automatique<\/li>\n\n\n\n<li>Marche forc\u00e9e<\/li>\n\n\n\n<li>Arret forc\u00e9e<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Trois Options d\u00e9clar\u00e9es dans l&rsquo;automatisme:<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Option 1: Mode Automatique<\/h4>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1016\" height=\"507\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-7.png\" alt=\"\" class=\"wp-image-3238\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-7.png 1016w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-7-300x150.png 300w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-7-768x383.png 768w\" sizes=\"auto, (max-width: 1016px) 100vw, 1016px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1001\" height=\"536\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image.png\" alt=\"\" class=\"wp-image-3225\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image.png 1001w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-300x161.png 300w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-768x411.png 768w\" sizes=\"auto, (max-width: 1001px) 100vw, 1001px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Calcul du volume \u00e0 injecter recopi\u00e9 dans \u00ab\u00a0input_number.ph_vol_ph_moins_a_injecter\u00a0\u00bb avec:\n<ul class=\"wp-block-list\">\n<li>me, ve et va sont des donn\u00e9es constructeurs, j&rsquo;utilise le pH moins liquide Cash Piscine:\n<ul class=\"wp-block-list\">\n<li>me= Montant du produit (0,2 Litre)<\/li>\n\n\n\n<li>ve= Valeur de l&rsquo;effet du produit (0.1 \u00e0 0.2)<\/li>\n\n\n\n<li>va= Volume d&rsquo;eau affect\u00e9 par le produit (10 m3)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>vb= volume du bassin (50m3 pour moi)<\/li>\n\n\n\n<li>coef: coefficient d&rsquo;ajustement en % \u00ab\u00a0input_number.ph_coefficient_injection_ph_moins\u00a0\u00bb<\/li>\n\n\n\n<li>q=((m-c)\/ve*(vb\/va)*mp*coef\/100)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Calcul du temps d&rsquo;injection en fonction du d\u00e9bit de la pompe de (en L\/h) et de la quantit\u00e9 (q) pr\u00e9c\u00e9demment calcul\u00e9e:\n<ul class=\"wp-block-list\">\n<li>recopie dans&nbsp;<strong>input_number.ph_duree_inject_s&nbsp;et&nbsp;input_number.ph_duree_inject_mn<\/strong>\n<ul class=\"wp-block-list\">\n<li>&nbsp;Minutes: q*3600\/de, on garde la partie enti\u00e8re de la division par 60 ((r\/\/60).<\/li>\n\n\n\n<li>Secondes: M\u00eame calcul que pour les minutes, mais le r\u00e9sultat est le reste de la division par 60 ((r%60))<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Notification telegram&nbsp;<\/li>\n\n\n\n<li>Marche pompe ph&nbsp;<\/li>\n\n\n\n<li>D\u00e9lai en fonction de \u00ab\u00a0input_number.ph_duree_inject_mn:input_number.ph_duree_inject_s\u00a0\u00bb<\/li>\n\n\n\n<li>Arret pompe ph&nbsp;<\/li>\n\n\n\n<li>Notification telegram&nbsp;<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Option 2: Marche Forc\u00e9e<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Marche forc\u00e9e de la pompe de dosage pH (pas de r\u00e9gulation)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1023\" height=\"380\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-3.png\" alt=\"\" class=\"wp-image-3232\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-3.png 1023w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-3-300x111.png 300w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-3-768x285.png 768w\" sizes=\"auto, (max-width: 1023px) 100vw, 1023px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Option 3: Arr\u00eat Forc\u00e9<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Arr\u00eat forc\u00e9 de la pompe de dosage pH (pas de r\u00e9gulation)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ou arr\u00eat de la pompe de filtration<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1018\" height=\"459\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-6.png\" alt=\"\" class=\"wp-image-3236\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-6.png 1018w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-6-300x135.png 300w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-6-768x346.png 768w\" sizes=\"auto, (max-width: 1018px) 100vw, 1018px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Codage<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: 3_2_2 Piscine-pH Injection V2\ndescription: Injection pH v2\ntrigger:\n  - platform: state\n    entity_id:\n      - input_select.mode_fonct_regulation_ph\n  - platform: time\n    at: \"11:00:00\"\n    id: 11h\n  - platform: time\n    at: \"15:00:00\"\n    id: 15h\n  - platform: state\n    entity_id:\n      - binary_sensor.esp137_ppe_en_fonctionnement\n    from: \"on\"\n    to: \"off\"\n    id: at_filtration\ncondition: &#091;]\naction:\n  - choose:\n      - conditions:\n          - condition: state\n            entity_id: input_select.mode_fonct_regulation_ph\n            state: Auto\n          - condition: template\n            value_template: |-\n              {% set m=states('sensor.ph_piscine_ph') | float %}\n              {% set c=states('input_number.ph_cible') | float %}\n              {{ m &gt; c }}\n          - condition: numeric_state\n            entity_id: sensor.ph_piscine_ph\n            above: \"0\"\n          - condition: state\n            state: \"on\"\n            entity_id: binary_sensor.esp137_ppe_en_fonctionnement\n            for:\n              hours: 0\n              minutes: 15\n              seconds: 0\n          - condition: trigger\n            id:\n              - 11h\n              - 15h\n        sequence:\n          - target:\n              entity_id: input_number.ph_vol_ph_moins_a_injecter\n            data_template:\n              value: &gt;-\n                {% set m=states('sensor.ph_piscine_ph') | float(default=0) %} {%\n                set x=states('input_number.simul_ph') | float(default=0) %} {%\n                set c=states('input_number.ph_cible') | float(default=0) %} {%\n                set mp=0.2 %} {% set ve=0.2 %} {% set va=10 %} {% set vb=50 %}\n                {% set de=states('input_number.ph_debit_ppe') | float(default=0)\n                %} {% set\n                coef=states('input_number.ph_coefficient_injection_ph_moins') |\n                float(default=0) %} {% set\n                q=((m-c)\/ve*(vb\/va)*mp*coef\/100)|round(2) %} {% if q &lt; 0 %} {{ 0\n                }} {% else %} {{ (q) }} {% endif %}\n            action: input_number.set_value\n          - target:\n              entity_id: input_number.ph_duree_inject_s\n            data_template:\n              value: &gt;-\n                {% set q=states('input_number.ph_vol_ph_moins_a_injecter') |\n                float(default=0) %} {% set\n                de=states('input_number.ph_debit_ppe') | float(default=0) %} {%\n                set tps=(q*3600\/de)|round(2) %} {% if tps &lt; 0 %} {{ 0 }} {% else\n                %} {{ (tps%60)|round(0)|int(default=0) }} {% endif %}\n            action: input_number.set_value\n          - target:\n              entity_id: input_number.ph_duree_inject_mn\n            data_template:\n              value: &gt;-\n                {% set q=states('input_number.ph_vol_ph_moins_a_injecter') |\n                float(default=0) %} {% set\n                de=states('input_number.ph_debit_ppe') | float(default=0) %} {%\n                set tps=(q*3600\/de)|round(2) %} {% if tps &lt; 0 %} {{ 0 }} {% else\n                %} {{ (tps\/\/60)|round(0)|int(default=0) }} {% endif %}\n            action: input_number.set_value\n          - data:\n              message: &gt;-\n                {{states(\"sensor.date_time\") }}{{-\"\\n\"-}} pH sonde=\n                {{states('sensor.ph_piscine_ph')}} {{-\"\\n\"-}} Cible pH=\n                {{states('input_number.ph_cible')}} {{-\"\\n\"-}} Vol \u00e0\n                Injecter={{states('input_number.ph_vol_ph_moins_a_injecter')}}l\n                {{-\"\\n\"-}} Dur\u00e9e injection=\n                {{states('input_number.ph_duree_inject_mn')}}mn-{{states('input_number.ph_duree_inject_s')}}s\n                {{-\"\\n\"-}}     Poids du bidon=\n                {{states('sensor.esp129_poids_ph_moins')}}kg\n              title: Piscine D\u00e9but injection pH !!!\n            action: notify.telegram\n          - target:\n              entity_id:\n                - switch.ppe_ph\n            data: {}\n            action: switch.turn_on\n          - delay: &gt;-\n              00:{{ states('input_number.ph_duree_inject_mn')|int}}:{{\n              states('input_number.ph_duree_inject_s') | int }}\n          - target:\n              entity_id: switch.ppe_ph\n            data: {}\n            action: switch.turn_off\n          - data:\n              message: &gt;-\n                pH sonde= {{states('sensor.ph_piscine_ph')}} {{-\"\\n\"-}} Poids du\n                bidon= {{states('sensor.esp129_poids_ph_moins')}}kg {{-\"\\n\"-}}\n                {{states(\"sensor.date_time\") }}\n              title: Piscine Fin injection pH !!!\n            action: notify.telegram\n      - conditions:\n          - condition: state\n            entity_id: input_select.mode_fonct_regulation_ph\n            state: Ma Forc\u00e9e\n        sequence:\n          - target:\n              entity_id:\n                - switch.ppe_ph\n            data: {}\n            action: switch.turn_on\n      - conditions:\n          - condition: or\n            conditions:\n              - condition: state\n                entity_id: input_select.mode_fonct_regulation_ph\n                state: At Forc\u00e9\n              - condition: trigger\n                id:\n                  - at_filtration\n        sequence:\n          - target:\n              entity_id: switch.ppe_ph\n            data: {}\n            action: switch.turn_off\nmode: single\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Automatisme \u00ab\u00a0Piscine Notifications pH\u00a0\u00bb<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">D\u00e9clencheurs:<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"343\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-9-1024x343.png\" alt=\"\" class=\"wp-image-3254\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-9-1024x343.png 1024w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-9-300x101.png 300w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-9-768x257.png 768w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-9.png 1053w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"345\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-10-1024x345.png\" alt=\"\" class=\"wp-image-3255\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-10-1024x345.png 1024w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-10-300x101.png 300w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-10-768x259.png 768w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-10.png 1077w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Code<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: 3_2_3 Piscine-pH Notifications\ndescription: Notifie Ph bas, haut, anormal, bidon bas\ntrigger:\n  - platform: numeric_state\n    entity_id: sensor.ph_stat_median\n    below: \"6.8\"\n    above: \"0\"\n    id: ph_bas\n    for:\n      hours: 0\n      minutes: 1\n      seconds: 0\n  - platform: numeric_state\n    entity_id: sensor.ph_stat_median\n    id: ph_haut\n    above: \"7.8\"\n    for:\n      hours: 0\n      minutes: 1\n      seconds: 0\n  - platform: numeric_state\n    entity_id: sensor.ph_stat_standard_deviation\n    id: ph_mauvais\n    above: \"0.1\"\n    for:\n      hours: 0\n      minutes: 1\n      seconds: 0\n  - platform: state\n    entity_id:\n      - binary_sensor.ph_niveau_bas_bidon\n    id: niv_bas_bidon\n    to: \"on\"\n    for:\n      hours: 0\n      minutes: 1\n      seconds: 0\ncondition:\n  - condition: state\n    entity_id: switch.ppe_ph\n    state: \"on\"\naction:\n  - choose:\n      - conditions:\n          - condition: trigger\n            id: ph_bas\n        sequence:\n          - data:\n              message: &gt;-\n                Ph Bas = {{states('sensor.ph_stat_median')\n                }}{{-\"\\n\"-}}{{states(\"sensor.date_time\") }}\n              title: Piscine Alerte pH !!!\n            action: notify.telegram\n      - conditions:\n          - condition: trigger\n            id: ph_haut\n        sequence:\n          - data:\n              message: &gt;-\n                Ph Haut = {{states('sensor.ph_stat_median')\n                }}{{-\"\\n\"-}}{{states(\"sensor.date_time\") }}\n              title: Piscine Alerte pH !!!\n            action: notify.telegram\n      - conditions:\n          - condition: trigger\n            id: ph_mauvais\n        sequence:\n          - data:\n              message: &gt;-\n                pH Mauvais-sonde \u00e0 calibrer??{{-\"\\n\"-}} Median =\n                {{states(\"sensor.ph_stat_median\")}}{{-\"\\n\"-}} Deviation(S=0.01)\n                = {{states(\"sensor.ph_stat_standard_deviation\")}}\n                {{-\"\\n\"-}}{{states(\"sensor.date_time\") }}\n              title: Piscine Alerte pH !!!\n            action: notify.telegram\n      - conditions:\n          - condition: trigger\n            id: niv_bas_bidon\n        sequence:\n          - data:\n              message: &gt;-\n                Volume Restant =\n                {{(states(\"sensor.ph_volume_restant_bidon\"))|round(2) }}\n                l{{-\"\\n\"-}}{{states(\"sensor.date_time\") }}\n              title: Piscine Alerte niveau Bas Bidon pH !!!\n            action: notify.telegram\n    default: &#091;]\nmode: single\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">D\u00e9claration des entit\u00e9s<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Les d\u00e9clarations des entit\u00e9s sont pour certaines, disponibles dans le fichier <a href=\"https:\/\/github.com\/remycrochon\/home-assistant\/blob\/master\/packages\/ph.yaml\" data-type=\"URL\" data-id=\"https:\/\/github.com\/remycrochon\/home-assistant\/blob\/master\/packages\/ph.yaml\" target=\"_blank\" rel=\"noreferrer noopener\">ph.yaml \u00e0 t\u00e9l\u00e9charger<\/a>, d&rsquo;autre sont \u00e0 d\u00e9clarer dans \/config\/helpers.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Interface lovelace (pour info)<\/h1>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"391\" height=\"609\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-8.png\" alt=\"\" class=\"wp-image-3247\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-8.png 391w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/08\/image-8-193x300.png 193w\" sizes=\"auto, (max-width: 391px) 100vw, 391px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>type: vertical-stack\ncards:\n  - type: history-graph\n    entities:\n      - entity: switch.ppe_filtration\n        name: Ppe filtre\n      - entity: switch.ev_eau\n        name: Ev Eau\n      - entity: switch.ppe_ph\n        name: Ppe pH\n    hours_to_show: 72\n    refresh_interval: 0\n    title: &lt;- 3 jours\n  - type: custom:button-card\n    name: PARAMETRES\n    styles:\n      card:\n        - text-transform: uppercase\n        - font-size: 125%\n        - border-radius: 50\n        - font-weight: bold\n        - letter-spacing: 10px\n  - type: entities\n    entities:\n      - entity: input_select.mode_fonctionnement_piscine\n        name: Mode de Fonctionnement\n      - entity: input_select.mode_fonct_regulation_ph\n        name: Mode R\u00e9gul pH\n      - entities:\n          - entity: sensor.pression_filtre\n            name: Pression\n          - entity: input_number.mem_temp_piscine\n            name: T Eau\n          - entity: sensor.vp2_temp_out\n            name: T Ext\n        entity: sensor.pression_filtre\n        icon: mdi:chart-bell-curve\n        name: Mesures\n        show_state: false\n        type: custom:multiple-entity-row\n      - entities:\n          - entity: sensor.ph_piscine_ph\n            name: pH\n          - entity: sensor.esp125_ph_median\n            name: ph_md\n          - entity: switch.ppe_ph\n            name: Ppe\n          - entity: input_number.ph_cible\n            name: Cible\n            unit: false\n          - entity: sensor.esp129_poids_ph_moins\n            name: Pds Bid\n            unit: false\n        entity: input_boolean.regul_ph\n        icon: mdi:ph\n        name: Ph\n        show_state: false\n        type: custom:multiple-entity-row\n      - entities:\n          - entity: input_number.temps_cartouche_chlore\n            name: Tps Cartouche\n            unit: false\n          - entity: input_number.chlore_seuil_max_utilisation\n            name: Tps Max\n        entity: input_number.temps_cartouche_chlore\n        icon: mdi:chart-bell-curve\n        name: Chlore cart\n        show_state: false\n        type: custom:multiple-entity-row\n      - entities:\n          - entity: input_number.filtration_coeff_abaque\n            name: Coeff\n          - entity: input_number.affichage_duree_filtration_piscine\n            name: Dur\u00e9e\n          - entity: input_text.piscine_periode_filtration\n            name: Tranch Hor\n        entity: input_text.piscine_periode_filtration\n        icon: mdi:clock\n        name: Tps Filtration\n        show_state: false\n        type: custom:multiple-entity-row\n      - entities:\n          - entity: input_datetime.heure_ma_ppe_pisc_mode_horaire\n            name: h_MaPpe\n          - entity: input_number.duree_filtration_mode_horaire\n            name: Tps F\n        entity: input_boolean.hors_gel_valid\n        icon: mdi:clock\n        name: Mode Horaire\n        show_state: false\n        type: custom:multiple-entity-row\n      - entities:\n          - entity: input_number.hors_gel_inf_seuil1\n            name: T\u00b0Inf S1\n          - entity: input_number.hors_gel_inf_seuil2\n            name: T\u00b0Inf S2\n          - entity: input_boolean.hors_gel_valid\n            name: HG Valid\n        entity: input_boolean.hors_gel_valid\n        name: Hors Gel\n        icon: mdi:snowflake-alert\n        show_state: false\n        type: custom:multiple-entity-row\n      - entities:\n          - entity: input_boolean.piscine_arret_force\n            name: Forc 0\n          - entity: binary_sensor.esp137_ppe_en_fonctionnement\n            name: Etat\n          - entity: sensor.ma_ppe_piscine_jour\n            name: Fonct. Jour\n        entity: input_text.piscine_periode_filtration\n        icon: mdi:pump\n        name: Pompe Filtration\n        show_state: false\n        type: custom:multiple-entity-row\n      - entities:\n          - entity: sensor.energie_piscine_jour\n            name: Conso J\n          - entity: sensor.pzem_pisc_puissance\n            name: Puissance\n          - entity: sensor.pzem_pisc_courant\n            name: Intensit\u00e9\n        entity: sensor.pzem_pisc_puissance\n        icon: mdi:flash\n        name: Conso Elec\n        show_state: false\n        type: custom:multiple-entity-row\n      - entities:\n          - entity: switch.ev_eau\n            name: Cde EV\n          - entity: binary_sensor.niveau_haut_piscine\n            name: NH\n          - entity: binary_sensor.niveau_inter_piscine\n            name: NI\n          - entity: binary_sensor.niveau_bas_piscine\n            name: NB\n        entity: input_boolean.ev_eau_piscine\n        name: Appoint Eau\n        show_state: false\n        type: custom:multiple-entity-row\n      - entities:\n          - label: Hiver\n            type: section\n          - entity: input_number.hors_gel_inf_seuil1\n            name: T\u00b0Inf S1\n          - entity: input_number.hors_gel_inf_seuil2\n            name: T\u00b0Inf S2\n          - label: Filtration\n            type: section\n          - entity: input_number.filtration_coeff_abaque\n            name: Coef\n          - entity: input_number.tempo_circulation_eau\n            name: Tempo Circulation\n          - entity: input_datetime.heure_pivot_pisc\n            name: Heure pivot\n          - entity: sensor.heure_pivot_soleil\n            name: H Pivot Sun\n          - label: Appoint Eau\n            type: section\n          - entity: automation.piscine_ev_appoint_eau\n            name: Automs\n          - entity: sensor.ev_eau_sur_7j\n            name: 7J\n          - entity: sensor.ev_eau_tps_ouverture_jour\n            name: 1J\n          - label: pH\n            type: section\n          - entity: sensor.ph_ezo\n            name: pH Ezo\n          - entity: sensor.ph_piscine_ph\n            name: pH filtr\u00e9\n          - entity: sensor.ph_stat_median\n            name: pH Median\n          - entity: sensor.ph_stat_standard_deviation\n            name: pH Standard Deviation\n          - entity: input_boolean.regul_ph\n          - entity: input_number.ph_cible\n          - entity: input_number.ph_debit_ppe\n          - entity: input_number.ph_coefficient_injection_ph_moins\n          - entity: input_number.ph_vol_ph_moins_a_injecter\n          - entity: input_number.ph_duree_inject_mn\n          - entity: input_number.ph_duree_inject_s\n          - entity: input_number.ph_seuil_bas_bidon\n          - entity: binary_sensor.ph_niveau_bas_bidon\n          - label: Commutateurs\n            type: section\n          - entity: cover.volet_piscine\n            name: Couverture flottante\n          - entity: input_boolean.eclairage_piscine\n            name: Eclairage\n          - entity: input_boolean.ev_eau_piscine\n            name: EV Eau appoint en auto si actif\n          - entity: automation.piscine_ev_appoint_eau\n        head:\n          label: PARAMETRES\n          type: section\n        padding: 0\n        show_state: false\n        type: custom:fold-entity-row\n      - entities:\n          - entity: switch.ppe_filtration\n            name: Relais Pompe Filtre\n          - entity: switch.ppe_ph\n            name: Relais pH\n          - entity: switch.ppe_chlore\n            name: Relais Chlore\n          - entity: switch.cde_ouv_volet_piscine\n            name: Relais Ouverture Volet\n          - entity: switch.cde_ferm_volet_piscine\n            name: Relais fermeture Volet\n          - entity: switch.cde_ecl_piscine\n            name: Relais Eclairage\n          - entity: switch.ev_eau\n            name: EV Eau\n        head:\n          label: COMMANDES DIRECTES\n          type: section\n        padding: 0\n        show_state: false\n        type: custom:fold-entity-row\n    how_header_toggle: false\n<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Conclusion<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Une r\u00e9gulation de pH compl\u00e8te qui donne de bons r\u00e9sultats, cependant vous pouvez dans un premier temps supprimer les fonctionnalit\u00e9s qui vous semblent superflues.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Liste des publications en lien avec cet article:<\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Filtration avec <a href=\"https:\/\/domo.rem81.com\/index.php\/2025\/03\/21\/ha-gestion-complete-dune-piscine-avec-esp32-et-esphome\/\" data-type=\"link\" data-id=\"https:\/\/domo.rem81.com\/index.php\/2025\/03\/21\/ha-gestion-complete-dune-piscine-avec-esp32-et-esphome\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESPHome et ESP32<\/a><\/li>\n\n\n\n<li>Filtration avec \u00ab\u00a0<a href=\"https:\/\/domo.rem81.com\/index.php\/2022\/02\/02\/ha-gestion-piscine-1-filtration-avec-appdaemon-2\/\" target=\"_blank\" rel=\"noreferrer noopener\">AppDaemon\u00a0\u00bb<\/a><\/li>\n\n\n\n<li>Filtration avec \u00ab\u00a0<a href=\"https:\/\/domo.rem81.com\/index.php\/2021\/01\/20\/home-assistant-gestion-piscine-filtration-poolpump\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pool Pump Manager<\/a>\u00ab\u00a0<\/li>\n\n\n\n<li><a href=\"https:\/\/domo.rem81.com\/index.php\/2021\/02\/24\/home-assistant-gestion-piscine-2_mesure-de-puissance-electrique\/\" target=\"_blank\" rel=\"noreferrer noopener\">Mesure de puissance \u00e9lectrique<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/domo.rem81.com\/index.php\/2021\/04\/02\/home-assistant-gestion-piscine-1_mise-a-niveau-automatique\/\" target=\"_blank\" rel=\"noreferrer noopener\">Mise \u00e0 niveau automatique<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/domo.rem81.com\/index.php\/2021\/05\/11\/home-assistant-gestion-piscine-4_mesure-ph\/\" target=\"_blank\" rel=\"noreferrer noopener\">Mesure du pH<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/domo.rem81.com\/index.php\/2021\/08\/14\/ha-gestion-piscine-5_regulation-du-ph\/\" target=\"_blank\" rel=\"noreferrer noopener\">R\u00e9gulation du Ph<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/domo.rem81.com\/index.php\/2021\/11\/30\/ha-gestion-piscine-6_mode-hors-gel\/\" target=\"_blank\" rel=\"noreferrer noopener\">Mise Hors Gel<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/domo.rem81.com\/index.php\/2022\/05\/13\/ha-gestion-piscine-7_mesure-de-pression\/\" target=\"_blank\" rel=\"noreferrer noopener\">Mesure de pression<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/domo.rem81.com\/index.php\/2025\/04\/04\/ha-mesurer-la-consommation-deau-de-ma-piscine-avec-un-esp8266-et-esphome\/\" data-type=\"link\" data-id=\"https:\/\/domo.rem81.com\/index.php\/2025\/04\/04\/ha-mesurer-la-consommation-deau-de-ma-piscine-avec-un-esp8266-et-esphome\/\" target=\"_blank\" rel=\"noreferrer noopener\">Mesure consommation d&rsquo;eau<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/domo.rem81.com\/index.php\/2025\/04\/11\/ha-panneau-de-commande-pour-piscine-avec-un-esp32-openhasp-et-home-assistant\/\" data-type=\"link\" data-id=\"https:\/\/domo.rem81.com\/index.php\/2025\/04\/11\/ha-panneau-de-commande-pour-piscine-avec-un-esp32-openhasp-et-home-assistant\/\" target=\"_blank\" rel=\"noreferrer noopener\">Panneau de contr\u00f4le avec un ESP32<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/domo.rem81.com\/index.php\/2025\/04\/13\/ha-analyse-de-leau-de-piscine-avec-le-poollab-2-0-et-integration-dans-home-assistant\/\" data-type=\"link\" data-id=\"https:\/\/domo.rem81.com\/index.php\/2025\/04\/13\/ha-analyse-de-leau-de-piscine-avec-le-poollab-2-0-et-integration-dans-home-assistant\/\" target=\"_blank\" rel=\"noreferrer noopener\">Analyse de l&rsquo;eau avec PoolLAB2.0<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Intro Avant de publier cet article, j&rsquo;ai laiss\u00e9 passer un \u00e9t\u00e9 de mise au point du process de r\u00e9gulation, c&rsquo;est le temps que je me suis laiss\u00e9 pour obtenir un &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":[33],"class_list":["post-527","post","type-post","status-publish","format-standard","hentry","category-homeassistant","tag-piscine"],"_links":{"self":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts\/527","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=527"}],"version-history":[{"count":19,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts\/527\/revisions"}],"predecessor-version":[{"id":3926,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts\/527\/revisions\/3926"}],"wp:attachment":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/media?parent=527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/categories?post=527"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/tags?post=527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}