SmartThingsCommunity / SmartThingsEdgeDrivers

Apache License 2.0
269 stars 462 forks source link

IOTE-4566 Limit temperature setpoint ranges #1678

Closed nickolas-deboom closed 1 month ago

nickolas-deboom commented 1 month ago

Type of Change

Checklist

Description of Change

IOTE-4566

Clamp the min and max values of temperature setpoint capabilities so that the ranges of deg C and deg F don't overlap. This is currently being done for the oven device type and now should be extended to other devices types using the temperatureSetpoint, thermostatHeatingSetpoint, or thermostatCoolingSetpoint capabilities (or the associated Setpoint Range capabilities). These changes are necessary because the driver is not aware of the temperature unit when a setpoint value is updated via a capability command. Threshold values were chosen depending on the device type as follows:

Dishwasher:

Laundry Dryer:

Laundry Washer:

Refrigerator:

Thermostat / Room AC:

Please let me know if you have any opinions on better values to use.

Summary of Completed Tests

See new unit tests.

Testing with VDA:

* For these device types, the plugin is not correctly limiting the setpoint sliders from exceeding the allotted range. The minimum and maximum allowed values appear as expected, but the user is able to go beyond the range using the '-' and '+' buttons, which are not grayed out when the slider is at the min or max as they should be. Also, the slider can sometimes be moved beyond the range with sliding as well. The thermostat device type does not have this issue. This issue is tracked by MTR-841.

github-actions[bot] commented 1 month ago

Channel deleted.

github-actions[bot] commented 1 month ago

Test Results

   64 files    399 suites   0s :stopwatch: 1 986 tests 1 986 :white_check_mark: 0 :zzz: 0 :x: 3 427 runs  3 427 :white_check_mark: 0 :zzz: 0 :x:

Results for commit ebbdbb7e.

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 1 month ago

matter-appliance_coverage.xml

File Coverage
All files 72% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-dishwasher/init.lua 68% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-microwave-oven/init.lua 82% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-extractor-hood/init.lua 98% :white_check_mark:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-oven/init.lua 85% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/embedded-cluster-utils.lua 45% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/init.lua 56% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-cook-top/init.lua 85% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-refrigerator/init.lua 65% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-laundry/init.lua 69% :x:

matter-thermostat_coverage.xml

File Coverage
All files 83% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-dishwasher/init.lua 68% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-microwave-oven/init.lua 82% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-extractor-hood/init.lua 98% :white_check_mark:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-oven/init.lua 85% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/embedded-cluster-utils.lua 45% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/init.lua 56% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-cook-top/init.lua 85% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-refrigerator/init.lua 65% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-appliance/src/matter-laundry/init.lua 69% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-thermostat/src/init.lua 85% :x:
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-thermostat/src/embedded-cluster-utils.lua 42% :x:

Minimum allowed coverage is 90%

Generated by :monkey: cobertura-action against ebbdbb7e8d2455240b780a7a906fdc446484a67d

LEE-HYOJUNG27 commented 1 month ago

I think you need to modify the temperature range for each device types. Because Celsius and Fahrenheit written in the description do not actually match and can cause conflict.

[Example of conflict]

Laundry Dryer: Threshold: 80 degrees Range: 26C - 80C / 81F - 178F

-> Range: 26C - 80C / 78.8F - 176F -> Conflict range : 78.8F - 80F

[Recalculated range]

Dishwasher: Threshold: 90 degrees Range: 33C - 90C / 91.4F - 194F

Laundry Dryer: Threshold: 80 degrees Range: 27C - 80C / 80.6F - 176F

Laundry Washer: Threshold: 55 degrees Range: 13C - 55C / 55.4F - 131F

Refrigerator: Threshold: 20 degrees Range: -6C - 20C / 21.2F - 68F

Thermostat / Room AC: Threshold: 39 degrees Range: 5C - 39C / 41F - 102.2F

cc: @HunsupJung

nickolas-deboom commented 1 month ago

I think you need to modify the temperature range for each device types. Because Celsius and Fahrenheit written in the description do not actually match and can cause conflict.

[Example of conflict]

Laundry Dryer: Threshold: 80 degrees Range: 26C - 80C / 81F - 178F

-> Range: 26C - 80C / 78.8F - 176F -> Conflict range : 78.8F - 80F

[Recalculated range]

Dishwasher: Threshold: 90 degrees Range: 33C - 90C / 91.4F - 194F

Laundry Dryer: Threshold: 80 degrees Range: 27C - 80C / 80.6F - 176F

Laundry Washer: Threshold: 55 degrees Range: 13C - 55C / 55.4F - 131F

Refrigerator: Threshold: 20 degrees Range: -6C - 20C / 21.2F - 68F

Thermostat / Room AC: Threshold: 39 degrees Range: 5C - 39C / 41F - 102.2F

cc: @HunsupJung

I applied these new ranges in b6c2b0853c580cc6ae4bedde861a8b78d7b8e274!