Un réveil sur Home assistant

@cob94440, on en parlais hier, voici une autre façon (j’ai conservé tous les noms pour faciliter la comparaison) :

Pour ceux qui comme moi sont plus à l’aise (surtout sur mobile) avec des input_select pour la définition de l’heure :

#Par rapport au post 1 de @cob94440 
# sensor.wake_time_1 est remplacé par input_datetime.wake_time_1 pour la définition de l'heure du réveil
# input_number.wakehour_1 est remplacé par input_select.wakehour_1 pour la définition de l'heure
# input_number.wakeminutes_1 est remplacé par input_select.wakeminutes_1 pour la définition des minutes

#Input_booleans (inchangés par rapport au post 1) 
input_boolean:
  wakeactivated_1:
    name: Alarm 1 Activated
    icon: mdi:alarm
  wakestatus_1:
    name: Alarm 1
    icon: mdi:alarm
  wakeweekday_sun_1:
    name: Sunday
    icon: mdi:calendar
  wakeweekday_mon_1:
    name: Monday        
    icon: mdi:calendar
  wakeweekday_tue_1:
    name: Tuesday        
    icon: mdi:calendar
  wakeweekday_wed_1:
    name: Wednesday       
    icon: mdi:calendar
  wakeweekday_thu_1:
    name: Thursday       
    icon: mdi:calendar
  wakeweekday_fri_1:
    name: Friday        
    icon: mdi:calendar
  wakeweekday_sat_1:
    name: Saturday        
    icon: mdi:calendar
    
#Input_datetime (nouveau par rapport au post 1)
input_datetime:
  wake_time_1:
  #Représente l'heure du réveil
    name: wake_time_1
    has_date: false
    has_time: true

#Input_select (nouveau par rapport au post 1) 
input_select:
  wakehour_1:
  #Représente le choix de l'heure
    name: wakehour_1
    options:
     - '00'
     - '01'
     - '02'
     - '03'
     - '04'
     - '05'
     - '06'
     - '07'
     - '08'
     - '09'
     - 10
     - 11
     - 12
     - 13
     - 14
     - 15
     - 16
     - 17
     - 18
     - 19
     - 20
     - 21
     - 22
     - 23
  wakeminutes_1:
  #Représente le choix des minutes
    name: wakeminutes_1
    options:
     - '00'
     - '01'
     - '02'
     - '03'
     - '04'
     - '05'
     - '06'
     - '07'
     - '08'
     - '09'
     - 10
     - 11
     - 12
     - 13
     - 14
     - 15
     - 16
     - 17
     - 18
     - 19
     - 20
     - 21
     - 22
     - 23
     - 24
     - 25
     - 26
     - 27
     - 28
     - 29
     - 30
     - 31
     - 32
     - 33
     - 34
     - 35
     - 36
     - 37
     - 38
     - 39
     - 40
     - 41
     - 42
     - 43
     - 44
     - 45
     - 46
     - 47
     - 48
     - 49
     - 50
     - 51
     - 52
     - 53
     - 54
     - 55
     - 56
     - 57
     - 58
     - 59

#Scripts (inchangés par rapport au post 1)
script:
  xiaomi_alarm1:
    sequence:
    - data:
        gw_mac: 0123456789
        ringtone_id: 13
        ringtone_vol: 50
      service: xiaomi_aqara.play_ringtone
    - delay:
        seconds: 6
    - service: script.xiaomi_alarm2
    mode: parallel
    max: 10

  xiaomi_alarm2:
    sequence:
    - data:
        gw_mac: 0123456789
        ringtone_id: 13
        ringtone_vol: 75
      service: xiaomi_aqara.play_ringtone
    - delay:
        seconds: 6
    - service: script.xiaomi_alarm1
    mode: parallel
    max: 10

  xiaomi_alarm3:
    sequence:
    - repeat:
        count: 180
        sequence:
        - data:
           gw_mac: 0123456789
           ringtone_id: 13
           ringtone_vol: 40
          service: xiaomi_aqara.play_ringtone
        - delay:
            seconds: 6
    mode: restart

  alarm_snooze:
    alias: Alarm was Snooze
    sequence:
    - service: script.alarmclock_off
    - delay:
        seconds: 300
    - service: script.turn_on
      entity_id:
      - script.xiaomi_alarm3
    - delay:
        seconds: 300
    - service: script.turn_on
      entity_id:
      - script.alarmclock_off

  alarmclock_off:
    alias: Alarm was disarmed
    sequence:
    - service: script.turn_off
      data:
        entity_id:
        - script.xiaomi_alarm3

