蓝牙 Mesh 是什么
普通蓝牙是一对一的,手机连一个设备就占一条链路;蓝牙 Mesh 则让设备之间互相中继转发消息,一盏灯的命令能通过邻居设备传到几十米外的另一盏灯,天生适合灯、开关、传感器这种低功耗、数量多的智能家居场景。
它工作在广播机制上:消息以泛洪方式在节点间转发,不用建复杂的路由表,节点加入、离开网络都简单,坏了几个节点网络还能继续工作,容错性很强。
- 泛洪转发设备互相中继消息。
- 配网Provision 把设备加进网络。
- 消息模型发布订阅、组播控制。
- 多协议网关蓝牙 Mesh 转 MQTT。
对比一下:Zigbee 也是 Mesh,但需要专用协调器建网;蓝牙 Mesh 的设备用手机就能配网,手机本身就是临时网关,对没有集中网关的家庭更友好。
节点角色与配网
蓝牙 Mesh 的节点有几种角色,理解角色才能排布网络:
- 中继节点:转发消息,扩大覆盖,要常供电(插座设备适合当)。
- 低功耗节点:电池供电,大部分时间休眠,靠 Friend 节点代收消息。
- Friend 节点:帮低功耗节点缓存消息,一般也是常供电设备。
- 代理节点:让不支持 Mesh 的普通 BLE 设备(如手机)通过 GATT 接入。
配网(Provisioning)流程:设备进入广播配网状态,配网器(手机 App 或网关)完成认证、分配网络密钥和单播地址,设备才算正式入网。配网后还要用 App 把设备加入组,才能收到组播指令。
消息模型与场景
蓝牙 Mesh 控制设备靠的是模型(Model):比如 Generic OnOff 模型管开关、Light Lightness 模型管亮度。设备"订阅"某个组地址,控制端向这个组"发布"消息,所有订阅者同时响应。
// 概念:组播控制
// 开关节点:发布到组 0xC001
// 客厅灯节点:订阅 0xC001,收到 OnOff 消息就开关
// 走廊灯节点:订阅 0xC001,同样响应
//
// 一条命令,一组设备
publish(group 0xC001, ON);
// 所有订阅 0xC001 的灯同时点亮
这套发布订阅机制非常适合场景联动:一个开关控制一组灯、一个传感器触发一组动作,都在组地址层面完成,不需要网关逐台下发指令,响应快、不依赖云。
多协议网关设计
家里不会只有蓝牙 Mesh:灯可能是 Zigbee、插座可能是 WiFi、窗帘可能是射频。多协议网关就是把各路协议统一到一条消息总线上,典型实现是 ESP32 跑 ESP-Mesh 或 MQTT 桥接。
// 多协议网关数据流示意
// 蓝牙Mesh节点 --BLE--> ESP32(蓝牙Mesh+WiFi) --MQTT--> Home Assistant
// Zigbee节点 --Zigbee--> 协调器 --串口/网络--> 网关 --MQTT--> 平台
// WiFi设备 --WiFi--> 网关 --MQTT--> 平台
//
// 统一模型:设备 entity_id 为唯一标识,状态走 MQTT topic
// topic: ha/devices/<device_id>/state
// 命令: ha/devices/<device_id>/cmd payload: {"on":true}
网关设计的三个要点:一是状态同步,协议侧状态变化要实时上报到总线;二是有序,命令按设备串行化,防止并发冲突;三是离线处理,网络断了本地还能联动(蓝牙 Mesh 本身局域网可用)。
与家庭中枢集成
最主流的集成路径是 Home Assistant 加 ESP32 蓝牙 Mesh 网关:ESP32 跑 Bluetooth Proxy 或 esphome 的 BLE 网关组件,把 Mesh 消息转成 MQTT,HA 订阅 MQTT 就能控制全部设备。
- ESPHome:写 YAML 声明蓝牙代理,自动上报设备状态。
- MQTT Discovery:设备通过 MQTT 自动注册到 HA,不用手写配置。
- 场景联动:HA 里把 Mesh 灯、传感器、日程组合成自动化。
- 语音控制:Mesh 设备接入 HA 后,直接吃小爱、天猫、Alexa 的语音命令。
网关部署位置有讲究:蓝牙 2.4GHz 频段容易被 WiFi 干扰,网关尽量靠近设备群、远离路由器;一个网关覆盖不够就加第二个,Mesh 网络本身支持多代理。
组网调试与排障
蓝牙 Mesh 看着简单,排障要靠工具:nRF Connect 可以扫描广播包看设备是否在配网状态;wireshark 配合 BLE 抓包器能看消息转发路径。
- 设备配不进去:先确认设备是否真的进入配网模式(通常有指示灯),App 版本和协议栈不匹配也会失败。
- 命令时灵时不灵:大概率是中继不足,隔墙设备收不到,补中继节点。
- 电池设备响应慢:低功耗节点依赖 Friend 缓存,检查 Friend 节点是否在线。
- WiFi 干扰严重:蓝牙 Mesh 和 WiFi 都在 2.4G,错开信道或改用 5G WiFi。
- 重名冲突:同一网络里两组同名设备会一起响应,命名要区分。
Mesh 网络越密越好用:节点越多、中继越全,链路越稳,这就是 Mesh 的复利效应。
常见问题
// 1. 配网失败:设备没进入配网态,或 App 与协议栈不兼容
// 2. 消息丢失:中继不足,隔墙丢包,补常供电中继
// 3. 响应延迟:低功耗节点休眠,调 Friend 缓存参数
// 4. 与 WiFi 互相干扰:错信道、网关就近部署
// 5. 断电后组网丢失:检查节点是否掉出网络,重新配网
// 6. 场景串台:组地址分配混乱,规划组地址表
蓝牙 Mesh 加多协议网关,是低成本把全屋设备"说同一种话"的务实路线,配上网关再接 HA,全屋自动化就活了。