J’ai trouvé ! Avec votre aide.
Dans un premier temps j’ai configuré deux sliders pour les heures et les minutes :
number:
- platform: template
name: "00- Heure Départ"
id: heure_depart
max_value: 23
min_value: 0
step: 1
restore_value: True
initial_value: 6
unit_of_measurement: h
mode: SLIDER
optimistic: True
- platform: template
name: "00- Minute Départ"
id: minute_depart
max_value: 59
min_value: 0
step: 5
restore_value: True
initial_value: 0
unit_of_measurement: mn
mode: SLIDER
optimistic: True
Puis un switch par jour :
switch:
- platform: template
name: "01- Lundi"
id: day_1
optimistic: true
lambda: return id(day_1).state;
- platform: template
name: "02- Mardi"
id: day_2
optimistic: true
lambda: return id(day_2).state;
- platform: template
name: "03- Mercredi"
id: day_3
optimistic: true
lambda: return id(day_3).state;
- platform: template
name: "04- Jeudi"
id: day_4
optimistic: true
lambda: return id(day_4).state;
- platform: template
name: "05- Vendredi"
id: day_5
optimistic: true
lambda: return id(day_5).state;
- platform: template
name: "06- Samedi"
id: day_6
optimistic: true
lambda: return id(day_6).state;
- platform: template
name: "07- Dimanche"
id: day_7
optimistic: true
lambda: return id(day_7).state;
le problème c’est que on_time ne prends pas de paramètres sur minute et hour, donc je l’ai configuré pour déclencher toutes les minutes puis j’ai mis une condition sur le jour de la semaine, puis sur l’
on_time:
- seconds: 0
minutes: 0-59
hours: 0-23
days_of_week: 1-7
then:
- if:
condition:
lambda: |-
bool start_sprinkler = false;
if ((id(sntp_time).now().day_of_week == 1) && id(day_1).state) {
} else if ((id(sntp_time).now().day_of_week == 2) && id(day_2).state) {
} else if ((id(sntp_time).now().day_of_week == 3) && id(day_3).state) {
} else if ((id(sntp_time).now().day_of_week == 4) && id(day_4).state) {
} else if ((id(sntp_time).now().day_of_week == 5) && id(day_5).state) {
} else if ((id(sntp_time).now().day_of_week == 6) && id(day_6).state) {
} else if ((id(sntp_time).now().day_of_week == 7) && id(day_7).state) {
} else {
return { false };
}
if ((id(sntp_time).now().hour == id(heure_depart).state) && (id(sntp_time).now().minute == id(minute_depart).state)){
start_sprinkler = true ;
}
return { start_sprinkler };
then:
- sprinkler.start_full_cycle: sprinkler_ctrlr
Remarque: les paramètres dans l’interface web sont classés par ordre alphabétique, j’ai donc mis un chiffre en début de chaque nom pour les classer