
ESPHome 蓝牙网关搭建指南一份 YAML 让 ESP32 接管全屋 BLE 传感器【免费下载链接】esphomeESPHome is a system to control your ESP32, ESP8266, BK72xx, RP2040 by simple yet powerful configuration files and control them remotely through Home Automation systems.项目地址: https://gitcode.com/GitHub_Trending/es/esphome卧室里的小米温湿度计只往米家 App 里上报出门在外根本看不到数据。把一块 ESP32 放在传感器旁边刷上 ESPHome 的蓝牙网关固件这条 BLE低功耗蓝牙广播就会被自动转发给 Home Assistant温度、湿度、电量三个实体立刻出现在仪表板上——整个流程只改了一个 YAML 文件。三步跑起来先拿到一个能用的网关整个过程只需要两条命令加一份最小配置。安装命令行工具pip install esphome新建gateway.yaml只写最少的内容esphome: name: bt-gateway esp32: board: esp32dev framework: type: esp-idf wifi: ssid: 你的WiFi名 password: 你的WiFi密码 api: encryption: key: 一串32字节的Base64密钥 bluetooth_proxy: active: true connection_slots: 3编译并刷入esphome config gateway.yaml # 先本地校验报错直接看这里 esphome run gateway.yaml # 编译USB刷入自动连接设备开机后日志里出现bluetooth_proxy初始化成功网关就在工作了。它做的事很简单不停地扫 BLE 广播把原始数据包通过 ESPHome API 推给 Home Assistant再由 HA 里的 ESPHome 集成解析入库。核心逻辑在 bluetooth_proxy 组件源码。配置解读每个参数怎么写、为什么api段怎么写必须配置encryption.key在 HA 添加设备时会自动生成并回填。为什么bluetooth_proxy声明了硬依赖api广播数据走的就是这条 ESPHome API 通道而不是直接发 MQTT。没有它整个组件无法编译。bluetooth_proxy: active: true怎么写网关场景保持默认true即可。为什么active表示允许 ESP32 主动发起 BLE 连接比如 HA 想连接某设备读取特征值时由网关代为连接。设为false则只做广播转发适合纯被动监听场景。bluetooth_proxy: connection_slots: 3怎么写1 到 9 之间的整数默认 3。为什么这是网关能同时维持的主动连接数上限。9 是 ESP32 蓝牙协议栈的硬上限每个连接槽都会占用协议栈资源设备少就调小设备多再往上加。esp32_ble_tracker: scan_parameters怎么写esp32_ble_tracker: scan_parameters: interval: 320ms window: 300ms active: true为什么BLE 和 WiFi 共用 ESP32 那颗 2.4GHz 射频。window是每轮扫描里真正监听空口时间interval是轮与轮的间隔。ESPHome 在编译期就会检查这个值窗口超过 600ms 时直接警告可能饿死 WiFi所以 320ms/300ms 是安全且覆盖足够大的组合。参数校验逻辑见 esp32_ble_tracker 源码。实战示例接入小米 LYWSD02MMC 温湿度计步骤给网关固件追加一段传感器配置。sensor: - platform: xiaomi_lywsd02mmc mac_address: A4:C1:38:54:5E:18 bindkey: 2529d8e0d23150a588675cc54ad48400 temperature: name: 客厅温度 humidity: name: 客厅湿度 battery_level: name: 温湿度计电量其中mac_address和bindkey解密小米广播用的 32 位密钥都需要提前通过小米 BLE 协议工具如 miot 系列工具从传感器上提取二者缺一不可。验证方式esphome run刷入后打开 HA 仪表板搜索设备名。预期结果温度、湿度、电量三个传感器实体出现温度精度到 0.1°C传感器按自身广播周期约 60 秒自动更新数值无需轮询日志里bluetooth_proxy相关行不再报错xiaomi_lywsd02mmc组件无告警。传感器解析实现位于 xiaomi_lywsd02mmc 组件源码同类小米设备CGG1、CGDN1 等都有对应 platform配置形态相同。避坑指南三个最常踩的坑坑一WiFi 频繁掉线现象网关上线几小时后 WiFi 断连重启才恢复。原因用了interval: 1100ms这类超长扫描窗口BLE 长时间霸占射频WiFi 抢不到空口。解决把interval压到 600ms 以下推荐 320msESPHome 编译时会主动警告这种配置看到警告一定要改。坑二active: false下写了连接配置现象esphome config直接报 Connections can only be used if the proxy is set to active。原因主动连接能力被自己关掉了。解决网关场景把active保持为true并保证connection_slots与预期连接的设备数匹配。坑三传感器死活不出数据现象设备实体建好了数值永远是不可用。原因bindkey抄错一个字符广播就解不开密ESP32 收得到包但读不出内容。解决用提取工具重新核对 bindkey同时确认mac_address是完整 12 位、大写格式。收尾一份 YAML、三个组件ESP32 就成了一名随叫随到的 BLE 中转站广播进来、数据进 HA、控制指令再转回设备。下一步可以试试esp32_ble_tracker的on_ble_advertise自动化把检测到某设备广播直接变成开门提醒或联动触发让网关从看得见升级到能反应。【免费下载链接】esphomeESPHome is a system to control your ESP32, ESP8266, BK72xx, RP2040 by simple yet powerful configuration files and control them remotely through Home Automation systems.项目地址: https://gitcode.com/GitHub_Trending/es/esphome创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考