本帖最后由 DWalker 于 2024-7-14 22:55 编辑
手上在做一个风扇的改造,想用四个继电器分别控制3个挡位和一个摇头,以及5个按钮控制挡位、摇头和开关。
BUG:设置多个继电器和多个按钮,但HA概览页面只显示一个按钮和一个继电器。
1、代码写入设置完一个继电器和一个按钮时烧录代码测试,可以识别到两个实体:挡位1和按钮1;
2、设置两个及以上个数的继电器和按钮时,在概览上只有两个实体:挡位2和按钮2;挡位1和按钮1没有了。
3、此时按下物理按钮是可以分别控制两个继电器的,且日志打印也是能开出分别控制了两个档位的继电器;
4、重新烧录代码之后是有重新加载设备的;
5、esphome版本由原先的2024.5.5版本升级到2024.6.6版本,问题依旧存在。
头一次用ESPHOME,不清楚是什么原因导致的问题,请教一下各位大佬。
以下图片是已经设置了两个继电器和两个按钮的情况下HA显示的。
esphome:
name: sky-fan
friendly_name: SKY-fan
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
ota:
- platform: esphome
password: "xxxxxxxxxxxxxxxxxxx"
web_server: ## web控制,添加了这2行,就可以在网页端输入ip打开设备设置页面;
port: 80
local: true
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Sky-Fan Fallback Hotspot"
password: "PTIRRRp0zJET"
captive_portal:
# output中的GPIO均为led指示灯
output:
- platform: gpio
pin:
number: 23
inverted: true
id: topnum1_led
- platform: gpio
pin:
number: 14
inverted: true
id: topnum2_led
- platform: gpio
pin:
number: 21
inverted: true
id: topnum3_led
- platform: gpio
pin:
number: 22
inverted: true
id: yaotou_led
switch:
- platform: gpio
id: topnum_one
pin:
number: 32
inverted: false
name: "一档"
internal: False
# interlock: [topnum_one, topnum_two, topnum_three]
# interlock_wait_time: 100ms
on_turn_on:
then:
- output.turn_on: topnum1_led
on_turn_off:
then:
- output.turn_off: topnum1_led
- platform: gpio
id: topnum_two
pin:
number: 33
inverted: false
name: "二档"
internal: False
# interlock: [topnum_one, topnum_two, topnum_three]
# interlock_wait_time: 100ms
on_turn_on:
then:
- output.turn_on: topnum2_led
on_turn_off:
then:
- output.turn_off: topnum2_led
binary_sensor:
- platform: gpio
id: key_one
pin:
number: 17
mode:
input: true
inverted: true
name: "一档按钮"
internal: False
icon: "mdi:fan-speed-1"
on_press:
then:
- switch.toggle: topnum_one
- platform: gpio
id: key_two
pin:
number: 16
mode:
input: true
inverted: true
name: "二档按钮"
internal: False
icon: "mdi:fan-speed-2"
on_press:
then:
- switch.toggle: topnum_two
|