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.

Relationship with BooleanState

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.

ParameterTypeDescription
AlarmsToSuppress AlarmModeBitmap Bitmap of alarm channels to suppress (see AlarmModeBitmap). Only alarms currently active in AlarmsActive and supported in AlarmsSupported can be suppressed
Suppress vs. Disable

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).

ParameterTypeDescription
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.

Meaning of Sensitivity Levels

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
Relationship Between the Four Alarm Attributes

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:

Bit 0
Visual (Visual Alarm) LED flash — the device's LED indicator flashes as an alert
Bit 1
Audible (Audible Alarm) Buzzer sound — emits an audible alarm alert
Bitmap Value Quick Reference

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.

FieldIDTypeRequired FeatureDescription
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):

Bit 0
VIS (Visual) Visual alarm — device supports LED flash alerts. When enabled, provides AlarmsActive/Enabled/Supported attributes (Visual bit valid)
Bit 1
AUD (Audible) Audible alarm — device supports buzzer sound alerts. When enabled, provides AlarmsActive/Enabled/Supported attributes (Audible bit valid)
Bit 2
SPRS (AlarmSuppress) Alarm suppression — supports temporarily muting active alarms. When enabled, provides the SuppressAlarm command and AlarmsSuppressed attribute
Bit 3
SENS (SensitivityLevel) Sensitivity level — supports adjusting sensor sensitivity. When enabled, provides the CurrentSensitivityLevel/SupportedSensitivityLevels/DefaultSensitivityLevel attributes
Feature Combination Requirements

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)
}
Developer Tip

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.

  1. Read FeatureMap (0xFFFC) to confirm the device supports VIS + AUD + SPRS
  2. Read AlarmsSupported (0x0006) to confirm the device supports Visual (0x01) and Audible (0x02)
  3. Night mode: send EnableDisableAlarm with AlarmsToEnableDisable = 0x01 (Visual only), disabling the buzzer
  4. Day mode: send EnableDisableAlarm with AlarmsToEnableDisable = 0x03 (restore Visual + Audible)
  5. When the alarm sounds: user taps "Mute", send SuppressAlarm with AlarmsToSuppress = 0x02 (suppress Audible)
  6. Subscribe to the AlarmsStateChanged event 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.

  1. Read FeatureMap (0xFFFC) to confirm the device supports the SENS feature
  2. Read SupportedSensitivityLevels (0x0001) = 3, indicating support for 3 levels: 0/1/2
  3. Read DefaultSensitivityLevel (0x0002) = 1, factory default is medium
  4. Display a slider in the settings page: High (0) / Medium (1) / Low (2)
  5. User selects "Low", write CurrentSensitivityLevel (0x0000) = 2
  6. Provide a "Restore Default" button: when tapped, write CurrentSensitivityLevel back to the DefaultSensitivityLevel value (1)