zigbee-herdsman 0.46.5 → 0.47.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/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +19 -0
- package/dist/adapter/adapter.d.ts +7 -7
- package/dist/adapter/adapter.d.ts.map +1 -1
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +9 -9
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
- package/dist/adapter/deconz/adapter/deconzAdapter.js +4 -4
- package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
- package/dist/adapter/deconz/driver/frameParser.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.d.ts +7 -7
- package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.js +33 -11
- package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
- package/dist/adapter/ember/adapter/endpoints.js +28 -31
- package/dist/adapter/ember/adapter/endpoints.js.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.js +8 -6
- package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
- package/dist/adapter/ember/uart/ash.d.ts +2 -2
- package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
- package/dist/adapter/ember/uart/ash.js +7 -13
- package/dist/adapter/ember/uart/ash.js.map +1 -1
- package/dist/adapter/ember/uart/parser.d.ts.map +1 -1
- package/dist/adapter/ember/uart/parser.js +3 -5
- package/dist/adapter/ember/uart/parser.js.map +1 -1
- package/dist/adapter/events.d.ts +1 -1
- package/dist/adapter/events.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +7 -7
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.js +5 -5
- package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
- package/dist/adapter/ezsp/driver/driver.js +3 -3
- package/dist/adapter/ezsp/driver/driver.js.map +1 -1
- package/dist/adapter/z-stack/adapter/endpoints.js +4 -4
- package/dist/adapter/z-stack/adapter/endpoints.js.map +1 -1
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +7 -7
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/zStackAdapter.js +5 -5
- package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
- package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +7 -7
- package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
- package/dist/adapter/zigate/adapter/zigateAdapter.js +4 -4
- package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
- package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +1 -1
- package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/zigate.js.map +1 -1
- package/dist/buffalo/buffalo.d.ts +2 -1
- package/dist/buffalo/buffalo.d.ts.map +1 -1
- package/dist/buffalo/buffalo.js +2 -2
- package/dist/buffalo/buffalo.js.map +1 -1
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/controller/controller.js +6 -6
- package/dist/controller/controller.js.map +1 -1
- package/dist/controller/events.d.ts +1 -1
- package/dist/controller/events.d.ts.map +1 -1
- package/dist/controller/greenPower.d.ts +2 -2
- package/dist/controller/greenPower.d.ts.map +1 -1
- package/dist/controller/greenPower.js +5 -6
- package/dist/controller/greenPower.js.map +1 -1
- package/dist/controller/helpers/request.d.ts +3 -3
- package/dist/controller/helpers/request.d.ts.map +1 -1
- package/dist/controller/helpers/request.js.map +1 -1
- package/dist/controller/helpers/requestQueue.js.map +1 -1
- package/dist/controller/helpers/zclFrameConverter.d.ts +4 -4
- package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
- package/dist/controller/helpers/zclFrameConverter.js +25 -6
- package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
- package/dist/controller/model/device.d.ts +4 -4
- package/dist/controller/model/device.d.ts.map +1 -1
- package/dist/controller/model/device.js +8 -10
- package/dist/controller/model/device.js.map +1 -1
- package/dist/controller/model/endpoint.d.ts +11 -10
- package/dist/controller/model/endpoint.d.ts.map +1 -1
- package/dist/controller/model/endpoint.js +9 -9
- package/dist/controller/model/endpoint.js.map +1 -1
- package/dist/controller/model/group.d.ts +1 -1
- package/dist/controller/model/group.d.ts.map +1 -1
- package/dist/controller/model/group.js +4 -4
- package/dist/controller/model/group.js.map +1 -1
- package/dist/controller/touchlink.js +4 -4
- package/dist/controller/touchlink.js.map +1 -1
- package/dist/index.d.ts +5 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -10
- package/dist/index.js.map +1 -1
- package/dist/zspec/consts.d.ts +59 -0
- package/dist/zspec/consts.d.ts.map +1 -1
- package/dist/zspec/consts.js +63 -0
- package/dist/zspec/consts.js.map +1 -1
- package/dist/zspec/enums.d.ts +5 -3
- package/dist/zspec/enums.d.ts.map +1 -1
- package/dist/zspec/enums.js +9 -3
- package/dist/zspec/enums.js.map +1 -1
- package/dist/zspec/index.d.ts +3 -2
- package/dist/zspec/index.d.ts.map +1 -1
- package/dist/zspec/index.js +40 -3
- package/dist/zspec/index.js.map +1 -1
- package/dist/zspec/tstypes.d.ts +19 -0
- package/dist/zspec/tstypes.d.ts.map +1 -0
- package/dist/{zcl/definition/frameControl.js → zspec/tstypes.js} +1 -1
- package/dist/zspec/tstypes.js.map +1 -0
- package/dist/zspec/utils.d.ts +14 -0
- package/dist/zspec/utils.d.ts.map +1 -0
- package/dist/zspec/utils.js +29 -0
- package/dist/zspec/utils.js.map +1 -0
- package/dist/{zcl → zspec/zcl}/buffaloZcl.d.ts +5 -5
- package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -0
- package/dist/{zcl → zspec/zcl}/buffaloZcl.js +213 -189
- package/dist/zspec/zcl/buffaloZcl.js.map +1 -0
- package/dist/zspec/zcl/definition/cluster.d.ts +3 -0
- package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -0
- package/dist/zspec/zcl/definition/cluster.js +5500 -0
- package/dist/zspec/zcl/definition/cluster.js.map +1 -0
- package/dist/zspec/zcl/definition/consts.d.ts +9 -0
- package/dist/zspec/zcl/definition/consts.d.ts.map +1 -0
- package/dist/zspec/zcl/definition/consts.js +27 -0
- package/dist/zspec/zcl/definition/consts.js.map +1 -0
- package/dist/{zcl/definition/dataType.d.ts → zspec/zcl/definition/enums.d.ts} +57 -3
- package/dist/zspec/zcl/definition/enums.d.ts.map +1 -0
- package/dist/{zcl/definition/dataType.js → zspec/zcl/definition/enums.js} +64 -3
- package/dist/zspec/zcl/definition/enums.js.map +1 -0
- package/dist/{zcl → zspec/zcl}/definition/foundation.d.ts +2 -2
- package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -0
- package/dist/zspec/zcl/definition/foundation.js +241 -0
- package/dist/zspec/zcl/definition/foundation.js.map +1 -0
- package/dist/{zcl → zspec/zcl}/definition/manufacturerCode.d.ts +1 -2
- package/dist/zspec/zcl/definition/manufacturerCode.d.ts.map +1 -0
- package/dist/{zcl → zspec/zcl}/definition/manufacturerCode.js +2 -2
- package/dist/zspec/zcl/definition/manufacturerCode.js.map +1 -0
- package/dist/{zcl → zspec/zcl}/definition/status.d.ts +1 -2
- package/dist/zspec/zcl/definition/status.d.ts.map +1 -0
- package/dist/{zcl → zspec/zcl}/definition/status.js +2 -2
- package/dist/zspec/zcl/definition/status.js.map +1 -0
- package/dist/zspec/zcl/definition/tstype.d.ts +114 -0
- package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -0
- package/dist/zspec/zcl/definition/tstype.js.map +1 -0
- package/dist/zspec/zcl/index.d.ts +11 -0
- package/dist/zspec/zcl/index.d.ts.map +1 -0
- package/dist/zspec/zcl/index.js +47 -0
- package/dist/zspec/zcl/index.js.map +1 -0
- package/dist/zspec/zcl/utils.d.ts +7 -0
- package/dist/zspec/zcl/utils.d.ts.map +1 -0
- package/dist/zspec/zcl/utils.js +234 -0
- package/dist/zspec/zcl/utils.js.map +1 -0
- package/dist/{zcl → zspec/zcl}/zclFrame.d.ts +10 -12
- package/dist/zspec/zcl/zclFrame.d.ts.map +1 -0
- package/dist/{zcl → zspec/zcl}/zclFrame.js +69 -59
- package/dist/zspec/zcl/zclFrame.js.map +1 -0
- package/dist/{zcl → zspec/zcl}/zclHeader.d.ts +3 -4
- package/dist/zspec/zcl/zclHeader.d.ts.map +1 -0
- package/dist/{zcl → zspec/zcl}/zclHeader.js +33 -20
- package/dist/zspec/zcl/zclHeader.js.map +1 -0
- package/dist/zspec/zcl/zclStatusError.d.ts +6 -0
- package/dist/zspec/zcl/zclStatusError.d.ts.map +1 -0
- package/dist/zspec/zcl/zclStatusError.js +13 -0
- package/dist/zspec/zcl/zclStatusError.js.map +1 -0
- package/dist/zspec/zdo/buffaloZdo.d.ts +438 -0
- package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -0
- package/dist/zspec/zdo/buffaloZdo.js +1892 -0
- package/dist/zspec/zdo/buffaloZdo.js.map +1 -0
- package/dist/zspec/zdo/definition/clusters.d.ts +624 -0
- package/dist/zspec/zdo/definition/clusters.d.ts.map +1 -0
- package/dist/zspec/zdo/definition/clusters.js +687 -0
- package/dist/zspec/zdo/definition/clusters.js.map +1 -0
- package/dist/zspec/zdo/definition/consts.d.ts +13 -0
- package/dist/zspec/zdo/definition/consts.d.ts.map +1 -0
- package/dist/zspec/zdo/definition/consts.js +16 -0
- package/dist/zspec/zdo/definition/consts.js.map +1 -0
- package/dist/zspec/zdo/definition/enums.d.ts +75 -0
- package/dist/zspec/zdo/definition/enums.d.ts.map +1 -0
- package/dist/zspec/zdo/definition/enums.js +97 -0
- package/dist/zspec/zdo/definition/enums.js.map +1 -0
- package/dist/zspec/zdo/definition/status.d.ts +99 -0
- package/dist/zspec/zdo/definition/status.d.ts.map +1 -0
- package/dist/zspec/zdo/definition/status.js +109 -0
- package/dist/zspec/zdo/definition/status.js.map +1 -0
- package/dist/zspec/zdo/definition/tstypes.d.ts +787 -0
- package/dist/zspec/zdo/definition/tstypes.d.ts.map +1 -0
- package/dist/zspec/zdo/definition/tstypes.js +3 -0
- package/dist/zspec/zdo/definition/tstypes.js.map +1 -0
- package/dist/zspec/zdo/index.d.ts +7 -0
- package/dist/zspec/zdo/index.d.ts.map +1 -0
- package/dist/zspec/zdo/index.js +39 -0
- package/dist/zspec/zdo/index.js.map +1 -0
- package/dist/zspec/zdo/utils.d.ts +25 -0
- package/dist/zspec/zdo/utils.d.ts.map +1 -0
- package/dist/zspec/zdo/utils.js +75 -0
- package/dist/zspec/zdo/utils.js.map +1 -0
- package/dist/zspec/zdo/zdoStatusError.d.ts +6 -0
- package/dist/zspec/zdo/zdoStatusError.d.ts.map +1 -0
- package/dist/zspec/zdo/zdoStatusError.js +13 -0
- package/dist/zspec/zdo/zdoStatusError.js.map +1 -0
- package/package.json +4 -4
- package/dist/zcl/buffaloZcl.d.ts.map +0 -1
- package/dist/zcl/buffaloZcl.js.map +0 -1
- package/dist/zcl/definition/buffaloZclDataType.d.ts +0 -18
- package/dist/zcl/definition/buffaloZclDataType.d.ts.map +0 -1
- package/dist/zcl/definition/buffaloZclDataType.js +0 -21
- package/dist/zcl/definition/buffaloZclDataType.js.map +0 -1
- package/dist/zcl/definition/cluster.d.ts +0 -4
- package/dist/zcl/definition/cluster.d.ts.map +0 -1
- package/dist/zcl/definition/cluster.js +0 -5504
- package/dist/zcl/definition/cluster.js.map +0 -1
- package/dist/zcl/definition/dataType.d.ts.map +0 -1
- package/dist/zcl/definition/dataType.js.map +0 -1
- package/dist/zcl/definition/direction.d.ts +0 -6
- package/dist/zcl/definition/direction.d.ts.map +0 -1
- package/dist/zcl/definition/direction.js +0 -9
- package/dist/zcl/definition/direction.js.map +0 -1
- package/dist/zcl/definition/endpointDeviceType.d.ts +0 -5
- package/dist/zcl/definition/endpointDeviceType.d.ts.map +0 -1
- package/dist/zcl/definition/endpointDeviceType.js +0 -16
- package/dist/zcl/definition/endpointDeviceType.js.map +0 -1
- package/dist/zcl/definition/foundation.d.ts.map +0 -1
- package/dist/zcl/definition/foundation.js +0 -247
- package/dist/zcl/definition/foundation.js.map +0 -1
- package/dist/zcl/definition/frameControl.d.ts +0 -11
- package/dist/zcl/definition/frameControl.d.ts.map +0 -1
- package/dist/zcl/definition/frameControl.js.map +0 -1
- package/dist/zcl/definition/frameType.d.ts +0 -6
- package/dist/zcl/definition/frameType.d.ts.map +0 -1
- package/dist/zcl/definition/frameType.js +0 -9
- package/dist/zcl/definition/frameType.js.map +0 -1
- package/dist/zcl/definition/index.d.ts +0 -14
- package/dist/zcl/definition/index.d.ts.map +0 -1
- package/dist/zcl/definition/index.js +0 -52
- package/dist/zcl/definition/index.js.map +0 -1
- package/dist/zcl/definition/manufacturerCode.d.ts.map +0 -1
- package/dist/zcl/definition/manufacturerCode.js.map +0 -1
- package/dist/zcl/definition/powerSource.d.ts +0 -5
- package/dist/zcl/definition/powerSource.d.ts.map +0 -1
- package/dist/zcl/definition/powerSource.js +0 -13
- package/dist/zcl/definition/powerSource.js.map +0 -1
- package/dist/zcl/definition/status.d.ts.map +0 -1
- package/dist/zcl/definition/status.js.map +0 -1
- package/dist/zcl/definition/tstype.d.ts +0 -35
- package/dist/zcl/definition/tstype.d.ts.map +0 -1
- package/dist/zcl/definition/tstype.js.map +0 -1
- package/dist/zcl/index.d.ts +0 -17
- package/dist/zcl/index.d.ts.map +0 -1
- package/dist/zcl/index.js +0 -58
- package/dist/zcl/index.js.map +0 -1
- package/dist/zcl/tstype.d.ts +0 -75
- package/dist/zcl/tstype.d.ts.map +0 -1
- package/dist/zcl/tstype.js +0 -20
- package/dist/zcl/tstype.js.map +0 -1
- package/dist/zcl/utils.d.ts +0 -10
- package/dist/zcl/utils.d.ts.map +0 -1
- package/dist/zcl/utils.js +0 -179
- package/dist/zcl/utils.js.map +0 -1
- package/dist/zcl/zclFrame.d.ts.map +0 -1
- package/dist/zcl/zclFrame.js.map +0 -1
- package/dist/zcl/zclHeader.d.ts.map +0 -1
- package/dist/zcl/zclHeader.js.map +0 -1
- package/dist/zcl/zclStatusError.d.ts +0 -6
- package/dist/zcl/zclStatusError.d.ts.map +0 -1
- package/dist/zcl/zclStatusError.js +0 -15
- package/dist/zcl/zclStatusError.js.map +0 -1
- /package/dist/{zcl → zspec/zcl}/definition/tstype.js +0 -0
|
@@ -23,19 +23,19 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const definition_1 = require("./definition");
|
|
30
|
-
const tstype_1 = require("./tstype");
|
|
26
|
+
exports.BuffaloZcl = void 0;
|
|
27
|
+
const enums_1 = require("./definition/enums");
|
|
28
|
+
const buffalo_1 = require("../../buffalo");
|
|
31
29
|
const Utils = __importStar(require("./utils"));
|
|
32
|
-
const
|
|
30
|
+
const utils_1 = require("../../utils");
|
|
31
|
+
const logger_1 = require("../../utils/logger");
|
|
32
|
+
const NS = 'zh:zcl:buffalo';
|
|
33
33
|
const SEC_KEY_LENGTH = 16;
|
|
34
|
-
const
|
|
35
|
-
6: [
|
|
36
|
-
8: [
|
|
37
|
-
258: [
|
|
38
|
-
768: [
|
|
34
|
+
const EXTENSION_FIELD_SETS_DATA_TYPE = {
|
|
35
|
+
6: [enums_1.DataType.UINT8],
|
|
36
|
+
8: [enums_1.DataType.UINT8],
|
|
37
|
+
258: [enums_1.DataType.UINT8, enums_1.DataType.UINT8],
|
|
38
|
+
768: [enums_1.DataType.UINT16, enums_1.DataType.UINT16, enums_1.DataType.UINT16, enums_1.DataType.UINT8, enums_1.DataType.UINT8, enums_1.DataType.UINT8, enums_1.DataType.UINT16, enums_1.DataType.UINT16],
|
|
39
39
|
};
|
|
40
40
|
class BuffaloZcl extends buffalo_1.Buffalo {
|
|
41
41
|
// TODO: remove read/write int "SB" versions in favor of plain numbers, implemented in buffalo.ts
|
|
@@ -58,6 +58,7 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
58
58
|
return [msb, lsb];
|
|
59
59
|
}
|
|
60
60
|
writeUInt56SB(value) {
|
|
61
|
+
// XXX: [uint32, uint32] param not following read return pattern [uint32, uint16, uint8]
|
|
61
62
|
const temp = Buffer.alloc(8);
|
|
62
63
|
temp.writeUInt32LE(value[1], 0);
|
|
63
64
|
temp.writeUInt32LE(value[0], 4);
|
|
@@ -74,7 +75,7 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
74
75
|
return this.readIeeeAddr();
|
|
75
76
|
}
|
|
76
77
|
writeUInt64SB(value) {
|
|
77
|
-
// XXX: not following pattern, should pass as number[]
|
|
78
|
+
// XXX: not following pattern, should pass as number[uint32, uint32]
|
|
78
79
|
const msb = parseInt(value.slice(2, 10), 16);
|
|
79
80
|
const lsb = parseInt(value.slice(10), 16);
|
|
80
81
|
this.writeUInt32(lsb);
|
|
@@ -126,31 +127,13 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
126
127
|
this.writeUtf8String(value);
|
|
127
128
|
}
|
|
128
129
|
else {
|
|
130
|
+
// XXX: value.length not written?
|
|
129
131
|
this.writeBuffer(value, value.length);
|
|
130
132
|
}
|
|
131
133
|
}
|
|
132
|
-
readCharStr(
|
|
134
|
+
readCharStr() {
|
|
133
135
|
const length = this.readUInt8();
|
|
134
|
-
|
|
135
|
-
if (options.attrId === 65281) {
|
|
136
|
-
const value = {};
|
|
137
|
-
if (length === 0xFF) {
|
|
138
|
-
return value;
|
|
139
|
-
}
|
|
140
|
-
// Xiaomi struct parsing
|
|
141
|
-
for (let i = 0; i < length; i++) {
|
|
142
|
-
const index = this.readUInt8();
|
|
143
|
-
const dataType = this.readUInt8();
|
|
144
|
-
value[index] = this.read(dataType, {});
|
|
145
|
-
if (this.position === this.buffer.length) {
|
|
146
|
-
break;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return value;
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
return (length < 0xFF) ? this.readUtf8String(length) : '';
|
|
153
|
-
}
|
|
136
|
+
return (length < 0xFF) ? this.readUtf8String(length) : '';
|
|
154
137
|
}
|
|
155
138
|
writeLongOctetStr(value) {
|
|
156
139
|
// TODO: this does not allow "non-value" 0xFF
|
|
@@ -171,7 +154,7 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
171
154
|
return (length < 0xFFFF) ? this.readUtf8String(length) : ''; // non-value
|
|
172
155
|
}
|
|
173
156
|
writeArray(value) {
|
|
174
|
-
const elTypeNumeric = typeof value.elementType === 'number' ? value.elementType :
|
|
157
|
+
const elTypeNumeric = typeof value.elementType === 'number' ? value.elementType : enums_1.DataType[value.elementType];
|
|
175
158
|
this.writeUInt8(elTypeNumeric);
|
|
176
159
|
// TODO: this does not allow writing "non-value" 0xFFFF
|
|
177
160
|
this.writeUInt16(value.elements.length);
|
|
@@ -225,7 +208,12 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
225
208
|
const minutes = this.readUInt8();
|
|
226
209
|
const seconds = this.readUInt8();
|
|
227
210
|
const hundredths = this.readUInt8();
|
|
228
|
-
return {
|
|
211
|
+
return {
|
|
212
|
+
hours: hours < 0xFF ? hours : null,
|
|
213
|
+
minutes: minutes < 0xFF ? minutes : null,
|
|
214
|
+
seconds: seconds < 0xFF ? seconds : null,
|
|
215
|
+
hundredths: hundredths < 0xFF ? hundredths : null,
|
|
216
|
+
};
|
|
229
217
|
}
|
|
230
218
|
writeDate(value) {
|
|
231
219
|
this.writeUInt8(value.year != null ? (value.year - 1900) : 0xFF);
|
|
@@ -234,11 +222,16 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
234
222
|
this.writeUInt8(value.dayOfWeek ?? 0xFF);
|
|
235
223
|
}
|
|
236
224
|
readDate() {
|
|
237
|
-
const year = this.readUInt8()
|
|
225
|
+
const year = this.readUInt8();
|
|
238
226
|
const month = this.readUInt8();
|
|
239
227
|
const dayOfMonth = this.readUInt8();
|
|
240
228
|
const dayOfWeek = this.readUInt8();
|
|
241
|
-
return {
|
|
229
|
+
return {
|
|
230
|
+
year: year < 0xFF ? year + 1900 : null,
|
|
231
|
+
month: month < 0xFF ? month : null,
|
|
232
|
+
dayOfMonth: dayOfMonth < 0xFF ? dayOfMonth : null,
|
|
233
|
+
dayOfWeek: dayOfWeek < 0xFF ? dayOfWeek : null,
|
|
234
|
+
};
|
|
242
235
|
}
|
|
243
236
|
//--- BuffaloZclDataType
|
|
244
237
|
writeListZoneInfo(values) {
|
|
@@ -261,13 +254,16 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
261
254
|
for (const value of values) {
|
|
262
255
|
this.writeUInt16(value.clstId);
|
|
263
256
|
this.writeUInt8(value.len);
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
257
|
+
let index = 0;
|
|
258
|
+
for (const entry of value.extField) {
|
|
259
|
+
this.write(EXTENSION_FIELD_SETS_DATA_TYPE[value.clstId][index], entry, {});
|
|
260
|
+
index++;
|
|
261
|
+
}
|
|
267
262
|
}
|
|
268
263
|
}
|
|
269
264
|
readExtensionFieldSets() {
|
|
270
265
|
const value = [];
|
|
266
|
+
// XXX: doesn't work if buffer has more unrelated fields after this one
|
|
271
267
|
while (this.isMore()) {
|
|
272
268
|
const clstId = this.readUInt16();
|
|
273
269
|
const len = this.readUInt8();
|
|
@@ -275,7 +271,7 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
275
271
|
let index = 0;
|
|
276
272
|
const extField = [];
|
|
277
273
|
while (this.getPosition() < end) {
|
|
278
|
-
extField.push(this.read(
|
|
274
|
+
extField.push(this.read(EXTENSION_FIELD_SETS_DATA_TYPE[clstId][index], {}));
|
|
279
275
|
index++;
|
|
280
276
|
}
|
|
281
277
|
value.push({ extField, clstId, len });
|
|
@@ -440,13 +436,14 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
440
436
|
attribute = cluster.getAttribute(attributeID).name;
|
|
441
437
|
}
|
|
442
438
|
catch {
|
|
439
|
+
// this is spammy because of the many manufacturer-specific attributes not currently used
|
|
443
440
|
logger_1.logger.debug("Unknown attribute " + attributeID + " in cluster " + cluster.name, NS);
|
|
444
441
|
}
|
|
445
442
|
frame.attributes[attribute] = this.read(type, options);
|
|
446
443
|
}
|
|
447
444
|
return frame;
|
|
448
445
|
}
|
|
449
|
-
else if (this.
|
|
446
|
+
else if (this.isMore()) {
|
|
450
447
|
return { raw: this.buffer.subarray(this.position) };
|
|
451
448
|
}
|
|
452
449
|
else {
|
|
@@ -456,7 +453,7 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
456
453
|
writeStructuredSelector(value) {
|
|
457
454
|
if (value != null) {
|
|
458
455
|
const indexes = value.indexes || [];
|
|
459
|
-
const indicatorType = value.indicatorType ||
|
|
456
|
+
const indicatorType = value.indicatorType || enums_1.StructuredIndicatorType.Whole;
|
|
460
457
|
const indicator = indexes.length + indicatorType;
|
|
461
458
|
this.writeUInt8(indicator);
|
|
462
459
|
for (const index of indexes) {
|
|
@@ -469,9 +466,9 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
469
466
|
const indicator = this.readUInt8();
|
|
470
467
|
if (indicator === 0) {
|
|
471
468
|
// no indexes, whole attribute value is to be read
|
|
472
|
-
return { indicatorType:
|
|
469
|
+
return { indicatorType: enums_1.StructuredIndicatorType.Whole };
|
|
473
470
|
}
|
|
474
|
-
else {
|
|
471
|
+
else if (indicator < enums_1.StructuredIndicatorType.WriteAdd) {
|
|
475
472
|
const indexes = [];
|
|
476
473
|
for (let i = 0; i < indicator; i++) {
|
|
477
474
|
const index = this.readUInt16();
|
|
@@ -479,12 +476,16 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
479
476
|
}
|
|
480
477
|
return { indexes };
|
|
481
478
|
}
|
|
479
|
+
else {
|
|
480
|
+
throw new Error(`Read structured selector was outside [0-15] range.`);
|
|
481
|
+
}
|
|
482
482
|
}
|
|
483
483
|
writeListTuyaDataPointValues(dpValues) {
|
|
484
484
|
for (const dpValue of dpValues) {
|
|
485
485
|
this.writeUInt8(dpValue.dp);
|
|
486
486
|
this.writeUInt8(dpValue.datatype);
|
|
487
487
|
const dataLen = dpValue.data.length;
|
|
488
|
+
// UInt16BE
|
|
488
489
|
this.writeUInt8((dataLen >> 8) & 0xFF);
|
|
489
490
|
this.writeUInt8(dataLen & 0xFF);
|
|
490
491
|
this.writeBuffer(dpValue.data, dataLen);
|
|
@@ -492,6 +493,7 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
492
493
|
}
|
|
493
494
|
readListTuyaDataPointValues() {
|
|
494
495
|
const value = [];
|
|
496
|
+
// XXX: doesn't work if buffer has more unrelated fields after this one
|
|
495
497
|
while (this.isMore()) {
|
|
496
498
|
try {
|
|
497
499
|
const dp = this.readUInt8();
|
|
@@ -518,10 +520,9 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
518
520
|
const value = [];
|
|
519
521
|
const len = this.readUInt8();
|
|
520
522
|
for (let i = 0; i < len; i++) {
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
});
|
|
523
|
+
const groupId = this.readUInt16();
|
|
524
|
+
const zoneNum = this.readUInt8();
|
|
525
|
+
value.push({ groupId, zoneNum });
|
|
525
526
|
}
|
|
526
527
|
return value;
|
|
527
528
|
}
|
|
@@ -534,82 +535,101 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
534
535
|
this.position += 3;
|
|
535
536
|
return value;
|
|
536
537
|
}
|
|
538
|
+
// private writeMiStruct(value: Record<number, number | number[]>): {
|
|
539
|
+
// XXX: read only?
|
|
540
|
+
// }
|
|
541
|
+
readMiStruct() {
|
|
542
|
+
const length = this.readUInt8();
|
|
543
|
+
const value = {};
|
|
544
|
+
if (length === 0xFF) {
|
|
545
|
+
return value;
|
|
546
|
+
}
|
|
547
|
+
for (let i = 0; i < length; i++) {
|
|
548
|
+
const index = this.readUInt8();
|
|
549
|
+
const dataType = this.readUInt8();
|
|
550
|
+
value[index] = this.read(dataType, {});
|
|
551
|
+
if (this.position === this.buffer.length) {
|
|
552
|
+
break;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
return value;
|
|
556
|
+
}
|
|
537
557
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
538
558
|
write(type, value, options) {
|
|
539
559
|
switch (type) {
|
|
540
|
-
case
|
|
541
|
-
case
|
|
560
|
+
case enums_1.DataType.NO_DATA:
|
|
561
|
+
case enums_1.DataType.UNKNOWN: {
|
|
542
562
|
return; // nothing to write
|
|
543
563
|
}
|
|
544
|
-
case
|
|
545
|
-
case
|
|
546
|
-
case
|
|
547
|
-
case
|
|
548
|
-
case
|
|
564
|
+
case enums_1.DataType.DATA8:
|
|
565
|
+
case enums_1.DataType.BOOLEAN:
|
|
566
|
+
case enums_1.DataType.BITMAP8:
|
|
567
|
+
case enums_1.DataType.UINT8:
|
|
568
|
+
case enums_1.DataType.ENUM8: {
|
|
549
569
|
return this.writeUInt8(value);
|
|
550
570
|
}
|
|
551
|
-
case
|
|
552
|
-
case
|
|
553
|
-
case
|
|
554
|
-
case
|
|
555
|
-
case
|
|
556
|
-
case
|
|
571
|
+
case enums_1.DataType.DATA16:
|
|
572
|
+
case enums_1.DataType.BITMAP16:
|
|
573
|
+
case enums_1.DataType.UINT16:
|
|
574
|
+
case enums_1.DataType.ENUM16:
|
|
575
|
+
case enums_1.DataType.CLUSTER_ID:
|
|
576
|
+
case enums_1.DataType.ATTR_ID: {
|
|
557
577
|
return this.writeUInt16(value);
|
|
558
578
|
}
|
|
559
|
-
case
|
|
560
|
-
case
|
|
561
|
-
case
|
|
579
|
+
case enums_1.DataType.DATA24:
|
|
580
|
+
case enums_1.DataType.BITMAP24:
|
|
581
|
+
case enums_1.DataType.UINT24: {
|
|
562
582
|
return this.writeUInt24(value);
|
|
563
583
|
}
|
|
564
|
-
case
|
|
565
|
-
case
|
|
566
|
-
case
|
|
567
|
-
case
|
|
568
|
-
case
|
|
584
|
+
case enums_1.DataType.DATA32:
|
|
585
|
+
case enums_1.DataType.BITMAP32:
|
|
586
|
+
case enums_1.DataType.UINT32:
|
|
587
|
+
case enums_1.DataType.UTC:
|
|
588
|
+
case enums_1.DataType.BAC_OID: {
|
|
569
589
|
return this.writeUInt32(value);
|
|
570
590
|
}
|
|
571
|
-
case
|
|
572
|
-
case
|
|
573
|
-
case
|
|
591
|
+
case enums_1.DataType.DATA40:
|
|
592
|
+
case enums_1.DataType.BITMAP40:
|
|
593
|
+
case enums_1.DataType.UINT40: {
|
|
574
594
|
return this.writeUInt40SB(value);
|
|
575
595
|
}
|
|
576
|
-
case
|
|
577
|
-
case
|
|
578
|
-
case
|
|
596
|
+
case enums_1.DataType.DATA48:
|
|
597
|
+
case enums_1.DataType.BITMAP48:
|
|
598
|
+
case enums_1.DataType.UINT48: {
|
|
579
599
|
return this.writeUInt48SB(value);
|
|
580
600
|
}
|
|
581
|
-
case
|
|
582
|
-
case
|
|
583
|
-
case
|
|
601
|
+
case enums_1.DataType.DATA56:
|
|
602
|
+
case enums_1.DataType.BITMAP56:
|
|
603
|
+
case enums_1.DataType.UINT56: {
|
|
584
604
|
return this.writeUInt56SB(value);
|
|
585
605
|
}
|
|
586
|
-
case
|
|
587
|
-
case
|
|
588
|
-
case
|
|
606
|
+
case enums_1.DataType.DATA64:
|
|
607
|
+
case enums_1.DataType.BITMAP64:
|
|
608
|
+
case enums_1.DataType.UINT64: {
|
|
589
609
|
return this.writeUInt64SB(value);
|
|
590
610
|
}
|
|
591
|
-
case
|
|
611
|
+
case enums_1.DataType.INT8: {
|
|
592
612
|
return this.writeInt8(value);
|
|
593
613
|
}
|
|
594
|
-
case
|
|
614
|
+
case enums_1.DataType.INT16: {
|
|
595
615
|
return this.writeInt16(value);
|
|
596
616
|
}
|
|
597
|
-
case
|
|
617
|
+
case enums_1.DataType.INT24: {
|
|
598
618
|
return this.writeInt24(value);
|
|
599
619
|
}
|
|
600
|
-
case
|
|
620
|
+
case enums_1.DataType.INT32: {
|
|
601
621
|
return this.writeInt32(value);
|
|
602
622
|
}
|
|
603
|
-
case
|
|
623
|
+
case enums_1.DataType.INT40: {
|
|
604
624
|
return this.writeInt40SB(value);
|
|
605
625
|
}
|
|
606
|
-
case
|
|
626
|
+
case enums_1.DataType.INT48: {
|
|
607
627
|
return this.writeInt48(value);
|
|
608
628
|
}
|
|
609
|
-
case
|
|
629
|
+
case enums_1.DataType.INT56: {
|
|
610
630
|
return this.writeInt56SB(value);
|
|
611
631
|
}
|
|
612
|
-
case
|
|
632
|
+
case enums_1.DataType.INT64: {
|
|
613
633
|
return this.writeInt64SB(value);
|
|
614
634
|
}
|
|
615
635
|
// case DataType.SEMI_PREC: {
|
|
@@ -617,45 +637,45 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
617
637
|
// // not currently used
|
|
618
638
|
// return this.writeSemiFloatLE(value);
|
|
619
639
|
// }
|
|
620
|
-
case
|
|
640
|
+
case enums_1.DataType.SINGLE_PREC: {
|
|
621
641
|
return this.writeFloatLE(value);
|
|
622
642
|
}
|
|
623
|
-
case
|
|
643
|
+
case enums_1.DataType.DOUBLE_PREC: {
|
|
624
644
|
return this.writeDoubleLE(value);
|
|
625
645
|
}
|
|
626
|
-
case
|
|
646
|
+
case enums_1.DataType.OCTET_STR: {
|
|
627
647
|
return this.writeOctetStr(value);
|
|
628
648
|
}
|
|
629
|
-
case
|
|
649
|
+
case enums_1.DataType.CHAR_STR: {
|
|
630
650
|
return this.writeCharStr(value);
|
|
631
651
|
}
|
|
632
|
-
case
|
|
652
|
+
case enums_1.DataType.LONG_OCTET_STR: {
|
|
633
653
|
return this.writeLongOctetStr(value);
|
|
634
654
|
}
|
|
635
|
-
case
|
|
655
|
+
case enums_1.DataType.LONG_CHAR_STR: {
|
|
636
656
|
return this.writeLongCharStr(value);
|
|
637
657
|
}
|
|
638
|
-
case
|
|
639
|
-
case
|
|
640
|
-
case
|
|
658
|
+
case enums_1.DataType.ARRAY:
|
|
659
|
+
case enums_1.DataType.SET:
|
|
660
|
+
case enums_1.DataType.BAG: {
|
|
641
661
|
return this.writeArray(value);
|
|
642
662
|
}
|
|
643
|
-
case
|
|
663
|
+
case enums_1.DataType.STRUCT: {
|
|
644
664
|
return this.writeStruct(value);
|
|
645
665
|
}
|
|
646
|
-
case
|
|
666
|
+
case enums_1.DataType.TOD: {
|
|
647
667
|
return this.writeToD(value);
|
|
648
668
|
}
|
|
649
|
-
case
|
|
669
|
+
case enums_1.DataType.DATE: {
|
|
650
670
|
return this.writeDate(value);
|
|
651
671
|
}
|
|
652
|
-
case
|
|
672
|
+
case enums_1.DataType.IEEE_ADDR: {
|
|
653
673
|
return this.writeIeeeAddr(value);
|
|
654
674
|
}
|
|
655
|
-
case
|
|
675
|
+
case enums_1.DataType.SEC_KEY: {
|
|
656
676
|
return this.writeBuffer(value, SEC_KEY_LENGTH);
|
|
657
677
|
}
|
|
658
|
-
case
|
|
678
|
+
case enums_1.BuffaloZclDataType.USE_DATA_TYPE: {
|
|
659
679
|
if (options.dataType == null) {
|
|
660
680
|
if (Buffer.isBuffer(value) || (0, utils_1.IsNumberArray)(value)) {
|
|
661
681
|
return this.writeBuffer(value, value.length);
|
|
@@ -666,43 +686,44 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
666
686
|
}
|
|
667
687
|
return this.write(options.dataType, value, options);
|
|
668
688
|
}
|
|
669
|
-
case
|
|
689
|
+
case enums_1.BuffaloZclDataType.LIST_UINT8: {
|
|
670
690
|
return this.writeListUInt8(value);
|
|
671
691
|
}
|
|
672
|
-
case
|
|
692
|
+
case enums_1.BuffaloZclDataType.LIST_UINT16: {
|
|
673
693
|
return this.writeListUInt16(value);
|
|
674
694
|
}
|
|
675
|
-
case
|
|
695
|
+
case enums_1.BuffaloZclDataType.LIST_UINT24: {
|
|
676
696
|
return this.writeListUInt24(value);
|
|
677
697
|
}
|
|
678
|
-
case
|
|
698
|
+
case enums_1.BuffaloZclDataType.LIST_UINT32: {
|
|
679
699
|
return this.writeListUInt32(value);
|
|
680
700
|
}
|
|
681
|
-
case
|
|
701
|
+
case enums_1.BuffaloZclDataType.LIST_ZONEINFO: {
|
|
682
702
|
return this.writeListZoneInfo(value);
|
|
683
703
|
}
|
|
684
|
-
case
|
|
704
|
+
case enums_1.BuffaloZclDataType.EXTENSION_FIELD_SETS: {
|
|
685
705
|
return this.writeExtensionFieldSets(value);
|
|
686
706
|
}
|
|
687
|
-
case
|
|
707
|
+
case enums_1.BuffaloZclDataType.LIST_THERMO_TRANSITIONS: {
|
|
688
708
|
return this.writeListThermoTransitions(value);
|
|
689
709
|
}
|
|
690
|
-
case
|
|
710
|
+
case enums_1.BuffaloZclDataType.BUFFER: {
|
|
711
|
+
// XXX: inconsistent with read that allows partial with options.length, here always "whole"
|
|
691
712
|
return this.writeBuffer(value, value.length);
|
|
692
713
|
}
|
|
693
|
-
case
|
|
714
|
+
case enums_1.BuffaloZclDataType.GDP_FRAME: {
|
|
694
715
|
return this.writeGdpFrame(value);
|
|
695
716
|
}
|
|
696
|
-
case
|
|
717
|
+
case enums_1.BuffaloZclDataType.STRUCTURED_SELECTOR: {
|
|
697
718
|
return this.writeStructuredSelector(value);
|
|
698
719
|
}
|
|
699
|
-
case
|
|
720
|
+
case enums_1.BuffaloZclDataType.LIST_TUYA_DATAPOINT_VALUES: {
|
|
700
721
|
return this.writeListTuyaDataPointValues(value);
|
|
701
722
|
}
|
|
702
|
-
case
|
|
723
|
+
case enums_1.BuffaloZclDataType.LIST_MIBOXER_ZONES: {
|
|
703
724
|
return this.writeListMiboxerZones(value);
|
|
704
725
|
}
|
|
705
|
-
case
|
|
726
|
+
case enums_1.BuffaloZclDataType.BIG_ENDIAN_UINT24: {
|
|
706
727
|
return this.writeBigEndianUInt24(value);
|
|
707
728
|
}
|
|
708
729
|
default: {
|
|
@@ -718,79 +739,79 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
718
739
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
719
740
|
read(type, options) {
|
|
720
741
|
switch (type) {
|
|
721
|
-
case
|
|
722
|
-
case
|
|
742
|
+
case enums_1.DataType.NO_DATA:
|
|
743
|
+
case enums_1.DataType.UNKNOWN: {
|
|
723
744
|
return; // nothing to write
|
|
724
745
|
}
|
|
725
|
-
case
|
|
726
|
-
case
|
|
727
|
-
case
|
|
728
|
-
case
|
|
729
|
-
case
|
|
746
|
+
case enums_1.DataType.DATA8:
|
|
747
|
+
case enums_1.DataType.BOOLEAN:
|
|
748
|
+
case enums_1.DataType.BITMAP8:
|
|
749
|
+
case enums_1.DataType.UINT8:
|
|
750
|
+
case enums_1.DataType.ENUM8: {
|
|
730
751
|
return this.readUInt8();
|
|
731
752
|
}
|
|
732
|
-
case
|
|
733
|
-
case
|
|
734
|
-
case
|
|
735
|
-
case
|
|
736
|
-
case
|
|
737
|
-
case
|
|
753
|
+
case enums_1.DataType.DATA16:
|
|
754
|
+
case enums_1.DataType.BITMAP16:
|
|
755
|
+
case enums_1.DataType.UINT16:
|
|
756
|
+
case enums_1.DataType.ENUM16:
|
|
757
|
+
case enums_1.DataType.CLUSTER_ID:
|
|
758
|
+
case enums_1.DataType.ATTR_ID: {
|
|
738
759
|
return this.readUInt16();
|
|
739
760
|
}
|
|
740
|
-
case
|
|
741
|
-
case
|
|
742
|
-
case
|
|
761
|
+
case enums_1.DataType.DATA24:
|
|
762
|
+
case enums_1.DataType.BITMAP24:
|
|
763
|
+
case enums_1.DataType.UINT24: {
|
|
743
764
|
return this.readUInt24();
|
|
744
765
|
}
|
|
745
|
-
case
|
|
746
|
-
case
|
|
747
|
-
case
|
|
748
|
-
case
|
|
749
|
-
case
|
|
766
|
+
case enums_1.DataType.DATA32:
|
|
767
|
+
case enums_1.DataType.BITMAP32:
|
|
768
|
+
case enums_1.DataType.UINT32:
|
|
769
|
+
case enums_1.DataType.UTC:
|
|
770
|
+
case enums_1.DataType.BAC_OID: {
|
|
750
771
|
return this.readUInt32();
|
|
751
772
|
}
|
|
752
|
-
case
|
|
753
|
-
case
|
|
754
|
-
case
|
|
773
|
+
case enums_1.DataType.DATA40:
|
|
774
|
+
case enums_1.DataType.BITMAP40:
|
|
775
|
+
case enums_1.DataType.UINT40: {
|
|
755
776
|
return this.readUInt40SB();
|
|
756
777
|
}
|
|
757
|
-
case
|
|
758
|
-
case
|
|
759
|
-
case
|
|
778
|
+
case enums_1.DataType.DATA48:
|
|
779
|
+
case enums_1.DataType.BITMAP48:
|
|
780
|
+
case enums_1.DataType.UINT48: {
|
|
760
781
|
return this.readUInt48SB();
|
|
761
782
|
}
|
|
762
|
-
case
|
|
763
|
-
case
|
|
764
|
-
case
|
|
783
|
+
case enums_1.DataType.DATA56:
|
|
784
|
+
case enums_1.DataType.BITMAP56:
|
|
785
|
+
case enums_1.DataType.UINT56: {
|
|
765
786
|
return this.readUInt56SB();
|
|
766
787
|
}
|
|
767
|
-
case
|
|
768
|
-
case
|
|
769
|
-
case
|
|
788
|
+
case enums_1.DataType.DATA64:
|
|
789
|
+
case enums_1.DataType.BITMAP64:
|
|
790
|
+
case enums_1.DataType.UINT64: {
|
|
770
791
|
return this.readUInt64SB();
|
|
771
792
|
}
|
|
772
|
-
case
|
|
793
|
+
case enums_1.DataType.INT8: {
|
|
773
794
|
return this.readInt8();
|
|
774
795
|
}
|
|
775
|
-
case
|
|
796
|
+
case enums_1.DataType.INT16: {
|
|
776
797
|
return this.readInt16();
|
|
777
798
|
}
|
|
778
|
-
case
|
|
799
|
+
case enums_1.DataType.INT24: {
|
|
779
800
|
return this.readInt24();
|
|
780
801
|
}
|
|
781
|
-
case
|
|
802
|
+
case enums_1.DataType.INT32: {
|
|
782
803
|
return this.readInt32();
|
|
783
804
|
}
|
|
784
|
-
case
|
|
805
|
+
case enums_1.DataType.INT40: {
|
|
785
806
|
return this.readInt40SB();
|
|
786
807
|
}
|
|
787
|
-
case
|
|
808
|
+
case enums_1.DataType.INT48: {
|
|
788
809
|
return this.readInt48();
|
|
789
810
|
}
|
|
790
|
-
case
|
|
811
|
+
case enums_1.DataType.INT56: {
|
|
791
812
|
return this.readInt56SB();
|
|
792
813
|
}
|
|
793
|
-
case
|
|
814
|
+
case enums_1.DataType.INT64: {
|
|
794
815
|
return this.readInt64SB();
|
|
795
816
|
}
|
|
796
817
|
// case DataType.SEMI_PREC: {
|
|
@@ -798,108 +819,111 @@ class BuffaloZcl extends buffalo_1.Buffalo {
|
|
|
798
819
|
// // not currently used
|
|
799
820
|
// return this.readSemiFloatLE();
|
|
800
821
|
// }
|
|
801
|
-
case
|
|
822
|
+
case enums_1.DataType.SINGLE_PREC: {
|
|
802
823
|
return this.readFloatLE();
|
|
803
824
|
}
|
|
804
|
-
case
|
|
825
|
+
case enums_1.DataType.DOUBLE_PREC: {
|
|
805
826
|
return this.readDoubleLE();
|
|
806
827
|
}
|
|
807
|
-
case
|
|
828
|
+
case enums_1.DataType.OCTET_STR: {
|
|
808
829
|
return this.readOctetStr();
|
|
809
830
|
}
|
|
810
|
-
case
|
|
811
|
-
return this.readCharStr(
|
|
831
|
+
case enums_1.DataType.CHAR_STR: {
|
|
832
|
+
return this.readCharStr();
|
|
812
833
|
}
|
|
813
|
-
case
|
|
834
|
+
case enums_1.DataType.LONG_OCTET_STR: {
|
|
814
835
|
return this.readLongOctetStr();
|
|
815
836
|
}
|
|
816
|
-
case
|
|
837
|
+
case enums_1.DataType.LONG_CHAR_STR: {
|
|
817
838
|
return this.readLongCharStr();
|
|
818
839
|
}
|
|
819
|
-
case
|
|
820
|
-
case
|
|
821
|
-
case
|
|
840
|
+
case enums_1.DataType.ARRAY:
|
|
841
|
+
case enums_1.DataType.SET:
|
|
842
|
+
case enums_1.DataType.BAG: {
|
|
822
843
|
return this.readArray();
|
|
823
844
|
}
|
|
824
|
-
case
|
|
845
|
+
case enums_1.DataType.STRUCT: {
|
|
825
846
|
return this.readStruct();
|
|
826
847
|
}
|
|
827
|
-
case
|
|
848
|
+
case enums_1.DataType.TOD: {
|
|
828
849
|
return this.readToD();
|
|
829
850
|
}
|
|
830
|
-
case
|
|
851
|
+
case enums_1.DataType.DATE: {
|
|
831
852
|
return this.readDate();
|
|
832
853
|
}
|
|
833
|
-
case
|
|
854
|
+
case enums_1.DataType.IEEE_ADDR: {
|
|
834
855
|
return this.readIeeeAddr();
|
|
835
856
|
}
|
|
836
|
-
case
|
|
857
|
+
case enums_1.DataType.SEC_KEY: {
|
|
837
858
|
return this.readBuffer(SEC_KEY_LENGTH);
|
|
838
859
|
}
|
|
839
|
-
case
|
|
860
|
+
case enums_1.BuffaloZclDataType.USE_DATA_TYPE: {
|
|
840
861
|
if (options.dataType == null) {
|
|
841
862
|
return this.readBuffer(options.length ?? this.buffer.length);
|
|
842
863
|
}
|
|
843
864
|
return this.read(options.dataType, options);
|
|
844
865
|
}
|
|
845
|
-
case
|
|
866
|
+
case enums_1.BuffaloZclDataType.LIST_UINT8: {
|
|
846
867
|
if (options.length == null) {
|
|
847
868
|
throw new Error('Cannot read LIST_UINT8 without length option specified');
|
|
848
869
|
}
|
|
849
870
|
return this.readListUInt8(options.length);
|
|
850
871
|
}
|
|
851
|
-
case
|
|
872
|
+
case enums_1.BuffaloZclDataType.LIST_UINT16: {
|
|
852
873
|
if (options.length == null) {
|
|
853
874
|
throw new Error('Cannot read LIST_UINT16 without length option specified');
|
|
854
875
|
}
|
|
855
876
|
return this.readListUInt16(options.length);
|
|
856
877
|
}
|
|
857
|
-
case
|
|
878
|
+
case enums_1.BuffaloZclDataType.LIST_UINT24: {
|
|
858
879
|
if (options.length == null) {
|
|
859
880
|
throw new Error('Cannot read LIST_UINT24 without length option specified');
|
|
860
881
|
}
|
|
861
882
|
return this.readListUInt24(options.length);
|
|
862
883
|
}
|
|
863
|
-
case
|
|
884
|
+
case enums_1.BuffaloZclDataType.LIST_UINT32: {
|
|
864
885
|
if (options.length == null) {
|
|
865
886
|
throw new Error('Cannot read LIST_UINT32 without length option specified');
|
|
866
887
|
}
|
|
867
888
|
return this.readListUInt32(options.length);
|
|
868
889
|
}
|
|
869
|
-
case
|
|
890
|
+
case enums_1.BuffaloZclDataType.LIST_ZONEINFO: {
|
|
870
891
|
if (options.length == null) {
|
|
871
892
|
throw new Error('Cannot read LIST_ZONEINFO without length option specified');
|
|
872
893
|
}
|
|
873
894
|
return this.readListZoneInfo(options.length);
|
|
874
895
|
}
|
|
875
|
-
case
|
|
896
|
+
case enums_1.BuffaloZclDataType.EXTENSION_FIELD_SETS: {
|
|
876
897
|
return this.readExtensionFieldSets();
|
|
877
898
|
}
|
|
878
|
-
case
|
|
899
|
+
case enums_1.BuffaloZclDataType.LIST_THERMO_TRANSITIONS: {
|
|
879
900
|
return this.readListThermoTransitions(options);
|
|
880
901
|
}
|
|
881
|
-
case
|
|
902
|
+
case enums_1.BuffaloZclDataType.BUFFER: {
|
|
882
903
|
// if length option not specified, read the whole buffer
|
|
883
904
|
return this.readBuffer(options.length ?? this.buffer.length);
|
|
884
905
|
}
|
|
885
|
-
case
|
|
906
|
+
case enums_1.BuffaloZclDataType.GDP_FRAME: {
|
|
886
907
|
return this.readGdpFrame(options);
|
|
887
908
|
}
|
|
888
|
-
case
|
|
909
|
+
case enums_1.BuffaloZclDataType.STRUCTURED_SELECTOR: {
|
|
889
910
|
return this.readStructuredSelector();
|
|
890
911
|
}
|
|
891
|
-
case
|
|
912
|
+
case enums_1.BuffaloZclDataType.LIST_TUYA_DATAPOINT_VALUES: {
|
|
892
913
|
return this.readListTuyaDataPointValues();
|
|
893
914
|
}
|
|
894
|
-
case
|
|
915
|
+
case enums_1.BuffaloZclDataType.LIST_MIBOXER_ZONES: {
|
|
895
916
|
return this.readListMiboxerZones();
|
|
896
917
|
}
|
|
897
|
-
case
|
|
918
|
+
case enums_1.BuffaloZclDataType.BIG_ENDIAN_UINT24: {
|
|
898
919
|
return this.readBigEndianUInt24();
|
|
899
920
|
}
|
|
921
|
+
case enums_1.BuffaloZclDataType.MI_STRUCT: {
|
|
922
|
+
return this.readMiStruct();
|
|
923
|
+
}
|
|
900
924
|
}
|
|
901
925
|
throw new Error(`Read for '${type}' not available`);
|
|
902
926
|
}
|
|
903
927
|
}
|
|
904
|
-
exports.
|
|
928
|
+
exports.BuffaloZcl = BuffaloZcl;
|
|
905
929
|
//# sourceMappingURL=buffaloZcl.js.map
|