J’ai défini un agenda avec des horaires variable de mon emplois du temps professionnel. Je cherche à optimiser l’heure de mon réveil en fonction de l’heure à laquelle je dois commencer mon travail. L’heure de mon réveil dépend donc directement du début de l’événement de mon calendrier google ainsi que d’un offset que j’ai décider de définir dans un « input.datetime »
Comment créer un sensor qui me renvoi l’heure de réveil pour faire ce calcul?
Une autre possibilité est d’utiliser les sensors de ton app mobile Home Assistant qui est capable de récupérer la prochaine date/time de ton réveil.
De cette façon, pas d’agenda à tenir, ton Automation va se tenir à ton réveil
une entité input_number.reveil_1_offset représentant l’offset du réveil par rapport à la date/heure de l’évènement du calendrier
un calendrier calendar.lohr dans ton cas afin de récupérer la date/heure du prochain évènement
une entité input_datetime.reveil_1 représentant la date/heure du réveil calculé à partir de l’évènement du calendrier et de l’offset
une automatisation automatisation.reveil_1_mise_a_jour permettant de mettre ç jour l’entité input_datetime.reveil_1
une automatisation automatisation.reveil_1 se déclenchant à la date/heure du input_datetime.reveil_1 et exécutant les actions de réveil (jouer de la musique, allumer la lumière, la cafetière, etc.)
Voici le code de l’automatisation de mise à jour de l’entité input_datetime.reveil_1 :
alias: mise_a_jour_de_l'heure_du_reveil
description: Se met à jour lors d'une mise à jour du calendrier
trigger:
- platform: state
entity_id: calendar.lohr
condition: []
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.reveil_1
data:
datetime: >-
{{ strptime(state_attr('calendar.lohr','start_time'),'%Y-%m-%d
%H:%M:%S') + timedelta(minutes=(states('input_number.reveil_1_offset')|int))}}
mode: single
Voici le code de l’automatisation de réveil :
alias: Il est l'heure
description: Réveil en fonction du calendrier et de l'offset
trigger:
- platform: time
at: input_datetime.reveil_1
condition: []
action:
- service: script.turn_on
target:
entity_id: script.reveil_01
mode: single
Je pense par contre qu’il faut conditionner l’exécution du réveil avec une entité input_boolean.reveil_01_deja_enclenche qui se met à Vrai dans les actions du réveil.
Il te faudra donc en plus une automatisation à enclencher à minuit (ou 3h ou 4h ) qui repasse l’enttié input_boolean.reveil_01_deja_enclenche à Faux.
→ Cela afin d’éviter le déclenchement du réveil à chaque évènement du calendrier.