Temps de marche pompe piscine dynamique

Bonjour,

Je viens de l’Arduino (je ne suis pas un expert mais je me débrouille un peu).

J’ai depuis quelques années un arduino avec 2 relais, 1 sonde Dallas et une sonde de température externe faite maison avec une dallas.

Le tout fonctionne à merveille.

J’avais aussi une box tahoma qui fonctionnait sous ifttt pour d’autres automatisations.

Depuis que IFTTT est down pour somfy, je commence à m’intéresser à Home Assistant.

J’ai réussi à passer sans problème de ifttt à home assistant.

Par contre je veux faire évoluer mon système et gérer ma piscine via HA.

J’ai donc commencé à traiter le sujet avec ESPHome et automatisations.

J’ai réussi à gérer la partie antigel et filtrage de nuit pour la partie hiver (automatisation et un peu de YAML-> que je ne maitrise pas).

Il me reste une partie que je ne maîtrise pas et là j’ai besoin de votre aide.

En été, je filtre ma piscine avec un départ à 7h (trigger).

Je récupère la température de ma sonde d’eau au bout de 3 minutes de fonctionnement.

Ensuite, je divise le résultat par 2 et cela me fait l’heure de fin.

Et là, je ne maîtrise pas le sujet.

Je ne sais pas comment faire mon automatisation (ou YAML).

Bonne journée à vous.

Ma configuration

Mon serveur HA est sur une machine virtuel qui est gérée par ma freebox (Go de mémoire vive)

System Information

version | core-2025.2.4

installation_type | Home Assistant OS
dev | false
hassio | true
docker | true
user | root
virtualenv | false
python_version | 3.13.1
os_name | Linux
os_version | 6.6.73-haos
arch | aarch64
timezone | Europe/Paris
config_dir | /config

host_os | Home Assistant OS 14.2

update_channel | stable
supervisor_version | supervisor-2025.02.1
agent_version | 1.6.0
docker_version | 27.2.0
disk_total | 117.4 GB
disk_used | 7.1 GB
healthy | true
supported | true
host_connectivity | true
supervisor_connectivity | true
ntp_synchronized | true
virtualization | kvm
board | generic-aarch64
supervisor_api | ok
version_api | ok
installed_addons | ESPHome Device Builder (2025.2.0), Node-RED (19.0.2), File editor (5.8.0), Studio Code Server (5.18.3)

Peut-être avec cette formule qui va te permettre d’attendre que ton timer et terminé ?

delay:
  minutes: "{{ states('sensor.filtration_time') | int }}"

sensor.filtration_time = à adapter avec ton sensor

Voici mon automation que j’utilise pour la pompe de mon bassin à poissons

alias: AUTO - POISSON - Pompe du Bassin avec Délai
description: >-
  Automatisation pour allumer la pompe du bassin, attendre le temps défini dans
  le capteur et ensuite l'éteindre.
triggers:
  - at: "07:30:00"
    trigger: time
  - hours: /4
    trigger: time_pattern
conditions: []
actions:
  - choose:
      - conditions:
          - condition: and
            conditions:
              - condition: time
                after: "10:00:00"
                before: "21:55:00"
              - condition: state
                entity_id: sensor.season
                state: spring
              - condition: state
                entity_id: sensor.season
                state: summer
        sequence:
          - target:
              entity_id:
                - switch.shellyplus1pm_a0dd6c3163cc_switch_0
            data: {}
            action: switch.turn_on
          - delay:
              minutes: "{{ states('sensor.filtration_time') | int }}"
          - data: {}
            action: switch.turn_off
            target:
              entity_id: switch.shellyplus1pm_a0dd6c3163cc_switch_0
      - conditions:
          - condition: and
            conditions:
              - condition: state
                entity_id: sensor.season
                state: autumn
              - condition: state
                entity_id: sensor.season
                state: winter
              - condition: time
                after: "10:00:00"
                before: "21:55:00"
                weekday:
                  - mon
                  - wed
                  - fri
                  - sun
        sequence:
          - data: {}
            action: switch.turn_on
            target:
              entity_id: switch.shellyplus1pm_a0dd6c3163cc_switch_0
          - delay:
              minutes: "{{ states('sensor.filtration_time') | int }}"
          - data: {}
            action: switch.turn_off
            target:
              entity_id: switch.shellyplus1pm_a0dd6c3163cc_switch_0
mode: single

Bonjour,

Avec l’aide de Claude IA, j’ai automatisé ma filtration piscine avec comme toi la durée = Temp piscine / 2.
J’ai donc créé:

  • Un timer qui va gérer la durée de fonctionnement
  • Deux automatisations :
    > La première démarre la filtration à 8h00 et configure le timer avec la bonne durée
    > La seconde arrête la filtration quand le timer est terminé

Voici le code Yaml:

  • fichier sensors.yaml:
  - platform: template
    sensors:
      duree_filtration:
        friendly_name: "Durée de filtration"
        unit_of_measurement: 'hours'
        value_template: "{{ states('sensor.temperature_piscine') | float / 2 }}"

J’ai ajouté ceci dans mon configuration.yaml:

# Timer pour l'arrêt automatique
timer:
  filtration_piscine:
    name: Timer Filtration Piscine
    duration: "00:00:00"  # Sera défini dynamiquement

Automatisation Démarrage filtration:

alias: Auto - Technique - Piscine - Démarrage filtration
description: Démarre la filtration et programme l'arrêt avec le timer
triggers:
  - trigger: time
    at: input_datetime.heure_debut_filtration
conditions: []
actions:
  - target:
      entity_id: switch.fitration_piscine
    data: {}
    action: switch.turn_on
  - delay:
      hours: 0
      minutes: 6
      seconds: 0
      milliseconds: 0
  - target:
      entity_id: timer.filtration_piscine
    data:
      duration: >
        {% set duree = states('sensor.duree_filtration') | float %} {% set
        heures = duree | int %} {% set minutes = ((duree % 1) * 60) | int %} {{
        '%02d:%02d:00' % (heures, minutes) }}
    action: timer.start
mode: single

Arrêt filtration :

alias: Auto - Technique - Piscine - Arrêt filtration
description: Arrête la filtration quand le timer est terminé
triggers:
  - trigger: event
    event_type: timer.finished
    event_data:
      entity_id: timer.filtration_piscine
conditions: []
actions:
  - action: switch.turn_off
    metadata: {}
    data: {}
    target:
      entity_id: switch.fitration_piscine
mode: single

J’ai souhaité choisir l’heure de début de filtration et j’ai ajouté une entrée Calendrier/heure, je l’ai sur mon dashbord:


Donc l’automatisation de démarrage filtration se déclenche avec cet horaire choisi.

1 « J'aime »

Bonjour
Je rentre à peine de 2 semaines à de vacances.
Je vais pouvoir essayer tout cela.
Merci pour votre retour.
Je vous tiens au courant.

Bonjour Mars190
Je rentre à peine de 2 semaines à de vacances.
Je vais pouvoir essayer tout cela.
Merci pour votre retour.
Je vous tiens au courant.

Bonsoir Mars190
Ta solution fonctionne.
Je me suis fait aider par Claude et je commence un peu à comprendre le fonctionnement.
Merci à toi