Matter Conformance Overview#
This document introduces the Matter conformance system, which defines the optionality and dependencies of various Matter elements, including features, attributes, commands, events, enumerations, and fields. Conformance may be expressed as a simple tag or a complex logical expression.
In ZAP, conformance information appears on the Matter feature page and in conformance-related warnings on relevant elements.
1. Basic Conformance Tags
Conformance | Name | Summary |
---|---|---|
| Mandatory | Required for current revision; always present. |
| Optional | Not required; no dependencies except M elements. |
| Provisional | Provisional for now; future intended conformance is undetermined. |
| Deprecated | No longer valid in current revision; it may occur in legacy versions. |
| Disallowed | Not allowed for the cluster derivation. |
| Described | Complex conformance that cannot be represented with a logical expression. |
2. Conformance Expressions#
Conformance expressions define conditional support for elements using Boolean logic. They consist of operands, which may be combined using logical operators to define complex conditions.
Operands#
Supported operands in a conformance expression are:
feature code (for example,
OO
for OnOff feature)element name (for example, name of attribute, command, or event in the same cluster)
If the referenced feature or element is supported or enabled, then the operand evaluates to TRUE
; otherwise, it evaluates to FALSE
.
Logical Operators#
Conformance | Name | Summary |
---|---|---|
| AND |
|
| OR |
|
| NOT |
|
| Grouping | Use parentheses to group expressions. |
Optional Conformance#
Brackets ([]
) are used to indicate optional in conformance expressions. If no brackets surround an expression, it is mandatory.
[AB]
→ Optional ifAB
is true; otherwise, it is not supported.AB
→ Mandatory ifAB
is true; otherwise, it is not supported.
3. Otherwise Conformance#
Otherwise conformance defines a sequence of conformance expressions, separated by commas (,
).
They are evaluated from left to right, similar to an if → else if → else
chain:
if (first condition is true)
apply first conformance
else if (second condition is true)
apply second conformance
...
else
not supported
Examples#
AB, O
→ Mandatory ifAB
is true; otherwise, it is optional.AB, [CD]
→ Mandatory ifAB
is true; otherwise, it is optional ifCD
is true. If neither expression is true, it is not supported.!AB, [CD & EF], D
→ Mandatory ifAB
is false; otherwise, it is optional if bothCD
andEF
are true. If neither expression is true, it is deprecated.
4. Provisional Conformance#
The tag P
defines the element as provisional. P
could be followed by the future intended conformance of the element.
Examples#
P
→ Provisional now. Future conformance is undetermined.P, M
: Provisional now. In the future, the element is mandatory.P, [AA & BB]
: Provisional now. In the future, the element is optional ifAA & BB
are true; otherwise, it is not supported.[AA], P
: Optional ifAA
is true; otherwise, the element is provisional. Future conformance is undetermined.
5. Additional Conformance Types#
For conformance types not covered in this document, refer to section 7.3 Conformance
in the Matter Core Specification.