|
本帖最后由 yuyuye 于 2021-12-14 10:28 编辑
HA原生一直缺一个简单的定时器功能,我试过hacs上的Scheduler component,很高级,灵活度很高,然鹅杀鸡用牛刀,其他也有很多棒棒的定时器,不过大多是插件,要额外安装。我要的定时器需求是:
HA原生 一次性的定时开关 UI清晰好用 代码精简,也不要冗余的实体啥的
所以我自己整了个简易定时器,用用挺方便的,所以想着发一下,用实体卡片配置后长这样:
需要的零件分别是input_select、input_datetime、input_boolean,然后是脚本,具体请看下面代码:
icon: mdi:timer
mode: single
sequence:
- choose:
- conditions:
- condition: template
value_template: >-
{% set t = states.input_select.ding_shi_she_bei.state %}
{{ is_state('input_boolean.kai_guan','off') and
expand(states.switch)|selectattr('name','==',t)|map(attribute='state')|first
== 'off' }}
sequence:
- service: homeassistant.turn_on
target:
entity_id: >
{% set t = states.input_select.ding_shi_she_bei.state %} {{
expand(states.switch)|selectattr('name','==',t)|map(attribute='entity_id')|first
}}
default: []
- delay: >-
{{ states.input_datetime.dao_ji_shi.state.split(':')[0]|int * 3600 +
states.input_datetime.dao_ji_shi.state.split(':')[1]|int * 60 }}
- service: |
{% if is_state('input_boolean.kai_guan','on') %}
homeassistant.turn_on
{% else %}
homeassistant.turn_off
{% endif %}
target:
entity_id: >
{% set t = states.input_select.ding_shi_she_bei.state %} {{
expand(states.switch)|selectattr('name','==',t)|map(attribute='entity_id')|first
}}
- service: notify.mobile_app_yes_xs
data:
title: 【提醒】⏰ 定时生效
message: >
定时结束,已{% if is_state('input_boolean.kai_guan','on') -%}打开 {% else %}关闭
{% endif %}【{{ states.input_select.ding_shi_she_bei.state }}】
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.dao_ji_shi
data:
time: '00:00:00'
- service: input_boolean.turn_off
target:
entity_id: input_boolean.kai_guan
alias: 定时器
最后:
1、定时器最大的短板是只能设置一个定时。
2、我只是无聊分享一下,大佬们随意看看。
3、请不要指导我自动化应该用NR,我用脚本我开心
|
|