ESPHOME通过MQTT发送指令控制ESP8266上面的灯

涉及到几个部分:

1、一个安装了MQTT的服务器,也可以在本机上模拟一个,我用的是https://www.emqx.io/cn/products/broker

2、把程序编译并烧录至ESP8266的模块中。注意API的功能要禁止,不能喝mqtt同时使用

mqtt:
broker: 服务器的IP地址
username: 用户名
password: 密码
discovery: True # 启用主动发现
discovery_prefix: homeassistant # 不设置默认就这个,要和ESPHome的一致

switch:
– platform: gpio
id: “logo_light”
name: “8266light_logo_light”
pin:
number: D0 #LED的正极接D0, 负极接一个GND
# HASS标准格式  状态话题  HASS接收来自设备的状态信息
state_topic: “8266light/switch/8266light_logo_light/state”
# HASS标准格式  命令话题  HASS发送控制设备的命令
command_topic: “8266light/switch/8266light_logo_light/command”

3、在homeassistant中会找到一盏灯。 确保操作开关,EPS8266上的灯会被点亮或者关闭

1577951505(1)

4、登录的MQTT的后台订阅一下8266light/#

1577951361(1)

然后发送消息给8266light/switch/8266light_logo_light/command这个主题,内容是on或者off。一切正常的话,板子上的灯会打开或者关闭

1577951425(1)

5、也可以电脑下载一个MQTT的客户端来做,我用的是MQTTBox,用来测试非常方便,输入on 或者off能起到相同的效果。

http://workswithweb.com/html/mqttbox/downloads.html

1577951849(1)