project-chip / project-chip/matter-test-scripts
[TC-FAN] Clarify FanControl and OnOff cluster integration behavior
@jtrejoespinoza-grid is already working on this.
Since May 6, 2026.
- Dominant language
- Python
- Stars
- 19
- Forks
- 7
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 3
Description
Summary Title:
[TC-FAN] Clarify FanControl and OnOff cluster integration behavior (Contradiction between TC-FAN-4.1 and TC-FAN-3.5)
Description:
There is a contradiction in the test plan regarding how the FanControl cluster is expected to interact with the OnOff cluster. The spec states that a product may use the On/Off cluster as a "Master" switch, but it does not mandate this behavior. Currently, our test scripts have conflicting expectations:
- TC-FAN-4.1 assumes the OnOff cluster acts as a strict master switch. In step 11, it sends an
Offcommand to the On/Off cluster. In step 16, it writesPercentSettingto1and verifies thatPercentCurrentremains0(meaning the fan does not spin because the master switch was turned off). - TC-FAN-3.5 assumes the opposite default behavior. It immediately writes a value to
PercentSettingand expectsPercentCurrentto change, even though the device's OnOff cluster should technically beOffby default upon initialization.
Current Workaround:
To allow both tests to pass in our implementation, we had to introduce a conditional workaround: If the device is in its initial default Off state, writing to the fan settings will successfully turn the fan on (satisfying TC-FAN-3.5). However, if an explicit Off command was sent by the user/test (as in TC-FAN-4.1), writing to the fan settings will not turn it on.
This is a hack to bypass the conflicting test requirements. We are opening this issue to get clarification on the intended spec behavior so we can standardise the implementation and remove this workaround.
Steps to reproduce:
- Run
TC-FAN-4.1and observe that an explicitOffcommand prevents aPercentSettingupdate from changingPercentCurrent. - Run
TC-FAN-3.5and observe that writing toPercentSettingdirectly after initialization (where the default state is implicitlyOff) successfully changesPercentCurrent. - Note the conflicting assumptions about the OnOff cluster's "master switch" status between the two tests.
Logs:
N/A - This issue is a request for clarification on spec behavior and conflicting test plan requirements.
Additional Info:
- Sergio's PR Note: "The test plan assumes if the on/off cluster integration exists, the behavior is to obey on/off as the 'Master' switch to spin the fan. I think the spec says the product 'May' use the on/off in this way but doesn't mandate... let's follow whatever the test plan verifies for now and open an issue to clarify this behavior."
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.