C’est pas si simple en fait, car on ne peut pas juste utiliser des minuteurs au vu des services disponibles…
Du coup, je dirais qu’il faut :
- 3 input_number (timer1,timer2,timer_global)
- 3 input_boolean (timer1,timer2, timer_global)
- 2 timers (timer1, timer 2)
- 1 automatisation de gestion du timer global
- 3 automatisations pour le démarrage des timers (on peut faire une seule automatisation avec la fonction choose) sur changement d’état des booléens correspondants.
Et du coup, sur le papier, le fonctionnement serait le suivant:
-
Les input_number servent à la définition du temps des timers.
1.1 input_number.timer_1 correspond au temps du timer 1
1.2 input_number.timer_2 correspond au temps du timer 2
1.3 input_number.timer_global correspond au temps du timer 1 et timer 2
1.3.1 Il faut une automatisation pour modifier les imput_number.timer[1,2] en fonction du global -
Les input_boolean servent à démarrer les timers correspondants :
2.1 input_boolean.timer1 déclenche le démarrage du timer 1 (automatisation)
2.2 input_boolean.timer2 déclenche le démarrage du timer 2 (automatisation)
2.3 input_boolean.timer_global déclenche le démarrage du timer 1 et timer 2 (automatisation)
Ensuite, il ne reste plus qu’à créer une automatisation qui se déclenche sur le passage à l’état démarré de chaque timer sans oublier les automatisions de fin de timer.
Création des input_number :
Automatisation de synchronisation des timers
Tu peux copier le code des automatisations suivantes et les coller directement dans HA :
Synchronisation des timers
alias: Synchroniser les timers
description: Permet de synchroniser les timers 1 et 2 suivant le timer global
trigger:
- platform: state
entity_id: input_number.timer_global
condition: []
action:
- service: input_number.set_value
target:
entity_id:
- input_number.timer_1
- input_number.timer_2
data:
value: "{{states('input_number.timer_global')|int}}"
mode: single
Automatisation de démarrage des timers
Création des input_boolean
Création des timers
(le dernier global
n’est pas utile car non utilisé)
Création des automatisations de déclenchement :
Démarrage Timer 1
alias: Démarrage de Timer 1
description: Permet de démarrer le timer 1 sur le passage à vrai du booléen correspondant
trigger:
- platform: state
entity_id: input_boolean.timer_1
to: 'on'
condition: []
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.timer_1
- service: timer.start
data:
duration: '{{ states(''input_number.timer_1'') | int * 60 }}'
target:
entity_id: timer.timer_1
mode: single
Démarrage Timer 2
alias: Démarrage de Timer 2
description: Permet de démarrer le timer 2 sur le passage à vrai du booléen correspondant
trigger:
- platform: state
entity_id: input_boolean.timer_2
to: 'on'
condition: []
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.timer_2
- service: timer.start
data:
duration: '{{ states(''input_number.timer_2'') | int * 60 }}'
target:
entity_id: timer.timer_2_2
mode: single
Démarrage Timer 1 et 2
alias: Démarrage de Timer 1 et 2
description: >-
Permet de démarrer le timer 1 et 2 sur le passage à vrai du booléen
correspondant
trigger:
- platform: state
entity_id: input_boolean.timer_global
to: 'on'
condition: []
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.timer_global
- service: input_number.set_value
target:
entity_id:
- input_number.timer_1
- input_number.timer_2
data:
value: '{{states(''input_number.timer_global'')|int}}'
- service: timer.start
data:
duration: '{{states(''input_number.timer_global'')|int * 60}}'
target:
entity_id:
- timer.timer_1_2
- timer.timer_2_2
mode: single
Et c’est à peu près tout.
Tu peux utiliser des cartes boutons plutôt que l’affichage des entités.
Tu peux utiliser des input_datetime plutôt que des input_numbers
Tu peux concatener les 3 automatisations de démarrage en une seule avec la fonction fonction
.