Je viens de constater que lors d’un reboot, les scheduler ne rechargent pas les actions.
Par exemple, sur mes thermostats, si j’ai un schedule en mode confort de 17h à 18h et que le reboot arrive a 17h30; au redemarrage le thermostat est et reste sur mode eco.
Si on fait switch.schedule OFF puis ON, ok, le thermostat repasse sur Confort.
J’ai vu une solution sur le forum anglais
Avec une automation proposée :
- id: "raz_schedule_auto"
# recherche automatique des schedules en fonction de la zone choisie
# avec 'search' on n a pas de * ???
# schedule_list: >
# {{ states.switch
# |selectattr('entity_id', 'search', 'schedule') # 1 pour selectionner les SWITCH.SCHEDULE
# |selectattr('entity_id', 'search', '2023ex') # 2 pour selectionner le nom générique EX 2023ex
# |rejectattr('entity_id', 'search', 'masque_d_exclusion') # 3 pour rejeter un masque = |rejectattr('entity_id', 'search', 'masque_d_exclusion
# |map(attribute='entity_id')
# |list }}
alias: raz_schedule_auto_test
description: turn off tous les schedules decouverte auto
trigger: []
action:
- variables:
schedule_list: >
{{ states.switch
|selectattr('entity_id', 'search', 'schedule')
|rejectattr('entity_id', 'search', 'masque_d_exclusion')
|map(attribute='entity_id')
|list }}
- service: scheduler.run_action
data: {}
target:
entity_id: "{{ schedule_list }}"
Le probleme c’est que cela remet à On TOUT les schedule; or j’en ai certain qui sont off et je ne veux pas le remettre à On au redemarrage.
Comment modifier le code pour ne « recharger » que les schedules qui sont à ON avant reboot?
En fait, ce dont tu as besoin c’est de recalculer complétement l’état du scheduler … Connaitre ceux qui étaient à ON avant reboot, c’est pas suffisant (en plus de pas forcement être simple).
Par exemple, tu rebootes à 17:29, le shedule devait se terminer à 17H30, et tu finis de rebooter à 17h31 …
Perso j’ai pas d’idée d’un truc faisable en dehors de, car j’imagine que la fonction reload du sheduler, c’est ni plus ni moins que ce qui est fait restart :
c’est pas forcement un problème : a 17:29 le mode de mon thermostat est Confort. A 17:30 il devait passer à Eco. Je finit le reboot à 17:31. L’automation fait ON/OFF à 17:31 : le mode sera bien Eco…
Pour selectionner seulement les schedules qui étaient actifs avant reboot et les relancer voilà une solution :
alias: Reload Schedules au reboot
trigger:
- platform: homeassistant
event: start # Déclenche l'automatisation au redémarrage de Home Assistant
- platform: event
event_type: homeassistant_reload # Déclenche lors du rechargement de la configuration YAML
action:
- variables:
on_schedules: >
{{ states.switch
| selectattr('entity_id', 'search', 'schedule')
| selectattr('state', 'eq', 'on')
| map(attribute='entity_id')
| list }}
- service: switch.turn_off
data:
entity_id: "{{ on_schedules }}"
- delay: "00:00:10" # Petite pause pour s'assurer que les entités sont bien désactivées
- service: switch.turn_on
data:
entity_id: "{{ on_schedules }}"
Alors je me suis peut etre mal expliqué.
Les schedules ne se mettent pas a Off au reboot. ils restent dans l’etat dans lequel ils etaient avanr reboot.
Le soucis (et je ne sais pas pourquoi) c’est que sur mes thermostats (pilotés par scheduler card) au moment du reboot ils repassent tous en mode eco (mais je pense que cela doit venir de l’integration thermostat et pas schedule).
Le seul moyen de retrouver le bon mode piloté par les schedules c’est de faire On/Off sur les schedules…
Du coup l’automation fait le job : au reboot elle recharge tout les schedules actifs et pas ceux que j’ai mis en off…