布尔状态配置 Cluster(BooleanStateConfiguration)

Cluster ID: 0x0080  |  所在 Endpoint: 与 BooleanState 同一 Endpoint(功能端点)

BooleanStateConfiguration 是 BooleanState(0x0045)的配套 Cluster —— BooleanState 负责报告传感器的二值状态(true/false),而 BooleanStateConfiguration 则负责配置传感器的行为: 管理告警输出(视觉闪烁、蜂鸣声)以及调节传感器灵敏度。

典型使用场景:门窗传感器检测到门被打开时,BooleanState 的 StateValue 变为 false, 同时 BooleanStateConfiguration 控制是否亮灯闪烁(Visual)、是否发出蜂鸣声(Audible), 以及传感器的触发灵敏度等级。

与 BooleanState 的关系

这两个 Cluster 必须部署在同一个 Endpoint 上。 BooleanState 是只读的数据源(传感器读数), BooleanStateConfiguration 是可配置的行为层(告警 + 灵敏度)。 开发时不要混淆:读取传感器状态用 BooleanState,配置传感器行为用 BooleanStateConfiguration。

命令(Commands)

BooleanStateConfiguration Cluster 有 2 个命令,分别用于抑制告警和启用/禁用告警。 两个命令都通过 AlarmModeBitmap 位图来指定操作哪些告警通道。 点击下方表格中的命令 ID 可跳转到对应的详细说明。

ID 名称 说明 所需特性
0x00 SuppressAlarm 临时抑制正在响的告警 SPRS
0x01 EnableDisableAlarm 启用或禁用告警通道 VIS 或 AUD

SuppressAlarm —— 抑制告警(0x00)

临时抑制当前正在激活的告警。例如传感器正在蜂鸣报警,用户按了「静音」按钮后, App 发送此命令让蜂鸣暂停。抑制不等于禁用 —— 告警通道仍然是启用的, 下次传感器再次触发时告警会重新激活。此命令需要设备支持 SPRS(AlarmSuppress) 特性。

参数类型说明
AlarmsToSuppress AlarmModeBitmap 要抑制的告警通道位图(见 AlarmModeBitmap)。只能抑制当前在 AlarmsActive 中激活且在 AlarmsSupported 中支持的告警
抑制 vs 禁用

SuppressAlarm(抑制):临时静音当前这一次告警,下次触发照常响起。相当于闹钟的「稍后提醒」。
EnableDisableAlarm(禁用):永久关闭告警通道,后续触发都不再告警。相当于关掉闹钟。

使用场景

水浸传感器检测到漏水,蜂鸣器响起(AlarmsActive 的 Audible 位 = 1)。 用户已经注意到并在处理,按下 App 中的「静音」按钮。 App 发送 SuppressAlarm(AlarmsToSuppress = 0x02,即 Audible), 设备停止蜂鸣,AlarmsSuppressed 的 Audible 位变为 1。 等用户修好漏水、传感器恢复正常后,抑制自动解除。

EnableDisableAlarm —— 启用/禁用告警(0x01)

启用或禁用指定的告警通道。修改的是 AlarmsEnabled 属性, 决定后续传感器触发时哪些告警通道会响应。此命令需要设备支持至少一个告警特性(VIS 或 AUD)。

参数类型说明
AlarmsToEnableDisable AlarmModeBitmap 新的告警启用位图(见 AlarmModeBitmap)。置 1 的通道启用,置 0 的通道禁用。只能设置 AlarmsSupported 中支持的位
使用场景

用户在设置页面关闭了门窗传感器的蜂鸣告警(只保留闪灯提醒)。 App 发送 EnableDisableAlarm(AlarmsToEnableDisable = 0x01,即只启用 Visual), 此后传感器触发时只有指示灯闪烁,不再蜂鸣。

属性详解

BooleanStateConfiguration Cluster 共有 7 个应用属性,分为灵敏度配置和告警状态两组。 点击下方汇总表中的属性 ID 可跳转到对应的详细说明。

ID 名称 类型 分组 说明 所需特性
0x0000 CurrentSensitivityLevel uint8 灵敏度 当前灵敏度级别 SENS
0x0001 SupportedSensitivityLevels uint8 灵敏度 支持的灵敏度级别数 SENS
0x0002 DefaultSensitivityLevel uint8 灵敏度 出厂默认灵敏度级别 SENS
0x0003 AlarmsActive AlarmModeBitmap 告警状态 当前正在激活的告警 VIS 或 AUD
0x0004 AlarmsSuppressed AlarmModeBitmap 告警状态 当前被抑制的告警 SPRS
0x0005 AlarmsEnabled AlarmModeBitmap 告警状态 已启用的告警通道 VIS 或 AUD
0x0006 AlarmsSupported AlarmModeBitmap 告警状态 设备支持的告警通道 VIS 或 AUD

