@willieee802/zigbee-herdsman 0.49.3 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/dependabot.yml +0 -3
- package/.github/workflows/ci.yml +1 -2
- package/.github/workflows/release-please.yml +1 -1
- package/.github/workflows/typedoc.yaml +3 -3
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +143 -0
- package/biome.json +1 -1
- package/dist/adapter/adapter.d.ts +14 -1
- package/dist/adapter/adapter.d.ts.map +1 -1
- package/dist/adapter/adapter.js +17 -0
- package/dist/adapter/adapter.js.map +1 -1
- package/dist/adapter/adapterDiscovery.d.ts.map +1 -1
- package/dist/adapter/adapterDiscovery.js.map +1 -1
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +1 -3
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
- package/dist/adapter/deconz/adapter/deconzAdapter.js +14 -29
- package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
- package/dist/adapter/deconz/driver/constants.d.ts +1 -1
- package/dist/adapter/deconz/driver/constants.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.d.ts +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.js +19 -10
- package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
- package/dist/adapter/ember/adapter/oneWaitress.d.ts +2 -0
- package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/oneWaitress.js +13 -5
- package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +1 -3
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.js +17 -30
- package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
- package/dist/adapter/ezsp/driver/index.d.ts +1 -1
- package/dist/adapter/ezsp/driver/index.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/index.js +1 -1
- package/dist/adapter/ezsp/driver/index.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/index.d.ts +1 -1
- package/dist/adapter/ezsp/driver/types/index.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/types/index.js +3 -3
- package/dist/adapter/ezsp/driver/types/index.js.map +1 -1
- package/dist/adapter/serialPort.d.ts.map +1 -1
- package/dist/adapter/serialPort.js +7 -0
- package/dist/adapter/serialPort.js.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-backup.js +1 -1
- package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +1 -1
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +1 -1
- package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/manager.js +12 -2
- package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
- package/dist/adapter/z-stack/adapter/tstype.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +1 -3
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/zStackAdapter.js +20 -34
- package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
- package/dist/adapter/z-stack/constants/index.d.ts +1 -1
- package/dist/adapter/z-stack/constants/index.d.ts.map +1 -1
- package/dist/adapter/z-stack/constants/index.js +1 -1
- package/dist/adapter/z-stack/constants/index.js.map +1 -1
- package/dist/adapter/z-stack/unpi/constants.d.ts +1 -1
- package/dist/adapter/z-stack/unpi/constants.d.ts.map +1 -1
- package/dist/adapter/z-stack/unpi/constants.js +1 -1
- package/dist/adapter/z-stack/unpi/constants.js.map +1 -1
- package/dist/adapter/zboss/adapter/zbossAdapter.d.ts +7 -8
- package/dist/adapter/zboss/adapter/zbossAdapter.d.ts.map +1 -1
- package/dist/adapter/zboss/adapter/zbossAdapter.js +12 -30
- package/dist/adapter/zboss/adapter/zbossAdapter.js.map +1 -1
- package/dist/adapter/zboss/driver.d.ts.map +1 -1
- package/dist/adapter/zboss/driver.js +8 -1
- package/dist/adapter/zboss/driver.js.map +1 -1
- package/dist/adapter/zboss/uart.d.ts.map +1 -1
- package/dist/adapter/zboss/uart.js +14 -2
- package/dist/adapter/zboss/uart.js.map +1 -1
- package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +1 -3
- package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
- package/dist/adapter/zigate/adapter/zigateAdapter.js +8 -29
- package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
- package/dist/adapter/zoh/adapter/zohAdapter.d.ts +1 -3
- package/dist/adapter/zoh/adapter/zohAdapter.d.ts.map +1 -1
- package/dist/adapter/zoh/adapter/zohAdapter.js +18 -33
- package/dist/adapter/zoh/adapter/zohAdapter.js.map +1 -1
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/controller/controller.js +10 -2
- package/dist/controller/controller.js.map +1 -1
- package/dist/controller/greenPower.d.ts.map +1 -1
- package/dist/controller/greenPower.js +15 -9
- package/dist/controller/greenPower.js.map +1 -1
- package/dist/controller/helpers/ota.d.ts +4 -4
- package/dist/controller/helpers/ota.d.ts.map +1 -1
- package/dist/controller/helpers/ota.js +28 -9
- package/dist/controller/helpers/ota.js.map +1 -1
- package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
- package/dist/controller/helpers/zclFrameConverter.js +17 -16
- package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
- package/dist/controller/model/device.d.ts +14 -4
- package/dist/controller/model/device.d.ts.map +1 -1
- package/dist/controller/model/device.js +167 -85
- package/dist/controller/model/device.js.map +1 -1
- package/dist/controller/model/endpoint.d.ts +7 -3
- package/dist/controller/model/endpoint.d.ts.map +1 -1
- package/dist/controller/model/endpoint.js +34 -21
- package/dist/controller/model/endpoint.js.map +1 -1
- package/dist/controller/model/group.d.ts +0 -1
- package/dist/controller/model/group.d.ts.map +1 -1
- package/dist/controller/model/group.js +14 -19
- package/dist/controller/model/group.js.map +1 -1
- package/dist/controller/touchlink.js +3 -3
- package/dist/controller/touchlink.js.map +1 -1
- package/dist/utils/timeService.js +2 -2
- package/dist/utils/timeService.js.map +1 -1
- package/dist/zspec/zcl/buffaloZcl.d.ts +3 -3
- package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -1
- package/dist/zspec/zcl/buffaloZcl.js +198 -96
- package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
- package/dist/zspec/zcl/definition/cluster.d.ts +2 -2
- package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/cluster.js +2699 -2808
- package/dist/zspec/zcl/definition/cluster.js.map +1 -1
- package/dist/zspec/zcl/definition/clusters-types.d.ts +63 -1109
- package/dist/zspec/zcl/definition/clusters-types.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/enums.d.ts +0 -1
- package/dist/zspec/zcl/definition/enums.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/enums.js +0 -1
- package/dist/zspec/zcl/definition/enums.js.map +1 -1
- package/dist/zspec/zcl/definition/foundation.d.ts +306 -7
- package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/foundation.js +552 -207
- package/dist/zspec/zcl/definition/foundation.js.map +1 -1
- package/dist/zspec/zcl/definition/status.d.ts +21 -10
- package/dist/zspec/zcl/definition/status.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/status.js +11 -0
- package/dist/zspec/zcl/definition/status.js.map +1 -1
- package/dist/zspec/zcl/definition/tstype.d.ts +57 -48
- package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
- package/dist/zspec/zcl/utils.d.ts +7 -4
- package/dist/zspec/zcl/utils.d.ts.map +1 -1
- package/dist/zspec/zcl/utils.js +133 -240
- package/dist/zspec/zcl/utils.js.map +1 -1
- package/dist/zspec/zcl/zclFrame.d.ts +4 -4
- package/dist/zspec/zcl/zclFrame.d.ts.map +1 -1
- package/dist/zspec/zcl/zclFrame.js +19 -103
- package/dist/zspec/zcl/zclFrame.js.map +1 -1
- package/dist/zspec/zcl/zclStatusError.d.ts +1 -1
- package/dist/zspec/zcl/zclStatusError.d.ts.map +1 -1
- package/dist/zspec/zcl/zclStatusError.js +2 -2
- package/dist/zspec/zcl/zclStatusError.js.map +1 -1
- package/package.json +1 -1
- package/scripts/clusters-typegen.ts +44 -139
- package/src/adapter/adapter.ts +38 -3
- package/src/adapter/adapterDiscovery.ts +2 -1
- package/src/adapter/deconz/adapter/deconzAdapter.ts +24 -51
- package/src/adapter/deconz/driver/constants.ts +1 -1
- package/src/adapter/ember/adapter/emberAdapter.ts +23 -10
- package/src/adapter/ember/adapter/oneWaitress.ts +16 -6
- package/src/adapter/ezsp/adapter/ezspAdapter.ts +27 -48
- package/src/adapter/ezsp/driver/index.ts +1 -1
- package/src/adapter/ezsp/driver/types/index.ts +99 -99
- package/src/adapter/serialPort.ts +9 -0
- package/src/adapter/z-stack/adapter/adapter-backup.ts +1 -1
- package/src/adapter/z-stack/adapter/adapter-nv-memory.ts +1 -1
- package/src/adapter/z-stack/adapter/manager.ts +16 -2
- package/src/adapter/z-stack/adapter/tstype.ts +1 -0
- package/src/adapter/z-stack/adapter/zStackAdapter.ts +34 -81
- package/src/adapter/z-stack/constants/index.ts +1 -1
- package/src/adapter/z-stack/unpi/constants.ts +1 -1
- package/src/adapter/zboss/adapter/zbossAdapter.ts +23 -54
- package/src/adapter/zboss/driver.ts +8 -1
- package/src/adapter/zboss/uart.ts +14 -1
- package/src/adapter/zigate/adapter/zigateAdapter.ts +17 -48
- package/src/adapter/zoh/adapter/zohAdapter.ts +27 -50
- package/src/controller/controller.ts +12 -2
- package/src/controller/greenPower.ts +16 -9
- package/src/controller/helpers/ota.ts +37 -11
- package/src/controller/helpers/zclFrameConverter.ts +20 -17
- package/src/controller/model/device.ts +204 -97
- package/src/controller/model/endpoint.ts +36 -24
- package/src/controller/model/group.ts +14 -20
- package/src/controller/touchlink.ts +3 -3
- package/src/utils/timeService.ts +2 -2
- package/src/zspec/zcl/buffaloZcl.ts +226 -100
- package/src/zspec/zcl/definition/cluster.ts +2713 -2822
- package/src/zspec/zcl/definition/clusters-types.ts +80 -1135
- package/src/zspec/zcl/definition/enums.ts +0 -1
- package/src/zspec/zcl/definition/foundation.ts +703 -216
- package/src/zspec/zcl/definition/status.ts +22 -11
- package/src/zspec/zcl/definition/tstype.ts +59 -58
- package/src/zspec/zcl/utils.ts +137 -264
- package/src/zspec/zcl/zclFrame.ts +25 -130
- package/src/zspec/zcl/zclStatusError.ts +2 -2
- package/test/adapter/ember/emberAdapter.test.ts +191 -4
- package/test/adapter/ezsp/uart.test.ts +10 -10
- package/test/adapter/z-stack/adapter.test.ts +88 -32
- package/test/adapter/zoh/zohAdapter.test.ts +4 -4
- package/test/controller.test.ts +822 -248
- package/test/device-ota.test.ts +141 -16
- package/test/device.test.ts +731 -0
- package/test/requests.bench.ts +2 -0
- package/test/zcl.test.ts +70 -95
- package/test/zspec/zcl/buffalo.test.ts +251 -11
- package/test/zspec/zcl/foundation.test.ts +990 -0
- package/test/zspec/zcl/frame.test.ts +84 -69
- package/test/zspec/zcl/utils.test.ts +105 -81
- package/tsconfig.json +0 -1
- package/scripts/check-clusters-changes.ts +0 -328
- package/scripts/clusters-changes.log +0 -584
- package/scripts/utils.ts +0 -88
- package/scripts/zap-update-clusters-report.json +0 -303
- package/scripts/zap-update-clusters.ts +0 -1520
- package/scripts/zap-update-types.ts +0 -707
- package/scripts/zap-xml-clusters-overrides-data.ts +0 -52
- package/scripts/zap-xml-clusters-overrides.ts +0 -400
- package/scripts/zap-xml-types.ts +0 -146
|
@@ -32,14 +32,20 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
35
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
39
|
exports.ZclFrame = void 0;
|
|
40
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
37
41
|
require("../../utils/patchBigIntSerialization");
|
|
38
42
|
const buffaloZcl_1 = require("./buffaloZcl");
|
|
39
43
|
const enums_1 = require("./definition/enums");
|
|
44
|
+
const status_1 = require("./definition/status");
|
|
40
45
|
const Utils = __importStar(require("./utils"));
|
|
41
46
|
const zclHeader_1 = require("./zclHeader");
|
|
42
|
-
const
|
|
47
|
+
const zclStatusError_1 = require("./zclStatusError");
|
|
48
|
+
const LIST_TYPES = [
|
|
43
49
|
enums_1.BuffaloZclDataType.LIST_UINT8,
|
|
44
50
|
enums_1.BuffaloZclDataType.LIST_UINT16,
|
|
45
51
|
enums_1.BuffaloZclDataType.LIST_UINT24,
|
|
@@ -70,8 +76,8 @@ class ZclFrame {
|
|
|
70
76
|
: frameType === enums_1.FrameType.GLOBAL
|
|
71
77
|
? Utils.getGlobalCommand(commandKey)
|
|
72
78
|
: direction === enums_1.Direction.CLIENT_TO_SERVER
|
|
73
|
-
?
|
|
74
|
-
:
|
|
79
|
+
? Utils.getClusterCommand(cluster, commandKey)
|
|
80
|
+
: Utils.getClusterCommandResponse(cluster, commandKey);
|
|
75
81
|
const header = new zclHeader_1.ZclHeader({ reservedBits, frameType, direction, disableDefaultResponse, manufacturerSpecific: manufacturerCode != null }, manufacturerCode, transactionSequenceNumber, command.ID);
|
|
76
82
|
return new ZclFrame(header, payload, cluster, command);
|
|
77
83
|
}
|
|
@@ -90,41 +96,11 @@ class ZclFrame {
|
|
|
90
96
|
return buffalo.getWritten();
|
|
91
97
|
}
|
|
92
98
|
writePayloadGlobal(buffalo) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
for (const entry of this.payload) {
|
|
96
|
-
for (const parameter of command.parameters) {
|
|
97
|
-
const options = {};
|
|
98
|
-
if (!ZclFrame.conditionsValid(parameter, entry, undefined)) {
|
|
99
|
-
continue;
|
|
100
|
-
}
|
|
101
|
-
if (parameter.type === enums_1.BuffaloZclDataType.USE_DATA_TYPE && typeof entry.dataType === "number") {
|
|
102
|
-
// We need to grab the dataType to parse useDataType
|
|
103
|
-
options.dataType = entry.dataType;
|
|
104
|
-
}
|
|
105
|
-
buffalo.write(parameter.type, entry[parameter.name], options);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
else if (command.parseStrategy === "flat") {
|
|
110
|
-
for (const parameter of command.parameters) {
|
|
111
|
-
buffalo.write(parameter.type, this.payload[parameter.name], {});
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
if (command.parseStrategy === "oneof") {
|
|
116
|
-
if (Utils.isFoundationDiscoverRsp(command.ID)) {
|
|
117
|
-
buffalo.writeUInt8(this.payload.discComplete);
|
|
118
|
-
for (const entry of this.payload.attrInfos) {
|
|
119
|
-
for (const parameter of command.parameters) {
|
|
120
|
-
buffalo.write(parameter.type, entry[parameter.name], {});
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
99
|
+
(0, node_assert_1.default)("write" in this.command);
|
|
100
|
+
this.command.write(buffalo, this.payload);
|
|
126
101
|
}
|
|
127
102
|
writePayloadCluster(buffalo) {
|
|
103
|
+
(0, node_assert_1.default)("parameters" in this.command);
|
|
128
104
|
for (const parameter of this.command.parameters) {
|
|
129
105
|
if (!ZclFrame.conditionsValid(parameter, this.payload, undefined)) {
|
|
130
106
|
continue;
|
|
@@ -154,8 +130,8 @@ class ZclFrame {
|
|
|
154
130
|
const command = header.isGlobal
|
|
155
131
|
? Utils.getGlobalCommand(header.commandIdentifier)
|
|
156
132
|
: header.frameControl.direction === enums_1.Direction.CLIENT_TO_SERVER
|
|
157
|
-
?
|
|
158
|
-
:
|
|
133
|
+
? Utils.getClusterCommand(cluster, header.commandIdentifier)
|
|
134
|
+
: Utils.getClusterCommandResponse(cluster, header.commandIdentifier);
|
|
159
135
|
const payload = ZclFrame.parsePayload(header, cluster, buffalo);
|
|
160
136
|
return new ZclFrame(header, payload, cluster, command);
|
|
161
137
|
}
|
|
@@ -170,15 +146,15 @@ class ZclFrame {
|
|
|
170
146
|
}
|
|
171
147
|
static parsePayloadCluster(header, cluster, buffalo) {
|
|
172
148
|
const command = header.frameControl.direction === enums_1.Direction.CLIENT_TO_SERVER
|
|
173
|
-
?
|
|
174
|
-
:
|
|
149
|
+
? Utils.getClusterCommand(cluster, header.commandIdentifier)
|
|
150
|
+
: Utils.getClusterCommandResponse(cluster, header.commandIdentifier);
|
|
175
151
|
const payload = {};
|
|
176
152
|
for (const parameter of command.parameters) {
|
|
177
153
|
const options = { payload };
|
|
178
154
|
if (!ZclFrame.conditionsValid(parameter, payload, buffalo.getBuffer().length - buffalo.getPosition())) {
|
|
179
155
|
continue;
|
|
180
156
|
}
|
|
181
|
-
if (
|
|
157
|
+
if (LIST_TYPES.includes(parameter.type)) {
|
|
182
158
|
const lengthParameter = command.parameters[command.parameters.indexOf(parameter) - 1];
|
|
183
159
|
const length = payload[lengthParameter.name];
|
|
184
160
|
if (typeof length === "number") {
|
|
@@ -190,68 +166,14 @@ class ZclFrame {
|
|
|
190
166
|
payload[parameter.name] = Utils.processParameterRead(parameter, valueToProcess);
|
|
191
167
|
}
|
|
192
168
|
catch (error) {
|
|
193
|
-
throw new
|
|
169
|
+
throw new zclStatusError_1.ZclStatusError(status_1.Status.INVALID_FIELD, `${cluster.name}:${command.name}:${parameter.name} (${error.message})`);
|
|
194
170
|
}
|
|
195
171
|
}
|
|
196
172
|
return payload;
|
|
197
173
|
}
|
|
198
174
|
static parsePayloadGlobal(header, buffalo) {
|
|
199
175
|
const command = Utils.getFoundationCommand(header.commandIdentifier);
|
|
200
|
-
|
|
201
|
-
const payload = [];
|
|
202
|
-
while (buffalo.isMore()) {
|
|
203
|
-
// biome-ignore lint/suspicious/noExplicitAny: API
|
|
204
|
-
const entry = {};
|
|
205
|
-
for (const parameter of command.parameters) {
|
|
206
|
-
const options = {};
|
|
207
|
-
if (!ZclFrame.conditionsValid(parameter, entry, buffalo.getBuffer().length - buffalo.getPosition())) {
|
|
208
|
-
continue;
|
|
209
|
-
}
|
|
210
|
-
if (parameter.type === enums_1.BuffaloZclDataType.USE_DATA_TYPE && typeof entry.dataType === "number") {
|
|
211
|
-
// We need to grab the dataType to parse useDataType
|
|
212
|
-
options.dataType = entry.dataType;
|
|
213
|
-
if (entry.dataType === enums_1.DataType.CHAR_STR && entry.attrId === 65281) {
|
|
214
|
-
// [workaround] parse char str as Xiaomi struct
|
|
215
|
-
options.dataType = enums_1.BuffaloZclDataType.MI_STRUCT;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
entry[parameter.name] = buffalo.read(parameter.type, options);
|
|
219
|
-
// TODO: not needed, but temp workaroudn to make payload equal to that of zcl-packet
|
|
220
|
-
// XXX: is this still needed?
|
|
221
|
-
if (parameter.type === enums_1.BuffaloZclDataType.USE_DATA_TYPE && entry.dataType === enums_1.DataType.STRUCT) {
|
|
222
|
-
entry.structElms = entry.attrData;
|
|
223
|
-
entry.numElms = entry.attrData.length;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
payload.push(entry);
|
|
227
|
-
}
|
|
228
|
-
return payload;
|
|
229
|
-
}
|
|
230
|
-
if (command.parseStrategy === "flat") {
|
|
231
|
-
// biome-ignore lint/suspicious/noExplicitAny: API
|
|
232
|
-
const payload = {};
|
|
233
|
-
for (const parameter of command.parameters) {
|
|
234
|
-
payload[parameter.name] = buffalo.read(parameter.type, {});
|
|
235
|
-
}
|
|
236
|
-
return payload;
|
|
237
|
-
}
|
|
238
|
-
if (command.parseStrategy === "oneof") {
|
|
239
|
-
if (Utils.isFoundationDiscoverRsp(command.ID)) {
|
|
240
|
-
// biome-ignore lint/suspicious/noExplicitAny: API
|
|
241
|
-
const payload = {
|
|
242
|
-
discComplete: buffalo.readUInt8(),
|
|
243
|
-
attrInfos: [],
|
|
244
|
-
};
|
|
245
|
-
while (buffalo.isMore()) {
|
|
246
|
-
const entry = {};
|
|
247
|
-
for (const parameter of command.parameters) {
|
|
248
|
-
entry[parameter.name] = buffalo.read(parameter.type, {});
|
|
249
|
-
}
|
|
250
|
-
payload.attrInfos.push(entry);
|
|
251
|
-
}
|
|
252
|
-
return payload;
|
|
253
|
-
}
|
|
254
|
-
}
|
|
176
|
+
return command.parse(buffalo);
|
|
255
177
|
}
|
|
256
178
|
/**
|
|
257
179
|
* Utils
|
|
@@ -294,12 +216,6 @@ class ZclFrame {
|
|
|
294
216
|
}
|
|
295
217
|
break;
|
|
296
218
|
}
|
|
297
|
-
case enums_1.ParameterCondition.DATA_TYPE_CLASS_EQUAL: {
|
|
298
|
-
if (Utils.getDataTypeClass(entry.dataType) !== condition.value) {
|
|
299
|
-
return false;
|
|
300
|
-
}
|
|
301
|
-
break;
|
|
302
|
-
}
|
|
303
219
|
case enums_1.ParameterCondition.FIELD_GT: {
|
|
304
220
|
/*if (condition.reversed) {
|
|
305
221
|
if (entry[condition.field] >= condition.value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zclFrame.js","sourceRoot":"","sources":["../../../src/zspec/zcl/zclFrame.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"zclFrame.js","sourceRoot":"","sources":["../../../src/zspec/zcl/zclFrame.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zclStatusError.d.ts","sourceRoot":"","sources":["../../../src/zspec/zcl/zclStatusError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAE3C,qBAAa,cAAe,SAAQ,KAAK;IAC9B,IAAI,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"zclStatusError.d.ts","sourceRoot":"","sources":["../../../src/zspec/zcl/zclStatusError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAE3C,qBAAa,cAAe,SAAQ,KAAK;IAC9B,IAAI,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAI7C"}
|
|
@@ -4,8 +4,8 @@ exports.ZclStatusError = void 0;
|
|
|
4
4
|
const status_1 = require("./definition/status");
|
|
5
5
|
class ZclStatusError extends Error {
|
|
6
6
|
code;
|
|
7
|
-
constructor(code) {
|
|
8
|
-
super(`Status '${status_1.Status[code]}'`);
|
|
7
|
+
constructor(code, details) {
|
|
8
|
+
super(`Status '${status_1.Status[code]}'${details ? ` ${details}` : ""}`);
|
|
9
9
|
this.code = code;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zclStatusError.js","sourceRoot":"","sources":["../../../src/zspec/zcl/zclStatusError.ts"],"names":[],"mappings":";;;AAAA,gDAA2C;AAE3C,MAAa,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAS;IAEpB,YAAY,IAAY;
|
|
1
|
+
{"version":3,"file":"zclStatusError.js","sourceRoot":"","sources":["../../../src/zspec/zcl/zclStatusError.ts"],"names":[],"mappings":";;;AAAA,gDAA2C;AAE3C,MAAa,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAS;IAEpB,YAAY,IAAY,EAAE,OAAgB;QACtC,KAAK,CAAC,WAAW,eAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ;AAPD,wCAOC"}
|
package/package.json
CHANGED
|
@@ -6,10 +6,9 @@ import {writeFileSync} from "node:fs";
|
|
|
6
6
|
import ts from "typescript";
|
|
7
7
|
import {Clusters} from "../src/zspec/zcl/definition/cluster";
|
|
8
8
|
import {BuffaloZclDataType, DataType} from "../src/zspec/zcl/definition/enums";
|
|
9
|
-
import {Foundation, type FoundationCommandName
|
|
9
|
+
import {Foundation, type FoundationCommandName} from "../src/zspec/zcl/definition/foundation";
|
|
10
10
|
import {ManufacturerCode} from "../src/zspec/zcl/definition/manufacturerCode";
|
|
11
|
-
import type {
|
|
12
|
-
import {isFoundationDiscoverRsp} from "../src/zspec/zcl/utils";
|
|
11
|
+
import type {Attribute, ClusterName, Command, Parameter} from "../src/zspec/zcl/definition/tstype";
|
|
13
12
|
|
|
14
13
|
const FILENAME = "clusters-types.ts";
|
|
15
14
|
|
|
@@ -21,6 +20,16 @@ const emptyObject = ts.factory.createTypeReferenceNode("Record", [
|
|
|
21
20
|
ts.factory.createKeywordTypeNode(ts.SyntaxKind.NeverKeyword),
|
|
22
21
|
]);
|
|
23
22
|
|
|
23
|
+
const foundationImport = ts.factory.createImportDeclaration(
|
|
24
|
+
undefined,
|
|
25
|
+
ts.factory.createImportClause(
|
|
26
|
+
ts.SyntaxKind.TypeKeyword,
|
|
27
|
+
undefined,
|
|
28
|
+
ts.factory.createNamedImports([ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("Foundation"))]),
|
|
29
|
+
),
|
|
30
|
+
ts.factory.createStringLiteral("./foundation"),
|
|
31
|
+
undefined,
|
|
32
|
+
);
|
|
24
33
|
const namedImports = ts.factory.createImportDeclaration(
|
|
25
34
|
undefined,
|
|
26
35
|
ts.factory.createImportClause(
|
|
@@ -30,14 +39,15 @@ const namedImports = ts.factory.createImportDeclaration(
|
|
|
30
39
|
// sorted by name
|
|
31
40
|
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("ExtensionFieldSet")),
|
|
32
41
|
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("Gpd")),
|
|
33
|
-
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("
|
|
42
|
+
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("GpdAttributeReporting")),
|
|
34
43
|
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("GpdChannelConfiguration")),
|
|
35
44
|
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("GpdChannelRequest")),
|
|
36
45
|
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("GpdCommissioningReply")),
|
|
37
46
|
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("GpdCustomReply")),
|
|
38
|
-
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("
|
|
47
|
+
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("GpdReadAttributeResponse")),
|
|
48
|
+
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("GpdRequestAttribute")),
|
|
39
49
|
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("Struct")),
|
|
40
|
-
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("StructuredSelector")),
|
|
50
|
+
// ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("StructuredSelector")), // XXX: currently unused
|
|
41
51
|
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("ThermoTransition")),
|
|
42
52
|
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("TuyaDataPointValue")),
|
|
43
53
|
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("ZclArray")),
|
|
@@ -119,14 +129,16 @@ const getTypeFromDataType = (dataType: DataType | BuffaloZclDataType): ts.TypeNo
|
|
|
119
129
|
return ts.factory.createUnionTypeNode([
|
|
120
130
|
ts.factory.createTypeReferenceNode("Gpd"),
|
|
121
131
|
ts.factory.createTypeReferenceNode("GpdChannelRequest"),
|
|
122
|
-
ts.factory.createTypeReferenceNode("
|
|
132
|
+
ts.factory.createTypeReferenceNode("GpdAttributeReporting"),
|
|
133
|
+
ts.factory.createTypeReferenceNode("GpdCommissioningReply"),
|
|
134
|
+
ts.factory.createTypeReferenceNode("GpdChannelConfiguration"),
|
|
135
|
+
ts.factory.createTypeReferenceNode("GpdCustomReply"),
|
|
136
|
+
ts.factory.createTypeReferenceNode("GpdReadAttributeResponse"),
|
|
137
|
+
ts.factory.createTypeReferenceNode("GpdRequestAttribute"),
|
|
123
138
|
ts.factory.createTypeLiteralNode([
|
|
124
139
|
ts.factory.createPropertySignature(undefined, "raw", undefined, ts.factory.createTypeReferenceNode("Buffer")),
|
|
125
140
|
]),
|
|
126
141
|
ts.factory.createTypeReferenceNode("Record<string, never>"),
|
|
127
|
-
ts.factory.createTypeReferenceNode("GpdCommissioningReply"),
|
|
128
|
-
ts.factory.createTypeReferenceNode("GpdChannelConfiguration"),
|
|
129
|
-
ts.factory.createTypeReferenceNode("GpdCustomReply"),
|
|
130
142
|
]);
|
|
131
143
|
}
|
|
132
144
|
case BuffaloZclDataType.STRUCTURED_SELECTOR: {
|
|
@@ -158,7 +170,7 @@ const getPropertyStr = (key: string, val: unknown, padId = 4) => {
|
|
|
158
170
|
return valStr;
|
|
159
171
|
};
|
|
160
172
|
|
|
161
|
-
const getConditionStr = (conditions:
|
|
173
|
+
const getConditionStr = (conditions: Parameter["conditions"]): string | undefined => {
|
|
162
174
|
if (conditions) {
|
|
163
175
|
let str = "conditions=[";
|
|
164
176
|
|
|
@@ -180,7 +192,7 @@ const getConditionStr = (conditions: ParameterDefinition["conditions"]): string
|
|
|
180
192
|
}
|
|
181
193
|
};
|
|
182
194
|
|
|
183
|
-
const addAttributes = (attributes: Readonly<Record<string, Readonly<
|
|
195
|
+
const addAttributes = (attributes: Readonly<Record<string, Readonly<Attribute>>>): ts.TypeNode => {
|
|
184
196
|
const elements: ts.PropertySignature[] = [];
|
|
185
197
|
|
|
186
198
|
for (const attributeName in attributes) {
|
|
@@ -199,6 +211,10 @@ const addAttributes = (attributes: Readonly<Record<string, Readonly<AttributeDef
|
|
|
199
211
|
const commentChunks: string[] = [];
|
|
200
212
|
|
|
201
213
|
for (const key in attribute) {
|
|
214
|
+
if (key === "name") {
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
|
|
202
218
|
commentChunks.push(`${key}=${getPropertyStr(key, attribute[key as keyof typeof attribute], 4)}`);
|
|
203
219
|
}
|
|
204
220
|
|
|
@@ -210,7 +226,7 @@ const addAttributes = (attributes: Readonly<Record<string, Readonly<AttributeDef
|
|
|
210
226
|
return elements.length > 0 ? ts.factory.createTypeLiteralNode(elements) : ts.factory.createKeywordTypeNode(ts.SyntaxKind.NeverKeyword);
|
|
211
227
|
};
|
|
212
228
|
|
|
213
|
-
const addCommands = (commands: Readonly<Record<string, Readonly<
|
|
229
|
+
const addCommands = (commands: Readonly<Record<string, Readonly<Command>>>): ts.TypeNode => {
|
|
214
230
|
const elements: ts.PropertySignature[] = [];
|
|
215
231
|
|
|
216
232
|
for (const commandName in commands) {
|
|
@@ -278,7 +294,7 @@ const addCommands = (commands: Readonly<Record<string, Readonly<CommandDefinitio
|
|
|
278
294
|
const commentChunks: string[] = [];
|
|
279
295
|
|
|
280
296
|
for (const key in command) {
|
|
281
|
-
if (key === "parameters") {
|
|
297
|
+
if (key === "name" || key === "parameters") {
|
|
282
298
|
continue;
|
|
283
299
|
}
|
|
284
300
|
|
|
@@ -320,94 +336,25 @@ const clustersDecl = ts.factory.createInterfaceDeclaration(
|
|
|
320
336
|
clusterElements,
|
|
321
337
|
);
|
|
322
338
|
|
|
323
|
-
const addParameters = (foundation: Readonly<FoundationDefinition>): ts.TypeNode => {
|
|
324
|
-
const elements: ts.PropertySignature[] = [];
|
|
325
|
-
|
|
326
|
-
for (const parameter of foundation.parameters) {
|
|
327
|
-
const element = ts.factory.createPropertySignature(
|
|
328
|
-
undefined,
|
|
329
|
-
parameter.name,
|
|
330
|
-
parameter.conditions ? ts.factory.createToken(ts.SyntaxKind.QuestionToken) : undefined,
|
|
331
|
-
getTypeFromDataType(parameter.type),
|
|
332
|
-
);
|
|
333
|
-
const conditionComment = getConditionStr(parameter.conditions);
|
|
334
|
-
|
|
335
|
-
elements.push(element);
|
|
336
|
-
|
|
337
|
-
ts.addSyntheticLeadingComment(
|
|
338
|
-
element,
|
|
339
|
-
ts.SyntaxKind.MultiLineCommentTrivia,
|
|
340
|
-
`* Type: ${DataType[parameter.type] ?? BuffaloZclDataType[parameter.type]}${conditionComment ? ` ${conditionComment}` : ""} `,
|
|
341
|
-
true,
|
|
342
|
-
);
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
if (elements.length === 0) {
|
|
346
|
-
return emptyObject;
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
switch (foundation.parseStrategy) {
|
|
350
|
-
case "repetitive": {
|
|
351
|
-
return ts.factory.createArrayTypeNode(ts.factory.createTypeLiteralNode(elements));
|
|
352
|
-
}
|
|
353
|
-
case "flat": {
|
|
354
|
-
return ts.factory.createTypeLiteralNode(elements);
|
|
355
|
-
}
|
|
356
|
-
case "oneof": {
|
|
357
|
-
if (isFoundationDiscoverRsp(foundation.ID)) {
|
|
358
|
-
const discComplete = ts.factory.createPropertySignature(
|
|
359
|
-
undefined,
|
|
360
|
-
"discComplete",
|
|
361
|
-
undefined,
|
|
362
|
-
ts.factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword),
|
|
363
|
-
);
|
|
364
|
-
|
|
365
|
-
ts.addSyntheticLeadingComment(discComplete, ts.SyntaxKind.MultiLineCommentTrivia, `* Type: ${DataType[DataType.UINT8]} `, true);
|
|
366
|
-
|
|
367
|
-
return ts.factory.createTypeLiteralNode([
|
|
368
|
-
discComplete,
|
|
369
|
-
ts.factory.createPropertySignature(
|
|
370
|
-
undefined,
|
|
371
|
-
"attrInfos",
|
|
372
|
-
undefined,
|
|
373
|
-
ts.factory.createArrayTypeNode(ts.factory.createTypeLiteralNode(elements)),
|
|
374
|
-
),
|
|
375
|
-
]);
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
throw new Error(`Unknown command strategy for ${JSON.stringify(foundation)}`);
|
|
381
|
-
};
|
|
382
|
-
|
|
383
339
|
const foundationElements: ts.TypeElement[] = [];
|
|
384
|
-
const foundationRepetitiveElements: ts.TypeNode[] = [];
|
|
385
|
-
const foundationFlatElements: ts.TypeNode[] = [];
|
|
386
|
-
const foundationOneOfElements: ts.TypeNode[] = [];
|
|
387
340
|
|
|
388
341
|
for (const foundationName in Foundation) {
|
|
389
342
|
const foundation = Foundation[foundationName as FoundationCommandName];
|
|
390
|
-
const
|
|
343
|
+
const typeQuery = ts.factory.createTypeQueryNode(
|
|
344
|
+
ts.factory.createQualifiedName(
|
|
345
|
+
ts.factory.createQualifiedName(ts.factory.createIdentifier("Foundation"), ts.factory.createIdentifier(foundationName)),
|
|
346
|
+
ts.factory.createIdentifier("parse"),
|
|
347
|
+
),
|
|
348
|
+
);
|
|
349
|
+
const element = ts.factory.createPropertySignature(
|
|
350
|
+
undefined,
|
|
351
|
+
foundationName,
|
|
352
|
+
undefined,
|
|
353
|
+
ts.factory.createTypeReferenceNode("ReturnType", [typeQuery]),
|
|
354
|
+
);
|
|
391
355
|
|
|
392
356
|
foundationElements.push(element);
|
|
393
357
|
ts.addSyntheticLeadingComment(element, ts.SyntaxKind.MultiLineCommentTrivia, `* ID: ${foundation.ID} `, true);
|
|
394
|
-
|
|
395
|
-
const stratNode = ts.factory.createTypeReferenceNode(`"${foundationName}"`);
|
|
396
|
-
|
|
397
|
-
switch (foundation.parseStrategy) {
|
|
398
|
-
case "repetitive": {
|
|
399
|
-
foundationRepetitiveElements.push(stratNode);
|
|
400
|
-
break;
|
|
401
|
-
}
|
|
402
|
-
case "flat": {
|
|
403
|
-
foundationFlatElements.push(stratNode);
|
|
404
|
-
break;
|
|
405
|
-
}
|
|
406
|
-
case "oneof": {
|
|
407
|
-
foundationOneOfElements.push(stratNode);
|
|
408
|
-
break;
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
358
|
}
|
|
412
359
|
|
|
413
360
|
const foundationDecl = ts.factory.createInterfaceDeclaration(
|
|
@@ -418,24 +365,6 @@ const foundationDecl = ts.factory.createInterfaceDeclaration(
|
|
|
418
365
|
foundationElements,
|
|
419
366
|
);
|
|
420
367
|
|
|
421
|
-
const foundationRepetitiveDecl = ts.factory.createTypeAliasDeclaration(
|
|
422
|
-
[ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
|
|
423
|
-
"TFoundationRepetitive",
|
|
424
|
-
undefined,
|
|
425
|
-
ts.factory.createUnionTypeNode(foundationRepetitiveElements),
|
|
426
|
-
);
|
|
427
|
-
const foundationFlatDecl = ts.factory.createTypeAliasDeclaration(
|
|
428
|
-
[ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
|
|
429
|
-
"TFoundationFlat",
|
|
430
|
-
undefined,
|
|
431
|
-
ts.factory.createUnionTypeNode(foundationFlatElements),
|
|
432
|
-
);
|
|
433
|
-
const foundationOneOfDecl = ts.factory.createTypeAliasDeclaration(
|
|
434
|
-
[ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
|
|
435
|
-
"TFoundationOneOf",
|
|
436
|
-
undefined,
|
|
437
|
-
ts.factory.createUnionTypeNode(foundationOneOfElements),
|
|
438
|
-
);
|
|
439
368
|
const clDecl = ts.factory.createTypeParameterDeclaration(
|
|
440
369
|
undefined,
|
|
441
370
|
"Cl",
|
|
@@ -538,24 +467,6 @@ const foundationGenericPayloadDecl = ts.factory.createTypeAliasDeclaration(
|
|
|
538
467
|
undefined,
|
|
539
468
|
ts.factory.createTypeReferenceNode(`${foundationDecl.name.escapedText}[keyof ${foundationDecl.name.escapedText}]`),
|
|
540
469
|
);
|
|
541
|
-
const foundationRepetitivePayloadDecl = ts.factory.createTypeAliasDeclaration(
|
|
542
|
-
[ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
|
|
543
|
-
"TFoundationRepetitivePayload",
|
|
544
|
-
undefined,
|
|
545
|
-
ts.factory.createTypeReferenceNode(`${foundationDecl.name.escapedText}[${foundationRepetitiveDecl.name.escapedText}]`),
|
|
546
|
-
);
|
|
547
|
-
const foundationFlatPayloadDecl = ts.factory.createTypeAliasDeclaration(
|
|
548
|
-
[ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
|
|
549
|
-
"TFoundationFlatPayload",
|
|
550
|
-
undefined,
|
|
551
|
-
ts.factory.createTypeReferenceNode(`${foundationDecl.name.escapedText}[${foundationFlatDecl.name.escapedText}]`),
|
|
552
|
-
);
|
|
553
|
-
const foundationOneOfPayloadDecl = ts.factory.createTypeAliasDeclaration(
|
|
554
|
-
[ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
|
|
555
|
-
"TFoundationOneOfPayload",
|
|
556
|
-
undefined,
|
|
557
|
-
ts.factory.createTypeReferenceNode(`${foundationDecl.name.escapedText}[${foundationOneOfDecl.name.escapedText}]`),
|
|
558
|
-
);
|
|
559
470
|
const foundationPayloadDecl = ts.factory.createTypeAliasDeclaration(
|
|
560
471
|
[ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
|
|
561
472
|
"TFoundationPayload",
|
|
@@ -565,16 +476,13 @@ const foundationPayloadDecl = ts.factory.createTypeAliasDeclaration(
|
|
|
565
476
|
),
|
|
566
477
|
);
|
|
567
478
|
|
|
568
|
-
const result = `${printer.printNode(ts.EmitHint.Unspecified,
|
|
479
|
+
const result = `${printer.printNode(ts.EmitHint.Unspecified, foundationImport, file)}
|
|
480
|
+
${printer.printNode(ts.EmitHint.Unspecified, namedImports, file)}
|
|
569
481
|
|
|
570
482
|
${printer.printNode(ts.EmitHint.Unspecified, clustersDecl, file)}
|
|
571
483
|
|
|
572
484
|
${printer.printNode(ts.EmitHint.Unspecified, foundationDecl, file)}
|
|
573
485
|
|
|
574
|
-
${printer.printNode(ts.EmitHint.Unspecified, foundationRepetitiveDecl, file)}
|
|
575
|
-
${printer.printNode(ts.EmitHint.Unspecified, foundationFlatDecl, file)}
|
|
576
|
-
${printer.printNode(ts.EmitHint.Unspecified, foundationOneOfDecl, file)}
|
|
577
|
-
|
|
578
486
|
// Clusters
|
|
579
487
|
${printer.printNode(ts.EmitHint.Unspecified, clusterAttributeKeysDecl, file)}
|
|
580
488
|
|
|
@@ -598,9 +506,6 @@ ${printer.printNode(ts.EmitHint.Unspecified, clusterPayloadDecl, file)}
|
|
|
598
506
|
|
|
599
507
|
// Foundation
|
|
600
508
|
${printer.printNode(ts.EmitHint.Unspecified, foundationGenericPayloadDecl, file)}
|
|
601
|
-
${printer.printNode(ts.EmitHint.Unspecified, foundationRepetitivePayloadDecl, file)}
|
|
602
|
-
${printer.printNode(ts.EmitHint.Unspecified, foundationFlatPayloadDecl, file)}
|
|
603
|
-
${printer.printNode(ts.EmitHint.Unspecified, foundationOneOfPayloadDecl, file)}
|
|
604
509
|
|
|
605
510
|
${printer.printNode(ts.EmitHint.Unspecified, foundationPayloadDecl, file)}
|
|
606
511
|
`;
|
package/src/adapter/adapter.ts
CHANGED
|
@@ -10,6 +10,19 @@ import type * as AdapterEvents from "./events";
|
|
|
10
10
|
import type * as TsType from "./tstype";
|
|
11
11
|
import {KonnextConfig} from "../controller/model/konnextConfig";
|
|
12
12
|
|
|
13
|
+
export interface ZclWaitressPayload extends AdapterEvents.ZclPayload {
|
|
14
|
+
header: NonNullable<AdapterEvents.ZclPayload["header"]>;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface ClusterWaitressMatcher {
|
|
18
|
+
address: number | string | undefined;
|
|
19
|
+
clusterId: number;
|
|
20
|
+
endpoint?: number;
|
|
21
|
+
commandId?: number;
|
|
22
|
+
defaultRspCommandId?: number;
|
|
23
|
+
transactionSequenceNumber?: number;
|
|
24
|
+
}
|
|
25
|
+
|
|
13
26
|
interface AdapterEventMap {
|
|
14
27
|
deviceJoined: [payload: AdapterEvents.DeviceJoinedPayload];
|
|
15
28
|
zclPayload: [payload: AdapterEvents.ZclPayload];
|
|
@@ -105,6 +118,27 @@ export abstract class Adapter extends events.EventEmitter<AdapterEventMap> {
|
|
|
105
118
|
}
|
|
106
119
|
}
|
|
107
120
|
|
|
121
|
+
static clusterWaitressTimeoutFormatter(matcher: ClusterWaitressMatcher, timeout: number): string {
|
|
122
|
+
return `Timeout after ${timeout}ms [address=${matcher.address} endpoint=${matcher.endpoint} clusterId=${matcher.clusterId} cmdId=${matcher.commandId} tsn=${matcher.transactionSequenceNumber}]`;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
static zclWaitressValidator(payload: ZclWaitressPayload, matcher: ClusterWaitressMatcher): boolean {
|
|
126
|
+
const {header, address, clusterID, endpoint} = payload;
|
|
127
|
+
|
|
128
|
+
return (
|
|
129
|
+
// no sender in Touchlink
|
|
130
|
+
(matcher.address === undefined || address === matcher.address) &&
|
|
131
|
+
clusterID === matcher.clusterId &&
|
|
132
|
+
endpoint === matcher.endpoint &&
|
|
133
|
+
(matcher.transactionSequenceNumber === undefined || header.transactionSequenceNumber === matcher.transactionSequenceNumber) &&
|
|
134
|
+
(header.commandIdentifier === matcher.commandId ||
|
|
135
|
+
// defaultRsp
|
|
136
|
+
(header.frameControl.frameType === Zcl.FrameType.GLOBAL &&
|
|
137
|
+
header.commandIdentifier === 0x0b &&
|
|
138
|
+
(matcher.defaultRspCommandId === undefined || payload.data[payload.data.byteLength - 2] === matcher.defaultRspCommandId)))
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
|
|
108
142
|
public abstract start(): Promise<TsType.StartResult>;
|
|
109
143
|
|
|
110
144
|
public abstract stop(): Promise<void>;
|
|
@@ -124,13 +158,14 @@ export abstract class Adapter extends events.EventEmitter<AdapterEventMap> {
|
|
|
124
158
|
public abstract addInstallCode(ieeeAddress: string, key: Buffer, hashed: boolean): Promise<void>;
|
|
125
159
|
|
|
126
160
|
public abstract waitFor(
|
|
127
|
-
networkAddress: number
|
|
161
|
+
networkAddress: number,
|
|
128
162
|
endpoint: number,
|
|
129
163
|
frameType: Zcl.FrameType,
|
|
130
164
|
direction: Zcl.Direction,
|
|
131
165
|
transactionSequenceNumber: number | undefined,
|
|
132
|
-
|
|
133
|
-
|
|
166
|
+
clusterId: number,
|
|
167
|
+
commandId: number,
|
|
168
|
+
defaultRspCommandId: number | undefined,
|
|
134
169
|
timeout: number,
|
|
135
170
|
): {promise: Promise<AdapterEvents.ZclPayload>; cancel: () => void};
|
|
136
171
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import assert from "node:assert";
|
|
2
2
|
import {platform} from "node:os";
|
|
3
3
|
import type {PortInfo} from "@serialport/bindings-cpp";
|
|
4
|
-
import {Bonjour
|
|
4
|
+
import {Bonjour} from "bonjour-service";
|
|
5
|
+
import type {Service} from "bonjour-service/dist/lib/service";
|
|
5
6
|
import {wait} from "../utils";
|
|
6
7
|
import {logger} from "../utils/logger";
|
|
7
8
|
import type {TsType} from ".";
|