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

标题: esphome求助持续低于某个数值几分钟后执行自动化 [打印本页]

作者: yuqiuyi99    时间: 2022-2-21 18:00
标题: esphome求助持续低于某个数值几分钟后执行自动化
本帖最后由 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!


作者: jjcs    时间: 2022-2-21 18:05
esphome 有time组件,你可以看看
作者: jjcs    时间: 2022-2-21 18:06
time组件可以用时钟模块,ntp  ,ha时间
作者: jjcs    时间: 2022-2-21 18:08
https://esphome.io/components/time.html
作者: yuqiuyi99    时间: 2022-2-21 19:25
我这是相对时间,用不着time组件
作者: fenytk    时间: 2022-2-21 20:18
感觉on_turn_on:触发器应该选错了,你这是开机进行一次判定而不是每次功率低于20w判断一次
作者: wshc1216    时间: 2022-2-22 00:45
之前做过一个类似的功能
首先变量满足范围触发,执行2个脚本
脚本1,X秒后 停止脚本2,执行 目标操作
脚本2,等待变量超出范围,执行 停止脚本1
作者: ztrx    时间: 2022-2-22 16:16
加个变量,每秒加1,高于20W清零
作者: netsnake    时间: 2022-2-22 17:13
1、switch.on_turn_on 设置全局标志变量为当前时间
2、time计划任务中判断switch.is_on,below: 20.0,当前时间与全局变量比较,满足8分钟,关
3、switch.on_turn_off 设置全局标志变量为0

这样能否实现楼主想法?
作者: yuqiuyi99    时间: 2022-2-22 19:26
netsnake 发表于 2022-2-22 17:13
1、switch.on_turn_on 设置全局标志变量为当前时间
2、time计划任务中判断switch.is_on,below: 20.0,当前 ...

不行啊

作者: netsnake    时间: 2022-2-23 14:57
什么现象呢?
单独测试下计划任务。
而且time计划任务应设定少于1分钟检测一次




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5