Un réveil sur Home assistant

En prenant exemple sur le code fournit du 1er post, voici pour ceux qui veulent un code fonctionnel (@barto_95 :wink: ) :

##############################
#SENSOR
##############################
sensor:
  - platform: time_date
   #Création de 1 entité représentant l'heure (HH:MM )
    display_options:
      - 'time'

##############################
#INPUT_BOOLEAN
##############################
input_boolean:
  reveil_1:
    #Représente si le réveil est activé
    name: Réveil 1 (Activation)
    icon: mdi:alarm
  reveil_declenche_1:
    #Représente si le réveil à déjà sonné dans la journée (empêche le déclenchement toutes les minutes après l'heure de réveil)
    name: Le réveil a déjà sonné
    icon: mdi:alarm
  reveil_mon_1:
    #Représente le jour : Lundi
    name: Lundi
    icon: mdi:calendar
  reveil_tue_1:
    #Représente le jour : Mardi
    name: Mardi
    icon: mdi:calendar
  reveil_wed_1:
    #Représente le jour : Mercredi
    name: Mercredi
    icon: mdi:calendar
  reveil_thu_1:
    #Représente le jour : Jeudi
    name: Jeudi
    icon: mdi:calendar
  reveil_fri_1:
    #Représente le jour : Vendredi
    name: Vendredi
    icon: mdi:calendar
  reveil_sat_1:
    #Représente le jour : Samedi
    name: Samedi
    icon: mdi:calendar
  reveil_sun_1:
    #Représente le jour : Dimanche
    name: Dimanche
    icon: mdi:calendar

##############################
#INPUT_DATETIME
##############################
input_datetime:
  reveil_heure_1:
    #Représente l'heure du réveil 1
    name: Réveil 1
    has_time: true

##############################
#AUTOMATION
##############################
automation:
  - id: 'reveil_1'
    alias: reveil_1
    description: "Se déclenche à l'heure définie par l'entité input_datetime.reveil_heure_1"
    trigger:
    - platform: state
      #Déclenchement de l'automatisation toutes les minutes (permet de s'assuser que le réveil va sonner même si HA était indisponible à l'heure du réveil (reboot principalement))
      entity_id: sensor.time
    - platform: state
      #Déclenchement lors du changement de l'heure du réveil (permet de reprogrammer le réveil)
      entity_id: input_datetime.reveil_heure_1
    condition:
    - condition: template
      value_template: >-
        {% set numero = '1' %} {# Représente le numéro du réveil #}
        {% set today = 'input_boolean.reveil_' ~now().strftime("%a") | lower ~'_' ~numero %} {# Récupère le nom court de la semaine en anglais et le concatène pour formé le texte <input_boolean.reveil_XXX_1> où XXX peut prendre les valeurs [mon,tue,wed,thu,fri,sat,sun] #}
        {{ is_state(('input_boolean.reveil_' ~numero), 'on') and is_state(today, 'on') }} {# Si le réveil est ACTIF et que le booléen du jour est à Vrai la condition est remplie #}
    action:
    - choose:
      - conditions:
        - condition: template
          #Si l'heure actuelle est inférieure à l'heure du réveil : 
            #Et si le réveil à déjà sonné (input_boolean.reveil_declenche_1)
             #Remise à Faux de l'entité input_boolean.reveil_declenche_1
          value_template: >-
            {% set numero = '1' %} {# Représente le numéro du réveil #}
            {% set heure_du_reveil = strptime(states('input_datetime.reveil_heure_1'),'%H:%M:%S').strftime('%H:%M:%S') %} {# Conversion de l'input_datetime en objet DATETIME au format HH:MM:SS #}
            {% set heure_actuelle = strptime(states('sensor.time'),'%H:%M').strftime('%H:%M:%S')%}  {# Conversion de l'heure actuelle en objet DATETIME au format HH:MM:SS #}
            {% if heure_actuelle < heure_du_reveil %}
              {% if is_state(('input_boolean.reveil_declenche_' ~numero), 'on') %}
                true
              {% else %}
                false
              {% endif %}
            {% else %}
              false
            {% endif %}
        sequence:
          - service: persistent_notification.create
            data:
              message: >
                Déjà réveillé !
              title: DEBUG Automatisation
              notification_id: '{{ (range(1, 9999)|random) }}'
          - service: input_boolean.turn_off
            entity_id: input_boolean.reveil_declenche_1
      - conditions:
        - condition: template
          #Si l'heure actuelle est égale ou supérieure à l'heure du réveil : 
            #Et si le réveil n'a pas déjà sonné (input_boolean.reveil_declenche_1)
             #Mise à Vrai de l'entité input_boolean.reveil_declenche_1
             #<AJOUTER LES ACTIONS DU REVEIL>
             #<AJOUTER LES ACTIONS DU REVEIL>
             #<AJOUTER LES ACTIONS DU REVEIL>
          value_template: >-
            {% set numero = '1' %} {# Représente le numéro du réveil #}
            {% set heure_du_reveil = strptime(states('input_datetime.reveil_heure_1'),'%H:%M:%S').strftime('%H:%M:%S') %} {# Conversion de l'input_datetime en objet DATETIME au format HH:MM:SS #}
            {% set heure_actuelle = strptime(states('sensor.time'),'%H:%M').strftime('%H:%M:%S')%} {# Conversion de l'heure actuelle en objet DATETIME au format HH:MM:SS #}
            {% if heure_actuelle >= heure_du_reveil %}
              {% if is_state(('input_boolean.reveil_declenche_' ~numero), 'off') %}
                true
              {% else %}
                false
              {% endif %}
            {% else %}
              false
            {% endif %}
        sequence:
          - service: persistent_notification.create
            data:
              message: >
                C'est l'heure !
              title: DEBUG Automatisation - Fired
              notification_id: '{{ (range(1, 9999)|random) }}'
          - service: input_boolean.turn_on
            entity_id: input_boolean.reveil_declenche_1
        #  - Action supplémentaire 
        #  - Action supplémentaire
        #  - Action supplémentaire
1 « J'aime »