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

关于hass对接mqtt 请参考官网

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

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

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

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

 添加以下内容

2.1hass连接Mqtt服务器

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

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

# configuration.yaml配置样例
mqtt:
  # MQTT Broker的IP地址或者域名
  broker: test.mosquitto.org
  # MQTT Broker的端口号,缺省为1883
  port: 1883
  # 用户名
  #username: hachina
  # 密码
  #password: hachina
  # 配置自动发现
  discovery: true
  # 自动发现使用的主题位置前缀,缺省为homeassistant
  discovery_prefix: homeassistant

2.2hass手动添加一个设备(灯)

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

    • 主题位置(topic)
      主题位置表明双方在哪里进行通讯。
      比如,一盏灯的命令主题(command_topic),表示HomeAssistant会将开关命令发送到这儿,而灯会到这儿读取命令进行开关操作;比如,一个温度计的状态主题(state_topic),表示温度计会将温度值发送到这儿,HomeAssistant会从这儿读取温度展现在前端。
      一个设备可能包含多个主题位置。例如,温湿度传感器的温度和湿度可以分在两个主题位置,灯的状态和控制命令一般也会分在不同的主题位置。
    • 信息内容(payload)
      信息内容表示双方用什么信息代表什么含义。
      比如,开关灯命令,可以是”ON/OFF”,也可以是”on/off”,”true/false”,”1/0″……
      HomeAssistant配置项中payload_XXXX代表对信息内容的配置。
# 这是一个MQTT设备,名字是"MQTT Sensor 1",在MQTT中发布信息的位置在"home/bedroom/temperature"
# 此配置添加系统内实体sensor.mqtt_sensor_1
light:
  #设备类型 MQTT
  - platform: mqtt
  # 设备名字
    name: "LED light over MQTT"
  # HASS标准格式  状态话题  HASS接收来自设备的状态信息
    state_topic: "hachina/hardware/led01/state"
  # HASS标准格式  命令话题  HASS发送控制设备的命令
    command_topic: "hachina/hardware/led01/switch"
  # 命令格式  on 和 off
    payload_on: "on"
    payload_off: "off"


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

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


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

 

 3重启 hass

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

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

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

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

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

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

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

猜你喜欢

转载自www.cnblogs.com/kekeoutlook/p/9471726.html