Mini tuto en reprenant du départ.
Voici comment j’aurai fait.
Commençons par décortiquer ton souhait de départ.
Le matin allumage à 8h10 si le soleil est couché
Cela donne un trigger (Quand: il est 8h10) et une condition (Si: le soleil est couché) avec pour action allumage.
Eteindre quand le soleil se lève ou bien à 9h
Cela nous donne 2 triggers (Quand: le soleil se lève) et (Quand: il est 9h) avec pour action extinction.
Le soir allumage a partir de 17h si le soleil est couché
Cela donne un trigger (Quand: il est 17h) et une condition (Si: le soleil est couché) avec pour action allumage.
Ou quand le soleil se couche
Cela donne un trigger (Quand: le soleil se couche) avec pour action allumage. Sur ce souhait même si ça n’est pas dit explicitement dans l’énoncé de départ on rajoutera la condition (Si: il est moins de 18h50) pour éviter d’allumer au cas ou le soleil se couche après 18h50, puisque sinon notre action d’éteindre à 18h50 sera dejà passée.
Et éteindre a 18h50
Cela nous donne 1 trigger (Quand: il est 18h50) avec pour action extinction.
Chose que tu n’as pas précisé mais que l’on peut déduire de ton code, il faut que l’automatisation s’exécute du lundi au vendredi se qui va rajouter une condition générale pour l’exécution des actions.
Comment traduire tout ça dans une automatisation
Commençons par les 6 triggers répertoriés ci-dessus:
triggers:
- trigger: time
at: "08:10:00"
- trigger: time
at: "09:00:00"
- trigger: time
at: "17:00:00"
- trigger: time
at: "18:50:00"
- trigger: sun
event: sunrise
- trigger: sun
event: sunset
A ces triggers j’ajoute un trigger_id pour pouvoir identifier quel trigger a déclenché l’automatisation.
C’est là pour les trigger_id :
triggers:
- trigger: time
at: "08:10:00"
id: "8:10"
- trigger: time
at: "09:00:00"
id: eteindre
- trigger: time
at: "17:00:00"
id: "17:00"
- trigger: time
at: "18:50:00"
id: eteindre
- trigger: sun
event: sunrise
id: eteindre
- trigger: sun
event: sunset
id: soleil se couche
On remarque ici que j’ai 3 trigger avec le même trigger_id. J’ai mis le même trigger_id parce que ces 3 triggers vont exécuter la même action par la suite (à savoir éteindre la lumière) ce qui me fera moins de lignes à écrire.
Ensuite la condition générale (Du lundi au vendredi):
conditions:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
Et enfin les actions avec leur propre conditions :
Commençons par celle qui va éteindre la lumière
actions:
- choose:
- conditions:
- condition: trigger
id:
- eteindre
sequence:
- action: switch.turn_off
data: {}
target:
entity_id: switch.welcome_home
En condition je passe le trigger_id " eteindre " qui fait référence au triggers 9h00, le soleil se lève et 18h50 avec pour action éteindre la lumière. Ce sont les 3 triggers qui avaient le même trigger_id comme expliqué plus haut.
Ensuite l’action pour allumer à 8h10 si le soleil est couché
- conditions:
- condition: trigger
id:
- "8:10"
- condition: sun
before: sunrise
sequence:
- action: switch.turn_on
data: {}
target:
entity_id: switch.welcome_home
En condition ici, le trigger_id " 8:10 " correspondant au trigger " at: " 08:10:00 " et la condition avant le levé du soleil
L’action pour allumer à 17h00 si le soleil est couché
- conditions:
- condition: trigger
id:
- "17:00"
- condition: sun
after: sunset
sequence:
- action: switch.turn_on
data: {}
target:
entity_id: switch.welcome_home
En condition, trigger_id " 17:00 " et condition si le soleil est couché
L’action pour allumer quand le soleil se couche après 17h00 et avant 18h50
- conditions:
- condition: trigger
id:
- soleil se couche
- condition: time
after: "17:00:00"
before: "18:50:00"
sequence:
- action: switch.turn_on
data: {}
target:
entity_id: switch.welcome_home
En condition, trigger_id " soleil se couche " et le temps entre 17h00 et 18h50
Le résultat final
alias: Gestion de l'éclairage pour arrivée des parents
description: Allume et éteint la lumière selon l'horaire et la position du soleil
triggers:
- trigger: time
at: "08:10:00"
id: "8:10"
- trigger: time
at: "09:00:00"
id: eteindre
- trigger: time
at: "17:00:00"
id: "17:00"
- trigger: time
at: "18:50:00"
id: eteindre
- trigger: sun
event: sunrise
id: eteindre
- trigger: sun
event: sunset
id: soleil se couche
conditions:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
actions:
- choose:
- conditions:
- condition: trigger
id:
- "8:10"
- condition: sun
before: sunrise
sequence:
- action: switch.turn_on
data: {}
target:
entity_id: switch.welcome_home
- conditions:
- condition: trigger
id:
- "17:00"
- condition: sun
after: sunset
sequence:
- action: switch.turn_on
data: {}
target:
entity_id: switch.welcome_home
- conditions:
- condition: trigger
id:
- soleil se couche
- condition: time
after: "17:00:00"
before: "18:50:00"
sequence:
- action: switch.turn_on
data: {}
target:
entity_id: switch.welcome_home
- conditions:
- condition: trigger
id:
- eteindre
sequence:
- action: switch.turn_off
data: {}
target:
entity_id: switch.welcome_home
mode: single
Je précise que c’est comme ça que le l’aurait construite mais je ne l’ai pas testée donc si ça se trouve ça va foirer aussi