开启辅助访问
设为首页
收藏本站
登录
立即注册
论坛首页
BBS
开发资料
样品购买
GitHub
邀请注册
技术博客
搜索
搜索
每日签到
本版
帖子
用户
物联网开发者社区-安信可论坛
»
论坛首页
›
物联网学习园
›
智能家居
›
官方教程玩法
›
智能家居之旅,第二站:设备接入HomeAssistant的方法 ...
1
2
3
/ 3 页
下一页
返回列表
发新帖
智能家居之旅,第二站:设备接入HomeAssistant的方法
[复制链接]
2503
|
22
|
2024-4-25 14:46:40
|
显示全部楼层
|
阅读模式
本帖最后由 起个名字好难啊 于 2024-4-25 14:47 编辑
前言
上次我们在安装HomeAssistant的时候,顺便把MQTT 集成安装好了。为什么要装MQTT 集成呢?原因就在于,WiFi 设备(Ai-WB2 或者Ai-M6x等模组)接入服务器必定要使用网络协议,而MQTT 是这些网络协议中最常用的。例如:阿里云的物联网平台,米家、鸿蒙等,都有基于MQTT协议的接入方式。而HomeAssistant 对MQTT的适配也十分友好。
HomeAssistant的MQTT
(MQTT的基本知识自行学习,这节不讲MQTT协议)
:
HomeAssistant的MQTT集成,大家可以理解为一个MQTT的客户端,通过固定的数据格式,它能够自己订阅Topic,并且接收数据和下发数据。所以在使用HomeAssistant 的MQTT 的时候,需要先配置远程MQTT服务器。说到这里就可以直到,设备接入HomeAssistant 的方式了,请看下图:
说白了,就是MQTT 服务器负责转接了HomeAssistant和其他WiFi 设备的数据,HomeAssistant 只不过是订阅了每一个接入到HomeAssistant 上的设备的Topic,和获取到了每个设备下发的Topic。话不多说,我们直接动手。
MQTT 服务器的搭建
MQTT 服务器我建议使用远程服务器来搭建,当然局域网中也可以,使用远程服务器主要还是为了避免家里有多个局域网(多个路由器)的情况,而且任意能够访问网络的WiFi 设备都能接入。本地服务器的搭建方式可以参考狗哥的搭建MQTT服务器的帖子:
在pi上面部署开源的MQTT服务器(EMQX)
。
远程服务器的搭建也差不多,只是系统不一样而已。首先登录到你的远程服务器上:
登录/注册后可看大图
后面的步骤就参考狗哥的帖子,跟着他的帖子来就行,狗哥帖子没有贴指令:
下载 MQTTx Ubuntu 版:
wget https://www.emqx.com/zh/downloads/broker/5.6.1/emqx-5.6.1-ubuntu20.04-amd64.deb
复制代码
安装:
sudo apt install ./emqx-5.6.1-ubuntu20.04-amd64.deb
复制代码
运行:
sudo systemctl start emqx
复制代码
安装完成之后,
远程服务器还需要开放两个端口:18083和1883.
(18083 是MQTT后台管理端口,1883 是客户端连接端口,如果你需要加密连接(SSL/TSL)的话,可能还需要开放8883)
最后验证一下,打开浏览器输入:ip:18083,访问成功:
首次登录账号:admin,密码:public
HomeAssistant 连接服务器
分别点击 “配置”——>"设备与服务"——>"添加集成"——>输入框搜“MQTT”选择第一个,然后填入MQTT服务器的IP地址:
连接成功会提示:
另外,我建议打开HomeAssistant 的高级功能,用来配置MQTT发现前缀等内容。
然后你就可以开启高级选项,就能够配置客户端ID及其他功能:
接入HomeAssistant 的前提条件
我们需要了解HomeAssistant 的MQTT 自动发现机制:HomeAssistant 官方规定了,其他MQTT设备想要在HomeAssistant中显示的话,就需要在连接MQTT服务器的时候,以
实体
的方式进行登录。HomeAssistant 平台才能识别到,并显示在MQTT集成里面。就像下面那样:
HomeAssistant 官方也给出了关于实体登录的文档:
https://www.home-assistant.io/integrations/mqtt
并且也给出了对接例子:
上面的意思是:连接服务器之后,给某个Topic 发送固定的示例上的json 数据。例子中如下:
Topic:
homeassistant/binary_sensor/garden/config
复制代码
Json:
{
"name":null,
"device_class":"motion",
"state_topic":"homeassistant/binary_sensor/garden/state",
"unique_id":"motion01ad",
"device":{
"identifiers":[
"01ad"
],
"name":"Garden"
}
}
复制代码
使用MQTTx 客户端测试一下:
可以看到,确实按照上面的内容发送之后,HomeAssistant 的MQTT 集成就能显示东西了。所以说,每个实体我们只要根据说明发送相应的数据就能登录上去了。一下篇帖子给大家介绍一下Ai-M61/62的开关(switch)实体登录HomeAssistant的内容。
本帖被以下淘专辑推荐:
·
HomeAssistant
|
主题: 15, 订阅: 0
回复
使用道具
举报
1084504793
|
2024-4-25 15:06:29
|
显示全部楼层
赞
回复
使用道具
举报
爱笑
|
2024-4-25 15:09:33
|
显示全部楼层
期待莫哥的下一篇!
用心做好保姆工作
回复
支持
反对
使用道具
举报
干簧管
|
2024-4-25 15:30:30
|
显示全部楼层
莫哥厉害👍
回复
支持
反对
使用道具
举报
mowhale
|
2024-4-25 15:49:55
|
显示全部楼层
小白看了瑟瑟发抖
回复
支持
反对
使用道具
举报
djy876
|
2024-4-25 15:54:53
|
显示全部楼层
莫哥厉害
回复
使用道具
举报
lazy
|
2024-4-25 16:31:39
|
显示全部楼层
赞
回复
使用道具
举报
1055173307
|
2024-4-25 20:25:08
|
显示全部楼层
学习
回复
使用道具
举报
yff
|
2024-4-25 23:28:47
|
显示全部楼层
点赞
回复
使用道具
举报
bzhou830
|
2024-4-26 08:32:39
|
显示全部楼层
莫哥高产!
选择去发光,而不是被照亮
回复
使用道具
举报
下一页 »
1
2
3
/ 3 页
下一页
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
手机登录
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
起个名字好难啊
30
主题
50
回帖
2580
积分
金牌会员
金牌会员, 积分 2580, 距离下一级还需 420 积分
金牌会员, 积分 2580, 距离下一级还需 420 积分
积分
2580
加好友
发消息
回复楼主
返回列表
官方教程玩法
DIY作品
图文推荐
【板子申请流程】新进来的同学请看这里-活动已停
2023-11-08
【中奖公告】申请Ai-M61-32S-kit的同学看过来!
2024-04-29
开发板申请 | Ai-M61-32S高性能开发板来啦,共赠送200个!-活动
2024-04-18
我也领到官方免费送的AiPi-Eyes-S1开发板啦!!!
2023-09-26
【轻松上手】小安派跑个超级玛丽
2023-09-27
热门排行
1
【板子申请流程】新进来的同学请看这里-活
2
安信可社区一周年狂欢派对&抽奖盖楼活动开
3
我也领到官方免费送的AiPi-Eyes-S1开发板啦
4
【中奖公告】申请Ai-M61-32S-kit的同学看过
5
优质文章有赏!现金红包+开发板无限送,冲
6
【官方公告】关于板子申请发帖争议解释
7
开发板申请 | Ai-M61-32S高性能开发板来啦
8
【轻松上手】小安派跑个超级玛丽
9
【教程】社区发帖教程指引(尤其是图片上传
10
【电子DIY作品】+人体存在感应器+WB2+RD03