automation:
  - id: 'wake_1_update_time' #nouvelle par rapport au post 1
    # Automatisation qui met à jour le input_datetime 'wake_time_1' représentant l'heure du reveil
    # en fonction des input_select représentants les heures et les minutes
    alias: wake_1_update_time
    trigger:
      - platform: state
        entity_id: input_select.wakehour_1
      - platform: state
        entity_id: input_select.wakeminutes_1
    action:
    - service: input_datetime.set_datetime
      entity_id: input_datetime.wake_time_1
      data_template:
        time: '{{states("input_select.wakehour_1")}}:{{states("input_select.wakeminutes_1")}}:00'

  - id: 'wake_1_detect_time' #modifiée par rapport au post 1 pour la partie déclenchement (trigger)
    # Automatisation qui s'enclenche quand l'heure du système est égale à l'heure de l'input_datetime.wake_time_1
    alias: Wake 1
    trigger:
      platform: template
      value_template: "{{states('sensor.time') == (state_attr('input_datetime.wake_time_1','timestamp') | int | timestamp_custom('%H:%M', False))}}"
    condition:  
     condition: template
     value_template: >
        {% set today = 'input_boolean.wakeweekday_' ~ now().strftime("%a") | lower ~ '_1' %}
        {{ is_state('input_boolean.wakestatus_1', 'on') and is_state(today, 'on') }}
    action:
      service: input_boolean.turn_on
      entity_id: input_boolean.wakeactivated_1

  - id: 'wake_1_alarm_activated' #inchangée par rapport au post 1
    alias: 'Wake 1 Activated'
    trigger:
      platform: state
      entity_id: input_boolean.wakeactivated_1
      from: 'off'
      to: 'on'
    action:   
      service: script.turn_on 
      entity_id:
      - script.xiaomi_alarm1

Ce qui donne côté Lovelace :
image

code de la carte :
cards:
  - entities:
      - entity: input_boolean.wakestatus_1
        icon: 'mdi:alarm-check'
        name: Activation
      - entity: sensor.time
        name: Heure Actuelle
      - entity: input_datetime.wake_time_1
        name: 'Sonner à :'
    show_header_toggle: false
    title: Réveil
    type: entities
  - cards:
      - entities:
          - entity: input_select.wakehour_1
            name: Heure
        show_header_toggle: false
        title: null
        type: entities
      - entities:
          - entity: input_select.wakeminutes_1
            name: Minutes
        show_header_toggle: false
        title: null
        type: entities
    type: horizontal-stack
  - cards:
      - entity: input_boolean.wakeweekday_sun_1
        hold_action:
          action: none
        icon_height: 40px
        name: Dim
        show_icon: true
        show_name: true
        tap_action:
          action: toggle
        type: button
      - entity: input_boolean.wakeweekday_mon_1
        hold_action:
          action: none
        icon_height: 40px
        name: Lun
        show_icon: true
        show_name: true
        tap_action:
          action: toggle
        type: button
      - entity: input_boolean.wakeweekday_tue_1
        hold_action:
          action: none
        icon_height: 40px
        name: Mar
        show_icon: true
        show_name: true
        tap_action:
          action: toggle
        type: button
      - entity: input_boolean.wakeweekday_wed_1
        hold_action:
          action: none
        icon_height: 40px
        name: Mer
        show_icon: true
        show_name: true
        tap_action:
          action: toggle
        type: button
      - entity: input_boolean.wakeweekday_thu_1
        hold_action:
          action: none
        icon_height: 40px
        name: Jeu
        show_icon: true
        show_name: true
        tap_action:
          action: toggle
        type: button
      - entity: input_boolean.wakeweekday_fri_1
        hold_action:
          action: none
        icon_height: 40px
        name: Ven
        show_icon: true
        show_name: true
        tap_action:
          action: toggle
        type: button
      - entity: input_boolean.wakeweekday_sat_1
        hold_action:
          action: none
        icon_height: 40px
        name: Sam
        show_icon: true
        show_name: true
        tap_action:
          action: toggle
        type: button
    type: horizontal-stack
  - card:
      entity: script.alarm_snooze
      hold_action:
        action: more-info
      icon: 'mdi:alarm-off'
      icon_height: 50px
      name: Snooze
      show_icon: true
      show_name: true
      show_state: false
      tap_action:
        action: toggle
      type: button
    conditions:
      - entity: input_boolean.wakeactivated_1
        state: 'on'
    type: conditional
type: vertical-stack

Ne pas hésiter à poser des questions !

Si j’ai le temps ce soir, je mettrais une autre manière de présenter tout çà… :thinking:

2 « J'aime »