# 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: 3.3.1. [TC-IDM-3.1] Write Request Action from DUT to TH. [DUT Client]

PICS:
    - MCORE.IDM.C.WriteRequest

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

tests:
    - label: "Note"
      verification: |
          Chip-tool command used below are an example to verify the  DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
      disabled: true

    - label:
          "DUT sends the WriteRequestMessage to the TH to modify one attribute
          data"
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)


           ./chip-tool levelcontrol write on-level 2 1 1

          On TH(reference app) Verify that the correct WriteRequestMessage has been received for the data sent in the above command

          [1655795552.551487][7331:7331] CHIP:EM: Handling via exchange: 41640r, Delegate: 0xaaaad9aed418
          [1655795552.551552][7331:7331] CHIP:IM: Received Write request
          [1655795552.551589][7331:7331] CHIP:DMG: IM WH moving to [Initialized]
          [1655795552.551669][7331:7331] CHIP:DMG: WriteRequestMessage =
          [1655795552.551710][7331:7331] CHIP:DMG: {
          [1655795552.551747][7331:7331] CHIP:DMG:         suppressResponse = false,
          [1655795552.551791][7331:7331] CHIP:DMG:         timedRequest = false,
          [1655795552.551832][7331:7331] CHIP:DMG:         AttributeDataIBs =
          [1655795552.551882][7331:7331] CHIP:DMG:         [
          [1655795552.551921][7331:7331] CHIP:DMG:                 AttributeDataIB =
          [1655795552.551966][7331:7331] CHIP:DMG:                 {
          [1655795552.552009][7331:7331] CHIP:DMG:                         AttributePathIB =
          [1655795552.552072][7331:7331] CHIP:DMG:                         {
          [1655795552.552125][7331:7331] CHIP:DMG:                                 Endpoint = 0x1,
          [1655795552.552180][7331:7331] CHIP:DMG:                                 Cluster = 0x8,
          [1655795552.552234][7331:7331] CHIP:DMG:                                 Attribute = 0x0000_0011,
          [1655795552.552275][7331:7331] CHIP:DMG:                         }
          [1655795552.552327][7331:7331] CHIP:DMG:
          [1655795552.552381][7331:7331] CHIP:DMG:                         Data = 2,
          [1655795552.552428][7331:7331] CHIP:DMG:                 },
          [1655795552.552478][7331:7331] CHIP:DMG:
          [1655795552.552517][7331:7331] CHIP:DMG:         ],
          [1655795552.552564][7331:7331] CHIP:DMG:
          [1655795552.552605][7331:7331] CHIP:DMG:         moreChunkedMessages = false,
          [1655795552.552647][7331:7331] CHIP:DMG:         InteractionModelRevision = 1
          [1655795552.552686][7331:7331] CHIP:DMG: },

          If the DUT has to provision to verify the logs,, verify that TH all-clusters-app sent success response

          [1657883782.721742][2796:2801] CHIP:DMG: WriteResponseMessage =
          [1657883782.721783][2796:2801] CHIP:DMG: {
          [1657883782.721819][2796:2801] CHIP:DMG:         AttributeStatusIBs =
          [1657883782.721874][2796:2801] CHIP:DMG:         [
          [1657883782.721914][2796:2801] CHIP:DMG:                 AttributeStatusIB =
          [1657883782.721959][2796:2801] CHIP:DMG:                 {
          [1657883782.722002][2796:2801] CHIP:DMG:                         AttributePathIB =
          [1657883782.722054][2796:2801] CHIP:DMG:                         {
          [1657883782.722112][2796:2801] CHIP:DMG:                                 Endpoint = 0x1,
          [1657883782.722172][2796:2801] CHIP:DMG:                                 Cluster = 0x8,
          [1657883782.722227][2796:2801] CHIP:DMG:                                 Attribute = 0x0000_0011,
          [1657883782.722278][2796:2801] CHIP:DMG:                         }
          [1657883782.722335][2796:2801] CHIP:DMG:
          [1657883782.722384][2796:2801] CHIP:DMG:                         StatusIB =
          [1657883782.722435][2796:2801] CHIP:DMG:                         {
          [1657883782.722493][2796:2801] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1657883782.722547][2796:2801] CHIP:DMG:                         },
          [1657883782.722605][2796:2801] CHIP:DMG:
          [1657883782.722648][2796:2801] CHIP:DMG:                 },
          [1657883782.722697][2796:2801] CHIP:DMG:
          [1657883782.722736][2796:2801] CHIP:DMG:         ],
          [1657883782.722783][2796:2801] CHIP:DMG:
          [1657883782.722823][2796:2801] CHIP:DMG:         InteractionModelRevision = 1
          [1657883782.722860][2796:2801] CHIP:DMG: }
          [1657883782.722967][2796:2801] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1657883782.723047][2796:2801] CHIP:EM: Sending Standalone Ack for MessageCounter:76592104 on exchange 56753i


           ./chip-tool levelcontrol read on-level 1 1

          verify on TH(reference app) receives the right write Request Message for the data sent in the above command

          [1657883808.062792][2457:2457] CHIP:IM: Received Read request
          [1657883808.062871][2457:2457] CHIP:DMG: ReadRequestMessage =
          [1657883808.062900][2457:2457] CHIP:DMG: {
          [1657883808.062922][2457:2457] CHIP:DMG:         AttributePathIBs =
          [1657883808.062949][2457:2457] CHIP:DMG:         [
          [1657883808.062972][2457:2457] CHIP:DMG:                 AttributePathIB =
          [1657883808.063000][2457:2457] CHIP:DMG:                 {
          [1657883808.063028][2457:2457] CHIP:DMG:                         Endpoint = 0x1,
          [1657883808.063068][2457:2457] CHIP:DMG:                         Cluster = 0x8,
          [1657883808.063105][2457:2457] CHIP:DMG:                         Attribute = 0x0000_0011,
          [1657883808.063138][2457:2457] CHIP:DMG:                 }
          [1657883808.063167][2457:2457] CHIP:DMG:
          [1657883808.063192][2457:2457] CHIP:DMG:         ],
          [1657883808.063221][2457:2457] CHIP:DMG:
          [1657883808.063247][2457:2457] CHIP:DMG:         isFabricFiltered = true,
          [1657883808.063272][2457:2457] CHIP:DMG:         InteractionModelRevision = 1
          [1657883808.063295][2457:2457] CHIP:DMG: },
          [1657883808.063369][2457:2457] CHIP:DMG: IM RH moving to [GeneratingReports]

          If the DUT has to provision to verify the logs,, verify that TH all-clusters-app sent success response

          [1655795604.755214][6880:6885] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 737039636
          [1655795604.755363][6880:6885] CHIP:TOO:   on level: 2
          [1655795604.755460][6880:6885] CHIP:EM: Sending Standalone Ack for MessageCounter:83198098 on exchange 53763iOn TH(reference app) Verify that the correct WriteRequestMessage has been received for the data sent in the above command
      disabled: true

    - label:
          "DUT sends the WriteRequestMessage to the TH to modify one attribute
          on all Endpoints. On receipt of this message, TH should modify the
          attribute and send a WriteResponseMessage to the DUT."
      verification: |
          Out of Scope for V1.0
      disabled: true

    - label:
          "DUT sends the WriteRequestMessage to the TH to write an attribute of
          data type bool."
      PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_Bool
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

           ./chip-tool  basicinformation write local-config-disabled 1 1 0


          On TH(reference app) Verify that the correct WriteRequestMessage has been received for the data sent in the above command

          [1655795795.033946][7331:7331] CHIP:EM: Handling via exchange: 11668r, Delegate: 0xaaaad9aed418
          [1655795795.034011][7331:7331] CHIP:IM: Received Write request
          [1655795795.034050][7331:7331] CHIP:DMG: IM WH moving to [Initialized]
          [1655795795.034127][7331:7331] CHIP:DMG: WriteRequestMessage =
          [1655795795.034168][7331:7331] CHIP:DMG: {
          [1655795795.034206][7331:7331] CHIP:DMG:         suppressResponse = false,
          [1655795795.034250][7331:7331] CHIP:DMG:         timedRequest = false,
          [1655795795.034290][7331:7331] CHIP:DMG:         AttributeDataIBs =
          [1655795795.034340][7331:7331] CHIP:DMG:         [
          [1655795795.034380][7331:7331] CHIP:DMG:                 AttributeDataIB =
          [1655795795.034425][7331:7331] CHIP:DMG:                 {
          [1655795795.034467][7331:7331] CHIP:DMG:                         AttributePathIB =
          [1655795795.034515][7331:7331] CHIP:DMG:                         {
          [1655795795.034568][7331:7331] CHIP:DMG:                                 Endpoint = 0x0,
          [1655795795.034625][7331:7331] CHIP:DMG:                                 Cluster = 0x28,
          [1655795795.034680][7331:7331] CHIP:DMG:                                 Attribute = 0x0000_0010,
          [1655795795.034737][7331:7331] CHIP:DMG:                         }
          [1655795795.034784][7331:7331] CHIP:DMG:
          [1655795795.034834][7331:7331] CHIP:DMG:                         Data = true,
          [1655795795.034880][7331:7331] CHIP:DMG:                 },
          [1655795795.034929][7331:7331] CHIP:DMG:
          [1655795795.034968][7331:7331] CHIP:DMG:         ],
          [1655795795.035015][7331:7331] CHIP:DMG:
          [1655795795.035056][7331:7331] CHIP:DMG:         moreChunkedMessages = false,
          [1655795795.035099][7331:7331] CHIP:DMG:         InteractionModelRevision = 1
          [1655795795.035138][7331:7331] CHIP:DMG: },
          [1655795795.035259][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=m



          If the DUT has to provision to verify the logs,  verify that TH all-clusters-app sent success response

          [1657883938.394965][2822:2827] CHIP:DMG: WriteResponseMessage =
          [1657883938.394995][2822:2827] CHIP:DMG: {
          [1657883938.395022][2822:2827] CHIP:DMG:         AttributeStatusIBs =
          [1657883938.395060][2822:2827] CHIP:DMG:         [
          [1657883938.395090][2822:2827] CHIP:DMG:                 AttributeStatusIB =
          [1657883938.395127][2822:2827] CHIP:DMG:                 {
          [1657883938.395158][2822:2827] CHIP:DMG:                         AttributePathIB =
          [1657883938.395196][2822:2827] CHIP:DMG:                         {
          [1657883938.395241][2822:2827] CHIP:DMG:                                 Endpoint = 0x0,
          [1657883938.395283][2822:2827] CHIP:DMG:                                 Cluster = 0x28,
          [1657883938.395324][2822:2827] CHIP:DMG:                                 Attribute = 0x0000_0010,
          [1657883938.395363][2822:2827] CHIP:DMG:                         }
          [1657883938.395406][2822:2827] CHIP:DMG:
          [1657883938.395446][2822:2827] CHIP:DMG:                         StatusIB =
          [1657883938.395485][2822:2827] CHIP:DMG:                         {
          [1657883938.395522][2822:2827] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1657883938.395561][2822:2827] CHIP:DMG:                         },
          [1657883938.395603][2822:2827] CHIP:DMG:
          [1657883938.395636][2822:2827] CHIP:DMG:                 },
          [1657883938.395672][2822:2827] CHIP:DMG:
          [1657883938.395700][2822:2827] CHIP:DMG:         ],
          [1657883938.395735][2822:2827] CHIP:DMG:
          [1657883938.395765][2822:2827] CHIP:DMG:         InteractionModelRevision = 1
          [1657883938.395794][2822:2827] CHIP:DMG: }
          [1657883938.395875][2822:2827] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1657883938.395940][2822:2827] CHIP:EM: Sending Standalone Ack for MessageCounter:157043526 on exchange 18989i


           ./chip-tool  basicinformation read local-config-disabled 1 0

          verify on TH(reference app) receives the right write Request Message for the data sent in the above command

          [1657884119.522809][2748:2748] CHIP:IM: Received Read request
          [1657884119.522885][2748:2748] CHIP:DMG: ReadRequestMessage =
          [1657884119.522911][2748:2748] CHIP:DMG: {
          [1657884119.522933][2748:2748] CHIP:DMG:         AttributePathIBs =
          [1657884119.522959][2748:2748] CHIP:DMG:         [
          [1657884119.522982][2748:2748] CHIP:DMG:                 AttributePathIB =
          [1657884119.523009][2748:2748] CHIP:DMG:                 {
          [1657884119.523037][2748:2748] CHIP:DMG:                         Endpoint = 0x0,
          [1657884119.523067][2748:2748] CHIP:DMG:                         Cluster = 0x28,
          [1657884119.523097][2748:2748] CHIP:DMG:                         Attribute = 0x0000_0010,
          [1657884119.523126][2748:2748] CHIP:DMG:                 }
          [1657884119.523153][2748:2748] CHIP:DMG:
          [1657884119.523179][2748:2748] CHIP:DMG:         ],
          [1657884119.523207][2748:2748] CHIP:DMG:
          [1657884119.523233][2748:2748] CHIP:DMG:         isFabricFiltered = true,
          [1657884119.523257][2748:2748] CHIP:DMG:         InteractionModelRevision = 1
          [1657884119.523280][2748:2748] CHIP:DMG: },


          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response

          [1655795843.336042][6902:6907] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 1263909562
          [1655795843.336093][6902:6907] CHIP:TOO:   LocalConfigDisabled: TRUE
          [1655795843.336251][6902:6907] CHIP:EM: Sending Standalone Ack for MessageCounter:108030495 on exchange 43207i
      disabled: true

    - label:
          "DUT sends the WriteRequestMessage to the TH to write an attribute of
          data type string."
      PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_String
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

           ./chip-tool basicinformation write node-label node 1 0


          On TH(reference app) Verify that the correct WriteRequestMessage has been received for the data sent in the above command

          [1655796035.022296][7331:7331] CHIP:EM: Handling via exchange: 64908r, Delegate: 0xaaaad9aed418
          [1655796035.022365][7331:7331] CHIP:IM: Received Write request
          [1655796035.022407][7331:7331] CHIP:DMG: IM WH moving to [Initialized]
          [1655796035.022494][7331:7331] CHIP:DMG: WriteRequestMessage =
          [1655796035.022541][7331:7331] CHIP:DMG: {
          [1655796035.022584][7331:7331] CHIP:DMG:         suppressResponse = false,
          [1655796035.022633][7331:7331] CHIP:DMG:         timedRequest = false,
          [1655796035.022679][7331:7331] CHIP:DMG:         AttributeDataIBs =
          [1655796035.022735][7331:7331] CHIP:DMG:         [
          [1655796035.022780][7331:7331] CHIP:DMG:                 AttributeDataIB =
          [1655796035.022831][7331:7331] CHIP:DMG:                 {
          [1655796035.022879][7331:7331] CHIP:DMG:                         AttributePathIB =
          [1655796035.022939][7331:7331] CHIP:DMG:                         {
          [1655796035.022999][7331:7331] CHIP:DMG:                                 Endpoint = 0x0,
          [1655796035.023067][7331:7331] CHIP:DMG:                                 Cluster = 0x28,
          [1655796035.023134][7331:7331] CHIP:DMG:                                 Attribute = 0x0000_0005,
          [1655796035.023192][7331:7331] CHIP:DMG:                         }
          [1655796035.023252][7331:7331] CHIP:DMG:
          [1655796035.023313][7331:7331] CHIP:DMG:                         Data = "node",
          [1655796035.023366][7331:7331] CHIP:DMG:                 },
          [1655796035.023421][7331:7331] CHIP:DMG:
          [1655796035.023466][7331:7331] CHIP:DMG:         ],
          [1655796035.023519][7331:7331] CHIP:DMG:
          [1655796035.023565][7331:7331] CHIP:DMG:         moreChunkedMessages = false,
          [1655796035.023613][7331:7331] CHIP:DMG:         InteractionModelRevision = 1
          [1655796035.023656][7331:7331] CHIP:DMG: },
          [1655796035.023791][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=m
          [1655796035.023851][7331:7331] CHIP:DMG: AccessControl: allowed

          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response

          [1657884155.221193][2865:2870] CHIP:DMG: WriteResponseMessage =
          [1657884155.221246][2865:2870] CHIP:DMG: {
          [1657884155.221292][2865:2870] CHIP:DMG:         AttributeStatusIBs =
          [1657884155.221356][2865:2870] CHIP:DMG:         [
          [1657884155.221406][2865:2870] CHIP:DMG:                 AttributeStatusIB =
          [1657884155.221464][2865:2870] CHIP:DMG:                 {
          [1657884155.221518][2865:2870] CHIP:DMG:                         AttributePathIB =
          [1657884155.221588][2865:2870] CHIP:DMG:                         {
          [1657884155.221635][2865:2870] CHIP:DMG:                                 Endpoint = 0x0,
          [1657884155.221673][2865:2870] CHIP:DMG:                                 Cluster = 0x28,
          [1657884155.221710][2865:2870] CHIP:DMG:                                 Attribute = 0x0000_0005,
          [1657884155.221798][2865:2870] CHIP:DMG:                         }
          [1657884155.221837][2865:2870] CHIP:DMG:
          [1657884155.221868][2865:2870] CHIP:DMG:                         StatusIB =
          [1657884155.221900][2865:2870] CHIP:DMG:                         {
          [1657884155.221932][2865:2870] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1657884155.221965][2865:2870] CHIP:DMG:                         },
          [1657884155.221996][2865:2870] CHIP:DMG:
          [1657884155.222022][2865:2870] CHIP:DMG:                 },
          [1657884155.222052][2865:2870] CHIP:DMG:
          [1657884155.222077][2865:2870] CHIP:DMG:         ],
          [1657884155.222108][2865:2870] CHIP:DMG:
          [1657884155.222132][2865:2870] CHIP:DMG:         InteractionModelRevision = 1
          [1657884155.222157][2865:2870] CHIP:DMG: }
          [1657884155.222229][2865:2870] CHIP:DMG: WriteClient moving to [AwaitingDe]


          ./chip-tool  basicinformation read node-label 1 0

          verify on TH(reference app) receives the right write Request Message for the data sent in the above command

          [1657884173.738798][2748:2748] CHIP:IM: Received Read request
          [1657884173.738877][2748:2748] CHIP:DMG: ReadRequestMessage =
          [1657884173.738904][2748:2748] CHIP:DMG: {
          [1657884173.738926][2748:2748] CHIP:DMG:         AttributePathIBs =
          [1657884173.738952][2748:2748] CHIP:DMG:         [
          [1657884173.738975][2748:2748] CHIP:DMG:                 AttributePathIB =
          [1657884173.739009][2748:2748] CHIP:DMG:                 {
          [1657884173.739041][2748:2748] CHIP:DMG:                         Endpoint = 0x0,
          [1657884173.739073][2748:2748] CHIP:DMG:                         Cluster = 0x28,
          [1657884173.739105][2748:2748] CHIP:DMG:                         Attribute = 0x0000_0005,
          [1657884173.739134][2748:2748] CHIP:DMG:                 }
          [1657884173.739162][2748:2748] CHIP:DMG:
          [1657884173.739188][2748:2748] CHIP:DMG:         ],
          [1657884173.739215][2748:2748] CHIP:DMG:
          [1657884173.739241][2748:2748] CHIP:DMG:         isFabricFiltered = true,
          [1657884173.739266][2748:2748] CHIP:DMG:         InteractionModelRevision = 1
          [1657884173.739288][2748:2748] CHIP:DMG: },


          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response

          [1655796082.079468][6918:6923] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 1263909563
          [1655796082.079509][6918:6923] CHIP:TOO:   NodeLabel: node
          [1655796082.079608][6918:6923] CHIP:EM: Sending Standalone Ack for MessageCounter:256008218 on exchange 23185i
      disabled: true

    - label:
          "DUT sends the WriteRequestMessage to the TH to write an attribute of
          data type unsigned integer."
      PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_UnsignedInteger
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool any write-by-id  0x0008 0x0010 1 1 1

          On TH(reference app) Verify that the correct WriteRequestMessage has been received for the data sent in the above command

          [1655796141.166846][7331:7331] CHIP:IM: Received Write request
          [1655796141.166889][7331:7331] CHIP:DMG: IM WH moving to [Initialized]
          [1655796141.166973][7331:7331] CHIP:DMG: WriteRequestMessage =
          [1655796141.167019][7331:7331] CHIP:DMG: {
          [1655796141.167062][7331:7331] CHIP:DMG:         suppressResponse = false,
          [1655796141.167111][7331:7331] CHIP:DMG:         timedRequest = false,
          [1655796141.167155][7331:7331] CHIP:DMG:         AttributeDataIBs =
          [1655796141.167211][7331:7331] CHIP:DMG:         [
          [1655796141.167255][7331:7331] CHIP:DMG:                 AttributeDataIB =
          [1655796141.167311][7331:7331] CHIP:DMG:                 {
          [1655796141.167362][7331:7331] CHIP:DMG:                         AttributePathIB =
          [1655796141.167421][7331:7331] CHIP:DMG:                         {
          [1655796141.167479][7331:7331] CHIP:DMG:                                 Endpoint = 0x1,
          [1655796141.167542][7331:7331] CHIP:DMG:                                 Cluster = 0x8,
          [1655796141.167603][7331:7331] CHIP:DMG:                                 Attribute = 0x0000_0010,
          [1655796141.167660][7331:7331] CHIP:DMG:                         }
          [1655796141.167719][7331:7331] CHIP:DMG:
          [1655796141.167782][7331:7331] CHIP:DMG:                         Data = 1,
          [1655796141.167836][7331:7331] CHIP:DMG:                 },
          [1655796141.167890][7331:7331] CHIP:DMG:
          [1655796141.167933][7331:7331] CHIP:DMG:         ],
          [1655796141.167987][7331:7331] CHIP:DMG:
          [1655796141.168032][7331:7331] CHIP:DMG:         moreChunkedMessages = false,
          [1655796141.168079][7331:7331] CHIP:DMG:         InteractionModelRevision = 1
          [1655796141.168121][7331:7331] CHIP:DMG: },
          [1655796141.168253][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0008 e=1 p=o
          [1655796141.168313][7331:7331] CHIP:DMG: AccessControl: allowed


          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response

          [1657884204.951658][2878:2883] CHIP:DMG: WriteResponseMessage =
          [1657884204.951700][2878:2883] CHIP:DMG: {
          [1657884204.951736][2878:2883] CHIP:DMG:         AttributeStatusIBs =
          [1657884204.951786][2878:2883] CHIP:DMG:         [
          [1657884204.951826][2878:2883] CHIP:DMG:                 AttributeStatusIB =
          [1657884204.951871][2878:2883] CHIP:DMG:                 {
          [1657884204.951913][2878:2883] CHIP:DMG:                         AttributePathIB =
          [1657884204.951965][2878:2883] CHIP:DMG:                         {
          [1657884204.952018][2878:2883] CHIP:DMG:                                 Endpoint = 0x1,
          [1657884204.952075][2878:2883] CHIP:DMG:                                 Cluster = 0x8,
          [1657884204.952173][2878:2883] CHIP:DMG:                                 Attribute = 0x0000_0010,
          [1657884204.952226][2878:2883] CHIP:DMG:                         }
          [1657884204.952286][2878:2883] CHIP:DMG:
          [1657884204.952340][2878:2883] CHIP:DMG:                         StatusIB =
          [1657884204.952396][2878:2883] CHIP:DMG:                         {
          [1657884204.952449][2878:2883] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1657884204.952500][2878:2883] CHIP:DMG:                         },
          [1657884204.952552][2878:2883] CHIP:DMG:
          [1657884204.952597][2878:2883] CHIP:DMG:                 },
          [1657884204.952645][2878:2883] CHIP:DMG:
          [1657884204.952684][2878:2883] CHIP:DMG:         ],
          [1657884204.952731][2878:2883] CHIP:DMG:
          [1657884204.952770][2878:2883] CHIP:DMG:         InteractionModelRevision = 1
          [1657884204.952808][2878:2883] CHIP:DMG: }
          [1657884204.952914][2878:2883] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1657884204.952998][2878:2883] CHIP:EM: Sending Standalone Ack for MessageCounter:264044678


           ./chip-tool any read-by-id  0x0008 0x0010 1 1

          verify on TH(reference app) receives the read Request Message for the data sent in the above command

          [1657884227.859836][2748:2748] CHIP:IM: Received Read request
          [1657884227.859916][2748:2748] CHIP:DMG: ReadRequestMessage =
          [1657884227.859942][2748:2748] CHIP:DMG: {
          [1657884227.859964][2748:2748] CHIP:DMG:         AttributePathIBs =
          [1657884227.859989][2748:2748] CHIP:DMG:         [
          [1657884227.860012][2748:2748] CHIP:DMG:                 AttributePathIB =
          [1657884227.860045][2748:2748] CHIP:DMG:                 {
          [1657884227.860076][2748:2748] CHIP:DMG:                         Endpoint = 0x1,
          [1657884227.860112][2748:2748] CHIP:DMG:                         Cluster = 0x8,
          [1657884227.860147][2748:2748] CHIP:DMG:                         Attribute = 0x0000_0010,
          [1657884227.860181][2748:2748] CHIP:DMG:                 }
          [1657884227.860211][2748:2748] CHIP:DMG:
          [1657884227.860239][2748:2748] CHIP:DMG:         ],
          [1657884227.860266][2748:2748] CHIP:DMG:
          [1657884227.860292][2748:2748] CHIP:DMG:         isFabricFiltered = true,
          [1657884227.860316][2748:2748] CHIP:DMG:         InteractionModelRevision = 1
          [1657884227.860339][2748:2748] CHIP:DMG: },
          [1657884227.860413][2748:2748] CHIP:DMG: IM RH moving to [GeneratingReports]

          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response

          [1655796192.032715][6931:6936] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0010 DataVersion: 737039637
          [1655796192.032807][6931:6936] CHIP:TOO:   on off transition time: 1
          [1655796192.032908][6931:6936] CHIP:EM: Sending Standalone Ack for MessageCounter:249349258 on exchange 7433i
      disabled: true

    - label:
          "DUT sends the WriteRequestMessage to the TH to write an attribute of
          data type signed integer."
      PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_SignedInteger
      verification: |
          DUT implementation required to verify write an attribute of data type signed integer.

          If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable"
      disabled: true

    - label:
          "DUT sends the WriteRequestMessage to the TH to write an attribute of
          data type floating point."
      PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_FloatingPoint
      verification: |
          DUT implementation required to verify write an attribute of data type float

          If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable"
      disabled: true

    - label:
          "DUT sends the WriteRequestMessage to the TH to write an attribute of
          data type Octet String."
      PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_OctetString
      verification: |
          DUT implementation required to verify write an attribute of data type Octet String

          If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable"
      disabled: true

    - label:
          "DUT sends the WriteRequestMessage to the TH to write an attribute of
          data type Struct."
      PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_Struct
      verification: |
          DUT implementation required to verify write an attribute ofdata type Struct

          If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable"
      disabled: true

    - label:
          "DUT sends the WriteRequestMessage to the TH to write an attribute of
          data type List."
      PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_List
      verification: |
          DUT implementation required to verify write an attribute of  data type List

          If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable"
      disabled: true

    - label:
          "DUT sends the WriteRequestMessage to the TH to write an attribute of
          data type enum."
      PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_Enum
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

           ./chip-tool any write-by-id 0x0204 0  1  1 1


          On TH(reference app) Verify that the correct WriteRequestMessage has been received for the data sent in the above command

          [1655796297.607841][7331:7331] CHIP:EM: Handling via exchange: 37495r, Delegate: 0xaaaad9aed418
          [1655796297.607911][7331:7331] CHIP:IM: Received Write request
          [1655796297.607954][7331:7331] CHIP:DMG: IM WH moving to [Initialized]
          [1655796297.608038][7331:7331] CHIP:DMG: WriteRequestMessage =
          [1655796297.608086][7331:7331] CHIP:DMG: {
          [1655796297.608128][7331:7331] CHIP:DMG:         suppressResponse = false,
          [1655796297.608178][7331:7331] CHIP:DMG:         timedRequest = false,
          [1655796297.608222][7331:7331] CHIP:DMG:         AttributeDataIBs =
          [1655796297.608278][7331:7331] CHIP:DMG:         [
          [1655796297.608323][7331:7331] CHIP:DMG:                 AttributeDataIB =
          [1655796297.608383][7331:7331] CHIP:DMG:                 {
          [1655796297.608431][7331:7331] CHIP:DMG:                         AttributePathIB =
          [1655796297.608491][7331:7331] CHIP:DMG:                         {
          [1655796297.608549][7331:7331] CHIP:DMG:                                 Endpoint = 0x1,
          [1655796297.608618][7331:7331] CHIP:DMG:                                 Cluster = 0x204,
          [1655796297.608685][7331:7331] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1655796297.608749][7331:7331] CHIP:DMG:                         }
          [1655796297.608810][7331:7331] CHIP:DMG:
          [1655796297.608869][7331:7331] CHIP:DMG:                         Data = 1,
          [1655796297.608923][7331:7331] CHIP:DMG:                 },
          [1655796297.608981][7331:7331] CHIP:DMG:
          [1655796297.609025][7331:7331] CHIP:DMG:         ],
          [1655796297.609078][7331:7331] CHIP:DMG:
          [1655796297.609124][7331:7331] CHIP:DMG:         moreChunkedMessages = false,
          [1655796297.609171][7331:7331] CHIP:DMG:         InteractionModelRevision = 1
          [1655796297.609214][7331:7331] CHIP:DMG: },
          [1655796297.609342][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=o
          [1655796297.609403][7331:7331] CHIP:DMG: AccessControl: allowed

          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response

          [1657884258.383116][2892:2897] CHIP:DMG: WriteResponseMessage =
          [1657884258.383157][2892:2897] CHIP:DMG: {
          [1657884258.383192][2892:2897] CHIP:DMG:         AttributeStatusIBs =
          [1657884258.383255][2892:2897] CHIP:DMG:         [
          [1657884258.383295][2892:2897] CHIP:DMG:                 AttributeStatusIB =
          [1657884258.383339][2892:2897] CHIP:DMG:                 {
          [1657884258.383381][2892:2897] CHIP:DMG:                         AttributePathIB =
          [1657884258.383431][2892:2897] CHIP:DMG:                         {
          [1657884258.383482][2892:2897] CHIP:DMG:                                 Endpoint = 0x1,
          [1657884258.383538][2892:2897] CHIP:DMG:                                 Cluster = 0x204,
          [1657884258.383592][2892:2897] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1657884258.383647][2892:2897] CHIP:DMG:                         }
          [1657884258.383703][2892:2897] CHIP:DMG:
          [1657884258.383750][2892:2897] CHIP:DMG:                         StatusIB =
          [1657884258.383800][2892:2897] CHIP:DMG:                         {
          [1657884258.383851][2892:2897] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1657884258.383905][2892:2897] CHIP:DMG:                         },
          [1657884258.383955][2892:2897] CHIP:DMG:
          [1657884258.383996][2892:2897] CHIP:DMG:                 },
          [1657884258.384043][2892:2897] CHIP:DMG:
          [1657884258.384081][2892:2897] CHIP:DMG:         ],
          [1657884258.384170][2892:2897] CHIP:DMG:
          [1657884258.384212][2892:2897] CHIP:DMG:         InteractionModelRevision = 1
          [1657884258.384249][2892:2897] CHIP:DMG: }
          [1657884258.384358][2892:2897] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1657884258.384441][2892:2897] CHIP:EM: Sending Standalone Ack for MessageCounter:255796912 on exchange 26584i


           ./chip-tool any read-by-id 0x0204 0  1 1

          verify on TH (reference app) receives the right write Request Message for the data sent in the above command

          [1657884282.303557][2898:2903] CHIP:DMG: }
          [1657884282.303695][2898:2903] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 2387607084
          [1657884282.303778][2898:2903] CHIP:TOO:   temperature display mode: 1
          [1657884282.303862][2898:2903] CHIP:EM: Sending Standalone Ack for MessageCounter:147756485 on exchange 42871i

          If the DUT has to provision to verify the logs,, verify that TH all-clusters-app sent success response

          [1655796341.132655][6946:6951] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 3165945391
          [1655796341.132864][6946:6951] CHIP:TOO:   temperature display mode: 1
          [1655796341.132973][6946:6951] CHIP:EM: Sending Standalone Ack for MessageCounter:245498041 on exchange 51992i
      disabled: true

    - label:
          "DUT sends the WriteRequestMessage to the TH to write an attribute of
          data type bitmap."
      PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_Bitmap
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

           ./chip-tool colorcontrol write-by-id 0x000f 1 1 1


          On TH(reference app) Verify that the correct WriteRequestMessage has been received for the data sent in the above command

          [1655796429.696904][7331:7331] CHIP:IM: Received Write request
          [1655796429.696947][7331:7331] CHIP:DMG: IM WH moving to [Initialized]
          [1655796429.697031][7331:7331] CHIP:DMG: WriteRequestMessage =
          [1655796429.697078][7331:7331] CHIP:DMG: {
          [1655796429.697121][7331:7331] CHIP:DMG:         suppressResponse = false,
          [1655796429.697170][7331:7331] CHIP:DMG:         timedRequest = false,
          [1655796429.697215][7331:7331] CHIP:DMG:         AttributeDataIBs =
          [1655796429.697270][7331:7331] CHIP:DMG:         [
          [1655796429.697315][7331:7331] CHIP:DMG:                 AttributeDataIB =
          [1655796429.697370][7331:7331] CHIP:DMG:                 {
          [1655796429.697422][7331:7331] CHIP:DMG:                         AttributePathIB =
          [1655796429.697487][7331:7331] CHIP:DMG:                         {
          [1655796429.697582][7331:7331] CHIP:DMG:                                 Endpoint = 0x1,
          [1655796429.697650][7331:7331] CHIP:DMG:                                 Cluster = 0x300,
          [1655796429.697718][7331:7331] CHIP:DMG:                                 Attribute = 0x0000_000F,
          [1655796429.697781][7331:7331] CHIP:DMG:                         }
          [1655796429.697843][7331:7331] CHIP:DMG:
          [1655796429.697910][7331:7331] CHIP:DMG:                         Data = 1,
          [1655796429.697963][7331:7331] CHIP:DMG:                 },
          [1655796429.698021][7331:7331] CHIP:DMG:
          [1655796429.698065][7331:7331] CHIP:DMG:         ],
          [1655796429.698118][7331:7331] CHIP:DMG:
          [1655796429.698163][7331:7331] CHIP:DMG:         moreChunkedMessages = false,
          [1655796429.698210][7331:7331] CHIP:DMG:         InteractionModelRevision = 1
          [1655796429.698252][7331:7331] CHIP:DMG: },
          [1655796429.698386][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o
          [1655796429.698446][7331:7331] CHIP:DMG: AccessControl: allowed


          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response

          [1657884309.994598][2907:2912] CHIP:DMG: WriteResponseMessage =
          [1657884309.994627][2907:2912] CHIP:DMG: {
          [1657884309.994652][2907:2912] CHIP:DMG:         AttributeStatusIBs =
          [1657884309.994688][2907:2912] CHIP:DMG:         [
          [1657884309.994715][2907:2912] CHIP:DMG:                 AttributeStatusIB =
          [1657884309.994754][2907:2912] CHIP:DMG:                 {
          [1657884309.994787][2907:2912] CHIP:DMG:                         AttributePathIB =
          [1657884309.994823][2907:2912] CHIP:DMG:                         {
          [1657884309.994861][2907:2912] CHIP:DMG:                                 Endpoint = 0x1,
          [1657884309.994902][2907:2912] CHIP:DMG:                                 Cluster = 0x300,
          [1657884309.994941][2907:2912] CHIP:DMG:                                 Attribute = 0x0000_000F,
          [1657884309.994977][2907:2912] CHIP:DMG:                         }
          [1657884309.995021][2907:2912] CHIP:DMG:
          [1657884309.995057][2907:2912] CHIP:DMG:                         StatusIB =
          [1657884309.995096][2907:2912] CHIP:DMG:                         {
          [1657884309.995132][2907:2912] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1657884309.995168][2907:2912] CHIP:DMG:                         },
          [1657884309.995203][2907:2912] CHIP:DMG:
          [1657884309.995234][2907:2912] CHIP:DMG:                 },
          [1657884309.995268][2907:2912] CHIP:DMG:
          [1657884309.995295][2907:2912] CHIP:DMG:         ],
          [1657884309.995329][2907:2912] CHIP:DMG:
          [1657884309.995356][2907:2912] CHIP:DMG:         InteractionModelRevision = 1
          [1657884309.995383][2907:2912] CHIP:DMG: }
          [1657884309.995461][2907:2912] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1657884309.995524][2907:2912] CHIP:EM: Sending Standalone Ack for MessageCounter:243574725 on exchange 27981i



            ./chip-tool colorcontrol read-by-id 0x000f  1 1

          verify on TH (reference app) receives the right write Request Message for the data sent in the above command

          [1657884334.613535][2748:2748] CHIP:IM: Received Read request
          [1657884334.613615][2748:2748] CHIP:DMG: ReadRequestMessage =
          [1657884334.613641][2748:2748] CHIP:DMG: {
          [1657884334.613663][2748:2748] CHIP:DMG:         AttributePathIBs =
          [1657884334.613685][2748:2748] CHIP:DMG:         [
          [1657884334.613746][2748:2748] CHIP:DMG:                 AttributePathIB =
          [1657884334.613775][2748:2748] CHIP:DMG:                 {
          [1657884334.613803][2748:2748] CHIP:DMG:                         Endpoint = 0x1,
          [1657884334.613834][2748:2748] CHIP:DMG:                         Cluster = 0x300,
          [1657884334.613869][2748:2748] CHIP:DMG:                         Attribute = 0x0000_000F,
          [1657884334.613898][2748:2748] CHIP:DMG:                 }
          [1657884334.613926][2748:2748] CHIP:DMG:
          [1657884334.613952][2748:2748] CHIP:DMG:         ],
          [1657884334.613980][2748:2748] CHIP:DMG:
          [1657884334.614005][2748:2748] CHIP:DMG:         isFabricFiltered = true,
          [1657884334.614030][2748:2748] CHIP:DMG:         InteractionModelRevision = 1
          [1657884334.614053][2748:2748] CHIP:DMG: },
          [1657884334.614128][2748:2748] CHIP:DMG: IM RH moving to [GeneratingReports]

          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response

          [1655796493.233673][6961:6966] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_000F DataVersion: 2788050502
          [1655796493.233761][6961:6966] CHIP:TOO:   Options: 1
          [1655796493.233865][6961:6966] CHIP:EM: Sending Standalone Ack for MessageCounter:185730221 on exchange 37136i
      disabled: true

    - label:
          "DUT sends a WriteRequestMessage to the TH with a large list of
          attribute data, which is larger than 1 MTU(1280 bytes), that has to be
          sent in multiple messages."
      verification: |
          DUT implementation required to verify write an attribute which is is larger than 1 MTU(1280 bytes)
          Here is an example command to verify the write functionality. User must choose an attribute which has large list of attribute data.
           ./chip-tool  basicinformation write node-label node 1 0

          If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable"
      disabled: true

    - label:
          "DUT sends the WriteRequestMessage to the TH to write one attribute on
          a given cluster and endpoint. Repeat the above steps 3 times."
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool any write-by-id 0x0204 0  1  1 1

          On TH(reference app) Verify that the correct WriteRequestMessage has been received for the data sent in the above command

          [1655796724.510633][7331:7331] CHIP:EM: Handling via exchange: 51058r, Delegate: 0xaaaad9aed418
          [1655796724.510711][7331:7331] CHIP:IM: Received Write request
          [1655796724.510759][7331:7331] CHIP:DMG: IM WH moving to [Initialized]
          [1655796724.510853][7331:7331] CHIP:DMG: WriteRequestMessage =
          [1655796724.510907][7331:7331] CHIP:DMG: {
          [1655796724.510955][7331:7331] CHIP:DMG:         suppressResponse = false,
          [1655796724.511023][7331:7331] CHIP:DMG:         timedRequest = false,
          [1655796724.511076][7331:7331] CHIP:DMG:         AttributeDataIBs =
          [1655796724.511140][7331:7331] CHIP:DMG:         [
          [1655796724.511191][7331:7331] CHIP:DMG:                 AttributeDataIB =
          [1655796724.511253][7331:7331] CHIP:DMG:                 {
          [1655796724.511312][7331:7331] CHIP:DMG:                         AttributePathIB =
          [1655796724.511379][7331:7331] CHIP:DMG:                         {
          [1655796724.511446][7331:7331] CHIP:DMG:                                 Endpoint = 0x1,
          [1655796724.511520][7331:7331] CHIP:DMG:                                 Cluster = 0x204,
          [1655796724.511592][7331:7331] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1655796724.511659][7331:7331] CHIP:DMG:                         }
          [1655796724.511731][7331:7331] CHIP:DMG:
          [1655796724.511801][7331:7331] CHIP:DMG:                         Data = 1,
          [1655796724.511864][7331:7331] CHIP:DMG:                 },
          [1655796724.511930][7331:7331] CHIP:DMG:
          [1655796724.511980][7331:7331] CHIP:DMG:         ],
          [1655796724.512041][7331:7331] CHIP:DMG:
          [1655796724.512093][7331:7331] CHIP:DMG:         moreChunkedMessages = false,
          [1655796724.512146][7331:7331] CHIP:DMG:         InteractionModelRevision = 1
          [1655796724.512195][7331:7331] CHIP:DMG: },
          [1655796724.512344][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=o

          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response

          [1657884369.932192][2923:2928] CHIP:DMG: WriteResponseMessage =
          [1657884369.932226][2923:2928] CHIP:DMG: {
          [1657884369.932255][2923:2928] CHIP:DMG:         AttributeStatusIBs =
          [1657884369.932297][2923:2928] CHIP:DMG:         [
          [1657884369.932329][2923:2928] CHIP:DMG:                 AttributeStatusIB =
          [1657884369.932366][2923:2928] CHIP:DMG:                 {
          [1657884369.932400][2923:2928] CHIP:DMG:                         AttributePathIB =
          [1657884369.932446][2923:2928] CHIP:DMG:                         {
          [1657884369.932490][2923:2928] CHIP:DMG:                                 Endpoint = 0x1,
          [1657884369.932534][2923:2928] CHIP:DMG:                                 Cluster = 0x204,
          [1657884369.932579][2923:2928] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1657884369.932621][2923:2928] CHIP:DMG:                         }
          [1657884369.932667][2923:2928] CHIP:DMG:
          [1657884369.932711][2923:2928] CHIP:DMG:                         StatusIB =
          [1657884369.932753][2923:2928] CHIP:DMG:                         {
          [1657884369.932794][2923:2928] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1657884369.932835][2923:2928] CHIP:DMG:                         },
          [1657884369.932876][2923:2928] CHIP:DMG:
          [1657884369.932912][2923:2928] CHIP:DMG:                 },
          [1657884369.932952][2923:2928] CHIP:DMG:
          [1657884369.932983][2923:2928] CHIP:DMG:         ],
          [1657884369.933022][2923:2928] CHIP:DMG:
          [1657884369.933054][2923:2928] CHIP:DMG:         InteractionModelRevision = 1
          [1657884369.933085][2923:2928] CHIP:DMG: }
          [1657884369.933178][2923:2928] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1657884369.933244][2923:2928] CHIP:EM: Sending Standalone Ack for MessageCounter:101663641 on exchange 44315i




          ./chip-tool any read-by-id 0x0204 0    1 1

          verify on TH (reference app) receives the right write Request Message for the data sent in the above command

          [1657884399.502355][2748:2748] CHIP:IM: Received Read request
          [1657884399.502442][2748:2748] CHIP:DMG: ReadRequestMessage =
          [1657884399.502473][2748:2748] CHIP:DMG: {
          [1657884399.502497][2748:2748] CHIP:DMG:         AttributePathIBs =
          [1657884399.502530][2748:2748] CHIP:DMG:         [
          [1657884399.502558][2748:2748] CHIP:DMG:                 AttributePathIB =
          [1657884399.502589][2748:2748] CHIP:DMG:                 {
          [1657884399.502621][2748:2748] CHIP:DMG:                         Endpoint = 0x1,
          [1657884399.502658][2748:2748] CHIP:DMG:                         Cluster = 0x204,
          [1657884399.502693][2748:2748] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1657884399.502730][2748:2748] CHIP:DMG:                 }
          [1657884399.502762][2748:2748] CHIP:DMG:
          [1657884399.502791][2748:2748] CHIP:DMG:         ],
          [1657884399.502822][2748:2748] CHIP:DMG:
          [1657884399.502852][2748:2748] CHIP:DMG:         isFabricFiltered = true,
          [1657884399.502881][2748:2748] CHIP:DMG:         InteractionModelRevision = 1
          [1657884399.502907][2748:2748] CHIP:DMG: },
          [1657884399.502989][2748:2748] CHIP:DMG: IM RH moving to [GeneratingReports]

          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response

          [1655796786.513406][6976:6981] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 3165945392
          [1655796786.513496][6976:6981] CHIP:TOO:   temperature display mode: 1
          [1655796786.513593][6976:6981] CHIP:EM: Sending Standalone Ack for MessageCounter:190446058 on exchange 28240i



           Repeat the above steps 3 times.
      disabled: true

    - label:
          "DUT sends a ReadRequest message to the TH to read any attribute on
          two clusters. TH returns with a report data action with the attribute
          values and the dataversions of the clusters. DUT sends a
          WriteRequestMessage to the DUT to both the clusters with the
          appropriate dataversions(received in the previous step) to modify the
          value of an attribute"
      verification: |
          Out of Scope for V1.0
      disabled: true
