Fix command responses in the scenes cluster #1241
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
View scene command
The
viewRsp
command for thegenScenes
cluster contains 6 properties. These match the ZCL specified fields, but error responses will only containstatus
,groupid
, andsceneid
. From the ZCL spec (rev.8):This results in a buffer overrun in the
parsePayloadCluster
function of theZclFrame
during parsing of the incoming response command when not all fields are present.I am not overly familiar with the library, but looking at other clusters, it appears that the right solution is use of the
conditions
property of theParameterDefinition
:Devices not supporting scene names are required to return the null string so this doesn't need to be accounted for.
Get scene membership
As with the prior command, the ZCL (rev.8) states:
Adding parameter conditions to these fields:
Enhanced Add Scene command
The current implementation has no parameters. Copying from add add scene response:
Enhanced View Scene command
The same parameter conditions as for the View Scene command above are required.