BooleanStateConfiguration Cluster
Cluster ID: 0x0080 |
Endpoint: Same Endpoint as BooleanState (application endpoint)
BooleanStateConfiguration is the companion Cluster to BooleanState (0x0045) — BooleanState is responsible for reporting the sensor's binary state (true/false), while BooleanStateConfiguration is responsible for configuring sensor behavior: managing alarm outputs (visual flashing, audible buzzer) and adjusting sensor sensitivity.
Typical use case: when a contact sensor detects that a door has been opened, BooleanState's StateValue changes to false, while BooleanStateConfiguration controls whether the LED flashes (Visual), whether the buzzer sounds (Audible), and the sensor's trigger sensitivity level.
These two Clusters must be deployed on the same Endpoint. BooleanState is a read-only data source (sensor readings), while BooleanStateConfiguration is a configurable behavior layer (alarms + sensitivity). Do not confuse them during development: use BooleanState to read the sensor state, and BooleanStateConfiguration to configure sensor behavior.
Commands
The BooleanStateConfiguration Cluster has 2 commands, used for suppressing alarms and enabling/disabling alarms respectively. Both commands use the AlarmModeBitmap to specify which alarm channels to operate on. Click a command ID in the table below to jump to its detailed description.
| ID | Name | Description | Required Feature |
|---|---|---|---|
0x00 |
SuppressAlarm | Temporarily suppress an active alarm | SPRS |
0x01 |
EnableDisableAlarm | Enable or disable alarm channels | VIS or AUD |
SuppressAlarm — Suppress Alarm (0x00)
Temporarily suppresses currently active alarms. For example, when a sensor is buzzing an alarm and the user presses the "Mute" button, the app sends this command to pause the buzzing. Suppression is not the same as disabling — the alarm channel remains enabled, and the alarm will reactivate the next time the sensor triggers. This command requires the device to support the SPRS (AlarmSuppress) feature.
| Parameter | Type | Description |
|---|---|---|
| AlarmsToSuppress | AlarmModeBitmap | Bitmap of alarm channels to suppress (see AlarmModeBitmap). Only alarms currently active in AlarmsActive and supported in AlarmsSupported can be suppressed |
SuppressAlarm (suppress): Temporarily mutes the current alarm; the next trigger will sound as usual. Like hitting "snooze" on an alarm clock.
EnableDisableAlarm (disable): Permanently turns off the alarm channel; future triggers will no longer alarm. Like turning off the alarm clock entirely.
Usage Scenarios
A water leak detector detects a leak and the buzzer activates (AlarmsActive Audible bit = 1). The user has noticed the issue and is addressing it, then presses the "Mute" button in the app. The app sends SuppressAlarm (AlarmsToSuppress = 0x02, i.e., Audible), the device stops buzzing, and the AlarmsSuppressed Audible bit becomes 1. Once the user fixes the leak and the sensor returns to normal, the suppression is automatically cleared.
EnableDisableAlarm — Enable/Disable Alarm (0x01)
Enables or disables specified alarm channels. This modifies the AlarmsEnabled attribute,
determining which alarm channels will respond when the sensor triggers in the future. This command requires the device to support at least one alarm feature (VIS or AUD).
| Parameter | Type | Description |
|---|---|---|
| AlarmsToEnableDisable | AlarmModeBitmap | New alarm enable bitmap (see AlarmModeBitmap). Channels with bits set to 1 are enabled; bits set to 0 are disabled. Only bits supported in AlarmsSupported can be set |
Usage Scenarios
The user disables the audible alarm for a contact sensor on the settings page (keeping only the visual LED reminder). The app sends EnableDisableAlarm (AlarmsToEnableDisable = 0x01, i.e., Visual only), and thereafter the sensor will only flash its indicator LED when triggered, without buzzing.
Attributes
The BooleanStateConfiguration Cluster has 7 application attributes, divided into two groups: sensitivity configuration and alarm state. Click an attribute ID in the summary table below to jump to its detailed description.
| ID | Name | Type | Group | Description | Required Feature |
|---|---|---|---|---|---|
0x0000 |
CurrentSensitivityLevel | uint8 | Sensitivity | Current sensitivity level | SENS |
0x0001 |
SupportedSensitivityLevels | uint8 | Sensitivity | Number of supported sensitivity levels | SENS |
0x0002 |
DefaultSensitivityLevel | uint8 | Sensitivity | Factory default sensitivity level | SENS |
0x0003 |
AlarmsActive | AlarmModeBitmap | Alarm State | Currently active alarms | VIS or AUD |
0x0004 |
AlarmsSuppressed | AlarmModeBitmap | Alarm State | Currently suppressed alarms | SPRS |
0x0005 |
AlarmsEnabled | AlarmModeBitmap | Alarm State | Enabled alarm channels | VIS or AUD |
0x0006 |
AlarmsSupported | AlarmModeBitmap | Alarm State | Alarm channels supported by the device | VIS or AUD |
Sensitivity Configuration (0x0000 ~ 0x0002)
Controls the sensor's trigger sensitivity. Sensitivity is represented as an integer level starting from 0, where 0 is the highest sensitivity (most easily triggered) and higher values mean lower sensitivity. These attributes require the device to support the SENS (SensitivityLevel) feature.
The level is an abstract numeric value: 0 = most sensitive, higher values = less sensitive. The specific physical parameters each level corresponds to (e.g., magnetic field strength threshold, vibration amplitude, etc.) are defined by the device manufacturer; the Matter specification does not prescribe them. The application layer should map levels to labels like "High / Medium / Low" rather than displaying raw numbers.
| ID | Name | Type | Description |
|---|---|---|---|
0x0000 |
CurrentSensitivityLevel (Current Sensitivity) | uint8 | The currently active sensitivity level. Read/Write, value range 0 to SupportedSensitivityLevels - 1. Requires SENS feature |
0x0001 |
SupportedSensitivityLevels (Supported Levels Count) | uint8 | Total number of sensitivity levels supported by the device. Minimum value is 2 (at least a high and low setting). Read-only, determined by device firmware. Requires SENS feature |
0x0002 |
DefaultSensitivityLevel (Default Sensitivity) | uint8 | The factory default sensitivity level. Read-only. The app can provide a "Restore Default" button that writes CurrentSensitivityLevel back to this value. Requires SENS feature |
Sensitivity Level Mapping Example
Suppose a contact sensor supports 3 sensitivity levels (SupportedSensitivityLevels = 3):
0= High sensitivity — triggers on slight vibration (suitable for valuables cabinets)1= Medium sensitivity — triggers on normal door open/close (default, suitable for most scenarios)2= Low sensitivity — triggers only on obvious door opening (suitable for windy environments, reduces false alarms)
Alarm State (0x0003 ~ 0x0006)
Manages the sensor's alarm output channels. All alarm attributes use the AlarmModeBitmap type, controlling two alarm modes via bitmap: visual (LED flash) and audible (buzzer).
| ID | Name | Type | Description |
|---|---|---|---|
0x0003 |
AlarmsActive (Active Alarms) | AlarmModeBitmap | Currently active alarm channels. Read-only, automatically set by the device when the sensor triggers. Requires VIS or AUD feature |
0x0004 |
AlarmsSuppressed (Suppressed Alarms) | AlarmModeBitmap | Alarm channels currently suppressed (muted) by the user. Set via the SuppressAlarm command. Automatically cleared when the sensor returns to normal. Requires SPRS feature |
0x0005 |
AlarmsEnabled (Enabled Alarms) | AlarmModeBitmap | User-configured alarm channel enable status. Modified via the EnableDisableAlarm command. Only enabled channels will activate when the sensor triggers. Requires VIS or AUD feature |
0x0006 |
AlarmsSupported (Supported Alarms) | AlarmModeBitmap | Alarm channels supported by the device hardware. Read-only, determined by device firmware. The valid bits of AlarmsEnabled cannot exceed this range. Requires VIS or AUD feature |
AlarmsSupported ⊇ AlarmsEnabled ⊇ AlarmsActive,
AlarmsSuppressed ⊆ AlarmsActive.
Which channels the device supports (Supported) → which the user has enabled (Enabled) → which are currently sounding (Active) → which have been temporarily muted (Suppressed).
AlarmModeBitmap
The four attributes AlarmsActive, AlarmsSuppressed, AlarmsEnabled, and AlarmsSupported, as well as the parameters of both commands, all use the same AlarmModeBitmap definition. Each bit represents an alarm output channel:
0x00 = no alarm,
0x01 = visual only,
0x02 = audible only,
0x03 = visual + audible.
Events
BooleanStateConfiguration defines one AlarmsStateChanged event,
which the device proactively reports when any alarm state changes.
| ID | Name | Priority | Description |
|---|---|---|---|
0x00 |
AlarmsStateChanged | Info | Triggered when alarm state changes |
AlarmsStateChanged — Alarm State Change Event (0x00)
When the alarm state changes (alarm activated, cleared, or suppressed), the device generates this event. The event carries a complete snapshot of the alarm state after the change. Controllers should subscribe to this event to receive real-time alarm change notifications.
| Field | ID | Type | Required Feature | Description |
|---|---|---|---|---|
| AlarmsActive | 0x00 |
AlarmModeBitmap | VIS or AUD | Currently active alarm channels after the change (optional field, included when the device supports VIS/AUD) |
| AlarmsSuppressed | 0x01 |
AlarmModeBitmap | SPRS | Currently suppressed alarm channels after the change (optional field, included when the device supports SPRS) |
Event report example (visual alarm active, audible alarm suppressed):
{
"eventReports": [{
"eventData": {
"path": {
"endpointId": 1,
"clusterId": "0x0080",
"eventId": "0x00" // AlarmsStateChanged
},
"eventNumber": 15,
"priority": "INFO",
"data": {
"0": "0x01", // AlarmsActive = 0x01 (visual alarm active)
"1": "0x02" // AlarmsSuppressed = 0x02 (audible alarm suppressed)
}
}
}]
}
Feature Bitmap
BooleanStateConfiguration declares its supported capabilities via FeatureMap (0xFFFC):
The device must support at least one of the VIS, AUD, or SENS features (otherwise this Cluster serves no purpose). The SPRS (alarm suppression) feature requires at least one of VIS or AUD to also be present, since there is nothing to suppress without an alarm.
Example Data
Reading BooleanStateConfiguration attributes from a contact sensor that supports visual alarms, audible alarms, and sensitivity adjustment:
{
// --- Sensitivity Configuration (SENS feature) ---
"0x0000": 1, // CurrentSensitivityLevel = 1 (current sensitivity level)
"0x0001": 3, // SupportedSensitivityLevels = 3 (supports levels 0/1/2)
"0x0002": 1, // DefaultSensitivityLevel = 1 (factory default level)
// --- Alarm State (VIS + AUD features) ---
"0x0003": "0x03", // AlarmsActive = 0x03 (both visual + audible alarms active)
"0x0004": "0x00", // AlarmsSuppressed = 0x00 (no alarms suppressed)
"0x0005": "0x03", // AlarmsEnabled = 0x03 (both visual + audible alarms enabled)
"0x0006": "0x03" // AlarmsSupported = 0x03 (device supports visual + audible alarms)
}
First read FeatureMap (0xFFFC) to determine which features the device supports.
A device that only supports SENS will not have alarm-related attributes, and a device that only supports VIS/AUD will not have sensitivity attributes.
Reading a non-existent attribute will return an UNSUPPORTED_ATTRIBUTE error.
Common Scenarios
Scenario 1: Contact Sensor Alarm Configuration and Muting
A user installs a contact sensor with a buzzer and wants to keep only the LED alert at night (disable the buzzer), with the ability to mute at any time.
- Read
FeatureMap (0xFFFC)to confirm the device supports VIS + AUD + SPRS - Read
AlarmsSupported (0x0006)to confirm the device supports Visual (0x01) and Audible (0x02) - Night mode: send
EnableDisableAlarmwith AlarmsToEnableDisable =0x01(Visual only), disabling the buzzer - Day mode: send
EnableDisableAlarmwith AlarmsToEnableDisable =0x03(restore Visual + Audible) - When the alarm sounds: user taps "Mute", send
SuppressAlarmwith AlarmsToSuppress =0x02(suppress Audible) - Subscribe to the
AlarmsStateChangedevent to synchronize the alarm state icon in the app in real time
Scenario 2: Water Leak Detector Sensitivity Adjustment
A user's water leak detector placed beside the washing machine occasionally triggers false alarms from splashing water, and the sensitivity needs to be lowered.
- Read
FeatureMap (0xFFFC)to confirm the device supports the SENS feature - Read
SupportedSensitivityLevels (0x0001)= 3, indicating support for 3 levels: 0/1/2 - Read
DefaultSensitivityLevel (0x0002)= 1, factory default is medium - Display a slider in the settings page: High (0) / Medium (1) / Low (2)
- User selects "Low", write
CurrentSensitivityLevel (0x0000)= 2 - Provide a "Restore Default" button: when tapped, write CurrentSensitivityLevel back to the DefaultSensitivityLevel value (1)