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

 找回密码
 立即注册
查看: 112759|回复: 281

[新奇玩法] 易用版-延迟倒计时的通用定时器卡片

  [复制链接]

27

主题

2143

帖子

8930

积分

论坛元老

Rank: 8Rank: 8

积分
8930
金钱
6782
HASS币
30

论坛元老

发表于 2018-9-16 09:46:47 | 显示全部楼层 |阅读模式
本帖最后由 情非殇 于 2019-9-7 14:38 编辑

预览效果图:
3.gif

参考贴:
1)https://bbs.hassbian.com/forum.p ... =%E8%AE%A1%E6%97%B6
2)https://bbs.hassbian.com/forum.p ... =%E5%AE%9A%E6%97%B6
3)https://bbs.hassbian.com/thread-1114-1-1.html
之前研究倒计时的时候,看到过1)holala的帖子,但是当时觉得时间是手动输入的文本框类型,使用不够方便,所以放弃了!改用脚本方式写了几个自用倒计时,最近翻阅官方文档的时候,发现了几个有意思的组件,遂改版了一下,使用滑杆的方式调整计时器时间,自我感觉这样更方便使用。
参考2)cnk700i的帖子,加了一个开/关操作选项!
关于附件的使用,新手可以参考3)lidicn的帖子使用。


题外话:不知道为什么,每次开启倒计时都会显示多3秒(基于chrome浏览器),但是我用safari就不这样(基于iPhone8),有屌大的回复一下,谢谢!
## 关于调整时间,如果不需要秒针,亦或者时针分针,可以用hidden: true来隐藏对应滑杆

homeassistant:
  customize:
    input_number.timer_hour:
      friendly_name: 时
      icon: mdi:timer
      # hidden: true
    input_number.timer_min:
      friendly_name: 分
      icon: mdi:timer
      # hidden: true
    input_number.timer_sec:
      friendly_name: 秒
      icon: mdi:timer
      # hidden: true  
游客,如果您要查看本帖隐藏内容请回复

9月27日更新附加包,这个附件里面有5个可并存的卡片,算是一个取巧的多任务思路 Snipaste_2018-09-27_09-02-15.png
游客,如果您要查看本帖隐藏内容请回复




评分

参与人数 4金钱 +39 收起 理由
liqx + 3 大神,能给我等小白细说如何使用吗?多次测.
咸味土豆 + 10 我来瀚思就为看你!
jyz_0501 + 6 建议增加个文本输入 和 tts 倒计时结束执行.
+ 20 灰常酷!谢谢大神分享!

查看全部评分

回复

使用道具 举报

10

主题

145

帖子

1617

积分

论坛技术达人

积分
1617
金钱
1467
HASS币
30
发表于 2023-5-17 17:52:56 | 显示全部楼层
本帖最后由 hunl1986 于 2023-5-17 19:02 编辑

终于搞定,原来climate.set_operation_mode服务不能用,要改为climate.set_hvac_mode,新版本原来的代码不能用。
把代码给大家看看

## 倒计时通用面板
homeassistant:
  customize:
    sensor.timer_setting:
      friendly_name: 设置延迟时间
      icon: mdi:timer
    input_number.timer_hour:
      friendly_name: 时
      icon: mdi:timer
    input_number.timer_min:
      friendly_name: 分
      icon: mdi:timer
    input_number.timer_sec:
      friendly_name: 秒
      icon: mdi:timer
      # hidden: true
    timer.timer:
      friendly_name: 延迟倒计时
      icon: mdi:timer
    script.timer_start:
      friendly_name: 开始倒计时
      icon: mdi:timer
    script.timer_cancel:
      friendly_name: 取消倒计时
      icon: mdi:timer-off
    

