Automatisation Filtration Piscine selon Température

Re,
j’ai amélioré cela en ajoutant une surveillance avancée de la piscine. Cela permet de gérer la pompe de filtration et la PàC de la piscine, avec des notifications pour les conditions anormales et les besoins de maintenance.

Voici le YAML commenté :

alias: Surveillance avancée de la piscine
description: >
  Gère la pompe de filtration et la PàC de la piscine, avec notifications pour
  les conditions anormales et les besoins de maintenance.
trigger:
  - platform: time_pattern
    hours: /1  # Déclenche toutes les heures
condition:
  - condition: time
    after: "10:00:00"  # Après 10h00
    before: "22:00:00"  # Avant 22h00
  - condition: state
    entity_id: input_boolean.manual_override_pompe
    state: "off"  # Vérifie que le mode manuel de la pompe est désactivé
  - condition: state
    entity_id: input_boolean.manual_override_pac
    state: "off"  # Vérifie que le mode manuel de la PàC est désactivé
action:
  - choose:
      # Démarre la pompe de filtration si elle est éteinte
      - conditions:
          - condition: state
            entity_id: switch.shellypro2_ec6260918ad8_switch_0
            state: "off"
        sequence:
          - service: switch.turn_on
            target:
              entity_id: switch.shellypro2_ec6260918ad8_switch_0
            data: {}
          - service: notify.mobile_app_s24_fabrice
            data:
              message: >-
                La pompe de filtration a été démarrée automatiquement à {{
                now().strftime('%H:%M:%S') }}.

      # Arrête la pompe de filtration si elle fonctionne après 22h00 ou avant 10h00
      - conditions:
          - condition: state
            entity_id: switch.shellypro2_ec6260918ad8_switch_0
            state: "on"
          - condition: or
            conditions:
              - condition: time
                after: "22:00:00"
              - condition: time
                before: "10:00:00"
        sequence:
          - service: switch.turn_off
            target:
              entity_id: switch.shellypro2_ec6260918ad8_switch_0
            data: {}
          - service: notify.mobile_app_s24_fabrice
            data:
              message: >-
                La pompe de filtration a été arrêtée automatiquement à {{
                now().strftime('%H:%M:%S') }}.

          # Notifie si la pompe de filtration est arrêtée depuis plus de 2 heures entre 10h00 et 18h00
          - condition: template
            value_template: >
              {{ (as_timestamp(now()) -
              as_timestamp(states.switch.shellypro2_ec6260918ad8_switch_0.last_changed))
              / 3600 > 7200 }}
          - service: notify.mobile_app_s24_fabrice
            data:
              message: >-
                Attention ! La pompe de filtration est arrêtée depuis plus de 2
                heures entre 10h00 et 18h00.

      # Démarre la PàC si la production d'énergie solaire est élevée et la PàC est éteinte
      - conditions:
          - condition: numeric_state
            entity_id: sensor.energy_production_today
            above: 35
          - condition: state
            entity_id: switch.shellypro2_ec6260918ad8_switch_1
            state: "off"
        sequence:
          - service: switch.turn_on
            target:
              entity_id: switch.shellypro2_ec6260918ad8_switch_1
            data: {}
          - service: notify.mobile_app_s24_fabrice
            data:
              message: >-
                La PàC a été démarrée automatiquement à {{
                now().strftime('%H:%M:%S') }}.

      # Arrête la PàC si elle fonctionne après 19h00 ou avant 10h00
      - conditions:
          - condition: or
            conditions:
              - condition: time
                after: "19:00:00"
              - condition: time
                before: "10:00:00"
          - condition: state
            entity_id: switch.shellypro2_ec6260918ad8_switch_1
            state: "on"
        sequence:
          - service: switch.turn_off
            target:
              entity_id: switch.shellypro2_ec6260918ad8_switch_1
            data: {}
          - service: notify.mobile_app_s24_fabrice
            data:
              message: >-
                La PàC a été arrêtée automatiquement à {{
                now().strftime('%H:%M:%S') }}.
  - choose:
      # Notifie si la pompe de filtration fonctionne après 22h00
      - conditions:
          - condition: state
            entity_id: switch.shellypro2_ec6260918ad8_switch_0
            state: "on"
          - condition: time
            after: "22:00:00"
        sequence:
          - service: notify.mobile_app_s24_fabrice
            data:
              message: >
                Attention ! La pompe de filtration fonctionne après 22h00.
                Température de l'eau : {{ states('sensor.piscine_2_temperature')
                }}°C.

      # Notifie si la pompe de filtration est arrêtée depuis plus de 2 heures entre 10h00 et 18h00
      - conditions:
          - condition: time
            after: "10:00:00"
            before: "18:00:00"
          - condition: state
            entity_id: switch.shellypro2_ec6260918ad8_switch_0
            state: "off"
            for:
              hours: 2
        sequence:
          - service: notify.mobile_app_s24_fabrice
            data:
              message: >
                Attention ! La pompe de filtration est arrêtée depuis plus de 2
                heures entre 10h00 et 18h00.

      # Besoin de maintenance : Nettoyage des filtres de la pompe de filtration si elle fonctionne depuis plus de 360 heures
      - conditions:
          - condition: template
            value_template: >
              {{ (as_timestamp(now()) -
              as_timestamp(states.switch.shellypro2_ec6260918ad8_switch_0.last_changed))
              / 3600 > 360 }}
          - condition: state
            entity_id: switch.shellypro2_ec6260918ad8_switch_0
            state: "on"
        sequence:
          - service: notify.mobile_app_s24_fabrice
            data:
              message: >-
                Besoin de maintenance : Nettoyer les filtres de la pompe de
                filtration.

      # Notifie si les paramètres chimiques de l'eau sont hors normes et que la pompe de filtration est en marche
      - conditions:
          - condition: template
            value_template: |
              {{ not (7 <= float(states('sensor.flipr_f35024ac_ph')) <= 7.5 and
                      600 <= float(states('sensor.flipr_f35024ac_red_ox')) <= 800 and
                      26 <= float(states('sensor.piscine_2_temperature')) <= 30) }}
          - condition: state
            entity_id: switch.shellypro2_ec6260918ad8_switch_0
            state: "on"
        sequence:
          - service: notify.mobile_app_s24_fabrice
            data:
              message: >-
                Attention ! Les paramètres chimiques de l'eau sont hors normes. 
                PH : {{ states('sensor.flipr_f35024ac_ph') }} (attendu entre 7 et 7.5),
                Red OX : {{ states('sensor.flipr_f35024ac_red_ox') }} (attendu entre 600 et 800),
                Température : {{ states('sensor.piscine_2_temperature') }}°C (attendue entre 26 et 30).
mode: single