zigbee-herdsman 0.13.194 → 0.14.3
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/README.md +3 -0
- package/dist/adapter/deconz/adapter/deconzAdapter.js +2 -2
- package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +2 -2
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.js +87 -38
- package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
- package/dist/adapter/ezsp/driver/driver.d.ts +1 -0
- package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/driver.js +14 -5
- package/dist/adapter/ezsp/driver/driver.js.map +1 -1
- package/dist/adapter/ezsp/driver/ezsp.js +1 -1
- package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
- package/dist/controller/controller.d.ts +1 -0
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/controller/controller.js +20 -16
- package/dist/controller/controller.js.map +1 -1
- package/dist/controller/model/device.d.ts +4 -5
- package/dist/controller/model/device.d.ts.map +1 -1
- package/dist/controller/model/device.js +47 -49
- package/dist/controller/model/device.js.map +1 -1
- package/dist/controller/model/endpoint.d.ts +5 -6
- package/dist/controller/model/endpoint.d.ts.map +1 -1
- package/dist/controller/model/endpoint.js +35 -32
- package/dist/controller/model/endpoint.js.map +1 -1
- package/dist/controller/model/entity.d.ts +3 -1
- package/dist/controller/model/entity.d.ts.map +1 -1
- package/dist/controller/model/entity.js +5 -1
- package/dist/controller/model/entity.js.map +1 -1
- package/dist/controller/tstype.d.ts +2 -1
- package/dist/controller/tstype.d.ts.map +1 -1
- package/dist/controller/tstype.js.map +1 -1
- package/dist/zcl/definition/cluster.d.ts.map +1 -1
- package/dist/zcl/definition/cluster.js +28 -0
- package/dist/zcl/definition/cluster.js.map +1 -1
- package/npm-shrinkwrap.json +140 -140
- package/package.json +1 -1
|
@@ -38,7 +38,7 @@ const debug = {
|
|
|
38
38
|
log: (0, debug_1.default)('zigbee-herdsman:controller:device:log'),
|
|
39
39
|
};
|
|
40
40
|
class Device extends entity_1.default {
|
|
41
|
-
constructor(ID, type, ieeeAddr, networkAddress, manufacturerID, endpoints, manufacturerName, powerSource, modelID, applicationVersion, stackVersion, zclVersion, hardwareVersion, dateCode, softwareBuildID, interviewCompleted, meta, lastSeen,
|
|
41
|
+
constructor(ID, type, ieeeAddr, networkAddress, manufacturerID, endpoints, manufacturerName, powerSource, modelID, applicationVersion, stackVersion, zclVersion, hardwareVersion, dateCode, softwareBuildID, interviewCompleted, meta, lastSeen, defaultSendRequestWhen) {
|
|
42
42
|
super();
|
|
43
43
|
this.ID = ID;
|
|
44
44
|
this._type = type;
|
|
@@ -61,8 +61,7 @@ class Device extends entity_1.default {
|
|
|
61
61
|
this._skipTimeResponse = false;
|
|
62
62
|
this.meta = meta;
|
|
63
63
|
this._lastSeen = lastSeen;
|
|
64
|
-
this.
|
|
65
|
-
this.useImplicitCheckin = useImplicitCheckin;
|
|
64
|
+
this._defaultSendRequestWhen = defaultSendRequestWhen;
|
|
66
65
|
}
|
|
67
66
|
// Getters/setters
|
|
68
67
|
get ieeeAddr() { return this._ieeeAddr; }
|
|
@@ -108,18 +107,15 @@ class Device extends entity_1.default {
|
|
|
108
107
|
set skipDefaultResponse(skipDefaultResponse) { this._skipDefaultResponse = skipDefaultResponse; }
|
|
109
108
|
get skipTimeResponse() { return this._skipTimeResponse; }
|
|
110
109
|
set skipTimeResponse(skipTimeResponse) { this._skipTimeResponse = skipTimeResponse; }
|
|
111
|
-
get
|
|
112
|
-
set
|
|
113
|
-
this.
|
|
114
|
-
for (const endpoint of this._endpoints) {
|
|
115
|
-
endpoint.defaultSendWhenActive = defaultSendWhenActive;
|
|
116
|
-
}
|
|
110
|
+
get defaultSendRequestWhen() { return this._defaultSendRequestWhen; }
|
|
111
|
+
set defaultSendRequestWhen(defaultSendRequestWhen) {
|
|
112
|
+
this._defaultSendRequestWhen = defaultSendRequestWhen;
|
|
117
113
|
}
|
|
118
114
|
createEndpoint(ID) {
|
|
119
115
|
if (this.getEndpoint(ID)) {
|
|
120
116
|
throw new Error(`Device '${this.ieeeAddr}' already has an endpoint '${ID}'`);
|
|
121
117
|
}
|
|
122
|
-
const endpoint = endpoint_1.default.create(ID, undefined, undefined, [], [], this.networkAddress, this.ieeeAddr
|
|
118
|
+
const endpoint = endpoint_1.default.create(ID, undefined, undefined, [], [], this.networkAddress, this.ieeeAddr);
|
|
123
119
|
this.endpoints.push(endpoint);
|
|
124
120
|
this.save();
|
|
125
121
|
return endpoint;
|
|
@@ -139,10 +135,7 @@ class Device extends entity_1.default {
|
|
|
139
135
|
return this.endpoints.find((d) => d.deviceID === deviceID);
|
|
140
136
|
}
|
|
141
137
|
implicitCheckin() {
|
|
142
|
-
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
this.endpoints.forEach(async (e) => e.sendPendingRequests());
|
|
138
|
+
this.endpoints.forEach(async (e) => e.sendPendingRequests(false));
|
|
146
139
|
}
|
|
147
140
|
updateLastSeen() {
|
|
148
141
|
this._lastSeen = Date.now();
|
|
@@ -205,12 +198,12 @@ class Device extends entity_1.default {
|
|
|
205
198
|
fastPollTimeout: 0,
|
|
206
199
|
};
|
|
207
200
|
debug.log(`check-in from ${this.ieeeAddr}: accepting fast-poll`);
|
|
208
|
-
await endpoint.command(frame.Cluster.ID, 'checkinRsp', payload, {
|
|
209
|
-
await Promise.all(this.endpoints.map(async (e) => e.sendPendingRequests()));
|
|
201
|
+
await endpoint.command(frame.Cluster.ID, 'checkinRsp', payload, { sendWhen: 'immediate' });
|
|
202
|
+
await Promise.all(this.endpoints.map(async (e) => e.sendPendingRequests(true)));
|
|
210
203
|
// We *must* end fast-poll when we're done sending things. Otherwise
|
|
211
204
|
// we cause undue power-drain.
|
|
212
205
|
debug.log(`check-in from ${this.ieeeAddr}: stopping fast-poll`);
|
|
213
|
-
await endpoint.command(frame.Cluster.ID, 'fastPollStop', {}, {
|
|
206
|
+
await endpoint.command(frame.Cluster.ID, 'fastPollStop', {}, { sendWhen: 'immediate' });
|
|
214
207
|
}
|
|
215
208
|
else {
|
|
216
209
|
const payload = {
|
|
@@ -218,7 +211,7 @@ class Device extends entity_1.default {
|
|
|
218
211
|
fastPollTimeout: 0,
|
|
219
212
|
};
|
|
220
213
|
debug.log(`check-in from ${this.ieeeAddr}: declining fast-poll`);
|
|
221
|
-
await endpoint.command(frame.Cluster.ID, 'checkinRsp', payload, {
|
|
214
|
+
await endpoint.command(frame.Cluster.ID, 'checkinRsp', payload, { sendWhen: 'immediate' });
|
|
222
215
|
}
|
|
223
216
|
}
|
|
224
217
|
catch (error) {
|
|
@@ -247,13 +240,27 @@ class Device extends entity_1.default {
|
|
|
247
240
|
const networkAddress = entry.nwkAddr;
|
|
248
241
|
const ieeeAddr = entry.ieeeAddr;
|
|
249
242
|
const endpoints = Object.values(entry.endpoints).map((e) => {
|
|
250
|
-
return endpoint_1.default.fromDatabaseRecord(e, networkAddress, ieeeAddr
|
|
243
|
+
return endpoint_1.default.fromDatabaseRecord(e, networkAddress, ieeeAddr);
|
|
251
244
|
});
|
|
252
245
|
const meta = entry.meta ? entry.meta : {};
|
|
253
246
|
if (entry.type === 'Group') {
|
|
254
247
|
throw new Error('Cannot load device from group');
|
|
255
248
|
}
|
|
256
|
-
|
|
249
|
+
let defaultSendRequestWhen = entry.defaultSendRequestWhen;
|
|
250
|
+
/* istanbul ignore next */
|
|
251
|
+
if (defaultSendRequestWhen == null) {
|
|
252
|
+
// Guess defaultSendRequestWhen based on old useImplicitCheckin/defaultSendWhenActive
|
|
253
|
+
if (entry.hasOwnProperty('useImplicitCheckin') && !entry.useImplicitCheckin) {
|
|
254
|
+
defaultSendRequestWhen = 'fastpoll';
|
|
255
|
+
}
|
|
256
|
+
else if (entry.hasOwnProperty('defaultSendWhenActive') && entry.defaultSendWhenActive) {
|
|
257
|
+
defaultSendRequestWhen = 'active';
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
defaultSendRequestWhen = 'immediate';
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return new Device(entry.id, entry.type, ieeeAddr, networkAddress, entry.manufId, endpoints, entry.manufName, entry.powerSource, entry.modelId, entry.appVersion, entry.stackVersion, entry.zclVersion, entry.hwVersion, entry.dateCode, entry.swBuildId, entry.interviewCompleted, meta, entry.lastSeen || null, defaultSendRequestWhen);
|
|
257
264
|
}
|
|
258
265
|
toDatabaseEntry() {
|
|
259
266
|
const epList = this.endpoints.map((e) => e.ID);
|
|
@@ -267,8 +274,7 @@ class Device extends entity_1.default {
|
|
|
267
274
|
modelId: this.modelID, epList, endpoints, appVersion: this.applicationVersion,
|
|
268
275
|
stackVersion: this.stackVersion, hwVersion: this.hardwareVersion, dateCode: this.dateCode,
|
|
269
276
|
swBuildId: this.softwareBuildID, zclVersion: this.zclVersion, interviewCompleted: this.interviewCompleted,
|
|
270
|
-
meta: this.meta, lastSeen: this.lastSeen,
|
|
271
|
-
defaultSendWhenActive: this.defaultSendWhenActive,
|
|
277
|
+
meta: this.meta, lastSeen: this.lastSeen, defaultSendRequestWhen: this.defaultSendRequestWhen,
|
|
272
278
|
};
|
|
273
279
|
}
|
|
274
280
|
save(writeDatabase = true) {
|
|
@@ -310,10 +316,10 @@ class Device extends entity_1.default {
|
|
|
310
316
|
throw new Error(`Device with ieeeAddr '${ieeeAddr}' already exists`);
|
|
311
317
|
}
|
|
312
318
|
const endpointsMapped = endpoints.map((e) => {
|
|
313
|
-
return endpoint_1.default.create(e.ID, e.profileID, e.deviceID, e.inputClusters, e.outputClusters, networkAddress, ieeeAddr
|
|
319
|
+
return endpoint_1.default.create(e.ID, e.profileID, e.deviceID, e.inputClusters, e.outputClusters, networkAddress, ieeeAddr);
|
|
314
320
|
});
|
|
315
321
|
const ID = entity_1.default.database.newID();
|
|
316
|
-
const device = new Device(ID, type, ieeeAddr, networkAddress, manufacturerID, endpointsMapped, manufacturerName, powerSource, modelID, undefined, undefined, undefined, undefined, undefined, undefined, interviewCompleted, {}, null,
|
|
322
|
+
const device = new Device(ID, type, ieeeAddr, networkAddress, manufacturerID, endpointsMapped, manufacturerName, powerSource, modelID, undefined, undefined, undefined, undefined, undefined, undefined, interviewCompleted, {}, null, 'immediate');
|
|
317
323
|
entity_1.default.database.insert(device.toDatabaseEntry());
|
|
318
324
|
Device.devices[device.ieeeAddr] = device;
|
|
319
325
|
return device;
|
|
@@ -409,10 +415,6 @@ class Device extends entity_1.default {
|
|
|
409
415
|
}
|
|
410
416
|
}
|
|
411
417
|
async interviewInternal() {
|
|
412
|
-
// Clear defaultSendWhenActive mode when running interview
|
|
413
|
-
for (const endpoint of this._endpoints) {
|
|
414
|
-
endpoint.defaultSendWhenActive = false;
|
|
415
|
-
}
|
|
416
418
|
const nodeDescriptorQuery = async () => {
|
|
417
419
|
const nodeDescriptor = await entity_1.default.adapter.nodeDescriptor(this.networkAddress);
|
|
418
420
|
this._manufacturerID = nodeDescriptor.manufacturerCode;
|
|
@@ -458,8 +460,8 @@ class Device extends entity_1.default {
|
|
|
458
460
|
// https://github.com/Koenkk/zigbee2mqtt/issues/7553
|
|
459
461
|
debug.log("Interview - Detected potential TuYa end device, reading modelID and manufacturerName...");
|
|
460
462
|
try {
|
|
461
|
-
const endpoint = endpoint_1.default.create(1, undefined, undefined, [], [], this.networkAddress, this.ieeeAddr
|
|
462
|
-
const result = await endpoint.read('genBasic', ['modelId', 'manufacturerName']);
|
|
463
|
+
const endpoint = endpoint_1.default.create(1, undefined, undefined, [], [], this.networkAddress, this.ieeeAddr);
|
|
464
|
+
const result = await endpoint.read('genBasic', ['modelId', 'manufacturerName'], { sendWhen: 'immediate' });
|
|
463
465
|
Object.entries(result)
|
|
464
466
|
.forEach((entry) => Device.ReportablePropertiesMapping[entry[0]].set(entry[1], this));
|
|
465
467
|
}
|
|
@@ -488,7 +490,7 @@ class Device extends entity_1.default {
|
|
|
488
490
|
// Some devices, e.g. TERNCY return endpoint 0 in the active endpoints request.
|
|
489
491
|
// This is not a valid endpoint number according to the ZCL, requesting a simple descriptor will result
|
|
490
492
|
// into an error. Therefore we filter it, more info: https://github.com/Koenkk/zigbee-herdsman/issues/82
|
|
491
|
-
activeEndpoints.endpoints.filter((e) => e !== 0 && !this.getEndpoint(e)).forEach((e) => this._endpoints.push(endpoint_1.default.create(e, undefined, undefined, [], [], this.networkAddress, this.ieeeAddr
|
|
493
|
+
activeEndpoints.endpoints.filter((e) => e !== 0 && !this.getEndpoint(e)).forEach((e) => this._endpoints.push(endpoint_1.default.create(e, undefined, undefined, [], [], this.networkAddress, this.ieeeAddr)));
|
|
492
494
|
this.save();
|
|
493
495
|
debug.log(`Interview - got active endpoints for device '${this.ieeeAddr}'`);
|
|
494
496
|
for (const endpointID of activeEndpoints.endpoints) {
|
|
@@ -508,7 +510,7 @@ class Device extends entity_1.default {
|
|
|
508
510
|
try {
|
|
509
511
|
let result;
|
|
510
512
|
try {
|
|
511
|
-
result = await endpoint.read('genBasic', [key]);
|
|
513
|
+
result = await endpoint.read('genBasic', [key], { sendWhen: 'immediate' });
|
|
512
514
|
}
|
|
513
515
|
catch (error) {
|
|
514
516
|
// Reading attributes can fail for many reason, e.g. it could be that device rejoins
|
|
@@ -519,7 +521,7 @@ class Device extends entity_1.default {
|
|
|
519
521
|
debug.log(`Interview - first ${item.key} retrieval attempt failed, ` +
|
|
520
522
|
`retrying after 10 seconds...`);
|
|
521
523
|
await (0, utils_1.Wait)(10000);
|
|
522
|
-
result = await endpoint.read('genBasic', [key]);
|
|
524
|
+
result = await endpoint.read('genBasic', [key], { sendWhen: 'immediate' });
|
|
523
525
|
}
|
|
524
526
|
}
|
|
525
527
|
item.set(result[key], this);
|
|
@@ -537,12 +539,12 @@ class Device extends entity_1.default {
|
|
|
537
539
|
// Enroll IAS device
|
|
538
540
|
for (const endpoint of this.endpoints.filter((e) => e.supportsInputCluster('ssIasZone'))) {
|
|
539
541
|
debug.log(`Interview - IAS - enrolling '${this.ieeeAddr}' endpoint '${endpoint.ID}'`);
|
|
540
|
-
const stateBefore = await endpoint.read('ssIasZone', ['iasCieAddr', 'zoneState']);
|
|
542
|
+
const stateBefore = await endpoint.read('ssIasZone', ['iasCieAddr', 'zoneState'], { sendWhen: 'immediate' });
|
|
541
543
|
debug.log(`Interview - IAS - before enrolling state: '${JSON.stringify(stateBefore)}'`);
|
|
542
544
|
// Do not enroll when device has already been enrolled
|
|
543
545
|
if (stateBefore.zoneState !== 1 || stateBefore.iasCieAddr !== coordinator.ieeeAddr) {
|
|
544
546
|
debug.log(`Interview - IAS - not enrolled, enrolling`);
|
|
545
|
-
await endpoint.write('ssIasZone', { 'iasCieAddr': coordinator.ieeeAddr });
|
|
547
|
+
await endpoint.write('ssIasZone', { 'iasCieAddr': coordinator.ieeeAddr }, { sendWhen: 'immediate' });
|
|
546
548
|
debug.log(`Interview - IAS - wrote iasCieAddr`);
|
|
547
549
|
// There are 2 enrollment procedures:
|
|
548
550
|
// - Auto enroll: coordinator has to send enrollResponse without receiving an enroll request
|
|
@@ -553,11 +555,11 @@ class Device extends entity_1.default {
|
|
|
553
555
|
await (0, utils_1.Wait)(500);
|
|
554
556
|
debug.log(`IAS - '${this.ieeeAddr}' sending enroll response (auto enroll)`);
|
|
555
557
|
const payload = { enrollrspcode: 0, zoneid: 23 };
|
|
556
|
-
await endpoint.command('ssIasZone', 'enrollRsp', payload, { disableDefaultResponse: true });
|
|
558
|
+
await endpoint.command('ssIasZone', 'enrollRsp', payload, { disableDefaultResponse: true, sendWhen: 'immediate' });
|
|
557
559
|
let enrolled = false;
|
|
558
560
|
for (let attempt = 0; attempt < 20; attempt++) {
|
|
559
561
|
await (0, utils_1.Wait)(500);
|
|
560
|
-
const stateAfter = await endpoint.read('ssIasZone', ['iasCieAddr', 'zoneState']);
|
|
562
|
+
const stateAfter = await endpoint.read('ssIasZone', ['iasCieAddr', 'zoneState'], { sendWhen: 'immediate' });
|
|
561
563
|
debug.log(`Interview - IAS - after enrolling state (${attempt}): '${JSON.stringify(stateAfter)}'`);
|
|
562
564
|
if (stateAfter.zoneState === 1) {
|
|
563
565
|
enrolled = true;
|
|
@@ -576,20 +578,16 @@ class Device extends entity_1.default {
|
|
|
576
578
|
}
|
|
577
579
|
}
|
|
578
580
|
// Bind poll control
|
|
579
|
-
let bound = false;
|
|
580
581
|
for (const endpoint of this.endpoints.filter((e) => e.supportsInputCluster('genPollCtrl'))) {
|
|
581
582
|
debug.log(`Interview - Poll control - binding '${this.ieeeAddr}' endpoint '${endpoint.ID}'`);
|
|
582
583
|
await endpoint.bind('genPollCtrl', coordinator.endpoints[0]);
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
// Reset defaultSendWhenActive mode when after interview
|
|
591
|
-
for (const endpoint of this._endpoints) {
|
|
592
|
-
endpoint.defaultSendWhenActive = this.defaultSendWhenActive || false;
|
|
584
|
+
const pollPeriod = await endpoint.read('genPollCtrl', ['checkinInterval']);
|
|
585
|
+
if (pollPeriod.checkinInterval <= 2400) { // 10 minutes
|
|
586
|
+
this.defaultSendRequestWhen = 'fastpoll';
|
|
587
|
+
}
|
|
588
|
+
else {
|
|
589
|
+
this.defaultSendRequestWhen = 'active';
|
|
590
|
+
}
|
|
593
591
|
}
|
|
594
592
|
}
|
|
595
593
|
async removeFromNetwork() {
|
|
@@ -611,7 +609,7 @@ class Device extends entity_1.default {
|
|
|
611
609
|
this.meta = {};
|
|
612
610
|
const newEndpoints = [];
|
|
613
611
|
for (const endpoint of this.endpoints) {
|
|
614
|
-
newEndpoints.push(endpoint_1.default.create(endpoint.ID, endpoint.profileID, endpoint.deviceID, endpoint.inputClusters, endpoint.outputClusters, this.networkAddress, this.ieeeAddr
|
|
612
|
+
newEndpoints.push(endpoint_1.default.create(endpoint.ID, endpoint.profileID, endpoint.deviceID, endpoint.inputClusters, endpoint.outputClusters, this.networkAddress, this.ieeeAddr));
|
|
615
613
|
}
|
|
616
614
|
this._endpoints = newEndpoints;
|
|
617
615
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/controller/model/device.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/controller/model/device.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Entity from './entity';
|
|
2
|
-
import { KeyValue } from '../tstype';
|
|
2
|
+
import { KeyValue, SendRequestWhen } from '../tstype';
|
|
3
3
|
import * as Zcl from '../../zcl';
|
|
4
4
|
import Group from './group';
|
|
5
5
|
import Device from './device';
|
|
@@ -23,7 +23,7 @@ interface Options {
|
|
|
23
23
|
transactionSequenceNumber?: number;
|
|
24
24
|
disableRecovery?: boolean;
|
|
25
25
|
writeUndiv?: boolean;
|
|
26
|
-
|
|
26
|
+
sendWhen?: SendRequestWhen;
|
|
27
27
|
}
|
|
28
28
|
interface Clusters {
|
|
29
29
|
[cluster: string]: {
|
|
@@ -48,7 +48,6 @@ declare class Endpoint extends Entity {
|
|
|
48
48
|
inputClusters: number[];
|
|
49
49
|
outputClusters: number[];
|
|
50
50
|
profileID?: number;
|
|
51
|
-
defaultSendWhenActive: boolean;
|
|
52
51
|
readonly ID: number;
|
|
53
52
|
readonly clusters: Clusters;
|
|
54
53
|
private readonly deviceIeeeAddress;
|
|
@@ -83,13 +82,13 @@ declare class Endpoint extends Entity {
|
|
|
83
82
|
*/
|
|
84
83
|
getOutputClusters(): Zcl.TsType.Cluster[];
|
|
85
84
|
private clusterNumbersToClusters;
|
|
86
|
-
static fromDatabaseRecord(record: KeyValue, deviceNetworkAddress: number, deviceIeeeAddress: string
|
|
85
|
+
static fromDatabaseRecord(record: KeyValue, deviceNetworkAddress: number, deviceIeeeAddress: string): Endpoint;
|
|
87
86
|
toDatabaseRecord(): KeyValue;
|
|
88
|
-
static create(ID: number, profileID: number, deviceID: number, inputClusters: number[], outputClusters: number[], deviceNetworkAddress: number, deviceIeeeAddress: string
|
|
87
|
+
static create(ID: number, profileID: number, deviceID: number, inputClusters: number[], outputClusters: number[], deviceNetworkAddress: number, deviceIeeeAddress: string): Endpoint;
|
|
89
88
|
saveClusterAttributeKeyValue(clusterKey: number | string, list: KeyValue): void;
|
|
90
89
|
getClusterAttributeValue(clusterKey: number | string, attributeKey: number | string): number | string;
|
|
91
90
|
hasPendingRequests(): boolean;
|
|
92
|
-
sendPendingRequests(): Promise<void>;
|
|
91
|
+
sendPendingRequests(fastPolling: boolean): Promise<void>;
|
|
93
92
|
private queueRequest;
|
|
94
93
|
private sendRequest;
|
|
95
94
|
private checkStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../../src/controller/model/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAC,QAAQ,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../../src/controller/model/endpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ const debug = {
|
|
|
35
35
|
error: (0, debug_1.default)('zigbee-herdsman:controller:endpoint'),
|
|
36
36
|
};
|
|
37
37
|
class Endpoint extends entity_1.default {
|
|
38
|
-
constructor(ID, profileID, deviceID, inputClusters, outputClusters, deviceNetworkAddress, deviceIeeeAddress, clusters, binds, configuredReportings, meta
|
|
38
|
+
constructor(ID, profileID, deviceID, inputClusters, outputClusters, deviceNetworkAddress, deviceIeeeAddress, clusters, binds, configuredReportings, meta) {
|
|
39
39
|
super();
|
|
40
40
|
this.ID = ID;
|
|
41
41
|
this.profileID = profileID;
|
|
@@ -49,7 +49,6 @@ class Endpoint extends entity_1.default {
|
|
|
49
49
|
this._configuredReportings = configuredReportings;
|
|
50
50
|
this.meta = meta;
|
|
51
51
|
this.pendingRequests = [];
|
|
52
|
-
this.defaultSendWhenActive = defaultSendWhenActive;
|
|
53
52
|
}
|
|
54
53
|
// Getters/setters
|
|
55
54
|
get binds() {
|
|
@@ -135,7 +134,7 @@ class Endpoint extends entity_1.default {
|
|
|
135
134
|
/*
|
|
136
135
|
* CRUD
|
|
137
136
|
*/
|
|
138
|
-
static fromDatabaseRecord(record, deviceNetworkAddress, deviceIeeeAddress
|
|
137
|
+
static fromDatabaseRecord(record, deviceNetworkAddress, deviceIeeeAddress) {
|
|
139
138
|
// Migrate attrs to attributes
|
|
140
139
|
for (const entry of Object.values(record.clusters).filter((e) => e.hasOwnProperty('attrs'))) {
|
|
141
140
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -145,7 +144,7 @@ class Endpoint extends entity_1.default {
|
|
|
145
144
|
// @ts-ignore
|
|
146
145
|
delete entry.attrs;
|
|
147
146
|
}
|
|
148
|
-
return new Endpoint(record.epId, record.profId, record.devId, record.inClusterList, record.outClusterList, deviceNetworkAddress, deviceIeeeAddress, record.clusters, record.binds || [], record.configuredReportings || [], record.meta || {}
|
|
147
|
+
return new Endpoint(record.epId, record.profId, record.devId, record.inClusterList, record.outClusterList, deviceNetworkAddress, deviceIeeeAddress, record.clusters, record.binds || [], record.configuredReportings || [], record.meta || {});
|
|
149
148
|
}
|
|
150
149
|
toDatabaseRecord() {
|
|
151
150
|
return {
|
|
@@ -154,8 +153,8 @@ class Endpoint extends entity_1.default {
|
|
|
154
153
|
binds: this._binds, configuredReportings: this._configuredReportings, meta: this.meta,
|
|
155
154
|
};
|
|
156
155
|
}
|
|
157
|
-
static create(ID, profileID, deviceID, inputClusters, outputClusters, deviceNetworkAddress, deviceIeeeAddress
|
|
158
|
-
return new Endpoint(ID, profileID, deviceID, inputClusters, outputClusters, deviceNetworkAddress, deviceIeeeAddress, {}, [], [], {}
|
|
156
|
+
static create(ID, profileID, deviceID, inputClusters, outputClusters, deviceNetworkAddress, deviceIeeeAddress) {
|
|
157
|
+
return new Endpoint(ID, profileID, deviceID, inputClusters, outputClusters, deviceNetworkAddress, deviceIeeeAddress, {}, [], [], {});
|
|
159
158
|
}
|
|
160
159
|
saveClusterAttributeKeyValue(clusterKey, list) {
|
|
161
160
|
const cluster = Zcl.Utils.getCluster(clusterKey);
|
|
@@ -176,41 +175,45 @@ class Endpoint extends entity_1.default {
|
|
|
176
175
|
hasPendingRequests() {
|
|
177
176
|
return this.pendingRequests.length > 0;
|
|
178
177
|
}
|
|
179
|
-
async sendPendingRequests() {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
178
|
+
async sendPendingRequests(fastPolling) {
|
|
179
|
+
const handled = [];
|
|
180
|
+
for (const request of this.pendingRequests) {
|
|
181
|
+
if ((fastPolling && request.sendWhen == 'fastpoll') || request.sendWhen == 'active') {
|
|
182
|
+
try {
|
|
183
|
+
const result = await request.func();
|
|
184
|
+
request.resolve(result);
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
request.reject(error);
|
|
188
|
+
}
|
|
189
|
+
handled.push(request);
|
|
188
190
|
}
|
|
189
191
|
}
|
|
192
|
+
this.pendingRequests = this.pendingRequests.filter((r) => !handled.includes(r));
|
|
190
193
|
}
|
|
191
|
-
async queueRequest(func) {
|
|
194
|
+
async queueRequest(func, sendWhen) {
|
|
192
195
|
debug.info(`Sending to ${this.deviceIeeeAddress}/${this.ID} when active`);
|
|
193
196
|
return new Promise((resolve, reject) => {
|
|
194
|
-
this.pendingRequests.push({ func, resolve, reject });
|
|
197
|
+
this.pendingRequests.push({ func, resolve, reject, sendWhen });
|
|
195
198
|
});
|
|
196
199
|
}
|
|
197
|
-
async sendRequest(func,
|
|
200
|
+
async sendRequest(func, sendWhen) {
|
|
198
201
|
// If we already have something queued, we queue directly to avoid
|
|
199
202
|
// messing up the ordering too much.
|
|
200
|
-
if (
|
|
201
|
-
return this.queueRequest(func);
|
|
203
|
+
if (sendWhen !== 'immediate' && this.pendingRequests.length > 0) {
|
|
204
|
+
return this.queueRequest(func, sendWhen);
|
|
202
205
|
}
|
|
203
206
|
try {
|
|
204
207
|
return await func();
|
|
205
208
|
}
|
|
206
209
|
catch (error) {
|
|
207
|
-
if (
|
|
210
|
+
if (sendWhen === 'immediate') {
|
|
208
211
|
throw (error);
|
|
209
212
|
}
|
|
210
213
|
}
|
|
211
214
|
// If we got a failed transaction, the device is likely sleeping.
|
|
212
215
|
// Queue for transmission later.
|
|
213
|
-
return this.queueRequest(func);
|
|
216
|
+
return this.queueRequest(func, sendWhen);
|
|
214
217
|
}
|
|
215
218
|
/*
|
|
216
219
|
* Zigbee functions
|
|
@@ -245,7 +248,7 @@ class Endpoint extends entity_1.default {
|
|
|
245
248
|
const frame = Zcl.ZclFrame.create(Zcl.FrameType.GLOBAL, options.direction, options.disableDefaultResponse, options.manufacturerCode, (_a = options.transactionSequenceNumber) !== null && _a !== void 0 ? _a : zclTransactionSequenceNumber_1.default.next(), "report", cluster.ID, payload, options.reservedBits);
|
|
246
249
|
await this.sendRequest(async () => {
|
|
247
250
|
await entity_1.default.adapter.sendZclFrameToEndpoint(this.deviceIeeeAddress, this.deviceNetworkAddress, this.ID, frame, options.timeout, options.disableResponse, options.disableRecovery, options.srcEndpoint);
|
|
248
|
-
}, options.
|
|
251
|
+
}, options.sendWhen);
|
|
249
252
|
}
|
|
250
253
|
catch (error) {
|
|
251
254
|
error.message = `${log} failed (${error.message})`;
|
|
@@ -277,7 +280,7 @@ class Endpoint extends entity_1.default {
|
|
|
277
280
|
const frame = Zcl.ZclFrame.create(Zcl.FrameType.GLOBAL, options.direction, options.disableDefaultResponse, options.manufacturerCode, (_a = options.transactionSequenceNumber) !== null && _a !== void 0 ? _a : zclTransactionSequenceNumber_1.default.next(), options.writeUndiv ? "writeUndiv" : "write", cluster.ID, payload, options.reservedBits);
|
|
278
281
|
const result = await this.sendRequest(async () => {
|
|
279
282
|
return entity_1.default.adapter.sendZclFrameToEndpoint(this.deviceIeeeAddress, this.deviceNetworkAddress, this.ID, frame, options.timeout, options.disableResponse, options.disableRecovery, options.srcEndpoint);
|
|
280
|
-
}, options.
|
|
283
|
+
}, options.sendWhen);
|
|
281
284
|
if (!options.disableResponse) {
|
|
282
285
|
this.checkStatus(result.frame.Payload);
|
|
283
286
|
}
|
|
@@ -303,7 +306,7 @@ class Endpoint extends entity_1.default {
|
|
|
303
306
|
try {
|
|
304
307
|
const result = await this.sendRequest(async () => {
|
|
305
308
|
return entity_1.default.adapter.sendZclFrameToEndpoint(this.deviceIeeeAddress, this.deviceNetworkAddress, this.ID, frame, options.timeout, options.disableResponse, options.disableRecovery, options.srcEndpoint);
|
|
306
|
-
}, options.
|
|
309
|
+
}, options.sendWhen);
|
|
307
310
|
if (!options.disableResponse) {
|
|
308
311
|
this.checkStatus(result.frame.Payload);
|
|
309
312
|
return ZclFrameConverter.attributeKeyValue(result.frame);
|
|
@@ -342,7 +345,7 @@ class Endpoint extends entity_1.default {
|
|
|
342
345
|
try {
|
|
343
346
|
await this.sendRequest(async () => {
|
|
344
347
|
await entity_1.default.adapter.sendZclFrameToEndpoint(this.deviceIeeeAddress, this.deviceNetworkAddress, this.ID, frame, options.timeout, options.disableResponse, options.disableRecovery, options.srcEndpoint);
|
|
345
|
-
}, options.
|
|
348
|
+
}, options.sendWhen);
|
|
346
349
|
}
|
|
347
350
|
catch (error) {
|
|
348
351
|
error.message = `${log} failed (${error.message})`;
|
|
@@ -426,7 +429,7 @@ class Endpoint extends entity_1.default {
|
|
|
426
429
|
try {
|
|
427
430
|
await this.sendRequest(async () => {
|
|
428
431
|
await entity_1.default.adapter.sendZclFrameToEndpoint(this.deviceIeeeAddress, this.deviceNetworkAddress, this.ID, frame, options.timeout, options.disableResponse, options.disableRecovery, options.srcEndpoint);
|
|
429
|
-
}, options.
|
|
432
|
+
}, options.sendWhen);
|
|
430
433
|
}
|
|
431
434
|
catch (error) {
|
|
432
435
|
error.message = `${log} failed (${error.message})`;
|
|
@@ -467,7 +470,7 @@ class Endpoint extends entity_1.default {
|
|
|
467
470
|
try {
|
|
468
471
|
const result = await this.sendRequest(async () => {
|
|
469
472
|
return entity_1.default.adapter.sendZclFrameToEndpoint(this.deviceIeeeAddress, this.deviceNetworkAddress, this.ID, frame, options.timeout, options.disableResponse, options.disableRecovery, options.srcEndpoint);
|
|
470
|
-
}, options.
|
|
473
|
+
}, options.sendWhen);
|
|
471
474
|
if (!options.disableResponse) {
|
|
472
475
|
this.checkStatus(result.frame.Payload);
|
|
473
476
|
}
|
|
@@ -504,7 +507,7 @@ class Endpoint extends entity_1.default {
|
|
|
504
507
|
try {
|
|
505
508
|
await this.sendRequest(async () => {
|
|
506
509
|
await entity_1.default.adapter.sendZclFrameToEndpoint(this.deviceIeeeAddress, this.deviceNetworkAddress, this.ID, frame, options.timeout, options.disableResponse, options.disableRecovery, options.srcEndpoint);
|
|
507
|
-
}, options.
|
|
510
|
+
}, options.sendWhen);
|
|
508
511
|
// TODO: support `writeStructuredResponse`
|
|
509
512
|
}
|
|
510
513
|
catch (error) {
|
|
@@ -526,7 +529,7 @@ class Endpoint extends entity_1.default {
|
|
|
526
529
|
try {
|
|
527
530
|
const result = await this.sendRequest(async () => {
|
|
528
531
|
return entity_1.default.adapter.sendZclFrameToEndpoint(this.deviceIeeeAddress, this.deviceNetworkAddress, this.ID, frame, options.timeout, options.disableResponse, options.disableRecovery, options.srcEndpoint);
|
|
529
|
-
}, options.
|
|
532
|
+
}, options.sendWhen);
|
|
530
533
|
if (result) {
|
|
531
534
|
return result.frame.Payload;
|
|
532
535
|
}
|
|
@@ -550,7 +553,7 @@ class Endpoint extends entity_1.default {
|
|
|
550
553
|
try {
|
|
551
554
|
await this.sendRequest(async () => {
|
|
552
555
|
await entity_1.default.adapter.sendZclFrameToEndpoint(this.deviceIeeeAddress, this.deviceNetworkAddress, this.ID, frame, options.timeout, options.disableResponse, options.disableRecovery, options.srcEndpoint);
|
|
553
|
-
}, options.
|
|
556
|
+
}, options.sendWhen);
|
|
554
557
|
}
|
|
555
558
|
catch (error) {
|
|
556
559
|
error.message = `${log} failed (${error.message})`;
|
|
@@ -570,7 +573,7 @@ class Endpoint extends entity_1.default {
|
|
|
570
573
|
getOptionsWithDefaults(options, disableDefaultResponse, direction, manufacturerCode) {
|
|
571
574
|
const providedOptions = options || {};
|
|
572
575
|
return {
|
|
573
|
-
|
|
576
|
+
sendWhen: this.getDevice().defaultSendRequestWhen,
|
|
574
577
|
timeout: 10000,
|
|
575
578
|
disableResponse: false,
|
|
576
579
|
disableRecovery: false,
|