input_select:
  timer_climate:
    name: 延时关闭空调
    options:
      - 选择空调
      - 客厅空调
      - 主卧空调
      - 次卧空调
      - 客卧空调
    initial: '选择空调'
    icon: mdi:format-list-checkbox #select-all #toggle-switch-off
  timer_switch:
    name: 延时关闭设备
    options:
      - 选择设备
      - 客厅大灯
      - 客厅餐灯
      - 未定义8
      - 未定义9
      - 未定义0
    initial: '选择设备'
    icon: mdi:format-list-checkbox #select-all #toggle-switch-off
  timer_state:
    name: 操作
    options:
      - 开
      - 关
    initial: '关'
    icon: mdi:light-switch #nintendo-switch

sensor:
  - platform: template
    sensors:
      timer_setting:
        friendly_name: 'Time'
        value_template: '{{ "%0.02d:%0.02d:%0.02d" | format(states("input_number.timer_hour") | int, states("input_number.timer_min") | int, states("input_number.timer_sec") | int) }}'

input_number:
  timer_hour:
    name: TimerHour
    # icon: mdi:timer
    # initial: 00
    min: 0
    max: 23
    step: 1
  timer_min:
    name: TimerMinute
    # icon: mdi:timer
    # initial: 00
    min: 0
    max: 59
    step: 1
  timer_sec:
    name: TimerSecond
    # icon: mdi:timer
    initial: 00
    min: 0
    max: 59
    step: 1

timer:
  timer:
    duration: '00:00:00'

script:
  timer_start:
    sequence:
      service: timer.start
      data_template: 
        entity_id: timer.timer
        duration: >
          {{ states("sensor.timer_setting") }}  
  timer_cancel:
    sequence:
      service: timer.cancel
      entity_id: timer.timer

group:
  timer_switch:
    name: 通用延时器
    entities:
      - input_select.timer_climate
      - input_select.timer_switch
      - input_select.timer_state
      - sensor.timer_setting
      - input_number.timer_hour
      - input_number.timer_min
      - input_number.timer_sec
      - timer.timer
      - script.timer_start
      - script.timer_cancel

# binary_sensor:
#   - platform: platform: state
#     name: timer_climate
#     entity_id: input_select.timer_climate
#     payload_on: "Select Input"
#   - platform: platform: state
#     name: timer_switch
#     entity_id: input_select.timer_switch
#     payload_on: "Select Input"

automation:
  - alias: number_timer
    hide_entity: true
    trigger:
      - platform: state
        entity_id: sensor.timer_setting
    action:
      service: timer.start
      data_template: 
        entity_id: timer.timer
        duration: >
          {{ states("sensor.timer_setting") }}
  - alias: empty_timer
    hide_entity: true
    trigger:
      - platform: state
        entity_id: input_select.timer_climate
      - platform: state
        entity_id: input_select.timer_switch
      - platform: state
        entity_id: input_select.timer_state
    action:
      - service: timer.cancel
        entity_id: timer.timer
      # - service: timer.start
      #   data_template: 
      #     entity_id: timer.timer
      #     duration: >
      #       {{ states("sensor.timer_setting") }}
  - alias: timer_climate_delay
    hide_entity: true
    trigger: 
      platform: event
      event_type: timer.finished
      event_data: 
        entity_id: timer.timer
    action: 
      - service: climate.set_hvac_mode
        data_template:
          entity_id: >-
            {% if is_state("input_select.timer_climate", "客厅空调") %}
              climate.mqtt_34ea344dd13c
            {% elif is_state("input_select.timer_climate", "主卧空调") %}
              climate.mqtt_34ea3496151c
            {% elif is_state("input_select.timer_climate", "次卧空调") %}
              climate.entity_id3
            {% elif is_state("input_select.timer_climate", "客卧空调") %}
              climate.entity_id4
            {% endif %}
          hvac_mode: 'off' 
          #hvac_mode后面要改为自己控制的关闭代码,在开发者工具-服务可以看到
      - service: input_select.select_option
        data:
          entity_id: input_select.timer_climate
          option: "选择空调"
  - alias: timer_switch_turnon
    hide_entity: true
    trigger:
      platform: event
      event_type: timer.finished
      event_data:
        entity_id: timer.timer
    condition:
      condition: state
      entity_id: input_select.timer_state
      state: '开'    
    action:
      - service: homeassistant.turn_on
        data_template:
          entity_id: >-
            {% if is_state("input_select.timer_switch", "客厅大灯") %}
              light.fsl002_cloud_646808
            {% elif is_state("input_select.timer_switch", "客厅餐灯") %}
              light.wy0b01_cloud_056917
            {% elif is_state("input_select.timer_switch", "未定义8") %}
              switch.entity_id8
            {% elif is_state("input_select.timer_switch", "未定义9") %}
              switch.entity_id9
            {% elif is_state("input_select.timer_switch", "未定义0") %}
              switch.entity_id0
            {% endif %}
      - service: input_select.select_option
        data:
          entity_id: input_select.timer_switch
          option: "选择设备"
  - alias: timer_switch_turnoff
    hide_entity: true
    trigger:
      platform: event
      event_type: timer.finished
      event_data:
        entity_id: timer.timer
    condition:
      condition: state
      entity_id: input_select.timer_state
      state: '关'         
    action:
      - service: homeassistant.turn_off
        data_template:
          entity_id: >-
            {% if is_state("input_select.timer_switch", "客厅大灯") %}
              light.fsl002_cloud_646808
            {% elif is_state("input_select.timer_switch", "客厅餐灯") %}
              light.wy0b01_cloud_056917
            {% elif is_state("input_select.timer_switch", "未定义8") %}
              switch.entity_id8
            {% elif is_state("input_select.timer_switch", "未定义9") %}
              switch.entity_id9
            {% elif is_state("input_select.timer_switch", "未定义0") %}
              switch.entity_id0
            {% endif %}
      - service: input_select.select_option
        data:
          entity_id: input_select.timer_switch
          option: "选择设备"



