# Alarm config
input_datetime:
  alarm_time:
    name: Wake up time
    has_date: false
    has_time: true

input_boolean:
  alarm_enabled:
    name: Enable alarm
    icon: mdi:alarm

automation:
  - alias: Alarm · Wake up
    trigger:
      platform: template
      value_template: "{{ states('sensor.time') == states('input_datetime.alarm_time')[0:5] }}"
    condition:
      condition: and
      conditions:
        - condition: state
          entity_id: input_boolean.alarm_enabled
          state: "on"
        - condition: state
          entity_id: input_select.house_mode
          state: "night"
    action:
      - service: script.music_play
        data:
          volume_level: 0.1

      - delay: 00:01:00
      - condition: state
        entity_id: input_select.house_mode
        state: "night"
      - service: script.sonos_say
        data:
          message: "Hey! It's time to wake up!"
          volume_level: 0.15
      - delay: 00:00:05
      - service: media_player.volume_set
        entity_id: media_player.master_bedroom
        data:
          volume_level: 0.15

      - delay: 00:02:00
      - condition: state
        entity_id: input_select.house_mode
        state: "night"
      - service: script.sonos_say
        data:
          message: "Good morning! Time to get out of bed!"
          volume_level: 0.2
      - delay: 00:00:05
      - service: media_player.volume_set
        entity_id: media_player.master_bedroom
        data:
          volume_level: 0.2

      - delay: 00:05:00
      - condition: state
        entity_id: input_select.house_mode
        state: "night"
      - service: script.sonos_say
        data:
          message: "Hey! It's time to wake up!"
          volume_level: 0.3
      - delay: 00:00:05
      - service: media_player.volume_set
        entity_id: media_player.master_bedroom
        data:
          volume_level: 0.3

  - alias: Alarm · Set time
    trigger:
      platform: state
      entity_id: input_select.house_mode
      to: "day"
    action:
      - service: input_datetime.set_datetime
        data_template:
          entity_id: input_datetime.alarm_time
          time: >-

            {% if is_state('binary_sensor.workday_tomorrow', 'on') %}
              09:20:00
            {% else %}
              10:20:00
            {% endif %}
