Gestion piscine - découverte automatisation

Bonjour à tous,
Je souhaiterai vous solliciter pour avoir votre aide sur le fonctionnement d’une automatisation, et en plus me permettrait de comprendre la logique à avoir, l’arborescence…
J’ai vu sur le forum qu’il en existe déjà des « tout faits », des blueprints également…
Avant de m’attaquer à quelque chose d’aussi pousser, je souhaiterai déjà me faire quelque chose de simple en partant sur un principe de calcul de temps de fonctionnement simple, juste basé sur la température de l’eau.

J’ai une entité temp_pool_veille qui enregistre la valeur maximale de la température de la veille

A 8h30
Si température inférieur à 13°
Fonctionnement pompe sur 1h

A 8H30
si température compris entre 13 et 18°
Fonctionnement pompe sur température/2 -2h

A 8H30
si température compris entre 18 et 28°
Fonctionnement pompe sur température/2

A 8h30
si température supérieur à 28°
Fonctionnement pompe sur température/2 + 2h

A 8h30
si température supérieur à 32°
Fonctionnement pompe température/2 + 4h

Pour le moment je n’en pas rendu à ce niveau de fonctionnement mais c’est là où je souhaiterai arriver. A comprend pour moi avec les if elsif then endif… Merci pour votre aide.

alias: piscine-TEMP-dev
description: ""
trigger:
  - platform: time
    at: "08:30:00"
condition: []
action:
  - if:
      - condition: numeric_state
        entity_id: input_number.temp_pool_veille
        below: 13
    then:
      - action: telegram_bot.send_message
        data:
          message: >
            Temperature actuelle :  {{states('sensor.temperature_piscine')}}°C

            Temperature max piscine :
            {{states('input_number.temp_pool_veille')}}

            Durée filtration : Durée minimum de 60 minutes

      - type: turn_on
        device_id: da2f811fc0a6935fb815c299030b1f5a
        entity_id: 31c1d2b69050010120a365385c15eff3
        domain: switch
        enabled: true
      - delay:
          hours: 1
          minutes: 0
          seconds: 0
          milliseconds: 0
      - type: turn_off
        device_id: da2f811fc0a6935fb815c299030b1f5a
        entity_id: 31c1d2b69050010120a365385c15eff3
        domain: switch
    else:
      - if:
          - condition: numeric_state
            entity_id: input_number.temp_pool_veille
            below: 20
        then:
          - action: telegram_bot.send_message
            data:
              message: >
                Temperature actuelle : 
                {{states('sensor.temperature_piscine')}}°C

                Temperature max piscine :
                {{states('input_number.temp_pool_veille')}}

                Durée filtration : {{states('input_number.temp_pool_veille') |
                int /2 }}

                Durée filtration (min) :
                {{states('input_number.temp_pool_veille') |int*60/2 - 60}}

                Durée filtration en minutes :
                {{states('input_number.duree_pompe') | int- 60}}
      - type: turn_on
        device_id: da2f811fc0a6935fb815c299030b1f5a
        entity_id: 31c1d2b69050010120a365385c15eff3
        domain: switch
        enabled: true
      - delay:
          minutes: "{{ states('input_number.duree_pompe') | int }}"
      - type: turn_off
        device_id: da2f811fc0a6935fb815c299030b1f5a
        entity_id: 31c1d2b69050010120a365385c15eff3
        domain: switch
  - if:
      - condition: numeric_state
        entity_id: input_number.temp_pool_veille
        above: 20.5
    then:
      - action: telegram_bot.send_message
        data:
          message: >
            Temperature actuelle :  {{states('sensor.temperature_piscine')}}°C

            Temperature max piscine :
            {{states('input_number.temp_pool_veille')}}

            Durée filtration : {{states('input_number.temp_pool_veille') | int
            /2 }}

            Durée filtration (min) : {{states('input_number.temp_pool_veille')
            |int*60/2 - 60}}

            Durée filtration en minutes : {{states('input_number.duree_pompe') |
            int- 60}}
      - type: turn_on
        device_id: da2f811fc0a6935fb815c299030b1f5a
        entity_id: 31c1d2b69050010120a365385c15eff3
        domain: switch
        enabled: true
      - delay:
          minutes: "{{ states('input_number.duree_pompe') | int }}"
      - type: turn_off
        device_id: da2f811fc0a6935fb815c299030b1f5a
        entity_id: 31c1d2b69050010120a365385c15eff3
        domain: switch
mode: single

Salut David,

Parlons condition. Je risque d’enfoncer des portes ouvertes mais je préfère être sûr. Quand tu fais un « si températures < 13 sinon » c’est forcément supérieur à 13 tout ce qui suit.
Le second point il faut veiller à l’indentation.

- Si température < 13
  Alors:
    (je fais mes actions 1)
  Sinon:
    - Si température < 18
      Alors:
        (je fais mes actions 2)
      Sinon:
        - Si température < 28
          Alors:
            (je fais mes actions 3)
          Sinon:
            (je fais mes actions 4)

Il faut que tu commences par corriger ça dans ton code