Skip to content

Commit 43f66f0

Browse files
authored
Make XOccupiedToUnoccupiedDelay attributes in OccupancySensing cluster managed by AAI (#36777)
* Make XOccupiedToUnoccupiedDelay attributes managed by AAI * add document * add more document
1 parent d162e3a commit 43f66f0

File tree

8 files changed

+30
-177
lines changed

8 files changed

+30
-177
lines changed

examples/all-clusters-app/all-clusters-common/all-clusters-app.matter

+2-2
Original file line numberDiff line numberDiff line change
@@ -9047,7 +9047,7 @@ endpoint 1 {
90479047
ram attribute occupancySensorTypeBitmap default = 1;
90489048
callback attribute holdTime;
90499049
callback attribute holdTimeLimits;
9050-
ram attribute PIROccupiedToUnoccupiedDelay default = 10;
9050+
callback attribute PIROccupiedToUnoccupiedDelay;
90519051
callback attribute featureMap;
90529052
ram attribute clusterRevision default = 5;
90539053
}
@@ -9505,7 +9505,7 @@ endpoint 2 {
95059505
ram attribute occupancySensorTypeBitmap default = 1;
95069506
callback attribute holdTime;
95079507
callback attribute holdTimeLimits;
9508-
ram attribute PIROccupiedToUnoccupiedDelay default = 10;
9508+
callback attribute PIROccupiedToUnoccupiedDelay;
95099509
callback attribute featureMap;
95109510
ram attribute clusterRevision default = 5;
95119511
}

examples/placeholder/linux/apps/app1/config.matter

+3-3
Original file line numberDiff line numberDiff line change
@@ -9645,13 +9645,13 @@ endpoint 1 {
96459645
ram attribute occupancy;
96469646
ram attribute occupancySensorType;
96479647
ram attribute occupancySensorTypeBitmap;
9648-
ram attribute PIROccupiedToUnoccupiedDelay default = 0x00;
9648+
callback attribute PIROccupiedToUnoccupiedDelay;
96499649
ram attribute PIRUnoccupiedToOccupiedDelay default = 0x00;
96509650
ram attribute PIRUnoccupiedToOccupiedThreshold default = 1;
9651-
ram attribute ultrasonicOccupiedToUnoccupiedDelay default = 0x00;
9651+
callback attribute ultrasonicOccupiedToUnoccupiedDelay;
96529652
ram attribute ultrasonicUnoccupiedToOccupiedDelay default = 0x00;
96539653
ram attribute ultrasonicUnoccupiedToOccupiedThreshold default = 1;
9654-
ram attribute physicalContactOccupiedToUnoccupiedDelay default = 0x00;
9654+
callback attribute physicalContactOccupiedToUnoccupiedDelay;
96559655
ram attribute physicalContactUnoccupiedToOccupiedDelay default = 0x00;
96569656
ram attribute physicalContactUnoccupiedToOccupiedThreshold default = 1;
96579657
callback attribute featureMap;

examples/placeholder/linux/apps/app2/config.matter

+3-3
Original file line numberDiff line numberDiff line change
@@ -9540,13 +9540,13 @@ endpoint 1 {
95409540
ram attribute occupancy;
95419541
ram attribute occupancySensorType;
95429542
ram attribute occupancySensorTypeBitmap;
9543-
ram attribute PIROccupiedToUnoccupiedDelay default = 0x00;
9543+
callback attribute PIROccupiedToUnoccupiedDelay;
95449544
ram attribute PIRUnoccupiedToOccupiedDelay default = 0x00;
95459545
ram attribute PIRUnoccupiedToOccupiedThreshold default = 1;
9546-
ram attribute ultrasonicOccupiedToUnoccupiedDelay default = 0x00;
9546+
callback attribute ultrasonicOccupiedToUnoccupiedDelay;
95479547
ram attribute ultrasonicUnoccupiedToOccupiedDelay default = 0x00;
95489548
ram attribute ultrasonicUnoccupiedToOccupiedThreshold default = 1;
9549-
ram attribute physicalContactOccupiedToUnoccupiedDelay default = 0x00;
9549+
callback attribute physicalContactOccupiedToUnoccupiedDelay;
95509550
ram attribute physicalContactUnoccupiedToOccupiedDelay default = 0x00;
95519551
ram attribute physicalContactUnoccupiedToOccupiedThreshold default = 1;
95529552
callback attribute featureMap;

src/app/clusters/occupancy-sensor-server/occupancy-sensor-server.cpp

+6-8
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,12 @@ CHIP_ERROR Instance::Read(const ConcreteReadAttributePath & aPath, AttributeValu
5959
case Attributes::FeatureMap::Id:
6060
ReturnErrorOnFailure(aEncoder.Encode(mFeature));
6161
break;
62-
case Attributes::HoldTime::Id: {
63-
62+
case Attributes::HoldTime::Id:
63+
case Attributes::PIROccupiedToUnoccupiedDelay::Id:
64+
case Attributes::UltrasonicOccupiedToUnoccupiedDelay::Id:
65+
case Attributes::PhysicalContactOccupiedToUnoccupiedDelay::Id: {
66+
// HoldTime is equivalent to the legacy *OccupiedToUnoccupiedDelay attributes.
67+
// The AAI will read/write these attributes at the same storage for one endpoint.
6468
uint16_t * holdTime = GetHoldTimeForEndpoint(aPath.mEndpointId);
6569

6670
if (holdTime == nullptr)
@@ -190,12 +194,6 @@ CHIP_ERROR SetHoldTime(EndpointId endpointId, uint16_t newHoldTime)
190194
MatterReportingAttributeChangeCallback(endpointId, OccupancySensing::Id, Attributes::HoldTime::Id);
191195
}
192196

193-
// Blindly try to write RAM-backed legacy attributes (will fail silently if absent)
194-
// to keep them in sync.
195-
(void) Attributes::PIROccupiedToUnoccupiedDelay::Set(endpointId, newHoldTime);
196-
(void) Attributes::UltrasonicOccupiedToUnoccupiedDelay::Set(endpointId, newHoldTime);
197-
(void) Attributes::PhysicalContactOccupiedToUnoccupiedDelay::Set(endpointId, newHoldTime);
198-
199197
return CHIP_NO_ERROR;
200198
}
201199

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

+8-1
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,14 @@
294294
"ClientsSupportedPerFabric",
295295
"MaximumCheckInBackOff"
296296
],
297-
"Occupancy Sensing": ["HoldTimeLimits", "HoldTime", "FeatureMap"],
297+
"Occupancy Sensing": [
298+
"HoldTimeLimits",
299+
"HoldTime",
300+
"PIROccupiedToUnoccupiedDelay",
301+
"UltrasonicOccupiedToUnoccupiedDelay",
302+
"PhysicalContactOccupiedToUnoccupiedDelay",
303+
"FeatureMap"
304+
],
298305
"Operational Credentials": [
299306
"SupportedFabrics",
300307
"CommissionedFabrics",

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

+8-1
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,14 @@
288288
"ClientsSupportedPerFabric",
289289
"MaximumCheckInBackOff"
290290
],
291-
"Occupancy Sensing": ["HoldTimeLimits", "HoldTime", "FeatureMap"],
291+
"Occupancy Sensing": [
292+
"HoldTimeLimits",
293+
"HoldTime",
294+
"PIROccupiedToUnoccupiedDelay",
295+
"UltrasonicOccupiedToUnoccupiedDelay",
296+
"PhysicalContactOccupiedToUnoccupiedDelay",
297+
"FeatureMap"
298+
],
292299
"Operational Credentials": [
293300
"SupportedFabrics",
294301
"CommissionedFabrics",

zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp

-141
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h

-18
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)