Skip to content

Commit

Permalink
Update the cluster revision of the thermostat cluster to 7 (including… (
Browse files Browse the repository at this point in the history
project-chip#34890)

* Update the cluster revision of the thermostat cluster to 7 (including Presets feature)

- Update the YAML file accordingly

* Fix the PICS condition for reading Presets and schedules attribute

- Disable the PICS code for Schedules feature and attribute since it is not implemented yet.

* Add PICS code for schedules feature to PICS.yaml

* Update the PICs code for atomic request from TSTAT.S.CFE.Rsp to TSTAT.S.Cfe.Rsp to follow convention

---------

Co-authored-by: Justin Wood <[email protected]>
  • Loading branch information
nivi-apple and woody-apple authored Aug 9, 2024
1 parent c0b140b commit 8423257
Show file tree
Hide file tree
Showing 9 changed files with 30 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9071,7 +9071,7 @@ endpoint 1 {
callback attribute eventList;
callback attribute attributeList;
ram attribute featureMap default = 0x0123;
ram attribute clusterRevision default = 6;
ram attribute clusterRevision default = 7;

handle command SetpointRaiseLower;
handle command SetActiveScheduleRequest;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16918,7 +16918,7 @@
"storageOption": "RAM",
"singleton": 0,
"bounded": 0,
"defaultValue": "6",
"defaultValue": "7",
"reportable": 1,
"minInterval": 0,
"maxInterval": 65344,
Expand Down
2 changes: 1 addition & 1 deletion examples/thermostat/thermostat-common/thermostat.matter
Original file line number Diff line number Diff line change
Expand Up @@ -2801,7 +2801,7 @@ endpoint 1 {
callback attribute acceptedCommandList;
callback attribute attributeList;
ram attribute featureMap default = 0x123;
ram attribute clusterRevision default = 6;
ram attribute clusterRevision default = 7;

handle command SetpointRaiseLower;
handle command SetActiveScheduleRequest;
Expand Down
2 changes: 1 addition & 1 deletion examples/thermostat/thermostat-common/thermostat.zap
Original file line number Diff line number Diff line change
Expand Up @@ -5088,7 +5088,7 @@
"storageOption": "RAM",
"singleton": 0,
"bounded": 0,
"defaultValue": "6",
"defaultValue": "7",
"reportable": 1,
"minInterval": 0,
"maxInterval": 65344,
Expand Down
7 changes: 5 additions & 2 deletions src/app/tests/suites/certification/PICS.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6525,7 +6525,7 @@ PICS:
- label:
"Does the device implement receiving the AtomicRequest command for
Thermostat?"
id: TSTAT.S.CFE.Rsp
id: TSTAT.S.Cfe.Rsp

#
# server / commandsGenerated
Expand Down Expand Up @@ -6567,6 +6567,9 @@ PICS:
- label: "Supports a local temperature not exposed"
id: TSTAT.S.F06

- label: "Supports enhanced schedules"
id: TSTAT.S.F07

- label: "Supports setpoint presets"
id: TSTAT.S.F08

Expand Down Expand Up @@ -6616,7 +6619,7 @@ PICS:
id: TSTAT.C.C06.Tx

- label: "Does the device implement sending the AtomicRequest command?"
id: TSTAT.C.CFE.Tx
id: TSTAT.C.Cfe.Tx

#
# client / manually
Expand Down
2 changes: 1 addition & 1 deletion src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ tests:
command: "readAttribute"
attribute: "ClusterRevision"
response:
value: 6
value: 7
constraints:
type: int16u

Expand Down
10 changes: 5 additions & 5 deletions src/app/tests/suites/certification/Test_TC_TSTAT_4_1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,39 +70,39 @@ tests:
saveAs: SchedulesValue

- label: "Step 2: TH reads the PresetTypes attribute from the DUT"
PICS: TSTAT.S.F08 & TSTAT.S.A0048
PICS: TSTAT.S.F08 && TSTAT.S.A0048
command: "readAttribute"
attribute: "PresetTypes"
response:
constraints:
type: list

- label: "Step 3: TH reads the NumberOfPresets attribute from the DUT"
PICS: TSTAT.S.F08 & TSTAT.S.A004a
PICS: TSTAT.S.F08 && TSTAT.S.A004a
command: "readAttribute"
attribute: "NumberOfPresets"
response:
constraints:
type: int8u

- label: "Step 4: TH reads the ActivePresetHandle attribute from the DUT"
PICS: TSTAT.S.F08 & TSTAT.S.A004e
PICS: TSTAT.S.F08 && TSTAT.S.A004e
command: "readAttribute"
attribute: "ActivePresetHandle"
response:
constraints:
type: octstr

- label: "Step 5: TH reads the Presets attribute from the DUT"
PICS: TSTAT.S.F08 & TSTAT.S.A0050
PICS: TSTAT.S.F08 && TSTAT.S.A0050
command: "readAttribute"
attribute: "Presets"
response:
constraints:
type: list

- label: "Step 6: TH reads the Schedules attribute from the DUT"
PICS: TSTAT.S.F07 & TSTAT.S.A0051
PICS: TSTAT.S.F07 && TSTAT.S.A0051
command: "readAttribute"
attribute: "Schedules"
response:
Expand Down
7 changes: 4 additions & 3 deletions src/app/tests/suites/certification/ci-pics-values
Original file line number Diff line number Diff line change
Expand Up @@ -1931,6 +1931,7 @@ TSTAT.S.F03=0
TSTAT.S.F04=0
TSTAT.S.F05=1
TSTAT.S.F06=0
TSTAT.S.F07=0
TSTAT.S.F08=1

TSTAT.S.A0000=1
Expand Down Expand Up @@ -1987,7 +1988,7 @@ TSTAT.S.A0048=1
TSTAT.S.A004a=1
TSTAT.S.A004e=1
TSTAT.S.A0050=1
TSTAT.S.A0051=1
TSTAT.S.A0051=0

TSTAT.S.M.MinSetpointDeadBandWritable=1
TSTAT.S.M.HVACSystemTypeConfigurationWritable=0
Expand All @@ -1999,7 +2000,7 @@ TSTAT.S.C02.Rsp=0
TSTAT.S.C03.Rsp=0
TSTAT.S.C04.Rsp=0
TSTAT.S.C06.Rsp=1
TSTAT.S.CFE.Rsp=1
TSTAT.S.Cfe.Rsp=1
TSTAT.S.CFD.Tx=1

# Client
Expand All @@ -2016,7 +2017,7 @@ TSTAT.C.C03.Tx=0
TSTAT.S.C00.Tx=0
TSTAT.S.C01.Tx=0
TSTAT.C.C06.Tx=1
TSTAT.C.CFE.Tx=1
TSTAT.C.Cfe.Tx=1

# Client Commands
TSTAT.C.C00.Tx=1
Expand Down
21 changes: 11 additions & 10 deletions src/python_testing/TC_TSTAT_4_2.py
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ async def test_TC_TSTAT_4_2(self):
await self.write_presets(endpoint=endpoint, presets=new_presets, expected_status=Status.InvalidInState)

self.step("3")

if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.CFE.Rsp")):
await self.send_atomic_request_begin_command()

Expand All @@ -239,7 +240,7 @@ async def test_TC_TSTAT_4_2(self):
asserts.assert_equal(presets, initial_presets, "Presets were updated which is not expected")

self.step("4")
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.CFE.Rsp")):
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.Cfe.Rsp")):

# Send the AtomicRequest begin command
await self.send_atomic_request_begin_command()
Expand All @@ -256,7 +257,7 @@ async def test_TC_TSTAT_4_2(self):
asserts.assert_equal(presets, new_presets_with_handle, "Presets were not updated which is not expected")

self.step("5")
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.CFE.Rsp")):
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.Cfe.Rsp")):

# Send the AtomicRequest begin command
await self.send_atomic_request_begin_command()
Expand All @@ -270,7 +271,7 @@ async def test_TC_TSTAT_4_2(self):
await self.send_atomic_request_commit_command(expected_overall_status=Status.Failure, expected_preset_status=Status.ConstraintError)

self.step("6")
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.C06.Rsp") and self.check_pics("TSTAT.S.CFE.Rsp")):
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.C06.Rsp") and self.check_pics("TSTAT.S.Cfe.Rsp")):

# Send the SetActivePresetRequest command
await self.send_set_active_preset_handle_request_command(value=b'\x03')
Expand All @@ -292,7 +293,7 @@ async def test_TC_TSTAT_4_2(self):
await self.send_atomic_request_commit_command(expected_overall_status=Status.Failure, expected_preset_status=Status.InvalidInState)

self.step("7")
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.CFE.Rsp")):
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.Cfe.Rsp")):

# Send the AtomicRequest begin command
await self.send_atomic_request_begin_command()
Expand All @@ -307,7 +308,7 @@ async def test_TC_TSTAT_4_2(self):
await self.send_atomic_request_rollback_command()

self.step("8")
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.CFE.Rsp")):
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.Cfe.Rsp")):

# Send the AtomicRequest begin command
await self.send_atomic_request_begin_command()
Expand All @@ -323,7 +324,7 @@ async def test_TC_TSTAT_4_2(self):
await self.send_atomic_request_rollback_command()

self.step("9")
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.CFE.Rsp")):
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.Cfe.Rsp")):

# Send the AtomicRequest begin command
await self.send_atomic_request_begin_command()
Expand All @@ -339,7 +340,7 @@ async def test_TC_TSTAT_4_2(self):
await self.send_atomic_request_rollback_command()

self.step("10")
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.CFE.Rsp")):
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.Cfe.Rsp")):

# Send the AtomicRequest begin command
await self.send_atomic_request_begin_command()
Expand All @@ -355,7 +356,7 @@ async def test_TC_TSTAT_4_2(self):
await self.send_atomic_request_rollback_command()

self.step("11")
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.CFE.Rsp")):
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.Cfe.Rsp")):

# Send the AtomicRequest begin command
await self.send_atomic_request_begin_command()
Expand All @@ -370,7 +371,7 @@ async def test_TC_TSTAT_4_2(self):
await self.send_atomic_request_rollback_command()

self.step("12")
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.CFE.Rsp")):
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.Cfe.Rsp")):

# Send the AtomicRequest begin command
await self.send_atomic_request_begin_command()
Expand All @@ -385,7 +386,7 @@ async def test_TC_TSTAT_4_2(self):
await self.send_atomic_request_rollback_command()

self.step("13")
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.CFE.Rsp")):
if self.pics_guard(self.check_pics("TSTAT.S.F08") and self.check_pics("TSTAT.S.A0050") and self.check_pics("TSTAT.S.Cfe.Rsp")):

# Send the AtomicRequest begin command
await self.send_atomic_request_begin_command()
Expand Down

0 comments on commit 8423257

Please sign in to comment.