-
Notifications
You must be signed in to change notification settings - Fork 84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Link Clusters Feature Map values to attributes or commands conformance #547
Comments
Feature description
Work plan
|
In this case the tags are actually associated with the featureMap attribute but our xml does not relay this information. We need to associate the tag with an attribute as well from what I understand to link all the information together i.e. featureMapAttr<->tag<->attributes/commands. This will future proof it more such that if we ever need to associate another attribute with a set of attributes and commands then our logic handles that as well. |
@brdandu : If you look at matter XML, you see things like this:
This associates the tags with the given attribute. This was already done, and is in the database. So the feature map attributes have known associations where each bit is assigned a tag. A missing link is that this is then not attached to any attributes and such. |
See GLOBAL_ATTRIBUTE_BIT table and TAG tables. |
Feature description
Work plan
|
@bzbarsky-apple @vivien-apple @mrjerryjohns @tcarmelveilleux : Can some of you please look at my previous comment and comment if we're missing something around the feature maps, that I don't know needs to happen? |
@tecimovic @brdandu Can we add the featuremap name to the global attribute? Right now we are just listing the code 0xFFFC.
Right now this format is used to generate an enum that can be used in matter code
Could it be directly generated from the detailed tags in the global attribute without having to recreate that bitmap? |
Work Plan: add attribute tag to schema table |
Just a heads up - the conformances are more complex than just feature tags. Things can have conformances marked for other things in their table, and can have multiple conformance requirements. Features themselves can also have conformances. The model used in the SDK for checking conformance is available here: https://github.com/project-chip/connectedhomeip/blob/master/src/python_testing/conformance_support.py |
Just an update here. Since this is a complicated issue, I will be breaking this into smaller increments. We can keep this issue open meanwhile. I am currently looking into the feature map attribute conformance as per the device type selection. |
Discussed in #1188
Some commands, attributes, and attribute values are dependent on or linked to the cluster feature map value.
We need a way to associate a feature map value to attributes and commands. I would like to have some part of this dependency to be automated but at a minimum, we need to be able to warn the User that his configuration is not spec-compliant.
In the Matter implementation, Some cluster functionalities are gated by their feature map value. An external device should also be able to read the feature map value of any cluster from a device to determine what those devices support.
Here are a few examples:
The user is configuring the color control cluster.

He enables the currentX, currentY attributes and the moveToCorlor, MoveColor, StepColor and StopMoveStep commands. All of those are linked to the XY conformance.
The feature map attribute shall be changed to set bit 3. Nothing prevents or warns the user to change the feature map value. It
would be great if the right feature map bit was automatically set when enabling one for those attributes or commands. But at least a Warning/error message should be presented to the user
Another case I can think of is some attributes default value/limit can change based on the featuremap. For the level control cluster, the MinLevel default value is 0 but if the Lighting bit is set in the feature map then it shall be 1
from Table 2. Attributes of the Level Control Server Cluster

Level control Cluster feature map

Basic Suggestion:
have a
requiredIf="featuremap & BIT(X)==true"
and orrequireFeaturemapBit=X
that we can add to an attribute or command in the xml definition to trigger different behaviours.Details from the spec
From the Matter spec:
About the conformance (matter spec)
More about conformance can be found in the spec. There is a chapter about it (7.3. Conformance in the main.pdf) or the link below:
https://github.com/CHIP-Specifications/connectedhomeip-spec/blob/master/src/data_model/Data-Model.adoc#3-conformance
The text was updated successfully, but these errors were encountered: