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.

RESET Feature

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.

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

ParameterTypeDescription
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
Mask Constraints

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.

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

IDNameTypeDescription
0x0001 Latch (Latch Bitmap) bitmap32 Each bit corresponds to one alarm type. 1 = latched (requires manual reset), 0 = auto-clear. Requires RESET Feature
Latched vs Auto-Clear

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.

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

IDNameTypeDescription
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:

Bit 0
InflowError Water inflow fault — insufficient water pressure, stuck inlet valve, or supply interruption
Bit 1
DrainError Water drain fault — drain pump failure, clogged pipes, or drain timeout
Bit 2
DoorError Door not closed — door opened during operation or door lock failure
Bit 3
TempTooLow Water temperature too low — heater failure or abnormal inlet water temperature
Bit 4
TempTooHigh Water temperature too high — thermostat failure or continuous heater operation
Bit 5
WaterLevelError Water level abnormal — potential overflow risk or water level sensor failure
Bitmap Reading Example

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.

FieldTypeDescription
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):

Bit 0
RESET Alarm reset support — enables the Reset command and Latch attribute, allowing manual reset of latched alarms
Impact of the RESET Feature

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

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

  1. Subscribe to the Notify event for real-time alarm state changes
  2. On receiving the event, check the Active field to identify newly triggered alarms
  3. Display the corresponding alarm information in the app (e.g., "Drain Error", "Door Not Closed")
  4. Read Latch (0x0001) to determine whether the alarm requires manual reset
  5. If latched — after the user resolves the fault, tap "Clear Alarm" in the app and send the Reset (0x00) command
  6. If auto-clear — wait for the fault to resolve on its own; State updates automatically

Scenario 2: User-Defined Alarm Configuration

  1. Read Supported (0x0003) to get all alarm types supported by the device
  2. Read Mask (0x0000) to get the currently enabled alarms
  3. Display a toggle list in the settings page for the user to check/uncheck alarm types
  4. After the user makes changes, send ModifyEnabledAlarms (0x01) with the new Mask value
  5. For example: the user only wants inflow and drain alarms; send Mask = 0x03 (bit 0 + bit 1)
  6. Afterwards, the device only reports InflowError and DrainError; other alarms no longer trigger notifications