Thank you for such a quick response!
If I understand correctly, the SPD bit is responsible specifically for discrete speed levels, which can range from 0 to 100 — meaning there can be, for example, 10, 25, or even 100 discrete speeds.
These are defined by the following attribute IDs:
• 0x0004 – SpeedMax
• 0x0005 – SpeedSetting
• 0x0006 – SpeedCurrent
If you look at the official Matter specification (CSA Matter 1.4 Application Cluster Specification, section 4.4. https://csa-iot.org/wp-content/uploads/2024/11/24-27350-005_Matter-1.4-Application-Cluster-Specification.pdf), I couldn’t find any indication that the SPD bit enables percentage-based control — only that it enables support for multiple discrete speeds.
Also, in section 4.4.6 (Attributes), the attributes 0x0002 – PercentSetting and 0x0003 – PercentCurrent are marked as Mandatory, meaning they must be present in all cases (please correct me if I’m mistaken).
Finally, if we look at the behavior descriptions for commands such as Off (4.4.6.1.1) and Auto (4.4.6.1.2), the specification explicitly states that we must write 0 and null respectively to PercentSetting and PercentCurrent in the first case, and only PercentSetting in the second case.
Meanwhile, SpeedSetting is described as optional — it is used only if the SPD bit is present — but PercentSetting and PercentCurrent must always be included.