Add test scripts for testing Presets attributes and commands for Thermostat cluster (#34614)
* Add test scripts for testing Presets attributes and commands for Thermostat cluster
* Fixes
* Fix Test_TC_TSTAT_4_2.yaml to parse correctly.
* Run zap regen with latest zap version
* Restyled by prettier-yaml
* Editorial fixes
* Restyle
* Add support to all clusters app to support Thermostat presets attributes and commands
* Addressed review comments
---------
Co-authored-by: Boris Zbarsky <bzbarsky@apple.com>
Co-authored-by: Restyled.io <commits@restyled.io>
diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
index c0c22fc..3dd2b0f 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
@@ -8813,14 +8813,23 @@
ram attribute minSetpointDeadBand default = 0x19;
ram attribute controlSequenceOfOperation default = 0x04;
ram attribute systemMode default = 0x01;
+ callback attribute presetTypes;
+ ram attribute numberOfPresets default = 0;
+ ram attribute activePresetHandle;
+ callback attribute presets;
+ ram attribute presetsSchedulesEditable;
callback attribute generatedCommandList;
callback attribute acceptedCommandList;
callback attribute eventList;
callback attribute attributeList;
- ram attribute featureMap default = 0x0023;
+ ram attribute featureMap default = 0x0123;
ram attribute clusterRevision default = 6;
handle command SetpointRaiseLower;
+ handle command SetActivePresetRequest;
+ handle command StartPresetsSchedulesEditRequest;
+ handle command CancelPresetsSchedulesEditRequest;
+ handle command CommitPresetsSchedulesRequest;
}
server cluster FanControl {
diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
index 31b6a05..a052433 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
@@ -16393,6 +16393,38 @@
"source": "client",
"isIncoming": 1,
"isEnabled": 1
+ },
+ {
+ "name": "SetActivePresetRequest",
+ "code": 6,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ },
+ {
+ "name": "StartPresetsSchedulesEditRequest",
+ "code": 7,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ },
+ {
+ "name": "CancelPresetsSchedulesEditRequest",
+ "code": 8,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ },
+ {
+ "name": "CommitPresetsSchedulesRequest",
+ "code": 9,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
}
],
"attributes": [
@@ -16637,6 +16669,86 @@
"reportableChange": 0
},
{
+ "name": "PresetTypes",
+ "code": 72,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "NumberOfPresets",
+ "code": 74,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int8u",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "ActivePresetHandle",
+ "code": 78,
+ "mfgCode": null,
+ "side": "server",
+ "type": "octet_string",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "Presets",
+ "code": 80,
+ "mfgCode": null,
+ "side": "server",
+ "type": "array",
+ "included": 1,
+ "storageOption": "External",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
+ "name": "PresetsSchedulesEditable",
+ "code": 82,
+ "mfgCode": null,
+ "side": "server",
+ "type": "boolean",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
"name": "GeneratedCommandList",
"code": 65528,
"mfgCode": null,
@@ -16710,7 +16822,7 @@
"storageOption": "RAM",
"singleton": 0,
"bounded": 0,
- "defaultValue": "0x0023",
+ "defaultValue": "0x0123",
"reportable": 1,
"minInterval": 0,
"maxInterval": 65344,
@@ -26554,4 +26666,4 @@
"parentEndpointIdentifier": null
}
]
-}
+}
\ No newline at end of file
diff --git a/examples/all-clusters-app/linux/BUILD.gn b/examples/all-clusters-app/linux/BUILD.gn
index e8671e7..c7c5fb0 100644
--- a/examples/all-clusters-app/linux/BUILD.gn
+++ b/examples/all-clusters-app/linux/BUILD.gn
@@ -75,6 +75,7 @@
"${chip_root}/examples/energy-management-app/energy-management-common/src/EnergyTimeUtils.cpp",
"${chip_root}/examples/energy-management-app/energy-management-common/src/device-energy-management-mode.cpp",
"${chip_root}/examples/energy-management-app/energy-management-common/src/energy-evse-mode.cpp",
+ "${chip_root}/examples/thermostat/linux/thermostat-delegate-impl.cpp",
"AllClustersCommandDelegate.cpp",
"AllClustersCommandDelegate.h",
"AppOptions.cpp",
@@ -98,6 +99,7 @@
include_dirs = [
"${chip_root}/examples/all-clusters-app/all-clusters-common/include",
"${chip_root}/examples/energy-management-app/energy-management-common/include",
+ "${chip_root}/examples/thermostat/linux/include",
]
if (chip_enable_pw_rpc) {
diff --git a/examples/all-clusters-app/linux/main-common.cpp b/examples/all-clusters-app/linux/main-common.cpp
index bc547d5..edddc6a 100644
--- a/examples/all-clusters-app/linux/main-common.cpp
+++ b/examples/all-clusters-app/linux/main-common.cpp
@@ -37,6 +37,7 @@
#include "rvc-modes.h"
#include "rvc-operational-state-delegate-impl.h"
#include "tcc-mode.h"
+#include "thermostat-delegate-impl.h"
#include "water-heater-mode.h"
#include <Options.h>
#include <app-common/zap-generated/attributes/Accessors.h>
@@ -46,6 +47,7 @@
#include <app/clusters/laundry-dryer-controls-server/laundry-dryer-controls-server.h>
#include <app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.h>
#include <app/clusters/mode-base-server/mode-base-server.h>
+#include <app/clusters/thermostat-server/thermostat-server.h>
#include <app/clusters/time-synchronization-server/time-synchronization-server.h>
#include <app/clusters/valve-configuration-and-control-server/valve-configuration-and-control-server.h>
#include <app/server/Server.h>
@@ -323,3 +325,12 @@
DiagnosticLogsServer::Instance().SetDiagnosticLogsProviderDelegate(endpoint, &logProvider);
}
+
+using namespace chip::app::Clusters::Thermostat;
+void emberAfThermostatClusterInitCallback(EndpointId endpoint)
+{
+ // Register the delegate for the Thermostat
+ auto & delegate = ThermostatDelegate::GetInstance();
+
+ SetDefaultDelegate(endpoint, &delegate);
+}
diff --git a/examples/thermostat/thermostat-common/thermostat.matter b/examples/thermostat/thermostat-common/thermostat.matter
index 3552c9b..dc26361 100644
--- a/examples/thermostat/thermostat-common/thermostat.matter
+++ b/examples/thermostat/thermostat-common/thermostat.matter
@@ -2561,6 +2561,7 @@
ram attribute absMaxHeatSetpointLimit default = 3000;
ram attribute absMinCoolSetpointLimit default = 1600;
ram attribute absMaxCoolSetpointLimit default = 3200;
+ ram attribute localTemperatureCalibration default = 0x00;
persist attribute occupiedCoolingSetpoint default = 0x0A28;
persist attribute occupiedHeatingSetpoint default = 0x07D0;
ram attribute minHeatSetpointLimit default = 700;
diff --git a/examples/thermostat/thermostat-common/thermostat.zap b/examples/thermostat/thermostat-common/thermostat.zap
index 483b79d..e907730 100644
--- a/examples/thermostat/thermostat-common/thermostat.zap
+++ b/examples/thermostat/thermostat-common/thermostat.zap
@@ -4775,6 +4775,22 @@
"reportableChange": 0
},
{
+ "name": "LocalTemperatureCalibration",
+ "code": 16,
+ "mfgCode": null,
+ "side": "server",
+ "type": "int8s",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x00",
+ "reportable": 1,
+ "minInterval": 1,
+ "maxInterval": 65534,
+ "reportableChange": 0
+ },
+ {
"name": "OccupiedCoolingSetpoint",
"code": 17,
"mfgCode": null,
diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml
index af0aa58..169d568 100644
--- a/src/app/tests/suites/certification/PICS.yaml
+++ b/src/app/tests/suites/certification/PICS.yaml
@@ -6422,6 +6422,21 @@
- label: "Does the device implement the ACCapacityFormat attribute?"
id: TSTAT.S.A0047
+ - label: "Does the device implement the PresetTypes attribute?"
+ id: TSTAT.S.A0048
+
+ - label: "Does the device implement the NumberOfPresets attribute?"
+ id: TSTAT.S.A004a
+
+ - label: "Does the device implement the ActivePresetHandle attribute?"
+ id: TSTAT.S.A004e
+
+ - label: "Does the device implement the Presets attribute?"
+ id: TSTAT.S.A0050
+
+ - label: "Does the device implement the PresetsSchedulesEditable attribute?"
+ id: TSTAT.S.A0052
+
#
# server / commandsReceived
#
@@ -6445,6 +6460,26 @@
"Does the device implement receiving the GetRelayStatusLog command?"
id: TSTAT.S.C04.Rsp
+ - label:
+ "Does the device implement receiving the SetActivePresetRequest
+ command?"
+ id: TSTAT.S.C06.Rsp
+
+ - label:
+ "Does the device implement receiving the
+ StartPresetsSchedulesEditRequest command?"
+ id: TSTAT.S.C07.Rsp
+
+ - label:
+ "Does the device implement receiving the
+ CancelPresetsSchedulesEditRequest command?"
+ id: TSTAT.S.C08.Rsp
+
+ - label:
+ "Does the device implement receiving the CommitPresetsSchedulesRequest
+ command?"
+ id: TSTAT.S.C09.Rsp
+
#
# server / commandsGenerated
#
@@ -6482,6 +6517,9 @@
- label: "Supports a local temperature not exposed"
id: TSTAT.S.F06
+ - label: "Supports setpoint presets"
+ id: TSTAT.S.F08
+
#
# server / manually
#
@@ -6523,6 +6561,25 @@
- label: "Does the device implement sending the GetRelayStatusLog command?"
id: TSTAT.C.C04.Tx
+ - label:
+ "Does the device implement sending the SetActivePresetRequest command?"
+ id: TSTAT.C.C06.Tx
+
+ - label:
+ "Does the device implement sending the
+ StartPresetsSchedulesEditRequest command?"
+ id: TSTAT.C.C07.Tx
+
+ - label:
+ "Does the device implement sending the
+ CancelPresetsSchedulesEditRequest command?"
+ id: TSTAT.C.C08.Tx
+
+ - label:
+ "Does the device implement sending the CommitPresetsSchedulesRequest
+ command?"
+ id: TSTAT.C.C09.Tx
+
#
# client / manually
#
diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml
index b2bf2a1..40a65d7 100644
--- a/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml
@@ -129,6 +129,17 @@
type: bitmap32
hasMasksSet: [0x40]
+ - label:
+ "Step 3i: Given TSTAT.S.F08(PRES ensure featuremap has the correct bit
+ set"
+ PICS: TSTAT.S.F08
+ command: "readAttribute"
+ attribute: "FeatureMap"
+ response:
+ constraints:
+ type: bitmap32
+ hasMasksSet: [0x100]
+
- label: "Step 4a: TH reads from the DUT the AttributeList attribute."
PICS: PICS_EVENT_LIST_ENABLED
command: "readAttribute"
@@ -555,6 +566,17 @@
type: list
contains: [30]
+ - label:
+ "Step 4j: TH reads the Feature dependent(TSTAT.S.F08(PRES) attribute
+ in AttributeList"
+ PICS: TSTAT.S.F08
+ command: "readAttribute"
+ attribute: "AttributeList"
+ response:
+ constraints:
+ type: list
+ contains: [72, 74, 78, 80, 82]
+
- label: "Step 5: TH reads EventList attribute from the DUT."
PICS: PICS_EVENT_LIST_ENABLED
command: "readAttribute"
@@ -593,6 +615,16 @@
constraints:
type: list
contains: [4]
+ - label:
+ "Step 6d: TH reads Feature dependent(TSTAT.S.F08(PRES)) commands in
+ AcceptedCommandList"
+ PICS: TSTAT.S.F08
+ command: "readAttribute"
+ attribute: "AcceptedCommandList"
+ response:
+ constraints:
+ type: list
+ contains: [6, 7, 8, 9]
- label:
"Step 7a: TH reads from the DUT the GeneratedCommandList attribute."
diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_4_1.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_4_1.yaml
new file mode 100644
index 0000000..9785c8b
--- /dev/null
+++ b/src/app/tests/suites/certification/Test_TC_TSTAT_4_1.yaml
@@ -0,0 +1,113 @@
+# Copyright (c) 2024 Project CHIP Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: 42.4.1. [TC-TSTAT-4.1] Preset attributes with server as DUT
+
+PICS:
+ - TSTAT.S
+
+config:
+ nodeId: 0x12344321
+ cluster: "Thermostat"
+ endpoint: 1
+
+tests:
+ - label: "Step 1: Commission DUT to TH"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId
+
+ - label: "Saving value for comparision in step 2 read PresetTypes attribute"
+ PICS: TSTAT.S.A0048
+ command: "readAttribute"
+ attribute: "PresetTypes"
+ response:
+ saveAs: PresetTypesValue
+
+ - label:
+ "Saving value for comparision in step 3 read NumberOfPresets attribute"
+ PICS: TSTAT.S.A004a
+ command: "readAttribute"
+ attribute: "NumberOfPresets"
+ response:
+ saveAs: NumberOfPresetsValue
+
+ - label:
+ "Saving value for comparision in step 4 read ActivePresetHandleValue
+ attribute"
+ PICS: TSTAT.S.A004e
+ command: "readAttribute"
+ attribute: "ActivePresetHandle"
+ response:
+ saveAs: ActivePresetHandleValue
+
+ - label: "Saving value for comparision in step 5 read Presets attribute"
+ PICS: TSTAT.S.A0050
+ command: "readAttribute"
+ attribute: "Presets"
+ response:
+ saveAs: PresetsValue
+
+ - label:
+ "Saving value for comparision in step 6 read PresetsSchedulesEditable
+ attribute"
+ PICS: TSTAT.S.A0052
+ command: "readAttribute"
+ attribute: "PresetsSchedulesEditable"
+ response:
+ saveAs: PresetsSchedulesEditableValue
+
+ - label: "Step 2: TH reads the PresetTypes attribute from the DUT"
+ 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
+ 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
+ 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
+ command: "readAttribute"
+ attribute: "Presets"
+ response:
+ constraints:
+ type: list
+
+ - label:
+ "Step 6: TH reads the PresetsSchedulesEditable attribute from the DUT"
+ PICS: TSTAT.S.F08 & TSTAT.S.A0052
+ command: "readAttribute"
+ attribute: "PresetsSchedulesEditable"
+ response:
+ constraints:
+ type: boolean
diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_4_2.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_4_2.yaml
new file mode 100644
index 0000000..b813eaf
--- /dev/null
+++ b/src/app/tests/suites/certification/Test_TC_TSTAT_4_2.yaml
@@ -0,0 +1,2228 @@
+# Copyright (c) 2024 Project CHIP Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: 42.4.2. [TC-TSTAT-4.2] Preset Test Cases with server as DUT
+
+PICS:
+ - TSTAT.S
+
+config:
+ nodeId: 0x12344321
+ cluster: "Thermostat"
+ endpoint: 1
+
+tests:
+ - label: "Step 1: Commission DUT to TH"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId
+
+ - label:
+ "Step 2: Test Harness writes to the Presets attribute without calling
+ the StartPresetsSchedulesEditRequest"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #2 Test Harness Client attempts to write Presets and gets an INVALID_IN_STATE error since the client didn't send a request to edit the presets by calling StartPresetsSchedulesEditRequest command.
+ ./chip-tool thermostat write presets '[ {"presetHandle": "hex:01", "presetScenario": 1, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": true }, {"presetHandle": "hex:02", "presetScenario": 2, "coolingSetpoint": 2600, "heatingSetpoint": 2500, "builtIn": true }, {"presetHandle": null, "name": "Sleep", "presetScenario": 3, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": false }]' 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a INVALID_IN_STATE (0xCB)
+
+ [1722285385.263] [53729:5380292] [DMG] WriteClient moving to [AwaitingDe]
+ [1722285385.263] [53729:5380292] [TOO] Response Failure: IM Error 0x000005CB: General error: 0xcb (INVALID_IN_STATE)
+ [1722285385.263] [53729:5380292] [EM] <<< [E:42658i S:21691 M:14088666 (Ack:20978215)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722285385.263] [53729:5380292] [EM] Flushed pending ack for MessageCounter:20978215 on exchange 42658i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 3a: Test Harness writes to the Presets attribute after calling
+ the StartPresetsSchedulesEditRequest command"
+ PICS: TSTAT.S.F08 && TSTAT.S.C07.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #3a Test Harness Client calls StartPresetsSchedulesEditRequest command
+
+ ./chip-tool thermostat start-presets-schedules-edit-request 180 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722286001.805] [54149:5392862] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0007 Status=0x0
+ [1722286001.805] [54149:5392862] [DMG] ICR moving to [AwaitingDe]
+ [1722286001.805] [54149:5392862] [EM] <<< [E:7545i S:16937 M:144975449 (Ack:93571372)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722286001.806] [54149:5392862] [EM] Flushed pending ack for MessageCounter:93571372 on exchange 7545i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 3b: Test Harness writes to the Presets attribute adding 3
+ presets for Sleep, Wake and GoingToSleep"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #3b Test Harness Client attempts to write Presets and gets SUCCESS
+
+ ./chip-tool thermostat write presets '[ {"presetHandle": "hex:01", "presetScenario": 1, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": true }, {"presetHandle": "hex:02", "presetScenario": 2, "coolingSetpoint": 2600, "heatingSetpoint": 2500, "builtIn": true }, {"presetHandle": null, "name": "Sleep", "presetScenario": 3, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": false }, {"presetHandle": null, "name": "Wake", "presetScenario": 4, "coolingSetpoint": 2200, "heatingSetpoint": 2900, "builtIn": false }, {"presetHandle": null, "name": "GoingToSleep", "presetScenario": 6, "coolingSetpoint": 2100, "heatingSetpoint": 2500, "builtIn": false }]' 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722286250.503] [54321:5397545] [DMG] WriteClient moving to [ResponseRe]
+ [1722286250.503] [54321:5397545] [DMG] WriteResponseMessage =
+ [1722286250.503] [54321:5397545] [DMG] {
+ [1722286250.503] [54321:5397545] [DMG] AttributeStatusIBs =
+ [1722286250.503] [54321:5397545] [DMG] [
+ [1722286250.503] [54321:5397545] [DMG] AttributeStatusIB =
+ [1722286250.503] [54321:5397545] [DMG] {
+ [1722286250.503] [54321:5397545] [DMG] AttributePathIB =
+ [1722286250.503] [54321:5397545] [DMG] {
+ [1722286250.503] [54321:5397545] [DMG] Endpoint = 0x1,
+ [1722286250.503] [54321:5397545] [DMG] Cluster = 0x201,
+ [1722286250.503] [54321:5397545] [DMG] Attribute = 0x0000_0050,
+ [1722286250.503] [54321:5397545] [DMG] }
+ [1722286250.503] [54321:5397545] [DMG]
+ [1722286250.503] [54321:5397545] [DMG] StatusIB =
+ [1722286250.503] [54321:5397545] [DMG] {
+ [1722286250.503] [54321:5397545] [DMG] status = 0x00 (SUCCESS),
+ [1722286250.503] [54321:5397545] [DMG] },
+ [1722286250.503] [54321:5397545] [DMG]
+ [1722286250.503] [54321:5397545] [DMG] },
+ [1722286250.503] [54321:5397545] [DMG]
+ [1722286250.503] [54321:5397545] [DMG] AttributeStatusIB =
+ [1722286250.503] [54321:5397545] [DMG] {
+ [1722286250.503] [54321:5397545] [DMG] AttributePathIB =
+ [1722286250.503] [54321:5397545] [DMG] {
+ [1722286250.503] [54321:5397545] [DMG] Endpoint = 0x1,
+ [1722286250.503] [54321:5397545] [DMG] Cluster = 0x201,
+ [1722286250.503] [54321:5397545] [DMG] Attribute = 0x0000_0050,
+ [1722286250.503] [54321:5397545] [DMG] ListIndex = Null,
+ [1722286250.503] [54321:5397545] [DMG] }
+ [1722286250.503] [54321:5397545] [DMG]
+ [1722286250.503] [54321:5397545] [DMG] StatusIB =
+ [1722286250.503] [54321:5397545] [DMG] {
+ [1722286250.503] [54321:5397545] [DMG] status = 0x00 (SUCCESS),
+ [1722286250.503] [54321:5397545] [DMG] },
+ [1722286250.503] [54321:5397545] [DMG]
+ [1722286250.503] [54321:5397545] [DMG] },
+ [1722286250.503] [54321:5397545] [DMG]
+ [1722286250.503] [54321:5397545] [DMG] AttributeStatusIB =
+ [1722286250.503] [54321:5397545] [DMG] {
+ [1722286250.503] [54321:5397545] [DMG] AttributePathIB =
+ [1722286250.503] [54321:5397545] [DMG] {
+ [1722286250.503] [54321:5397545] [DMG] Endpoint = 0x1,
+ [1722286250.503] [54321:5397545] [DMG] Cluster = 0x201,
+ [1722286250.503] [54321:5397545] [DMG] Attribute = 0x0000_0050,
+ [1722286250.503] [54321:5397545] [DMG] ListIndex = Null,
+ [1722286250.503] [54321:5397545] [DMG] }
+ [1722286250.503] [54321:5397545] [DMG]
+ [1722286250.503] [54321:5397545] [DMG] StatusIB =
+ [1722286250.504] [54321:5397545] [DMG] {
+ [1722286250.504] [54321:5397545] [DMG] status = 0x00 (SUCCESS),
+ [1722286250.504] [54321:5397545] [DMG] },
+ [1722286250.504] [54321:5397545] [DMG]
+ [1722286250.504] [54321:5397545] [DMG] },
+ [1722286250.504] [54321:5397545] [DMG]
+ [1722286250.504] [54321:5397545] [DMG] AttributeStatusIB =
+ [1722286250.504] [54321:5397545] [DMG] {
+ [1722286250.504] [54321:5397545] [DMG] AttributePathIB =
+ [1722286250.504] [54321:5397545] [DMG] {
+ [1722286250.504] [54321:5397545] [DMG] Endpoint = 0x1,
+ [1722286250.504] [54321:5397545] [DMG] Cluster = 0x201,
+ [1722286250.504] [54321:5397545] [DMG] Attribute = 0x0000_0050,
+ [1722286250.504] [54321:5397545] [DMG] ListIndex = Null,
+ [1722286250.504] [54321:5397545] [DMG] }
+ [1722286250.504] [54321:5397545] [DMG]
+ [1722286250.504] [54321:5397545] [DMG] StatusIB =
+ [1722286250.504] [54321:5397545] [DMG] {
+ [1722286250.504] [54321:5397545] [DMG] status = 0x00 (SUCCESS),
+ [1722286250.504] [54321:5397545] [DMG] },
+ [1722286250.504] [54321:5397545] [DMG]
+ [1722286250.504] [54321:5397545] [DMG] },
+ [1722286250.504] [54321:5397545] [DMG]
+ [1722286250.504] [54321:5397545] [DMG] AttributeStatusIB =
+ [1722286250.504] [54321:5397545] [DMG] {
+ [1722286250.504] [54321:5397545] [DMG] AttributePathIB =
+ [1722286250.504] [54321:5397545] [DMG] {
+ [1722286250.504] [54321:5397545] [DMG] Endpoint = 0x1,
+ [1722286250.504] [54321:5397545] [DMG] Cluster = 0x201,
+ [1722286250.504] [54321:5397545] [DMG] Attribute = 0x0000_0050,
+ [1722286250.504] [54321:5397545] [DMG] ListIndex = Null,
+ [1722286250.504] [54321:5397545] [DMG] }
+ [1722286250.504] [54321:5397545] [DMG]
+ [1722286250.504] [54321:5397545] [DMG] StatusIB =
+ [1722286250.504] [54321:5397545] [DMG] {
+ [1722286250.504] [54321:5397545] [DMG] status = 0x00 (SUCCESS),
+ [1722286250.504] [54321:5397545] [DMG] },
+ [1722286250.504] [54321:5397545] [DMG]
+ [1722286250.504] [54321:5397545] [DMG] },
+ [1722286250.504] [54321:5397545] [DMG]
+ [1722286250.504] [54321:5397545] [DMG] AttributeStatusIB =
+ [1722286250.504] [54321:5397545] [DMG] {
+ [1722286250.504] [54321:5397545] [DMG] AttributePathIB =
+ [1722286250.504] [54321:5397545] [DMG] {
+ [1722286250.504] [54321:5397545] [DMG] Endpoint = 0x1,
+ [1722286250.504] [54321:5397545] [DMG] Cluster = 0x201,
+ [1722286250.504] [54321:5397545] [DMG] Attribute = 0x0000_0050,
+ [1722286250.504] [54321:5397545] [DMG] ListIndex = Null,
+ [1722286250.504] [54321:5397545] [DMG] }
+ [1722286250.504] [54321:5397545] [DMG]
+ [1722286250.504] [54321:5397545] [DMG] StatusIB =
+ [1722286250.504] [54321:5397545] [DMG] {
+ [1722286250.504] [54321:5397545] [DMG] status = 0x00 (SUCCESS),
+ [1722286250.504] [54321:5397545] [DMG] },
+ [1722286250.504] [54321:5397545] [DMG]
+ [1722286250.504] [54321:5397545] [DMG] },
+ [1722286250.504] [54321:5397545] [DMG]
+ [1722286250.504] [54321:5397545] [DMG] ],
+ [1722286250.504] [54321:5397545] [DMG]
+ [1722286250.504] [54321:5397545] [DMG] InteractionModelRevision = 11
+ [1722286250.504] [54321:5397545] [DMG] }
+ [1722286250.504] [54321:5397545] [DMG] WriteClient moving to [AwaitingDe]
+ [1722286250.504] [54321:5397545] [EM] <<< [E:14426i S:42250 M:116961408 (Ack:156984778)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722286250.504] [54321:5397545] [EM] Flushed pending ack for MessageCounter:156984778 on exchange 14426i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 3c: Test Harness reads the Presets attribute without calling
+ the CommitPresetsSchedulesRequest command"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #3c Test Harness Client reads Presets attribute but the new additions are not committed since the client didn't call the CommitPresetsSchedulesRequest command
+
+ ./chip-tool thermostat read presets 0x12344321 1
+ On TH(chip-tool) verify that DUT successfully read Presets (but without the new changes)
+ [1722286701.424] [54699:5406692] [TOO] Endpoint: 1 Cluster: 0x0000_0201 Attribute 0x0000_0050 DataVersion: 3807987049
+ [1722286701.425] [54699:5406692] [TOO] Presets: 2 entries
+ [1722286701.425] [54699:5406692] [TOO] [1]: {
+ [1722286701.425] [54699:5406692] [TOO] PresetHandle: 01
+ [1722286701.425] [54699:5406692] [TOO] PresetScenario: 1
+ [1722286701.425] [54699:5406692] [TOO] CoolingSetpoint: 2500
+ [1722286701.425] [54699:5406692] [TOO] HeatingSetpoint: 2100
+ [1722286701.426] [54699:5406692] [TOO] BuiltIn: TRUE
+ [1722286701.426] [54699:5406692] [TOO] }
+ [1722286701.426] [54699:5406692] [TOO] [2]: {
+ [1722286701.426] [54699:5406692] [TOO] PresetHandle: 02
+ [1722286701.426] [54699:5406692] [TOO] PresetScenario: 2
+ [1722286701.426] [54699:5406692] [TOO] CoolingSetpoint: 2600
+ [1722286701.426] [54699:5406692] [TOO] HeatingSetpoint: 2000
+ [1722286701.426] [54699:5406692] [TOO] BuiltIn: TRUE
+ [1722286701.426] [54699:5406692] [TOO] }
+ [1722286701.426] [54699:5406692] [EM] <<< [E:49759i S:37002 M:67372150 (Ack:254131025)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 3d: Test Harness calls the CommitPresetsSchedulesRequest
+ command"
+ PICS: TSTAT.S.F08 && TSTAT.S.C09.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #3d Test Harness Client calls CommitPresetsSchedulesRequest command
+
+ ./chip-tool thermostat commit-presets-schedules-request 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722287841.505] [55282:5425045] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0009 Status=0x0
+ [1722287841.505] [55282:5425045] [DMG] ICR moving to [AwaitingDe]
+ [1722287841.505] [55282:5425045] [EM] <<< [E:46441i S:57071 M:61366563 (Ack:138534230)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 3e: Test Harness reads the Presets attribute after calling the
+ CommitPresetsSchedulesRequest command"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #3e Test Harness Client reads Presets attribute and can see the added Presets.
+
+ ./chip-tool thermostat read presets 0x12344321 1
+ On TH(chip-tool) verify that DUT successfully read Presets (with the new changes)
+ [1722288101.757] [55446:5430009] [TOO] Endpoint: 1 Cluster: 0x0000_0201 Attribute 0x0000_0050 DataVersion: 3807987055
+ [1722288101.757] [55446:5430009] [TOO] Presets: 5 entries
+ [1722288101.758] [55446:5430009] [TOO] [1]: {
+ [1722288101.759] [55446:5430009] [TOO] PresetHandle: 01
+ [1722288101.759] [55446:5430009] [TOO] PresetScenario: 1
+ [1722288101.759] [55446:5430009] [TOO] CoolingSetpoint: 2500
+ [1722288101.759] [55446:5430009] [TOO] HeatingSetpoint: 2600
+ [1722288101.759] [55446:5430009] [TOO] BuiltIn: TRUE
+ [1722288101.759] [55446:5430009] [TOO] }
+ [1722288101.759] [55446:5430009] [TOO] [2]: {
+ [1722288101.759] [55446:5430009] [TOO] PresetHandle: 02
+ [1722288101.759] [55446:5430009] [TOO] PresetScenario: 2
+ [1722288101.759] [55446:5430009] [TOO] CoolingSetpoint: 2600
+ [1722288101.759] [55446:5430009] [TOO] HeatingSetpoint: 2500
+ [1722288101.759] [55446:5430009] [TOO] BuiltIn: TRUE
+ [1722288101.759] [55446:5430009] [TOO] }
+ [1722288101.759] [55446:5430009] [TOO] [3]: {
+ [1722288101.759] [55446:5430009] [TOO] PresetHandle: 03
+ [1722288101.759] [55446:5430009] [TOO] PresetScenario: 3
+ [1722288101.759] [55446:5430009] [TOO] Name: Sleep
+ [1722288101.759] [55446:5430009] [TOO] CoolingSetpoint: 2500
+ [1722288101.759] [55446:5430009] [TOO] HeatingSetpoint: 2600
+ [1722288101.759] [55446:5430009] [TOO] BuiltIn: FALSE
+ [1722288101.759] [55446:5430009] [TOO] }
+ [1722288101.759] [55446:5430009] [TOO] [4]: {
+ [1722288101.759] [55446:5430009] [TOO] PresetHandle: 04
+ [1722288101.759] [55446:5430009] [TOO] PresetScenario: 4
+ [1722288101.759] [55446:5430009] [TOO] Name: Wake
+ [1722288101.759] [55446:5430009] [TOO] CoolingSetpoint: 2200
+ [1722288101.759] [55446:5430009] [TOO] HeatingSetpoint: 2900
+ [1722288101.759] [55446:5430009] [TOO] BuiltIn: FALSE
+ [1722288101.759] [55446:5430009] [TOO] }
+ [1722288101.759] [55446:5430009] [TOO] [5]: {
+ [1722288101.759] [55446:5430009] [TOO] PresetHandle: 06
+ [1722288101.759] [55446:5430009] [TOO] PresetScenario: 6
+ [1722288101.759] [55446:5430009] [TOO] Name: GoingToSleep
+ [1722288101.759] [55446:5430009] [TOO] CoolingSetpoint: 2100
+ [1722288101.759] [55446:5430009] [TOO] HeatingSetpoint: 2500
+ [1722288101.759] [55446:5430009] [TOO] BuiltIn: FALSE
+ [1722288101.759] [55446:5430009] [TOO] }
+ [1722288101.759] [55446:5430009] [EM] <<< [E:64397i S:21821 M:262922240 (Ack:37271345)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722288101.760] [55446:5430009] [EM] Flushed pending ack for MessageCounter:37271345 on exchange 64397i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 4a: Test Harness calls the StartPresetsSchedulesEditRequest
+ command to edit presets"
+ PICS: TSTAT.S.F08 && TSTAT.S.C07.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #4a Test Harness Client calls StartPresetsSchedulesEditRequest command
+
+ ./chip-tool thermostat start-presets-schedules-edit-request 180 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722286001.805] [54149:5392862] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0007 Status=0x0
+ [1722286001.805] [54149:5392862] [DMG] ICR moving to [AwaitingDe]
+ [1722286001.805] [54149:5392862] [EM] <<< [E:7545i S:16937 M:144975449 (Ack:93571372)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722286001.806] [54149:5392862] [EM] Flushed pending ack for MessageCounter:93571372 on exchange 7545i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 4b: Test Harness writes to the Presets attribute with a
+ built-in preset having preset handle hex:01 removed"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #4b Test Harness Client attempts to write Presets and gets SUCCESS
+
+ ./chip-tool thermostat write presets '[ {"presetHandle": "hex:02", "presetScenario": 2, "coolingSetpoint": 2600, "heatingSetpoint": 2500, "builtIn": true }, {"presetHandle": "hex:03", "name": "Sleep", "presetScenario": 3, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": false }, {"presetHandle": "hex:04", "name": "Wake", "presetScenario": 4, "coolingSetpoint": 2200, "heatingSetpoint": 2900, "builtIn": false }, {"presetHandle": "hex:06", "name": "GoingToSleep", "presetScenario": 6, "coolingSetpoint": 2100, "heatingSetpoint": 2500, "builtIn": false }]' 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722288460.741] [55752:5437815] [DMG] WriteClient moving to [ResponseRe]
+ [1722288460.741] [55752:5437815] [DMG] WriteResponseMessage =
+ [1722288460.741] [55752:5437815] [DMG] {
+ [1722288460.741] [55752:5437815] [DMG] AttributeStatusIBs =
+ [1722288460.741] [55752:5437815] [DMG] [
+ [1722288460.741] [55752:5437815] [DMG] AttributeStatusIB =
+ [1722288460.741] [55752:5437815] [DMG] {
+ [1722288460.741] [55752:5437815] [DMG] AttributePathIB =
+ [1722288460.741] [55752:5437815] [DMG] {
+ [1722288460.741] [55752:5437815] [DMG] Endpoint = 0x1,
+ [1722288460.741] [55752:5437815] [DMG] Cluster = 0x201,
+ [1722288460.741] [55752:5437815] [DMG] Attribute = 0x0000_0050,
+ [1722288460.741] [55752:5437815] [DMG] }
+ [1722288460.741] [55752:5437815] [DMG]
+ [1722288460.741] [55752:5437815] [DMG] StatusIB =
+ [1722288460.741] [55752:5437815] [DMG] {
+ [1722288460.741] [55752:5437815] [DMG] status = 0x00 (SUCCESS),
+ [1722288460.741] [55752:5437815] [DMG] },
+ [1722288460.741] [55752:5437815] [DMG]
+ [1722288460.741] [55752:5437815] [DMG] },
+ [1722288460.741] [55752:5437815] [DMG]
+ [1722288460.741] [55752:5437815] [DMG] AttributeStatusIB =
+ [1722288460.741] [55752:5437815] [DMG] {
+ [1722288460.741] [55752:5437815] [DMG] AttributePathIB =
+ [1722288460.741] [55752:5437815] [DMG] {
+ [1722288460.741] [55752:5437815] [DMG] Endpoint = 0x1,
+ [1722288460.741] [55752:5437815] [DMG] Cluster = 0x201,
+ [1722288460.741] [55752:5437815] [DMG] Attribute = 0x0000_0050,
+ [1722288460.741] [55752:5437815] [DMG] ListIndex = Null,
+ [1722288460.741] [55752:5437815] [DMG] }
+ [1722288460.741] [55752:5437815] [DMG]
+ [1722288460.741] [55752:5437815] [DMG] StatusIB =
+ [1722288460.741] [55752:5437815] [DMG] {
+ [1722288460.741] [55752:5437815] [DMG] status = 0x00 (SUCCESS),
+ [1722288460.741] [55752:5437815] [DMG] },
+ [1722288460.741] [55752:5437815] [DMG]
+ [1722288460.741] [55752:5437815] [DMG] },
+ [1722288460.741] [55752:5437815] [DMG]
+ [1722288460.741] [55752:5437815] [DMG] AttributeStatusIB =
+ [1722288460.741] [55752:5437815] [DMG] {
+ [1722288460.741] [55752:5437815] [DMG] AttributePathIB =
+ [1722288460.741] [55752:5437815] [DMG] {
+ [1722288460.741] [55752:5437815] [DMG] Endpoint = 0x1,
+ [1722288460.741] [55752:5437815] [DMG] Cluster = 0x201,
+ [1722288460.741] [55752:5437815] [DMG] Attribute = 0x0000_0050,
+ [1722288460.741] [55752:5437815] [DMG] ListIndex = Null,
+ [1722288460.741] [55752:5437815] [DMG] }
+ [1722288460.741] [55752:5437815] [DMG]
+ [1722288460.741] [55752:5437815] [DMG] StatusIB =
+ [1722288460.741] [55752:5437815] [DMG] {
+ [1722288460.741] [55752:5437815] [DMG] status = 0x00 (SUCCESS),
+ [1722288460.741] [55752:5437815] [DMG] },
+ [1722288460.741] [55752:5437815] [DMG]
+ [1722288460.741] [55752:5437815] [DMG] },
+ [1722288460.741] [55752:5437815] [DMG]
+ [1722288460.741] [55752:5437815] [DMG] AttributeStatusIB =
+ [1722288460.741] [55752:5437815] [DMG] {
+ [1722288460.741] [55752:5437815] [DMG] AttributePathIB =
+ [1722288460.741] [55752:5437815] [DMG] {
+ [1722288460.742] [55752:5437815] [DMG] Endpoint = 0x1,
+ [1722288460.742] [55752:5437815] [DMG] Cluster = 0x201,
+ [1722288460.742] [55752:5437815] [DMG] Attribute = 0x0000_0050,
+ [1722288460.742] [55752:5437815] [DMG] ListIndex = Null,
+ [1722288460.742] [55752:5437815] [DMG] }
+ [1722288460.742] [55752:5437815] [DMG]
+ [1722288460.742] [55752:5437815] [DMG] StatusIB =
+ [1722288460.742] [55752:5437815] [DMG] {
+ [1722288460.742] [55752:5437815] [DMG] status = 0x00 (SUCCESS),
+ [1722288460.742] [55752:5437815] [DMG] },
+ [1722288460.742] [55752:5437815] [DMG]
+ [1722288460.742] [55752:5437815] [DMG] },
+ [1722288460.742] [55752:5437815] [DMG]
+ [1722288460.742] [55752:5437815] [DMG] AttributeStatusIB =
+ [1722288460.742] [55752:5437815] [DMG] {
+ [1722288460.742] [55752:5437815] [DMG] AttributePathIB =
+ [1722288460.742] [55752:5437815] [DMG] {
+ [1722288460.742] [55752:5437815] [DMG] Endpoint = 0x1,
+ [1722288460.742] [55752:5437815] [DMG] Cluster = 0x201,
+ [1722288460.742] [55752:5437815] [DMG] Attribute = 0x0000_0050,
+ [1722288460.742] [55752:5437815] [DMG] ListIndex = Null,
+ [1722288460.742] [55752:5437815] [DMG] }
+ [1722288460.742] [55752:5437815] [DMG]
+ [1722288460.742] [55752:5437815] [DMG] StatusIB =
+ [1722288460.742] [55752:5437815] [DMG] {
+ [1722288460.742] [55752:5437815] [DMG] status = 0x00 (SUCCESS),
+ [1722288460.742] [55752:5437815] [DMG] },
+ [1722288460.742] [55752:5437815] [DMG]
+ [1722288460.742] [55752:5437815] [DMG] },
+ [1722288460.742] [55752:5437815] [DMG]
+ [1722288460.742] [55752:5437815] [DMG] ],
+ [1722288460.742] [55752:5437815] [DMG]
+ [1722288460.742] [55752:5437815] [DMG] InteractionModelRevision = 11
+ [1722288460.742] [55752:5437815] [DMG] }
+ [1722288460.742] [55752:5437815] [DMG] WriteClient moving to [AwaitingDe]
+ [1722288460.742] [55752:5437815] [EM] <<< [E:10991i S:19292 M:9249657 (Ack:153811994)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 4c: Test Harness calls the CommitPresetsSchedulesRequest
+ command"
+ PICS: TSTAT.S.F08 && TSTAT.S.C09.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #4c Test Harness Client calls CommitPresetsSchedulesRequest command and gets UNSUPPORTED_ACCESS since a built-in preset was attempted to be removed.
+
+ ./chip-tool thermostat commit-presets-schedules-request 0x12344321 1
+ On TH(chip-tool) verify that DUT sends an UNSUPPORTED_ACCESS (0x7E) error
+ [1722288464.392] [55754:5437857] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0009 Status=0x7e
+ [1722288464.392] [55754:5437857] [TOO] Error: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS)
+ [1722288464.392] [55754:5437857] [DMG] ICR moving to [AwaitingDe]
+ [1722288464.392] [55754:5437857] [EM] <<< [E:45905i S:14600 M:175519796 (Ack:248690311)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 5a: Test Harness calls the SetActivePresetRequest command to
+ set the active preset handle"
+ PICS: TSTAT.S.F08 && TSTAT.S.C06.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #5a Test Harness Client calls SetActivePresetRequest command to set the active preset handle
+
+ ./chip-tool thermostat set-active-preset-request "hex:03" 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722292538.299] [58873:5523668] [TOO] Endpoint: 1 Cluster: 0x0000_0201 Attribute 0x0000_004E DataVersion: 3470253931
+ [1722292538.300] [58873:5523668] [TOO] ActivePresetHandle: 03
+ [1722292538.300] [58873:5523668] [EM] <<< [E:63772i S:58620 M:79797990 (Ack:248773669)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label: "Step 5b: Test Harness reads the ActivePresetHandle attribute"
+ PICS: TSTAT.S.F08 && TSTAT.S.A004e
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #5b Test Harness Client reads ActivePresetHandle attribute
+
+ ./chip-tool thermostat read active-preset-handle 0x12344321 1
+ On TH(chip-tool) verify that DUT successfully read ActivePresetHandle
+ [1722299898.382] [62999:5632512] [TOO] Endpoint: 1 Cluster: 0x0000_0201 Attribute 0x0000_004E DataVersion: 3098962545
+ [1722299898.382] [62999:5632512] [TOO] ActivePresetHandle: 03
+ [1722299898.382] [62999:5632512] [EM] <<< [E:27648i S:55804 M:2686999 (Ack:191947351)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 5c: Test Harness calls the StartPresetsSchedulesEditRequest
+ command to edit presets"
+ PICS: TSTAT.S.F08 && TSTAT.S.C07.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #5b Test Harness Client calls StartPresetsSchedulesEditRequest command
+
+ ./chip-tool thermostat start-presets-schedules-edit-request 180 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722286001.805] [54149:5392862] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0007 Status=0x0
+ [1722286001.805] [54149:5392862] [DMG] ICR moving to [AwaitingDe]
+ [1722286001.805] [54149:5392862] [EM] <<< [E:7545i S:16937 M:144975449 (Ack:93571372)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722286001.806] [54149:5392862] [EM] Flushed pending ack for MessageCounter:93571372 on exchange 7545i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 5d: Test Harness writes to the Presets attribute without the
+ preset with handle hex:03 matching the ActivePresetHandle attribute
+ removed"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #5c Test Harness Client attempts to write Presets and gets SUCCESS
+
+ ./chip-tool thermostat write presets ./out/debug/chip-tool thermostat write presets '[ {"presetHandle": "hex:01", "presetScenario": 1, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": true }, {"presetHandle": "hex:02", "presetScenario": 2, "coolingSetpoint": 2600, "heatingSetpoint": 2500, "builtIn": true }, {"presetHandle": "hex:04", "name": "Wake", "presetScenario": 4, "coolingSetpoint": 2200, "heatingSetpoint": 2900, "builtIn": false }, {"presetHandle": "hex:06", "name": "GoingToSleep", "presetScenario": 6, "coolingSetpoint": 2100, "heatingSetpoint": 2500, "builtIn": false }]' 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722289461.376] [56636:5458560] [DMG] WriteClient moving to [ResponseRe]
+ [1722289461.376] [56636:5458560] [DMG] WriteResponseMessage =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIBs =
+ [1722289461.376] [56636:5458560] [DMG] [
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.377] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.377] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.377] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] ],
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] InteractionModelRevision = 11
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG] WriteClient moving to [AwaitingDe]
+ [1722289461.377] [56636:5458560] [EM] <<< [E:23635i S:58282 M:220756286 (Ack:5366080)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 5e: Test Harness calls the CommitPresetsSchedulesRequest
+ command"
+ PICS: TSTAT.S.F08 && TSTAT.S.C09.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #5e Test Harness Client calls CommitPresetsSchedulesRequest command ans gets INVALID_IN_STATE since the preset with its handle matching the active preset handle was attempted to be removed.
+
+ ./chip-tool thermostat commit-presets-schedules-request 0x12344321 1
+ On TH(chip-tool) verify that DUT sends an INVALID_IN_STATE (0xCB) error
+ [1722293312.795] [59386:5538858] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0009 Status=0xcb
+ [1722293312.795] [59386:5538858] [TOO] Error: IM Error 0x000005CB: General error: 0xcb (INVALID_IN_STATE)
+ [1722293312.795] [59386:5538858] [DMG] ICR moving to [AwaitingDe]
+ [1722293312.795] [59386:5538858] [EM] <<< [E:4647i S:21966 M:58651952 (Ack:80870764)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 6a: Test Harness calls the StartPresetsSchedulesEditRequest
+ command to edit presets"
+ PICS: TSTAT.S.F08 && TSTAT.S.C07.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #6a Test Harness Client calls StartPresetsSchedulesEditRequest command
+
+ ./chip-tool thermostat start-presets-schedules-edit-request 180 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722286001.805] [54149:5392862] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0007 Status=0x0
+ [1722286001.805] [54149:5392862] [DMG] ICR moving to [AwaitingDe]
+ [1722286001.805] [54149:5392862] [EM] <<< [E:7545i S:16937 M:144975449 (Ack:93571372)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722286001.806] [54149:5392862] [EM] Flushed pending ack for MessageCounter:93571372 on exchange 7545i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 6b: Test Harness writes to the Presets attribute with a
+ built-in preset having preset handle hex:01 modified to be not
+ built-in."
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #6b Test Harness Client attempts to write Presets and gets SUCCESS
+
+ ./chip-tool thermostat write presets '[ {"presetHandle": "hex:01", "presetScenario": 1, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": false }, {"presetHandle": "hex:02", "presetScenario": 2, "coolingSetpoint": 2600, "heatingSetpoint": 2500, "builtIn": true }, {"presetHandle": "hex:03", "name": "Sleep", "presetScenario": 3, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": false }, {"presetHandle": "hex:04", "name": "Wake", "presetScenario": 4, "coolingSetpoint": 2200, "heatingSetpoint": 2900, "builtIn": false }, {"presetHandle": "hex:06", "name": "GoingToSleep", "presetScenario": 6, "coolingSetpoint": 2100, "heatingSetpoint": 2500, "builtIn": false }]' 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722289461.376] [56636:5458560] [DMG] WriteClient moving to [ResponseRe]
+ [1722289461.376] [56636:5458560] [DMG] WriteResponseMessage =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIBs =
+ [1722289461.376] [56636:5458560] [DMG] [
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.377] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.377] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.377] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] ],
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] InteractionModelRevision = 11
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG] WriteClient moving to [AwaitingDe]
+ [1722289461.377] [56636:5458560] [EM] <<< [E:23635i S:58282 M:220756286 (Ack:5366080)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 6c: Test Harness calls the CommitPresetsSchedulesRequest
+ command"
+ PICS: TSTAT.S.F08 && TSTAT.S.C09.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #6c Test Harness Client calls CommitPresetsSchedulesRequest command gets UNSUPPORTED_ACCESS since a built-in preset was attempted to be modified to a non built-in preset
+
+ ./chip-tool thermostat commit-presets-schedules-request 0x12344321 1
+ On TH(chip-tool) verify that DUT sends an UNSUPPORTED_ACCESS (0x7E) error
+ [1722289468.881] [56642:5458641] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0009 Status=0x7e
+ [1722289468.881] [56642:5458641] [TOO] Error: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS)
+ [1722289468.881] [56642:5458641] [DMG] ICR moving to [AwaitingDe]
+ [1722289468.881] [56642:5458641] [EM] <<< [E:20464i S:35105 M:91065475 (Ack:114933900)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 7a: Test Harness calls the StartPresetsSchedulesEditRequest
+ command to edit presets"
+ PICS: TSTAT.S.F08 && TSTAT.S.C07.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #6a Test Harness Client calls StartPresetsSchedulesEditRequest command
+
+ ./chip-tool thermostat start-presets-schedules-edit-request 180 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722286001.805] [54149:5392862] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0007 Status=0x0
+ [1722286001.805] [54149:5392862] [DMG] ICR moving to [AwaitingDe]
+ [1722286001.805] [54149:5392862] [EM] <<< [E:7545i S:16937 M:144975449 (Ack:93571372)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722286001.806] [54149:5392862] [EM] Flushed pending ack for MessageCounter:93571372 on exchange 7545i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 7b: Test Harness writes to the Presets attribute with a new
+ preset having builtIn set to true"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #7b Test Harness Client attempts to write Presets and gets SUCCESS
+
+ ./chip-tool thermostat write presets '[ {"presetHandle": "hex:01", "presetScenario": 1, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": true }, {"presetHandle": "hex:02", "presetScenario": 2, "coolingSetpoint": 2600, "heatingSetpoint": 2500, "builtIn": true }, {"presetHandle": "hex:03", "name": "Sleep", "presetScenario": 3, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": false }, {"presetHandle": "hex:04", "name": "Wake", "presetScenario": 4, "coolingSetpoint": 2200, "heatingSetpoint": 2900, "builtIn": false }, {"presetHandle": null, "name": "Vacation", "presetScenario": 5, "coolingSetpoint": 2900, "heatingSetpoint": 2000, "builtIn": true }, {"presetHandle": "hex:06", "name": "GoingToSleep", "presetScenario": 6, "coolingSetpoint": 2100, "heatingSetpoint": 2500, "builtIn": false }]' 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722289461.376] [56636:5458560] [DMG] WriteClient moving to [ResponseRe]
+ [1722289461.376] [56636:5458560] [DMG] WriteResponseMessage =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIBs =
+ [1722289461.376] [56636:5458560] [DMG] [
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.377] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.377] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.377] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] ],
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] InteractionModelRevision = 11
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG] WriteClient moving to [AwaitingDe]
+ [1722289461.377] [56636:5458560] [EM] <<< [E:23635i S:58282 M:220756286 (Ack:5366080)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 7c: Test Harness calls the CommitPresetsSchedulesRequest
+ command"
+ PICS: TSTAT.S.F08 && TSTAT.S.C09.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #6c Test Harness Client calls CommitPresetsSchedulesRequest command and gets CONSTRAINT_ERROR since a new preset was attempted to be added as a built-in preset.
+
+ ./chip-tool thermostat commit-presets-schedules-request 0x12344321 1
+ On TH(chip-tool) verify that DUT sends an CONSTRAINT_ERROR (0x87) error
+ [1722289998.305] [56996:5468872] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0009 Status=0x87
+ [1722289998.305] [56996:5468872] [TOO] Error: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR)
+ [1722289998.305] [56996:5468872] [DMG] ICR moving to [AwaitingDe]
+ [1722289998.305] [56996:5468872] [EM] <<< [E:44500i S:62829 M:76436393 (Ack:145233702)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 8a: Test Harness calls the StartPresetsSchedulesEditRequest
+ command to edit presets"
+ PICS: TSTAT.S.F08 && TSTAT.S.C07.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #8a Test Harness Client calls StartPresetsSchedulesEditRequest command
+
+ ./chip-tool thermostat start-presets-schedules-edit-request 180 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722286001.805] [54149:5392862] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0007 Status=0x0
+ [1722286001.805] [54149:5392862] [DMG] ICR moving to [AwaitingDe]
+ [1722286001.805] [54149:5392862] [EM] <<< [E:7545i S:16937 M:144975449 (Ack:93571372)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722286001.806] [54149:5392862] [EM] Flushed pending ack for MessageCounter:93571372 on exchange 7545i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 8b: Test Harness writes to the Presets attribute with a preset
+ having preset handle hex:08 that doesn't exist in the Presets
+ attribute"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #8b Test Harness Client attempts to write Presets and gets SUCCESS
+
+ ./chip-tool thermostat write presets '[ {"presetHandle": "hex:01", "presetScenario": 1, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": true }, {"presetHandle": "hex:02", "presetScenario": 2, "coolingSetpoint": 2600, "heatingSetpoint": 2500, "builtIn": true }, {"presetHandle": "hex:03", "name": "Sleep", "presetScenario": 3, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": false }, {"presetHandle": "hex:04", "name": "Wake", "presetScenario": 4, "coolingSetpoint": 2200, "heatingSetpoint": 2900, "builtIn": false }, {"presetHandle": "hex:08", "name": "GoingToSleep", "presetScenario": 6, "coolingSetpoint": 2100, "heatingSetpoint": 2500, "builtIn": false }]' 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722289461.376] [56636:5458560] [DMG] WriteClient moving to [ResponseRe]
+ [1722289461.376] [56636:5458560] [DMG] WriteResponseMessage =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIBs =
+ [1722289461.376] [56636:5458560] [DMG] [
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.377] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.377] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.377] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] ],
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] InteractionModelRevision = 11
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG] WriteClient moving to [AwaitingDe]
+ [1722289461.377] [56636:5458560] [EM] <<< [E:23635i S:58282 M:220756286 (Ack:5366080)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 8c: Test Harness calls the CommitPresetsSchedulesRequest
+ command"
+ PICS: TSTAT.S.F08 && TSTAT.S.C09.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #8c Test Harness Client calls CommitPresetsSchedulesRequest command gets NOT_FOUND since an existing preset was attempted to be added with a preset handle that doesn't exist in the Presets attribute
+
+ ./chip-tool thermostat commit-presets-schedules-request 0x12344321 1
+ On TH(chip-tool) verify that DUT sends an NOT_FOUND (0x8B) error
+ [1722290436.980] [57434:5479429] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0009 Status=0x8b
+ [1722290436.980] [57434:5479429] [TOO] Error: IM Error 0x0000058B: General error: 0x8b (NOT_FOUND)
+ [1722290436.980] [57434:5479429] [DMG] ICR moving to [AwaitingDe]
+ [1722290436.980] [57434:5479429] [EM] <<< [E:54210i S:10110 M:158287615 (Ack:73923062)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 9a: Test Harness calls the StartPresetsSchedulesEditRequest
+ command to edit presets"
+ PICS: TSTAT.S.F08 && TSTAT.S.C07.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #9a Test Harness Client calls StartPresetsSchedulesEditRequest command
+
+ ./chip-tool thermostat start-presets-schedules-edit-request 180 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722286001.805] [54149:5392862] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0007 Status=0x0
+ [1722286001.805] [54149:5392862] [DMG] ICR moving to [AwaitingDe]
+ [1722286001.805] [54149:5392862] [EM] <<< [E:7545i S:16937 M:144975449 (Ack:93571372)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722286001.806] [54149:5392862] [EM] Flushed pending ack for MessageCounter:93571372 on exchange 7545i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label: "Step 9b: Test Harness writes to the Presets attribute"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #8b Test Harness Client attempts to write Presets and gets SUCCESS
+
+ ./chip-tool thermostat write presets '[ {"presetHandle": "hex:01", "presetScenario": 1, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": true }, {"presetHandle": "hex:02", "presetScenario": 2, "coolingSetpoint": 2600, "heatingSetpoint": 2500, "builtIn": true }, {"presetHandle": "hex:03", "name": "Sleep", "presetScenario": 3, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": false }, {"presetHandle": "hex:03", "name": "Sleep", "presetScenario": 3, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": false }, {"presetHandle": "hex:04", "name": "Wake", "presetScenario": 4, "coolingSetpoint": 2200, "heatingSetpoint": 2900, "builtIn": false }, {"presetHandle": "hex:06", "name": "GoingToSleep", "presetScenario": 6, "coolingSetpoint": 2100, "heatingSetpoint": 2500, "builtIn": false }]' 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722289461.376] [56636:5458560] [DMG] WriteClient moving to [ResponseRe]
+ [1722289461.376] [56636:5458560] [DMG] WriteResponseMessage =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIBs =
+ [1722289461.376] [56636:5458560] [DMG] [
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.377] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.377] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.377] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] ],
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] InteractionModelRevision = 11
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG] WriteClient moving to [AwaitingDe]
+ [1722289461.377] [56636:5458560] [EM] <<< [E:23635i S:58282 M:220756286 (Ack:5366080)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 9c: Test Harness calls the CommitPresetsSchedulesRequest
+ command"
+ PICS: TSTAT.S.F08 && TSTAT.S.C09.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #8c Test Harness Client calls CommitPresetsSchedulesRequest command gets CONSTRAINT_ERROR since preset with preset handle hex:03 is duplicated
+
+ ./chip-tool thermostat commit-presets-schedules-request 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) error
+ [1722302289.994] [63677:5670818] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0009 Status=0x87
+ [1722302289.994] [63677:5670818] [TOO] Error: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR)
+ [1722302289.994] [63677:5670818] [DMG] ICR moving to [AwaitingDe]
+ [1722302289.994] [63677:5670818] [EM] <<< [E:25209i S:7768 M:264197735 (Ack:106550461)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 10a: Test Harness calls the StartPresetsSchedulesEditRequest
+ command to edit presets"
+ PICS: TSTAT.S.F08 && TSTAT.S.C07.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #10a Test Harness Client calls StartPresetsSchedulesEditRequest command
+
+ ./chip-tool thermostat start-presets-schedules-edit-request 180 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722286001.805] [54149:5392862] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0007 Status=0x0
+ [1722286001.805] [54149:5392862] [DMG] ICR moving to [AwaitingDe]
+ [1722286001.805] [54149:5392862] [EM] <<< [E:7545i S:16937 M:144975449 (Ack:93571372)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722286001.806] [54149:5392862] [EM] Flushed pending ack for MessageCounter:93571372 on exchange 7545i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 10b: Test Harness writes to the Presets attribute wherein a
+ built-in preset is modified to a non built-in preset"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #10b Test Harness Client attempts to write Presets and gets SUCCESS
+
+ ./chip-tool thermostat write presets '[ {"presetHandle": "hex:01", "presetScenario": 1, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": false }, {"presetHandle": "hex:02", "presetScenario": 2, "coolingSetpoint": 2600, "heatingSetpoint": 2500, "builtIn": true }, {"presetHandle": "hex:03", "name": "Sleep", "presetScenario": 3, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": false }, {"presetHandle": "hex:04", "name": "Wake", "presetScenario": 4, "coolingSetpoint": 2200, "heatingSetpoint": 2900, "builtIn": false }, {"presetHandle": "hex:06", "name": "GoingToSleep", "presetScenario": 6, "coolingSetpoint": 2100, "heatingSetpoint": 2500, "builtIn": false }]' 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722289461.376] [56636:5458560] [DMG] WriteClient moving to [ResponseRe]
+ [1722289461.376] [56636:5458560] [DMG] WriteResponseMessage =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIBs =
+ [1722289461.376] [56636:5458560] [DMG] [
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.377] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.377] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.377] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] ],
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] InteractionModelRevision = 11
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG] WriteClient moving to [AwaitingDe]
+ [1722289461.377] [56636:5458560] [EM] <<< [E:23635i S:58282 M:220756286 (Ack:5366080)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 10c: Test Harness calls the CommitPresetsSchedulesRequest
+ command"
+ PICS: TSTAT.S.F08 && TSTAT.S.C09.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #10c Test Harness Client calls CommitPresetsSchedulesRequest command gets UNSUPPORTED_ACCESS since built-in preset with handle hex:01 was attempted to be modified to a not built-in preset
+
+ ./chip-tool thermostat commit-presets-schedules-request 0x12344321 1
+ On TH(chip-tool) verify that DUT sends an UNSUPPORTED_ACCESS (0x7E) error
+ [1722289468.881] [56642:5458641] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0009 Status=0x7e
+ [1722289468.881] [56642:5458641] [TOO] Error: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS)
+ [1722289468.881] [56642:5458641] [DMG] ICR moving to [AwaitingDe]
+ [1722289468.881] [56642:5458641] [EM] <<< [E:20464i S:35105 M:91065475 (Ack:114933900)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 11a: Test Harness calls the StartPresetsSchedulesEditRequest
+ command to edit presets"
+ PICS: TSTAT.S.F08 && TSTAT.S.C07.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #11a Test Harness Client calls StartPresetsSchedulesEditRequest command
+
+ ./chip-tool thermostat start-presets-schedules-edit-request 180 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722286001.805] [54149:5392862] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0007 Status=0x0
+ [1722286001.805] [54149:5392862] [DMG] ICR moving to [AwaitingDe]
+ [1722286001.805] [54149:5392862] [EM] <<< [E:7545i S:16937 M:144975449 (Ack:93571372)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722286001.806] [54149:5392862] [EM] Flushed pending ack for MessageCounter:93571372 on exchange 7545i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 11b: Test Harness writes to the Presets attribute wherein a non
+ built-in preset is modified to a built-in preset"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #11b Test Harness Client attempts to write Presets and gets SUCCESS
+
+ ./chip-tool thermostat write presets '[ {"presetHandle": "hex:01", "presetScenario": 1, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": true }, {"presetHandle": "hex:02", "presetScenario": 2, "coolingSetpoint": 2600, "heatingSetpoint": 2500, "builtIn": true }, {"presetHandle": "hex:03", "name": "Sleep", "presetScenario": 3, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": true }, {"presetHandle": "hex:04", "name": "Wake", "presetScenario": 4, "coolingSetpoint": 2200, "heatingSetpoint": 2900, "builtIn": false }, {"presetHandle": "hex:06", "name": "GoingToSleep", "presetScenario": 6, "coolingSetpoint": 2100, "heatingSetpoint": 2500, "builtIn": false }, {"presetHandle": "hex:06", "name": "GoingToSleep", "presetScenario": 6, "coolingSetpoint": 2100, "heatingSetpoint": 2500, "builtIn": false }]' 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722289461.376] [56636:5458560] [DMG] WriteClient moving to [ResponseRe]
+ [1722289461.376] [56636:5458560] [DMG] WriteResponseMessage =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIBs =
+ [1722289461.376] [56636:5458560] [DMG] [
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.377] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.377] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.377] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] ],
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] InteractionModelRevision = 11
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG] WriteClient moving to [AwaitingDe]
+ [1722289461.377] [56636:5458560] [EM] <<< [E:23635i S:58282 M:220756286 (Ack:5366080)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 11c: Test Harness calls the CommitPresetsSchedulesRequest
+ command"
+ PICS: TSTAT.S.F08 && TSTAT.S.C09.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #11c Test Harness Client calls CommitPresetsSchedulesRequest command gets UNSUPPORTED_ACCESS since non built-in preset with handle hex:03 was attempted to be modified to be built-in
+
+ ./chip-tool thermostat commit-presets-schedules-request 0x12344321 1
+ On TH(chip-tool) verify that DUT sends an UNSUPPORTED_ACCESS (0x7E) error
+ [1722297542.066] [60654:5591651] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0009 Status=0x7e
+ [1722297542.066] [60654:5591651] [TOO] Error: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS)
+ [1722297542.066] [60654:5591651] [DMG] ICR moving to [AwaitingDe]
+ [1722297542.066] [60654:5591651] [EM] <<< [E:11999i S:35595 M:148057801 (Ack:14642826)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 12a: Test Harness calls the StartPresetsSchedulesEditRequest
+ command to edit presets"
+ PICS: TSTAT.S.F08 && TSTAT.S.C07.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #12a Test Harness Client calls StartPresetsSchedulesEditRequest command
+
+ ./chip-tool thermostat start-presets-schedules-edit-request 180 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722286001.805] [54149:5392862] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0007 Status=0x0
+ [1722286001.805] [54149:5392862] [DMG] ICR moving to [AwaitingDe]
+ [1722286001.805] [54149:5392862] [EM] <<< [E:7545i S:16937 M:144975449 (Ack:93571372)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722286001.806] [54149:5392862] [EM] Flushed pending ack for MessageCounter:93571372 on exchange 7545i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 12b: Test Harness writes to the Presets attribute with a preset
+ that doesn't support names in the PresetTypeFeatures bitmap but has a
+ name"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #11b Test Harness Client attempts to write Presets and gets SUCCESS
+
+ ./chip-tool thermostat write presets '[ {"presetHandle": "hex:01", "name": "Occupied", "presetScenario": 1, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": true }, {"presetHandle": "hex:02", "presetScenario": 2, "coolingSetpoint": 2600, "heatingSetpoint": 2500, "builtIn": true }, {"presetHandle": "hex:03", "name": "Sleep", "presetScenario": 3, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": true }, {"presetHandle": "hex:04", "name": "Wake", "presetScenario": 4, "coolingSetpoint": 2200, "heatingSetpoint": 2900, "builtIn": false }, {"presetHandle": "hex:06", "name": "GoingToSleep", "presetScenario": 6, "coolingSetpoint": 2100, "heatingSetpoint": 2500, "builtIn": false }, {"presetHandle": "hex:06", "name": "GoingToSleep", "presetScenario": 6, "coolingSetpoint": 2100, "heatingSetpoint": 2500, "builtIn": false }]' 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722289461.376] [56636:5458560] [DMG] WriteClient moving to [ResponseRe]
+ [1722289461.376] [56636:5458560] [DMG] WriteResponseMessage =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIBs =
+ [1722289461.376] [56636:5458560] [DMG] [
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.377] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.377] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.377] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] ],
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] InteractionModelRevision = 11
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG] WriteClient moving to [AwaitingDe]
+ [1722289461.377] [56636:5458560] [EM] <<< [E:23635i S:58282 M:220756286 (Ack:5366080)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 12c: Test Harness calls the CommitPresetsSchedulesRequest
+ command"
+ PICS: TSTAT.S.F08 && TSTAT.S.C09.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #11c Test Harness Client calls CommitPresetsSchedulesRequest command gets CONSTRAINT_ERROR since we attempted to add a name to a preset with handle hex:01 that doesn't support names.
+
+ ./chip-tool thermostat commit-presets-schedules-request 0x12344321 1
+ On TH(chip-tool) verify that DUT sends an CONSTRAINT_ERROR (0x87) error
+ [1722298150.233] [60910:5602100] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0009 Status=0x87
+ [1722298150.233] [60910:5602100] [TOO] Error: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR)
+ [1722298150.233] [60910:5602100] [DMG] ICR moving to [AwaitingDe]
+ [1722298150.233] [60910:5602100] [EM] <<< [E:44287i S:42687 M:5072557 (Ack:66989213)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ #TODO: Add tests for the total number of Presets exceeds the NumberOfPresets supported. Also Add tests for adding presets with preset scenario not present in PresetTypes.
+
+ - label:
+ "Step 13a: Test Harness calls the StartPresetsSchedulesEditRequest
+ command to edit presets"
+ PICS: TSTAT.S.F08 && TSTAT.S.C07.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #13a Test Harness Client calls StartPresetsSchedulesEditRequest command
+
+ ./chip-tool thermostat start-presets-schedules-edit-request 180 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722286001.805] [54149:5392862] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0007 Status=0x0
+ [1722286001.805] [54149:5392862] [DMG] ICR moving to [AwaitingDe]
+ [1722286001.805] [54149:5392862] [EM] <<< [E:7545i S:16937 M:144975449 (Ack:93571372)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722286001.806] [54149:5392862] [EM] Flushed pending ack for MessageCounter:93571372 on exchange 7545i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 13b: Test Harness writes to the Presets attribute but calls
+ CancelPresetsSchedulesEditRequest command to cancel the edit request"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #13b Test Harness Client attempts to write Presets and gets SUCCESS
+
+ ./chip-tool thermostat write presets '[ {"presetHandle": "hex:01", "presetScenario": 1, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": true }, {"presetHandle": "hex:02", "presetScenario": 2, "coolingSetpoint": 2600, "heatingSetpoint": 2500, "builtIn": true }, {"presetHandle": "03", "name": "Sleep", "presetScenario": 3, "coolingSetpoint": 2500, "heatingSetpoint": 2600, "builtIn": false }, {"presetHandle": "04", "name": "Wake", "presetScenario": 4, "coolingSetpoint": 2200, "heatingSetpoint": 2900, "builtIn": false }, {"presetHandle": null, "name": "Vacation", "presetScenario": 5, "coolingSetpoint": 2900, "heatingSetpoint": 2000, "builtIn": false }, {"presetHandle": "06", "name": "GoingToSleep", "presetScenario": 6, "coolingSetpoint": 3000, "heatingSetpoint": 1900, "builtIn": false }]' 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722289461.376] [56636:5458560] [DMG] WriteClient moving to [ResponseRe]
+ [1722289461.376] [56636:5458560] [DMG] WriteResponseMessage =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIBs =
+ [1722289461.376] [56636:5458560] [DMG] [
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.376] [56636:5458560] [DMG] }
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] StatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] },
+ [1722289461.376] [56636:5458560] [DMG]
+ [1722289461.376] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.376] [56636:5458560] [DMG] {
+ [1722289461.376] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.376] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.376] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.376] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] AttributeStatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] AttributePathIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] Endpoint = 0x1,
+ [1722289461.377] [56636:5458560] [DMG] Cluster = 0x201,
+ [1722289461.377] [56636:5458560] [DMG] Attribute = 0x0000_0050,
+ [1722289461.377] [56636:5458560] [DMG] ListIndex = Null,
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] StatusIB =
+ [1722289461.377] [56636:5458560] [DMG] {
+ [1722289461.377] [56636:5458560] [DMG] status = 0x00 (SUCCESS),
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] },
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] ],
+ [1722289461.377] [56636:5458560] [DMG]
+ [1722289461.377] [56636:5458560] [DMG] InteractionModelRevision = 11
+ [1722289461.377] [56636:5458560] [DMG] }
+ [1722289461.377] [56636:5458560] [DMG] WriteClient moving to [AwaitingDe]
+ [1722286250.504] [54321:5397545] [EM] <<< [E:14426i S:42250 M:116961408 (Ack:156984778)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ [1722286250.504] [54321:5397545] [EM] Flushed pending ack for MessageCounter:156984778 on exchange 14426i
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 13c: Test Harness calls the CancelPresetsSchedulesEditRequest
+ command"
+ PICS: TSTAT.S.F08 && TSTAT.S.C08.Rsp
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #13c Test Harness Client calls CancelPresetsSchedulesEditRequest command
+
+ ./chip-tool thermostat cancel-presets-schedules-edit-request 0x12344321 1
+ On TH(chip-tool) verify that DUT sends a success response
+ [1722287841.505] [55282:5425045] [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0201 Command=0x0000_0009 Status=0x0
+ [1722287841.505] [55282:5425045] [DMG] ICR moving to [AwaitingDe]
+ [1722287841.505] [55282:5425045] [EM] <<< [E:46441i S:57071 M:61366563 (Ack:138534230)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 13d: Test Harness reads the Presets attribute after calling the
+ CancelPresetsSchedulesEditRequest command"
+ PICS: TSTAT.S.F08 && TSTAT.S.A0050
+ verification: |
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation.
+
+ #3c Test Harness Client reads Presets attribute
+
+ ./chip-tool thermostat read presets 0x12344321 1
+ On TH(chip-tool) verify that DUT successfully read Presets (but without the Vacation preset added)
+ [1722299465.497] [62905:5625656] [TOO] Endpoint: 1 Cluster: 0x0000_0201 Attribute 0x0000_0050 DataVersion: 3098962545
+ [1722299465.497] [62905:5625656] [TOO] Presets: 5 entries
+ [1722299465.498] [62905:5625656] [TOO] [1]: {
+ [1722299465.498] [62905:5625656] [TOO] PresetHandle: 01
+ [1722299465.498] [62905:5625656] [TOO] PresetScenario: 1
+ [1722299465.498] [62905:5625656] [TOO] CoolingSetpoint: 2500
+ [1722299465.498] [62905:5625656] [TOO] HeatingSetpoint: 2600
+ [1722299465.498] [62905:5625656] [TOO] BuiltIn: TRUE
+ [1722299465.498] [62905:5625656] [TOO] }
+ [1722299465.498] [62905:5625656] [TOO] [2]: {
+ [1722299465.498] [62905:5625656] [TOO] PresetHandle: 02
+ [1722299465.498] [62905:5625656] [TOO] PresetScenario: 2
+ [1722299465.498] [62905:5625656] [TOO] CoolingSetpoint: 2600
+ [1722299465.498] [62905:5625656] [TOO] HeatingSetpoint: 2500
+ [1722299465.498] [62905:5625656] [TOO] BuiltIn: TRUE
+ [1722299465.498] [62905:5625656] [TOO] }
+ [1722299465.498] [62905:5625656] [TOO] [3]: {
+ [1722299465.498] [62905:5625656] [TOO] PresetHandle: 03
+ [1722299465.498] [62905:5625656] [TOO] PresetScenario: 3
+ [1722299465.498] [62905:5625656] [TOO] Name: Sleep
+ [1722299465.498] [62905:5625656] [TOO] CoolingSetpoint: 2500
+ [1722299465.498] [62905:5625656] [TOO] HeatingSetpoint: 2600
+ [1722299465.498] [62905:5625656] [TOO] BuiltIn: FALSE
+ [1722299465.498] [62905:5625656] [TOO] }
+ [1722299465.498] [62905:5625656] [TOO] [4]: {
+ [1722299465.498] [62905:5625656] [TOO] PresetHandle: 04
+ [1722299465.498] [62905:5625656] [TOO] PresetScenario: 4
+ [1722299465.498] [62905:5625656] [TOO] Name: Wake
+ [1722299465.498] [62905:5625656] [TOO] CoolingSetpoint: 2200
+ [1722299465.498] [62905:5625656] [TOO] HeatingSetpoint: 2900
+ [1722299465.498] [62905:5625656] [TOO] BuiltIn: FALSE
+ [1722299465.498] [62905:5625656] [TOO] }
+ [1722299465.498] [62905:5625656] [TOO] [5]: {
+ [1722299465.498] [62905:5625656] [TOO] PresetHandle: 06
+ [1722299465.498] [62905:5625656] [TOO] PresetScenario: 6
+ [1722299465.498] [62905:5625656] [TOO] Name: Vacationleep
+ [1722299465.498] [62905:5625656] [TOO] CoolingSetpoint: 2100
+ [1722299465.498] [62905:5625656] [TOO] HeatingSetpoint: 2500
+ [1722299465.498] [62905:5625656] [TOO] BuiltIn: FALSE
+ [1722299465.498] [62905:5625656] [TOO] }
+ [1722299465.498] [62905:5625656] [EM] <<< [E:53084i S:11903 M:249395534 (Ack:245071987)] (S) Msg TX to 1:000000000000006E [FEC4] [UDP:[fe80::1%lo0]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:34)
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values
index 1525445..82254aa 100644
--- a/src/app/tests/suites/certification/ci-pics-values
+++ b/src/app/tests/suites/certification/ci-pics-values
@@ -1916,6 +1916,7 @@
TSTAT.S.F04=0
TSTAT.S.F05=1
TSTAT.S.F06=0
+TSTAT.S.F08=1
TSTAT.S.A0000=1
TSTAT.S.A0001=0
@@ -1967,6 +1968,12 @@
TSTAT.S.A0045=0
TSTAT.S.A0046=0
TSTAT.S.A0047=0
+TSTAT.S.A0048=1
+TSTAT.S.A004a=1
+TSTAT.S.A004e=1
+TSTAT.S.A0050=1
+TSTAT.S.A0052=1
+
TSTAT.S.M.MinSetpointDeadBandWritable=1
TSTAT.S.M.HVACSystemTypeConfigurationWritable=0
@@ -1976,6 +1983,10 @@
TSTAT.S.C02.Rsp=0
TSTAT.S.C03.Rsp=0
TSTAT.S.C04.Rsp=0
+TSTAT.S.C06.Rsp=1
+TSTAT.S.C07.Rsp=1
+TSTAT.S.C08.Rsp=1
+TSTAT.S.C09.Rsp=1
# Client
TSTAT.C=0
@@ -1990,6 +2001,10 @@
TSTAT.C.C03.Tx=0
TSTAT.S.C00.Tx=0
TSTAT.S.C01.Tx=0
+TSTAT.C.C06.Tx=1
+TSTAT.C.C07.Tx=1
+TSTAT.C.C08.Tx=1
+TSTAT.C.C09.Tx=1
# Client Commands
TSTAT.C.C00.Tx=1