# 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: 74.2.2. [TC-SWTCH-2.2] Primary functionality with server as DUT

PICS:
    - SWTCH.S

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

tests:
    - label: "Note"
      verification: |
          NOTE: https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/linux#readme

          Events to be executed as following
          1. Compile app using below command in connectedhomeip folder
          a. ./scripts/run_in_build_env.sh "./scripts/build/build_examples.py --target linux-arm64-all-clusters-no-ble-asan-clang build"
          2. Build respective app (all-clusters-app)
          3. Commission DUT to TH
          4. Open 2nd terminal of DUT and provide the below command to obtain PID of DUT ps  -aef|grep all-clusters-app
          5. Follow the Verification step below to generate the event in 2nd terminal of DUT
      disabled: true

    - label:
          "Step 1: Commission DUT to TH (can be skipped if done in a preceding
          test)"
      verification: |
          Commission DUT to TH
      disabled: true

    - label: "Step 2a: Set up subscription to SwitchLatched event"
      PICS: SWTCH.S.F00
      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

          switch subscribe-event switch-latched 1 100 1 1

          [1697604266.130621][7393:7395] CHIP:DMG: SubscribeResponseMessage =
          [1697604266.130624][7393:7395] CHIP:DMG: {
          [1697604266.130628][7393:7395] CHIP:DMG:         SubscriptionId = 0xf6d55121,
          [1697604266.130632][7393:7395] CHIP:DMG:         MaxInterval = 0x64,
          [1697604266.130636][7393:7395] CHIP:DMG:         InteractionModelRevision = 11
          [1697604266.130640][7393:7395] CHIP:DMG: }
      disabled: true

    - label: "Step 2b: Operator sets switch to first position (zero) on the DUT"
      PICS: SWTCH.S.F00
      verification: |
          On Raspi platform to trigger the event,  give the below command by opening an another terminal in DUT
          (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event)

          echo '{"Name":"SwitchLatched","NewPosition":0}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the SwitchLatched event with NewPosition 0:

          [1697604377.953057][7384:7386] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":0}"
          [1697604377.955361][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0a9
          [1697604377.955421][7384:7384] CHIP:-: The latching switch is moved to a new position:0
          [1697604377.955430][7384:7384] CHIP:ZCL: SwitchServer: OnSwitchLatch
          [1697604377.955474][7384:7384] CHIP:EVL: LogEvent event number: 0x0000000000000006 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x0 Epoch timestamp: 0x0000018B411B1D63
      disabled: true

    - label: "Step 2c: TH reads the CurrentPosition attribute from the DUT"
      PICS: SWTCH.S.F00
      verification: |
          switch read current-position 1 1

          Verify CurrentPosition value is 0 in TH(chip-tool) Log and below is the sample log provided for the raspi platform:

          [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661
          [1646209289.746228][2617:2622] CHIP:TOO:   CurrentPosition: 0
      disabled: true

    - label: "Step 2d: Operator sets switch to second position (one) on the DUT"
      PICS: SWTCH.S.F00
      verification: |
          On Raspi platform to trigger the event give the below command by opening an another terminal in DUT
          (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event)

          echo '{"Name":"SwitchLatched","NewPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the SwitchLatched event with NewPosition set to 1:

          [1697604732.758383][7384:7386] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":1}"
          [1697604732.758668][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0aa
          [1697604732.758703][7384:7384] CHIP:-: The latching switch is moved to a new position:1
          [1697604732.758712][7384:7384] CHIP:ZCL: SwitchServer: OnSwitchLatch
          [1697604732.758757][7384:7384] CHIP:EVL: LogEvent event number: 0x0000000000000007 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x0 Epoch timestamp: 0x0000018B41208756

          switch read-event switch-latched 1 1

          Verify TH receives SwitchLatched event with NewPosition set to 1 on TH(Chip-tool) log and below is the sample log provided for the raspi platform:

          [1687257297.110327][17168:17170] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 [1687257297.110330][17168:17170] CHIP:TOO: Event number: 7
          [1687257297.110333][17168:17170] CHIP:TOO: Priority: Info
          [1687257297.110336][17168:17170] CHIP:TOO: Timestamp: 1687257190679
          [1687257297.110341][17168:17170] CHIP:TOO: SwitchLatched: {
          [1687257297.110345][17168:17170] CHIP:TOO: NewPosition: 1
          [1687257297.110349][17168:17170] CHIP:TOO: }
      disabled: true

    - label: "Step 2e: TH reads CurrentPosition attribute from the DUT"
      PICS: SWTCH.S.F00
      verification: |
          switch read current-position 1 1

          Verify CurrentPosition value is 1 in TH(chip-tool) Log and below is the sample log provided for the raspi platform:

          [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661
          [1646209289.746228][2617:2622] CHIP:TOO:  CurrentPosition: 1
      disabled: true

    - label:
          "Step 2f: If NumberOfPositions>2 (see 2a of TC-SWTCH-2.1) : - Operator
          sets switch to next position on the DUT - TH reads the CurrentPosition
          attribute from the DUT"
      PICS: SWTCH.S.F00
      verification: |
          If NumberOfPositions>2, then Set switch to next position Otherwise skip this step.

          For checking the number of positions that switch supports, Please read the NumberOfPositions attribute From TC-SWTCH-2.1 in step 2a .

          switch read number-of-positions 1 1

          Verify the "NumberOfPositions" attribute value On TH(Chip-tool) Log and below is the sample log provided for the raspi platform:

          [1697605547.057869][7525:7527] CHIP:DMG: }
          [1697605547.058012][7525:7527] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0000 DataVersion: 1304215724
          [1697605547.058063][7525:7527] CHIP:TOO:   NumberOfPositions: 2

          On Raspi platform to trigger the event give the below command by opening an another terminal in DUT
          (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event)

          echo '{"Name":"SwitchLatched","NewPosition":2}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the SwitchLatched event with NewPosition set to 2:

          [1697615458.515582][7384:7386] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":2}"
          [1697615458.515822][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0c5
          [1697615458.515854][7384:7384] CHIP:-: The latching switch is moved to a new position:3
          [1697615458.515867][7384:7384] CHIP:ZCL: SwitchServer: OnSwitchLatch
          [1697615458.516014][7384:7384] CHIP:EVL: Dropped 1 event from buffer with priority 1 and event number  0x000000000000000B due to overflow: event priority_level: 1
          [1697615458.516081][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697615458.516110][7384:7384] CHIP:EVL: LogEvent event number: 0x0000000000000024 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x0 Epoch timestamp: 0x0000018B41C430D3

          switch read-event switch-latched 1 1

          Verify TH receives SwitchLatched event with NewPosition set to 2 on TH(Chip-tool) log and below is the sample log provided for the raspi platform:

          [1697615514.717194][7767:7769] CHIP:DMG: }
          [1697615514.717359][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000
          [1697615514.717371][7767:7769] CHIP:TOO:   Event number: 36
          [1697615514.717383][7767:7769] CHIP:TOO:   Priority: Info
          [1697615514.717396][7767:7769] CHIP:TOO:   Timestamp: 1697615458515
          [1697615514.717430][7767:7769] CHIP:TOO:   SwitchLatched: {
          [1697615514.717449][7767:7769] CHIP:TOO:     NewPosition: 2
          [1697615514.717464][7767:7769] CHIP:TOO:    }

          In the current SDK development, Max number of positions is configured as 2, hence the current  test step should fail as NewPosition reached more than the Max NumberOfPositions.
          If the DUT supports NumberOfPositions>2, then, position should increase to the next level. Below is the sample command to execute to check the CurrentPosition

          switch read current-position 1 1

          Verify CurrentPosition value is 2 On TH(chip-tool) Log and below is the sample log provided for the raspi platform:

          [1659600502.023560][4306:4311] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001 DataVersion: 391463069
          [1687847841.651568][19369:19371] CHIP:TOO:   CurrentPosition: 2
      disabled: true

    - label:
          "Step 2g: If NumberOfPositions>3 : - Repeat step 2f for
          NumberOfPositions-3 times - After each time Operator has set switch to
          next position on the DUT, - TH reads CurrentPosition attribute from
          the DUT"
      PICS: SWTCH.S.F00
      verification: |
          If NumberOfPositions>3, then Set the switch to next position Otherwise skip this step.

          For checking the number of positions that switch supports, Please read the NumberOfPositions attribute From TC-SWTCH-2.1 in step 2a .

          switch read number-of-positions 1 1

          Verify the "NumberOfPositions" attribute value On TH(Chip-tool) Log and below is the sample log provided for the raspi platform:

          [1697605547.057869][7525:7527] CHIP:DMG: }
          [1697605547.058012][7525:7527] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0000 DataVersion: 1304215724
          [1697605547.058063][7525:7527] CHIP:TOO:   NumberOfPositions: 2

          In Raspi platform to change the switch to third position use the below sample command, its required to  use equivalent command on the respective DUT. Open one more terminal on DUT side to execute the echo command .

          echo '{"Name":"SwitchLatched","NewPosition":3}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the SwitchLatched event with NewPosition set to 3:

          [1659600438.058928][7312:7321] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":3}"
          [1659600438.059436][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 1755409d
          [1659600438.059519][7312:7312] CHIP:-: The latching switch is moved to a new position:3
          [1659600438.059644][7312:7312] CHIP:ZCL: SwitchServer: OnSwitchLatch
          [1659600438.059857][7312:7312] CHIP:EVL: LogEvent event number: 0x0000000000020006 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x0 Sys timestamp: 0x0000000000F10746

          switch read-event switch-latched 1 1

          Verify SwitchLatched event with NewPosition set to 3 on TH(Chip-tool) log and below is the sample log provided for the raspi platform:

          [1687258513.235224][17561:17563] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000
          [1687258513.235227][17561:17563] CHIP:TOO:   Event number: 9
          [1687258513.235230][17561:17563] CHIP:TOO:   Priority: Info
          [1687258513.235231][17561:17563] CHIP:TOO:   Timestamp: 1687258318347
          [1687258513.235235][17561:17563] CHIP:TOO:   SwitchLatched: {
          [1687258513.235238][17561:17563] CHIP:TOO:     NewPosition: 3
          [1687258513.235239][17561:17563] CHIP:TOO:    }

          In the current SDK development, Max number of positions are configured as 2, hence the current  test step should fail as its reached more than the Max NumberOfPositions.
          If the DUT supports NumberOfPositions>3, then position should increase to the next level. Below is the sample command to execute to check the CurrentPosition

          switch read current-position 1 1

          Verify CurrentPosition value is 3 On TH(chip-tool) Log and below is the sample log provided for the raspi platform and below is the sample log provided for the raspi platform:

          [1659600502.023560][4306:4311] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001 DataVersion: 391463069
          [1687847873.385882][19378:19380] CHIP:TOO:   CurrentPosition: 3
      disabled: true

    - label: "Step 2h: Operator returns switch to first position on the DUT"
      PICS: SWTCH.S.F00
      verification: |
          On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event)

          echo '{"Name":"SwitchLatched","NewPosition":0}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the SwitchLatched event with NewPosition set to 0:

          [1697606147.106734][7384:7386] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":0}"
          [1697606147.106976][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0ae
          [1697606147.107012][7384:7384] CHIP:-: The latching switch is moved to a new position:0
          [1697606147.107023][7384:7384] CHIP:ZCL: SwitchServer: OnSwitchLatch
          [1697606147.107137][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697606147.107170][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000000B priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x0 Epoch timestamp: 0x0000018B41361C23

          switch read-event switch-latched 1 1

          Verify TH receives SwitchLatched event with NewPosition set to 0 on TH(Chip-tool) log and below is the sample log provided for the raspi platform:

          [1697606183.274301][7536:7538] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000
          [1697606183.274313][7536:7538] CHIP:TOO:   Event number: 11
          [1697606183.274320][7536:7538] CHIP:TOO:   Priority: Info
          [1697606183.274325][7536:7538] CHIP:TOO:   Timestamp: 1697606147107
          [1697606183.274350][7536:7538] CHIP:TOO:   SwitchLatched: {
          [1697606183.274362][7536:7538] CHIP:TOO:     NewPosition: 0
          [1697606183.274373][7536:7538] CHIP:TOO:    }
      disabled: true

    - label: "Step 2i: TH reads the CurrentPosition attribute from the DUT"
      PICS: SWTCH.S.F00
      verification: |
          switch read current-position 1 1

          Verify CurrentPosition value is 0 On TH(chip-tool) Log and below is the sample log provided for the raspi platform:

          [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661
          [1646209289.746228][2617:2622] CHIP:TOO:   CurrentPosition: 0
      disabled: true

    - label: "Step 3a: Set up subscription to InitialPress event"
      PICS: SWTCH.S.F01
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          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

          switch subscribe-event initial-press 1 100 1 1

          [1697606330.206997][7536:7538] CHIP:DMG: SubscribeResponseMessage =
          [1697606330.207001][7536:7538] CHIP:DMG: {
          [1697606330.207004][7536:7538] CHIP:DMG:         SubscriptionId = 0x460ae381,
          [1697606330.207008][7536:7538] CHIP:DMG:         MaxInterval = 0x64,
          [1697606330.207011][7536:7538] CHIP:DMG:         InteractionModelRevision = 11
          [1697606330.207014][7536:7538] CHIP:DMG: }
      disabled: true

    - label: "Step 3b: Operator does not operate switch on the DUT"
      PICS: SWTCH.S.F01
      verification: |
          no Matter messages
      disabled: true

    - label: "Step 3c: TH reads the CurrentPosition attribute from the DUT"
      PICS: SWTCH.S.F01
      verification: |
          switch read current-position 1 1

          Verify CurrentPosition value is 0 On TH (chip-tool) Log and below is the sample log provided for the raspi platform:

          [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661
          [1687847957.516951][19394:19396] CHIP:TOO:   CurrentPosition: 0
      disabled: true

    - label: "Step 3d: Operator operates switch (keep it pressed)"
      PICS: SWTCH.S.F01
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform to trigger the event give the below command by opening an another terminal in DUT
          (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event)

          echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the InitialPress event with NewPosition set to 1:

          [1697606594.815345][7384:7386] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}"
          [1697606594.815586][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0af
          [1697606594.815620][7384:7384] CHIP:-: The new position when the momentary switch starts to be pressed:1
          [1697606594.815631][7384:7384] CHIP:ZCL: SwitchServer: OnInitialPress
          [1697606594.815743][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697606594.815773][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000000C priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x1 Epoch timestamp: 0x0000018B413CF0FF

          switch read-event initial-press   1 1

          Verify TH receives InitialPress event with NewPosition set to 1 on TH(Chip-tool) log and below is the sample log provided for the raspi platform:

          [1697606630.390750][7536:7538] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001
          [1697606630.390763][7536:7538] CHIP:TOO:   Event number: 12
          [1697606630.390771][7536:7538] CHIP:TOO:   Priority: Info
          [1697606630.390780][7536:7538] CHIP:TOO:   Timestamp: 1697606594815
          [1697606630.390822][7536:7538] CHIP:TOO:   InitialPress: {
          [1697606630.390840][7536:7538] CHIP:TOO:     NewPosition: 1
          [1697606630.390851][7536:7538] CHIP:TOO:    }
      disabled: true

    - label: "Step 3e: TH reads the CurrentPosition attribute from the DUT"
      PICS: SWTCH.S.F01
      verification: |
          switch read current-position 1 1

          Verify CurrentPosition  value is 1 On TH(chip-tool) Log and below is the sample log provided for the raspi platform:

          [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661
          [1687847982.359195][19398:19400] CHIP:TOO:   CurrentPosition: 1
      disabled: true

    - label: "Step 3f: Operator releases switch on the DUT"
      PICS: SWTCH.S.F01
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform to trigger the event give the below command by opening an another terminal in DUT
          (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event)

          echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the ShortRelease event with PreviousPosition set to 1:

          [1697606778.141141][7384:7386] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}"
          [1697606778.141356][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0b0
          [1697606778.141394][7384:7384] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1
          [1697606778.141410][7384:7384] CHIP:ZCL: SwitchServer: OnShortRelease
          [1697606778.141548][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697606778.141592][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000000D priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x3 Epoch timestamp: 0x0000018B413FBD1D
      disabled: true

    - label: "Step 3g: TH reads the CurrentPosition attribute from the DUT"
      PICS: SWTCH.S.F01
      verification: |
          switch read current-position 1 1

          Verify CurrentPosition value is 0 On TH(chip-tool) Log and below is the sample log provided for the raspi platform:

          [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661
          [1687848004.040125][19402:19404] CHIP:TOO:   CurrentPosition: 0
      disabled: true

    - label:
          "Step 4a: Set up subscription to InitialPress and ShortRelease events"
      PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          Please use Interactive mode to Verify the subscription of an event
          Here the command to enter interactive mode:--
          1. ./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

          switch subscribe-event initial-press 1 100 1 1

          [1697607013.770976][7736:7738] CHIP:DMG: SubscribeResponseMessage =
          [1697607013.770988][7736:7738] CHIP:DMG: {
          [1697607013.770998][7736:7738] CHIP:DMG:         SubscriptionId = 0xfba47d40,
          [1697607013.771010][7736:7738] CHIP:DMG:         MaxInterval = 0x64,
          [1697607013.771021][7736:7738] CHIP:DMG:         InteractionModelRevision = 11
          [1697607013.771030][7736:7738] CHIP:DMG: }

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

          switch subscribe-event short-release 1 100 1 1

          [1697607082.641213][7736:7738] CHIP:DMG: SubscribeResponseMessage =
          [1697607082.641216][7736:7738] CHIP:DMG: {
          [1697607082.641221][7736:7738] CHIP:DMG:         SubscriptionId = 0xbe6a8e5d,
          [1697607082.641225][7736:7738] CHIP:DMG:         MaxInterval = 0x64,
          [1697607082.641229][7736:7738] CHIP:DMG:         InteractionModelRevision = 11
          [1697607082.641233][7736:7738] CHIP:DMG: }
      disabled: true

    - label: "Step 4b: Operator does not operate switch on the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03
      verification: |
          no Matter messages
      disabled: true

    - label: "Step 4c: Operator operates switch (press briefly) on the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)


          echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the InitialPress event with NewPosition set to 1:

          [1697607350.058984][7384:7386] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}"
          [1697607350.059268][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0b2
          [1697607350.059302][7384:7384] CHIP:-: The new position when the momentary switch starts to be pressed:1
          [1697607350.059311][7384:7384] CHIP:ZCL: SwitchServer: OnInitialPress
          [1697607350.059431][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697607350.059466][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000000F priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x1 Epoch timestamp: 0x0000018B4148772B

          switch read-event initial-press   1 1

          Verify TH receive InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697607828.913031][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001
          [1697607828.913034][7767:7769] CHIP:TOO:   Event number: 17
          [1697607828.913037][7767:7769] CHIP:TOO:   Priority: Info
          [1697607828.913040][7767:7769] CHIP:TOO:   Timestamp: 1697607697125
          [1697607828.913046][7767:7769] CHIP:TOO:   InitialPress: {
          [1697607828.913050][7767:7769] CHIP:TOO:     NewPosition: 1
          [1697607828.913054][7767:7769] CHIP:TOO:    }
      disabled: true

    - label: "Step 4d: Operator releases switch from the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the ShortRelease event with PreviousPosition set to 1:

          [1697607957.484361][7384:7386] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}"
          [1697607957.484562][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0b6
          [1697607957.484610][7384:7384] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1
          [1697607957.484622][7384:7384] CHIP:ZCL: SwitchServer: OnShortRelease
          [1697607957.484732][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697607957.484765][7384:7384] CHIP:EVL: LogEvent event number: 0x0000000000000013 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x3 Epoch timestamp: 0x0000018B4151BBEC

          switch read-event short-release 1 1

          Verify TH receive ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697608045.926586][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003
          [1697608045.926590][7767:7769] CHIP:TOO:   Event number: 19
          [1697608045.926593][7767:7769] CHIP:TOO:   Priority: Info
          [1697608045.926596][7767:7769] CHIP:TOO:   Timestamp: 1697607957484
          [1697608045.926601][7767:7769] CHIP:TOO:   ShortRelease: {
          [1697608045.926605][7767:7769] CHIP:TOO:     PreviousPosition: 1
          [1697608045.926608][7767:7769] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 4e: Operator operates switch (keep pressed for long time, e.g. 5
          seconds) on the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event)

          echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the InitialPress event with NewPosition set to 1:

          [1697608104.080281][7384:7386] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}"
          [1697608104.080508][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0b7
          [1697608104.080548][7384:7384] CHIP:-: The new position when the momentary switch starts to be pressed:1
          [1697608104.080561][7384:7384] CHIP:ZCL: SwitchServer: OnInitialPress
          [1697608104.080675][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697608104.080709][7384:7384] CHIP:EVL: LogEvent event number: 0x0000000000000014 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x1 Epoch timestamp: 0x0000018B4153F890

          switch read-event initial-press   1 1

          Verify InitialPress event with NewPosition set to 1 on TH (chip-tool) log and below is the sample log provided for the raspi platform:

          [1697608164.378204][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001
          [1697608164.378207][7767:7769] CHIP:TOO:   Event number: 20
          [1697608164.378209][7767:7769] CHIP:TOO:   Priority: Info
          [1697608164.378211][7767:7769] CHIP:TOO:   Timestamp: 1697608104080
          [1697608164.378214][7767:7769] CHIP:TOO:   InitialPress: {
          [1697608164.378217][7767:7769] CHIP:TOO:     NewPosition: 1
          [1697608164.378219][7767:7769] CHIP:TOO:    }
      disabled: true

    - label: "Step 4f: Operator releases switch from the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event)

          echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the ShortRelease event with PreviousPosition set to 1:

          [1697608242.275996][7384:7386] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}"
          [1697608242.276246][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0b8
          [1697608242.276280][7384:7384] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1
          [1697608242.276296][7384:7384] CHIP:ZCL: SwitchServer: OnShortRelease
          [1697608242.276424][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697608242.276468][7384:7384] CHIP:EVL: LogEvent event number: 0x0000000000000015 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x3 Epoch timestamp: 0x0000018B41561464

          switch read-event short-release 1 1

          Verify TH receives ShortRelease event with PreviousPosition set to 1 on TH (chip-tool) log and below is the sample log provided for the raspi platform:

          [1697608382.457912][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003
          [1697608382.457915][7767:7769] CHIP:TOO:   Event number: 21
          [1697608382.457917][7767:7769] CHIP:TOO:   Priority: Info
          [1697608382.457919][7767:7769] CHIP:TOO:   Timestamp: 1697608242276
          [1697608382.457923][7767:7769] CHIP:TOO:   ShortRelease: {
          [1697608382.457927][7767:7769] CHIP:TOO:     PreviousPosition: 1
          [1697608382.457929][7767:7769] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 5a: Set up subscription to InitialPress, LongPress,
          ShortRelease, LongRelease events"
      PICS: SWTCH.S.F01 && SWTCH.S.F03
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          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

          switch subscribe-event  initial-press 1 100 1 1


          [1697608480.015747][7767:7769] CHIP:DMG: SubscribeResponseMessage =
          [1697608480.015750][7767:7769] CHIP:DMG: {
          [1697608480.015753][7767:7769] CHIP:DMG:         SubscriptionId = 0x9c490538,
          [1697608480.015756][7767:7769] CHIP:DMG:         MaxInterval = 0x64,
          [1697608480.015758][7767:7769] CHIP:DMG:         InteractionModelRevision = 11
          [1697608480.015761][7767:7769] CHIP:DMG: }

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

          switch subscribe-event  long-press 1 100 1 1

          [1697608527.530605][7767:7769] CHIP:DMG: SubscribeResponseMessage =
          [1697608527.530609][7767:7769] CHIP:DMG: {
          [1697608527.530613][7767:7769] CHIP:DMG:         SubscriptionId = 0xaa07867b,
          [1697608527.530619][7767:7769] CHIP:DMG:         MaxInterval = 0x64,
          [1697608527.530623][7767:7769] CHIP:DMG:         InteractionModelRevision = 11
          [1697608527.530628][7767:7769] CHIP:DMG: }

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

          switch subscribe-event short-release 1 100 1 1

          [1697608580.243388][7767:7769] CHIP:DMG: SubscribeResponseMessage =
          [1697608580.243391][7767:7769] CHIP:DMG: {
          [1697608580.243394][7767:7769] CHIP:DMG:         SubscriptionId = 0x9b71447a,
          [1697608580.243397][7767:7769] CHIP:DMG:         MaxInterval = 0x64,
          [1697608580.243400][7767:7769] CHIP:DMG:         InteractionModelRevision = 11
          [1697608580.243402][7767:7769] CHIP:DMG: }

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

          switch subscribe-event  long-release 1 100 1 1

          [1697608657.944735][7767:7769] CHIP:DMG: SubscribeResponseMessage =
          [1697608657.944738][7767:7769] CHIP:DMG: {
          [1697608657.944741][7767:7769] CHIP:DMG:         SubscriptionId = 0x3d884dce,
          [1697608657.944745][7767:7769] CHIP:DMG:         MaxInterval = 0x64,
          [1697608657.944748][7767:7769] CHIP:DMG:         InteractionModelRevision = 11
          [1697608657.944751][7767:7769] CHIP:DMG: }
      disabled: true

    - label: "Step 5b: Operator does not operate switch on the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F03
      verification: |
          no Matter messages
      disabled: true

    - label: "Step 5c: Operator operates switch (press briefly) on the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F03
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the InitialPress event with NewPosition set to 1:

          [1697608754.628837][7384:7386] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}"
          [1697608754.629085][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0b9
          [1697608754.629120][7384:7384] CHIP:-: The new position when the momentary switch starts to be pressed:1
          [1697608754.629132][7384:7384] CHIP:ZCL: SwitchServer: OnInitialPress
          [1697608754.629247][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697608754.629277][7384:7384] CHIP:EVL: LogEvent event number: 0x0000000000000016 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x1 Epoch timestamp: 0x0000018B415DE5C5

          switch read-event initial-press   1 1

          Verify TH receives InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697608808.722369][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001
          [1697608808.722371][7767:7769] CHIP:TOO:   Event number: 22
          [1697608808.722374][7767:7769] CHIP:TOO:   Priority: Info
          [1697608808.722376][7767:7769] CHIP:TOO:   Timestamp: 1697608754629
          [1697608808.722380][7767:7769] CHIP:TOO:   InitialPress: {
          [1697608808.722383][7767:7769] CHIP:TOO:     NewPosition: 1
          [1697608808.722385][7767:7769] CHIP:TOO:    }
      disabled: true

    - label: "Step 5d: Operator releases switch from the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F03
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the ShortRelease event with PreviousPosition set to 1:

          [1697608936.890550][7384:7386] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}"
          [1697608936.890789][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0ba
          [1697608936.890824][7384:7384] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1
          [1697608936.890833][7384:7384] CHIP:ZCL: SwitchServer: OnShortRelease
          [1697608936.890948][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697608936.890983][7384:7384] CHIP:EVL: LogEvent event number: 0x0000000000000017 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x3 Epoch timestamp: 0x0000018B4160ADBA

          switch read-event short-release 1 1

          Verify TH receives ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697608970.793400][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003
          [1697608970.793402][7767:7769] CHIP:TOO:   Event number: 23
          [1697608970.793405][7767:7769] CHIP:TOO:   Priority: Info
          [1697608970.793408][7767:7769] CHIP:TOO:   Timestamp: 1697608936890
          [1697608970.793414][7767:7769] CHIP:TOO:   ShortRelease: {
          [1697608970.793417][7767:7769] CHIP:TOO:     PreviousPosition: 1
          [1697608970.793421][7767:7769] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 5e: Operator operates switch (keep pressed for long time, e.g. 5
          seconds) on the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F03
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the InitialPress event with NewPosition set to 1:

          [1697609110.498463][7384:7386] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}"
          [1697609110.498726][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0bb
          [1697609110.498757][7384:7384] CHIP:-: The new position when the momentary switch starts to be pressed:1
          [1697609110.498766][7384:7384] CHIP:ZCL: SwitchServer: OnInitialPress
          [1697609110.498925][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 2
          [1697609110.499002][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697609110.499030][7384:7384] CHIP:EVL: LogEvent event number: 0x0000000000000018 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x1 Epoch timestamp: 0x0000018B416353E2

          switch read-event initial-press   1 1

          Verify InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697609188.273452][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001
          [1697609188.273455][7767:7769] CHIP:TOO:   Event number: 24
          [1697609188.273457][7767:7769] CHIP:TOO:   Priority: Info
          [1697609188.273459][7767:7769] CHIP:TOO:   Timestamp: 1697609110498
          [1697609188.273463][7767:7769] CHIP:TOO:   InitialPress: {
          [1697609188.273466][7767:7769] CHIP:TOO:     NewPosition: 1
          [1697609188.273469][7767:7769] CHIP:TOO:    }

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"LongPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the longPress event with NewPosition set to 1:

          [1697609280.508624][7384:7386] CHIP:-: Received payload: "{"Name":"LongPress","NewPosition":1}"
          [1697609280.508890][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0bc
          [1697609280.508924][7384:7384] CHIP:-: The new position when the momentary switch has been pressed for a long time:1
          [1697609280.508933][7384:7384] CHIP:ZCL: SwitchServer: OnLongPress
          [1697609280.509078][7384:7384] CHIP:EVL: Dropped 1 event from buffer with priority 1 and event number  0x0000000000000001 due to overflow: event priority_level: 1
          [1697609280.509144][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697609280.509174][7384:7384] CHIP:EVL: LogEvent event number: 0x0000000000000019 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x2 Epoch timestamp: 0x0000018B4165EBFC
          [1697609280.509203][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_005C update version to e31eae9f


          switch read-event long-press 1 1

          Verify TH receives longPress event with NewPosition set to 1 on TH (chip-tool) log and below is the sample log provided for the raspi platform:

          [1697609316.967370][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0002
          [1697609316.967375][7767:7769] CHIP:TOO:   Event number: 25
          [1697609316.967376][7767:7769] CHIP:TOO:   Priority: Info
          [1697609316.967380][7767:7769] CHIP:TOO:   Timestamp: 1697609280508
          [1697609316.967391][7767:7769] CHIP:TOO:   LongPress: {
          [1697609316.967397][7767:7769] CHIP:TOO:     NewPosition: 1
          [1697609316.967402][7767:7769] CHIP:TOO:    }
      disabled: true

    - label: "Step 5f: Operator releases switch from the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F03
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"LongRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the LongRelease event with previousPosition set to 1:

          [1697609417.101354][7384:7386] CHIP:-: Received payload: "{"Name":"LongRelease","PreviousPosition":1}"
          [1697609417.101563][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0bd
          [1697609417.101600][7384:7384] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released after having been pressed for a long time:1
          [1697609417.101614][7384:7384] CHIP:ZCL: SwitchServer: OnLongRelease
          [1697609417.101765][7384:7384] CHIP:EVL: Dropped 1 event from buffer with priority 1 and event number  0x0000000000000004 due to overflow: event priority_level: 1
          [1697609417.101831][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697609417.101862][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001C priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x4 Epoch timestamp: 0x0000018B4168018D

           switch read-event long-release 1 1

          Verify TH receives LongRelease event with previousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697609485.675506][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0004
          [1697609485.675509][7767:7769] CHIP:TOO:   Event number: 28
          [1697609485.675511][7767:7769] CHIP:TOO:   Priority: Info
          [1697609485.675513][7767:7769] CHIP:TOO:   Timestamp: 1697609417101
          [1697609485.675531][7767:7769] CHIP:TOO:   LongRelease: {
          [1697609485.675538][7767:7769] CHIP:TOO:     PreviousPosition: 1
          [1697609485.675542][7767:7769] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 6a: Set up subscription to InitialPress, ShortRelease,
          MultiPressOngoing, MultiPressComplete events"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          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

          switch subscribe-event initial-press 1 100 1 1

          [1697609572.733866][7767:7769] CHIP:DMG: SubscribeResponseMessage =
          [1697609572.733870][7767:7769] CHIP:DMG: {
          [1697609572.733872][7767:7769] CHIP:DMG:         SubscriptionId = 0xdb9c2f95,
          [1697609572.733875][7767:7769] CHIP:DMG:         MaxInterval = 0x64,
          [1697609572.733878][7767:7769] CHIP:DMG:         InteractionModelRevision = 11
          [1697609572.733880][7767:7769] CHIP:DMG: }

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

          switch subscribe-event short-release 1 100 1 1

          [1697609772.052026][7767:7769] CHIP:DMG: SubscribeResponseMessage =
          [1697609772.052029][7767:7769] CHIP:DMG: {
          [1697609772.052032][7767:7769] CHIP:DMG:         SubscriptionId = 0xd48293d0,
          [1697609772.052035][7767:7769] CHIP:DMG:         MaxInterval = 0x64,
          [1697609772.052038][7767:7769] CHIP:DMG:         InteractionModelRevision = 11
          [1697609772.052040][7767:7769] CHIP:DMG: }

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

          switch subscribe-event multi-press-ongoing 1 100 1 1

          [1697609745.441125][7767:7769] CHIP:DMG: SubscribeResponseMessage =
          [1697609745.441128][7767:7769] CHIP:DMG: {
          [1697609745.441131][7767:7769] CHIP:DMG:         SubscriptionId = 0x2161432e,
          [1697609745.441134][7767:7769] CHIP:DMG:         MaxInterval = 0x64,
          [1697609745.441136][7767:7769] CHIP:DMG:         InteractionModelRevision = 11
          [1697609745.441139][7767:7769] CHIP:DMG: }

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

          switch subscribe-event multi-press-complete 1 100 1 1

          [1697609646.344664][7767:7769] CHIP:DMG: SubscribeResponseMessage =
          [1697609646.344669][7767:7769] CHIP:DMG: {
          [1697609646.344674][7767:7769] CHIP:DMG:         SubscriptionId = 0x9177cb65,
          [1697609646.344679][7767:7769] CHIP:DMG:         MaxInterval = 0x64,
          [1697609646.344684][7767:7769] CHIP:DMG:         InteractionModelRevision = 11
          [1697609646.344688][7767:7769] CHIP:DMG: }
      disabled: true

    - label: "Step 6b: Operator does not operate switch on the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          no Matter messages for this step
      disabled: true

    - label: "Step 6c: Operator operates switch (press briefly) on the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the InitialPress event with NewPosition set to 1:

          [1697609895.678486][7384:7386] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}"
          [1697609895.678744][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0be
          [1697609895.678786][7384:7384] CHIP:-: The new position when the momentary switch starts to be pressed:1
          [1697609895.678800][7384:7384] CHIP:ZCL: SwitchServer: OnInitialPress
          [1697609895.678917][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697609895.678949][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001D priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x1 Epoch timestamp: 0x0000018B416F4EFE

          switch read-event initial-press   1 1

          Verify TH receives InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697609943.498311][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001
          [1697609943.498313][7767:7769] CHIP:TOO:   Event number: 29
          [1697609943.498315][7767:7769] CHIP:TOO:   Priority: Info
          [1697609943.498317][7767:7769] CHIP:TOO:   Timestamp: 1697609895678
          [1697609943.498320][7767:7769] CHIP:TOO:   InitialPress: {
          [1697609943.498323][7767:7769] CHIP:TOO:     NewPosition: 1
          [1697609943.498325][7767:7769] CHIP:TOO:    }
      disabled: true

    - label: "Step 6d: Operator releases switch from the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)


          echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the ShortRelease event with PreviousPosition set to 1:

          [1697610020.642902][7384:7386] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}"
          [1697610020.643151][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0bf
          [1697610020.643184][7384:7384] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1
          [1697610020.643194][7384:7384] CHIP:ZCL: SwitchServer: OnShortRelease
          [1697610020.643356][7384:7384] CHIP:EVL: Dropped 1 event from buffer with priority 1 and event number  0x0000000000000005 due to overflow: event priority_level: 1
          [1697610020.643427][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697610020.643456][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001E priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x3 Epoch timestamp: 0x0000018B41713723

          switch read-event short-release 1 1

          Verify TH receives ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697610069.134658][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003
          [1697610069.134661][7767:7769] CHIP:TOO:   Event number: 30
          [1697610069.134663][7767:7769] CHIP:TOO:   Priority: Info
          [1697610069.134665][7767:7769] CHIP:TOO:   Timestamp: 1697610020643
          [1697610069.134669][7767:7769] CHIP:TOO:   ShortRelease: {
          [1697610069.134672][7767:7769] CHIP:TOO:     PreviousPosition: 1
          [1697610069.134675][7767:7769] CHIP:TOO:    }

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the MultiPressComplete event with PreviousPosition set to 1:

          [1697610133.480979][7384:7386] CHIP:-: Received payload: "{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":1}"
          [1697610133.481239][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0c0
          [1697610133.481271][7384:7384] CHIP:-: The previous position when the momentary switch has been pressed in a multi-press sequence:1
          [1697610133.481280][7384:7384] CHIP:-: 1 times the momentary switch has been pressed
          [1697610133.481287][7384:7384] CHIP:ZCL: SwitchServer: OnMultiPressComplete
          [1697610133.481399][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697610133.481431][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001F priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x6 Epoch timestamp: 0x0000018B4172EFE9

          switch read-event multi-press-complete 1 1

          Verify TH receives MultiPressComplete event with PreviousPosition set to 1 and TotalNumberOfPressesCounted set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697610193.287175][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0006
          [1697610193.287187][7767:7769] CHIP:TOO:   Event number: 31
          [1697610193.287198][7767:7769] CHIP:TOO:   Priority: Info
          [1697610193.287207][7767:7769] CHIP:TOO:   Timestamp: 1697610133481
          [1697610193.287241][7767:7769] CHIP:TOO:   MultiPressComplete: {
          [1697610193.287261][7767:7769] CHIP:TOO:     PreviousPosition: 1
          [1697610193.287273][7767:7769] CHIP:TOO:     TotalNumberOfPressesCounted: 1
          [1697610193.287285][7767:7769] CHIP:TOO:    }
      disabled: true

    - label: "Step 6e: Operator operates switch (press briefly) on the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_<PID>  (PID of DUT)

          DUT generated the InitialPress event with NewPosition set to 1:

          [1697609895.678486][7384:7386] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}"
          [1697609895.678744][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0be
          [1697609895.678786][7384:7384] CHIP:-: The new position when the momentary switch starts to be pressed:1
          [1697609895.678800][7384:7384] CHIP:ZCL: SwitchServer: OnInitialPress
          [1697609895.678917][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697609895.678949][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001D priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x1 Epoch timestamp: 0x0000018B416F4EFE

          switch read-event initial-press   1 1

          Verify TH receives InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697609943.498311][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001
          [1697609943.498313][7767:7769] CHIP:TOO:   Event number: 29
          [1697609943.498315][7767:7769] CHIP:TOO:   Priority: Info
          [1697609943.498317][7767:7769] CHIP:TOO:   Timestamp: 1697609895678
          [1697609943.498320][7767:7769] CHIP:TOO:   InitialPress: {
          [1697609943.498323][7767:7769] CHIP:TOO:     NewPosition: 1
          [1697609943.498325][7767:7769] CHIP:TOO:    }
      disabled: true

    - label: "Step 6f: Operator releases switch from the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the ShortRelease event with PreviousPosition set to 1:

          [1697610020.642902][7384:7386] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}"
          [1697610020.643151][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0bf
          [1697610020.643184][7384:7384] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1
          [1697610020.643194][7384:7384] CHIP:ZCL: SwitchServer: OnShortRelease
          [1697610020.643356][7384:7384] CHIP:EVL: Dropped 1 event from buffer with priority 1 and event number  0x0000000000000005 due to overflow: event priority_level: 1
          [1697610020.643427][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697610020.643456][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001E priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x3 Epoch timestamp: 0x0000018B41713723

          switch read-event short-release 1 1

          Verify TH receives ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697610069.134658][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003
          [1697610069.134661][7767:7769] CHIP:TOO:   Event number: 30
          [1697610069.134663][7767:7769] CHIP:TOO:   Priority: Info
          [1697610069.134665][7767:7769] CHIP:TOO:   Timestamp: 1697610020643
          [1697610069.134669][7767:7769] CHIP:TOO:   ShortRelease: {
          [1697610069.134672][7767:7769] CHIP:TOO:     PreviousPosition: 1
          [1697610069.134675][7767:7769] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 6g: Briefly after 6f, Operator operates switch again on the
          DUT(press briefly)"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the InitialPress event with NewPosition set to 1:

          [1697609895.678486][7384:7386] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}"
          [1697609895.678744][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0be
          [1697609895.678786][7384:7384] CHIP:-: The new position when the momentary switch starts to be pressed:1
          [1697609895.678800][7384:7384] CHIP:ZCL: SwitchServer: OnInitialPress
          [1697609895.678917][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697609895.678949][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001D priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x1 Epoch timestamp: 0x0000018B416F4EFE

          switch read-event initial-press   1 1

          Verify TH receives InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697609943.498311][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001
          [1697609943.498313][7767:7769] CHIP:TOO:   Event number: 29
          [1697609943.498315][7767:7769] CHIP:TOO:   Priority: Info
          [1697609943.498317][7767:7769] CHIP:TOO:   Timestamp: 1697609895678
          [1697609943.498320][7767:7769] CHIP:TOO:   InitialPress: {
          [1697609943.498323][7767:7769] CHIP:TOO:     NewPosition: 1
          [1697609943.498325][7767:7769] CHIP:TOO:    }

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":2}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the MultiPressongoing event with NewPosition set to 1:

          [1697610439.738698][7384:7386] CHIP:-: Received payload: "{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":2}"
          [1697610439.738953][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0c1
          [1697610439.738982][7384:7384] CHIP:-: The new position when the momentary switch has been pressed in a multi-press sequence:1
          [1697610439.738995][7384:7384] CHIP:-: 2 times the momentary switch has been pressed
          [1697610439.739001][7384:7384] CHIP:ZCL: SwitchServer: OnMultiPressOngoing
          [1697610439.739129][7384:7384] CHIP:EVL: Dropped 1 event from buffer with priority 1 and event number  0x0000000000000006 due to overflow: event priority_level: 1
          [1697610439.739190][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697610439.739220][7384:7384] CHIP:EVL: LogEvent event number: 0x0000000000000020 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x5 Epoch timestamp: 0x0000018B41779C3B

          switch read-event multi-press-ongoing 1 1

          Verify TH receives  MultiPressongoing event with NewPosition set to 1 and CurrentNumberOfPressesCounted set to 2 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697610464.005842][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0005
          [1697610464.005846][7767:7769] CHIP:TOO:   Event number: 32
          [1697610464.005848][7767:7769] CHIP:TOO:   Priority: Info
          [1697610464.005850][7767:7769] CHIP:TOO:   Timestamp: 1697610439739
          [1697610464.005861][7767:7769] CHIP:TOO:   MultiPressOngoing: {
          [1697610464.005866][7767:7769] CHIP:TOO:     NewPosition: 1
          [1697610464.005869][7767:7769] CHIP:TOO:     CurrentNumberOfPressesCounted: 2
          [1697610464.005872][7767:7769] CHIP:TOO:    }
      disabled: true

    - label: "Step 6h: Operator releases switch from the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the ShortRelease event with PreviousPosition set to 1:

          [1697610020.642902][7384:7386] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}"
          [1697610020.643151][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0bf
          [1697610020.643184][7384:7384] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1
          [1697610020.643194][7384:7384] CHIP:ZCL: SwitchServer: OnShortRelease
          [1697610020.643356][7384:7384] CHIP:EVL: Dropped 1 event from buffer with priority 1 and event number  0x0000000000000005 due to overflow: event priority_level: 1
          [1697610020.643427][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697610020.643456][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001E priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x3 Epoch timestamp: 0x0000018B41713723

          switch read-event short-release 1 1

          Verify TH receives ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697610069.134658][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003
          [1697610069.134661][7767:7769] CHIP:TOO:   Event number: 30
          [1697610069.134663][7767:7769] CHIP:TOO:   Priority: Info
          [1697610069.134665][7767:7769] CHIP:TOO:   Timestamp: 1697610020643
          [1697610069.134669][7767:7769] CHIP:TOO:   ShortRelease: {
          [1697610069.134672][7767:7769] CHIP:TOO:     PreviousPosition: 1
          [1697610069.134675][7767:7769] CHIP:TOO:    }

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":2}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the MultiPressComplete event with PreviousPosition set to 1 and TotalNumberOfPressesCounted set to 2 :

          [1697610593.918223][7384:7386] CHIP:-: Received payload: "{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":2}"
          [1697610593.918505][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0c2
          [1697610593.918536][7384:7384] CHIP:-: The previous position when the momentary switch has been pressed in a multi-press sequence:1
          [1697610593.918545][7384:7384] CHIP:-: 2 times the momentary switch has been pressed
          [1697610593.918552][7384:7384] CHIP:ZCL: SwitchServer: OnMultiPressComplete
          [1697610593.918693][7384:7384] CHIP:EVL: Dropped 1 event from buffer with priority 1 and event number  0x0000000000000007 due to overflow: event priority_level: 1
          [1697610593.918774][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697610593.918814][7384:7384] CHIP:EVL: LogEvent event number: 0x0000000000000021 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x6 Epoch timestamp: 0x0000018B4179F67E

          switch read-event multi-press-complete 1 1

          Verify TH receives MultiPressComplete event with PreviousPosition set to 1 and TotalNumberOfPressesCounted set to 2 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697610633.998752][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0006
          [1697610633.998762][7767:7769] CHIP:TOO:   Event number: 33
          [1697610633.998769][7767:7769] CHIP:TOO:   Priority: Info
          [1697610633.998776][7767:7769] CHIP:TOO:   Timestamp: 1697610593918
          [1697610633.998792][7767:7769] CHIP:TOO:   MultiPressComplete: {
          [1697610633.998803][7767:7769] CHIP:TOO:     PreviousPosition: 1
          [1697610633.998811][7767:7769] CHIP:TOO:     TotalNumberOfPressesCounted: 2
          [1697610633.998821][7767:7769] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 6i: If MultiPressMax == 2 (see 2c of TC-SWTCH-2.1), skip steps
          6j .. 6o"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          no Matter messages for this step
      disabled: true

    - label: "Step 6j: Operator operates switch (press briefly) on the DUT"
      PICS: ""
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the InitialPress event with NewPosition set to 1:

          [1697609895.678486][7384:7386] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}"
          [1697609895.678744][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0be
          [1697609895.678786][7384:7384] CHIP:-: The new position when the momentary switch starts to be pressed:1
          [1697609895.678800][7384:7384] CHIP:ZCL: SwitchServer: OnInitialPress
          [1697609895.678917][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697609895.678949][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001D priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x1 Epoch timestamp: 0x0000018B416F4EFE

          switch read-event initial-press   1 1

          Verify TH receives InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697609943.498311][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001
          [1697609943.498313][7767:7769] CHIP:TOO:   Event number: 29
          [1697609943.498315][7767:7769] CHIP:TOO:   Priority: Info
          [1697609943.498317][7767:7769] CHIP:TOO:   Timestamp: 1697609895678
          [1697609943.498320][7767:7769] CHIP:TOO:   InitialPress: {
          [1697609943.498323][7767:7769] CHIP:TOO:     NewPosition: 1
          [1697609943.498325][7767:7769] CHIP:TOO:    }
      disabled: true

    - label: "Step 6k: Operator releases switch from the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the ShortRelease event with PreviousPosition set to 1:

          [1697610020.642902][7384:7386] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}"
          [1697610020.643151][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0bf
          [1697610020.643184][7384:7384] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1
          [1697610020.643194][7384:7384] CHIP:ZCL: SwitchServer: OnShortRelease
          [1697610020.643356][7384:7384] CHIP:EVL: Dropped 1 event from buffer with priority 1 and event number  0x0000000000000005 due to overflow: event priority_level: 1
          [1697610020.643427][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697610020.643456][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001E priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x3 Epoch timestamp: 0x0000018B41713723

           switch read-event short-release 1 1

          Verify TH receives ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697610069.134658][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003
          [1697610069.134661][7767:7769] CHIP:TOO:   Event number: 30
          [1697610069.134663][7767:7769] CHIP:TOO:   Priority: Info
          [1697610069.134665][7767:7769] CHIP:TOO:   Timestamp: 1697610020643
          [1697610069.134669][7767:7769] CHIP:TOO:   ShortRelease: {
          [1697610069.134672][7767:7769] CHIP:TOO:     PreviousPosition: 1
          [1697610069.134675][7767:7769] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 6l: Briefly after 6k, operator operates switch again on the DUT
          (press briefly)"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the InitialPress event with NewPosition set to 1:

          [1697609895.678486][7384:7386] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}"
          [1697609895.678744][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0be
          [1697609895.678786][7384:7384] CHIP:-: The new position when the momentary switch starts to be pressed:1
          [1697609895.678800][7384:7384] CHIP:ZCL: SwitchServer: OnInitialPress
          [1697609895.678917][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697609895.678949][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001D priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x1 Epoch timestamp: 0x0000018B416F4EFE

          switch read-event initial-press   1 1

          Verify TH receives InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697609943.498311][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001
          [1697609943.498313][7767:7769] CHIP:TOO:   Event number: 29
          [1697609943.498315][7767:7769] CHIP:TOO:   Priority: Info
          [1697609943.498317][7767:7769] CHIP:TOO:   Timestamp: 1697609895678
          [1697609943.498320][7767:7769] CHIP:TOO:   InitialPress: {
          [1697609943.498323][7767:7769] CHIP:TOO:     NewPosition: 1
          [1697609943.498325][7767:7769] CHIP:TOO:    }

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":2}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the MultiPressongoing event with NewPosition set to 1 and CurrentNumberOfPressesCounted set to 2:

          [1697611293.571665][7384:7386] CHIP:-: Received payload: "{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":2}"
          [1697611293.571907][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0c4
          [1697611293.571940][7384:7384] CHIP:-: The new position when the momentary switch has been pressed in a multi-press sequence:1
          [1697611293.571949][7384:7384] CHIP:-: 2 times the momentary switch has been pressed
          [1697611293.571955][7384:7384] CHIP:ZCL: SwitchServer: OnMultiPressOngoing
          [1697611293.572127][7384:7384] CHIP:EVL: Dropped 1 event from buffer with priority 1 and event number  0x000000000000000A due to overflow: event priority_level: 1
          [1697611293.572215][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697611293.572258][7384:7384] CHIP:EVL: LogEvent event number: 0x0000000000000023 priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x5 Epoch timestamp: 0x0000018B4184A383

          switch read-event  multi-press-ongoing  1 1

          Verify MultiPressongoing event with NewPosition set to 1 and CurrentNumberOfPressesCounted set to 2 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1659695330.923244][3912:3918] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0005
          [1659695330.923264][3912:3918] CHIP:TOO:          Event number: 45
          [1659695330.923283][3912:3918] CHIP:TOO:          Priority: Info
          [1659695330.923302][3912:3918] CHIP:TOO:          Timestamp: 17754336
          [1659695330.923326][3912:3918] CHIP:TOO:   MultiPressOngoing: {
          [1659695330.923346][3912:3918] CHIP:TOO:     NewPosition: 1
          [1659695330.923366][3912:3918] CHIP:TOO:     CurrentNumberOfPressesCounted: 2
          [1659695330.923385][3912:3918] CHIP:TOO:    }
      disabled: true

    - label: "Step 6m: Operator releases switch from the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the ShortRelease event with PreviousPosition set to 1:

          [1697610020.642902][7384:7386] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}"
          [1697610020.643151][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0bf
          [1697610020.643184][7384:7384] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1
          [1697610020.643194][7384:7384] CHIP:ZCL: SwitchServer: OnShortRelease
          [1697610020.643356][7384:7384] CHIP:EVL: Dropped 1 event from buffer with priority 1 and event number  0x0000000000000005 due to overflow: event priority_level: 1
          [1697610020.643427][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697610020.643456][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001E priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x3 Epoch timestamp: 0x0000018B41713723

          switch read-event short-release 1 1

          Verify TH receives ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697610069.134658][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003
          [1697610069.134661][7767:7769] CHIP:TOO:   Event number: 30
          [1697610069.134663][7767:7769] CHIP:TOO:   Priority: Info
          [1697610069.134665][7767:7769] CHIP:TOO:   Timestamp: 1697610020643
          [1697610069.134669][7767:7769] CHIP:TOO:   ShortRelease: {
          [1697610069.134672][7767:7769] CHIP:TOO:     PreviousPosition: 1
          [1697610069.134675][7767:7769] CHIP:TOO:    }
      disabled: true

    - label:
          "Step 6n: Briefly after 6m, operator operates switch again (press
          briefly)"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the InitialPress event with NewPosition set to 1:

          [1697609895.678486][7384:7386] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}"
          [1697609895.678744][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0be
          [1697609895.678786][7384:7384] CHIP:-: The new position when the momentary switch starts to be pressed:1
          [1697609895.678800][7384:7384] CHIP:ZCL: SwitchServer: OnInitialPress
          [1697609895.678917][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697609895.678949][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001D priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x1 Epoch timestamp: 0x0000018B416F4EFE

          switch read-event  initial-press 1 1

          Verify TH receives InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697609943.498311][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001
          [1697609943.498313][7767:7769] CHIP:TOO:   Event number: 29
          [1697609943.498315][7767:7769] CHIP:TOO:   Priority: Info
          [1697609943.498317][7767:7769] CHIP:TOO:   Timestamp: 1697609895678
          [1697609943.498320][7767:7769] CHIP:TOO:   InitialPress: {
          [1697609943.498323][7767:7769] CHIP:TOO:     NewPosition: 1
          [1697609943.498325][7767:7769] CHIP:TOO:    }

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":3}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the MultiPressongoing event with NewPosition set to 1 and CurrentNumberOfPressesCounted set to 3:

          [1686290991.699382][30125:30127] CHIP:-: Received payload: "{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":3}"
          [1686290991.699646][30125:30125] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 89759738
          [1686290991.699678][30125:30125] CHIP:-: The new position when the momentary switch has been pressed in a multi-press sequence:1
          [1686290991.699687][30125:30125] CHIP:-: 3 times the momentary switch has been pressed
          [1686290991.699694][30125:30125] CHIP:ZCL: SwitchServer: OnMultiPressOngoing

          switch read-event  multi-press-ongoing  1 1

          Verify TH receives  MultiPressongoing event with NewPosition set to 1 and CurrentNumberOfPressesCounted set to 3 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1659698336.786184][4081:4086] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0005
          [1659698336.786209][4081:4086] CHIP:TOO:          Event number: 57
          [1659698336.786233][4081:4086] CHIP:TOO:          Priority: Info
          [1659698336.786256][4081:4086] CHIP:TOO:          Timestamp: 20718400
          [1659698336.786287][4081:4086] CHIP:TOO:   MultiPressOngoing: {
          [1659698336.786312][4081:4086] CHIP:TOO:     NewPosition: 1
          [1659698336.786337][4081:4086] CHIP:TOO:     CurrentNumberOfPressesCounted: 3
          [1659698336.786360][4081:4086] CHIP:TOO:    }
      disabled: true

    - label: "Step 6o: Operator releases switch from the DUT"
      PICS: SWTCH.S.F01 && SWTCH.S.F04
      verification: |
          Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch.

          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          DUT generated the ShortRelease event with PreviousPosition set to 1:

          [1697610020.642902][7384:7386] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}"
          [1697610020.643151][7384:7384] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4dbcc0bf
          [1697610020.643184][7384:7384] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1
          [1697610020.643194][7384:7384] CHIP:ZCL: SwitchServer: OnShortRelease
          [1697610020.643356][7384:7384] CHIP:EVL: Dropped 1 event from buffer with priority 1 and event number  0x0000000000000005 due to overflow: event priority_level: 1
          [1697610020.643427][7384:7384] CHIP:EVL: Copy Event to next buffer with priority 1
          [1697610020.643456][7384:7384] CHIP:EVL: LogEvent event number: 0x000000000000001E priority: 1, endpoint id:  0x1 cluster id: 0x0000_003B event id: 0x3 Epoch timestamp: 0x0000018B41713723

          switch read-event short-release  1 1

          Verify TH receives ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform:

          [1697610069.134658][7767:7769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003
          [1697610069.134661][7767:7769] CHIP:TOO:   Event number: 30
          [1697610069.134663][7767:7769] CHIP:TOO:   Priority: Info
          [1697610069.134665][7767:7769] CHIP:TOO:   Timestamp: 1697610020643
          [1697610069.134669][7767:7769] CHIP:TOO:   ShortRelease: {
          [1697610069.134672][7767:7769] CHIP:TOO:     PreviousPosition: 1
          [1697610069.134675][7767:7769] CHIP:TOO:    }


          On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)

          echo '{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":3}' > /tmp/chip_all_clusters_fifo_<PID>  (PID of DUT)

          Verify MultiPressonComplete event with PreviousPosition set to 1 and TotalNumberOfPressesCounted set to 3 on TH (all-cluster-app) log and below is the sample log provided for the raspi platform:

          [1659694592.347850][2530:2538] CHIP:-: Received payload: "{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":3}"
          [1659694592.348389][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e772b
          [1659694592.348481][2530:2530] CHIP:-: The new position when the momentary switch has been pressed in a multi-press sequence:1

           switch read-event multi-press-complete 1 1

          Verify TH receives MultiPressonComplete event with PreviousPosition set to 1 and TotalNumberOfPressesCounted set to 3 on TH (chip-tool) log and below is the sample log provided for the raspi platform:

          [1659695330.923244][3912:3918] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0005
          [1659695330.923264][3912:3918] CHIP:TOO:          Event number: 45
          [1659695330.923283][3912:3918] CHIP:TOO:          Priority: Info
          [1659695330.923302][3912:3918] CHIP:TOO:          Timestamp: 17754336
          [1659695330.923326][3912:3918] CHIP:TOO:   MultiPressComplete: {
          [1659695330.923346][3912:3918] CHIP:TOO:     PreviousPosition: 1
          [1659695330.923366][3912:3918] CHIP:TOO:     TotalNumberOfPressesCounted: 3
          [1659695330.923385][3912:3918] CHIP:TOO:    }
      disabled: true
