| # 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 so its not compulsory to get the expected outcome |
| |
| ./chip-tool thermostat write occupied-cooling-setpoint 3600 1 1 |
| On TH(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) |
| [1658386056.238286][2906:2911] CHIP:DMG: } |
| [1658386056.238356][2906:2911] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1658386056.238389][2906:2911] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1658386056.238449][2906:2911] CHIP:EM: Sending Standalone Ack for MessageCounter:41416222 on exchange 5788i |
| [1658386056.238525][2906:2911] CHIP:IN: Prepared secure message 0xffffa77ed9e8 to 0x0000000000000001 (1) of type 0x10 and protocolId (0, 0) on exchange 5788i with MessageCounter:113884573 |
| 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 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.A0012 && PICS_SKIP_SAMPLE_APP |
| verification: | |
| Optional attribute so its not compulsory to get the expected outcome |
| |
| ./chip-tool thermostat write occupied-cooling-setpoint 1600 1 1 |
| On TH(chip-tool) verify that DUT sends a success response |
| |
| [1658386056.238356][2906:2911] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1658386056.238389][2906:2911] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1658386056.238449][2906:2911] CHIP:EM: Sending Standalone Ack for MessageCounter:41416222 on exchange 5788i |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - 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 |
| |
| #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 - |
| |
| ./chip-tool thermostat write occupied-heating-setpoint 5000 1 1 |
| |
| On TH(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) |
| [1658388388.725344][3134:3139] CHIP:DMG: InteractionModelRevision = 1 |
| [1658388388.725388][3134:3139] CHIP:DMG: } |
| [1658388388.725505][3134:3139] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1658388388.725558][3134:3139] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1658388388.725618][3134:3139] CHIP:EM: Sending Standalone Ack for MessageCounter:199663269 on exchange 29439i |
| 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 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: |
| "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: | |
| ./chip-tool thermostat write occupied-heating-setpoint 2200 1 1 |
| On TH(chip-tool) verify that DUT sends a success response |
| [1661755950.285710][3540:3545] CHIP:DMG: StatusIB = |
| [1661755950.285739][3540:3545] CHIP:DMG: { |
| [1661755950.285769][3540:3545] CHIP:DMG: status = 0x87 (CONSTRAINT_ERROR), |
| [1661755950.285799][3540:3545] CHIP:DMG: }, |
| [1661755950.285831][3540:3545] CHIP:DMG: |
| [1661755950.285855][3540:3545] CHIP:DMG: }, |
| |
| ./chip-tool thermostat read occupied-heating-setpoint 1 1 |
| |
| On TH(chip-tool) verify that the occupied heating setpoint attribute value which is provided in previous step |
| [1661756337.957444][3574:3579] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0201 Attribute 0x0000_0012 DataVersion: 1052267276 |
| [1661756337.957573][3574:3579] CHIP:TOO: OccupiedHeatingSetpoint: 2000 |
| [1661756337.957876][3574:3579] CHIP:EM: Sending Standalone Ack for MessageCounter:176529588 on exchange 9927i |
| [1661756337.958020][3574:3579] CHIP:IN: Prepared secure message 0xffff867cd978 to 0x0000000000000001 (1) of type 0x10 and p |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - 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(chip-tool) log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE |
| |
| ./chip-tool thermostat write unoccupied-cooling-setpoint 2200 1 1 |
| |
| https://github.com/project-chip/connectedhomeip/issues/15627 |
| 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 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 |
| |
| #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(chip-tool) log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE |
| |
| ./chip-tool thermostat read unoccupied-cooling-setpoint 1 1 |
| |
| Verify in TH(chip-tool) Log: |
| |
| [1650451290.847810][5403:5408] CHIP:TOO: Response Failure: IM Error 0x00000586: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) |
| [1650451290.847903][5403:5408] CHIP:EM: Sending Standalone Ack for MessageCounter:5212350 on exchange 30170i |
| https://github.com/project-chip/connectedhomeip/issues/15627 |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' after success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - 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 |
| |
| #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(chip-tool) log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE |
| |
| ./chip-tool thermostat read unoccupied-heating-setpoint 1 1 |
| As its an optional attribute, we are not getting expected result |
| [1658389018.789254][3201:3206] CHIP:DMG: SuppressResponse = true, |
| [1658389018.789288][3201:3206] CHIP:DMG: InteractionModelRevision = 1 |
| [1658389018.789312][3201:3206] CHIP:DMG: } |
| [1658389018.789426][3201:3206] CHIP:TOO: Response Failure: IM Error 0x00000586: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) |
| [1658389018.789511][3201:3206] CHIP:EM: Sending Standalone Ack for MessageCounter:175660806 on exchange 16788i |
| 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 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 |
| |
| - 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 (chip-tool) log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE |
| |
| ./chip-tool thermostat read unoccupied-heating-setpoint 1 1 |
| As its an optional attribute, we are not getting expected result |
| [1658389070.439643][3209:3214] CHIP:DMG: |
| [1658389070.439678][3209:3214] CHIP:DMG: SuppressResponse = true, |
| [1658389070.439715][3209:3214] CHIP:DMG: InteractionModelRevision = 1 |
| [1658389070.439750][3209:3214] CHIP:DMG: } |
| [1658389070.439896][3209:3214] CHIP:TOO: Response Failure: IM Error 0x00000586: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) |
| [1658389070.439997][3209:3214] CHIP:EM: Sending Standalone Ack for MessageCounter:26480890 on exchange 13280i |
| 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 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: | |
| ./chip-tool thermostat write min-heat-setpoint-limit 300 1 1 |
| On TH (chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) |
| [1658389492.560607][3266:3272] CHIP:DMG: InteractionModelRevision = 1 |
| [1658389492.560644][3266:3272] CHIP:DMG: } |
| [1658389492.560749][3266:3272] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1658389492.560915][3266:3272] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1658389492.561002][3266:3272] CHIP:EM: Sending Standalone Ack for MessageCounter:252582472 on exchange 3434i |
| 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 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 |
| |
| - 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: | |
| ./chip-tool thermostat write min-heat-setpoint-limit 1000 1 1 |
| |
| On TH(chip-tool) verify that DUT sends a success response |
| [1658389641.734245][3279:3284] CHIP:DMG: Endpoint = 0x1, |
| [1658389641.734285][3279:3284] CHIP:DMG: Cluster = 0x201, |
| [1658389641.734326][3279:3284] CHIP:DMG: Attribute = 0x0000_0015, |
| [1658389641.734360][3279:3284] CHIP:DMG: } |
| [1658389641.734402][3279:3284] CHIP:DMG: |
| [1658389641.734438][3279:3284] CHIP:DMG: StatusIB = |
| [1658389641.734475][3279:3284] CHIP:DMG: { |
| [1658389641.734512][3279:3284] CHIP:DMG: status = 0x00 (SUCCESS), |
| [1658389641.734549][3279:3284] CHIP:DMG: }, |
| [1658389641.734586][3279:3284] CHIP:DMG: |
| [1658389641.734617][3279:3284] 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 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 - |
| |
| ./chip-tool thermostat write max-heat-setpoint-limit 7000 1 1 |
| |
| On TH(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) |
| |
| [1658389771.305508][3310:3315] CHIP:DMG: ], |
| [1658389771.305555][3310:3315] CHIP:DMG: |
| [1658389771.305594][3310:3315] CHIP:DMG: InteractionModelRevision = 1 |
| [1658389771.305632][3310:3315] CHIP:DMG: } |
| [1658389771.305737][3310:3315] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1658389771.305785][3310:3315] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1658389771.305867][3310:3315] CHIP:EM: Sending Standalone Ack for MessageCounter:187660216 on exchange 59285i |
| |
| ./chip-tool thermostat write max-heat-setpoint-limit 100 1 1 |
| On TH(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) |
| [1658389806.716013][3316:3321] CHIP:DMG: |
| [1658389806.716046][3316:3321] CHIP:DMG: StatusIB = |
| [1658389806.716084][3316:3321] CHIP:DMG: { |
| [1658389806.716121][3316:3321] CHIP:DMG: status = 0x87 (CONSTRAINT_ERROR), |
| [1658389806.716158][3316:3321] CHIP:DMG: }, |
| 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 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 |
| |
| - 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: | |
| ./chip-tool thermostat write max-heat-setpoint-limit 2000 1 1 |
| On TH(chip-tool) verify that DUT sends a success response |
| [1658389911.809423][3333:3338] CHIP:DMG: Endpoint = 0x1, |
| [1658389911.809492][3333:3338] CHIP:DMG: Cluster = 0x201, |
| [1658389911.809562][3333:3338] CHIP:DMG: Attribute = 0x0000_0016, |
| [1658389911.809627][3333:3338] CHIP:DMG: } |
| [1658389911.809698][3333:3338] CHIP:DMG: |
| [1658389911.809761][3333:3338] CHIP:DMG: StatusIB = |
| [1658389911.809827][3333:3338] CHIP:DMG: { |
| [1658389911.809892][3333:3338] CHIP:DMG: status = 0x00 (SUCCESS), |
| [1658389911.809957][3333:3338] CHIP:DMG: }, |
| [1658389911.809994][3333:3338] CHIP:DMG: |
| [1658389911.810021][3333:3338] CHIP:DMG: }, |
| [1658389911.810051][3333:3338] CHIP:DMG: |
| [1658389911.810076][3333:3338] 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 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 - |
| |
| |
| ./chip-tool thermostat write max-heat-setpoint-limit 9000 1 1 |
| On TH(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) |
| [1658390040.444407][3343:3348] CHIP:DMG: |
| [1658390040.444443][3343:3348] CHIP:DMG: }, |
| [1658390040.444483][3343:3348] CHIP:DMG: |
| [1658390040.444515][3343:3348] CHIP:DMG: ], |
| [1658390040.444553][3343:3348] CHIP:DMG: |
| [1658390040.444585][3343:3348] CHIP:DMG: InteractionModelRevision = 1 |
| [1658390040.444616][3343:3348] CHIP:DMG: } |
| [1658390040.444703][3343:3348] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1658390040.444744][3343:3348] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1658390040.444843][3343:3348] CHIP:EM: Sending Standalone Ack for MessageCounter:137523063 on exchange 39419i |
| 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 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: | |
| ./chip-tool thermostat write max-heat-setpoint-limit 2000 1 1 |
| |
| Verify in TH(chip-tool) Log: |
| [1658390406.512865][3384:3389] CHIP:DMG: |
| [1658390406.512895][3384:3389] CHIP:DMG: StatusIB = |
| [1658390406.512927][3384:3389] CHIP:DMG: { |
| [1658390406.512958][3384:3389] CHIP:DMG: status = 0x00 (SUCCESS), |
| [1658390406.512992][3384:3389] CHIP:DMG: }, |
| [1658390406.513023][3384:3389] 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 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 |
| |
| #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 so its not compulsory to get the expected outcome |
| |
| ./chip-tool thermostat write max-cool-setpoint-limit 9100 1 1 |
| On TH(chip-tool)(chip-tool) verify that DUT sends a CONSTRAINT_ERROR (0x87) |
| [1658396137.669807][3677:3682] CHIP:DMG: |
| [1658396137.669832][3677:3682] CHIP:DMG: InteractionModelRevision = 1 |
| [1658396137.669857][3677:3682] CHIP:DMG: } |
| [1658396137.669929][3677:3682] CHIP:DMG: WriteClient moving to [AwaitingDe] |
| [1658396137.669964][3677:3682] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) |
| [1658396137.670019][3677:3682] CHIP:EM: Sending Standalone Ack for MessageCounter:77698449 on exchange 47844i |
| 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 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 so its not compulsory to get the expected outcome |
| |
| ./chip-tool thermostat write max-cool-setpoint-limit 1600 1 1 |
| On TH verify that DUT sends a success response |
| [1661766260.648041][10448:10453] CHIP:DMG: StatusIB = |
| [1661766260.648070][10448:10453] CHIP:DMG: { |
| [1661766260.648100][10448:10453] CHIP:DMG: status = 0x87 (CONSTRAINT_ERROR), |
| [1661766260.648127][10448:10453] 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 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 (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 |