Feature/matter remove cluster element list usage
This is needed since the next library release (0.46.x) will completely deprecate and remove some of the opts functionality of the MatterDevice:get_endpoints(cluster_id, opts).
These changes also discovered a unit test bug that will be fixed in 0.46.x where require "version" would fail when run with the unit test framework.
These changes also discovered a bug to be fixed in 0.46.x where InteractionRequest:pretty_print generates a nil index error when used with a manufacturer extended cluster element that has been added to an existing cluster library cluster object via Attribute:set_parent_cluster()
Unit Test Results
1 files 305 suites 0s :stopwatch: 1 327 tests 1 324 :heavy_check_mark: 0 :zzz: 0 :x: 3 :fire: 2 383 runs 2 380 :heavy_check_mark: 0 :zzz: 0 :x: 3 :fire:
For more details on these errors, see this check.
Results for commit 3a046367.
Invitation URL: https://bestow-regional.api.smartthings.com/invite/o3jVvo9aWqjV
I added the do not merge label since this will break unit tests (due to the second bug mentioned) until 0.46.x release occurs. There is not an easy hack around that bug in the unit test framework, also waiting will allow the removal of the other unit test framework hack required to make the matter-thermostat tests pass.
I would push to switch over to using the latest dev artifact, but I worry that would lead to us accidentally pushing changes to prod that will break on production hubs.
I would worry this too, and think that we cannot do this. We could do a beta artifact release that comes before users actually have the artifact on their hubs, and we could run tests against the beta artifact and the most recent production release. We could even do it without doing any extra release of artifacts, but would need to clearly define what test failures are a blocker for release.
Test Results
54 files 345 suites 0s :stopwatch: 1 625 tests 1 625 :heavy_check_mark: 0 :zzz: 0 :x: 2 843 runs 2 843 :heavy_check_mark: 0 :zzz: 0 :x:
Results for commit 8180329e.
:recycle: This comment has been updated with latest results.
| File | Coverage | |
|---|---|---|
| All files | 93% |
:white_check_mark: |
| /home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/matter-thermostat/src/init.lua | 93% |
:white_check_mark: |
Minimum allowed coverage is 90%
Generated by :monkey: cobertura-action against 8180329e43eca43edda0bad7c0a8d6cdd1182fcd
@tpmanley @greens @ctowns This is ready for a review. It is essentially adding the support for thermostats that have ThermostatOperatingState capability, which is based off the optional attribute ThermostatRunningState. I believe all hubs have FW 0.46 or greater, so various workarounds have been removed and it seems to work with the more recent profile changes for nobattery.