灵敏度配置(0x0000 ~ 0x0002)

控制传感器的触发灵敏度。灵敏度用一个从 0 开始的整数级别表示, 0 是最高灵敏度(最容易触发),数值越大灵敏度越低。 这组属性需要设备支持 SENS(SensitivityLevel) 特性。

灵敏度级别的含义

级别是一个抽象数值,0 = 最敏感,数值越大越不敏感。 具体每个级别对应的物理参数(如磁场强度阈值、振动幅度等)由设备厂商定义, Matter 规范不做规定。应用层建议用「高 / 中 / 低」等文案映射,而非显示原始数字。

ID 名称 类型 说明
0x0000 CurrentSensitivityLevel(当前灵敏度) uint8 当前生效的灵敏度级别。可读可写,取值范围 0 ~ SupportedSensitivityLevels - 1。需要 SENS 特性
0x0001 SupportedSensitivityLevels(支持级别数) uint8 设备支持的灵敏度级别总数。最小值为 2(至少有高和低两档)。只读,由设备固件决定。需要 SENS 特性
0x0002 DefaultSensitivityLevel(默认灵敏度) uint8 出厂默认的灵敏度级别。只读。App 可以提供「恢复默认」按钮,将 CurrentSensitivityLevel 写回此值。需要 SENS 特性
灵敏度级别映射示例

假设一个门窗传感器支持 3 个灵敏度级别(SupportedSensitivityLevels = 3):

  • 0 = 高灵敏度 —— 轻微振动即触发(适合贵重物品柜)
  • 1 = 中灵敏度 —— 正常开关门触发(默认,适合大多数场景)
  • 2 = 低灵敏度 —— 只有明显开门才触发(适合有风的环境,减少误报)

告警状态(0x0003 ~ 0x0006)

管理传感器的告警输出通道。所有告警属性都使用 AlarmModeBitmap 类型, 通过位图控制视觉(闪灯)和听觉(蜂鸣)两种告警模式。

ID 名称 类型 说明
0x0003 AlarmsActive(激活的告警) AlarmModeBitmap 当前正在激活的告警通道。只读,由设备在传感器触发时自动设置。需要 VIS 或 AUD 特性
0x0004 AlarmsSuppressed(被抑制的告警) AlarmModeBitmap 当前被用户抑制(静音)的告警通道。通过 SuppressAlarm 命令设置。传感器恢复正常后自动清除。需要 SPRS 特性
0x0005 AlarmsEnabled(已启用的告警) AlarmModeBitmap 用户配置的告警通道启用状态。通过 EnableDisableAlarm 命令修改。只有启用的通道才会在传感器触发时激活。需要 VIS 或 AUD 特性
0x0006 AlarmsSupported(支持的告警) AlarmModeBitmap 设备硬件支持的告警通道。只读,由设备固件决定。AlarmsEnabled 的有效位不能超出此范围。需要 VIS 或 AUD 特性
四个告警属性的关系

AlarmsSupported ⊇ AlarmsEnabled ⊇ AlarmsActive, AlarmsSuppressed ⊆ AlarmsActive。
设备支持哪些通道(Supported)→ 用户启用了哪些(Enabled)→ 当前哪些在响(Active)→ 哪些被临时静音了(Suppressed)。

AlarmModeBitmap

AlarmsActive、AlarmsSuppressed、AlarmsEnabled、AlarmsSupported 四个属性, 以及两个命令的参数,都使用同一套 AlarmModeBitmap 位图定义。 每一位代表一种告警输出通道:

Bit 0
Visual(视觉告警) 指示灯闪烁 —— 设备上的 LED 灯闪烁提醒
Bit 1
Audible(听觉告警) 蜂鸣器响铃 —— 发出声音告警提醒
位图值速查

0x00 = 无告警, 0x01 = 仅闪灯, 0x02 = 仅蜂鸣, 0x03 = 闪灯 + 蜂鸣。

事件(Events)

BooleanStateConfiguration 定义了一个 AlarmsStateChanged 事件, 在告警状态发生任何变化时由设备端主动上报。

ID 名称 优先级 说明
0x00 AlarmsStateChanged Info 告警状态变化时触发

AlarmsStateChanged —— 告警状态变更事件(0x00)

当告警状态发生变化时(告警激活、解除或被抑制),设备会产生此事件。 事件携带变化后的完整告警快照。控制器应当订阅此事件以实时获取告警变化通知。

字段ID类型所需特性说明
AlarmsActive 0x00 AlarmModeBitmap VIS 或 AUD 变化后当前激活的告警通道(可选字段,设备支持 VIS/AUD 时携带)
AlarmsSuppressed 0x01 AlarmModeBitmap SPRS 变化后当前被抑制的告警通道(可选字段,设备支持 SPRS 时携带)

