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

 找回密码
 立即注册
查看: 1747|回复: 10

[进阶教程] esphome求助持续低于某个数值几分钟后执行自动化

[复制链接]

13

主题

500

帖子

3380

积分

论坛元老

Rank: 8Rank: 8

积分
3380
金钱
2875
HASS币
20
发表于 2022-2-21 18:00:25 | 显示全部楼层 |阅读模式
本帖最后由 yuqiuyi99 于 2022-2-21 19:31 编辑

我用了8266连接一个功率测量模块,还有个gpio开关连继电器。要求如果功率小于20W持续8分钟后自动断开继电器,以前是用homeassistant做的自动化,可觉得放到esphome里自动更可靠,没网也能用。可是esphome不熟悉,写得执行不了不会自动关闭,求大佬指点

switch:
  - platform: gpio
    pin: D6
    name: "AC_switch"
    id: AC_switch
    on_turn_on:
      if:
        condition:
          for:
            time: 8min
            condition:
              sensor.in_range:
                id: power
                below: 20.0
        then:
        - switch.turn_off: AC_switch
        - logger.log: 3Dprint_is_turn_off!

回复

使用道具 举报

43

主题

1337

帖子

5532

积分

论坛元老

Rank: 8Rank: 8

积分
5532
金钱
4185
HASS币
40
发表于 2022-2-21 18:05:28 | 显示全部楼层
esphome 有time组件,你可以看看
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

43

主题

1337

帖子

5532

积分

论坛元老

Rank: 8Rank: 8

积分
5532
金钱
4185
HASS币
40
发表于 2022-2-21 18:06:52 | 显示全部楼层
time组件可以用时钟模块,ntp  ,ha时间
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

43

主题

1337

帖子

5532

积分

论坛元老

Rank: 8Rank: 8

积分
5532
金钱
4185
HASS币
40
发表于 2022-2-21 18:08:45 | 显示全部楼层
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

13

主题

500

帖子

3380

积分

论坛元老

Rank: 8Rank: 8

积分
3380
金钱
2875
HASS币
20
 楼主| 发表于 2022-2-21 19:25:08 | 显示全部楼层
我这是相对时间,用不着time组件
回复

使用道具 举报

2

主题

65

帖子

1075

积分

金牌会员

Rank: 6Rank: 6

积分
1075
金钱
1010
HASS币
0
发表于 2022-2-21 20:18:28 | 显示全部楼层
感觉on_turn_on:触发器应该选错了,你这是开机进行一次判定而不是每次功率低于20w判断一次
回复

使用道具 举报

23

主题

660

帖子

3108

积分

论坛元老

Rank: 8Rank: 8

积分
3108
金钱
2448
HASS币
10
发表于 2022-2-22 00:45:21 | 显示全部楼层
之前做过一个类似的功能
首先变量满足范围触发,执行2个脚本
脚本1,X秒后 停止脚本2,执行 目标操作
脚本2,等待变量超出范围,执行 停止脚本1
回复

使用道具 举报

17

主题

177

帖子

1368

积分

金牌会员

Rank: 6Rank: 6

积分
1368
金钱
1191
HASS币
10
发表于 2022-2-22 16:16:44 | 显示全部楼层
加个变量,每秒加1,高于20W清零
回复

使用道具 举报

5

主题

322

帖子

1345

积分

金牌会员

Rank: 6Rank: 6

积分
1345
金钱
1023
HASS币
0
发表于 2022-2-22 17:13:24 | 显示全部楼层
1、switch.on_turn_on 设置全局标志变量为当前时间
2、time计划任务中判断switch.is_on,below: 20.0,当前时间与全局变量比较,满足8分钟,关
3、switch.on_turn_off 设置全局标志变量为0

这样能否实现楼主想法?
回复

使用道具 举报

13

主题

500

帖子

3380

积分

论坛元老

Rank: 8Rank: 8

积分
3380
金钱
2875
HASS币
20
 楼主| 发表于 2022-2-22 19:26:47 | 显示全部楼层
netsnake 发表于 2022-2-22 17:13
1、switch.on_turn_on 设置全局标志变量为当前时间
2、time计划任务中判断switch.is_on,below: 20.0,当前 ...

不行啊
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-10 17:47 , Processed in 1.117355 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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