| # Copyright (c) 2021 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. |
| # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default |
| |
| name: 123.2.3. [TC-S-2.3] Secondary functionality with server as DUT |
| |
| PICS: |
| - S.S |
| |
| config: |
| nodeId: 0x12344321 |
| cluster: "Scenes" |
| endpoint: 1 |
| G1: |
| type: int16u |
| defaultValue: 0x0001 |
| |
| tests: |
| - label: "Wait for the commissioned device to be retrieved" |
| cluster: "DelayCommands" |
| command: "WaitForCommissionee" |
| arguments: |
| values: |
| - name: "nodeId" |
| value: nodeId |
| |
| - label: "TH reads from the DUT the (0x0006) SceneTableSize attribute" |
| PICS: S.S.A0006 |
| command: "readAttribute" |
| attribute: "SceneTableSize" |
| response: |
| values: |
| - name: "SceneTableSize" |
| saveAs: maxScenes |
| constraints: |
| type: uint16 |
| |
| - label: |
| "preparation step for using commands from Groups cluster: Add KeySet" |
| cluster: "Group Key Management" |
| endpoint: 0 |
| command: "KeySetWrite" |
| arguments: |
| values: |
| - name: "GroupKeySet" |
| value: |
| { |
| GroupKeySetID: 0x01a1, |
| GroupKeySecurityPolicy: 0, |
| EpochKey0: "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf", |
| EpochStartTime0: 0, |
| EpochKey1: "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf", |
| EpochStartTime1: 0, |
| EpochKey2: "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf", |
| EpochStartTime2: 0, |
| } |
| |
| - label: |
| "Preparation step for using commands from Groups cluster: Write Group |
| Keys" |
| cluster: "Group Key Management" |
| endpoint: 0 |
| command: "writeAttribute" |
| attribute: "GroupKeyMap" |
| arguments: |
| value: [{ FabricIndex: 1, GroupId: G1, GroupKeySetID: 0x01a1 }] |
| |
| - label: |
| "TH sends a AddGroup command to DUT with the GroupID field set to G1." |
| PICS: G.S.C00.Rsp |
| cluster: "Groups" |
| command: "AddGroup" |
| arguments: |
| values: |
| - name: "GroupID" |
| value: G1 |
| - name: "GroupName" |
| value: "Group1" |
| response: |
| values: |
| - name: "Status" |
| value: 0 |
| - name: "GroupID" |
| value: G1 |
| |
| - label: |
| "TH sends a RemoveAllScenes command to DUT with the GroupID field set |
| to G1." |
| PICS: S.S.C03.Rsp |
| command: "RemoveAllScenes" |
| arguments: |
| values: |
| - name: "GroupID" |
| value: G1 |
| response: |
| values: |
| - name: "Status" |
| value: 0 |
| - name: "GroupID" |
| value: G1 |
| |
| - label: |
| "TH sends a GetSceneMembership command to DUT with the GroupID field |
| set to G1." |
| PICS: S.S.C06.Rsp |
| command: "GetSceneMembership" |
| arguments: |
| values: |
| - name: "GroupID" |
| value: G1 |
| response: |
| values: |
| - name: "Status" |
| value: 0x00 |
| - name: "Capacity" |
| value: (maxScenes/2) |
| - name: "GroupID" |
| value: G1 |
| - name: "SceneList" |
| value: [] |
| |
| - label: |
| "TH sends a EnhancedAddScene command to DUT with the GroupID field set |
| to G1, the SceneID field set to 0x01, the TransitionTime field set to |
| 0x000a (1s) and a set of extension fields appropriate to AC1." |
| PICS: S.S.C40.Rsp && PICS_SDK_CI_ONLY |
| command: "EnhancedAddScene" |
| arguments: |
| values: |
| - name: "GroupID" |
| value: G1 |
| - name: "SceneID" |
| value: 0x0001 |
| - name: "TransitionTime" |
| value: 0x000a |
| - name: "SceneName" |
| value: "Scene1" |
| - name: "ExtensionFieldSets" |
| value: |
| [ |
| { |
| ClusterID: 0x0006, |
| AttributeValueList: |
| [{ AttributeID: 0x0000, AttributeValue: 0x01 }], |
| }, |
| { |
| ClusterID: 0x0008, |
| AttributeValueList: |
| [ |
| { |
| AttributeID: 0x0000, |
| AttributeValue: 0x64, |
| }, |
| { |
| AttributeID: 0x0001, |
| AttributeValue: 0x00, |
| }, |
| ], |
| }, |
| ] |
| response: |
| values: |
| - name: "Status" |
| value: 0x00 |
| - name: "GroupID" |
| value: G1 |
| - name: "SceneID" |
| value: 0x01 |
| |
| - label: |
| "TH sends a AddScene command to DUT with the GroupID field set to G1, |
| the SceneID field set to 0x01, the TransitionTime field set to 0x0001 |
| (1s) and a set of extension fields appropriate to AC1." |
| PICS: (!S.S.C40.Rsp) && PICS_SDK_CI_ONLY |
| command: "AddScene" |
| arguments: |
| values: |
| - name: "GroupID" |
| value: G1 |
| - name: "SceneID" |
| value: 0x0001 |
| - name: "TransitionTime" |
| value: 0x0001 |
| - name: "SceneName" |
| value: "Scene1" |
| - name: "ExtensionFieldSets" |
| value: |
| [ |
| { |
| ClusterID: 0x0006, |
| AttributeValueList: |
| [{ AttributeID: 0x0000, AttributeValue: 0x01 }], |
| }, |
| { |
| ClusterID: 0x0008, |
| AttributeValueList: |
| [ |
| { |
| AttributeID: 0x0000, |
| AttributeValue: 0x64, |
| }, |
| { |
| AttributeID: 0x0001, |
| AttributeValue: 0x00, |
| }, |
| ], |
| }, |
| ] |
| response: |
| values: |
| - name: "Status" |
| value: 0x00 |
| - name: "GroupID" |
| value: G1 |
| - name: "SceneID" |
| value: 0x01 |
| |
| - label: |
| "TH sends a EnhancedAddScene command to DUT with the GroupID field set |
| to G1, the SceneID field set to 0x01, the TransitionTime field set to |
| 0x000a and a set of extension fields appropriate to AC1." |
| verification: | |
| Execute the following command in TH to generate the pre-condition to execute this test case: |
| |
| ./chip-tool scenes enhanced-add-scene 0x000a 1 1 "Test Name" '[{"clusterId": value, "attributeValueList":[{"attributeId": value, "attributeValue": value}]}' nodeId endpointId |
| |
| Note: The number of ExtensionFieldSets, the value of clusterId of each ExtensionFieldSet, the number of attributes in attributeValueList and their values varies for each application |
| |
| Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: |
| [1670970505.887060][5742:5744] CHIP:DMG: InvokeResponseMessage = |
| [1670970505.887118][5742:5744] CHIP:DMG: { |
| [1670970505.887172][5742:5744] CHIP:DMG: suppressResponse = false, |
| [1670970505.887231][5742:5744] CHIP:DMG: InvokeResponseIBs = |
| [1670970505.887307][5742:5744] CHIP:DMG: [ |
| [1670970505.887366][5742:5744] CHIP:DMG: InvokeResponseIB = |
| [1670970505.887444][5742:5744] CHIP:DMG: { |
| [1670970505.887507][5742:5744] CHIP:DMG: CommandDataIB = |
| [1670970505.887576][5742:5744] CHIP:DMG: { |
| [1670970505.887713][5742:5744] CHIP:DMG: CommandPathIB = |
| [1670970505.887804][5742:5744] CHIP:DMG: { |
| [1670970505.887940][5742:5744] CHIP:DMG: EndpointId = 0x1, |
| [1670970505.888093][5742:5744] CHIP:DMG: ClusterId = 0x5, |
| [1670970505.888242][5742:5744] CHIP:DMG: CommandId = 0x40, |
| [1670970505.888385][5742:5744] CHIP:DMG: }, |
| [1670970505.888692][5742:5744] CHIP:DMG: |
| [1670970505.888769][5742:5744] CHIP:DMG: CommandFields = |
| [1670970505.888852][5742:5744] CHIP:DMG: { |
| [1670970505.889030][5742:5744] CHIP:DMG: 0x0 = 0, |
| [1670970505.889183][5742:5744] CHIP:DMG: 0x1 = 1, |
| [1670970505.889406][5742:5744] CHIP:DMG: 0x2 = 1, |
| [1670970505.889515][5742:5744] CHIP:DMG: }, |
| [1670970505.889603][5742:5744] CHIP:DMG: }, |
| [1670970505.889684][5742:5744] CHIP:DMG: |
| [1670970505.889745][5742:5744] CHIP:DMG: }, |
| [1670970505.889821][5742:5744] CHIP:DMG: |
| [1670970505.889878][5742:5744] CHIP:DMG: ], |
| [1670970505.889953][5742:5744] CHIP:DMG: |
| [1670970505.890009][5742:5744] CHIP:DMG: InteractionModelRevision = 1 |
| [1670970505.890066][5742:5744] CHIP:DMG: }, |
| [1670970505.890212][5742:5744] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0005 Command=0x0000_0040 |
| [1670970505.890328][5742:5744] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0040 |
| [1670970505.890458][5742:5744] CHIP:TOO: EnhancedAddSceneResponse: { |
| [1670970505.890551][5742:5744] CHIP:TOO: status: 0 |
| [1670970505.890608][5742:5744] CHIP:TOO: groupId: 1 |
| [1670970505.890717][5742:5744] CHIP:TOO: sceneId: 1 |
| [1670970505.890774][5742:5744] CHIP:TOO: } |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| PICS: S.S.C40.Rsp && PICS_SKIP_SAMPLE_APP |
| arguments: |
| values: |
| - name: "message" |
| value: |
| "Please execute the enhanced add scene command with |
| extensionfieldsets in accordance with AC1 on DUT and enter |
| 'y' if the command is successful" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "TH sends a AddScene command to DUT with the GroupID field set to G1, |
| the SceneID field set to 0x01, the TransitionTime field set to 0x0001 |
| and a set of extension fields appropriate to AC1." |
| verification: | |
| Execute the following command in TH to generate the pre-condition to execute this test case: |
| |
| ./chip-tool scenes add-scene 0x0001 1 1 "Test Name" '[{"clusterId": value, "attributeValueList":[{"attributeId": value, "attributeValue": value}]}' nodeId endpointId |
| |
| Note: The number of ExtensionFieldSets, the value of clusterId of each ExtensionFieldSet, the number of attributes in attributeValueList and their values varies for each application |
| |
| Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: |
| [1670970505.887060][5742:5744] CHIP:DMG: InvokeResponseMessage = |
| [1670970505.887118][5742:5744] CHIP:DMG: { |
| [1670970505.887172][5742:5744] CHIP:DMG: suppressResponse = false, |
| [1670970505.887231][5742:5744] CHIP:DMG: InvokeResponseIBs = |
| [1670970505.887307][5742:5744] CHIP:DMG: [ |
| [1670970505.887366][5742:5744] CHIP:DMG: InvokeResponseIB = |
| [1670970505.887444][5742:5744] CHIP:DMG: { |
| [1670970505.887507][5742:5744] CHIP:DMG: CommandDataIB = |
| [1670970505.887576][5742:5744] CHIP:DMG: { |
| [1670970505.887713][5742:5744] CHIP:DMG: CommandPathIB = |
| [1670970505.887804][5742:5744] CHIP:DMG: { |
| [1670970505.887940][5742:5744] CHIP:DMG: EndpointId = 0x1, |
| [1670970505.888093][5742:5744] CHIP:DMG: ClusterId = 0x5, |
| [1670970505.888242][5742:5744] CHIP:DMG: CommandId = 0x0, |
| [1670970505.888385][5742:5744] CHIP:DMG: }, |
| [1670970505.888692][5742:5744] CHIP:DMG: |
| [1670970505.888769][5742:5744] CHIP:DMG: CommandFields = |
| [1670970505.888852][5742:5744] CHIP:DMG: { |
| [1670970505.889030][5742:5744] CHIP:DMG: 0x0 = 0, |
| [1670970505.889183][5742:5744] CHIP:DMG: 0x1 = 1, |
| [1670970505.889406][5742:5744] CHIP:DMG: 0x2 = 1, |
| [1670970505.889515][5742:5744] CHIP:DMG: }, |
| [1670970505.889603][5742:5744] CHIP:DMG: }, |
| [1670970505.889684][5742:5744] CHIP:DMG: |
| [1670970505.889745][5742:5744] CHIP:DMG: }, |
| [1670970505.889821][5742:5744] CHIP:DMG: |
| [1670970505.889878][5742:5744] CHIP:DMG: ], |
| [1670970505.889953][5742:5744] CHIP:DMG: |
| [1670970505.890009][5742:5744] CHIP:DMG: InteractionModelRevision = 1 |
| [1670970505.890066][5742:5744] CHIP:DMG: }, |
| [1670970505.890212][5742:5744] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0005 Command=0x0000_0000 |
| [1670970505.890328][5742:5744] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000 |
| [1670970505.890458][5742:5744] CHIP:TOO: AddSceneResponse: { |
| [1670970505.890551][5742:5744] CHIP:TOO: status: 0 |
| [1670970505.890608][5742:5744] CHIP:TOO: groupId: 1 |
| [1670970505.890717][5742:5744] CHIP:TOO: sceneId: 1 |
| [1670970505.890774][5742:5744] CHIP:TOO: } |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| PICS: (!S.S.C40.Rsp) && PICS_SKIP_SAMPLE_APP |
| arguments: |
| values: |
| - name: "message" |
| value: |
| "Please execute the add scene command with |
| extensionfieldsets in accordance with AC1 on DUT and enter |
| 'y' if the command is successful" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "TH sends a EnhancedViewScene command to DUT with the GroupID field |
| set to G1 and the SceneID field set to 0x01." |
| PICS: S.S.C41.Rsp && PICS_SDK_CI_ONLY |
| command: "EnhancedViewScene" |
| arguments: |
| values: |
| - name: "GroupID" |
| value: G1 |
| - name: "SceneID" |
| value: 0x01 |
| response: |
| values: |
| - name: "Status" |
| value: 0x00 |
| - name: "GroupID" |
| value: G1 |
| - name: "SceneID" |
| value: 0x01 |
| - name: "TransitionTime" |
| value: 0x000a |
| - name: "ExtensionFieldSets" |
| value: |
| [ |
| { |
| ClusterID: 0x0006, |
| AttributeValueList: |
| [{ AttributeID: 0x0000, AttributeValue: 0x01 }], |
| }, |
| { |
| ClusterID: 0x0008, |
| AttributeValueList: |
| [ |
| { |
| AttributeID: 0x0000, |
| AttributeValue: 0x64, |
| }, |
| { |
| AttributeID: 0x0001, |
| AttributeValue: 0x00, |
| }, |
| ], |
| }, |
| ] |
| |
| - label: |
| "TH sends a ViewScene command to DUT with the GroupID field set to G1 |
| and the SceneID field set to 0x01." |
| PICS: (!S.S.C41.Rsp) && PICS_SDK_CI_ONLY |
| command: "ViewScene" |
| arguments: |
| values: |
| - name: "GroupID" |
| value: G1 |
| - name: "SceneID" |
| value: 0x01 |
| response: |
| values: |
| - name: "Status" |
| value: 0x00 |
| - name: "GroupID" |
| value: G1 |
| - name: "SceneID" |
| value: 0x01 |
| - name: "TransitionTime" |
| value: 0x0001 |
| - name: "ExtensionFieldSets" |
| value: |
| [ |
| { |
| ClusterID: 0x0006, |
| AttributeValueList: |
| [{ AttributeID: 0x0000, AttributeValue: 0x01 }], |
| }, |
| { |
| ClusterID: 0x0008, |
| AttributeValueList: |
| [ |
| { |
| AttributeID: 0x0000, |
| AttributeValue: 0x64, |
| }, |
| { |
| AttributeID: 0x0001, |
| AttributeValue: 0x00, |
| }, |
| ], |
| }, |
| ] |
| |
| - label: |
| "TH sends a EnhancedViewScene command to DUT with the GroupID field |
| set to G1 and the SceneID field set to 0x01." |
| PICS: S.S.C41.Rsp && PICS_SKIP_SAMPLE_APP |
| verification: | |
| Execute the following command in TH to generate the pre-condition to execute this test case: |
| |
| ./chip-tool scenes enhanced-view-scene GroupId SceneId Node-Id EndpointId |
| |
| Note: The number of ExtensionFieldSets, the value of clusterId of each ExtensionFieldSet, the number of attributes in attributeValueList and their values varies for each application |
| |
| Verify that the extension fields in the log match the ones expected and that |
| Status = 0x00 |
| GroupID = 0x0001 |
| SceneID = 0x01 |
| TransitionTime = 0x000a |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: |
| "Please execute the ehanced-view-scene command and verify |
| that the extensionfieldsets, status, groupID and SceneID are |
| in accordance with AC1 on DUT and enter 'y' if the command |
| is successful" |
| - name: "expectedValue" |
| value: "y" |
| - label: |
| "TH sends a ViewScene command to DUT with the GroupID field set to G1 |
| and the SceneID field set to 0x01." |
| PICS: (!S.S.C41.Rsp) && PICS_SKIP_SAMPLE_APP |
| verification: | |
| Execute the following command in TH to generate the pre-condition to execute this test case: |
| |
| ./chip-tool scenes view-scene GroupId SceneId Node-Id EndpointId |
| |
| Note: The number of ExtensionFieldSets, the value of clusterId of each ExtensionFieldSet, the number of attributes in attributeValueList and their values varies for each application |
| |
| Verify that the extension fields in the log match the ones expected and that |
| Status = 0x00 |
| GroupID = 0x0001 |
| SceneID = 0x01 |
| TransitionTime = 0x0001 |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: |
| "Please execute the view-scene command and verify that the |
| extensionfieldsets, status, groupID and SceneID are in |
| accordance with AC1 on DUT and enter 'y' if the command is |
| successful" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "TH sends a GetSceneMembership command to DUT with the GroupID field |
| set to G1." |
| PICS: S.S.C06.Rsp |
| command: "GetSceneMembership" |
| arguments: |
| values: |
| - name: "GroupID" |
| value: G1 |
| response: |
| values: |
| - name: "Status" |
| value: 0x00 |
| - name: "Capacity" |
| value: (maxScenes/2) - 1 |
| - name: "GroupID" |
| value: G1 |
| - name: "SceneList" |
| value: [0x01] |
| |
| - label: |
| "TH configures AC2 on DUT for all implemented application clusters |
| supporting scenes." |
| cluster: "Level Control" |
| PICS: PICS_SDK_CI_ONLY |
| command: "MoveToLevelWithOnOff" |
| arguments: |
| values: |
| - name: "Level" |
| value: 200 |
| - name: "TransitionTime" |
| value: 0 |
| - name: "OptionsMask" |
| value: 0 |
| - name: "OptionsOverride" |
| value: 0 |
| |
| - label: |
| "TH configures AC2 on DUT for all implemented application clusters |
| supporting scenes." |
| verification: | |
| Is DUT configured with AC2? |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| PICS: PICS_SKIP_SAMPLE_APP |
| arguments: |
| values: |
| - name: "message" |
| value: |
| "Please configure AC2 on DUT and enter 'y' after the |
| configuration is complete" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "TH sends a RecallScene command to group G1 with the GroupID field set |
| to G1 and the scene ID field set to 0x01." |
| PICS: S.S.C05.Rsp |
| command: "RecallScene" |
| groupId: 0x0001 |
| arguments: |
| values: |
| - name: "GroupID" |
| value: G1 |
| - name: "SceneID" |
| value: 0x01 |
| |
| - label: "Wait 1s" |
| PICS: PICS_SDK_CI_ONLY |
| cluster: "DelayCommands" |
| command: "WaitForMs" |
| arguments: |
| values: |
| - name: "ms" |
| value: 1000 |
| |
| - label: |
| "TH confirm the DUT reached AC1 (on level control cluster) after 1s" |
| PICS: PICS_SDK_CI_ONLY |
| cluster: "Level Control" |
| command: "readAttribute" |
| attribute: "CurrentLevel" |
| response: |
| value: 100 |
| |
| - label: "Verify DUT returns to AC1." |
| verification: | |
| Is DUT configured with AC1? |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| PICS: PICS_SKIP_SAMPLE_APP |
| arguments: |
| values: |
| - name: "message" |
| value: "Please confirm AC1 on DUT and enter 'y'." |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "TH sends a CopyScene command to DUT with the mode field set to 0x00, |
| the group identifier from field set to G1, the scene identifier from |
| field set to 0x01, the group identifier to field set to G1 and the |
| scene identifier to field set to 0x02." |
| PICS: S.S.C42.Rsp |
| verification: | |
| DUT sends a CopySceneResponse command to TH with the Status field set to 0x00 (SUCCESS), the group identifier from field set to G1 and the scene identifier from field set to 0x01. |
| command: "CopyScene" |
| arguments: |
| values: |
| - name: "Mode" |
| value: 0x00 |
| - name: "GroupIdentifierFrom" |
| value: G1 |
| - name: "SceneIdentifierFrom" |
| value: 0x01 |
| - name: "GroupIdentifierTo" |
| value: G1 |
| - name: "SceneIdentifierTo" |
| value: 0x02 |
| response: |
| values: |
| - name: "Status" |
| value: 0x00 |
| - name: "GroupIdentifierFrom" |
| value: G1 |
| - name: "SceneIdentifierFrom" |
| value: 0x01 |
| |
| - label: |
| "TH sends a GetSceneMembership command to DUT with the GroupID field |
| set to G1." |
| PICS: S.S.C06.Rsp |
| command: "GetSceneMembership" |
| arguments: |
| values: |
| - name: "GroupID" |
| value: G1 |
| response: |
| values: |
| - name: "Status" |
| value: 0x00 |
| - name: "Capacity" |
| value: (maxScenes/2) - 2 |
| - name: "GroupID" |
| value: G1 |
| - name: "SceneList" |
| value: [0x01, 0x02] |