要解决蓝牙覆盖问题还是有方法的,今天给大家带来的就是分布式中继蓝牙网关方案。让我们操练起来。
![](https://img-blog.csdnimg.cn/img_convert/bd51a433cfe98b897fe9a15be59d3647.jpeg)
该方案跟上次方案一样,不影响原有米家的接入,也就是一套蓝牙设备可以同时接入米家和homeassistant。
这是小米米家APP中记录的青萍人体传感器记录
![](https://img-blog.csdnimg.cn/img_convert/02afe422ffde64bf0fb06ec4e608cedb.jpeg)
这是我通过USB蓝牙接入玩客云homeassistant中的记录,大家可以发现和米家记录的数据分秒不差。
![](https://img-blog.csdnimg.cn/img_convert/e3e0eb3218ba5c155ee525941320ce71.jpeg)
这就证明米家和homeassistant是并行运行,两者互不影响。即使米家服务器宕机了,homeassistant里的这些传感器还是可以正常工作,homeassistant里基于这些传感器的自动化仍然会正常运行的。这才是彻底的本地化运行,这样才稳定可靠、响应速度快。
一、购买ESP32开发版
首先去淘宝花十元左右买个esp32开发板
![](https://img-blog.csdnimg.cn/img_convert/402a92684d30847171e28b25994cf96c.jpeg)
然后通过USB线把esp32插你的电脑USB上待用,第一次可能需要装驱动,按照提示安装USB转串口驱动即可
二、获取米家蓝牙设备密钥key
现在绝大部分的米家蓝牙传感器都是加密的,所以我们首先就要获取蓝牙设备的密钥key,现在获取米家蓝牙密钥其实十分简单了。
1、下载小米云端token获取软件,打开下图网址,window操作系统点击图中下载链接即可下载该软件
![](https://img-blog.csdnimg.cn/img_convert/36a6b0f7c81bfb1ad4bbb261222ee68b.jpeg)
2、获取米家蓝牙设备key
双击打开刚才下载的软件,按软件提示输入你的小米账号ID和密码即可
![](https://img-blog.csdnimg.cn/img_convert/cedc3a7e2e762a0939f52e11390f87eb.jpeg)
我们就可以看到我们的蓝牙密钥了,如下图所示,然后我们复制粘贴到记事本待用。
![](https://img-blog.csdnimg.cn/img_convert/abc5c5a49afdc6e4e1559d84c02bbbd0.png)
三、下载安装编译esphome
1、 安装esphome
①从python官方网站下载你系统对应版本的python,安装时勾选“Add Python to PATH”
![](https://img-blog.csdnimg.cn/img_convert/6a89f80044a7c4fc2dfeef2dd46eab20.png)
②按Windows +R键,然后在“打开”后输入cmd打开windows命令行窗口。然后输入下面的命令安装esphome
pip3 install wheelpip3 install esphome
最后后再输入下面的命令验证esphome是否安装成功,安装成功会输出版本号
esphome version
![](https://img-blog.csdnimg.cn/img_convert/5ce88f33b0dbbeecf1eb629e567d4a92.png)
2、 编译下载固件
在你的电脑账号目录下创建一个esphome配置文件myesphome.yaml,内容可以直接复制我的这个就行,只需修改一下WiFi账号密码。
![](https://img-blog.csdnimg.cn/img_convert/875df81a9f451a29ad4288a413cdecc2.jpeg)
![](https://img-blog.csdnimg.cn/img_convert/e3ab9d39713e269100790cc804ec01aa.jpeg)
把ESP32开发板通过USB数据线插到电脑上,然后再windows命令行窗口输入如下命令
esphome run myesphome.yaml
编译完成后选择提示的1即COM选项,进行固件写入即可。
四、HA配置
1、通过samba打开HA配置文件夹
我已经给大家安装了samba服务,当我们需要添加第三方插件或者需要修改配置文件时需要打开homeassistant的配置目录。我已经把homeassistant的配置目录通过samba服务共享出来了。在您的电脑(电脑需要和玩客云处于同一局域网,你可以理解为同一路由下)同时按下window键加R键,打开运行,输入您的IP地址,点击“确定”
![](https://img-blog.csdnimg.cn/img_convert/e8047f71b0786799186a2a6f5d0a6b49.jpeg)
输入登录账号root,密码10245869 登录即可打开homeassistant配置目录。我给大家的默认装了HACS即第三方插件商店的,HACS就放在了custom_components里了。
![](https://img-blog.csdnimg.cn/img_convert/2f7c8a54795ef26af89051e773bb140b.jpeg)
2、编辑HA配置文件
找到配置文件夹下的configuration.yaml 用notepad++打开,然后写入下面的内容复制粘贴即可
![](https://img-blog.csdnimg.cn/img_convert/c139abb55a3f0f396a6b5170d44c2a1b.jpeg)
3、重启HA
![](https://img-blog.csdnimg.cn/img_convert/cfc890ef7230fd9ea57b87df867b245f.jpeg)
重启以后HA前端界面就会出现刚才配置的蓝牙中继网关相关的设置组件了,确保网关和网关自动发现设备都是打开状态
![](https://img-blog.csdnimg.cn/img_convert/acd1554c73a0b37c5a86f1cd50ed8b06.jpeg)
4、接入刚才已经刷写的esp32开发板
①点击homeassistant的集成,我们可以看到homeassistant已经自动发现了同局域网的我们DIY的小米蓝牙中继网关,点击“配置”就会自动完成配置
![](https://img-blog.csdnimg.cn/img_convert/321449e90164b9bc3c1d7d4f97fde572.jpeg)
我们选择网关位置点击“完成”即可
![](https://img-blog.csdnimg.cn/img_convert/a00a5eb4f816c4d47229ab1e599e5f11.jpeg)
五、HACS安装插件
①打开HACS中的“集成”页面
![](https://img-blog.csdnimg.cn/img_convert/c94ce537b2b4ee9b71858d8cc9d4c8d6.jpeg)
②点击右下角的“浏览并下载存储库”
![](https://img-blog.csdnimg.cn/img_convert/6fea2aea2d68626999245429d8a97426.jpeg)
③在搜索框内输入“BLE”进行搜索,并点击“passive BLE monitor”进入该插件页
![](https://img-blog.csdnimg.cn/img_convert/1695bdb3e886c8f9aae9b52d2bcea1d6.jpeg)
④、点击右下角的“通过HACS下载此存储库”
![](https://img-blog.csdnimg.cn/img_convert/8aa4d47105b8acfd1d66ae02bcee11a8.jpeg)
⑤在弹出页面中点击右下角的“下载”进行下载
![](https://img-blog.csdnimg.cn/img_convert/e911bfd89077985a77f4dcf01dedbcd3.jpeg)
下载完成后如下图所示
![](https://img-blog.csdnimg.cn/img_convert/df83de0b6584c77dcd83c61904eed48a.jpeg)
下载完成后按下图重启HA,让插件生效
![](https://img-blog.csdnimg.cn/img_convert/ad7c3abd3a56218aa5677005f4624929.jpeg)
六、集成配置passive BLE插件
①、按下图打开HA的集成
![](https://img-blog.csdnimg.cn/img_convert/c71c9b1ccc6c363d5f83363814df78f6.jpeg)
②在集成搜索框中输入“BLE”进行搜索,然后点击“Passive ble monitor”进行插件配置
![](https://img-blog.csdnimg.cn/img_convert/9028d8cee8a15fa11a69b32516cef021.jpeg)
③保持默认,点击提交即可,大家可以看到此处已经没有蓝牙适配器了,因为我的玩客云没有再插USB蓝牙适配器了。
![](https://img-blog.csdnimg.cn/img_convert/443d59817fa981c34d71634076c4c22e.jpeg)
④稍等片刻插件会自动发现蓝牙设备
![](https://img-blog.csdnimg.cn/img_convert/91a528805b49930ec83f5be6b6af0040.jpeg)
⑤点选项进行设备添加
![](https://img-blog.csdnimg.cn/img_convert/4dcfa1cbbbd6a9538ccfba097e42c5dd.jpeg)
选择要添加的设备(此处我以青萍人体与环境光传感器为例)然后点“提交”
![](https://img-blog.csdnimg.cn/img_convert/5e11e1d2c52e511e7427536a2a48a6ab.jpeg)
输入蓝牙密钥后提交即完成设备的添加
![](https://img-blog.csdnimg.cn/img_convert/15a821de1c41b1c357f9f25bb484b9f7.jpeg)
自动添加设备后前端界面显示如下
![](https://img-blog.csdnimg.cn/img_convert/122ffdff00e02ac29f16e301b76f39cf.jpeg)
我们可以汉化一下传感器名字
![](https://img-blog.csdnimg.cn/img_convert/013a3eae0f596082523ebcadf29f3866.jpeg)
七、打印外壳
我从网上找了3D打印文件,自己打印了外壳装上,显得好看一点,也避免出现短路
![](https://img-blog.csdnimg.cn/img_convert/21c5140974209884c1f1e9f01e82cf9f.png)
八、结论
通过ESP32刷esphome固件后,我们可以有效解决两个问题,一是玩客云或者群晖威联通NAS本身没有蓝牙,无法连接蓝牙设备的问题,二是很好的解决USB蓝牙的覆盖问题,那些蓝牙设备离装有HA的玩客云群晖等比较远的无法被连接,那么我们就可以把这个esp32网关拿过去覆盖即可,只要有WiFi,网关就可以把蓝牙信号通过WiFi传输给HA处理。懒得自己刷esp32和玩客云的可以找博主代刷。
![](https://img-blog.csdnimg.cn/img_convert/6d0cc33b1e16fc1f1a37659d92ed1d3d.jpeg)