回复

使用道具 举报

6

主题

484

帖子

4040

积分

论坛元老

Rank: 8Rank: 8

积分
4040
金钱
3556
HASS币
0
发表于 2018-9-16 09:51:04 | 显示全部楼层
谢谢分享
回复

使用道具 举报

8

主题

870

帖子

5218

积分

论坛元老

Rank: 8Rank: 8

积分
5218
金钱
4348
HASS币
0
发表于 2018-9-16 10:22:09 | 显示全部楼层
谢谢分享
回复

使用道具 举报

8

主题

2073

帖子

6053

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
6053
金钱
3980
HASS币
145

灌水之王

发表于 2018-9-16 10:36:28 | 显示全部楼层
更植观
回复

使用道具 举报

9

主题

787

帖子

3858

积分

论坛元老

Rank: 8Rank: 8

积分
3858
金钱
3071
HASS币
87
发表于 2018-9-16 10:59:56 | 显示全部楼层
学习一下,看看怎么用
回复

使用道具 举报

0

主题

114

帖子

815

积分

高级会员

Rank: 4

积分
815
金钱
701
HASS币
0
发表于 2018-9-16 11:25:33 | 显示全部楼层
我来看看哈
回复

使用道具 举报

4

主题

443

帖子

2583

积分

金牌会员

Rank: 6Rank: 6

积分
2583
金钱
2140
HASS币
0
发表于 2018-9-16 11:25:38 | 显示全部楼层
直观的时间显示(◔◡◔)
回复

使用道具 举报

6

主题

60

帖子

452

积分

中级会员

Rank: 3Rank: 3

积分
452
金钱
387
HASS币
20
发表于 2018-9-16 11:28:12 | 显示全部楼层
谢谢楼主的植观
回复

使用道具 举报

8

主题

188

帖子

597

积分

高级会员

Rank: 4

积分
597
金钱
409
HASS币
0
发表于 2018-9-16 11:31:44 | 显示全部楼层
:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol
回复

使用道具 举报

8

主题

188

帖子

597

积分

高级会员

Rank: 4

积分
597
金钱
409
HASS币
0
发表于 2018-9-16 11:49:23 | 显示全部楼层
  大佬这个如何展开显示呀,直接添加group.timer_switch会合并在一起呀。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 12:54 , Processed in 0.405242 second(s), 38 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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