|
发表于 2020-9-17 09:43:16
|
显示全部楼层
感谢楼主的分享,提供了风扇编程的新思路。其实只需将程序略加修改,无论原来的琴键式开关还是旋钮开关均能轻松适应。 抛砖引玉
附esphome修改部分展示,不全部列出,结合楼主原程序一起看。
-----------------------------------------------------------------------------
binary_sensor:
- platform: gpio
name: '${dev_name}_btn1'
id: btn1
# internal: true
pin:
number: GPIO14 #风扇1档
mode: INPUT_PULLUP
inverted: True
filters:
- delayed_on: 40ms
- delayed_off: 40ms
on_press: #判断:按下开关,对应继电器关状态,就打开,否则不操作
then:
- if:
condition:
switch.is_off: relay1
then:
- switch.turn_on: relay1
on_release: ##判断:释放开关,对应继电器开状态,就关闭,否则不操作
then:
- if:
condition:
switch.is_on: relay1
then:
- switch.turn_off: relay1
...........
switch:
- platform: gpio # GPIO 12 Relay1 接 電風扇 弱檔位
name: '${dev_name}_sw1'
pin: GPIO4
id: relay1
icon: "mdi:fan"
interlock: [relay1, relay2, relay3] #三个继电器互锁,保证同一时间只有一个开状态
...........
--------------------------------------------------
#解释:按钮添加判断语句,为了实现当通过其他终端改变了按键属性时,再去按实体按键不会造成混乱。
所有风扇开关均可保持原样,无需改装。
另外,homekit也可完美匹配, 再一次感谢楼主! |
|