# Copyright (c) 2023 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: 132.2.5. [TC-S-2.5] RemainingCapacity functionality with DUT as Server

PICS:
    - S.S

config:
    nodeId: 0x12344321
    cluster: "Basic Information"
    endpoint: 0

tests:
    - label: "Precondition"
      verification: |
          - Commission DUT to TH
          - The Scene Table capacity for a given fabric SHALL be less than half (rounded down towards 0) of the Scene Table entries (as indicated in the SceneTableSize attribute).
          - MaxRemainingCapacity is (SceneTableSize-1)/2.
      disabled: true

    - label:
          "Step 0a: TH sends KeySetWrite command in the GroupKeyManagement
          cluster to DUT using a key that is pre-installed on the TH.
          GroupKeySet fields are as follows: GroupKeySetID: 0x01a1
          GroupKeySecurityPolicy: TrustFirst (0) EpochKey0:
          a0a1a2a3a4a5a6a7a8a9aaabacadaeaf EpochStartTime0: 1110000 EpochKey1:
          b0b1b2b3b4b5b6b7b8b9babbbcbdbebf EpochStartTime1: 1110001 EpochKey2:
          c0c1c2c3c4c5c6c7c8c9cacbcccdcecf EpochStartTime2: 1110002"
      verification: |
          ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1,
          "groupKeySecurityPolicy": 0, "epochKey0":
          "a0a1a2a3a4a5a6a7a8a9aaabacadaeaf", "epochStartTime0": 1110000,"epochKey1":
          "b0b1b2b3b4b5b6b7b8b9babbbcbdbebf", "epochStartTime1": 1110001,"epochKey2":
          "c0c1c2c3c4c5c6c7c8c9cacbcccdcecf", "epochStartTime2": 1110002 }' 1 0

          Verify the "status is success" on the TH(Chip-tool)  Log  and below is the sample log provided for the raspi platform:

          [1658316948.574526][4039:4044] CHIP:DMG:                                StatusIB =
          [1658316948.574561][4039:4044] CHIP:DMG:                                {
          [1658316948.574597][4039:4044] CHIP:DMG:                                   status = 0x00 (SUCCESS),
          [1658316948.574632][4039:4044] CHIP:DMG:                                },
      disabled: true

    - label:
          "Step 0b: TH binds GroupId 0x0001 with GroupKeySetID 0x01a1 in the
          GroupKeyMap attribute list on GroupKeyManagement cluster by writing
          the GroupKeyMap attribute with one entry as follows: List item 1:
          FabricIndex: 1 GroupId: 0x0001 GroupKeySetId: 0x01a1"
      verification: |
          ./chip-tool groupkeymanagement write group-key-map '[{"groupId": "0x0001", "groupKeySetID": "0x01a1", "fabricIndex": 1} ]' 1 0

          Verify DUT responds with SUCCESS status response on the TH(Chip-tool)  Log  and below is the sample log provided for the raspi platform:

          [1701076939.782934][16287:16289] CHIP:DMG: WriteResponseMessage =
          [1701076939.782939][16287:16289] CHIP:DMG: {
          [1701076939.782942][16287:16289] CHIP:DMG:         AttributeStatusIBs =
          [1701076939.782948][16287:16289] CHIP:DMG:         [
          [1701076939.782951][16287:16289] CHIP:DMG:                 AttributeStatusIB =
          [1701076939.782956][16287:16289] CHIP:DMG:                 {
          [1701076939.782960][16287:16289] CHIP:DMG:                         AttributePathIB =
          [1701076939.782965][16287:16289] CHIP:DMG:                         {
          [1701076939.782970][16287:16289] CHIP:DMG:                                 Endpoint = 0x0,
          [1701076939.782973][16287:16289] CHIP:DMG:                                 Cluster = 0x3f,
          [1701076939.782977][16287:16289] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1701076939.782981][16287:16289] CHIP:DMG:                         }
          [1701076939.782986][16287:16289] CHIP:DMG:
          [1701076939.782990][16287:16289] CHIP:DMG:                         StatusIB =
          [1701076939.782993][16287:16289] CHIP:DMG:                         {
          [1701076939.782997][16287:16289] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1701076939.783000][16287:16289] CHIP:DMG:                         },
          [1701076939.783004][16287:16289] CHIP:DMG:
          [1701076939.783007][16287:16289] CHIP:DMG:                 },
          [1701076939.783014][16287:16289] CHIP:DMG:
          [1701076939.783017][16287:16289] CHIP:DMG:                 AttributeStatusIB =
          [1701076939.783021][16287:16289] CHIP:DMG:                 {
          [1701076939.783024][16287:16289] CHIP:DMG:                         AttributePathIB =
          [1701076939.783027][16287:16289] CHIP:DMG:                         {
          [1701076939.783030][16287:16289] CHIP:DMG:                                 Endpoint = 0x0,
          [1701076939.783034][16287:16289] CHIP:DMG:                                 Cluster = 0x3f,
          [1701076939.783038][16287:16289] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1701076939.783042][16287:16289] CHIP:DMG:                                 ListIndex = Null,
          [1701076939.783045][16287:16289] CHIP:DMG:                         }
          [1701076939.783050][16287:16289] CHIP:DMG:
          [1701076939.783053][16287:16289] CHIP:DMG:                         StatusIB =
          [1701076939.783056][16287:16289] CHIP:DMG:                         {
          [1701076939.783060][16287:16289] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1701076939.783063][16287:16289] CHIP:DMG:                         },
          [1701076939.783067][16287:16289] CHIP:DMG:
          [1701076939.783069][16287:16289] CHIP:DMG:                 },
          [1701076939.783074][16287:16289] CHIP:DMG:
          [1701076939.783077][16287:16289] CHIP:DMG:         ],
          [1701076939.783084][16287:16289] CHIP:DMG:
          [1701076939.783087][16287:16289] CHIP:DMG:         InteractionModelRevision = 11
          [1701076939.783090][16287:16289] CHIP:DMG: }
      disabled: true

    - label: "Step 1: TH sends a RemoveAllGroups command to DUT."
      PICS: G.S.C04.Rsp
      verification: |
          ./chip-tool groups remove-all-groups 1 1

          Verify DUT responds with SUCCESS status response on the TH(Chip-tool)  Log  and below is the sample log provided for the raspi platform:
          [1688019423.251524][1716:1718] CHIP:DMG:
          [1688019423.251561][1716:1718] CHIP:DMG:                                 StatusIB =
          [1688019423.251602][1716:1718] CHIP:DMG:                                 {
          [1688019423.251643][1716:1718] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1688019423.251686][1716:1718] CHIP:DMG:                                 },
          [1688019423.251727][1716:1718] CHIP:DMG:
      disabled: true

    - label:
          "Step 2: TH sends a AddGroup command to DUT with the GroupID field set
          to G1."
      PICS: G.S.C00.Rsp
      verification: |
          ./chip-tool groups add-group 0x0001 grp1 1 1

          Verify the AddGroupResponse with following fields:
          Status is SUCCESS
          Group ID is 0x0001  on the TH(Chip-tool) log and below is the sample log provided for the raspi platform:

          [1701259653.925863][10637:10639] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0004 Command=0x0000_0000
          [1701259653.925872][10637:10639] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0004 Command 0x0000_0000
          [1701259653.925891][10637:10639] CHIP:TOO:   AddGroupResponse: {
          [1701259653.925896][10637:10639] CHIP:TOO:     status: 0
          [1701259653.925899][10637:10639] CHIP:TOO:     groupID: 1
          [1701259653.925902][10637:10639] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 3: TH sends a RemoveAllScenes command to DUT with the GroupID
          field set to G1."
      PICS: S.S.C03.Rsp
      verification: |
          ./chip-tool scenesmanagement remove-all-scenes 0x0001 1 1

          Verify the RemoveAllScenesResponse with following fields:
          Status is SUCCESS
          Group ID is 0x0001  on the TH(Chip-tool) log and below is the sample log provided for the raspi platform:

          [1706764352.114217][4432:4434] CHIP:DMG: },
          [1706764352.114233][4432:4434] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0062 Command=0x0000_0003
          [1706764352.114241][4432:4434] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Command 0x0000_0003
          [1706764352.114257][4432:4434] CHIP:TOO:   RemoveAllScenesResponse: {
          [1706764352.114264][4432:4434] CHIP:TOO:     status: 0
          [1706764352.114267][4432:4434] CHIP:TOO:     groupID: 1
          [1706764352.114269][4432:4434] CHIP:TOO:    }
      disabled: true

    - label: "Step 4a: TH reads from the DUT the SceneTableSize attribute"
      verification: |
          ./chip-tool scenesmanagement read scene-table-size 1 1

          Verify the "SceneTableSize" attribute value is SceneTableSize(minimum=16) on the TH (Chip-tool) and below is the sample log provided for the raspi platform:

          [1706764370.034843][4435:4437] CHIP:DMG: }
          [1706764370.034970][4435:4437] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0001 DataVersion: 3964423870
          [1706764370.035000][4435:4437] CHIP:TOO:   SceneTableSize: 16
      disabled: true

    - label:
          "Step 4b: TH sends a subscription request action for FabricSceneInfo
          to the DUT."
      verification: |
          Please use Interactive mode to Verify the subscription of an event
          Here the command to enter interactive mode:--
          ./chip-tool interactive start

          Set up the subscription between DUT and TH by sending the command mentioned below, and verify that the subscription is activated successfully

          scenesmanagement subscribe fabric-scene-info 5 100 1 1

          Verify  the DUT sends a report data for FabricSceneInfo after the MinIntervalFloor time; store the RemainingCapacity field from this fabric’s entry reported in FabricSceneInfo into RemainingCapacity and is equals to (MaxRemainingCapacity) on the TH (Chip-tool) and below is the sample log provided for the raspi platform:

          [1720506229.849] [3777:3779] [DMG] ReportDataMessage =
          [1720506229.849] [3777:3779] [DMG] {
          [1720506229.849] [3777:3779] [DMG]         SubscriptionId = 0x5da2bd16,
          [1720506229.849] [3777:3779] [DMG]         AttributeReportIBs =
          [1720506229.849] [3777:3779] [DMG]         [
          [1720506229.849] [3777:3779] [DMG]                 AttributeReportIB =
          [1720506229.849] [3777:3779] [DMG]                 {
          [1720506229.849] [3777:3779] [DMG]                         AttributeDataIB =
          [1720506229.850] [3777:3779] [DMG]                         {
          [1720506229.850] [3777:3779] [DMG]                                 DataVersion = 0xdcafe47f,
          [1720506229.850] [3777:3779] [DMG]                                 AttributePathIB =
          [1720506229.850] [3777:3779] [DMG]                                 {
          [1720506229.850] [3777:3779] [DMG]                                         Endpoint = 0x1,
          [1720506229.850] [3777:3779] [DMG]                                         Cluster = 0x62,
          [1720506229.850] [3777:3779] [DMG]                                         Attribute = 0x0000_0002,
          [1720506229.850] [3777:3779] [DMG]                                 }
          [1720506229.850] [3777:3779] [DMG]
          [1720506229.850] [3777:3779] [DMG]                                 Data = [
          [1720506229.850] [3777:3779] [DMG]
          [1720506229.850] [3777:3779] [DMG]                                         {
          [1720506229.850] [3777:3779] [DMG]                                                 0x0 = 0 (unsigned),
          [1720506229.850] [3777:3779] [DMG]                                                 0x1 = 0 (unsigned),
          [1720506229.850] [3777:3779] [DMG]                                                 0x2 = 0 (unsigned),
          [1720506229.850] [3777:3779] [DMG]                                                 0x3 = false,
          [1720506229.850] [3777:3779] [DMG]                                                 0x4 = 7 (unsigned),
          [1720506229.850] [3777:3779] [DMG]                                                 0xfe = 1 (unsigned),
          [1720506229.850] [3777:3779] [DMG]                                         },
          [1720506229.851] [3777:3779] [DMG]                                 ],
          [1720506229.851] [3777:3779] [DMG]                         },
          [1720506229.851] [3777:3779] [DMG]
          [1720506229.851] [3777:3779] [DMG]                 },
          [1720506229.851] [3777:3779] [DMG]
          [1720506229.851] [3777:3779] [DMG]         ],
          [1720506229.851] [3777:3779] [DMG]
          [1720506229.851] [3777:3779] [DMG]         InteractionModelRevision = 11
          [1720506229.851] [3777:3779] [DMG] }
          [1720506229.851] [3777:3779] [TOO] Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion: 3702514815
          [1720506229.851] [3777:3779] [TOO]   FabricSceneInfo: 1 entries
          [1720506229.851] [3777:3779] [TOO]     [1]: {
          [1720506229.852] [3777:3779] [TOO]       SceneCount: 0
          [1720506229.852] [3777:3779] [TOO]       CurrentScene: 0
          [1720506229.852] [3777:3779] [TOO]       CurrentGroup: 0
          [1720506229.852] [3777:3779] [TOO]       SceneValid: FALSE
          [1720506229.852] [3777:3779] [TOO]       RemainingCapacity: 7
          [1720506229.852] [3777:3779] [TOO]       FabricIndex: 1
          [1720506229.852] [3777:3779] [TOO]      }
      disabled: true

    - label:
          "Step 4c: Keep subscription session active for the remainder of the
          test"
      verification: |
          Keep subscription session active for the remainder of the test

          Confirm that the subscription session is active for the remainder of the test by the reception of Liveness checks:
          [1706798074.365883][5179:5181] CHIP:DMG: Refresh LivenessCheckTime for 64224 milliseconds with SubscriptionId = 0x8537dfcd Peer = 01:0000000000000001
      disabled: true

    - label:
          "Step 5a: 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 20000 (20s) and no extension field sets."
      PICS: S.S.C00.Rsp
      verification: |
          scenesmanagement add-scene 0x0001 0x01 20000 scene1 [] 1 1

          Verify the AddSceneResponse with following fields:
          Status is SUCCESS
          Group ID is 0x0001
          SceneID field set to 0x01 on the TH(Chip-tool) log and below is the sample log provided for the raspi platform:

          [1706764438.086631][4438:4440] CHIP:DMG: },
          [1706764438.086653][4438:4440] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0062 Command=0x0000_0000
          [1706764438.086665][4438:4440] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Command 0x0000_0000
          [1706764438.086681][4438:4440] CHIP:TOO:   AddSceneResponse: {
          [1706764438.086685][4438:4440] CHIP:TOO:     status: 0
          [1706764438.086688][4438:4440] CHIP:TOO:     groupID: 1
          [1706764438.086690][4438:4440] CHIP:TOO:     sceneID: 1
          [1706764438.086692][4438:4440] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 5b: Verify that the DUT sends a report data for FabricSceneInfo
          after the MinIntervalFloor time; store the RemainingCapacity field
          from this fabric’s entry reported in FabricSceneInfo into
          RemainingCapacity; verify RemainingCapacity equals
          (MaxRemainingCapacity-1)."
      verification: |
          Verify that the DUT sends a report data for FabricSceneInfo after the MinIntervalFloor time; store the RemainingCapacity field from this fabric’s entry reported in FabricSceneInfo into RemainingCapacity and is equals to (MaxRemainingCapacity-1).

          [1720506650.012] [3835:3837] [DMG] ReportDataMessage =
          [1720506650.012] [3835:3837] [DMG] {
          [1720506650.012] [3835:3837] [DMG]         SubscriptionId = 0x8e3fb466,
          [1720506650.012] [3835:3837] [DMG]         AttributeReportIBs =
          [1720506650.012] [3835:3837] [DMG]         [
          [1720506650.012] [3835:3837] [DMG]                 AttributeReportIB =
          [1720506650.012] [3835:3837] [DMG]                 {
          [1720506650.012] [3835:3837] [DMG]                         AttributeDataIB =
          [1720506650.012] [3835:3837] [DMG]                         {
          [1720506650.013] [3835:3837] [DMG]                                 DataVersion = 0xd2aec24e,
          [1720506650.013] [3835:3837] [DMG]                                 AttributePathIB =
          [1720506650.013] [3835:3837] [DMG]                                 {
          [1720506650.013] [3835:3837] [DMG]                                         Endpoint = 0x1,
          [1720506650.013] [3835:3837] [DMG]                                         Cluster = 0x62,
          [1720506650.013] [3835:3837] [DMG]                                         Attribute = 0x0000_0002,
          [1720506650.013] [3835:3837] [DMG]                                 }
          [1720506650.013] [3835:3837] [DMG]
          [1720506650.013] [3835:3837] [DMG]                                 Data = [
          [1720506650.014] [3835:3837] [DMG]
          [1720506650.014] [3835:3837] [DMG]                                         {
          [1720506650.014] [3835:3837] [DMG]                                                 0x0 = 1 (unsigned),
          [1720506650.014] [3835:3837] [DMG]                                                 0x1 = 0 (unsigned),
          [1720506650.014] [3835:3837] [DMG]                                                 0x2 = 0 (unsigned),
          [1720506650.014] [3835:3837] [DMG]                                                 0x3 = false,
          [1720506650.014] [3835:3837] [DMG]                                                 0x4 = 6 (unsigned),
          [1720506650.014] [3835:3837] [DMG]                                                 0xfe = 1 (unsigned),
          [1720506650.014] [3835:3837] [DMG]                                         },
          [1720506650.015] [3835:3837] [DMG]                                 ],
          [1720506650.015] [3835:3837] [DMG]                         },
          [1720506650.015] [3835:3837] [DMG]
          [1720506650.015] [3835:3837] [DMG]                 },
          [1720506650.015] [3835:3837] [DMG]
          [1720506650.015] [3835:3837] [DMG]         ],
          [1720506650.015] [3835:3837] [DMG]
          [1720506650.015] [3835:3837] [DMG]         InteractionModelRevision = 11
          [1720506650.015] [3835:3837] [DMG] }
          [1720506650.016] [3835:3837] [TOO] Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion: 3534668366
          [1720506650.016] [3835:3837] [TOO]   FabricSceneInfo: 1 entries
          [1720506650.016] [3835:3837] [TOO]     [1]: {
          [1720506650.016] [3835:3837] [TOO]       SceneCount: 1
          [1720506650.016] [3835:3837] [TOO]       CurrentScene: 0
          [1720506650.016] [3835:3837] [TOO]       CurrentGroup: 0
          [1720506650.016] [3835:3837] [TOO]       SceneValid: FALSE
          [1720506650.016] [3835:3837] [TOO]       RemainingCapacity: 6
          [1720506650.016] [3835:3837] [TOO]       FabricIndex: 1
          [1720506650.016] [3835:3837] [TOO]      }
      disabled: true

    - label:
          "Step 6a: If RemainingCapacity is greater than 0, TH sends a
          StoreScene command to DUT with the GroupID field set to 0x0001 and the
          SceneID field set to 0x02. If RemainingCapacity is 0, continue to Step
          8a."
      PICS: S.S.C04.Rsp
      verification: |
          scenesmanagement store-scene 0x0001 0x02 1 1

          Verify the StoreSceneResponse with following fields:
          Status is SUCCESS
          Group ID is 0x0001
          SceneID field set to 0x02 on the TH(Chip-tool) log and below is the sample log provided for the raspi platform:

          [1706764492.588457][4438:4440] CHIP:DMG: },
          [1706764492.588474][4438:4440] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0062 Command=0x0000_0004
          [1706764492.588479][4438:4440] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Command 0x0000_0004
          [1706764492.588490][4438:4440] CHIP:TOO:   StoreSceneResponse: {
          [1706764492.588494][4438:4440] CHIP:TOO:     status: 0
          [1706764492.588497][4438:4440] CHIP:TOO:     groupID: 1
          [1706764492.588500][4438:4440] CHIP:TOO:     sceneID: 2
          [1706764492.588503][4438:4440] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 6b: Verify that the DUT sends a report data for FabricSceneInfo
          after the MinIntervalFloor time; store the RemainingCapacity field
          from this fabric’s entry reported in FabricSceneInfo into
          RemainingCapacity; verify RemainingCapacity equals
          (MaxRemainingCapacity-2)."
      verification: |
          Verify that the DUT sends a report data for FabricSceneInfo after the MinIntervalFloor time; store the RemainingCapacity field from this fabric’s entry reported in FabricSceneInfo into RemainingCapacity and is equals to (MaxRemainingCapacity-2).

          [1706764510.478452][4438:4440] CHIP:DMG: ReportDataMessage =
          [1706764510.478456][4438:4440] CHIP:DMG: {
          [1706764510.478462][4438:4440] CHIP:DMG:         SubscriptionId = 0x6b998a6d,
          [1706764510.478466][4438:4440] CHIP:DMG:         AttributeReportIBs =
          [1706764510.478475][4438:4440] CHIP:DMG:         [
          [1706764510.478478][4438:4440] CHIP:DMG:                 AttributeReportIB =
          [1706764510.478485][4438:4440] CHIP:DMG:                 {
          [1706764510.478488][4438:4440] CHIP:DMG:                         AttributeDataIB =
          [1706764510.478492][4438:4440] CHIP:DMG:                         {
          [1706764510.478496][4438:4440] CHIP:DMG:                                 DataVersion = 0xec4c4ec3,
          [1706764510.478499][4438:4440] CHIP:DMG:                                 AttributePathIB =
          [1706764510.478503][4438:4440] CHIP:DMG:                                 {
          [1706764510.478507][4438:4440] CHIP:DMG:                                         Endpoint = 0x1,
          [1706764510.478511][4438:4440] CHIP:DMG:                                         Cluster = 0x62,
          [1706764510.478515][4438:4440] CHIP:DMG:                                         Attribute = 0x0000_0002,
          [1706764510.478518][4438:4440] CHIP:DMG:                                 }
          [1706764510.478522][4438:4440] CHIP:DMG:
          [1706764510.478526][4438:4440] CHIP:DMG:                                 Data = [
          [1706764510.478530][4438:4440] CHIP:DMG:
          [1706764510.478535][4438:4440] CHIP:DMG:                                         {
          [1706764510.478542][4438:4440] CHIP:DMG:                                                 0x0 = 2,
          [1706764510.478547][4438:4440] CHIP:DMG:                                                 0x1 = 2,
          [1706764510.478551][4438:4440] CHIP:DMG:                                                 0x2 = 1,
          [1706764510.478556][4438:4440] CHIP:DMG:                                                 0x3 = true,
          [1706764510.478561][4438:4440] CHIP:DMG:                                                 0x4 = 5,
          [1706764510.478566][4438:4440] CHIP:DMG:                                                 0xfe = 1,
          [1706764510.478570][4438:4440] CHIP:DMG:                                         },
          [1706764510.478575][4438:4440] CHIP:DMG:                                 ],
          [1706764510.478578][4438:4440] CHIP:DMG:                         },
          [1706764510.478586][4438:4440] CHIP:DMG:
          [1706764510.478589][4438:4440] CHIP:DMG:                 },
          [1706764510.478597][4438:4440] CHIP:DMG:
          [1706764510.478601][4438:4440] CHIP:DMG:         ],
          [1706764510.478609][4438:4440] CHIP:DMG:
          [1706764510.478612][4438:4440] CHIP:DMG:         InteractionModelRevision = 11
          [1706764510.478616][4438:4440] CHIP:DMG: }
          [1706764510.478681][4438:4440] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion: 3964423875
          [1706764510.478697][4438:4440] CHIP:TOO:   FabricSceneInfo: 1 entries
          [1706764510.478710][4438:4440] CHIP:TOO:     [1]: {
          [1706764510.478714][4438:4440] CHIP:TOO:       SceneCount: 2
          [1706764510.478718][4438:4440] CHIP:TOO:       CurrentScene: 2
          [1706764510.478721][4438:4440] CHIP:TOO:       CurrentGroup: 1
          [1706764510.478725][4438:4440] CHIP:TOO:       SceneValid: TRUE
          [1706764510.478729][4438:4440] CHIP:TOO:       RemainingCapacity: 5
          [1706764510.478733][4438:4440] CHIP:TOO:       FabricIndex: 1
          [1706764510.478737][4438:4440] CHIP:TOO:      }
      disabled: true

    - label:
          "Step 7a: If RemainingCapacity is greater than 0, TH sends a AddScene
          command to DUT with the GroupID field set to G1, the SceneID field set
          to 0x03, the TransitionTime field set to 20000 (20s) and no extension
          field sets. If RemainingCapacity is 0, continue to Step 8a."
      PICS: S.S.C00.Rsp
      verification: |
          scenesmanagement add-scene 0x0001 0x03 20000 scene1 [] 1 1

          Verify the AddSceneResponse with following fields:
          Status is SUCCESS
          Group ID is 0x0001
          SceneID field set to 0x03 on the TH(Chip-tool) log and below is the sample log provided for the raspi platform:

          [1706764534.554889][4438:4440] CHIP:DMG: },
          [1706764534.554927][4438:4440] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0062 Command=0x0000_0000
          [1706764534.554933][4438:4440] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Command 0x0000_0000
          [1706764534.554947][4438:4440] CHIP:TOO:   AddSceneResponse: {
          [1706764534.554952][4438:4440] CHIP:TOO:     status: 0
          [1706764534.554955][4438:4440] CHIP:TOO:     groupID: 1
          [1706764534.554958][4438:4440] CHIP:TOO:     sceneID: 3
          [1706764534.554961][4438:4440] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 7b: Verify that the DUT sends a report data for FabricSceneInfo
          after the MinIntervalFloor time; store the RemainingCapacity field
          from this fabric’s entry reported in FabricSceneInfo into
          RemainingCapacity; verify RemainingCapacity equals
          (MaxRemainingCapacity-3)."
      verification: |
          Verify that the DUT sends a report data for FabricSceneInfo after the MinIntervalFloor time; store the RemainingCapacity field from this fabric’s entry reported in FabricSceneInfo into RemainingCapacity and is equals to (MaxRemainingCapacity-3).

          [1706764553.457875][4438:4440] CHIP:DMG: ReportDataMessage =
          [1706764553.457878][4438:4440] CHIP:DMG: {
          [1706764553.457880][4438:4440] CHIP:DMG:         SubscriptionId = 0xa7ba9271,
          [1706764553.457883][4438:4440] CHIP:DMG:         AttributeReportIBs =
          [1706764553.457888][4438:4440] CHIP:DMG:         [
          [1706764553.457892][4438:4440] CHIP:DMG:                 AttributeReportIB =
          [1706764553.457901][4438:4440] CHIP:DMG:                 {
          [1706764553.457905][4438:4440] CHIP:DMG:                         AttributeDataIB =
          [1706764553.457910][4438:4440] CHIP:DMG:                         {
          [1706764553.457913][4438:4440] CHIP:DMG:                                 DataVersion = 0xec4c4ec5,
          [1706764553.457915][4438:4440] CHIP:DMG:                                 AttributePathIB =
          [1706764553.457918][4438:4440] CHIP:DMG:                                 {
          [1706764553.457920][4438:4440] CHIP:DMG:                                         Endpoint = 0x1,
          [1706764553.457923][4438:4440] CHIP:DMG:                                         Cluster = 0x62,
          [1706764553.457926][4438:4440] CHIP:DMG:                                         Attribute = 0x0000_0002,
          [1706764553.457929][4438:4440] CHIP:DMG:                                 }
          [1706764553.457932][4438:4440] CHIP:DMG:
          [1706764553.457935][4438:4440] CHIP:DMG:                                 Data = [
          [1706764553.457938][4438:4440] CHIP:DMG:
          [1706764553.457941][4438:4440] CHIP:DMG:                                         {
          [1706764553.457944][4438:4440] CHIP:DMG:                                                 0x0 = 3,
          [1706764553.457947][4438:4440] CHIP:DMG:                                                 0x1 = 2,
          [1706764553.457950][4438:4440] CHIP:DMG:                                                 0x2 = 1,
          [1706764553.457953][4438:4440] CHIP:DMG:                                                 0x3 = true,
          [1706764553.457957][4438:4440] CHIP:DMG:                                                 0x4 = 4,
          [1706764553.457963][4438:4440] CHIP:DMG:                                                 0xfe = 1,
          [1706764553.457968][4438:4440] CHIP:DMG:                                         },
          [1706764553.457973][4438:4440] CHIP:DMG:                                 ],
          [1706764553.457977][4438:4440] CHIP:DMG:                         },
          [1706764553.457985][4438:4440] CHIP:DMG:
          [1706764553.457990][4438:4440] CHIP:DMG:                 },
          [1706764553.457998][4438:4440] CHIP:DMG:
          [1706764553.458002][4438:4440] CHIP:DMG:         ],
          [1706764553.458011][4438:4440] CHIP:DMG:
          [1706764553.458016][4438:4440] CHIP:DMG:         InteractionModelRevision = 11
          [1706764553.458019][4438:4440] CHIP:DMG: }
          [1706764553.458074][4438:4440] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion: 3964423877
          [1706764553.458086][4438:4440] CHIP:TOO:   FabricSceneInfo: 1 entries
          [1706764553.458095][4438:4440] CHIP:TOO:     [1]: {
          [1706764553.458098][4438:4440] CHIP:TOO:       SceneCount: 3
          [1706764553.458100][4438:4440] CHIP:TOO:       CurrentScene: 2
          [1706764553.458102][4438:4440] CHIP:TOO:       CurrentGroup: 1
          [1706764553.458104][4438:4440] CHIP:TOO:       SceneValid: TRUE
          [1706764553.458107][4438:4440] CHIP:TOO:       RemainingCapacity: 4
          [1706764553.458109][4438:4440] CHIP:TOO:       FabricIndex: 1
          [1706764553.458111][4438:4440] CHIP:TOO:      }
      disabled: true

    - label:
          "Step 8a: TH sends a RemoveScene command to DUT with the GroupID field
          set to G1 and the SceneID field set to 0x01."
      PICS: S.S.C02.Rsp
      verification: |
          scenesmanagement remove-scene 0x0001 0x01 1 1

          Verify the RemoveScenesResponse with following fields:
          Status is SUCCESS
          Group ID is 0x0001
          SceneID field set to 0x01 on the TH(Chip-tool) log and below is the sample log provided for the raspi platform:

          [1706764583.008025][4438:4440] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0062 Command=0x0000_0002
          [1706764583.008031][4438:4440] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Command 0x0000_0002
          [1706764583.008044][4438:4440] CHIP:TOO:   RemoveSceneResponse: {
          [1706764583.008049][4438:4440] CHIP:TOO:     status: 0
          [1706764583.008054][4438:4440] CHIP:TOO:     groupID: 1
          [1706764583.008059][4438:4440] CHIP:TOO:     sceneID: 1
          [1706764583.008064][4438:4440] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 8b: Verify that the DUT sends a report data for FabricSceneInfo
          after the MinIntervalFloor time; store the RemainingCapacity field
          from this fabric’s entry reported in FabricSceneInfo into
          RemainingCapacity; verify RemainingCapacity equals
          (MaxRemainingCapacity-2)."
      verification: |
          Verify that the DUT sends a report data for FabricSceneInfo after the MinIntervalFloor time; store the RemainingCapacity field from this fabric’s entry reported in FabricSceneInfo into RemainingCapacity and is equals to (MaxRemainingCapacity-2).

          [1706764600.346946][4438:4440] CHIP:DMG: ReportDataMessage =
          [1706764600.346951][4438:4440] CHIP:DMG: {
          [1706764600.346955][4438:4440] CHIP:DMG:         SubscriptionId = 0xb5fdbb95,
          [1706764600.346959][4438:4440] CHIP:DMG:         AttributeReportIBs =
          [1706764600.346968][4438:4440] CHIP:DMG:         [
          [1706764600.346973][4438:4440] CHIP:DMG:                 AttributeReportIB =
          [1706764600.346982][4438:4440] CHIP:DMG:                 {
          [1706764600.346986][4438:4440] CHIP:DMG:                         AttributeDataIB =
          [1706764600.346992][4438:4440] CHIP:DMG:                         {
          [1706764600.346999][4438:4440] CHIP:DMG:                                 DataVersion = 0xec4c4ec7,
          [1706764600.347003][4438:4440] CHIP:DMG:                                 AttributePathIB =
          [1706764600.347010][4438:4440] CHIP:DMG:                                 {
          [1706764600.347016][4438:4440] CHIP:DMG:                                         Endpoint = 0x1,
          [1706764600.347021][4438:4440] CHIP:DMG:                                         Cluster = 0x62,
          [1706764600.347027][4438:4440] CHIP:DMG:                                         Attribute = 0x0000_0002,
          [1706764600.347031][4438:4440] CHIP:DMG:                                 }
          [1706764600.347038][4438:4440] CHIP:DMG:
          [1706764600.347043][4438:4440] CHIP:DMG:                                 Data = [
          [1706764600.347048][4438:4440] CHIP:DMG:
          [1706764600.347054][4438:4440] CHIP:DMG:                                         {
          [1706764600.347060][4438:4440] CHIP:DMG:                                                 0x0 = 2,
          [1706764600.347065][4438:4440] CHIP:DMG:                                                 0x1 = 2,
          [1706764600.347071][4438:4440] CHIP:DMG:                                                 0x2 = 1,
          [1706764600.347077][4438:4440] CHIP:DMG:                                                 0x3 = true,
          [1706764600.347083][4438:4440] CHIP:DMG:                                                 0x4 = 5,
          [1706764600.347089][4438:4440] CHIP:DMG:                                                 0xfe = 1,
          [1706764600.347094][4438:4440] CHIP:DMG:                                         },
          [1706764600.347098][4438:4440] CHIP:DMG:                                 ],
          [1706764600.347103][4438:4440] CHIP:DMG:                         },
          [1706764600.347111][4438:4440] CHIP:DMG:
          [1706764600.347115][4438:4440] CHIP:DMG:                 },
          [1706764600.347124][4438:4440] CHIP:DMG:
          [1706764600.347128][4438:4440] CHIP:DMG:         ],
          [1706764600.347135][4438:4440] CHIP:DMG:
          [1706764600.347138][4438:4440] CHIP:DMG:         InteractionModelRevision = 11
          [1706764600.347140][4438:4440] CHIP:DMG: }
          [1706764600.347196][4438:4440] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion: 3964423879
          [1706764600.347211][4438:4440] CHIP:TOO:   FabricSceneInfo: 1 entries
          [1706764600.347224][4438:4440] CHIP:TOO:     [1]: {
          [1706764600.347230][4438:4440] CHIP:TOO:       SceneCount: 2
          [1706764600.347234][4438:4440] CHIP:TOO:       CurrentScene: 2
          [1706764600.347257][4438:4440] CHIP:TOO:       CurrentGroup: 1
          [1706764600.347261][4438:4440] CHIP:TOO:       SceneValid: TRUE
          [1706764600.347267][4438:4440] CHIP:TOO:       RemainingCapacity: 5
          [1706764600.347272][4438:4440] CHIP:TOO:       FabricIndex: 1
          [1706764600.347276][4438:4440] CHIP:TOO:      }
      disabled: true

    - label:
          "Step 9a: TH sends a RemoveAllScenes command to DUT with the GroupID
          field set to G1."
      PICS: S.S.C03.Rsp
      verification: |
          scenesmanagement remove-all-scenes 0x0001 1 1

          Verify the RemoveAllScenesResponse with following fields:
          Status is SUCCESS
          Group ID is 0x0001  on the TH(Chip-tool) log and below is the sample log provided for the raspi platform:

          [1706764629.391457][4438:4440] CHIP:DMG: },
          [1706764629.391475][4438:4440] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0062 Command=0x0000_0003
          [1706764629.391479][4438:4440] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Command 0x0000_0003
          [1706764629.391488][4438:4440] CHIP:TOO:   RemoveAllScenesResponse: {
          [1706764629.391492][4438:4440] CHIP:TOO:     status: 0
          [1706764629.391495][4438:4440] CHIP:TOO:     groupID: 1
          [1706764629.391498][4438:4440] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 9b: Verify that the DUT sends a report data for FabricSceneInfo
          after the MinIntervalFloor time; store the RemainingCapacity field
          from this fabric’s entry reported in FabricSceneInfo into
          RemainingCapacity; verify RemainingCapacity equals
          (MaxRemainingCapacity)."
      verification: |
          Verify that the DUT sends a report data for FabricSceneInfo after the MinIntervalFloor time; store the RemainingCapacity field from this fabric’s entry reported in FabricSceneInfo into RemainingCapacity and is equals to (MaxRemainingCapacity).

          [1706764645.968086][4438:4440] CHIP:DMG: ReportDataMessage =
          [1706764645.968089][4438:4440] CHIP:DMG: {
          [1706764645.968092][4438:4440] CHIP:DMG:         SubscriptionId = 0x8dd9174a,
          [1706764645.968094][4438:4440] CHIP:DMG:         AttributeReportIBs =
          [1706764645.968101][4438:4440] CHIP:DMG:         [
          [1706764645.968103][4438:4440] CHIP:DMG:                 AttributeReportIB =
          [1706764645.968109][4438:4440] CHIP:DMG:                 {
          [1706764645.968112][4438:4440] CHIP:DMG:                         AttributeDataIB =
          [1706764645.968115][4438:4440] CHIP:DMG:                         {
          [1706764645.968119][4438:4440] CHIP:DMG:                                 DataVersion = 0xec4c4ec9,
          [1706764645.968122][4438:4440] CHIP:DMG:                                 AttributePathIB =
          [1706764645.968127][4438:4440] CHIP:DMG:                                 {
          [1706764645.968130][4438:4440] CHIP:DMG:                                         Endpoint = 0x1,
          [1706764645.968134][4438:4440] CHIP:DMG:                                         Cluster = 0x62,
          [1706764645.968137][4438:4440] CHIP:DMG:                                         Attribute = 0x0000_0002,
          [1706764645.968140][4438:4440] CHIP:DMG:                                 }
          [1706764645.968145][4438:4440] CHIP:DMG:
          [1706764645.968148][4438:4440] CHIP:DMG:                                 Data = [
          [1706764645.968151][4438:4440] CHIP:DMG:
          [1706764645.968154][4438:4440] CHIP:DMG:                                         {
          [1706764645.968158][4438:4440] CHIP:DMG:                                                 0x0 = 0,
          [1706764645.968162][4438:4440] CHIP:DMG:                                                 0x1 = 2,
          [1706764645.968166][4438:4440] CHIP:DMG:                                                 0x2 = 1,
          [1706764645.968169][4438:4440] CHIP:DMG:                                                 0x3 = false,
          [1706764645.968173][4438:4440] CHIP:DMG:                                                 0x4 = 7,
          [1706764645.968177][4438:4440] CHIP:DMG:                                                 0xfe = 1,
          [1706764645.968180][4438:4440] CHIP:DMG:                                         },
          [1706764645.968184][4438:4440] CHIP:DMG:                                 ],
          [1706764645.968186][4438:4440] CHIP:DMG:                         },
          [1706764645.968192][4438:4440] CHIP:DMG:
          [1706764645.968195][4438:4440] CHIP:DMG:                 },
          [1706764645.968201][4438:4440] CHIP:DMG:
          [1706764645.968203][4438:4440] CHIP:DMG:         ],
          [1706764645.968210][4438:4440] CHIP:DMG:
          [1706764645.968212][4438:4440] CHIP:DMG:         InteractionModelRevision = 11
          [1706764645.968215][4438:4440] CHIP:DMG: }
          [1706764645.968262][4438:4440] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion: 3964423881
          [1706764645.968272][4438:4440] CHIP:TOO:   FabricSceneInfo: 1 entries
          [1706764645.968283][4438:4440] CHIP:TOO:     [1]: {
          [1706764645.968286][4438:4440] CHIP:TOO:       SceneCount: 0
          [1706764645.968289][4438:4440] CHIP:TOO:       CurrentScene: 2
          [1706764645.968291][4438:4440] CHIP:TOO:       CurrentGroup: 1
          [1706764645.968294][4438:4440] CHIP:TOO:       SceneValid: FALSE
          [1706764645.968297][4438:4440] CHIP:TOO:       RemainingCapacity: 7
          [1706764645.968300][4438:4440] CHIP:TOO:       FabricIndex: 1
          [1706764645.968303][4438:4440] CHIP:TOO:      }
      disabled: true

    - label:
          "Step 10: TH removes the Group key set that was added by sending a
          KeySetRemove command to the GroupKeyManagement cluster with the
          GroupKeySetID field set to 0x01a1"
      verification: |
          groupkeymanagement key-set-remove 0x01a1 1 0

          Verify DUT responds with SUCCESS status response on the TH(Chip-tool)  Log  and below is the sample log provided for the raspi platform:

          [1688019719.867880][1746:1748] CHIP:DMG:                                 },
          [1688019719.867923][1746:1748] CHIP:DMG:
          [1688019719.867956][1746:1748] CHIP:DMG:                                 StatusIB =
          [1688019719.867995][1746:1748] CHIP:DMG:                                 {
          [1688019719.868033][1746:1748] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1688019719.868071][1746:1748] CHIP:DMG:                                 },
      disabled: true
