zigbee-herdsman 0.13.192 → 0.14.1

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 CHANGED
@@ -17,6 +17,9 @@ It was originally forked from zigbee-shepherd with the goal to refactor it to im
17
17
 
18
18
  # Changelog
19
19
 
20
+ ## 0.14.0 breaking changes
21
+ - `sendWhenActive` has been replaced with `sendWhen: 'active'`
22
+
20
23
  ## 0.13.0 breaking changes
21
24
  - `controller.touchlinkFactoryReset` has been renamed to `controller.touchlinkFactoryResetFirst()`
22
25
 
@@ -101,6 +101,7 @@ declare class Controller extends events.EventEmitter {
101
101
  private onDeviceLeave;
102
102
  private onAdapterDisconnected;
103
103
  private onDeviceJoinedGreenPower;
104
+ private selfAndDeviceEmit;
104
105
  private onDeviceJoined;
105
106
  private isZclDataPayload;
106
107
  private onZclOrRawData;
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/controller/controller.ts"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAC,MAAM,IAAI,aAAa,EAAmC,MAAM,YAAY,CAAC;AACrF,OAAO,EAAS,MAAM,EAAC,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAW,UAAU,EAAkD,MAAM,UAAU,CAAC;AAW/F,OAAO,KAAK,MAAM,eAAe,CAAC;AAClC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,UAAU,OAAO;IACb,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC;IACtC,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC;IACtC;;;;OAIG;IACH,0BAA0B,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE;AAuBD;;GAEG;AACH,cAAM,UAAW,SAAQ,MAAM,CAAC,YAAY;IACxC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,UAAU,CAAa;IAE/B,OAAO,CAAC,4BAA4B,CAAM;IAE1C,OAAO,CAAC,sBAAsB,CAAM;IACpC,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,WAAW,CAAM;IAEzB,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,uBAAuB,CAAkC;IACjE,OAAO,CAAC,MAAM,CAAC,CAAa;IAE5B;;;;OAIG;gBACgB,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,UAAU;IA2BxD;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC;IA2E3C,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,aAAa,IAAI,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAI/D,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1E,0BAA0B,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9C,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1E,kBAAkB,CAC3B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAG,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0ChG,aAAa,IAAI,OAAO;IAIxB,oBAAoB,IAAI,MAAM;IAI9B,UAAU,IAAI,OAAO;IAIf,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBlC,OAAO,CAAC,YAAY;YAYN,MAAM;IAUP,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,qBAAqB,IAAI,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC;IAIlE,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC;IAS7E;;OAEG;IACI,UAAU,IAAI,MAAM,EAAE;IAI7B;;OAEG;IACI,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE;IAInD;;OAEG;IACI,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIpD;;OAEG;IACI,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAIhE;;OAEG;IACI,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK;IAI3C;;OAEG;IACI,SAAS,IAAI,KAAK,EAAE;IAI3B;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK;IAI1C;;OAEG;IACU,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,aAAa;YAaP,qBAAqB;YAWrB,wBAAwB;YA4BxB,cAAc;IAgE5B,OAAO,CAAC,gBAAgB;YAMV,cAAc;CAiJ/B;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/controller/controller.ts"],"names":[],"mappings":"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"}
@@ -315,13 +315,13 @@ class Controller extends events_1.default.EventEmitter {
315
315
  debug.log(`Network address is from unknown device '${payload.ieeeAddr}'`);
316
316
  return;
317
317
  }
318
- this.emit(Events.Events.lastSeenChanged, { device, reason: 'networkAddress' });
318
+ this.selfAndDeviceEmit(device, Events.Events.lastSeenChanged, { device, reason: 'networkAddress' });
319
319
  if (device.networkAddress !== payload.networkAddress) {
320
320
  debug.log(`Device '${payload.ieeeAddr}' got new networkAddress '${payload.networkAddress}'`);
321
321
  device.networkAddress = payload.networkAddress;
322
322
  device.save();
323
323
  const data = { device };
324
- this.emit(Events.Events.deviceNetworkAddressChanged, data);
324
+ this.selfAndDeviceEmit(device, Events.Events.deviceNetworkAddressChanged, data);
325
325
  }
326
326
  }
