【蓝牙精品系列文档】【04_blemesh model】05_控制模式_单控组控场景控

📅 2026/7/16 4:59:15
【蓝牙精品系列文档】【04_blemesh model】05_控制模式_单控组控场景控
BLE Mesh 控制模式:单控 / 组控 / 场景控这三个词不是 Mesh 规范里的标准术语(规范里只有 Model、State、Publish/Subscribe、Scene 这些概念)。它们是智能照明行业的产品/工程用语,用来描述"灯被谁控制、控制什么粒度"。在 Mesh 协议层面,它们对应的是不同的 Model 组合 + 不同的 Publish/Subscribe 配置。一、单控(Individual Control)含义一盏灯单独被控制,一对一关系。App/开关 ──[OnOff Set]──► 某一盏灯(Unicast 0x1234)Mesh 协议层面项配置通信方式Unicast点对点目标地址灯的 Unicast AddressModelGeneric OnOff / Light Lightness触发App 点了"这一盏灯"的开关按钮回复Server 回 Status 给 Client使用场景调试 / 配置阶段,单独点某一盏某盏灯出问题,单独排查家居场景里"卧室顶灯"这种单点控制特点精确,但效率低(N 盏灯要发 N 条消息)不适合批量操作二、组控(Group Control)含义一组灯同时被控制,一对多关系。这是 Mesh 最典型的用法。App/开关 ──[OnOff Set, Dst=Group 0xC001]──► 组里所有灯 ├── 灯 A ├── 灯 B └── 灯 C (同时收到,同时执行)Mesh 协议层面项配置通信方式Group Address组播目标地址Group Address(0xC000~0xFEFF)ModelGeneric OnOff / Light Lightness订阅组里每盏灯的 Model 都Subscribe这个 Group触发App/开关 Publish 到这个 Group回复Set Unacknowledged不回,避免空口风暴使用场景客厅所有筒灯一起开/关走廊灯联动全屋一键全开/全关特点一条消息控制多盏灯,效率高利用 Mesh 网络层组播,自然支持多跳典型实践:用Set Unacknowledged(0x8203)而不是Set(0x8202),避免 N 个 Server 同时回 Status 造成空口拥堵工程要点组控是 Mesh 照明方案的核心。一栋楼宇几千盏灯,几乎不会用单控,全是分组组控:客厅组 0xC001 ←── 客厅所有灯订阅 走廊组 0xC002 ←── 走廊所有灯订阅 全屋组 0xC003 ←── 所有灯都订阅(一键全关用)三、场景控(Scene Control)含义一键切换到预设的整体灯光状态,多对多关系。不只是开/关,而是"亮度+色温+颜色"的完整快照。App ──[Scene Recall, Scene=3]──► 所有支持场景的灯 ├── 灯 A → 亮度 80%, 色温 3000K ├── 灯 B → 亮度 30%, 色温 6500K └── 灯 C → 关 (每盏灯各自查"场景 3 里我该是什么状态",同时切换)Mesh 协议层面项配置通信方式Group 或 Unicast都行目标地址通常 Group(一键全屋切换)ModelScene Server(0x1203)/ Scene Client(0x1205)关联 ModelScene Server 要和 Light Lightness / CTL / HSL 等 Model同 element触发Scene Recall(0x8243)/ Scene Recall Unacknowledged(0x8244)存储每盏灯自己存"Scene N → 我的 State"映射表Scene 机制详解这是 Mesh 规范里最巧妙的设计之一:Scene 不是中心化存储不是 Provisioner 存"场景 3 = 客厅灯亮 80% + 卧室灯亮 30%"而是每盏灯自己存"场景 3 时我应该是什么状态"Scene Recall 消息只是个"触发器",告诉所有灯"切换到场景 3"Scene Server 持有一个 Scene Register:Scene 1 → { Lightness=10000, CTL Temp=4000K } Scene 2 → { Lightness=20000, CTL Temp=2700K } Scene 3 → { Lightness=0 (关) }Scene Recall 时:灯收到Scene Recall { Scene=2 }查自己的 Scene Register,取出 Scene 2 对应的 State把 Lightness、CTL 等所有相关 State 一次性设过去联动触发:因为 Scene Server 和 Lightness Server 同 element,State 自动联动使用场景影院模式:客厅灯暗到 20% 暖光,卧室灯关,走廊灯微亮会客模式:客厅灯全亮 6500K,餐厅灯 80%睡眠模式:全屋关,仅夜灯微亮离家模式:全屋关特点一次操作 = 多盏灯 × 多维 State 的完整切换比组控更"高级":组控只控制一个维度(开/关 或 亮度),场景控控制所有维度去中心化:Scene 数据存在每盏灯里,Provisioner 只下发触发命令Scene 数量有限:每盏灯的 Scene Register 容量有限(一般几个到几十个)四、三者对比维度单控组控场景控控制粒度一盏灯一组灯(一个维度)一组灯(多维 State 快照)地址类型UnicastGroupGroup(通常)消息OnOff SetOnOff Set UnackScene RecallModel