| # 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. |
| |
| name: 42.2.2. [TC-TSTAT-2.2] Setpoint Test Cases with server as DUT |
| |
| PICS: |
| - TSTAT.S |
| |
| config: |
| nodeId: 0x12344321 |
| cluster: "Thermostat" |
| endpoint: 1 |
| |
| tests: |
| - label: "Wait for the commissioned device to be retrieved" |
| cluster: "DelayCommands" |
| command: "WaitForCommissionee" |
| arguments: |
| values: |
| - name: "nodeId" |
| value: nodeId |
| |
| - label: "Saving value for comparision in step 2a read MinCoolSetpointLimit" |
| PICS: TSTAT.S.A0017 |
| command: "readAttribute" |
| attribute: "MinCoolSetpointLimit" |
| response: |
| saveAs: MinCoolSetpointLimit |
| |
| - label: "Saving value for comparision in step 2a read MaxCoolSetpointLimit" |
| PICS: TSTAT.S.A0018 |
| command: "readAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| response: |
| saveAs: MaxCoolSetpointLimit |
| |
| - label: |
| "Saving value for comparision in step 2c read attribute |
| MinSetpointDeadBand" |
| PICS: TSTAT.S.A0019 |
| command: "readAttribute" |
| attribute: "MinSetpointDeadBand" |
| response: |
| saveAs: MinSetpointDeadBand |
| |
| - label: "Saving value for comparision in step 3a read MinHeatSetpointLimit" |
| PICS: TSTAT.S.A0015 |
| command: "readAttribute" |
| attribute: "MinHeatSetpointLimit" |
| response: |
| saveAs: MinHeatSetpointLimit |
| |
| - label: |
| "Saving value for comparision in step 3 reads |
| UnoccupiedCoolingSetpoint attribute" |
| command: "readAttribute" |
| attribute: "UnoccupiedCoolingSetpoint" |
| PICS: TSTAT.S.A0013 |
| response: |
| saveAs: UnoccupiedCoolingSetpoint |
| |
| - label: "Saving value for comparision in step 3a read MaxHeatSetpointLimit" |
| PICS: TSTAT.S.A0016 |
| command: "readAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| response: |
| saveAs: MaxHeatSetpointLimit |
| |
| - label: |
| "Saving value for comparision in step3c read attribute |
| OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.A0012 |
| command: "readAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| response: |
| saveAs: OccupiedHeatingSetpoint |
| |
| - label: |
| "Saving value for comparision in step3c read attribute |
| OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.A0011 |
| command: "readAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| response: |
| saveAs: OccupiedCoolingSetpoint |
| |
| - label: |
| "Saving value for comparision in step 6a read attribute |
| AbsMinHeatSetpointLimit" |
| command: "readAttribute" |
| attribute: "AbsMinHeatSetpointLimit" |
| PICS: TSTAT.S.A0003 |
| response: |
| saveAs: AbsMinHeatSetpointLimitValue |
| |
| - label: |
| "Saving value for comparision in step 7a read attribute |
| AbsMaxHeatSetpointLimit" |
| command: "readAttribute" |
| attribute: "AbsMaxHeatSetpointLimit" |
| PICS: TSTAT.S.A0004 |
| response: |
| saveAs: AbsMaxHeatSetpointLimitValue |
| |
| - label: |
| "Saving value for comparision in step 8a read attribute |
| AbsMinCoolSetpointLimit" |
| command: "readAttribute" |
| attribute: "AbsMinCoolSetpointLimit" |
| PICS: TSTAT.S.A0005 |
| response: |
| saveAs: AbsMinCoolSetpointLimit |
| |
| - label: |
| "Saving value for comparision in step9a read attribute |
| AbsMaxCoolSetpointLimit" |
| command: "readAttribute" |
| attribute: "AbsMaxCoolSetpointLimit" |
| PICS: TSTAT.S.A0006 |
| response: |
| saveAs: AbsMaxCoolSetpointLimit |
| |
| #Using saved values when optional attributes are available |
| - label: "Read attribute OccupiedCoolingSetpoint from the DUT" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 |
| command: "readAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| response: |
| constraints: |
| type: int16s |
| minValue: MinCoolSetpointLimit |
| maxValue: MaxCoolSetpointLimit |
| |
| #Using hard coded values when optional attributes are not available |
| - label: |
| "Reads OccupiedCoolingSetpoint attribute from Server DUT and verifies |
| that the value is within range" |
| command: "readAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.A0018 |
| response: |
| constraints: |
| type: int16s |
| minValue: 1600 |
| maxValue: 3200 |
| |
| - label: |
| "Writes a value back that is different but valid for |
| OccupiedCoolingSetpoint attribute" |
| command: "writeAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 |
| arguments: |
| value: 2500 |
| |
| - label: |
| "Reads it back again to confirm the successful write of |
| OccupiedCoolingSetpoint attribute" |
| command: "readAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 |
| response: |
| value: 2500 |
| |
| - label: |
| "Writes OccupiedCoolingSetpoint to value below the |
| MinCoolSetpointLimit" |
| command: "writeAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 && !TSTAT.S.A0017 |
| arguments: |
| value: 30 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| #MinCoolSetPointLimit might be negative if not checked before decrement |
| - label: |
| "Writes OccupiedCoolingSetpoint to value below the |
| MinCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 && PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. |
| |
| #2 Test Harness Client attempts to write OccupiedCoolingSetpoint below the MinCoolSetpointLimit and confirms that the device does not accept the value. |
| ./chip-tool thermostat write occupied-cooling-setpoint 1000 1 1 |
| On TH(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) for the value which is below of the MinCoolSetpointLimit |
| |
| [1676028984.901635][19375:19377] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1676028984.901706][19375:19377] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1676028984.901895][19375:19377] CHIP:EM: <<< [E:18153i M:141749864 (Ack:137408936)] (S) Msg TX to 1:0000000000000001 [E8D5] --- Type 0000:10 (SecureChannel:StandaloneAck) |
| [1676028984.901980][19375:19377] CHIP:IN: (S) Sending msg 141749864 on secure session with LSID: 58847 |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Writes OccupiedCoolingSetpoint to value above the |
| MaxCoolSetpointLimit" |
| command: "writeAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 && !TSTAT.S.A0017 |
| arguments: |
| value: 4000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes OccupiedCoolingSetpoint to value above the |
| MaxCoolSetpointLimit" |
| command: "writeAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 |
| arguments: |
| value: MaxCoolSetpointLimit + 1000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes the limit of MaxCoolSetpointLimit to OccupiedCoolingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 && !TSTAT.S.A0017 |
| arguments: |
| value: 3200 |
| |
| - label: |
| "Writes the limit of MaxCoolSetpointLimit to OccupiedCoolingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 |
| arguments: |
| value: MaxCoolSetpointLimit |
| |
| - label: |
| "Writes the limit of MinCoolSetpointLimit to OccupiedCoolingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 && !TSTAT.S.F05 && !TSTAT.S.A0017 |
| arguments: |
| value: 1600 |
| |
| - label: |
| "Writes the limit of MinCoolSetpointLimit to OccupiedCoolingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 && !TSTAT.S.F05 && TSTAT.S.A0017 |
| arguments: |
| value: MinCoolSetpointLimit |
| |
| #LowerLimit = Max(MinCoolSetpointLimit,(OccupiedHeatingSetpoint + MinSetpointDeadBand)) not possible in YAML |
| - label: |
| "Writes If TSTAT.S.F05(AUTO) LowerLimit = Max(MinCoolSetpointLimit, |
| (OccupiedHeatingSetpoint + MinSetpointDeadBand)) to |
| OccupiedCoolingSetpoint attribute when Auto is enabled" |
| PICS: TSTAT.S.F05 && TSTAT.S.A0011 && PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. |
| |
| Test Harness Client then attempts to write OccupiedCoolingSetpoint to both of the limits of LowerLimit(1600) & MaxCoolSetpointLimit(3200) and confirms that the device does accept the value. See also Note 5. |
| |
| ./chip-tool thermostat write occupied-cooling-setpoint 1600 1 1 |
| On TH(chip-tool) verify that DUT sends a success response |
| [1676029009.026653][19381:19383] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1676029009.026688][19381:19383] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1676029009.026776][19381:19383] CHIP:EM: <<< [E:29492i M:142792974 (Ack:241003612)] (S) Msg TX to 1:0000000000000001 [E8D5] --- Type 0000:10 |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| #Using saved values when optional attributes are available |
| - label: |
| "Reads OccupiedHeatingSetpoint attribute from Server DUT and verifies |
| that the value is within range" |
| command: "readAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016 |
| response: |
| constraints: |
| type: int16s |
| minValue: MinHeatSetpointLimit |
| maxValue: MaxHeatSetpointLimit |
| |
| #Using hard coded values when optional attributes are not available |
| - label: |
| "Reads OccupiedHeatingSetpoint attribute from Server DUT and verifies |
| that the value is within range" |
| command: "readAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 && !TSTAT.S.A0015 && !TSTAT.S.A0016 |
| response: |
| constraints: |
| type: int16s |
| minValue: 700 |
| maxValue: 3000 |
| |
| - label: |
| "Writes a value back that is different but valid for |
| OccupiedHeatingSetpoint attribute" |
| command: "writeAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 |
| arguments: |
| value: 2100 |
| |
| - label: |
| "Reads it back again to confirm the successful write of |
| OccupiedHeatingSetpoint attribute" |
| command: "readAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 |
| response: |
| value: 2100 |
| |
| - label: |
| "Writes OccupiedHeatingSetpoint to value below the |
| MinHeatSetpointLimit" |
| command: "writeAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 && !TSTAT.S.A0015 |
| arguments: |
| value: 600 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| #MinHeatSetpointLimit might be negative if not checked before decrement |
| - label: |
| "Writes OccupiedHeatingSetpoint to value below the |
| MinHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 && PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. |
| |
| #1. Test Harness Client attempts to write OccupiedHeatingSetpoint below the MinHeatSetpointLimit and confirms that the device does not accept the value |
| |
| ./chip-tool thermostat write occupied-heating-setpoint 500 1 1 |
| On TH(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) |
| [1676029113.651245][19392:19394] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1676029113.651285][19392:19394] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1676029113.651397][19392:19394] CHIP:EM: <<< [E:43315i M:59735604 (Ack:107613834)] (S) Msg TX to 1:0000000000000001 [E8D5] --- Type 0000:10 |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Writes OccupiedHeatingSetpoint to value above the |
| MaxHeatSetpointLimit" |
| command: "writeAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 && !TSTAT.S.A0016 |
| arguments: |
| value: 4010 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes OccupiedHeatingSetpoint to value above the |
| MaxHeatSetpointLimit" |
| command: "writeAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0016 |
| arguments: |
| value: MaxHeatSetpointLimit + 1000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes the limit of MaxHeatSetpointLimit to OccupiedHeatingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 && !TSTAT.S.F05 && !TSTAT.S.A0016 |
| arguments: |
| value: 3000 |
| |
| - label: |
| "Writes the limit of MaxHeatSetpointLimit to OccupiedHeatingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 && !TSTAT.S.F05 && TSTAT.S.A0016 |
| arguments: |
| value: MaxHeatSetpointLimit |
| |
| - label: |
| "Writes the limit of MaxHeatSetpointLimit to OccupiedHeatingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F05 && !TSTAT.S.A0015 |
| arguments: |
| value: 3000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| #UpperLimit = Min(MaxHeatSetpointLimit,(OccupiedCoolingSetpoint - MinSetpointDeadBand)) not possible in YAML |
| - label: |
| "Writes If TSTAT.S.F05(AUTO) UpperLimit = Min(MaxHeatSetpointLimit, |
| (OccupiedCoolingSetpoint - MinSetpointDeadBand)) to |
| OccupiedHeatingSetpoint attribute when Auto is enabled" |
| PICS: |
| TSTAT.S.F05 && TSTAT.S.A0011 && TSTAT.S.A0012 && PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. |
| |
| Test Harness Client then attempts to write OccupiedHeatingSetpoint to both of the limits of MinHeatSetpointLimit(700) & UpperLimit(3000) and confirms that the device does accept the value. |
| |
| ./chip-tool thermostat write occupied-heating-setpoint 3000 1 1 |
| |
| On TH(chip-tool) verify that DUT sends a success response |
| 1676029222.303920][19403:19405] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1676029222.303955][19403:19405] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1676029222.304055][19403:19405] CHIP:EM: <<< [E:236i M:251820549 (Ack:138263425)] (S) Msg TX to 1:0000000000000001 [E8D5] --- Type 0000:10 |
| |
| ./chip-tool thermostat write occupied-heating-setpoint 700 1 1 |
| On TH(chip-tool) verify that DUT sends a success response |
| |
| |
| [1678943387.942204][770598:770600] CHIP:DMG: StatusIB = |
| [1678943387.942212][770598:770600] CHIP:DMG: { |
| [1678943387.942220][770598:770600] CHIP:DMG: status = 0x00 (SUCCESS), |
| [1678943387.942228][770598:770600] CHIP:DMG: }, |
| [1678943387.942236][770598:770600] CHIP:DMG: |
| [1678943387.942243][770598:770600] CHIP:DMG: }, |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Writes the limit of MinHeatSetpointLimit to OccupiedHeatingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 && !TSTAT.S.A0015 |
| arguments: |
| value: 700 |
| |
| - label: |
| "Writes the limit of MinHeatSetpointLimit to OccupiedHeatingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 |
| arguments: |
| value: MinHeatSetpointLimit |
| |
| - label: |
| "Reads UnoccupiedCoolingSetpoint attribute from Server DUT and |
| verifies that the value is within range" |
| command: "readAttribute" |
| attribute: "UnoccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 |
| response: |
| constraints: |
| type: int16s |
| minValue: MinCoolSetpointLimit |
| maxValue: MaxCoolSetpointLimit |
| |
| - label: |
| "Reads UnoccupiedCoolingSetpoint attribute from Server DUT and |
| verifies that the value is within range" |
| command: "readAttribute" |
| attribute: "UnoccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.A0018 |
| response: |
| constraints: |
| type: int16s |
| minValue: 1600 |
| maxValue: 3200 |
| |
| - label: |
| "Writes a value back that is different but valid for |
| UnoccupiedCoolingSetpoint attribute" |
| command: "writeAttribute" |
| attribute: "UnoccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F01 |
| arguments: |
| value: 2500 |
| |
| - label: |
| "Reads it back again to confirm the successful write of |
| UnoccupiedCoolingSetpoint attribute" |
| command: "readAttribute" |
| attribute: "UnoccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F01 |
| response: |
| value: 2500 |
| |
| - label: |
| "Writes UnoccupiedCoolingSetpoint to value below the |
| MinCoolSetpointLimit" |
| command: "writeAttribute" |
| attribute: "UnoccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 |
| arguments: |
| value: 1002 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| #MinCoolSetpointLimit might be negative if not checked before decrement |
| - label: |
| "Writes UnoccupiedCoolingSetpoint to value below the |
| MinCoolSetpointLimit" |
| PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0017 && PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. |
| |
| #1. Test Harness Client attempts to write OccupiedHeatingSetpoint below the MinHeatSetpointLimit and confirms that the device does not accept the value |
| |
| ./chip-tool thermostat write unoccupied-cooling-setpoint 500 1 1 |
| On TH(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) |
| [1676029263.842915][19409:19411] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1676029263.842943][19409:19411] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1676029263.843052][19409:19411] CHIP:EM: <<< [E:47350i M:72320003 (Ack:188090912)] (S) Msg TX to 1:0000000000000001 [E8D5] --- Type 0000:10 (SecureChannel:StandaloneAck) |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Writes UnoccupiedCoolingSetpoint to value above the |
| MaxCoolSetpointLimit" |
| command: "writeAttribute" |
| attribute: "UnoccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0018 |
| arguments: |
| value: 4010 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes UnoccupiedCoolingSetpoint to value above the |
| MaxCoolSetpointLimit" |
| command: "writeAttribute" |
| attribute: "UnoccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0018 |
| arguments: |
| value: MaxCoolSetpointLimit + 1000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes the limit of MaxCoolSetpointLimit to UnoccupiedCoolingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "UnoccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0018 && !TSTAT.S.F05 |
| arguments: |
| value: 3200 |
| |
| - label: |
| "Writes the limit of MaxCoolSetpointLimit to UnoccupiedCoolingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "UnoccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.F05 |
| arguments: |
| value: MaxCoolSetpointLimit |
| |
| #LowerLimit = Max(MinCoolSetpointLimit,(UnoccupiedCoolingSetpoint + MinSetpointDeadBand)) not possible in YAML |
| - label: |
| "Writes If TSTAT.S.F05(AUTO) LowerLimit = Max(MinCoolSetpointLimit, |
| (UnoccupiedCoolingSetpoint + MinSetpointDeadBand)) to |
| UnoccupiedCoolingSetpoint attribute" |
| PICS: |
| TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0013 && TSTAT.S.F05 && |
| PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. |
| |
| |
| below mentioned the example command to verify |
| |
| ./chip-tool thermostat write unoccupied-cooling-setpoint 2000 1 1 |
| On TH(chip-tool) verify that DUT sends a success response. As its an optional attribute, we are not getting expected result |
| [1676029365.250210][19420:19422] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1676029365.250263][19420:19422] CHIP:TOO: Response Failure: IM Error 0x00000586: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) |
| [1676029365.250403][19420:19422] CHIP:EM: <<< [E:16230i M:267641165 (Ack:117850882)] (S) Msg TX to 1:0000000000000001 [E8D5] --- Type 0000:10 (SecureChannel:StandaloneAck) |
| [1676029365.250467][19420:19422] CHIP:IN: (S) Sending msg 267641165 on secure session with LSID: 45606 |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "UnoccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.F05 |
| arguments: |
| value: 1600 |
| |
| - label: |
| "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "UnoccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && TSTAT.S.F05 |
| arguments: |
| value: 1600 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "UnoccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.F05 |
| arguments: |
| value: MinCoolSetpointLimit |
| |
| #Using saved values when optional attributes are available |
| - label: |
| "Reads UnoccupiedHeatingSetpoint attribute from Server DUT and |
| verifies that the value is within range" |
| command: "readAttribute" |
| attribute: "UnoccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016 |
| response: |
| constraints: |
| type: int16s |
| minValue: MinHeatSetpointLimit |
| maxValue: MaxHeatSetpointLimit |
| |
| #Using hardcoded values when optional attributes are not available |
| - label: |
| "Reads UnoccupiedHeatingSetpoint attribute from Server DUT and |
| verifies that the value is within range" |
| command: "readAttribute" |
| attribute: "UnoccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015 && !TSTAT.S.A0016 |
| response: |
| constraints: |
| type: int16s |
| minValue: 700 |
| maxValue: 3000 |
| |
| - label: |
| "Writes a value back that is different but valid for |
| UnoccupiedHeatingSetpoint attribute" |
| command: "writeAttribute" |
| attribute: "UnoccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F00 |
| arguments: |
| value: 2500 |
| |
| - label: |
| "Reads it back again to confirm the successful write of |
| UnoccupiedHeatingSetpoint attribute" |
| command: "readAttribute" |
| attribute: "UnoccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F00 |
| response: |
| value: 2500 |
| |
| - label: |
| "Writes UnoccupiedHeatingSetpoint to value below the |
| MinHeatSetpointLimit" |
| command: "writeAttribute" |
| attribute: "UnoccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015 |
| arguments: |
| value: 500 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| #MinHeatSetpointLimit might be negative if not checked before decrement |
| - label: |
| "Writes UnoccupiedHeatingSetpoint to value below the |
| MinHeatSetpointLimit" |
| PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0015 && PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. |
| |
| #1. Test Harness Client attempts to write UnoccupiedHeatingSetpoint below the MinHeatSetpointLimit and confirms that the device does not accept the value |
| |
| ./chip-tool thermostat write unoccupied-heating-setpoint 500 1 1 |
| On TH(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87). As its an optional attribute, we are not getting expected result |
| |
| [1676029557.268065][19431:19433] CHIP:DMG: } |
| [1676029557.268220][19431:19433] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1676029557.268290][19431:19433] CHIP:TOO: Response Failure: IM Error 0x00000586: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) |
| [1676029557.268470][19431:19433] CHIP:EM: <<< [E:8458i M:31631638 (Ack:115187982)] (S) Msg TX to 1:0000000000000001 [E8D5] --- Type 0000:10 (SecureChannel:StandaloneAck) |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Writes UnoccupiedHeatingSetpoint to value above the |
| MaxHeatSetpointLimit" |
| command: "writeAttribute" |
| attribute: "UnoccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0016 |
| arguments: |
| value: 4010 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes UnoccupiedHeatingSetpoint to value above the |
| MaxHeatSetpointLimit" |
| command: "writeAttribute" |
| attribute: "UnoccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0016 |
| arguments: |
| value: MaxHeatSetpointLimit + 1000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes the limit of MaxHeatSetpointLimit to UnoccupiedHeatingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "UnoccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0016 && !TSTAT.S.F05 |
| arguments: |
| value: 3000 |
| |
| - label: |
| "Writes the limit of MaxHeatSetpointLimit to UnoccupiedHeatingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "UnoccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 |
| arguments: |
| value: MaxHeatSetpointLimit |
| |
| - label: |
| "Writes the limit of MaxHeatSetpointLimit to UnoccupiedHeatingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "UnoccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0016 && TSTAT.S.F05 |
| arguments: |
| value: 3000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| #UpperLimit = Min(MaxHeatSetpointLimit,(UnoccupiedCoolingSetpoint - MinSetpointDeadBand)) not possible in YAML |
| - label: |
| "Writes If TSTAT.S.F05(AUTO) UpperLimit = Min(MaxHeatSetpointLimit, |
| (UnoccupiedCoolingSetpoint - MinSetpointDeadBand)) to |
| UnoccupiedHeatingSetpoint attribute when Auto is enabled." |
| PICS: |
| TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0013 && TSTAT.S.F05 && |
| PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. |
| |
| |
| below mentioned the example command to verify |
| |
| ./chip-tool thermostat write unoccupied-heating-setpoint 2000 1 1 |
| On TH(chip-tool) verify that DUT sends a success response. As its an optional attribute, we are not getting expected result |
| |
| [1676029629.242182][19437:19439] CHIP:DMG: } |
| [1676029629.242250][19437:19439] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1676029629.242280][19437:19439] CHIP:TOO: Response Failure: IM Error 0x00000586: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) |
| [1676029629.242366][19437:19439] CHIP:EM: <<< [E:51650i M:149591010 (Ack:214538556)] (S) Msg TX to 1:0000000000000001 [E8D5] --- Type 0000:10 (SecureChannel:StandaloneAck) |
| [1676029629.242402][19437:19439] CHIP:IN: (S) Sending msg 149591010 on secure session with LSID: 6132 |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Writes the limit of MinHeatSetpointLimit to UnoccupiedHeatingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "UnoccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015 |
| arguments: |
| value: 700 |
| |
| - label: |
| "Writes the limit of MinHeatSetpointLimit to UnoccupiedHeatingSetpoint |
| attribute" |
| command: "writeAttribute" |
| attribute: "UnoccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0015 |
| arguments: |
| value: MinHeatSetpointLimit |
| |
| #Using saved values when optional attributes are available |
| - label: |
| "Reads MinHeatSetpointLimit attribute from Server DUT and verifies |
| that the value is within range" |
| command: "readAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016 && TSTAT.S.A0003 |
| response: |
| constraints: |
| type: int16s |
| minValue: AbsMinHeatSetpointLimitValue |
| maxValue: MaxHeatSetpointLimit |
| |
| #Using hard coded values when optional attributes are not available |
| - label: |
| "Reads MinHeatSetpointLimit attribute from Server DUT and verifies |
| that the value is within range" |
| command: "readAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0016 && !TSTAT.S.A0003 |
| response: |
| constraints: |
| type: int16s |
| minValue: 700 |
| maxValue: 3000 |
| |
| - label: |
| "Writes a value back that is different but valid for |
| MinHeatSetpointLimit attribute" |
| command: "writeAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 |
| arguments: |
| value: 800 |
| |
| - label: |
| "Reads it back again to confirm the successful write of |
| MinHeatSetpointLimit attribute" |
| command: "readAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 |
| response: |
| value: 800 |
| |
| - label: "Writes a value back that is different but violates the deadband" |
| command: "writeAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.A0015 && TSTAT.S.F05 |
| arguments: |
| value: 2000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes MinHeatSetpointLimit to value below the |
| AbsMinHeatSetpointLimit " |
| command: "writeAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0003 |
| arguments: |
| value: 100 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| #AbsMinHeatSetpointLimit might be negative if not checked before decrement |
| - label: |
| "Writes MinHeatSetpointLimit to value below the |
| AbsMinHeatSetpointLimit " |
| PICS: |
| TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0003 && PICS_SKIP_SAMPLE_APP |
| verification: | |
| #1. Test Harness Client attempts to write MinHeatSetpointLimit below the AbsMinHeatSetpointLimit and confirms that the device does not accept the value. |
| ./chip-tool thermostat write min-heat-setpoint-limit 300 1 1 |
| On TH (chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) |
| [1676029705.839179][19450:19452] CHIP:DMG: } |
| [1676029705.839253][19450:19452] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1676029705.839287][19450:19452] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1676029705.839411][19450:19452] CHIP:EM: <<< [E:34538i M:185292291 (Ack:127655640)] (S) Msg TX to 1:0000000000000001 [E8D5] --- Type 0000:10 (SecureChannel:StandaloneAck) |
| [1676029705.839456][19450:19452] CHIP:IN: (S) Sending msg 185292291 on secure session with LSID: 61694 |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Writes MinHeatSetpointLimit to value above the |
| AbsMaxHeatSetpointLimit " |
| command: "writeAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0016 |
| arguments: |
| value: 4050 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes MinHeatSetpointLimit to value above the |
| AbsMaxHeatSetpointLimit " |
| command: "writeAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016 |
| arguments: |
| value: MaxHeatSetpointLimit + 1000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes the limit of MaxHeatSetpointLimit to MinHeatSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.F05 && !TSTAT.S.A0016 |
| arguments: |
| value: 3000 |
| |
| - label: |
| "Writes the limit of MaxHeatSetpointLimit to MinHeatSetpointimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.F05 && TSTAT.S.A0016 |
| arguments: |
| value: MaxHeatSetpointLimit |
| |
| #UpperLimit = Min(MaxHeatSetpointLimit,(MinCoolSetpointLimit - MinSetpointDeadBand)) not possible in YAML |
| - label: |
| "Writes If TSTAT.S.F05(AUTO) UpperLimit = Min(MaxHeatSetpointLimit, |
| (MinCoolSetpointLimit - MinSetpointDeadBand)) to MinHeatSetpointLimit |
| attribute when Auto is enabled" |
| PICS: |
| TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.F05 && TSTAT.S.A0005 && |
| PICS_SKIP_SAMPLE_APP |
| verification: | |
| Test Harness Client then attempts to write MinHeatSetpointLimit to both of the limits of AbsMinHeatSetpointLimit & UpperLimit and confirms that the device does accept the value. |
| below is an exaple command. |
| |
| ./chip-tool thermostat write min-heat-setpoint-limit 1200 1 1 |
| |
| On TH(chip-tool) verify that DUT sends a success response |
| |
| [1676029742.329801][19458:19460] CHIP:DMG: } |
| [1676029742.329846][19458:19460] CHIP:DMG: |
| [1676029742.329883][19458:19460] CHIP:DMG: StatusIB = |
| [1676029742.329922][19458:19460] CHIP:DMG: { |
| [1676029742.329962][19458:19460] CHIP:DMG: status = 0x00 (SUCCESS), |
| [1676029742.330001][19458:19460] CHIP:DMG: }, |
| [1676029742.330040][19458:19460] CHIP:DMG: |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Writes the limit of AbsMinHeatSetpointLimit to MinHeatSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0003 |
| arguments: |
| value: 700 |
| |
| - label: |
| "Writes the limit of AbsMinHeatSetpointLimit to MinHeatSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0003 |
| arguments: |
| value: AbsMinHeatSetpointLimitValue |
| |
| #Using saved values when optional attributes are available |
| - label: |
| "Reads MaxHeatSetpointLimit attribute from Server DUT and verifies |
| that the value is within range" |
| command: "readAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: |
| TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && TSTAT.S.A0004 && |
| TSTAT.S.A0016 |
| response: |
| constraints: |
| type: int16s |
| minValue: MinHeatSetpointLimit |
| maxValue: AbsMaxHeatSetpointLimitValue |
| |
| #Using hard coded values when optional attributes are not available |
| - label: |
| "Reads MaxHeatSetpointLimit attribute from Server DUT and verifies |
| that the value is within range" |
| command: "readAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: |
| " TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && !TSTAT.S.A0004 && |
| !TSTAT.S.A0016 " |
| response: |
| constraints: |
| type: int16s |
| minValue: 700 |
| maxValue: 3000 |
| |
| - label: |
| "Writes the limit of AbsMinHeatSetpointLimit to MinHeatSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 |
| arguments: |
| value: 700 |
| |
| - label: |
| "Writes the limit of AbsMaxHeatSetpointLimit to MinHeatSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.A0015 && TSTAT.S.F05 |
| arguments: |
| value: 3000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes a value back that is different but valid for |
| MaxHeatSetpointLimit attribute" |
| command: "writeAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 |
| arguments: |
| value: 2900 |
| |
| - label: |
| "Reads it back again to confirm the successful write of |
| MaxHeatSetpointLimit attribute" |
| command: "readAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 |
| response: |
| value: 2900 |
| |
| - label: |
| "Writes MaxHeatSetpointLimit to value below the |
| AbsMinHeatSetpointLimit " |
| command: "writeAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0015 |
| arguments: |
| value: 500 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| #MinHeatSetpointLimit might be negative if not checked before decrement |
| - label: |
| "Writes MaxHeatSetpointLimit to value below the MinHeatSetpointLimit" |
| PICS: |
| TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.A0015 && PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. |
| |
| #1. Test Harness Client attempts to write MaxHeatSetpointLimit below the MinHeatSetpointLimit and confirms that the device does not accept the value. |
| ./chip-tool thermostat write max-heat-setpoint-limit 100 1 1 |
| On TH(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) |
| [1676029976.380552][19475:19477] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1676029976.380598][19475:19477] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1676029976.380705][19475:19477] CHIP:EM: <<< [E:10254i M:97110781 (Ack:264765613)] (S) Msg TX to 1:0000000000000001 [E8D5] --- Type 0000:10 (SecureChannel:StandaloneAck) |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Writes MaxHeatSetpointLimit to value above the |
| AbsMaxHeatSetpointLimit " |
| command: "writeAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0004 |
| arguments: |
| value: 4000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes MaxHeatSetpointLimit to value above the |
| AbsMaxHeatSetpointLimit " |
| command: "writeAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.A0004 |
| arguments: |
| value: AbsMaxHeatSetpointLimitValue + 1000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes the limit of AbsMaxHeatSetpointLimit to MaxHeatSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && !TSTAT.S.A0004 |
| arguments: |
| value: 3000 |
| |
| - label: |
| "Writes the limit of AbsMaxHeatSetpointLimit to MaxHeatSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && TSTAT.S.A0004 |
| arguments: |
| value: AbsMaxHeatSetpointLimitValue |
| |
| #UpperLimit = Min(AbsMaxHeatSetpointLimit,(MaxCoolSetpointLimit - MinSetpointDeadBand)) not possible in YAML |
| - label: |
| "Writes If TSTAT.S.F05(AUTO) UpperLimit = Min(AbsMaxHeatSetpointLimit, |
| (MaxCoolSetpointLimit - MinSetpointDeadBand)) to MaxHeatSetpointLimit |
| attribute" |
| PICS: |
| TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.F05 && TSTAT.S.A0018 && |
| PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation |
| |
| Test Harness Client then attempts to write MaxHeatSetpointLimit to both of the limits of MinHeatSetpointLimit & UpperLimit and confirms that the device does accept the value. |
| |
| below is an examble command |
| |
| ./chip-tool thermostat write max-heat-setpoint-limit 2000( Consider the different value but valid4) 1 1 |
| On TH(chip-tool) verify that DUT sends a success response |
| |
| [1676030018.852009][19481:19483] CHIP:DMG: Cluster = 0x201, |
| [1676030018.852054][19481:19483] CHIP:DMG: Attribute = 0x0000_0016, |
| [1676030018.852094][19481:19483] CHIP:DMG: } |
| [1676030018.852138][19481:19483] CHIP:DMG: |
| [1676030018.852178][19481:19483] CHIP:DMG: StatusIB = |
| [1676030018.852218][19481:19483] CHIP:DMG: { |
| [1676030018.852258][19481:19483] CHIP:DMG: status = 0x00 (SUCCESS), |
| [1676030018.852297][19481:19483] CHIP:DMG: }, |
| [1676030018.852337][19481:19483] CHIP:DMG: |
| [1676030018.852370][19481:19483] CHIP:DMG: }, |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Writes the limit of MinHeatSetpointLimit to MaxHeatSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0015 |
| arguments: |
| value: 700 |
| |
| - label: |
| "Writes the limit of MinHeatSetpointLimit to MaxHeatSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.A0015 |
| arguments: |
| value: MinHeatSetpointLimit |
| |
| #Using saved values when optional attributes are available |
| - label: |
| "Reads MinCoolSetpointLimit attribute from Server DUT and verifies |
| that the value is within range" |
| command: "readAttribute" |
| attribute: "MinCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 && TSTAT.S.A0005 |
| response: |
| constraints: |
| type: int16s |
| minValue: AbsMinCoolSetpointLimit |
| maxValue: MaxCoolSetpointLimit |
| |
| #Using hard coded values when optional attributes are not available |
| - label: |
| "Reads MinCoolSetpointLimit attribute from Server DUT and verifies |
| that the value is within range" |
| command: "readAttribute" |
| attribute: "MinCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0018 && !TSTAT.S.A0005 |
| response: |
| constraints: |
| type: int16s |
| minValue: 1600 |
| maxValue: 3200 |
| |
| - label: |
| "Writes a value back that is different but valid for |
| MinCoolSetpointLimit attribute" |
| command: "writeAttribute" |
| attribute: "MinCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 |
| arguments: |
| value: 2000 |
| |
| - label: |
| "Reads it back again to confirm the successful write of |
| MinCoolSetpointLimit attribute" |
| command: "readAttribute" |
| attribute: "MinCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 |
| response: |
| value: 2000 |
| |
| - label: |
| "Writes MinCoolSetpointLimit to value below the |
| AbsMinCoolSetpointLimit " |
| command: "writeAttribute" |
| attribute: "MinCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0005 |
| arguments: |
| value: 1000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| #AbsMinCoolSetpointLimit might be negative if not checked before decrement |
| - label: |
| "Writes MinCoolSetpointLimit to value below the |
| AbsMinCoolSetpointLimit" |
| PICS: |
| TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0005 && PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. |
| |
| #1. Test Harness Client then attempts to write MinCoolSetpointLimit below the AbsMinCoolSetpointLimit and confirms that the device does not accept the value. |
| |
| ./chip-tool thermostat write min-cool-setpoint-limit 400 1 1 |
| |
| On TH(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) |
| [1676030095.274876][19495:19497] CHIP:DMG: } |
| [1676030095.274936][19495:19497] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1676030095.274965][19495:19497] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1676030095.275097][19495:19497] CHIP:EM: <<< [E:51146i M:60043723 (Ack:28649429)] (S) Msg TX to 1:0000000000000001 [E8D5] --- Type 0000:10 |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| - label: |
| "Writes MinCoolSetpointLimit to value above the MaxCoolSetpointLimit " |
| command: "writeAttribute" |
| attribute: "MinCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0018 |
| arguments: |
| value: 4000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes MinCoolSetpointLimit to value above the MaxCoolSetpointLimit " |
| command: "writeAttribute" |
| attribute: "MinCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 |
| arguments: |
| value: MaxCoolSetpointLimit + 1000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes the limit of MaxCoolSetpointLimit to MinCoolSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MinCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0018 |
| arguments: |
| value: 3200 |
| |
| - label: |
| "Writes the limit of MaxCoolSetpointLimit to MinCoolSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MinCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 |
| arguments: |
| value: MaxCoolSetpointLimit |
| |
| - label: |
| "Writes the limit of AbsMinCoolSetpointLimit to MinCoolSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MinCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0005 && !TSTAT.S.F05 |
| arguments: |
| value: 1600 |
| |
| - label: |
| "Writes the limit of AbsMinCoolSetpointLimit to MinCoolSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MinCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0005 && !TSTAT.S.F05 |
| arguments: |
| value: AbsMinCoolSetpointLimit |
| |
| #LowerLimit = Max(AbsMinCoolSetpointLimit,(MinHeatSetpointLimit + MinSetpointDeadBand)) not possible in YAML |
| - label: |
| "Writes If TSTAT.S.F05(AUTO) LowerLimit = Max(AbsMinCoolSetpointLimit, |
| (MinHeatSetpointLimit + MinSetpointDeadBand)) to MinCoolSetpointLimit |
| attribute" |
| PICS: |
| TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0015 && TSTAT.S.F05 && |
| PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. |
| |
| Test Harness Client then attempts to write MinCoolSetpointLimit to both of the limits of LowerLimit & MaxCoolSetpointLimit and confirms that the device does accept the value. |
| |
| ./chip-tool thermostat write min-cool-setpoint-limit 1600 1 1 |
| |
| On TH(chip-tool) verify that DUT sends a success response |
| |
| [1678947233.814534][773656:773658] CHIP:DMG: |
| [1678947233.814541][773656:773658] CHIP:DMG: StatusIB = |
| [1678947233.814548][773656:773658] CHIP:DMG: { |
| [1678947233.814555][773656:773658] CHIP:DMG: status = 0x00 (SUCCESS), |
| [1678947233.814562][773656:773658] CHIP:DMG: }, |
| [1678947233.814570][773656:773658] CHIP:DMG: |
| [1678947233.814576][773656:773658] CHIP:DMG: }, |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| #Using saved values when optional attributes are available |
| - label: |
| "Reads MaxCoolSetpointLimit attribute from Server DUT and verifies |
| that the value is within range" |
| command: "readAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0017 && TSTAT.S.A0006 |
| response: |
| constraints: |
| type: int16s |
| minValue: MinCoolSetpointLimit |
| maxValue: AbsMaxCoolSetpointLimit |
| |
| #Using hard coded values when optional attributes are not available |
| - label: |
| "Reads MaxCoolSetpointLimit attribute from Server DUT and verifies |
| that the value is within range" |
| command: "readAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 && !TSTAT.S.A0006 |
| response: |
| constraints: |
| type: int16s |
| minValue: 1600 |
| maxValue: 3200 |
| |
| - label: |
| "Writes a value back that is different but valid for |
| MaxCoolSetpointLimit attribute" |
| command: "writeAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.F05 |
| arguments: |
| value: 2000 |
| |
| - label: |
| "Reads it back again to confirm the successful write of |
| MaxCoolSetpointLimit attribute" |
| command: "readAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.F05 |
| response: |
| value: 2000 |
| |
| - label: |
| "Writes MaxCoolSetpointLimit to value below the |
| AbsMinCoolSetpointLimit " |
| command: "writeAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 |
| arguments: |
| value: 1000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| #AbsMinCoolSetpointLimit might be negative if not checked before decrement |
| - label: |
| "Writes MaxCoolSetpointLimit to value below the |
| AbsMinCoolSetpointLimit" |
| PICS: |
| TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0017 && PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. |
| |
| #1. Test Harness Client attempts to write MaxCoolSetpointLimit below the MinCoolSetpointLimit and confirms that the device does not accept the value. |
| |
| ./chip-tool thermostat write max-cool-setpoint-limit 100 1 1 |
| |
| On TH(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) |
| [1676030395.441963][19525:19527] CHIP:DMG: } |
| [1676030395.442028][19525:19527] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1676030395.442059][19525:19527] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1676030395.442147][19525:19527] CHIP:EM: <<< [E:35527i M:176995637 (Ack:93643096)] (S) Msg TX to 1:0000000000000001 [E8D5] --- Type 0000:10 (SecureChannel:StandaloneAck) |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Writes MaxCoolSetpointLimit to value above the MaxCoolSetpointLimit " |
| command: "writeAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0006 |
| arguments: |
| value: 4000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes MaxCoolSetpointLimit to value above the MaxCoolSetpointLimit " |
| command: "writeAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0006 |
| arguments: |
| value: AbsMaxCoolSetpointLimit + 1000 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes the limit of AbsMaxCoolSetpointLimit to MaxCoolSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0006 |
| arguments: |
| value: 3200 |
| |
| - label: |
| "Writes the limit of AbsMaxCoolSetpointLimit to MaxCoolSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0006 |
| arguments: |
| value: AbsMaxCoolSetpointLimit |
| |
| - label: |
| "Writes the limit of MinCoolSetpointLimit to MaxCoolSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 && !TSTAT.S.F05 |
| arguments: |
| value: 1600 |
| |
| - label: |
| "Writes the limit of MinCoolSetpointLimit to MaxCoolSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 && TSTAT.S.F05 |
| arguments: |
| value: 1600 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: |
| "Writes the limit of MinCoolSetpointLimit to MaxCoolSetpointLimit |
| attribute" |
| command: "writeAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0017 && !TSTAT.S.F05 |
| arguments: |
| value: MinCoolSetpointLimit |
| |
| #LowerLimit = Max(MinCoolSetpointLimit,(MaxHeatSetpointLimit + MinSetpointDeadBand)) not possible in YAML |
| - label: |
| "Writes If TSTAT.S.F05(AUTO) LowerLimit = Max(MinCoolSetpointLimit, |
| (MaxHeatSetpointLimit + MinSetpointDeadBand)) to MaxCoolSetpointLimit |
| attribute" |
| PICS: |
| TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0016 && TSTAT.S.F05 && |
| PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. |
| |
| Test Harness Client then attempts to write MaxCoolSetpointLimit to both of the limits of LowerLimit & AbsMaxCoolSetpointLimit and confirms that the device does accept the value. |
| below is an example command |
| |
| ./chip-tool thermostat write max-cool-setpoint-limit 2000 1 1 |
| |
| On TH verify that DUT sends a success response |
| |
| [1678947558.840324][773890:773892] CHIP:DMG: |
| [1678947558.840331][773890:773892] CHIP:DMG: StatusIB = |
| [1678947558.840339][773890:773892] CHIP:DMG: { |
| [1678947558.840347][773890:773892] CHIP:DMG: status = 0x00 (SUCCESS), |
| [1678947558.840354][773890:773892] CHIP:DMG: }, |
| [1678947558.840362][773890:773892] CHIP:DMG: |
| [1678947558.840369][773890:773892] CHIP:DMG: }, |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: "Writes (sets back) default value of MinHeatSetpointLimit" |
| command: "writeAttribute" |
| attribute: "MinHeatSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0015 |
| arguments: |
| value: 700 |
| |
| - label: "Writes (sets back)default value of MaxHeatSetpointLimit" |
| command: "writeAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0016 && !TSTAT.S.F05 |
| arguments: |
| value: 3000 |
| |
| - label: "Writes MaxHeatSetpointLimit That meets the deadband of 2.5C" |
| command: "writeAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0016 && !TSTAT.S.F05 |
| arguments: |
| value: 2950 |
| |
| - label: "Writes (sets back) default value of MinCoolSetpointLimit" |
| command: "writeAttribute" |
| attribute: "MinCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0017 |
| arguments: |
| value: 1600 |
| |
| - label: "Writes (sets back) default value of MaxCoolSetpointLimit" |
| command: "writeAttribute" |
| attribute: "MaxCoolSetpointLimit" |
| PICS: TSTAT.S.F01 && TSTAT.S.A0018 |
| arguments: |
| value: 3200 |
| |
| - label: |
| "Reads MinSetpointDeadBand attribute from Server DUT and verifies that |
| the value is within range" |
| command: "readAttribute" |
| attribute: "MinSetpointDeadBand" |
| PICS: TSTAT.S.F05 |
| response: |
| constraints: |
| type: int8s |
| minValue: 0 |
| maxValue: 25 |
| |
| - label: |
| "Writes a value back that is different but valid for |
| MinSetpointDeadBand attribute" |
| command: "writeAttribute" |
| attribute: "MinSetpointDeadBand" |
| PICS: TSTAT.S.F05 && TSTAT.S.M.MinSetpointDeadBandWritable |
| arguments: |
| value: 5 |
| |
| - label: |
| "Reads it back again to confirm the successful write of |
| MinSetpointDeadBand attribute" |
| command: "readAttribute" |
| attribute: "MinSetpointDeadBand" |
| PICS: TSTAT.S.F05 && TSTAT.S.M.MinSetpointDeadBandWritable |
| response: |
| value: 5 |
| |
| - label: "Writes the value below MinSetpointDeadBand" |
| command: "writeAttribute" |
| attribute: "MinSetpointDeadBand" |
| PICS: TSTAT.S.F05 && TSTAT.S.M.MinSetpointDeadBandWritable |
| arguments: |
| value: -1 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: "Writes the value above MinSetpointDeadBand " |
| command: "writeAttribute" |
| attribute: "MinSetpointDeadBand" |
| PICS: TSTAT.S.F05 && TSTAT.S.M.MinSetpointDeadBandWritable |
| arguments: |
| value: 30 |
| response: |
| error: CONSTRAINT_ERROR |
| |
| - label: "Writes the min limit of MinSetpointDeadBand" |
| command: "writeAttribute" |
| attribute: "MinSetpointDeadBand" |
| PICS: TSTAT.S.F05 && TSTAT.S.M.MinSetpointDeadBandWritable |
| arguments: |
| value: 0 |
| |
| - label: "Writes the max limit of MinSetpointDeadBand" |
| command: "writeAttribute" |
| attribute: "MinSetpointDeadBand" |
| PICS: TSTAT.S.F05 && TSTAT.S.M.MinSetpointDeadBandWritable |
| arguments: |
| value: 25 |
| |
| - label: |
| "Reads ControlSequenceOfOperation from Server DUT and verifies that |
| the value is valid" |
| command: "readAttribute" |
| attribute: "ControlSequenceOfOperation" |
| PICS: TSTAT.S.F00 || TSTAT.S.F01 |
| response: |
| value: 4 |
| constraints: |
| type: enum8 |
| minValue: 0 |
| maxValue: 5 |
| |
| - label: |
| "Write Attribute command for ControlSequenceOfOperation with a new |
| valid value" |
| command: "writeAttribute" |
| attribute: "ControlSequenceOfOperation" |
| PICS: TSTAT.S.F00 || TSTAT.S.F01 |
| arguments: |
| value: 2 |
| |
| - label: "Read it back again to confirm the successful write" |
| command: "readAttribute" |
| attribute: "ControlSequenceOfOperation" |
| PICS: TSTAT.S.F00 || TSTAT.S.F01 |
| response: |
| value: 2 |
| |
| - label: |
| "Writes MaxHeatSetpointLimit attribute to default value of 2950 to |
| meet deadband constraint" |
| command: "writeAttribute" |
| attribute: "MaxHeatSetpointLimit" |
| PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.F05 |
| arguments: |
| value: 2950 |
| |
| - label: "Sets OccupiedCoolingSetpoint to default value" |
| command: "writeAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 |
| arguments: |
| value: 2600 |
| |
| - label: "Sets OccupiedHeatingSetpoint to default value" |
| command: "writeAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 |
| arguments: |
| value: 2000 |
| |
| - label: "Sends SetpointRaise Command Heat Only" |
| PICS: TSTAT.S.F00 |
| command: "SetpointRaiseLower" |
| arguments: |
| values: |
| - name: "Mode" |
| value: 0 |
| - name: "Amount" |
| value: -30 |
| |
| - label: |
| "Reads back OccupiedHeatingSetpoint to confirm the success of the |
| write" |
| command: "readAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 |
| response: |
| value: 1700 |
| |
| - label: "Sets OccupiedHeatingSetpoint to default value" |
| command: "writeAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 |
| arguments: |
| value: 2000 |
| |
| - label: "Sends SetpointRaise Command Heat Only" |
| PICS: TSTAT.S.F00 |
| command: "SetpointRaiseLower" |
| arguments: |
| values: |
| - name: "Mode" |
| value: 0 |
| - name: "Amount" |
| value: 30 |
| |
| - label: |
| "Reads back OccupiedHeatingSetpoint to confirm the success of the |
| write" |
| command: "readAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 |
| response: |
| value: 2300 |
| |
| - label: "Sends SetpointRaise Command Cool Only" |
| PICS: TSTAT.S.F01 |
| command: "SetpointRaiseLower" |
| arguments: |
| values: |
| - name: "Mode" |
| value: 1 |
| - name: "Amount" |
| value: -30 |
| |
| - label: |
| "Reads back OccupiedCoolingSetpoint to confirm the success of the |
| write" |
| command: "readAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 |
| response: |
| value: 2300 |
| |
| - label: "Sets OccupiedCoolingSetpoint to default value" |
| command: "writeAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 |
| arguments: |
| value: 2600 |
| |
| - label: "Sends SetpointRaise Command Cool Only" |
| PICS: TSTAT.S.F01 |
| command: "SetpointRaiseLower" |
| arguments: |
| values: |
| - name: "Mode" |
| value: 1 |
| - name: "Amount" |
| value: 30 |
| |
| - label: |
| "Reads back OccupiedCoolingSetpoint to confirm the success of the |
| write" |
| command: "readAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 |
| response: |
| value: 2900 |
| |
| - label: "Sets OccupiedCoolingSetpoint to default value" |
| command: "writeAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 |
| arguments: |
| value: 2600 |
| |
| - label: "Sets OccupiedHeatingSetpoint to default value" |
| command: "writeAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 |
| arguments: |
| value: 2000 |
| |
| - label: "Sends SetpointRaise Command Heat & Cool" |
| PICS: TSTAT.S.F00 || TSTAT.S.F01 |
| command: "SetpointRaiseLower" |
| arguments: |
| values: |
| - name: "Mode" |
| value: 2 |
| - name: "Amount" |
| value: -30 |
| |
| - label: |
| "Reads back OccupiedCoolingSetpoint to confirm the success of the |
| write" |
| command: "readAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 |
| response: |
| value: 2300 |
| |
| - label: |
| "Reads back OccupiedHeatingSetpoint to confirm the success of the |
| write" |
| command: "readAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 |
| response: |
| value: 1700 |
| |
| - label: "Sets OccupiedCoolingSetpoint to default value" |
| command: "writeAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 |
| arguments: |
| value: 2600 |
| |
| - label: "Sets OccupiedHeatingSetpoint to default value" |
| command: "writeAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 |
| arguments: |
| value: 2000 |
| |
| - label: "Sends SetpointRaise Command Heat & Cool" |
| PICS: TSTAT.S.F00 || TSTAT.S.F01 |
| command: "SetpointRaiseLower" |
| arguments: |
| values: |
| - name: "Mode" |
| value: 2 |
| - name: "Amount" |
| value: 30 |
| |
| - label: |
| "Reads back OccupiedCoolingSetpoint to confirm the success of the |
| write" |
| command: "readAttribute" |
| attribute: "OccupiedCoolingSetpoint" |
| PICS: TSTAT.S.F01 |
| response: |
| value: 2900 |
| |
| - label: |
| "Reads back OccupiedHeatingSetpoint to confirm the success of the |
| write" |
| command: "readAttribute" |
| attribute: "OccupiedHeatingSetpoint" |
| PICS: TSTAT.S.F00 |
| response: |
| value: 2300 |