不用买网关,ESP32蓝牙代理解决Home Assistant BLE问题

阅读时长: 3 分钟
字数: 1268

相比几年前,Home Assistant的生态真是有了长足的进步。价格合适的小米蓝牙温湿度计2,现在不需要刷写第三方固件,也不需要抛弃米家App,便可以连接Home Assistant了。通过Xiaomi BLE插件,Home Assistant可以直接读取小米账户中的蓝牙key(或手动输入key),并解密蓝牙Beacon数据。然而,鉴于这次运行Home Assistant的电脑也不再是之前那台,设备的问题变成了网卡的问题。之前使用的MT7925相对比较稳定,而现在的AX200则经常无法收到BLE广播,导致Home Assistant获取到的数据时断时续,最严重的时候一天加起来也就收集几个小时。偶然ChatGPT告诉我,可以使用ESP32作为蓝牙代理,信号好很多。事实证明的确,而且没有嵌入式开发经验的人也能轻松上手。

购买

我购买的是ESP32-WROOM-32E开发板,二三十块钱,不用焊引脚,因为不需要任何扩展性。需要更强信号的可以试试能够外置天线的-32UE,但我使用的-32E对于一个人住的环境已经非常足够。

为了方便刷写,板子当然还需要搭载串口转USB模块,也就是带个USB口。

刷写

把板子接上电脑,这个时候有两种选择。对于像我一样只需要靠它扩展蓝牙范围的用户来说,可以直接用Chromium内核的浏览器打开这个网站,确保上面选中的是Bluetooth proxy,选择generic ESP32,然后点击下面的Connect。你将会看到一个类似这样但又有所不同的界面:

刷写菜单
刷写菜单

上面会有一个Flash选项,这时直接点击它就可以自动刷写含有蓝牙代理功能的固件了。之后它会提示你连接到你的2.4GHz Wi-Fi网络。

如果遇到问题也不要慌,当出现类似improv wifi serial not detected之类的错误时,点击菜单中的Logs & Console查看日志,或点击Reset Device让它重启一下。日志会表明重启进程,之后就可以继续配置Wi-Fi了。

上面没提到的另一种选择是使用ESPHome Dashboard,但由于当前受支持的Docker部署HA方式不再支持Add-on,HACS也没有上架,后续还要改配置文件,略麻烦一些,所以这里就不赘述了。只是要注意一点,刷写空ESPHome固件后也可以添加到Home Assistant中,但是它默认没有任何实体,需要在ESPHome Dashboard中(而非Home Assistant中)修改YAML配置文件。

配置

配置更简单,打开Home Assistant,进入设置-设备与服务,这时很大概率会出现发现到你的ESPHome板子,直接添加即可;如果没有发现,再点击右下角的加号,选择ESPHome,输入你的ESP32的IP地址,点击提交即可。获取IP地址有多种方法,最暴力的方法是直接扫一遍局域网,找到它的MAC。

添加完成后,它会像本机的蓝牙一样出现在Home Assistant的蓝牙设置中,和机器自带的网卡享有同等待遇,包括那个酷炫的可视化界面——现在内置网卡和ESP32都可以连接附近的BLE设备了。

蓝牙设备列表
蓝牙设备列表

许可证:CC BY-SA 4.0
最后更新于 2026 年 3 月 3 日 23:24