Home-Assistant-DIY/参考文档(1-10)/example_6_6_1.yaml

109 lines
2.9 KiB
YAML

# example_6_6_1.yaml
# 是否打开闹钟
input_boolean:
alarm_clock:
name: 闹钟
initial: off
icon: mdi:alarm
# 闹钟的时间
input_datetime:
alarm_time:
name: 时间
has_time: true
has_date: false
initial: 07:00
# 播放的音乐选择
input_select:
alarm_music:
name: 音乐
icon: mdi:music
options:
- 卡农
- I Can Feel It Coming
- 沧海一声笑
# 播放的文字
input_text:
alarm_text:
name: 语音提醒
initial: 该起床了,该起床了!
min: 0
max: 30
# 亮灯时长
input_number:
alarm_light_duration:
name: 亮灯提醒(分钟)
initial: 0
min: 0
max: 60
step: 1
# 自动化每分钟触发
automation:
- alias: Alarm Clock
initial_state: True
trigger:
- platform: time_pattern
minutes: '/1'
seconds: 0
# 判断闹钟是否打开,判断当前时间是否与闹钟时间相同
condition:
- condition: state
entity_id: input_boolean.alarm_clock
state: 'on'
- condition: template
value_template: '{{((as_timestamp(now())|int)|timestamp_custom("%H:%M"))==states.input_datetime.alarm_time.state|truncate(5,False,"",0) }}'
action:
# 播放文字语音
- service: tts.google_translate_say
entity_id: media_player.vlc
data_template:
message: '{{states.input_text.alarm_text.state}}'
# 打开灯
- service: light.turn_on
entity_id: light.gateway_light_7c49eb18e3a7
# 延时5秒钟
- delay:
seconds: 5
# 等待语音播放结束,最长一分钟
- wait_template: "{{is_state('media_player.vlc','idle')}}"
timeout: '00:01:00'
continue_on_timeout: 'true'
# 延时5秒钟
- delay:
seconds: 5
# 根据选择项,播放对应的音乐
- service: media_player.play_media
data_template:
entity_id: media_player.vlc
media_content_type: music
media_content_id: >
{% if states.input_select.alarm_music.state=='卡农' %}
/home/pi/Music/Canon.mp3
{% elif states.input_select.alarm_music.state=='沧海一声笑' %}
/home/pi/Music/沧海一声笑.mp3
{% else %}
/home/pi/Music/ICanFeelitComing.mp3
{% endif %}
# 延时n分钟
- delay:
minutes: "{{ states('input_number.alarm_light_duration')|int }}"
# 关灯
- service: light.turn_off
entity_id: light.gateway_light_7c49eb18e3a7
# 将闹钟相关的控制项纳入一个组
group:
alarm_clock:
name: 闹钟
entities:
input_boolean.alarm_clock, input_datetime.alarm_time, input_text.alarm_text, input_select.alarm_music, input_number.alarm_light_duration
# 定义一个页面组,包含闹钟以及闹钟过程中相关的实体
alarm_clock_view:
name: 闹钟
entities: light.gateway_light_7c49eb18e3a7, media_player.vlc, group.alarm_clock
view: yes