Création d'un Timer Paramétrable

Salut
Comme j’ai quand même pas mal ramé ,je donne la solution a la quelle je suis arrivé (Pas forcément la meilleure, mais ce que j’ai fait a l’air de marcher (…come je veux)

inspiré de https://forum.hacf.fr/t/parametrer-la-duree-dun-timer-avec-une-entree/518 et de cet article en anglais

Création d’un timer (ex : temps quotidien de filtration piscine) avec durée réglable a partir de lovelace

Il faut créer 3 entités de type « Entréee » :
1 « Boolean » (on / off qui pilote lancement / arret)
1 « Numérique » qui contiendra la durée en minutes de consigne (qui peut être modifiée ensuite dans Lovelace)
1 « Timer » qui pourra générer les évenements et suivre le compte a rebours (accessible lui aussi dans l’interface)

ensuite il faut se créer 3 automatisations
start : pour l’action au début du timer et lancer le timer (attention a la syntaxe YAML pointue car il faudra passer la valeur de la variable au lancement du timer)
cancel (pour arreter le compte en cours de route (a commander par l’entrée Boolean)
et stop (l’action a la fin du Timer

c’est la que c’est un peu sioux coté syntaxe pour jongler entre l’interface des automatisations web et yaml
ci dessous ce que ça donne (je donne le yaml complet a la fin)

Start : un trigger sur changement d’éat de votre boolean

une action un peu rusée en Yaml pour transférer la durée

et a la fin votre action au démarrage (ici j’appelle un service sur une lumière pour simuler l’allumage pompe

cancel : un trigger classique sur le passage a off du boolean
une action pour gérer l’arret du timer par un service (a choisir entre timer.cancel et timer.finish suivant si vous voulez que l’action de fin soit faite ou pas (pour moi, finish pour faire l’arret de la pompe)

et "stop** avec le trigger sur l’evenement « fin du timer »


et en action : l’arret de ma pompe ET la remise a OFF du Boolean de contrôle, pour « réarmer »

Voila après dans lovelace il y a des visuels sympas
( avec le type: custom:flipdown-timer-card du HACS /lovelace pour le compte a rebours github
et un petit dropdown pour cacher/afficher le détail des infos de la prise (conso, …)

detail du code des automatisations :

- id: '1640615802963'
  alias: Timer Pompe  Start
  description: Lancement du timer Filtre piscine aec initialisation par la variable
  trigger:
  - platform: state
    entity_id: input_boolean.timer_pompe_activation
    from: 'off'
    to: 'on'
  condition: []
  action:
  - data_template:
      duration: '{{states.input_number.timer_pompe_duree.state | int * 60 }}'
    entity_id: timer.timer_pompe
    service: timer.start
  - service: light.turn_on
    target:
      entity_id: light.wled_segment_2
  mode: single


- id: '1640619632482'
  alias: Timer Pompe Cancel
  description: 'arret timer et pompe si commande '
  trigger:
  - platform: state
    entity_id: input_boolean.timer_pompe_activation
    to: 'off'
  condition: []
  action:
  - service: timer.finish
    target:
      entity_id: timer.timer_pompe
  mode: single


- id: '1640618609467'
  alias: Timer Pompe Stop
  description: Arret pompe a la fin du timer de filtration
  trigger:
  - platform: event
    event_type: timer.finished
    event_data:
      entity_id: timer.timer_pompe
  condition: []
  action:
  - service: input_boolean.turn_off
    target:
      entity_id: input_boolean.timer_pompe_activation
  - service: light.turn_off
    target:
      entity_id: light.wled_segment_2
  mode: single

Voili voilou
si vous avez une meilleur manière, n’hésitez pas a la signaler :sweat_smile:
j’en ai pas parlé, mais chez moi, l’activation de du boolean est lançé en automatique périodiquement par le « Scheduler » (par exemple 2 fois par jour)

3 « J'aime »

Hello,

Super explication

Arrives-tu à régler le timer à partir de cela ?

image

Merci

Cordialement

Bonjour,

Voici un excellent script d’inspiration de gestion de piscine pour moi qui débute avec Home Assistant (j’ai un serveur Jeedom qui tourne pour la piscine et je souhaite voir pour migrer).
Je serais très curieux de savoir de savoir si le timer est réglable à partir de l’interface.

Tu peut, sinon tu peut aussi aller voir là pour ça:
GitHub - oncleben31/ha-pool_pump: 🏊💻Pool pump manager for Home Assistant

Génial merci, je vais étudier ça

Bonjour

Es-tu certain que ton automation fonctionne ? J’ai créé les 3 entrées avec les mêmes nom et j’ai copier l’automation(j’ai seulement changer le nom de la lampe pour faire un test), mais quand je lance la minuterie, le chrono démarre bien mais la lampe ne s’allume pas.

Je ne vois pas d’où vient mon erreur !!

Une idée peut-être ?

Merci
Cordialement