Probleme scheduler au reboot

Bonjour à tous

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?

Merci!

Salut,

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 :

  • ouvrir un issue
  • utiliser autre chose (calendar)

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 }}"

Ca devrait faire le Job

OK, donc ON c’est pas l’état (le truc calculé) de ton scheduler. C’est bien le fait qu’il doive calculer.

Par ailleurs, ton automatisation, ça active les schedulers qui sont actifs APRES le reboot… Pas avant comme évoqué.

Si ça corrige ton souci, parfait mais c’est pas exactement l’énoncé initial

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…

2 « J'aime »