事件上报示例(视觉告警激活,听觉告警被抑制):

{
  "eventReports": [{
    "eventData": {
      "path": {
        "endpointId": 1,
        "clusterId": "0x0080",
        "eventId": "0x00"       // AlarmsStateChanged
      },
      "eventNumber": 15,
      "priority": "INFO",
      "data": {
        "0": "0x01",            // AlarmsActive = 0x01(视觉告警激活)
        "1": "0x02"             // AlarmsSuppressed = 0x02(听觉告警已抑制)
      }
    }
  }]
}

Feature 位图

BooleanStateConfiguration 通过 FeatureMap(0xFFFC)声明设备支持哪些能力:

Bit 0
VIS(Visual) 视觉告警 —— 设备支持 LED 闪烁告警。启用后提供 AlarmsActive/Enabled/Supported 属性(Visual 位有效)
Bit 1
AUD(Audible) 听觉告警 —— 设备支持蜂鸣器声音告警。启用后提供 AlarmsActive/Enabled/Supported 属性(Audible 位有效)
Bit 2
SPRS(AlarmSuppress) 告警抑制 —— 支持临时静音正在响的告警。启用后提供 SuppressAlarm 命令和 AlarmsSuppressed 属性
Bit 3
SENS(SensitivityLevel) 灵敏度级别 —— 支持调节传感器灵敏度。启用后提供 CurrentSensitivityLevel/SupportedSensitivityLevels/DefaultSensitivityLevel 三个属性
特性组合要求

设备必须至少支持 VIS、AUD、SENS 三个特性中的一个(否则这个 Cluster 没有意义)。 SPRS(告警抑制)特性需要 VIS 或 AUD 中至少一个同时存在,因为没有告警就无从抑制。

示例数据

一个同时支持视觉告警、听觉告警和灵敏度调节的门窗传感器,读取 BooleanStateConfiguration 属性的结果:

{
  // --- 灵敏度配置(SENS 特性)---
  "0x0000": 1,              // CurrentSensitivityLevel = 1(当前灵敏度级别)
  "0x0001": 3,              // SupportedSensitivityLevels = 3(支持 0/1/2 三个级别)
  "0x0002": 1,              // DefaultSensitivityLevel = 1(出厂默认级别)

  // --- 告警状态(VIS + AUD 特性)---
  "0x0003": "0x03",         // AlarmsActive = 0x03(视觉 + 听觉告警均已激活)
  "0x0004": "0x00",         // AlarmsSuppressed = 0x00(无告警被抑制)
  "0x0005": "0x03",         // AlarmsEnabled = 0x03(视觉 + 听觉告警均已启用)
  "0x0006": "0x03"          // AlarmsSupported = 0x03(设备支持视觉 + 听觉告警)
}
开发提示

先读 FeatureMap (0xFFFC) 判断设备支持哪些特性。 只支持 SENS 的设备没有告警相关属性,只支持 VIS/AUD 的设备没有灵敏度属性。 读取不存在的属性会返回 UNSUPPORTED_ATTRIBUTE 错误。

常见场景

场景 1:门窗传感器告警配置与静音

用户安装了一个带蜂鸣器的门窗传感器,希望在夜间只保留闪灯告警(关闭蜂鸣),并能随时静音。

  1. 读取 FeatureMap (0xFFFC),确认设备支持 VIS + AUD + SPRS
  2. 读取 AlarmsSupported (0x0006),确认设备支持 Visual(0x01)和 Audible(0x02)
  3. 夜间模式:发送 EnableDisableAlarm,AlarmsToEnableDisable = 0x01(仅启用 Visual),关闭蜂鸣
  4. 日间模式:发送 EnableDisableAlarm,AlarmsToEnableDisable = 0x03(恢复 Visual + Audible)
  5. 告警响起时:用户按「静音」,发送 SuppressAlarm,AlarmsToSuppress = 0x02(抑制蜂鸣)
  6. 订阅 AlarmsStateChanged 事件,实时同步 App 上的告警状态图标
场景 2:水浸传感器灵敏度调节

用户的水浸传感器放在洗衣机旁边,正常使用时偶尔溅水导致误报,需要降低灵敏度。

  1. 读取 FeatureMap (0xFFFC),确认设备支持 SENS 特性
  2. 读取 SupportedSensitivityLevels (0x0001) = 3,表示支持 0/1/2 三档
  3. 读取 DefaultSensitivityLevel (0x0002) = 1,出厂默认为中档
  4. 在设置页面显示滑块:高(0) / 中(1) / 低(2)
  5. 用户选择「低」,写入 CurrentSensitivityLevel (0x0000) = 2
  6. 提供「恢复默认」按钮:点击后将 CurrentSensitivityLevel 写回 DefaultSensitivityLevel 的值(1)