『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 2045|回复: 3

[基础教程] 又一个定时器,基于模板写的

[复制链接]

7

主题

349

帖子

3235

积分

论坛元老

Rank: 8Rank: 8

积分
3235
金钱
2886
HASS币
0
发表于 2021-12-14 10:26:21 | 显示全部楼层 |阅读模式
本帖最后由 yuyuye 于 2021-12-14 10:28 编辑

HA原生一直缺一个简单的定时器功能,我试过hacs上的Scheduler component,很高级,灵活度很高,然鹅杀鸡用牛刀,其他也有很多棒棒的定时器,不过大多是插件,要额外安装。我要的定时器需求是:
HA原生
一次性的定时开关
UI清晰好用
代码精简,也不要冗余的实体啥的



所以我自己整了个简易定时器,用用挺方便的,所以想着发一下,用实体卡片配置后长这样:

1.jpg

需要的零件分别是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,我用脚本我开心

回复

使用道具 举报

8

主题

690

帖子

4562

积分

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
3867
HASS币
0
QQ
发表于 2021-12-14 12:20:32 | 显示全部楼层
不错 ,感谢分享
回复

使用道具 举报

13

主题

540

帖子

5642

积分

论坛元老

Rank: 8Rank: 8

积分
5642
金钱
5102
HASS币
10
发表于 2021-12-14 17:48:50 | 显示全部楼层
感谢分享,一直想要一个精简的定时器
回复

使用道具 举报

33

主题

2196

帖子

5838

积分

论坛元老

Rank: 8Rank: 8

积分
5838
金钱
3642
HASS币
60
QQ
发表于 2021-12-15 03:07:52 | 显示全部楼层
谢谢分享。
我不生产技术,我只是技术的搬运工。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-27 20:58 , Processed in 0.118265 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表