ESPHOME的延时执行代码怎样写才会执行最后一次的触发延时?
感应传感器延时时间是 5秒。 想在ESPHOME代码增加延时时间为60秒。
现在问题是在传感器5秒内没再次触发时状态就是OFF, 60内秒重复触发多次就会有多次OFF。代码中的延时60秒也会有多次重叠在倒计时中。这样子会让有人在动时也会执行多次关灯指令。
怎样才能在OFF后重置之前的60秒 重新计算只执行最后一次倒计时60秒。
怎样才能让传感器在60秒内多次OFF 只执行最后一次延时60秒?
作用是有人在动时开灯,人走开60秒后就关灯。 不接入HA的,装在室外,单独运行。
switch:
- platform: gpio
name: "ld1030灯"
restore_mode: ALWAYS_OFF
id: "switch"
pin: 2
binary_sensor:
- platform: gpio
device_class: door
id: ld1030
name: "ld1030"
pin:
number: 0
mode: INPUT_PULLUP
on_press:
then:
- switch.turn_on: switch
on_release:
then:
- delay: 60s # 这60秒会在每次传感器OFF时重叠执行下去。比如在10秒有三次OFF 就会有3个 60秒在倒计时。怎样才能在OFF后重置之前的60秒 重新计算只执行最后一次倒计时60秒。
- switch.turn_off: switch
请求各位大佬帮帮忙改改代码。万分感谢!
|