Skip to content

Commit

Permalink
fix: Fix command responses in the scenes cluster (#1241)
Browse files Browse the repository at this point in the history
* Add missing parameter conditions to conditional response fields

* Add missing parameters to enhancedAddRsp

* Update tests for conditional and new parameters

* Fix formatting issue
  • Loading branch information
canardos authored Nov 18, 2024
1 parent b54d1e8 commit 1d54cba
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 18 deletions.
34 changes: 25 additions & 9 deletions src/zspec/zcl/definition/cluster.ts
Original file line number Diff line number Diff line change
Expand Up @@ -331,9 +331,13 @@ export const Clusters: Readonly<Record<ClusterName, Readonly<ClusterDefinition>>
{name: 'status', type: DataType.UINT8},
{name: 'groupid', type: DataType.UINT16},
{name: 'sceneid', type: DataType.UINT8},
{name: 'transtime', type: DataType.UINT16},
{name: 'scenename', type: DataType.CHAR_STR},
{name: 'extensionfieldsets', type: BuffaloZclDataType.EXTENSION_FIELD_SETS},
{name: 'transtime', type: DataType.UINT16, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]},
{name: 'scenename', type: DataType.CHAR_STR, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]},
{
name: 'extensionfieldsets',
type: BuffaloZclDataType.EXTENSION_FIELD_SETS,
conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}],
},
],
},
removeRsp: {
Expand Down Expand Up @@ -365,23 +369,35 @@ export const Clusters: Readonly<Record<ClusterName, Readonly<ClusterDefinition>>
{name: 'status', type: DataType.UINT8},
{name: 'capacity', type: DataType.UINT8},
{name: 'groupid', type: DataType.UINT16},
{name: 'scenecount', type: DataType.UINT8},
{name: 'scenelist', type: BuffaloZclDataType.LIST_UINT8},
{name: 'scenecount', type: DataType.UINT8, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]},
{
name: 'scenelist',
type: BuffaloZclDataType.LIST_UINT8,
conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}],
},
],
},
enhancedAddRsp: {
ID: 64,
parameters: [],
parameters: [
{name: 'status', type: DataType.UINT8},
{name: 'groupId', type: DataType.UINT16},
{name: 'sceneId', type: DataType.UINT8},
],
},
enhancedViewRsp: {
ID: 65,
parameters: [
{name: 'status', type: DataType.UINT8},
{name: 'groupid', type: DataType.UINT16},
{name: 'sceneid', type: DataType.UINT8},
{name: 'transtime', type: DataType.UINT16},
{name: 'scenename', type: DataType.CHAR_STR},
{name: 'extensionfieldsets', type: BuffaloZclDataType.EXTENSION_FIELD_SETS},
{name: 'transtime', type: DataType.UINT16, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]},
{name: 'scenename', type: DataType.CHAR_STR, conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}]},
{
name: 'extensionfieldsets',
type: BuffaloZclDataType.EXTENSION_FIELD_SETS,
conditions: [{type: ParameterCondition.STATUS_EQUAL, value: Status.SUCCESS}],
},
],
},
copyRsp: {
Expand Down
26 changes: 17 additions & 9 deletions test/controller.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3472,9 +3472,9 @@ describe('Controller', () => {
{name: 'status', type: 32},
{name: 'groupid', type: 33},
{name: 'sceneid', type: 32},
{name: 'transtime', type: 33},
{name: 'scenename', type: 66},
{name: 'extensionfieldsets', type: 1006},
{name: 'transtime', type: 33, conditions: [{type: 'statusEquals', value: 0}]},
{name: 'scenename', type: 66, conditions: [{type: 'statusEquals', value: 0}]},
{name: 'extensionfieldsets', type: 1006, conditions: [{type: 'statusEquals', value: 0}]},
],
name: 'viewRsp',
},
Expand Down Expand Up @@ -3510,21 +3510,29 @@ describe('Controller', () => {
{name: 'status', type: 32},
{name: 'capacity', type: 32},
{name: 'groupid', type: 33},
{name: 'scenecount', type: 32},
{name: 'scenelist', type: 1001},
{name: 'scenecount', type: 32, conditions: [{type: 'statusEquals', value: 0}]},
{name: 'scenelist', type: 1001, conditions: [{type: 'statusEquals', value: 0}]},
],
name: 'getSceneMembershipRsp',
},
enhancedAddRsp: {ID: 64, parameters: [], name: 'enhancedAddRsp'},
enhancedAddRsp: {
ID: 64,
parameters: [
{name: 'status', type: 32},
{name: 'groupId', type: 33},
{name: 'sceneId', type: 32},
],
name: 'enhancedAddRsp',
},
enhancedViewRsp: {
ID: 65,
parameters: [
{name: 'status', type: 32},
{name: 'groupid', type: 33},
{name: 'sceneid', type: 32},
{name: 'transtime', type: 33},
{name: 'scenename', type: 66},
{name: 'extensionfieldsets', type: 1006},
{name: 'transtime', type: 33, conditions: [{type: 'statusEquals', value: 0}]},
{name: 'scenename', type: 66, conditions: [{type: 'statusEquals', value: 0}]},
{name: 'extensionfieldsets', type: 1006, conditions: [{type: 'statusEquals', value: 0}]},
],
name: 'enhancedViewRsp',
},
Expand Down

0 comments on commit 1d54cba

Please sign in to comment.