本帖最后由 demacia 于 2024-4-2 21:06 编辑
esphome 长按循环变化的方案
场景: 灯的亮度调节,想通过长按一个gpio的方式,在长按的时间段中循环调整亮度参数。
在高铁上想了下实现方式的伪代码
通过第一次长按触发number事件变化 number事件触发后: 1. 判断当前按钮是否press,是则进入2,否则退出 2. 执行真正的亮度调节逻辑 3. 每次在更新自身值,再次进入1
纯yy手敲的,有时间实践试试,有没有大佬提点下,其他可行的方式
number:
- platform: template
name: my_number
on_value:
if:
condition:
# Same syntax for is_off
binary_sensor.is_on: my_binary_sensor
then:
- (具体的业务逻辑)
- (sleep 休眠一段时间)
- number.set:
id: my_number
value: value+1
binary_sensor:
- platform: gpio
pin:
number: D2
mode:
input: true
pullup: true
name: my_binary_sensor
on_multi_click:
- timing:
- ON for at most 1s
then:
- number.set:
id: my_number
value: 1
|