天天看点

(二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备

关于hass对接mqtt 请参考官网

https://www.hachina.io/docs/7083.html

(二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备

1 登陆运行着hass的阿里云服务器

(二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备

2 修改hass配置文件,添加mqtt服务信息

(二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备

 把这个文件拷贝到自己的电脑上,修改后重新上传服务器

(二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备

 添加以下内容

参考官网 https://www.hachina.io/docs/7211.html

(二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备

你可以使用Mosquitto的公有云MQTT服务器进行测试。如下配置:

参考官网 https://www.hachina.io/docs/7214.html

(二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备
(二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备

主题位置(topic)

主题位置表明双方在哪里进行通讯。

比如,一盏灯的命令主题(command_topic),表示HomeAssistant会将开关命令发送到这儿,而灯会到这儿读取命令进行开关操作;比如,一个温度计的状态主题(state_topic),表示温度计会将温度值发送到这儿,HomeAssistant会从这儿读取温度展现在前端。

一个设备可能包含多个主题位置。例如,温湿度传感器的温度和湿度可以分在两个主题位置,灯的状态和控制命令一般也会分在不同的主题位置。

信息内容(payload)

信息内容表示双方用什么信息代表什么含义。

比如,开关灯命令,可以是”ON/OFF”,也可以是”on/off”,”true/false”,”1/0″……

HomeAssistant配置项中payload_XXXX代表对信息内容的配置。

被控端(灯)将状态发布到主题“<code>hachina/hardware/led01/state</code>”中,控制端(HomeAssistant)订阅这个主题,用于当前状态显示;

控制端(Home Assistant)将控制命令发布到主题“<code>hachina/hardware/led01/switch</code>”中,被控端(灯)订阅这个主题,根据其内容进行实际的开关动作。

双方以”on”代表开,以”off”代表关。

(二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备

 3重启 hass

4 登陆控制台,发现多了个灯设备

(二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备

5 点击按钮,在对应话题会收到" on "

在hass点击一下开关,开关打开

(二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备

手机调试软件订阅话题,模拟自己是个灯监听

(二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备

但是马上hass界面端的按钮又回到关闭状态,为什么?

因为手机只是监听,没有往状态话题发布消息--on, 这样hass没有得到灯的反馈,误以为它没开,而自动把开关展示状态显示为关。

需要在硬件esp8266中写程序,每次收到 开灯命令,对应返回 开的状态。