DishwasherAlarm Cluster
Cluster ID: 0x005D |
Endpoint: Typically on Endpoint 1 (application endpoint)
DishwasherAlarm is a Cluster in Matter specifically for dishwasher alarm and fault reporting. It uses a set of bitmaps to describe which alarms the device supports, which are currently enabled, and which are currently active. Controllers can subscribe to alarm state changes and allow users to configure which alarms they care about.
The DishwasherAlarm Cluster defines a RESET Feature.
When RESET is enabled, the Cluster provides the Reset command and the Latch attribute,
allowing users to manually reset latched alarms. For devices that do not support the RESET Feature,
alarms are automatically cleared when the fault is resolved, with no manual reset available.
Commands
The DishwasherAlarm Cluster has 2 commands. ModifyEnabledAlarms allows users to select which alarms they care about,
and Reset is used to manually reset latched alarms (requires the RESET Feature).
Click a command ID in the table below to jump to its detailed description.
| ID | Name | Description | Required Feature |
|---|---|---|---|
0x00 |
Reset | Reset specified latched alarms | RESET |
0x01 |
ModifyEnabledAlarms | Modify the enabled alarm mask | None |
Reset (0x00)
Manually reset one or more latched alarms. Only alarm bits marked as latched in the Latch attribute require manual reset;
other alarms are automatically cleared when the fault is resolved. This command requires the device to support the RESET Feature.
| Parameter | Type | Description |
|---|---|---|
| Alarms | bitmap32 | Alarm bitmap to reset. Each bit corresponds to one alarm type (see Alarm Bit Definitions); setting a bit to 1 means resetting that alarm |
Usage Scenarios
After a dishwasher drain fault (DrainError) is fixed, the alarm remains active in State because it is latched. The user taps "Clear Alarm" in the app; the app sends the Reset command with bit 1 set in the Alarms parameter, and the device clears the DrainError bit in State.
ModifyEnabledAlarms (0x01)
Modifies the alarm mask (Mask), controlling which alarms are enabled. Only alarms enabled in the Mask are reported by the device. Users can use this command to suppress alarm types they do not care about.
| Parameter | Type | Description |
|---|---|---|
| Mask | bitmap32 | New alarm mask. Each bit corresponds to one alarm type (see Alarm Bit Definitions); setting a bit to 1 enables reporting for that alarm |
The written Mask value must not exceed the range of the Supported attribute.
If you attempt to enable an alarm bit the device does not support, the command will be rejected.
For example, if the device's Supported = 0x07 (only the first 3 alarm types are supported),
then Mask can only be set in the range 0x00 ~ 0x07.
Usage Scenarios
The user unchecks the "Door not closed" alarm (DoorError, bit 2) in the settings page. The app sends ModifyEnabledAlarms, clearing bit 2 in Mask. Afterwards, even if the door is open, the device will not report a DoorError alarm.
Attributes
DishwasherAlarm Cluster has 4 application attributes, all of type bitmap32. Click an attribute ID below to jump to its description.
| ID | Name | Type | Description | Required Feature |
|---|---|---|---|---|
0x0000 |
Mask | bitmap32 | Enabled alarm mask | None |
0x0001 |
Latch | bitmap32 | Alarm bits requiring manual reset | RESET |
0x0002 |
State | bitmap32 | Currently active alarms | None |
0x0003 |
Supported | bitmap32 | Alarm bits supported by the device | None |
Mask (0x0000)
Indicates which alarms are currently enabled. Only alarms whose corresponding bit is 1 in Mask will be reported in State by the device.
Users can modify this attribute via the ModifyEnabledAlarms command.
See Alarm Bit Definitions for the meaning of each bit in Mask.
| ID | Name | Type | Description |
|---|---|---|---|
0x0000 |
Mask (Alarm Mask) | bitmap32 | Each bit corresponds to one alarm type. 1 = reporting enabled, 0 = suppressed. Initial value typically equals Supported (all enabled) |
Latch (0x0001)
Indicates which alarms are of the "latched" type -- meaning the alarm will not automatically clear after the fault is resolved and must be manually reset via the Reset command.
This attribute is only present when the device supports the RESET Feature.
| ID | Name | Type | Description |
|---|---|---|---|
0x0001 |
Latch (Latch Bitmap) | bitmap32 | Each bit corresponds to one alarm type. 1 = latched (requires manual reset), 0 = auto-clear. Requires RESET Feature |
Typical use of latched alarms: even after an inflow fault has been physically resolved, the device maintains the alarm state until the user acknowledges it has been handled. This prevents users from missing important fault events. Auto-clearing alarms return to normal immediately after the fault disappears, suitable for transient anomalies (e.g. momentary temperature fluctuations).
State (0x0002)
Reflects the currently active alarms on the device. Each bit corresponds to an alarm type; set to 1 means that alarm is currently active. This is the most commonly subscribed attribute for controllers, used for real-time fault monitoring.
| ID | Name | Type | Description |
|---|---|---|---|
0x0002 |
State (Current Alarm State) | bitmap32 | Each bit corresponds to one alarm type. 1 = alarm active, 0 = normal. Always a subset of Mask (suppressed alarms do not appear in State) |
Supported (0x0003)
Declares which alarm types the device hardware supports. This is a read-only attribute determined by device firmware. Valid bits in Mask and State cannot exceed the range of Supported.
| ID | Name | Type | Description |
|---|---|---|---|
0x0003 |
Supported (Supported Alarm Bits) | bitmap32 | Each bit corresponds to one alarm type. 1 = device supports this alarm. Read-only |
Alarm Bit Definitions
The Mask, Latch, State, and Supported attributes share the same alarm bit definitions. Each bit represents a possible dishwasher fault type:
State = 0x00000006 (binary ...000110)
means bit 1 (DrainError) and bit 2 (DoorError) are both active.
The application layer can check each alarm with bitwise AND operations.
Events
DishwasherAlarm Cluster defines a Notify event, triggered when the alarm state changes.
Controllers should subscribe to this event for real-time alarm change notifications.
Notify Event
Triggered when the alarm state changes (alarm activated or cleared). The event carries a full snapshot at the time of change, enabling controllers to precisely track state transitions.
| Field | Type | Description |
|---|---|---|
| Active | bitmap32 | Alarm bits newly activated in this change (bits changed from 0 to 1) |
| Inactive | bitmap32 | Alarm bits cleared in this change (bits changed from 1 to 0) |
| State | bitmap32 | Complete alarm state after change (matches the State attribute) |
| Mask | bitmap32 | Alarm mask at time of change (matches the Mask attribute) |
Event Examples
Dishwasher drain fault triggered: device fires a Notify event with Active = 0x02 (DrainError newly activated),
Inactive = 0x00 (no alarms cleared), State = 0x02 (only drain alarm active),
Mask = 0x3F (all alarms enabled).
After the fault is repaired and the user sends Reset: the device fires another Notify event with Active = 0x00,
Inactive = 0x02 (DrainError cleared), State = 0x00 (no active alarms),
Mask = 0x3F.
Feature Bitmap
DishwasherAlarm Cluster declares advanced capabilities through FeatureMap (0xFFFC):
With RESET enabled: The device provides the Latch attribute and Reset command. Certain critical alarms (e.g. inflow, drain faults)
can be set as latched, ensuring the user does not miss them.
Without RESET: All alarms are auto-clearing; State resets to zero automatically after the fault disappears.
Suitable for simple devices that do not require user acknowledgment.
Example Data
Read result of a dishwasher supporting all 6 alarm types with RESET Feature enabled, with a drain alarm currently active:
{
// --- Alarm Bitmap Attributes ---
"0x0000": "0x0000003F", // Mask = 0x3F (all 6 alarms enabled)
"0x0001": "0x00000003", // Latch = 0x03 (InflowError + DrainError require manual reset)
"0x0002": "0x00000002", // State = 0x02 (DrainError alarm currently active)
"0x0003": "0x0000003F" // Supported = 0x3F (device supports all 6 alarm bits)
}
After reading bitmap attributes, the application must parse each bit to determine alarm status.
It is recommended to first read Supported (0x0003) to confirm supported alarms,
then combine with Mask (0x0000) to determine which are enabled,
and finally use State (0x0002) to get currently active alarms.
The relationship: State is a subset of Mask, which is a subset of Supported.
Common Scenarios
Scenario 1: Alarm Monitoring and Handling
- Subscribe to the
Notifyevent for real-time alarm state changes - On receiving the event, check the
Activefield to identify newly triggered alarms - Display the corresponding alarm information in the app (e.g., "Drain Error", "Door Not Closed")
- Read
Latch (0x0001)to determine whether the alarm requires manual reset - If latched — after the user resolves the fault, tap "Clear Alarm" in the app and send the
Reset (0x00)command - If auto-clear — wait for the fault to resolve on its own; State updates automatically
Scenario 2: User-Defined Alarm Configuration
- Read
Supported (0x0003)to get all alarm types supported by the device - Read
Mask (0x0000)to get the currently enabled alarms - Display a toggle list in the settings page for the user to check/uncheck alarm types
- After the user makes changes, send
ModifyEnabledAlarms (0x01)with the new Mask value - For example: the user only wants inflow and drain alarms; send Mask =
0x03(bit 0 + bit 1) - Afterwards, the device only reports InflowError and DrainError; other alarms no longer trigger notifications