本帖最后由 flamestsui 于 2024-1-23 16:13 编辑
我根据:https://blog.csdn.net/panpanloveruth/article/details/113977715
已经用esphome实现了远程控制。
但是,物理开关上无用。
看代码
//点动模式按钮,监听按钮状态,执行相应处理
void btnHandler1()
{
static bool oButtonState = false;
int state1 = digitalRead(LED_BUILTIN_K2); //按钮状态
int state2 = digitalRead(LED_BUILTIN_LIGHT); //灯的状态
if(state1 == HIGH )
{
if(oButtonState ){
if(state2 == YYXBC_HIGH )
{
button1_callback(BLINKER_CMD_OFF);
Serial.println("按钮对灯已执行关闭");
}else{
button1_callback(BLINKER_CMD_ON);
Serial.println("按钮对灯已执行打开");
}
oButtonState = false;
}
}else{
oButtonState = true;
}
}
但是,不知道在esphome里面怎么实现呢
Ps:这几天忙,忘了回复帖子。
我经过多方研究。已经实现了开关功能
物理开关接入GPIO2。即可实现物理开关和手机同时控制。
代码如下:
binary_sensor:
- platform: gpio
pin: GPIO2
name: "Button"
filters:
- delayed_on_off: 100ms
on_press:
then:
- switch.toggle: light_switch
- lambda: 'id(ctrl_text).publish_state("物理开关开启");'
on_release:
then:
- switch.toggle: light_switch
- lambda: 'id(ctrl_text).publish_state("物理开关关闭");'
switch:
- platform: gpio
# pin: GPIO0
pin:
number: GPIO0
inverted: true
name: "${swith_name}"
id: light_switch
text_sensor:
- platform: template
name: "Tag"
id: ctrl_text
|