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
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)