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

 找回密码
 立即注册
查看: 3475|回复: 6

[进阶教程] 睡觉开空调需要定时功能HA没有?自己写一个,超级简单

[复制链接]

31

主题

127

帖子

756

积分

论坛积极会员

积分
756
金钱
629
HASS币
0
发表于 2022-6-20 15:30:49 | 显示全部楼层 |阅读模式
本帖最后由 Dreamray 于 2022-7-15 10:37 编辑

HAOS自带的Gree Climate集成没有定时功能,下面用自动化和timer集成实现一个:
首先定义一个input_number,用于在前端面板显示一个1-8(定时1-8小时)的数字slider:
input_number:
  bedroom_ac_set_time_input_num:
    name: 定时
    mode: slider
    min: 0
    max: 8
    step: 1
    unit_of_measurement: 时



再定义一个timer,用于倒计时:
timer:
  bedroom_ac_set_time_timer:
    name: 主卧空调定时倒计时


我们需要的是在前端面板滑动input_number后,它的状态数值传递给timer,比如,滑动后为1,就把1传递给timer,让它倒计时1小时,为3,让timer倒计时3小时,automations.yaml里用以下代码实现:
- id: input_num_state_to_ac_timer
  alias: input_num_state_to_ac_timer
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.bedroom_ac_set_time_input_num
  action:
    - service: timer.start
      target:
        entity_id: timer.bedroom_ac_set_time_timer
      data:
        duration: "{{ (trigger.to_state.state | int * 3600) }}"


解释:input_number状态的改变后触发action,action执行 把input_number改变后把数值传递给timer,timer接收到数值后乘以3600(因为time以秒为单位)作为自己的倒计时时间,,然后开启timer.

接下来设置timer倒计时走完后的action,即关闭空调:
- id: timer_finish_bedroom_ac_off
  alias: timer_finish_bedroom_ac_off
  initial_state: true
  trigger:
    - platform: event
      event_type: timer.finished
      event_data:
        entity_id: timer.bedroom_ac_set_time_timer
  action:
    - service: climate.turn_off
      entity_id: climate.bedroom1_ac


最后把input_number加到前端面板空调控制的下边就行了。


20220622更新:有点不完美,input_number滑动后为零的时候应该取消定时,以上代码不会取消,而是会重复上一次的定时。解决方法只需把滑动后为0和滑动后为1-8的自动化分开即可,滑动后为0执行取消定时,滑动后为1-8还是像上边代码一样传递数值,
另外再增加一个空调关闭后,把input_number归零的自动化,再增加一个手动取消timer后input_number归零
这样就完美了。
我直接上传了修改后的yaml文件,climate.yaml 放到 \config\packages 即可。
1.jpg

automations.yaml (2.72 KB, 下载次数: 50)
climate.yaml (247 Bytes, 下载次数: 47)
1.jpg
回复

使用道具 举报

14

主题

89

帖子

1065

积分

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
966
HASS币
90
发表于 2022-6-20 15:37:53 | 显示全部楼层
感谢分享,另外问下什么空调能打到零下12度
回复

使用道具 举报

31

主题

127

帖子

756

积分

论坛积极会员

积分
756
金钱
629
HASS币
0
 楼主| 发表于 2022-6-20 15:47:54 | 显示全部楼层
hudan717 发表于 2022-6-20 15:37
感谢分享,另外问下什么空调能打到零下12度

格力,太牛x了。
(这可能是我空调和Gree Climate集成的兼容问题,获取不到空调检测到的室温)
回复

使用道具 举报

0

主题

39

帖子

949

积分

高级会员

Rank: 4

积分
949
金钱
910
HASS币
0
发表于 2022-7-9 07:47:01 来自手机 | 显示全部楼层
大佬,后面的代码方便贴一下吗,刚好刚把空调插件安好,没找到定时关闭
回复

使用道具 举报

31

主题

127

帖子

756

积分

论坛积极会员

积分
756
金钱
629
HASS币
0
 楼主| 发表于 2022-7-15 10:38:11 | 显示全部楼层
taskiller 发表于 2022-7-9 07:47
大佬,后面的代码方便贴一下吗,刚好刚把空调插件安好,没找到定时关闭

直接下载附件吧
回复

使用道具 举报

0

主题

1

帖子

22

积分

新手上路

Rank: 1

积分
22
金钱
21
HASS币
0
发表于 2023-8-9 13:42:14 | 显示全部楼层
这两个附件都是放到 \config\packages文件夹下吗
回复

使用道具 举报

5

主题

192

帖子

799

积分

高级会员

Rank: 4

积分
799
金钱
607
HASS币
0
发表于 2024-7-26 15:30:27 | 显示全部楼层
谢谢大佬,按照你的方法我举一反三成功实现了定时开启,哈哈
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 10:38 , Processed in 0.054202 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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