• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
MKT-porter
博客园    首页    新随笔    联系   管理    订阅  订阅
(二 -2) 天猫精灵接入Home Assistant-自动发现Mqtt设备

参考中文教程:  https://www.hachina.io/docs/7230.html

英文官网 两个温度传感器:https://www.home-assistant.io/docs/mqtt/discovery/
 

1HomeAssistant中MQTT设备的自动发现逻辑是:

  • MQTT设备将自身的配置信息发布在事前定义的主题位置上
  • HomeAssistant从这个主题位置读取信息,生成对应的系统内实体设备

2支持自动发现的设备包括:

  • 开关型传感器(binary_sensor)
  • 摄像头(camera)
  • 窗帘(cover)
  • 电扇(fan)
  • 灯(light)
  • 传感器(sensor)
  • 开关(switch)

3HomeAssistant支持自动发现,需要在配置文件中增加:

mqtt:
  # 此处为mqtt原有的一些配置
  # ……
  # 配置自动发现
  discovery: true
  # 自动发现使用的主题位置前缀,缺省为homeassistant
  discovery_prefix: homeassistant

4设备将自己的配置信息发布在主题位置:

  • <discovery_prefix>/<component>/[<node_id>/]<object_id>/config
  • <discovery_prefix>:配置文件中的discovery_prefix,缺省为homeassistant
  • <component>:设备所在的域,例如light、switch、binary_sensor等
  • <node_id>:可选,节点ID
  • <object_id>:设备ID

配置信息采用JSON格式。


例如,MQTT设备在主题:

homeassistant/switch/irrigation/config

  

发布信息:

 
{"name": "garden", "command_topic": "hachina/switch/irrigation/set", "state_topic": "hachina/switch/irrigation/state"}

  

  

当HomeAssistant读取此信息,相当于配置文件中存在以下内容:

 
switch:
  - platform: mqtt
    name: "garden"
    command_topic: "hachina/switch/irrigation/set"
    state_topic: "hachina/switch/irrigation/state"

 

3 实战操作

打开手机mqtt调试助手

在hass配置信息话题上发布自己的消息

远程登录hass,我们发现自动多出一一个设备

设备类型 开关

名字 garden

 

 说明:

  1.  重发送配置,不会出现重复的设备。
  2. hass重启后,必须重新发送配置信息,否则hass不会自动找到它。
  3. 必须指定设备类型
  • 灯      homeassistant/light/led1/config
  • 开关  homeassistant/switch/kaiguan1/config

手动和自动添加对比:

灯光这个设备,是之前我们自己手动在配置文件中添加的

 

 
 

警告:

 自动发现设备的时候,一定要改配置话题第三个参数ID,

  • 跟换设备名没关系。设备名重复,ID不重复,可以添加。
  • ID重复,不管设备名重复不重复,只能有一个

第一个设备 名字 RGBlight  ID garden   存在

homeassistant/light/garden/config

{"name": "RGBlight", "command_topic": "hachina/rgb1/light/switch",

第二个设备 名字light   ID garden1   存在

homeassistant/light/garden1/config

{"name": "light", "command_topic": "hachina/rgb1/light/switch",

第三个设备 名字light   ID garden2   存在

homeassistant/light/garden2/config

{"name": "light", "command_topic": "hachina/rgb1/light/switch",

第四个设备 名字light   ID garden    不存在

homeassistant/light/garden/config

{"name": "light", "command_topic": "hachina/rgb1/light/switch",

ID和第一个配置ID冲突,只能存在一个

posted on 2018-08-14 00:16  MKT-porter  阅读(3587)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3