Vos avis et conseils sur mon automatisation de piscine

Bonjour à tous,

Je débute avec HA et je souhaite automatiser ma pompe de piscine grâce à un interrupteur DIN en Zigbee comme celui-ci.

J’ai trouvé plusieurs sujets intéressants sur le forum, mais aucun ne me donne entière satisfaction par rapport à mon cahier des charges… N’ayant aucune connaissance en YAML, j’ai bossé avec Gemini qui m’a bien mâché le travail en me créant une automatisation pour l’été et une pour l’hiver.

Actuellement, je teste le mode hiver qui fonctionne basiquement (pompe allumée de 5h à 6h du matin) mais je n’ai pas eu l’occasion de tester le hors-gel (pompe tourne 5min si T°<0°), ni le mode été évidemment.

Je viens solliciter vos avis et conseils sur ce qu’il serait peut-être possible d’améliorer (garde fous en cas de coupure EDF par exemple, etc…) ou également de fiabiliser/simplifier dans le code. Voir également s’il est possible de tout avoir en une seule automatisation (si ça a un intérêt quelconque).

Merci d’avance à tous pour vos avis éclairés!

Voici le cahier des charges :

4 modes de fonctionnement à choisir avec un switch sur HA :
	- Automatique été (T° eau >=15°C)
	- Automatique hiver (T° eau <15°C)
	- Marche forcée
	- Arrêt

Mode automatique été :
	- Démarrage de la pompe pendant 5min à 6h du matin, pour faire circuler l'eau sur le capteur T°
	- Coupure pompe
	- Calcul du temps de filtration selon les plages suivantes :
		- 15 à 20°C = 2h
		- 21 à 25°C = 5h
		- 26 à 30°C = 10h
	- Calcul de l'heure de démarrage de la pompe pour optimisation selon panneaux solaires et heures de baignade :
		- 15 à 20°C = de 12h jusqu'à 14h
		- 21 à 25°C = de 10h jusqu'à 15h
		- 26 à 30°C = de 09h30 jusqu'à 19h30
	- Démarrage de la pompe à l'heure prévue et pour la durée programmée
	- Arrêt de la pompe

Mode automatique hiver :
	- Démarrage de la pompe tous les matins de 5h à 6h
	- Coupure pompe
	- Démarrage de la pompe pendant 5min si la T° de l'eau descend à 0°C
	- Coupure pompe

Automatisation hiver :

alias: "Piscine : Modes Statiques (Version Finale)"
description: Gère l'arrêt, la marche forcée et le mode hiver avec protection gel 5min
triggers:
  - entity_id: input_select.mode_pompe_piscine
    trigger: state
  - at: "05:00:00"
    trigger: time
  - at: "06:00:00"
    trigger: time
  - entity_id: sensor.capteur_tdeg_piscine_temperature
    below: 0.1
    trigger: numeric_state
conditions: []
actions:
  - choose:
      - conditions:
          - condition: state
            entity_id: input_select.mode_pompe_piscine
            state: Arrêt
        sequence:
          - target:
              entity_id: switch.pompe_piscine
            action: switch.turn_off
      - conditions:
          - condition: state
            entity_id: input_select.mode_pompe_piscine
            state: Marche forcée
        sequence:
          - target:
              entity_id: switch.pompe_piscine
            action: switch.turn_on
      - conditions:
          - condition: state
            entity_id: input_select.mode_pompe_piscine
            state: Automatique hiver
        sequence:
          - if:
              - condition: or
                conditions:
                  - condition: time
                    after: "04:59:59"
                    before: "06:00:00"
                  - condition: numeric_state
                    entity_id: sensor.capteur_tdeg_piscine_temperature
                    below: 0.1
            then:
              - target:
                  entity_id: switch.pompe_piscine
                action: switch.turn_on
              - if:
                  - condition: numeric_state
                    entity_id: sensor.capteur_tdeg_piscine_temperature
                    below: 0.1
                  - condition: not
                    conditions:
                      - condition: time
                        after: "04:59:59"
                        before: "06:00:00"
                then:
                  - delay: "00:05:00"
                  - target:
                      entity_id: switch.pompe_piscine
                    action: switch.turn_off
            else:
              - target:
                  entity_id: switch.pompe_piscine
                action: switch.turn_off
mode: restart

Automatisation été :

alias: "Piscine : Mode Été"
description: Gestion dynamique selon la température
triggers:
  - at: "06:00:00"
    trigger: time
  - at: "09:30:00"
    trigger: time
  - at: "10:00:00"
    trigger: time
  - at: "12:00:00"
    trigger: time
conditions:
  - condition: state
    entity_id: input_select.mode_pompe_piscine
    state: Automatique été
