Skip to content

Commit 9cf1485

Browse files
authored
Add Ambient Sensing Union Cluster XML and generated code (project-chip#42441)
* Add Ambient Sensing Union Cluster .xml and generated source code to align with Spec-PR#12534 Signed-off-by: Oliver Fan <oliver.fan@nxp.com> * Regenerate controller-clusters.matter file Signed-off-by: Oliver Fan <oliver.fan@nxp.com> * Fix typo in Enum name Signed-off-by: Oliver Fan <oliver.fan@nxp.com> * Update according to specification update in Spec-PR#12960 Signed-off-by: Oliver Fan <oliver.fan@nxp.com> --------- Signed-off-by: Oliver Fan <oliver.fan@nxp.com>
1 parent 652855f commit 9cf1485

82 files changed

Lines changed: 7077 additions & 1 deletion

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/tests.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ jobs:
124124
--log-level info \
125125
src/app/zap-templates/zcl/data-model/chip/global-attributes.xml \
126126
src/app/zap-templates/zcl/data-model/chip/ambient-context-sensing-cluster.xml \
127+
src/app/zap-templates/zcl/data-model/chip/ambient-sensing-union-cluster.xml \
127128
src/app/zap-templates/zcl/data-model/chip/av-analysis-cluster.xml \
128129
src/app/zap-templates/zcl/data-model/chip/boolean-state-configuration-cluster.xml \
129130
src/app/zap-templates/zcl/data-model/chip/bridged-device-basic-information-cluster.xml \

docs/ids_and_codes/zap_clusters.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ Generally regenerate using one of:
123123
| 1071 | 0x42F | RadonConcentrationMeasurement |
124124
| 1072 | 0x430 | SoilMeasurement |
125125
| 1073 | 0x431 | AmbientContextSensing |
126+
| 1074 | 0x432 | AmbientSensingUnion |
126127
| 1075 | 0x433 | ProximityRanging |
127128
| 1076 | 0x434 | SmokeConcentrationMeasurement |
128129
| 1104 | 0x450 | NetworkIdentityManagement |

scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/gen_config.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@
132132
#define MATTER_DM_RADON_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT (1)
133133
#define MATTER_DM_SOIL_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT (0)
134134
#define MATTER_DM_AMBIENT_CONTEXT_SENSING_CLUSTER_SERVER_ENDPOINT_COUNT (0)
135+
#define MATTER_DM_AMBIENT_SENSING_UNION_CLUSTER_SERVER_ENDPOINT_COUNT (0)
135136
#define MATTER_DM_PROXIMITY_RANGING_CLUSTER_SERVER_ENDPOINT_COUNT (0)
136137
#define MATTER_DM_SMOKE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT (0)
137138
#define MATTER_DM_NETWORK_IDENTITY_MANAGEMENT_CLUSTER_SERVER_ENDPOINT_COUNT (0)
@@ -284,6 +285,7 @@
284285
#define MATTER_DM_RADON_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
285286
#define MATTER_DM_SOIL_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
286287
#define MATTER_DM_AMBIENT_CONTEXT_SENSING_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
288+
#define MATTER_DM_AMBIENT_SENSING_UNION_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
287289
#define MATTER_DM_PROXIMITY_RANGING_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
288290
#define MATTER_DM_SMOKE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
289291
#define MATTER_DM_NETWORK_IDENTITY_MANAGEMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (0)

scripts/tools/zap/tests/outputs/lighting-app/app-templates/gen_config.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@
132132
#define MATTER_DM_RADON_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT (0)
133133
#define MATTER_DM_SOIL_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT (0)
134134
#define MATTER_DM_AMBIENT_CONTEXT_SENSING_CLUSTER_SERVER_ENDPOINT_COUNT (0)
135+
#define MATTER_DM_AMBIENT_SENSING_UNION_CLUSTER_SERVER_ENDPOINT_COUNT (0)
135136
#define MATTER_DM_PROXIMITY_RANGING_CLUSTER_SERVER_ENDPOINT_COUNT (0)
136137
#define MATTER_DM_SMOKE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT (0)
137138
#define MATTER_DM_NETWORK_IDENTITY_MANAGEMENT_CLUSTER_SERVER_ENDPOINT_COUNT (0)
@@ -284,6 +285,7 @@
284285
#define MATTER_DM_RADON_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
285286
#define MATTER_DM_SOIL_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
286287
#define MATTER_DM_AMBIENT_CONTEXT_SENSING_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
288+
#define MATTER_DM_AMBIENT_SENSING_UNION_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
287289
#define MATTER_DM_PROXIMITY_RANGING_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
288290
#define MATTER_DM_SMOKE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
289291
#define MATTER_DM_NETWORK_IDENTITY_MANAGEMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (0)
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
Copyright (c) 2026 Project CHIP Authors
4+
5+
Licensed under the Apache License, Version 2.0 (the "License");
6+
you may not use this file except in compliance with the License.
7+
You may obtain a copy of the License at
8+
9+
http://www.apache.org/licenses/LICENSE-2.0
10+
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
See the License for the specific language governing permissions and
15+
limitations under the License.
16+
-->
17+
<!--
18+
XML generated by Alchemy; DO NOT EDIT.
19+
Source: src/app_clusters/AmbientSensingUnion.adoc
20+
Parameters: zap attribute=in-progress sdk-root=/opt/matter-repos/self-csa-0224/connectedhomeip/ spec-root=/opt/matter-repos/self-csa-0224/connectedhomeip-spec/ ./../connectedhomeip-spec/src/app_clusters/AmbientSensingUnion.adoc
21+
Git: 0.7-fall2026-7-gb05631e39
22+
Alchemy: v1.6.14
23+
-->
24+
<configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
25+
<domain name=""/>
26+
<enum name="UnionContributorStatusEnum" type="enum8">
27+
<cluster code="0x0432"/>
28+
<item name="UnionContributorOnline" value="0x00"/>
29+
<item name="UnionContributorOffline" value="0x01"/>
30+
</enum>
31+
32+
<enum name="UnionHealthEnum" type="enum8">
33+
<cluster code="0x0432"/>
34+
<item name="FullyFunctional" value="0x00"/>
35+
<item name="LimitedDegraded" value="0x01"/>
36+
<item name="NonFunctional" value="0x02"/>
37+
</enum>
38+
39+
<struct name="UnionContributorStruct" apiMaturity="provisional">
40+
<cluster code="0x0432"/>
41+
<item fieldId="0" name="ContributorNodeID" type="node_id" isNullable="true" apiMaturity="provisional"/>
42+
<item fieldId="1" name="ContributorEndpointID" type="endpoint_no" isNullable="true" apiMaturity="provisional"/>
43+
<item fieldId="2" name="ContributorName" type="char_string" optional="true" length="128" apiMaturity="provisional"/>
44+
<item fieldId="3" name="ContributorHealth" type="UnionContributorStatusEnum" max="0x01" apiMaturity="provisional"/>
45+
</struct>
46+
47+
<cluster apiMaturity="provisional">
48+
<domain>Measurement &amp; Sensing</domain>
49+
<name>Ambient Sensing Union</name>
50+
<code>0x0432</code>
51+
<define>AMBIENT_SENSING_UNION_CLUSTER</define>
52+
<description>This cluster provides data modeling and protocol implementation of multi-node ambient sensing system.</description>
53+
<client init="false" tick="false">true</client>
54+
<server init="false" tick="false">true</server>
55+
<globalAttribute code="0xFFFD" side="either" value="1"/>
56+
<attribute code="0x0000" side="server" name="UnionName" define="UNION_NAME" type="char_string" length="128" writable="true"/>
57+
<attribute code="0x0001" side="server" name="UnionHealth" define="UNION_HEALTH" type="UnionHealthEnum" max="0x02"/>
58+
<attribute code="0x0002" side="server" name="UnionContributorList" define="UNION_CONTRIBUTOR_LIST" type="array" entryType="UnionContributorStruct" length="128" minLength="1"/>
59+
<event code="0x0000" name="UnionContributorAdded" priority="info" side="server">
60+
<field fieldId="0" name="AddedContributor" type="UnionContributorStruct" array="true"/>
61+
<description>This event SHALL be generated when there is a new addition to the UnionContributorList.</description>
62+
<otherwiseConform>
63+
<provisionalConform/>
64+
<mandatoryConform/>
65+
</otherwiseConform>
66+
</event>
67+
68+
<event code="0x0001" name="UnionContributorRemoved" priority="info" side="server">
69+
<field fieldId="0" name="RemovedContributor" type="UnionContributorStruct" array="true"/>
70+
<description>This event SHALL be generated whenever an ambient sensing union contributor is removed from the UnionContributorList.</description>
71+
<otherwiseConform>
72+
<provisionalConform/>
73+
<mandatoryConform/>
74+
</otherwiseConform>
75+
</event>
76+
77+
<event code="0x0002" name="UnionContributorStatusChanged" priority="info" side="server">
78+
<field fieldId="0" name="StatusChangedContributor" type="UnionContributorStruct" array="true"/>
79+
<description>This event SHALL be generated whenever the operational status of an ambient sensing union contributor changes.</description>
80+
<otherwiseConform>
81+
<provisionalConform/>
82+
<mandatoryConform/>
83+
</otherwiseConform>
84+
</event>
85+
86+
</cluster>
87+
</configurator>

src/app/zap-templates/zcl/zcl-with-test-extensions.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"administrator-commissioning-cluster.xml",
1414
"air-quality-cluster.xml",
1515
"ambient-context-sensing-cluster.xml",
16+
"ambient-sensing-union-cluster.xml",
1617
"application-basic-cluster.xml",
1718
"application-launcher-cluster.xml",
1819
"audio-output-cluster.xml",

src/app/zap-templates/zcl/zcl.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"administrator-commissioning-cluster.xml",
1414
"air-quality-cluster.xml",
1515
"ambient-context-sensing-cluster.xml",
16+
"ambient-sensing-union-cluster.xml",
1617
"application-basic-cluster.xml",
1718
"application-launcher-cluster.xml",
1819
"audio-output-cluster.xml",

src/app/zap_cluster_list.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"AIR_QUALITY_CLUSTER": [],
99
"ALARM_CLUSTER": [],
1010
"AMBIENT_CONTEXT_SENSING_CLUSTER": [],
11+
"AMBIENT_SENSING_UNION_CLUSTER": [],
1112
"APPLICATION_BASIC_CLUSTER": [],
1213
"APPLICATION_LAUNCHER_CLUSTER": [],
1314
"AUDIO_OUTPUT_CLUSTER": [],
@@ -174,6 +175,7 @@
174175
"AIR_QUALITY_CLUSTER": ["air-quality-server"],
175176
"ALARM_CLUSTER": [],
176177
"AMBIENT_CONTEXT_SENSING_CLUSTER": [],
178+
"AMBIENT_SENSING_UNION_CLUSTER": [],
177179
"APPLICATION_BASIC_CLUSTER": ["application-basic-server"],
178180
"APPLICATION_LAUNCHER_CLUSTER": ["application-launcher-server"],
179181
"AUDIO_OUTPUT_CLUSTER": ["audio-output-server"],

src/controller/data_model/controller-clusters.matter

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9234,6 +9234,50 @@ provisional cluster AmbientContextSensing = 1073 {
92349234
readonly attribute int16u clusterRevision = 65533;
92359235
}
92369236

9237+
/** This cluster provides data modeling and protocol implementation of multi-node ambient sensing system. */
9238+
provisional cluster AmbientSensingUnion = 1074 {
9239+
revision 1;
9240+
9241+
enum UnionContributorStatusEnum : enum8 {
9242+
kUnionContributorOnline = 0;
9243+
kUnionContributorOffline = 1;
9244+
}
9245+
9246+
enum UnionHealthEnum : enum8 {
9247+
kFullyFunctional = 0;
9248+
kLimitedDegraded = 1;
9249+
kNonFunctional = 2;
9250+
}
9251+
9252+
struct UnionContributorStruct {
9253+
nullable node_id contributorNodeID = 0;
9254+
nullable endpoint_no contributorEndpointID = 1;
9255+
optional char_string<128> contributorName = 2;
9256+
UnionContributorStatusEnum contributorHealth = 3;
9257+
}
9258+
9259+
provisional info event UnionContributorAdded = 0 {
9260+
UnionContributorStruct addedContributor[] = 0;
9261+
}
9262+
9263+
provisional info event UnionContributorRemoved = 1 {
9264+
UnionContributorStruct removedContributor[] = 0;
9265+
}
9266+
9267+
provisional info event UnionContributorStatusChanged = 2 {
9268+
UnionContributorStruct statusChangedContributor[] = 0;
9269+
}
9270+
9271+
attribute char_string<128> unionName = 0;
9272+
readonly attribute UnionHealthEnum unionHealth = 1;
9273+
readonly attribute UnionContributorStruct unionContributorList[] = 2;
9274+
readonly attribute command_id generatedCommandList[] = 65528;
9275+
readonly attribute command_id acceptedCommandList[] = 65529;
9276+
readonly attribute attrib_id attributeList[] = 65531;
9277+
readonly attribute bitmap32 featureMap = 65532;
9278+
readonly attribute int16u clusterRevision = 65533;
9279+
}
9280+
92379281
/** This cluster enables the configuration of proximity ranging sessions and reporting of proximity ranging data. */
92389282
provisional cluster ProximityRanging = 1075 {
92399283
revision 1;

src/controller/data_model/controller-clusters.zap

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2486,6 +2486,15 @@
24862486
"enabled": 1,
24872487
"apiMaturity": "provisional"
24882488
},
2489+
{
2490+
"name": "Ambient Sensing Union",
2491+
"code": 1074,
2492+
"mfgCode": null,
2493+
"define": "AMBIENT_SENSING_UNION_CLUSTER",
2494+
"side": "client",
2495+
"enabled": 1,
2496+
"apiMaturity": "provisional"
2497+
},
24892498
{
24902499
"name": "Network Identity Management",
24912500
"code": 1104,
@@ -3090,7 +3099,6 @@
30903099
"define": "CHIME_CLUSTER",
30913100
"side": "client",
30923101
"enabled": 1,
3093-
"apiMaturity": "provisional",
30943102
"commands": [
30953103
{
30963104
"name": "PlayChimeSound",

0 commit comments

Comments
 (0)