327
327
  onDeviceAnnounce(payload) {
@@ -332,7 +332,7 @@ class Controller extends events_1.default.EventEmitter {
332
332
  return;
333
333
  }
334
334
  device.updateLastSeen();
335
- this.emit(Events.Events.lastSeenChanged, { device, reason: 'deviceAnnounce' });
335
+ this.selfAndDeviceEmit(device, Events.Events.lastSeenChanged, { device, reason: 'deviceAnnounce' });
336
336
  device.implicitCheckin();
337
337
  if (device.networkAddress !== payload.networkAddress) {
338
338
  debug.log(`Device '${payload.ieeeAddr}' announced with new networkAddress '${payload.networkAddress}'`);
@@ -340,7 +340,7 @@ class Controller extends events_1.default.EventEmitter {
340
340
  device.save();
341
341
  }
342
342
  const data = { device };
343
- this.emit(Events.Events.deviceAnnounce, data);
343
+ this.selfAndDeviceEmit(device, Events.Events.deviceAnnounce, data);
344
344
  }
345
345
  onDeviceLeave(payload) {
346
346
  debug.log(`Device leave '${payload.ieeeAddr}'`);
@@ -350,7 +350,7 @@ class Controller extends events_1.default.EventEmitter {
350
350
  device.removeFromDatabase();
351
351
  }
352
352
  const data = { ieeeAddr: payload.ieeeAddr };
353
- this.emit(Events.Events.deviceLeave, data);
353
+ this.selfAndDeviceEmit(device, Events.Events.deviceLeave, data);
354
354
  }
355
355
  async onAdapterDisconnected() {
356
356
  debug.log(`Adapter disconnected'`);
@@ -375,11 +375,15 @@ class Controller extends events_1.default.EventEmitter {
375
375
  device = model_1.Device.create('GreenPower', ieeeAddr, payload.networkAddress, null, undefined, undefined, modelID, true, []);
376
376
  device.save();
377
377
  const deviceJoinedPayload = { device };
378
- this.emit(Events.Events.deviceJoined, deviceJoinedPayload);
378
+ this.selfAndDeviceEmit(device, Events.Events.deviceJoined, deviceJoinedPayload);
379
379
  const deviceInterviewPayload = { status: 'successful', device };
380
- this.emit(Events.Events.deviceInterview, deviceInterviewPayload);
380
+ this.selfAndDeviceEmit(device, Events.Events.deviceInterview, deviceInterviewPayload);
381
381
  }
382
382
  }
383
+ selfAndDeviceEmit(device, event, data) {
384
+ device === null || device === void 0 ? void 0 : device.emit(event, data);
385
+ this.emit(event, data);
386
+ }
383
387
  async onDeviceJoined(payload) {
384
388
  debug.log(`Device '${payload.ieeeAddr}' joined`);
385
389
  if (this.options.acceptJoiningDeviceHandler) {
@@ -397,12 +401,12 @@ class Controller extends events_1.default.EventEmitter {
397
401
  debug.log(`New device '${payload.ieeeAddr}' joined`);
398
402
  debug.log(`Creating device '${payload.ieeeAddr}'`);
399
403
  device = model_1.Device.create('Unknown', payload.ieeeAddr, payload.networkAddress, undefined, undefined, undefined, undefined, false, []);
400
- this.emit(Events.Events.deviceJoined, { device });
404
+ this.selfAndDeviceEmit(device, Events.Events.deviceJoined, { device });
401
405
  }
402
406
  else if (device.isDeleted) {
403
407
  debug.log(`Delete device '${payload.ieeeAddr}' joined, undeleting`);
404
408
  device.undelete();
405
- this.emit(Events.Events.deviceJoined, { device });
409
+ this.selfAndDeviceEmit(device, Events.Events.deviceJoined, { device });
406
410
  }
407
411
  if (device.networkAddress !== payload.networkAddress) {
408
412
  debug.log(`Device '${payload.ieeeAddr}' is already in database with different networkAddress, ` +
@@ -411,22 +415,22 @@ class Controller extends events_1.default.EventEmitter {
411
415
  device.save();
412
416
  }
413
417
  device.updateLastSeen();
414
- this.emit(Events.Events.lastSeenChanged, { device, reason: 'deviceJoined' });
418
+ this.selfAndDeviceEmit(device, Events.Events.lastSeenChanged, { device, reason: 'deviceJoined' });
415
419
  device.implicitCheckin();
416
420
  if (!device.interviewCompleted && !device.interviewing) {
417
421
  const payloadStart = { status: 'started', device };
418
422
  debug.log(`Interview '${device.ieeeAddr}' start`);
419
- this.emit(Events.Events.deviceInterview, payloadStart);
423
+ this.selfAndDeviceEmit(device, Events.Events.deviceInterview, payloadStart);
420
424
  try {
421
425
  await device.interview();
422
426
  debug.log(`Succesfully interviewed '${device.ieeeAddr}'`);
423
427
  const event = { status: 'successful', device };
424
- this.emit(Events.Events.deviceInterview, event);
428
+ this.selfAndDeviceEmit(device, Events.Events.deviceInterview, event);
425
429
  }
426
430
  catch (error) {
427
431
  debug.error(`Interview failed for '${device.ieeeAddr} with error '${error}'`);
428
432
  const event = { status: 'failed', device };
429
- this.emit(Events.Events.deviceInterview, event);
433
+ this.selfAndDeviceEmit(device, Events.Events.deviceInterview, event);
430
434
  }
431
435
  }
432
436
  else {
@@ -553,11 +557,11 @@ class Controller extends events_1.default.EventEmitter {
553
557
  const eventData = {
554
558
  type: type, device, endpoint, data, linkquality, groupID, cluster: clusterName, meta
555
559
  };
556
- this.emit(Events.Events.message, eventData);
557
- this.emit(Events.Events.lastSeenChanged, { device, reason: 'messageEmitted' });
560
+ this.selfAndDeviceEmit(device, Events.Events.message, eventData);
561
+ this.selfAndDeviceEmit(device, Events.Events.lastSeenChanged, { device, reason: 'messageEmitted' });
558
562
  }
559
563
  else {
560
- this.emit(Events.Events.lastSeenChanged, { device, reason: 'messageNonEmitted' });
564
+ this.selfAndDeviceEmit(device, Events.Events.lastSeenChanged, { device, reason: 'messageNonEmitted' });
561
565
  }
562
566
  if (this.isZclDataPayload(dataPayload, dataType)) {
563
567
  device.onZclData(dataPayload, endpoint);
@@ -1 +1 @@
1
- {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/controller/controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAC5B,0DAAkC;AAClC,wCAAqF;AACrF,mCAAuC;AACvC,uCAA4C;AAC5C,iDAAmC;AACnC,qCAA+F;AAC/F,kDAA0B;AAC1B,4CAAoB;AACpB,gCAAuD;AACvD,4DAAoC;AACpC,8DAAsC;AACtC,oCAAqC;AAErC,6DAA6D;AAC7D,aAAa;AACb,4DAA+B;AAC/B,0DAAkC;AAkBlC,MAAM,cAAc,GAAY;IAC5B,OAAO,EAAE;QACL,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAC5G,KAAK,EAAE,MAAM;QACb,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAC/D,WAAW,EAAE,CAAC,EAAE,CAAC;KACpB;IACD,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE,IAAI;IACxB,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,EAAC,UAAU,EAAE,KAAK,EAAC;IAC5B,0BAA0B,EAAE,IAAI;CACnC,CAAC;AAEF,MAAM,KAAK,GAAG;IACV,KAAK,EAAE,IAAA,eAAK,EAAC,kCAAkC,CAAC;IAChD,GAAG,EAAE,IAAA,eAAK,EAAC,gCAAgC,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,MAAM,UAAW,SAAQ,gBAAM,CAAC,YAAY;IAmBxC;;;;OAIG;IACH,YAAmB,OAAgB,EAAE,MAAmB;QACpD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAA,oBAAK,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,mBAAmB;QACnB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;YACpD,IAAI,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,EAAE,EAAE;gBAC9B,MAAM,IAAI,KAAK,CAAC,IAAI,OAAO,yDAAyD,CAAC,CAAC;aACzF;SACJ;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE;YAClG,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;SACzG;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YACvG,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;SAC7G;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE;YACzE,MAAM,IAAI,KAAK,CAAC,0DAA0D;gBACtE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;SAC7C;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK;QACd,+BAA+B;QAC/B,IAAI,CAAC,QAAQ,GAAG,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACzD,cAAM,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErC,8BAA8B;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,iBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EACpD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzF,KAAK,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/C,KAAK,CAAC,GAAG,CAAC,wBAAwB,WAAW,GAAG,CAAC,CAAC;QAClD,cAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnC,gBAAgB;QAChB,KAAK,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,QAAQ,IAAI,IAAI,cAAc,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC;QAE3F,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,yBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5F,0BAA0B;QAC1B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAa,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAa,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAa,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAa,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAa,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAa,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAa,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvF,IAAI,WAAW,KAAK,OAAO,EAAE;YACzB,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBAC7E,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;aAC/E;YAED,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAClC,KAAK,MAAM,KAAK,IAAI,eAAK,CAAC,GAAG,EAAE,EAAE;gBAC7B,KAAK,CAAC,kBAAkB,EAAE,CAAC;aAC9B;YAED,KAAK,MAAM,MAAM,IAAI,cAAM,CAAC,GAAG,EAAE,EAAE;gBAC/B,MAAM,CAAC,kBAAkB,EAAE,CAAC;aAC/B;SACJ;QAED,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE;YACjG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;SACvB;QAED,0DAA0D;QAC1D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QACxD,IAAI,cAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3C,KAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YACrD,cAAM,CAAC,MAAM,CACT,aAAa,EAAE,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,cAAc,EAAE,WAAW,CAAC,cAAc,EAC3F,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,SAAS,CAC/D,CAAC;SACL;QAED,4EAA4E;QAC5E,MAAM,mBAAmB,GAAG,cAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,mBAAmB,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,EAAE;YACvD,KAAK,CAAC,GAAG,CAAC,6CAA6C,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;YAChF,mBAAmB,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC/D;QAED,6BAA6B;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE9D,qCAAqC;QACrC,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;QAEzE,IAAI,CAAC,SAAS,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7C,OAAO,WAAW,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,OAAe;QAC5D,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,aAAa;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,QAAgB,EAAE,OAAe;QAChE,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,0BAA0B;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,MAAe,EAAE,MAAe,EAAE,IAAa;QACnE,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC3B,MAAe,EAAE,MAAkC,EAAE,MAAe,EAAE,IAAa;QACnF,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACjD,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC3C,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;QACzC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAEnC,IAAI,MAAM,EAAE;YACR,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC3E,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEtC,kFAAkF;YAClF,IAAI,CAAC,4BAA4B,GAAG,WAAW,CAAC,KAAK,IAAmB,EAAE;gBACtE,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAC3E,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC1C,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;YAEf,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC,KAAK,IAAmB,EAAE;oBAChE,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,EAAE;wBAC7B,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;qBACzD;yBAAM;wBACH,MAAM,IAAI,GACN,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAC,CAAC;wBAC/D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;qBACpD;gBACL,CAAC,EAAE,IAAI,CAAC,CAAC;aACZ;YAED,MAAM,IAAI,GAAoC,EAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAC,CAAC;YACzG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;SACpD;aAAM;YACH,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACvC,MAAM,IAAI,GAAoC,EAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAC,CAAC;YAC1G,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;SACpD;IACL,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC;IACrD,CAAC;IAEM,oBAAoB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,IAAI;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,4BAA4B;QAC5B,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,gBAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,gBAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,gBAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,gBAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,gBAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,gBAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAElE,IAAI;YACA,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SAClD;QAAC,OAAO,CAAC,EAAE,GAAE;QAEd,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAEO,YAAY;QAChB,KAAK,MAAM,MAAM,IAAI,cAAM,CAAC,GAAG,EAAE,EAAE;YAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACtB;QAED,KAAK,MAAM,KAAK,IAAI,eAAK,CAAC,GAAG,EAAE,EAAE;YAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrB;QAED,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,MAAM;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE;YAChE,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,aAAa,GAAG,MAAM,mBAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAChE,YAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAClF,KAAK,CAAC,GAAG,CAAC,gCAAgC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;SACzE;IACL,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAqB;QACpC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,qBAAqB;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,oBAAoB;QAC7B,qEAAqE;QACrE,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC/B,IAAI,CAAC,uBAAuB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;SAC5E;QAED,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,UAAU;QACb,OAAO,cAAM,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,IAAgB;QACpC,OAAO,cAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,mBAAmB,CAAC,QAAgB;QACvC,OAAO,cAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,yBAAyB,CAAC,cAAsB;QACnD,OAAO,cAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,OAAe;QAC/B,OAAO,eAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,SAAS;QACZ,OAAO,eAAK,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,OAAe;QAC9B,OAAO,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB,CAAC,KAAa;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAEO,gBAAgB,CAAC,OAA4C;QACjE,KAAK,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,cAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE;YACT,KAAK,CAAC,GAAG,CAAC,2CAA2C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC1E,OAAO;SACV;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAkC,CAAC,CAAC;QAE9G,IAAI,MAAM,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc,EAAE;YAClD,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,QAAQ,6BAA6B,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;YAC7F,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAC/C,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,MAAM,IAAI,GAA8C,EAAC,MAAM,EAAC,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;SAC9D;IACL,CAAC;IAEO,gBAAgB,CAAC,OAA4C;QACjE,KAAK,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,cAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE;YACT,KAAK,CAAC,GAAG,CAAC,2CAA2C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC1E,OAAO;SACV;QAED,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAkC,CAAC,CAAC;QAC9G,MAAM,CAAC,eAAe,EAAE,CAAC;QAEzB,IAAI,MAAM,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc,EAAE;YAClD,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,QAAQ,wCAAwC,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;YACxG,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAC/C,MAAM,CAAC,IAAI,EAAE,CAAC;SACjB;QAED,MAAM,IAAI,GAAiC,EAAC,MAAM,EAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAEO,aAAa,CAAC,OAAyC;QAC3D,KAAK,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,cAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,MAAM,EAAE;YACR,KAAK,CAAC,GAAG,CAAC,kCAAkC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACjE,MAAM,CAAC,kBAAkB,EAAE,CAAC;SAC/B;QAED,MAAM,IAAI,GAA8B,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,qBAAqB;QAC/B,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAEnC,IAAI;YACA,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAC7B;QAAC,OAAO,KAAK,EAAE;SACf;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,OAAsC;QACzE,KAAK,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEpE,6FAA6F;QAC7F,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7C,QAAQ,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QAE9D,2FAA2F;QAC3F,MAAM,OAAO,GAAG,cAAc,OAAO,CAAC,QAAQ,EAAE,CAAC;QAEjD,IAAI,MAAM,GAAG,cAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE;YACT,KAAK,CAAC,GAAG,CAAC,2BAA2B,QAAQ,UAAU,CAAC,CAAC;YACzD,KAAK,CAAC,GAAG,CAAC,oBAAoB,QAAQ,GAAG,CAAC,CAAC;YAC3C,MAAM,GAAG,cAAM,CAAC,MAAM,CAClB,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,EACpD,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAC1C,CAAC;YACF,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,MAAM,mBAAmB,GAA+B,EAAC,MAAM,EAAC,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;YAE3D,MAAM,sBAAsB,GAAkC,EAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAC,CAAC;YAC7F,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;SACpE;IACL,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAA0C;QACnE,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,QAAQ,UAAU,CAAC,CAAC;QAEjD,IAAI,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE;YACzC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE;gBACpE,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,QAAQ,oCAAoC,CAAC,CAAC;gBAC3E,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC1E,OAAO;aACV;iBAAM;gBACH,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,QAAQ,uBAAuB,CAAC,CAAC;aACjE;SACJ;QAED,IAAI,MAAM,GAAG,cAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE;YACT,KAAK,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,QAAQ,UAAU,CAAC,CAAC;YACrD,KAAK,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACnD,MAAM,GAAG,cAAM,CAAC,MAAM,CAClB,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE,SAAS,EAC9D,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAC7C,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,MAAM,EAA+B,CAAC,CAAC;SACjF;aAAM,IAAI,MAAM,CAAC,SAAS,EAAE;YACzB,KAAK,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,QAAQ,sBAAsB,CAAC,CAAC;YACpE,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,MAAM,EAA+B,CAAC,CAAC;SACjF;QAED,IAAI,MAAM,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc,EAAE;YAClD,KAAK,CAAC,GAAG,CACL,WAAW,OAAO,CAAC,QAAQ,0DAA0D;gBACrF,yBAAyB,CAC5B,CAAC;YACF,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAC/C,MAAM,CAAC,IAAI,EAAE,CAAC;SACjB;QAED,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAkC,CAAC,CAAC;QAC5G,MAAM,CAAC,eAAe,EAAE,CAAC;QAEzB,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YACpD,MAAM,YAAY,GAAkC,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAC,CAAC;YAChF,KAAK,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,QAAQ,SAAS,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;YAEvD,IAAI;gBACA,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,KAAK,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAC1D,MAAM,KAAK,GAAkC,EAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAC,CAAC;gBAC5E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;aACnD;YAAC,OAAO,KAAK,EAAE;gBACZ,KAAK,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,QAAQ,gBAAgB,KAAK,GAAG,CAAC,CAAC;gBAC9E,MAAM,KAAK,GAAkC,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAC,CAAC;gBACxE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;aACnD;SACJ;aAAM;YACH,KAAK,CAAC,GAAG,CACL,qBAAqB,OAAO,CAAC,QAAQ,iBAAiB,MAAM,CAAC,kBAAkB,KAAK;gBACpF,gBAAgB,MAAM,CAAC,YAAY,GAAG,CACzC,CAAC;SACL;IACL,CAAC;IAEO,gBAAgB,CACpB,WAAwE,EAAE,IAAmB;QAE7F,OAAO,IAAI,KAAK,KAAK,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,cAAc,CACxB,QAAuB,EAAE,WAAwE;QAEjG,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/D,IAAI,QAAQ,KAAK,KAAK,EAAE;YACpB,OAAO,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC;SACvC;QACD,KAAK,CAAC,GAAG,CAAC,aAAa,QAAQ,WAAW,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAE7E,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE;YAC9C,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE;gBAChD,+BAA+B;gBAC/B,OAAO;aACV;iBAAM,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE;gBACxD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;aACpD;SACJ;QAED,IAAI,MAAM,GAAG,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;YAClD,cAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE1F;;;;;;;;;;;WAWG;QACH,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,MAAK,MAAM,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,QAAQ,IAAI,WAAW,CAAC,OAAO,EAAE;YACxF,KAAK,CAAC,GAAG,CAAC,0CAA0C,MAAM,CAAC,cAAc,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACvG,MAAM,GAAG,cAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACzD;QAED,IAAI,CAAC,MAAM,EAAE;YACT,KAAK,CAAC,GAAG,CACL,IAAI,QAAQ,+CAA+C,WAAW,CAAC,OAAO,KAAK;gBACnF,aAAa,CAChB,CAAC;YACF,OAAO;SACV;QAED,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,CAAC,eAAe,EAAE,CAAC;QACzB,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;QAE7C,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,EAAE;YACX,KAAK,CAAC,GAAG,CACL,IAAI,QAAQ,oCAAoC,WAAW,CAAC,QAAQ,qBAAqB;gBACzF,oBAAoB,WAAW,CAAC,OAAO,mBAAmB,CAC7D,CAAC;YACF,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC1D;QAED,0BAA0B;QAC1B,IAAI,IAAI,GAA8B,SAAS,CAAC;QAChD,IAAI,IAAc,CAAC;QACnB,IAAI,WAAW,GAAG,SAAS,CAAC;QAC5B,MAAM,IAAI,GAIN,EAAE,CAAC;QAEP,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE;YAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;YAChC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;YACnC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC;YAC3E,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACtD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;YAE9C,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE;gBAClB,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;oBAC3B,IAAI,GAAG,iBAAiB,CAAC;oBACzB,IAAI,GAAG,2BAAiB,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBACjE;qBAAM,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAChC,IAAI,GAAG,MAAM,CAAC;oBACd,IAAI,GAAG,2BAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBAC7D;qBAAM,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;oBACjC,IAAI,GAAG,OAAO,CAAC;oBACf,IAAI,GAAG,2BAAiB,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBACjE;qBAAM;oBACH,0BAA0B;oBAC1B,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;wBAC5B,IAAI,GAAG,cAAc,CAAC;wBACtB,IAAI,GAAG,2BAAiB,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;qBACjE;iBACJ;aACJ;iBAAM;gBACH,0BAA0B;gBAC1B,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE;oBACpB,IAAI,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBACrC,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBAC3C,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;qBACpC;yBAAM;wBACH,KAAK,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,IAAI,yCAAyC,CAAC,CAAC;qBACzF;iBACJ;aACJ;YAED,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,iBAAiB,EAAE;gBACvD,kFAAkF;gBAClF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAC7C,MAAM,QAAQ,GAAG,cAAM,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;oBACzD,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBACnC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;qBAC/B;iBACJ;gBAED,QAAQ,CAAC,4BAA4B,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;aACjE;SACJ;aAAM;YACH,IAAI,GAAG,KAAK,CAAC;YACb,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YACxB,MAAM,IAAI,GAAG,WAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;YAC7D,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAClE;QAED,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;YAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;YACpC,MAAM,SAAS,GAA0B;gBACrC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI;aACvF,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EACnC,EAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAkC,CAAC,CAAC;SAC5E;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EACnC,EAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAkC,CAAC,CAAC;SAC/E;QAGD,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE;YAC9C,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;SAC3C;IACL,CAAC;CACJ;AAED,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/controller/controller.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { KeyValue, DeviceType } from '../tstype';
1
+ import { KeyValue, DeviceType, SendRequestWhen } from '../tstype';
2
2
  import { Events as AdapterEvents } from '../../adapter';
3
3
  import Endpoint from './endpoint';
4
4
  import Entity from './entity';
@@ -41,7 +41,7 @@ declare class Device extends Entity {
41
41
  private _skipDefaultResponse;
42
42
  private _skipTimeResponse;
43
43
  private _deleted;
44
- private _defaultSendWhenActive?;
44
+ private _defaultSendRequestWhen?;
45
45
  get ieeeAddr(): string;
46
46
  set ieeeAddr(ieeeAddr: string);
47
47
  get applicationVersion(): number;
@@ -78,10 +78,9 @@ declare class Device extends Entity {
78
78
  set skipDefaultResponse(skipDefaultResponse: boolean);
79
79
  get skipTimeResponse(): boolean;
80
80
  set skipTimeResponse(skipTimeResponse: boolean);
81
- get defaultSendWhenActive(): boolean;
82
- set defaultSendWhenActive(defaultSendWhenActive: boolean);
81
+ get defaultSendRequestWhen(): SendRequestWhen;
82
+ set defaultSendRequestWhen(defaultSendRequestWhen: SendRequestWhen);
83
83
  meta: KeyValue;
84
- private useImplicitCheckin;
85
84
  private static devices;
86
85
  static readonly ReportablePropertiesMapping: {
87
86
  [s: string]: {
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/controller/model/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/controller/model/device.ts"],"names":[],"mappings":"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"}
@@ -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, useImplicitCheckin, defaultSendWhenActive) {
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._defaultSendWhenActive = defaultSendWhenActive;
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 defaultSendWhenActive() { return this._defaultSendWhenActive; }
112
- set defaultSendWhenActive(defaultSendWhenActive) {
113
- this._defaultSendWhenActive = defaultSendWhenActive;
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, this.defaultSendWhenActive || false);
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
- if (!this.useImplicitCheckin) {
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, { sendWhenActive: false });
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', {}, { sendWhenActive: false });
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, { sendWhenActive: false });
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, entry.defaultSendWhenActive);
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
- 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, entry.useImplicitCheckin, entry.defaultSendWhenActive);
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, useImplicitCheckin: this.useImplicitCheckin,
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, false);
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, true, undefined);
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, false);
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, false)));
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
- bound = true;
584
- }
585
- if (bound) {
586
- if (this.defaultSendWhenActive === undefined)
587
- this.defaultSendWhenActive = true;
588
- this.useImplicitCheckin = false;
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, this.defaultSendWhenActive));
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
  }