actions:
  - choose:
      - conditions:
          - condition: time
            after: "05:59:59"
            before: "06:00:01"
        sequence:
          - target:
              entity_id: switch.pompe_piscine
            action: switch.turn_on
          - delay: "00:05:00"
          - target:
              entity_id: switch.pompe_piscine
            action: switch.turn_off
      - conditions:
          - condition: template
            value_template: >
              {% set temp = states('sensor.capteur_tdeg_piscine_temperature') |
              float(0) %} {% set h = now().strftime('%H:%M') %} {% if 15 <= temp
              <= 20 and h == '12:00' %} true {% elif 21 <= temp <= 25 and h ==
              '10:00' %} true {% elif 26 <= temp <= 30 and h == '09:30' %} true
              {% else %} false {% endif %}
        sequence:
          - target:
              entity_id: switch.pompe_piscine
            action: switch.turn_on
          - delay: >
              {% set temp = states('sensor.capteur_tdeg_piscine_temperature') |
              float(0) %} {% if temp <= 20 %} 02:00:00 {% elif temp <= 25 %}
              05:00:00 {% else %} 10:00:00 {% endif %}
          - target:
              entity_id: switch.pompe_piscine
            action: switch.turn_off

System Information

version core-2026.1.2
installation_type Home Assistant OS
dev false
hassio true
docker true
container_arch aarch64
user root
virtualenv false
python_version 3.13.11
os_name Linux
os_version 6.12.47-haos-raspi
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.5
Stage running
Available Repositories 2634
Downloaded Repositories 8
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 16.3
update_channel stable
supervisor_version supervisor-2026.01.1
agent_version 1.7.2
docker_version 28.3.3
disk_total 234.0 GB
disk_used 7.4 GB
nameservers fe80::6e3:1aff:fe9c:4910, 192.168.0.1, 2a01:cb19:efb:5f00:6e3:1aff:fe9c:4910
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Advanced SSH & Web Terminal (22.0.3), Mosquitto broker (6.5.2), Zigbee2MQTT (2.7.2-1), Home Assistant Google Drive Backup (0.112.1), Samba share (12.5.4), File editor (5.8.0), AppDaemon (0.17.13)
Dashboards
dashboards 2
resources 4
views 2
mode storage
Network Configuration
adapters lo (disabled), end0 (enabled, default, auto), hassio (disabled), docker0 (disabled), veth6b11da5 (disabled), vethe6c580a (disabled), veth44380e4 (disabled), veth68dcaba (disabled), veth7ecc38f (disabled), vethde3da27 (disabled), veth9886c81 (disabled), vethb17287f (disabled), veth0b9f4dd (disabled), veth19b8c01 (disabled), vethf5b66a8 (disabled)
ipv4_addresses lo (127.0.0.1/8), end0 (192.168.0.25/24), hassio (172.30.32.1/23), docker0 (172.30.232.1/23), veth6b11da5 (), vethe6c580a (), veth44380e4 (), veth68dcaba (), veth7ecc38f (), vethde3da27 (), veth9886c81 (), vethb17287f (), veth0b9f4dd (), veth19b8c01 (), vethf5b66a8 ()
ipv6_addresses lo (::1/128), end0 (2a01:cb19:efb:5f00:7578:b655:5d6b:e885/64, fe80::8782:f740:7f58:fa24/64), hassio (fd0c:ac1e:2100::1/48, fe80::38dc:4cff:fe29:2643/64), docker0 (fe80::f8d9:b6ff:fede:9ded/64), veth6b11da5 (fe80::4a8:adff:feef:9ebb/64), vethe6c580a (fe80::64ac:1fff:fe71:d352/64), veth44380e4 (fe80::ec8e:41ff:fe3f:e9e8/64), veth68dcaba (fe80::5c46:d5ff:fefe:c371/64), veth7ecc38f (fe80::80c1:3fff:fec0:fba9/64), vethde3da27 (fe80::682c:f4ff:fe1a:a8b/64), veth9886c81 (fe80::b069:1ff:fe54:8446/64), vethb17287f (fe80::38b3:d8ff:fe5f:f6e0/64), veth0b9f4dd (fe80::c0ab:47ff:fefb:c7cb/64), veth19b8c01 (fe80::c8e9:24ff:feb7:e8b8/64), vethf5b66a8 (fe80::8cea:d9ff:fe02:d62a/64)
announce_addresses 192.168.0.25, 2a01:cb19:efb:5f00:7578:b655:5d6b:e885, fe80::8782:f740:7f58:fa24
Recorder
oldest_recorder_run 12 janvier 2026 à 17:35
current_recorder_run 17 janvier 2026 à 10:58
estimated_db_size 359.92 MiB
database_engine sqlite
database_version 3.49.2
___

Bonjour,

Je ne réponds pas à ta question, mais pour avoir pas mal galéré avec les automatisations de piscine, j’ai fini par me tourner vers ce Blueprint => Gestion filtration piscine (avancé) · GitHub dont on parle ici =>
Plugin Piscine : le blueprint pour HA (gestion de la filtration)

Voilà, si toutefois ça peut te faire avancer

Bonne fin de journée

Bonjour @PtiBed0 et merci d’avoir pris le temps de répondre.

J’avais effectivement trouvé ce très bon Blueprint de @Makai que j’ai installé en mode avancé. Mais il est trop éloigné de mon cahier des charges, du coup j’ai préféré repartir d’une page blanche.

J’avais aussi trouvé ceux de @nitocris (ici) mais beaucoup trop complet pour mon usage, de @Arnault (ici) mais trop compliqué au niveau du calcul de temps de filtration, de @Maxime_SALTET (ici) mais les évènements du calendrier m’ont paru trop complexes pour mon niveau…

ça marche :wink: et merci pour les liens

Bonne soirée