zigbee-herdsman 0.40.3 → 0.41.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.
Files changed (154) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +7 -0
  3. package/dist/adapter/adapter.d.ts +2 -4
  4. package/dist/adapter/adapter.d.ts.map +1 -1
  5. package/dist/adapter/adapter.js +15 -17
  6. package/dist/adapter/adapter.js.map +1 -1
  7. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +1 -2
  8. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
  9. package/dist/adapter/deconz/adapter/deconzAdapter.js +65 -65
  10. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  11. package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
  12. package/dist/adapter/deconz/driver/driver.js +44 -44
  13. package/dist/adapter/deconz/driver/driver.js.map +1 -1
  14. package/dist/adapter/deconz/driver/frameParser.d.ts.map +1 -1
  15. package/dist/adapter/deconz/driver/frameParser.js +43 -43
  16. package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
  17. package/dist/adapter/deconz/driver/parser.js +6 -6
  18. package/dist/adapter/deconz/driver/parser.js.map +1 -1
  19. package/dist/adapter/deconz/driver/writer.js +3 -3
  20. package/dist/adapter/deconz/driver/writer.js.map +1 -1
  21. package/dist/adapter/ember/adapter/emberAdapter.d.ts +1 -2
  22. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
  23. package/dist/adapter/ember/adapter/emberAdapter.js +142 -146
  24. package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
  25. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
  26. package/dist/adapter/ember/adapter/oneWaitress.js +3 -1
  27. package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -1
  28. package/dist/adapter/ember/adapter/requestQueue.js +9 -12
  29. package/dist/adapter/ember/adapter/requestQueue.js.map +1 -1
  30. package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -1
  31. package/dist/adapter/ember/adapter/tokensManager.js +23 -20
  32. package/dist/adapter/ember/adapter/tokensManager.js.map +1 -1
  33. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
  34. package/dist/adapter/ember/ezsp/ezsp.js +136 -137
  35. package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
  36. package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
  37. package/dist/adapter/ember/uart/ash.js +71 -75
  38. package/dist/adapter/ember/uart/ash.js.map +1 -1
  39. package/dist/adapter/ember/uart/parser.d.ts.map +1 -1
  40. package/dist/adapter/ember/uart/parser.js +3 -6
  41. package/dist/adapter/ember/uart/parser.js.map +1 -1
  42. package/dist/adapter/ember/uart/queues.d.ts.map +1 -1
  43. package/dist/adapter/ember/uart/queues.js +3 -1
  44. package/dist/adapter/ember/uart/queues.js.map +1 -1
  45. package/dist/adapter/ember/uart/writer.d.ts.map +1 -1
  46. package/dist/adapter/ember/uart/writer.js +3 -6
  47. package/dist/adapter/ember/uart/writer.js.map +1 -1
  48. package/dist/adapter/ezsp/adapter/backup.d.ts +0 -1
  49. package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
  50. package/dist/adapter/ezsp/adapter/backup.js +3 -7
  51. package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
  52. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +1 -2
  53. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  54. package/dist/adapter/ezsp/adapter/ezspAdapter.js +23 -22
  55. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  56. package/dist/adapter/ezsp/driver/driver.d.ts +1 -3
  57. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  58. package/dist/adapter/ezsp/driver/driver.js +67 -64
  59. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  60. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
  61. package/dist/adapter/ezsp/driver/ezsp.js +61 -50
  62. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  63. package/dist/adapter/ezsp/driver/multicast.d.ts.map +1 -1
  64. package/dist/adapter/ezsp/driver/multicast.js +8 -12
  65. package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
  66. package/dist/adapter/ezsp/driver/parser.js +5 -5
  67. package/dist/adapter/ezsp/driver/parser.js.map +1 -1
  68. package/dist/adapter/ezsp/driver/types/basic.js +1 -1
  69. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  70. package/dist/adapter/ezsp/driver/types/named.js +2 -2
  71. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  72. package/dist/adapter/ezsp/driver/types/struct.js +2 -2
  73. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  74. package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
  75. package/dist/adapter/ezsp/driver/uart.js +46 -46
  76. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  77. package/dist/adapter/ezsp/driver/writer.js +3 -6
  78. package/dist/adapter/ezsp/driver/writer.js.map +1 -1
  79. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +0 -1
  80. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
  81. package/dist/adapter/z-stack/adapter/adapter-backup.js +25 -29
  82. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
  83. package/dist/adapter/z-stack/adapter/manager.d.ts +1 -4
  84. package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
  85. package/dist/adapter/z-stack/adapter/manager.js +51 -60
  86. package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
  87. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +1 -2
  88. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  89. package/dist/adapter/z-stack/adapter/zStackAdapter.js +23 -22
  90. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  91. package/dist/adapter/z-stack/unpi/parser.js +6 -6
  92. package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
  93. package/dist/adapter/z-stack/unpi/writer.js +4 -7
  94. package/dist/adapter/z-stack/unpi/writer.js.map +1 -1
  95. package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
  96. package/dist/adapter/z-stack/znp/znp.js +18 -25
  97. package/dist/adapter/z-stack/znp/znp.js.map +1 -1
  98. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +1 -2
  99. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
  100. package/dist/adapter/zigate/adapter/zigateAdapter.js +50 -50
  101. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  102. package/dist/adapter/zigate/driver/frame.d.ts.map +1 -1
  103. package/dist/adapter/zigate/driver/frame.js +8 -8
  104. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  105. package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +1 -1
  106. package/dist/adapter/zigate/driver/ziGateObject.js +5 -4
  107. package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
  108. package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
  109. package/dist/adapter/zigate/driver/zigate.js +23 -23
  110. package/dist/adapter/zigate/driver/zigate.js.map +1 -1
  111. package/dist/controller/controller.d.ts +1 -3
  112. package/dist/controller/controller.d.ts.map +1 -1
  113. package/dist/controller/controller.js +47 -56
  114. package/dist/controller/controller.js.map +1 -1
  115. package/dist/controller/database.d.ts.map +1 -1
  116. package/dist/controller/database.js +3 -5
  117. package/dist/controller/database.js.map +1 -1
  118. package/dist/controller/greenPower.d.ts.map +1 -1
  119. package/dist/controller/greenPower.js +13 -20
  120. package/dist/controller/greenPower.js.map +1 -1
  121. package/dist/controller/helpers/requestQueue.d.ts.map +1 -1
  122. package/dist/controller/helpers/requestQueue.js +15 -25
  123. package/dist/controller/helpers/requestQueue.js.map +1 -1
  124. package/dist/controller/model/device.d.ts.map +1 -1
  125. package/dist/controller/model/device.js +44 -49
  126. package/dist/controller/model/device.js.map +1 -1
  127. package/dist/controller/model/endpoint.d.ts.map +1 -1
  128. package/dist/controller/model/endpoint.js +14 -18
  129. package/dist/controller/model/endpoint.js.map +1 -1
  130. package/dist/controller/model/group.d.ts.map +1 -1
  131. package/dist/controller/model/group.js +8 -11
  132. package/dist/controller/model/group.js.map +1 -1
  133. package/dist/controller/touchlink.js +21 -24
  134. package/dist/controller/touchlink.js.map +1 -1
  135. package/dist/index.d.ts +2 -0
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +4 -1
  138. package/dist/index.js.map +1 -1
  139. package/dist/utils/logger.d.ts +9 -0
  140. package/dist/utils/logger.d.ts.map +1 -0
  141. package/dist/utils/logger.js +14 -0
  142. package/dist/utils/logger.js.map +1 -0
  143. package/dist/zcl/buffaloZcl.d.ts.map +1 -1
  144. package/dist/zcl/buffaloZcl.js +3 -9
  145. package/dist/zcl/buffaloZcl.js.map +1 -1
  146. package/package.json +4 -4
  147. package/dist/adapter/zigate/debug.d.ts +0 -8
  148. package/dist/adapter/zigate/debug.d.ts.map +0 -1
  149. package/dist/adapter/zigate/debug.js +0 -20
  150. package/dist/adapter/zigate/debug.js.map +0 -1
  151. package/dist/controller/logger-stub.d.ts +0 -7
  152. package/dist/controller/logger-stub.d.ts.map +0 -1
  153. package/dist/controller/logger-stub.js +0 -3
  154. package/dist/controller/logger-stub.js.map +0 -1
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.EmberAdapter = void 0;
7
7
  /* istanbul ignore file */
8
- const debug_1 = __importDefault(require("debug"));
9
8
  const es6_1 = __importDefault(require("fast-deep-equal/es6"));
10
9
  const mz_1 = require("mz");
11
10
  const serialPortUtils_1 = __importDefault(require("../../serialPortUtils"));
@@ -28,8 +27,9 @@ const endpoints_1 = require("./endpoints");
28
27
  const initters_1 = require("../utils/initters");
29
28
  const crypto_1 = require("crypto");
30
29
  const oneWaitress_1 = require("./oneWaitress");
30
+ const logger_1 = require("../../../utils/logger");
31
31
  // import {EmberTokensManager} from "./tokensManager";
32
- const debug = (0, debug_1.default)('zigbee-herdsman:adapter:ember:adapter');
32
+ const NS = 'zh:ember';
33
33
  /** Enum to pass strings from numbers up to Z2M. */
34
34
  var RoutingTableStatus;
35
35
  (function (RoutingTableStatus) {
@@ -245,15 +245,15 @@ class EmberAdapter extends __1.Adapter {
245
245
  * NOTE: Do not use directly, use getter functions for it that check if valid or need retrieval from NCP.
246
246
  */
247
247
  networkCache;
248
- constructor(networkOptions, serialPortOptions, backupPath, adapterOptions, logger) {
249
- super(networkOptions, serialPortOptions, backupPath, adapterOptions, logger);
248
+ constructor(networkOptions, serialPortOptions, backupPath, adapterOptions) {
249
+ super(networkOptions, serialPortOptions, backupPath, adapterOptions);
250
250
  // TODO config
251
251
  // XXX: 'zigbeed': 4.4.x/7.4.x not supported by multiprotocol at the moment, will need refactoring when/if support is added
252
252
  this.stackConfig = 'default';
253
253
  // TODO config
254
254
  this.concentratorType = consts_2.EMBER_HIGH_RAM_CONCENTRATOR;
255
255
  const delay = (typeof this.adapterOptions.delay === 'number') ? Math.min(Math.max(this.adapterOptions.delay, 5), 60) : 5;
256
- debug(`Using delay=${delay}.`);
256
+ logger_1.logger.debug(`Using delay=${delay}.`, NS);
257
257
  this.requestQueue = new requestQueue_1.EmberRequestQueue(delay);
258
258
  this.oneWaitress = new oneWaitress_1.EmberOneWaitress();
259
259
  this.zdoRequestBuffalo = new buffalo_1.EzspBuffalo(Buffer.alloc(consts_1.EZSP_MAX_FRAME_LENGTH));
@@ -277,12 +277,12 @@ class EmberAdapter extends __1.Adapter {
277
277
  switch (status) {
278
278
  case enums_2.EmberStatus.NETWORK_UP: {
279
279
  this.oneWaitress.resolveEvent(oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_UP);
280
- console.log(`[STACK STATUS] Network up.`);
280
+ logger_1.logger.info(`[STACK STATUS] Network up.`, NS);
281
281
  break;
282
282
  }
283
283
  case enums_2.EmberStatus.NETWORK_DOWN: {
284
284
  this.oneWaitress.resolveEvent(oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_DOWN);
285
- console.log(`[STACK STATUS] Network down.`);
285
+ logger_1.logger.info(`[STACK STATUS] Network down.`, NS);
286
286
  break;
287
287
  }
288
288
  case enums_2.EmberStatus.NETWORK_OPENED: {
@@ -290,29 +290,29 @@ class EmberAdapter extends __1.Adapter {
290
290
  this.requestQueue.enqueue(async () => {
291
291
  const setJPstatus = (await this.emberSetJoinPolicy(enums_2.EmberJoinDecision.USE_PRECONFIGURED_KEY));
292
292
  if (setJPstatus !== enums_2.EzspStatus.SUCCESS) {
293
- console.error(`[ZDO] Failed set join policy with status=${enums_2.EzspStatus[setJPstatus]}.`);
293
+ logger_1.logger.error(`[ZDO] Failed set join policy with status=${enums_2.EzspStatus[setJPstatus]}.`, NS);
294
294
  return enums_2.EmberStatus.ERR_FATAL;
295
295
  }
296
296
  return enums_2.EmberStatus.SUCCESS;
297
- }, console.error, // no reject, just log error if any
297
+ }, (e) => logger_1.logger.error(e, NS), // no reject, just log error if any
298
298
  true);
299
- console.log(`[STACK STATUS] Network opened.`);
299
+ logger_1.logger.info(`[STACK STATUS] Network opened.`, NS);
300
300
  break;
301
301
  }
302
302
  case enums_2.EmberStatus.NETWORK_CLOSED: {
303
303
  this.oneWaitress.resolveEvent(oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_CLOSED);
304
- console.log(`[STACK STATUS] Network closed.`);
304
+ logger_1.logger.info(`[STACK STATUS] Network closed.`, NS);
305
305
  break;
306
306
  }
307
307
  case enums_2.EmberStatus.CHANNEL_CHANGED: {
308
308
  this.oneWaitress.resolveEvent(oneWaitress_1.OneWaitressEvents.STACK_STATUS_CHANNEL_CHANGED);
309
309
  // invalidate cache
310
310
  this.networkCache.parameters.radioChannel = consts_2.INVALID_RADIO_CHANNEL;
311
- console.log(`[STACK STATUS] Channel changed.`);
311
+ logger_1.logger.info(`[STACK STATUS] Channel changed.`, NS);
312
312
  break;
313
313
  }
314
314
  default: {
315
- debug(`[STACK STATUS] ${enums_2.EmberStatus[status]}.`);
315
+ logger_1.logger.debug(`[STACK STATUS] ${enums_2.EmberStatus[status]}.`, NS);
316
316
  break;
317
317
  }
318
318
  }
@@ -333,8 +333,8 @@ class EmberAdapter extends __1.Adapter {
333
333
  case enums_2.EmberOutgoingMessageType.MULTICAST:
334
334
  case enums_2.EmberOutgoingMessageType.MULTICAST_WITH_ALIAS: {
335
335
  // BC/MC not checking for message sent, avoid unnecessary waitress lookups
336
- console.error(`Delivery of ${enums_2.EmberOutgoingMessageType[type]} failed for "${indexOrDestination}" `
337
- + `[apsFrame=${JSON.stringify(apsFrame)} messageTag=${messageTag}]`);
336
+ logger_1.logger.error(`Delivery of ${enums_2.EmberOutgoingMessageType[type]} failed for "${indexOrDestination}" `
337
+ + `[apsFrame=${JSON.stringify(apsFrame)} messageTag=${messageTag}]`, NS);
338
338
  break;
339
339
  }
340
340
  default: {
@@ -466,7 +466,7 @@ class EmberAdapter extends __1.Adapter {
466
466
  this.emit(events_1.Events.zclData, payload);
467
467
  }
468
468
  catch (err) {
469
- console.error(`<~x~ [GP] Failed creating ZCL payload. Skipping. ${err}`);
469
+ logger_1.logger.error(`<~x~ [GP] Failed creating ZCL payload. Skipping. ${err}`, NS);
470
470
  return;
471
471
  }
472
472
  }
@@ -498,12 +498,12 @@ class EmberAdapter extends __1.Adapter {
498
498
  const joinManufCode = WORKAROUND_JOIN_MANUF_IEEE_PREFIX_TO_CODE[newNodeEui64.substring(0, 8)] ?? DEFAULT_MANUFACTURER_CODE;
499
499
  if (this.manufacturerCode !== joinManufCode) {
500
500
  this.requestQueue.enqueue(async () => {
501
- debug(`[WORKAROUND] Setting coordinator manufacturer code to ${zcl_1.ManufacturerCode[joinManufCode]}.`);
501
+ logger_1.logger.debug(`[WORKAROUND] Setting coordinator manufacturer code to ${zcl_1.ManufacturerCode[joinManufCode]}.`, NS);
502
502
  await this.ezsp.ezspSetManufacturerCode(joinManufCode);
503
503
  this.manufacturerCode = joinManufCode;
504
504
  this.emit(events_1.Events.deviceJoined, payload);
505
505
  return enums_2.EmberStatus.SUCCESS;
506
- }, console.error, // no reject, just log error if any
506
+ }, (e) => logger_1.logger.error(e, NS), // no reject, just log error if any
507
507
  true);
508
508
  }
509
509
  else {
@@ -511,7 +511,7 @@ class EmberAdapter extends __1.Adapter {
511
511
  }
512
512
  }
513
513
  else {
514
- console.warn(`[TRUST CENTER] Device ${newNodeId}:${newNodeEui64} was denied joining via ${parentOfNewNodeId}.`);
514
+ logger_1.logger.warning(`[TRUST CENTER] Device ${newNodeId}:${newNodeEui64} was denied joining via ${parentOfNewNodeId}.`, NS);
515
515
  }
516
516
  }
517
517
  }
@@ -519,13 +519,9 @@ class EmberAdapter extends __1.Adapter {
519
519
  this.requestQueue.enqueue(async () => {
520
520
  // listed as per EmberCounterType
521
521
  const counters = (await this.ezsp.ezspReadAndClearCounters());
522
- let countersLogString = "[NCP COUNTERS] ";
523
- for (let i = 0; i < enums_2.EmberCounterType.COUNT; i++) {
524
- countersLogString += `${enums_2.EmberCounterType[i]}: ${counters[i]} | `;
525
- }
526
- console.log(countersLogString);
522
+ logger_1.logger.info(`[NCP COUNTERS] ${counters.join(',')}`, NS);
527
523
  return enums_2.EmberStatus.SUCCESS;
528
- }, console.error);
524
+ }, (e) => logger_1.logger.error(e, NS));
529
525
  }
530
526
  initVariables() {
531
527
  this.ezsp.removeAllListeners(ezsp_1.EzspEvents.ncpNeedsResetAndInit);
@@ -571,7 +567,7 @@ class EmberAdapter extends __1.Adapter {
571
567
  this.networkCache.parameters = parameters;
572
568
  this.networkCache.status = (await this.ezsp.ezspNetworkState());
573
569
  this.networkCache.eui64 = (await this.ezsp.ezspGetEui64());
574
- debug(`[INIT] Network Ready! ${JSON.stringify(this.networkCache)}`);
570
+ logger_1.logger.debug(`[INIT] Network Ready! ${JSON.stringify(this.networkCache)}`, NS);
575
571
  return result;
576
572
  }
577
573
  /**
@@ -657,7 +653,7 @@ class EmberAdapter extends __1.Adapter {
657
653
  throw new Error(`[CONCENTRATOR] Failed to set concentrator with status=${status}.`);
658
654
  }
659
655
  const remainTilMTORR = (await this.ezsp.ezspSetSourceRouteDiscoveryMode(enums_2.EmberSourceRouteDiscoveryMode.RESCHEDULE));
660
- console.log(`[CONCENTRATOR] Started source route discovery. ${remainTilMTORR}ms until next broadcast.`);
656
+ logger_1.logger.info(`[CONCENTRATOR] Started source route discovery. ${remainTilMTORR}ms until next broadcast.`, NS);
661
657
  }
662
658
  /**
663
659
  * Register fixed endpoints and set any related multicast entries that need to be.
@@ -666,7 +662,7 @@ class EmberAdapter extends __1.Adapter {
666
662
  let mcTableIdx = 0;
667
663
  for (const ep of endpoints_1.FIXED_ENDPOINTS) {
668
664
  if (ep.networkIndex !== 0x00) {
669
- debug(`Multi-network not currently supported. Skipping endpoint ${JSON.stringify(ep)}.`);
665
+ logger_1.logger.debug(`Multi-network not currently supported. Skipping endpoint ${JSON.stringify(ep)}.`, NS);
670
666
  continue;
671
667
  }
672
668
  const [epStatus,] = (await this.ezsp.ezspGetEndpointFlags(ep.endpoint));
@@ -677,14 +673,14 @@ class EmberAdapter extends __1.Adapter {
677
673
  const status = (await this.ezsp.ezspAddEndpoint(ep.endpoint, ep.profileId, ep.deviceId, ep.deviceVersion, ep.inClusterList.slice(), // copy
678
674
  ep.outClusterList.slice()));
679
675
  if (status === enums_2.EzspStatus.SUCCESS) {
680
- debug(`Registered endpoint "${ep.endpoint}" with status=${enums_2.EzspStatus[status]}.`);
676
+ logger_1.logger.debug(`Registered endpoint "${ep.endpoint}" with status=${enums_2.EzspStatus[status]}.`, NS);
681
677
  }
682
678
  else {
683
679
  throw new Error(`Failed to register endpoint "${ep.endpoint}" with status=${enums_2.EzspStatus[status]}.`);
684
680
  }
685
681
  }
686
682
  else {
687
- debug(`Endpoint "${ep.endpoint}" already registered.`);
683
+ logger_1.logger.debug(`Endpoint "${ep.endpoint}" already registered.`, NS);
688
684
  }
689
685
  for (const multicastId of ep.multicastIds) {
690
686
  const multicastEntry = {
@@ -696,7 +692,7 @@ class EmberAdapter extends __1.Adapter {
696
692
  if (status !== enums_2.EmberStatus.SUCCESS) {
697
693
  throw new Error(`Failed to register group "${multicastId}" in multicast table with status=${enums_2.EmberStatus[status]}.`);
698
694
  }
699
- debug(`Registered multicast table entry: ${JSON.stringify(multicastEntry)}.`);
695
+ logger_1.logger.debug(`Registered multicast table entry: ${JSON.stringify(multicastEntry)}.`, NS);
700
696
  }
701
697
  }
702
698
  }
@@ -729,7 +725,7 @@ class EmberAdapter extends __1.Adapter {
729
725
  bitmask: (enums_2.EmberNetworkInitBitmask.PARENT_INFO_IN_TOKEN | enums_2.EmberNetworkInitBitmask.END_DEVICE_REJOIN_ON_REBOOT)
730
726
  };
731
727
  const initStatus = (await this.ezsp.ezspNetworkInit(networkInitStruct));
732
- debug(`[INIT TC] Network init status=${enums_2.EmberStatus[initStatus]}.`);
728
+ logger_1.logger.debug(`[INIT TC] Network init status=${enums_2.EmberStatus[initStatus]}.`, NS);
733
729
  if ((initStatus !== enums_2.EmberStatus.SUCCESS) && (initStatus !== enums_2.EmberStatus.NOT_JOINED)) {
734
730
  throw new Error(`[INIT TC] Failed network init request with status=${enums_2.EmberStatus[initStatus]}.`);
735
731
  }
@@ -738,8 +734,8 @@ class EmberAdapter extends __1.Adapter {
738
734
  // network
739
735
  await this.oneWaitress.startWaitingForEvent({ eventName: oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_UP }, DEFAULT_NETWORK_REQUEST_TIMEOUT, '[INIT TC] Network init');
740
736
  const [npStatus, nodeType, netParams] = (await this.ezsp.ezspGetNetworkParameters());
741
- debug(`[INIT TC] Current network config=${JSON.stringify(this.networkOptions)}`);
742
- debug(`[INIT TC] Current NCP network: nodeType=${enums_2.EmberNodeType[nodeType]} params=${JSON.stringify(netParams)}`);
737
+ logger_1.logger.debug(`[INIT TC] Current network config=${JSON.stringify(this.networkOptions)}`, NS);
738
+ logger_1.logger.debug(`[INIT TC] Current NCP network: nodeType=${enums_2.EmberNodeType[nodeType]} params=${JSON.stringify(netParams)}`, NS);
743
739
  if ((npStatus === enums_2.EmberStatus.SUCCESS) && (nodeType === enums_2.EmberNodeType.COORDINATOR) && (this.networkOptions.panID === netParams.panId)
744
740
  && ((0, es6_1.default)(this.networkOptions.extendedPanID, netParams.extendedPanId))) {
745
741
  // config matches adapter so far, no error, we can check the network key
@@ -750,7 +746,7 @@ class EmberAdapter extends __1.Adapter {
750
746
  if (nkStatus !== enums_2.SLStatus.OK) {
751
747
  throw new Error(`[BACKUP] Failed to export Network Key with status=${enums_2.SLStatus[nkStatus]}.`);
752
748
  }
753
- debug(`[INIT TC] Current NCP network: networkKey=${networkKey.contents.toString('hex')}`);
749
+ logger_1.logger.debug(`[INIT TC] Current NCP network: networkKey=${networkKey.contents.toString('hex')}`, NS);
754
750
  // config doesn't match adapter anymore
755
751
  if (!networkKey.contents.equals(configNetworkKey)) {
756
752
  action = NetworkInitAction.LEAVE;
@@ -761,7 +757,7 @@ class EmberAdapter extends __1.Adapter {
761
757
  action = NetworkInitAction.LEAVE;
762
758
  }
763
759
  if (action === NetworkInitAction.LEAVE) {
764
- console.log(`[INIT TC] NCP network does not match config. Leaving network...`);
760
+ logger_1.logger.info(`[INIT TC] NCP network does not match config. Leaving network...`, NS);
765
761
  const leaveStatus = (await this.ezsp.ezspLeaveNetwork());
766
762
  if (leaveStatus !== enums_2.EmberStatus.SUCCESS) {
767
763
  throw new Error(`[INIT TC] Failed leave network request with status=${enums_2.EmberStatus[leaveStatus]}.`);
@@ -784,13 +780,13 @@ class EmberAdapter extends __1.Adapter {
784
780
  }
785
781
  else {
786
782
  // config doesn't match backup
787
- console.log(`[INIT TC] Config does not match backup.`);
783
+ logger_1.logger.info(`[INIT TC] Config does not match backup.`, NS);
788
784
  action = NetworkInitAction.FORM_CONFIG;
789
785
  }
790
786
  }
791
787
  else {
792
788
  // no backup
793
- console.log(`[INIT TC] No valid backup found.`);
789
+ logger_1.logger.info(`[INIT TC] No valid backup found.`, NS);
794
790
  action = NetworkInitAction.FORM_CONFIG;
795
791
  }
796
792
  }
@@ -798,7 +794,7 @@ class EmberAdapter extends __1.Adapter {
798
794
  let result = 'resumed';
799
795
  switch (action) {
800
796
  case NetworkInitAction.FORM_BACKUP: {
801
- console.log(`[INIT TC] Forming from backup.`);
797
+ logger_1.logger.info(`[INIT TC] Forming from backup.`, NS);
802
798
  const keyList = backup.devices.map((device) => {
803
799
  const octets = Array.from(device.ieeeAddress.reverse());
804
800
  const deviceEui64 = '0x' + octets.map(octet => octet.toString(16).padStart(2, '0')).join("");
@@ -817,13 +813,13 @@ class EmberAdapter extends __1.Adapter {
817
813
  break;
818
814
  }
819
815
  case NetworkInitAction.FORM_CONFIG: {
820
- console.log(`[INIT TC] Forming from config.`);
816
+ logger_1.logger.info(`[INIT TC] Forming from config.`, NS);
821
817
  await this.formNetwork(false, /*from config*/ configNetworkKey, 0, this.networkOptions.panID, this.networkOptions.extendedPanID, this.networkOptions.channelList[0], (0, crypto_1.randomBytes)(consts_1.EMBER_ENCRYPTION_KEY_SIZE));
822
818
  result = 'reset';
823
819
  break;
824
820
  }
825
821
  case NetworkInitAction.DONE: {
826
- console.log(`[INIT TC] NCP network matches config.`);
822
+ logger_1.logger.info(`[INIT TC] NCP network matches config.`, NS);
827
823
  break;
828
824
  }
829
825
  default: {
@@ -835,17 +831,17 @@ class EmberAdapter extends __1.Adapter {
835
831
  // XXX: while this remains a pretty low occurrence in most (small) networks,
836
832
  // currently Z2M won't support the key update because of one-way config...
837
833
  // need to investigate handling this properly
838
- // console.warn(`[INIT TC] Network key frame counter is reaching its limit. Scheduling broadcast to update network key. `
839
- // + `This may result in some devices (especially battery-powered) temporarily losing connection.`);
834
+ // logger.warning(`[INIT TC] Network key frame counter is reaching its limit. Scheduling broadcast to update network key. `
835
+ // + `This may result in some devices (especially battery-powered) temporarily losing connection.`, NS);
840
836
  // // XXX: no idea here on the proper timer value, but this will block the network for several seconds on exec
841
837
  // // (probably have to take the behavior of sleepy-end devices into account to improve chances of reaching everyone right away?)
842
838
  // setTimeout(async () => {
843
839
  // this.requestQueue.enqueue(async (): Promise<EmberStatus> => {
844
840
  // await this.broadcastNetworkKeyUpdate();
845
841
  // return EmberStatus.SUCCESS;
846
- // }, console.error, true);// no reject just log error if any, will retry next start, & prioritize so we know it'll run when expected
842
+ // }, logger.error, true);// no reject just log error if any, will retry next start, & prioritize so we know it'll run when expected
847
843
  // }, 300000);
848
- console.warn(`[INIT TC] Network key frame counter is reaching its limit. A new network key will have to be instaured soon.`);
844
+ logger_1.logger.warning(`[INIT TC] Network key frame counter is reaching its limit. A new network key will have to be instaured soon.`, NS);
849
845
  }
850
846
  return result;
851
847
  }
@@ -890,15 +886,15 @@ class EmberAdapter extends __1.Adapter {
890
886
  nwkUpdateId: 0,
891
887
  channels: consts_2.EMBER_ALL_802_15_4_CHANNELS_MASK,
892
888
  };
893
- console.log(`[INIT FORM] Forming new network with: ${JSON.stringify(netParams)}`);
889
+ logger_1.logger.info(`[INIT FORM] Forming new network with: ${JSON.stringify(netParams)}`, NS);
894
890
  emberStatus = (await this.ezsp.ezspFormNetwork(netParams));
895
891
  if (emberStatus !== enums_2.EmberStatus.SUCCESS) {
896
892
  throw new Error(`[INIT FORM] Failed form network request with status=${enums_2.EmberStatus[emberStatus]}.`);
897
893
  }
898
894
  await this.oneWaitress.startWaitingForEvent({ eventName: oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_UP }, DEFAULT_NETWORK_REQUEST_TIMEOUT, '[INIT FORM] Form network');
899
895
  const stStatus = await this.ezsp.ezspStartWritingStackTokens();
900
- debug(`[INIT FORM] Start writing stack tokens status=${enums_2.EzspStatus[stStatus]}.`);
901
- console.log(`[INIT FORM] New network formed!`);
896
+ logger_1.logger.debug(`[INIT FORM] Start writing stack tokens status=${enums_2.EzspStatus[stStatus]}.`, NS);
897
+ logger_1.logger.info(`[INIT FORM] New network formed!`, NS);
902
898
  }
903
899
  /**
904
900
  * Loads currently stored backup and returns it in internal backup model.
@@ -950,7 +946,7 @@ class EmberAdapter extends __1.Adapter {
950
946
  const keyList = [];
951
947
  for (let i = 0; i < keyTableSize; i++) {
952
948
  [deviceEui64, plaintextKey, apsKeyMeta, status] = (await this.ezsp.ezspExportLinkKeyByIndex(i));
953
- debug(`[BACKUP] Export link key at index ${i}, status=${enums_2.SLStatus[status]}.`);
949
+ logger_1.logger.debug(`[BACKUP] Export link key at index ${i}, status=${enums_2.SLStatus[status]}.`, NS);
954
950
  // only include key if we could retrieve one at index and hash it properly
955
951
  if (status === enums_2.SLStatus.OK) {
956
952
  // Rather than give the real link key, the backup contains a hashed version of the key.
@@ -967,11 +963,11 @@ class EmberAdapter extends __1.Adapter {
967
963
  }
968
964
  else {
969
965
  // this should never happen?
970
- console.error(`[BACKUP] Failed to hash link key at index ${i} with status=${enums_2.EmberStatus[hashStatus]}. Omitting from backup.`);
966
+ logger_1.logger.error(`[BACKUP] Failed to hash link key at index ${i} with status=${enums_2.EmberStatus[hashStatus]}. Omitting from backup.`, NS);
971
967
  }
972
968
  }
973
969
  }
974
- console.log(`[BACKUP] Retrieved ${keyList.length} link keys.`);
970
+ logger_1.logger.info(`[BACKUP] Retrieved ${keyList.length} link keys.`, NS);
975
971
  return keyList;
976
972
  }
977
973
  /**
@@ -1009,7 +1005,7 @@ class EmberAdapter extends __1.Adapter {
1009
1005
  + `with status=${enums_2.EmberStatus[status]}`);
1010
1006
  }
1011
1007
  }
1012
- debug(`[BACKUP] Imported ${backupData.length} keys.`);
1008
+ logger_1.logger.debug(`[BACKUP] Imported ${backupData.length} keys.`, NS);
1013
1009
  }
1014
1010
  /**
1015
1011
  * Routine to update the network key and broadcast the update to the network after a set time.
@@ -1020,11 +1016,11 @@ class EmberAdapter extends __1.Adapter {
1020
1016
  async broadcastNetworkKeyUpdate() {
1021
1017
  return new Promise((resolve, reject) => {
1022
1018
  this.requestQueue.enqueue(async () => {
1023
- console.warn(`[TRUST CENTER] Performing a network key update. This might take a while and disrupt normal operation.`);
1019
+ logger_1.logger.warning(`[TRUST CENTER] Performing a network key update. This might take a while and disrupt normal operation.`, NS);
1024
1020
  // zero-filled = let stack generate new random network key
1025
1021
  let status = await this.ezsp.ezspBroadcastNextNetworkKey({ contents: Buffer.alloc(consts_1.EMBER_ENCRYPTION_KEY_SIZE) });
1026
1022
  if (status !== enums_2.EmberStatus.SUCCESS) {
1027
- console.error(`[TRUST CENTER] Failed to broadcast next network key with status=${enums_2.EmberStatus[status]}.`);
1023
+ logger_1.logger.error(`[TRUST CENTER] Failed to broadcast next network key with status=${enums_2.EmberStatus[status]}.`, NS);
1028
1024
  return status;
1029
1025
  }
1030
1026
  // XXX: this will block other requests for a while, but should ensure the key propagates without interference?
@@ -1033,7 +1029,7 @@ class EmberAdapter extends __1.Adapter {
1033
1029
  status = (await this.ezsp.ezspBroadcastNetworkKeySwitch());
1034
1030
  if (status !== enums_2.EmberStatus.SUCCESS) {
1035
1031
  // XXX: Not sure how likely this is, but this is bad, probably should hard fail?
1036
- console.error(`[TRUST CENTER] Failed to broadcast network key switch with status=${enums_2.EmberStatus[status]}.`);
1032
+ logger_1.logger.error(`[TRUST CENTER] Failed to broadcast network key switch with status=${enums_2.EmberStatus[status]}.`, NS);
1037
1033
  return status;
1038
1034
  }
1039
1035
  resolve();
@@ -1046,14 +1042,14 @@ class EmberAdapter extends __1.Adapter {
1046
1042
  * @param status
1047
1043
  */
1048
1044
  async onNcpNeedsResetAndInit(status) {
1049
- console.error(`!!! NCP FATAL ERROR reason=${enums_2.EzspStatus[status]}. ATTEMPTING RESET... !!!`);
1045
+ logger_1.logger.error(`!!! NCP FATAL ERROR reason=${enums_2.EzspStatus[status]}. ATTEMPTING RESET... !!!`, NS);
1050
1046
  try {
1051
1047
  await this.stop();
1052
1048
  await (0, utils_1.Wait)(500); // just because
1053
1049
  await this.start();
1054
1050
  }
1055
1051
  catch (err) {
1056
- console.error(`Failed to reset and init NCP. ${err}`);
1052
+ logger_1.logger.error(`Failed to reset and init NCP. ${err}`, NS);
1057
1053
  this.emit(events_1.Events.disconnected);
1058
1054
  }
1059
1055
  }
@@ -1114,7 +1110,7 @@ class EmberAdapter extends __1.Adapter {
1114
1110
  this.networkCache.parameters = parameters;
1115
1111
  }
1116
1112
  else {
1117
- console.error(`Failed to get PAN ID (via network parameters) with status=${enums_2.EmberStatus[status]}.`);
1113
+ logger_1.logger.error(`Failed to get PAN ID (via network parameters) with status=${enums_2.EmberStatus[status]}.`, NS);
1118
1114
  }
1119
1115
  }
1120
1116
  return this.networkCache.parameters.panId;
@@ -1131,7 +1127,7 @@ class EmberAdapter extends __1.Adapter {
1131
1127
  this.networkCache.parameters = parameters;
1132
1128
  }
1133
1129
  else {
1134
- console.error(`Failed to get Extended PAN ID (via network parameters) with status=${enums_2.EmberStatus[status]}.`);
1130
+ logger_1.logger.error(`Failed to get Extended PAN ID (via network parameters) with status=${enums_2.EmberStatus[status]}.`, NS);
1135
1131
  }
1136
1132
  }
1137
1133
  return this.networkCache.parameters.extendedPanId;
@@ -1148,7 +1144,7 @@ class EmberAdapter extends __1.Adapter {
1148
1144
  this.networkCache.parameters = parameters;
1149
1145
  }
1150
1146
  else {
1151
- console.error(`Failed to get radio channel (via network parameters) with status=${enums_2.EmberStatus[status]}.`);
1147
+ logger_1.logger.error(`Failed to get radio channel (via network parameters) with status=${enums_2.EmberStatus[status]}.`, NS);
1152
1148
  }
1153
1149
  }
1154
1150
  return this.networkCache.parameters.radioChannel;
@@ -1159,7 +1155,7 @@ class EmberAdapter extends __1.Adapter {
1159
1155
  this.requestQueue.enqueue(async () => {
1160
1156
  const status = (await this.ezsp.ezspStartScan(enums_2.EzspNetworkScanType.ENERGY_SCAN, consts_2.EMBER_ALL_802_15_4_CHANNELS_MASK, ENERGY_SCAN_DURATION));
1161
1157
  if (status !== enums_2.SLStatus.OK) {
1162
- console.error(`Failed energy scan request with status=${enums_2.SLStatus[status]}.`);
1158
+ logger_1.logger.error(`Failed energy scan request with status=${enums_2.SLStatus[status]}.`, NS);
1163
1159
  return enums_2.EmberStatus.ERR_FATAL;
1164
1160
  }
1165
1161
  // TODO: result in logs only atm, since UI doesn't support it
@@ -1193,7 +1189,7 @@ class EmberAdapter extends __1.Adapter {
1193
1189
  if (ncpEzspProtocolVer !== consts_1.EZSP_PROTOCOL_VERSION) {
1194
1190
  throw new Error(`NCP EZSP protocol version of ${ncpEzspProtocolVer} does not match Host version ${hostEzspProtocolVer}`);
1195
1191
  }
1196
- debug(`NCP info: EZSPVersion=${ncpEzspProtocolVer} StackType=${ncpStackType} StackVersion=${ncpStackVer}`);
1192
+ logger_1.logger.debug(`NCP info: EZSPVersion=${ncpEzspProtocolVer} StackType=${ncpStackType} StackVersion=${ncpStackVer}`, NS);
1197
1193
  const [status, versionStruct] = (await this.ezsp.ezspGetVersionStruct());
1198
1194
  if (status !== enums_2.EzspStatus.SUCCESS) {
1199
1195
  // Should never happen with support of only EZSP v13+
@@ -1205,9 +1201,9 @@ class EmberAdapter extends __1.Adapter {
1205
1201
  ...versionStruct,
1206
1202
  };
1207
1203
  if (versionStruct.type !== enums_2.EmberVersionType.GA) {
1208
- console.warn(`NCP is running a non-GA version (${enums_2.EmberVersionType[versionStruct.type]}).`);
1204
+ logger_1.logger.warning(`NCP is running a non-GA version (${enums_2.EmberVersionType[versionStruct.type]}).`, NS);
1209
1205
  }
1210
- debug(`NCP version info: ${JSON.stringify(this.version)}`);
1206
+ logger_1.logger.debug(`NCP version info: ${JSON.stringify(this.version)}`, NS);
1211
1207
  }
1212
1208
  /**
1213
1209
  * This function sets an EZSP config value.
@@ -1219,14 +1215,14 @@ class EmberAdapter extends __1.Adapter {
1219
1215
  */
1220
1216
  async emberSetEzspConfigValue(configId, value) {
1221
1217
  const status = (await this.ezsp.ezspSetConfigurationValue(configId, value));
1222
- debug(`[EzspConfigId] SET "${enums_1.EzspConfigId[configId]}" TO "${value}" with status=${enums_2.EzspStatus[status]}.`);
1218
+ logger_1.logger.debug(`[EzspConfigId] SET "${enums_1.EzspConfigId[configId]}" TO "${value}" with status=${enums_2.EzspStatus[status]}.`, NS);
1223
1219
  if (status === enums_2.EzspStatus.ERROR_INVALID_ID) {
1224
1220
  // can be ZLL where not all NCPs need or support it.
1225
- console.warn(`[EzspConfigId] Unsupported configuration ID ${enums_1.EzspConfigId[configId]} by NCP.`);
1221
+ logger_1.logger.warning(`[EzspConfigId] Unsupported configuration ID ${enums_1.EzspConfigId[configId]} by NCP.`, NS);
1226
1222
  }
1227
1223
  else if (status !== enums_2.EzspStatus.SUCCESS) {
1228
1224
  // don't fail in case a set value gets called "out of time"
1229
- console.error(`[EzspConfigId] Failed to SET "${enums_1.EzspConfigId[configId]}" TO "${value}" with status=${enums_2.EzspStatus[status]}.`);
1225
+ logger_1.logger.error(`[EzspConfigId] Failed to SET "${enums_1.EzspConfigId[configId]}" TO "${value}" with status=${enums_2.EzspStatus[status]}.`, NS);
1230
1226
  }
1231
1227
  return status;
1232
1228
  }
@@ -1239,7 +1235,7 @@ class EmberAdapter extends __1.Adapter {
1239
1235
  */
1240
1236
  async emberSetEzspValue(valueId, valueLength, value) {
1241
1237
  const status = (await this.ezsp.ezspSetValue(valueId, valueLength, value));
1242
- debug(`[EzspValueId] SET "${enums_1.EzspValueId[valueId]}" TO "${value}" with status=${enums_2.EzspStatus[status]}.`);
1238
+ logger_1.logger.debug(`[EzspValueId] SET "${enums_1.EzspValueId[valueId]}" TO "${value}" with status=${enums_2.EzspStatus[status]}.`, NS);
1243
1239
  return status;
1244
1240
  }
1245
1241
  /**
@@ -1250,7 +1246,7 @@ class EmberAdapter extends __1.Adapter {
1250
1246
  */
1251
1247
  async emberSetEzspPolicy(policyId, decisionId) {
1252
1248
  const status = (await this.ezsp.ezspSetPolicy(policyId, decisionId));
1253
- debug(`[EzspPolicyId] SET "${enums_1.EzspPolicyId[policyId]}" TO "${decisionId}" with status=${enums_2.EzspStatus[status]}.`);
1249
+ logger_1.logger.debug(`[EzspPolicyId] SET "${enums_1.EzspPolicyId[policyId]}" TO "${decisionId}" with status=${enums_2.EzspStatus[status]}.`, NS);
1254
1250
  return status;
1255
1251
  }
1256
1252
  /**
@@ -1342,7 +1338,7 @@ class EmberAdapter extends __1.Adapter {
1342
1338
  let status = (await this.ezsp.ezspPermitJoining(duration));
1343
1339
  let apsFrame = null;
1344
1340
  let messageTag = null;
1345
- debug(`Permit joining for ${duration} sec. status=${[status]}`);
1341
+ logger_1.logger.debug(`Permit joining for ${duration} sec. status=${[status]}`, NS);
1346
1342
  if (broadcastMgmtPermitJoin) {
1347
1343
  // `authentication`: TC significance always 1 (zb specs)
1348
1344
  [status, apsFrame, messageTag] = (await this.emberPermitJoiningRequest(consts_2.EMBER_BROADCAST_ADDRESS, duration, 1, DEFAULT_APS_OPTIONS));
@@ -1386,7 +1382,7 @@ class EmberAdapter extends __1.Adapter {
1386
1382
  return value;
1387
1383
  }
1388
1384
  else {
1389
- debug(`Failed to get source route overhead (via extended value), status=${enums_2.EzspStatus[status]}.`);
1385
+ logger_1.logger.debug(`Failed to get source route overhead (via extended value), status=${enums_2.EzspStatus[status]}.`, NS);
1390
1386
  }
1391
1387
  return 0;
1392
1388
  }
@@ -1504,17 +1500,17 @@ class EmberAdapter extends __1.Adapter {
1504
1500
  const messageContents = this.zdoRequestBuffalo.getWritten();
1505
1501
  if (destination === consts_2.EMBER_BROADCAST_ADDRESS || destination === consts_2.EMBER_RX_ON_WHEN_IDLE_BROADCAST_ADDRESS
1506
1502
  || destination === consts_2.EMBER_SLEEPY_BROADCAST_ADDRESS) {
1507
- debug(`~~~> [ZDO BROADCAST apsFrame=${JSON.stringify(apsFrame)} messageTag=${messageTag}]`);
1503
+ logger_1.logger.debug(`~~~> [ZDO BROADCAST apsFrame=${JSON.stringify(apsFrame)} messageTag=${messageTag}]`, NS);
1508
1504
  const [status, apsSequence] = (await this.ezsp.ezspSendBroadcast(destination, apsFrame, this.getZDORequestRadius(), messageTag, messageContents));
1509
1505
  apsFrame.sequence = apsSequence;
1510
- debug(`~~~> [SENT ZDO type=BROADCAST apsFrame=${JSON.stringify(apsFrame)} messageTag=${messageTag} status=${enums_2.EmberStatus[status]}]`);
1506
+ logger_1.logger.debug(`~~~> [SENT ZDO type=BROADCAST apsFrame=${JSON.stringify(apsFrame)} messageTag=${messageTag} status=${enums_2.EmberStatus[status]}]`, NS);
1511
1507
  return [status, apsFrame, messageTag];
1512
1508
  }
1513
1509
  else {
1514
- debug(`~~~> [ZDO UNICAST apsFrame=${JSON.stringify(apsFrame)} messageTag=${messageTag}]`);
1510
+ logger_1.logger.debug(`~~~> [ZDO UNICAST apsFrame=${JSON.stringify(apsFrame)} messageTag=${messageTag}]`, NS);
1515
1511
  const [status, apsSequence] = (await this.ezsp.ezspSendUnicast(enums_2.EmberOutgoingMessageType.DIRECT, destination, apsFrame, messageTag, messageContents));
1516
1512
  apsFrame.sequence = apsSequence;
1517
- debug(`~~~> [SENT ZDO type=DIRECT apsFrame=${JSON.stringify(apsFrame)} messageTag=${messageTag} status=${enums_2.EmberStatus[status]}]`);
1513
+ logger_1.logger.debug(`~~~> [SENT ZDO type=DIRECT apsFrame=${JSON.stringify(apsFrame)} messageTag=${messageTag} status=${enums_2.EmberStatus[status]}]`, NS);
1518
1514
  return [status, apsFrame, messageTag];
1519
1515
  }
1520
1516
  }
@@ -1556,7 +1552,7 @@ class EmberAdapter extends __1.Adapter {
1556
1552
  this.zdoRequestBuffalo.writeListUInt16(inClusters);
1557
1553
  this.zdoRequestBuffalo.writeUInt8(outClusters.length);
1558
1554
  this.zdoRequestBuffalo.writeListUInt16(outClusters);
1559
- debug(`~~~> [ZDO MATCH_DESCRIPTORS_REQUEST target=${target} profile=${profile} inClusters=${inClusters} outClusters=${outClusters}]`);
1555
+ logger_1.logger.debug(`~~~> [ZDO MATCH_DESCRIPTORS_REQUEST target=${target} profile=${profile} inClusters=${inClusters} outClusters=${outClusters}]`, NS);
1560
1556
  return this.sendZDORequestBuffer(target, zdo_1.MATCH_DESCRIPTORS_REQUEST, options);
1561
1557
  }
1562
1558
  /**
@@ -1581,7 +1577,7 @@ class EmberAdapter extends __1.Adapter {
1581
1577
  this.zdoRequestBuffalo.writeIeeeAddr(target);
1582
1578
  this.zdoRequestBuffalo.writeUInt8(reportKids ? 1 : 0);
1583
1579
  this.zdoRequestBuffalo.writeUInt8(childStartIndex);
1584
- debug(`~~~> [ZDO NETWORK_ADDRESS_REQUEST target=${target} reportKids=${reportKids} childStartIndex=${childStartIndex}]`);
1580
+ logger_1.logger.debug(`~~~> [ZDO NETWORK_ADDRESS_REQUEST target=${target} reportKids=${reportKids} childStartIndex=${childStartIndex}]`, NS);
1585
1581
  return this.sendZDORequestBuffer(consts_2.EMBER_RX_ON_WHEN_IDLE_BROADCAST_ADDRESS, zdo_1.NETWORK_ADDRESS_REQUEST, enums_2.EmberApsOption.SOURCE_EUI64);
1586
1582
  }
1587
1583
  /**
@@ -1607,7 +1603,7 @@ class EmberAdapter extends __1.Adapter {
1607
1603
  this.zdoRequestBuffalo.writeUInt16(target);
1608
1604
  this.zdoRequestBuffalo.writeUInt8(reportKids ? 1 : 0);
1609
1605
  this.zdoRequestBuffalo.writeUInt8(childStartIndex);
1610
- debug(`~~~> [ZDO IEEE_ADDRESS_REQUEST target=${target} reportKids=${reportKids} childStartIndex=${childStartIndex}]`);
1606
+ logger_1.logger.debug(`~~~> [ZDO IEEE_ADDRESS_REQUEST target=${target} reportKids=${reportKids} childStartIndex=${childStartIndex}]`, NS);
1611
1607
  return this.sendZDORequestBuffer(target, zdo_1.IEEE_ADDRESS_REQUEST, options);
1612
1608
  }
1613
1609
  /**
@@ -1623,8 +1619,8 @@ class EmberAdapter extends __1.Adapter {
1623
1619
  this.zdoRequestBuffalo.writeUInt16(discoveryNodeId);
1624
1620
  this.zdoRequestBuffalo.writeUInt8(reportKids ? 1 : 0);
1625
1621
  this.zdoRequestBuffalo.writeUInt8(childStartIndex);
1626
- debug(`~~~> [ZDO IEEE_ADDRESS_REQUEST targetNodeIdOfRequest=${targetNodeIdOfRequest} discoveryNodeId=${discoveryNodeId} `
1627
- + `reportKids=${reportKids} childStartIndex=${childStartIndex}]`);
1622
+ logger_1.logger.debug(`~~~> [ZDO IEEE_ADDRESS_REQUEST targetNodeIdOfRequest=${targetNodeIdOfRequest} discoveryNodeId=${discoveryNodeId} `
1623
+ + `reportKids=${reportKids} childStartIndex=${childStartIndex}]`, NS);
1628
1624
  return this.sendZDORequestBuffer(targetNodeIdOfRequest, zdo_1.IEEE_ADDRESS_REQUEST, options);
1629
1625
  }
1630
1626
  /**
@@ -1663,7 +1659,7 @@ class EmberAdapter extends __1.Adapter {
1663
1659
  this.zdoRequestBuffalo.setPosition(zdo_1.ZDO_MESSAGE_OVERHEAD);
1664
1660
  this.zdoRequestBuffalo.writeUInt16(target);
1665
1661
  this.zdoRequestBuffalo.writeUInt8(targetEndpoint);
1666
- debug(`~~~> [ZDO SIMPLE_DESCRIPTOR_REQUEST target=${target} targetEndpoint=${targetEndpoint}]`);
1662
+ logger_1.logger.debug(`~~~> [ZDO SIMPLE_DESCRIPTOR_REQUEST target=${target} targetEndpoint=${targetEndpoint}]`, NS);
1667
1663
  return this.sendZDORequestBuffer(target, zdo_1.SIMPLE_DESCRIPTOR_REQUEST, options);
1668
1664
  }
1669
1665
  /**
@@ -1738,8 +1734,8 @@ class EmberAdapter extends __1.Adapter {
1738
1734
  * @returns The tag used on the message.
1739
1735
  */
1740
1736
  async emberBindRequest(target, source, sourceEndpoint, clusterId, type, destination, groupAddress, destinationEndpoint, options) {
1741
- debug(`~~~> [ZDO BIND_REQUEST target=${target} source=${source} sourceEndpoint=${sourceEndpoint} clusterId=${clusterId} type=${type} `
1742
- + `destination=${destination} groupAddress=${groupAddress} destinationEndpoint=${destinationEndpoint}]`);
1737
+ logger_1.logger.debug(`~~~> [ZDO BIND_REQUEST target=${target} source=${source} sourceEndpoint=${sourceEndpoint} clusterId=${clusterId} type=${type} `
1738
+ + `destination=${destination} groupAddress=${groupAddress} destinationEndpoint=${destinationEndpoint}]`, NS);
1743
1739
  return this.emberSendZigDevBindRequest(target, zdo_1.BIND_REQUEST, source, sourceEndpoint, clusterId, type, destination, groupAddress, destinationEndpoint, options);
1744
1740
  }
1745
1741
  /**
@@ -1772,8 +1768,8 @@ class EmberAdapter extends __1.Adapter {
1772
1768
  * @returns The tag used on the message.
1773
1769
  */
1774
1770
  async emberUnbindRequest(target, source, sourceEndpoint, clusterId, type, destination, groupAddress, destinationEndpoint, options) {
1775
- debug(`~~~> [ZDO UNBIND_REQUEST target=${target} source=${source} sourceEndpoint=${sourceEndpoint} clusterId=${clusterId} type=${type} `
1776
- + `destination=${destination} groupAddress=${groupAddress} destinationEndpoint=${destinationEndpoint}]`);
1771
+ logger_1.logger.debug(`~~~> [ZDO UNBIND_REQUEST target=${target} source=${source} sourceEndpoint=${sourceEndpoint} clusterId=${clusterId} type=${type} `
1772
+ + `destination=${destination} groupAddress=${groupAddress} destinationEndpoint=${destinationEndpoint}]`, NS);
1777
1773
  return this.emberSendZigDevBindRequest(target, zdo_1.UNBIND_REQUEST, source, sourceEndpoint, clusterId, type, destination, groupAddress, destinationEndpoint, options);
1778
1774
  }
1779
1775
  /**
@@ -1790,7 +1786,7 @@ class EmberAdapter extends __1.Adapter {
1790
1786
  * ::EMBER_NETWORK_DOWN or ::EMBER_NETWORK_BUSY.
1791
1787
  */
1792
1788
  async emberActiveEndpointsRequest(target, options) {
1793
- debug(`~~~> [ZDO ACTIVE_ENDPOINTS_REQUEST target=${target}]`);
1789
+ logger_1.logger.debug(`~~~> [ZDO ACTIVE_ENDPOINTS_REQUEST target=${target}]`, NS);
1794
1790
  return this.emberSendZigDevRequestTarget(target, zdo_1.ACTIVE_ENDPOINTS_REQUEST, options);
1795
1791
  }
1796
1792
  /**
@@ -1810,7 +1806,7 @@ class EmberAdapter extends __1.Adapter {
1810
1806
  * ::EMBER_NETWORK_DOWN or ::EMBER_NETWORK_BUSY.
1811
1807
  */
1812
1808
  async emberPowerDescriptorRequest(target, options) {
1813
- debug(`~~~> [ZDO POWER_DESCRIPTOR_REQUEST target=${target}]`);
1809
+ logger_1.logger.debug(`~~~> [ZDO POWER_DESCRIPTOR_REQUEST target=${target}]`, NS);
1814
1810
  return this.emberSendZigDevRequestTarget(target, zdo_1.POWER_DESCRIPTOR_REQUEST, options);
1815
1811
  }
1816
1812
  /**
@@ -1829,7 +1825,7 @@ class EmberAdapter extends __1.Adapter {
1829
1825
  * ::EMBER_NETWORK_DOWN or ::EMBER_NETWORK_BUSY.
1830
1826
  */
1831
1827
  async emberNodeDescriptorRequest(target, options) {
1832
- debug(`~~~> [ZDO NODE_DESCRIPTOR_REQUEST target=${target}]`);
1828
+ logger_1.logger.debug(`~~~> [ZDO NODE_DESCRIPTOR_REQUEST target=${target}]`, NS);
1833
1829
  return this.emberSendZigDevRequestTarget(target, zdo_1.NODE_DESCRIPTOR_REQUEST, options);
1834
1830
  }
1835
1831
  /**
@@ -1850,7 +1846,7 @@ class EmberAdapter extends __1.Adapter {
1850
1846
  * ::EMBER_NETWORK_DOWN or ::EMBER_NETWORK_BUSY.
1851
1847
  */
1852
1848
  async emberLqiTableRequest(target, startIndex, options) {
1853
- debug(`~~~> [ZDO LQI_TABLE_REQUEST target=${target} startIndex=${startIndex}]`);
1849
+ logger_1.logger.debug(`~~~> [ZDO LQI_TABLE_REQUEST target=${target} startIndex=${startIndex}]`, NS);
1854
1850
  return this.emberTableRequest(zdo_1.LQI_TABLE_REQUEST, target, startIndex, options);
1855
1851
  }
1856
1852
  /**
@@ -1871,7 +1867,7 @@ class EmberAdapter extends __1.Adapter {
1871
1867
  * ::EMBER_NETWORK_DOWN or ::EMBER_NETWORK_BUSY.
1872
1868
  */
1873
1869
  async emberRoutingTableRequest(target, startIndex, options) {
1874
- debug(`~~~> [ZDO ROUTING_TABLE_REQUEST target=${target} startIndex=${startIndex}]`);
1870
+ logger_1.logger.debug(`~~~> [ZDO ROUTING_TABLE_REQUEST target=${target} startIndex=${startIndex}]`, NS);
1875
1871
  return this.emberTableRequest(zdo_1.ROUTING_TABLE_REQUEST, target, startIndex, options);
1876
1872
  }
1877
1873
  /**
@@ -1893,7 +1889,7 @@ class EmberAdapter extends __1.Adapter {
1893
1889
  * ::EMBER_NETWORK_DOWN or ::EMBER_NETWORK_BUSY.
1894
1890
  */
1895
1891
  async emberBindingTableRequest(target, startIndex, options) {
1896
- debug(`~~~> [ZDO BINDING_TABLE_REQUEST target=${target} startIndex=${startIndex}]`);
1892
+ logger_1.logger.debug(`~~~> [ZDO BINDING_TABLE_REQUEST target=${target} startIndex=${startIndex}]`, NS);
1897
1893
  return this.emberTableRequest(zdo_1.BINDING_TABLE_REQUEST, target, startIndex, options);
1898
1894
  }
1899
1895
  /**
@@ -1932,7 +1928,7 @@ class EmberAdapter extends __1.Adapter {
1932
1928
  this.zdoRequestBuffalo.setPosition(zdo_1.ZDO_MESSAGE_OVERHEAD);
1933
1929
  this.zdoRequestBuffalo.writeIeeeAddr(deviceAddress);
1934
1930
  this.zdoRequestBuffalo.writeUInt8(leaveRequestFlags);
1935
- debug(`~~~> [ZDO LEAVE_REQUEST target=${target} deviceAddress=${deviceAddress} leaveRequestFlags=${leaveRequestFlags}]`);
1931
+ logger_1.logger.debug(`~~~> [ZDO LEAVE_REQUEST target=${target} deviceAddress=${deviceAddress} leaveRequestFlags=${leaveRequestFlags}]`, NS);
1936
1932
  return this.sendZDORequestBuffer(target, zdo_1.LEAVE_REQUEST, options);
1937
1933
  }
1938
1934
  /**
@@ -1956,7 +1952,7 @@ class EmberAdapter extends __1.Adapter {
1956
1952
  this.zdoRequestBuffalo.setPosition(zdo_1.ZDO_MESSAGE_OVERHEAD);
1957
1953
  this.zdoRequestBuffalo.writeUInt8(duration);
1958
1954
  this.zdoRequestBuffalo.writeUInt8(authentication);
1959
- debug(`~~~> [ZDO PERMIT_JOINING_REQUEST target=${target} duration=${duration} authentication=${authentication}]`);
1955
+ logger_1.logger.debug(`~~~> [ZDO PERMIT_JOINING_REQUEST target=${target} duration=${duration} authentication=${authentication}]`, NS);
1960
1956
  return this.sendZDORequestBuffer(target, zdo_1.PERMIT_JOINING_REQUEST, options);
1961
1957
  }
1962
1958
  /**
@@ -1980,7 +1976,7 @@ class EmberAdapter extends __1.Adapter {
1980
1976
  if (manager != null) {
1981
1977
  this.zdoRequestBuffalo.writeUInt16(manager);
1982
1978
  }
1983
- debug(`~~~> [ZDO NWK_UPDATE_REQUEST target=${target} scanChannels=${scanChannels} duration=${duration} count=${count} manager=${manager}]`);
1979
+ logger_1.logger.debug(`~~~> [ZDO NWK_UPDATE_REQUEST target=${target} scanChannels=${scanChannels} duration=${duration} count=${count} manager=${manager}]`, NS);
1984
1980
  return this.sendZDORequestBuffer(target, zdo_1.NWK_UPDATE_REQUEST, options);
1985
1981
  }
1986
1982
  async emberScanChannelsRequest(target, scanChannels, duration, count, options) {
@@ -2003,7 +1999,7 @@ class EmberAdapter extends __1.Adapter {
2003
1999
  return serialPortUtils_1.default.is((0, utils_1.RealpathSync)(path), autoDetectDefinitions);
2004
2000
  }
2005
2001
  catch (error) {
2006
- debug(`Failed to determine if path is valid: '${error}'`);
2002
+ logger_1.logger.debug(`Failed to determine if path is valid: '${error}'`, NS);
2007
2003
  return false;
2008
2004
  }
2009
2005
  }
@@ -2013,16 +2009,16 @@ class EmberAdapter extends __1.Adapter {
2013
2009
  return paths.length > 0 ? paths[0] : null;
2014
2010
  }
2015
2011
  async start() {
2016
- console.log(`======== Ember Adapter Starting ========`);
2012
+ logger_1.logger.info(`======== Ember Adapter Starting ========`, NS);
2017
2013
  this.initVariables();
2018
- debug(`Starting EZSP with stack configuration: "${this.stackConfig}".`);
2014
+ logger_1.logger.debug(`Starting EZSP with stack configuration: "${this.stackConfig}".`, NS);
2019
2015
  const result = await this.initEzsp();
2020
2016
  return result;
2021
2017
  }
2022
2018
  async stop() {
2023
2019
  await this.ezsp.stop();
2024
2020
  this.initVariables();
2025
- console.log(`======== Ember Adapter Stopped ========`);
2021
+ logger_1.logger.info(`======== Ember Adapter Stopped ========`, NS);
2026
2022
  }
2027
2023
  // queued, non-InterPAN
2028
2024
  async getCoordinator() {
@@ -2071,7 +2067,7 @@ class EmberAdapter extends __1.Adapter {
2071
2067
  // grab fresh version here, bypass cache
2072
2068
  const [netStatus, , netParams] = (await this.ezsp.ezspGetNetworkParameters());
2073
2069
  if (netStatus !== enums_2.EmberStatus.SUCCESS) {
2074
- console.error(`[BACKUP] Failed to get network parameters.`);
2070
+ logger_1.logger.error(`[BACKUP] Failed to get network parameters.`, NS);
2075
2071
  return netStatus;
2076
2072
  }
2077
2073
  // update cache
@@ -2079,7 +2075,7 @@ class EmberAdapter extends __1.Adapter {
2079
2075
  this.networkCache.eui64 = (await this.ezsp.ezspGetEui64());
2080
2076
  const [netKeyStatus, netKeyInfo] = (await this.ezsp.ezspGetNetworkKeyInfo());
2081
2077
  if (netKeyStatus !== enums_2.SLStatus.OK) {
2082
- console.error(`[BACKUP] Failed to get network keys info.`);
2078
+ logger_1.logger.error(`[BACKUP] Failed to get network keys info.`, NS);
2083
2079
  return ((netKeyStatus === enums_2.SLStatus.BUSY) || (netKeyStatus === enums_2.SLStatus.NOT_READY))
2084
2080
  ? enums_2.EmberStatus.NETWORK_BUSY : enums_2.EmberStatus.ERR_FATAL; // allow retry on statuses that should be temporary
2085
2081
  }
@@ -2095,7 +2091,7 @@ class EmberAdapter extends __1.Adapter {
2095
2091
  // this.ezsp,
2096
2092
  // Buffer.from(this.networkCache.eui64.substring(2/*0x*/), 'hex').reverse()
2097
2093
  // ));
2098
- // console.log(tokensBuf.toString('hex'));
2094
+ // logger.info(tokensBuf.toString('hex'), NS);
2099
2095
  let context = (0, initters_1.initSecurityManagerContext)();
2100
2096
  context.coreKeyType = enums_2.SecManKeyType.TC_LINK;
2101
2097
  const [tcLinkKey, tclkStatus] = (await this.ezsp.ezspExportKey(context));
@@ -2177,7 +2173,7 @@ class EmberAdapter extends __1.Adapter {
2177
2173
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2178
2174
  const [status, apsFrame, messageTag] = (await this.emberChannelChangeRequest(consts_2.EMBER_SLEEPY_BROADCAST_ADDRESS, newChannel, DEFAULT_APS_OPTIONS));
2179
2175
  if (status !== enums_2.EmberStatus.SUCCESS) {
2180
- console.error(`[ZDO] Failed broadcast channel change to "${newChannel}" with status=${enums_2.EmberStatus[status]}.`);
2176
+ logger_1.logger.error(`[ZDO] Failed broadcast channel change to "${newChannel}" with status=${enums_2.EmberStatus[status]}.`, NS);
2181
2177
  return status;
2182
2178
  }
2183
2179
  await this.oneWaitress.startWaitingForEvent({ eventName: oneWaitress_1.OneWaitressEvents.STACK_STATUS_CHANNEL_CHANGED }, DEFAULT_NETWORK_REQUEST_TIMEOUT * 2, // observed to ~9sec
@@ -2190,14 +2186,14 @@ class EmberAdapter extends __1.Adapter {
2190
2186
  // queued
2191
2187
  async setTransmitPower(value) {
2192
2188
  if (typeof value !== 'number') {
2193
- console.error(`Tried to set transmit power to non-number. Value ${value} of type ${typeof value}.`);
2189
+ logger_1.logger.error(`Tried to set transmit power to non-number. Value ${value} of type ${typeof value}.`, NS);
2194
2190
  return;
2195
2191
  }
2196
2192
  return new Promise((resolve, reject) => {
2197
2193
  this.requestQueue.enqueue(async () => {
2198
2194
  const status = await this.ezsp.ezspSetRadioPower(value);
2199
2195
  if (status !== enums_2.EmberStatus.SUCCESS) {
2200
- console.error(`Failed to set transmit power to ${value} status=${enums_2.EmberStatus[status]}.`);
2196
+ logger_1.logger.error(`Failed to set transmit power to ${value} status=${enums_2.EmberStatus[status]}.`, NS);
2201
2197
  return status;
2202
2198
  }
2203
2199
  resolve();
@@ -2232,17 +2228,17 @@ class EmberAdapter extends __1.Adapter {
2232
2228
  // Compute the key from the install code and CRC.
2233
2229
  const [aesStatus, keyContents] = (await this.emberAesHashSimple(key));
2234
2230
  if (aesStatus !== enums_2.EmberStatus.SUCCESS) {
2235
- console.error(`[ADD INSTALL CODE] Failed AES hash for "${ieeeAddress}" with status=${enums_2.EmberStatus[aesStatus]}.`);
2231
+ logger_1.logger.error(`[ADD INSTALL CODE] Failed AES hash for "${ieeeAddress}" with status=${enums_2.EmberStatus[aesStatus]}.`, NS);
2236
2232
  return aesStatus;
2237
2233
  }
2238
2234
  // Add the key to the transient key table.
2239
2235
  // This will be used while the DUT joins.
2240
2236
  const impStatus = (await this.ezsp.ezspImportTransientKey(ieeeAddress, { contents: keyContents }, enums_2.SecManFlag.NONE));
2241
2237
  if (impStatus == enums_2.SLStatus.OK) {
2242
- debug(`[ADD INSTALL CODE] Success for "${ieeeAddress}".`);
2238
+ logger_1.logger.debug(`[ADD INSTALL CODE] Success for "${ieeeAddress}".`, NS);
2243
2239
  }
2244
2240
  else {
2245
- console.error(`[ADD INSTALL CODE] Failed for "${ieeeAddress}" with status=${enums_2.SLStatus[impStatus]}.`);
2241
+ logger_1.logger.error(`[ADD INSTALL CODE] Failed for "${ieeeAddress}" with status=${enums_2.SLStatus[impStatus]}.`, NS);
2246
2242
  return enums_2.EmberStatus.ERR_FATAL;
2247
2243
  }
2248
2244
  resolve();
@@ -2279,19 +2275,19 @@ class EmberAdapter extends __1.Adapter {
2279
2275
  if (seconds) {
2280
2276
  const plaintextKey = { contents: Buffer.from(consts_2.ZIGBEE_PROFILE_INTEROPERABILITY_LINK_KEY) };
2281
2277
  const impKeyStatus = (await this.ezsp.ezspImportTransientKey(consts_2.BLANK_EUI64, plaintextKey, enums_2.SecManFlag.NONE));
2282
- debug(`[ZDO] Pre joining import transient key status=${enums_2.SLStatus[impKeyStatus]}.`);
2278
+ logger_1.logger.debug(`[ZDO] Pre joining import transient key status=${enums_2.SLStatus[impKeyStatus]}.`, NS);
2283
2279
  return impKeyStatus === enums_2.SLStatus.OK ? enums_2.EmberStatus.SUCCESS : enums_2.EmberStatus.ERR_FATAL;
2284
2280
  }
2285
2281
  else {
2286
2282
  if (this.manufacturerCode !== DEFAULT_MANUFACTURER_CODE) {
2287
- debug(`[WORKAROUND] Reverting coordinator manufacturer code to default.`);
2283
+ logger_1.logger.debug(`[WORKAROUND] Reverting coordinator manufacturer code to default.`, NS);
2288
2284
  await this.ezsp.ezspSetManufacturerCode(DEFAULT_MANUFACTURER_CODE);
2289
2285
  this.manufacturerCode = DEFAULT_MANUFACTURER_CODE;
2290
2286
  }
2291
2287
  await this.ezsp.ezspClearTransientLinkKeys();
2292
2288
  const setJPstatus = (await this.emberSetJoinPolicy(enums_2.EmberJoinDecision.ALLOW_REJOINS_ONLY));
2293
2289
  if (setJPstatus !== enums_2.EzspStatus.SUCCESS) {
2294
- console.error(`[ZDO] Failed set join policy for with status=${enums_2.EzspStatus[setJPstatus]}.`);
2290
+ logger_1.logger.error(`[ZDO] Failed set join policy for with status=${enums_2.EzspStatus[setJPstatus]}.`, NS);
2295
2291
  return enums_2.EmberStatus.ERR_FATAL;
2296
2292
  }
2297
2293
  return enums_2.EmberStatus.SUCCESS;
@@ -2304,14 +2300,14 @@ class EmberAdapter extends __1.Adapter {
2304
2300
  this.checkInterpanLock();
2305
2301
  const pjStatus = (await preJoining());
2306
2302
  if (pjStatus !== enums_2.EmberStatus.SUCCESS) {
2307
- console.error(`[ZDO] Failed pre joining request for "${networkAddress}" with status=${enums_2.EmberStatus[pjStatus]}.`);
2303
+ logger_1.logger.error(`[ZDO] Failed pre joining request for "${networkAddress}" with status=${enums_2.EmberStatus[pjStatus]}.`, NS);
2308
2304
  return pjStatus;
2309
2305
  }
2310
2306
  // `authentication`: TC significance always 1 (zb specs)
2311
2307
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2312
2308
  const [status, apsFrame, messageTag] = (await this.emberPermitJoiningRequest(networkAddress, seconds, 1, 0));
2313
2309
  if (status !== enums_2.EmberStatus.SUCCESS) {
2314
- console.error(`[ZDO] Failed permit joining request for "${networkAddress}" with status=${enums_2.EmberStatus[status]}.`);
2310
+ logger_1.logger.error(`[ZDO] Failed permit joining request for "${networkAddress}" with status=${enums_2.EmberStatus[status]}.`, NS);
2315
2311
  return status;
2316
2312
  }
2317
2313
  (await this.oneWaitress.startWaitingFor({
@@ -2331,14 +2327,14 @@ class EmberAdapter extends __1.Adapter {
2331
2327
  this.checkInterpanLock();
2332
2328
  const pjStatus = (await preJoining());
2333
2329
  if (pjStatus !== enums_2.EmberStatus.SUCCESS) {
2334
- console.error(`[ZDO] Failed pre joining request for "${networkAddress}" with status=${enums_2.EmberStatus[pjStatus]}.`);
2330
+ logger_1.logger.error(`[ZDO] Failed pre joining request for "${networkAddress}" with status=${enums_2.EmberStatus[pjStatus]}.`, NS);
2335
2331
  return pjStatus;
2336
2332
  }
2337
2333
  // local permit join if `Coordinator`-only requested, else local + broadcast
2338
2334
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2339
2335
  const [status, apsFrame, messageTag] = (await this.emberPermitJoining(seconds, (networkAddress === consts_2.ZIGBEE_COORDINATOR_ADDRESS) ? false : true));
2340
2336
  if (status !== enums_2.EmberStatus.SUCCESS) {
2341
- console.error(`[ZDO] Failed permit joining request with status=${enums_2.EmberStatus[status]}.`);
2337
+ logger_1.logger.error(`[ZDO] Failed permit joining request with status=${enums_2.EmberStatus[status]}.`, NS);
2342
2338
  return status;
2343
2339
  }
2344
2340
  // NOTE: because Z2M is refreshing the permit join duration early to prevent it from closing
@@ -2371,7 +2367,7 @@ class EmberAdapter extends __1.Adapter {
2371
2367
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2372
2368
  const [reqStatus, apsFrame, messageTag] = (await this.emberLqiTableRequest(networkAddress, startIndex, DEFAULT_APS_OPTIONS));
2373
2369
  if (reqStatus !== enums_2.EmberStatus.SUCCESS) {
2374
- console.error(`[ZDO] Failed LQI request for "${networkAddress}" (index "${startIndex}") with status=${enums_2.EmberStatus[reqStatus]}.`);
2370
+ logger_1.logger.error(`[ZDO] Failed LQI request for "${networkAddress}" (index "${startIndex}") with status=${enums_2.EmberStatus[reqStatus]}.`, NS);
2375
2371
  return [reqStatus, null, null];
2376
2372
  }
2377
2373
  const result = (await this.oneWaitress.startWaitingFor({
@@ -2418,7 +2414,7 @@ class EmberAdapter extends __1.Adapter {
2418
2414
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2419
2415
  const [reqStatus, apsFrame, messageTag] = (await this.emberRoutingTableRequest(networkAddress, startIndex, DEFAULT_APS_OPTIONS));
2420
2416
  if (reqStatus !== enums_2.EmberStatus.SUCCESS) {
2421
- console.error(`[ZDO] Failed routing table request for "${networkAddress}" (index "${startIndex}") with status=${enums_2.EmberStatus[reqStatus]}.`);
2417
+ logger_1.logger.error(`[ZDO] Failed routing table request for "${networkAddress}" (index "${startIndex}") with status=${enums_2.EmberStatus[reqStatus]}.`, NS);
2422
2418
  return [reqStatus, null, null];
2423
2419
  }
2424
2420
  const result = (await this.oneWaitress.startWaitingFor({
@@ -2464,7 +2460,7 @@ class EmberAdapter extends __1.Adapter {
2464
2460
  /* eslint-disable @typescript-eslint/no-unused-vars */
2465
2461
  const [status, apsFrame, messageTag] = (await this.emberNodeDescriptorRequest(networkAddress, DEFAULT_APS_OPTIONS));
2466
2462
  if (status !== enums_2.EmberStatus.SUCCESS) {
2467
- console.error(`[ZDO] Failed node descriptor for "${networkAddress}" with status=${enums_2.EmberStatus[status]}.`);
2463
+ logger_1.logger.error(`[ZDO] Failed node descriptor for "${networkAddress}" with status=${enums_2.EmberStatus[status]}.`, NS);
2468
2464
  return status;
2469
2465
  }
2470
2466
  const result = (await this.oneWaitress.startWaitingFor({
@@ -2486,9 +2482,9 @@ class EmberAdapter extends __1.Adapter {
2486
2482
  }
2487
2483
  // always 0 before rev. 21 where field was added
2488
2484
  if (result.stackRevision < CURRENT_ZIGBEE_SPEC_REVISION) {
2489
- console.warn(`[ZDO] Node descriptor for "${networkAddress}" reports device is only compliant to revision `
2485
+ logger_1.logger.warning(`[ZDO] Node descriptor for "${networkAddress}" reports device is only compliant to revision `
2490
2486
  + `"${(result.stackRevision < 21) ? 'pre-21' : result.stackRevision}" of the ZigBee specification `
2491
- + `(current revision: ${CURRENT_ZIGBEE_SPEC_REVISION}).`);
2487
+ + `(current revision: ${CURRENT_ZIGBEE_SPEC_REVISION}).`, NS);
2492
2488
  }
2493
2489
  resolve({ type, manufacturerCode: result.manufacturerCode });
2494
2490
  return enums_2.EmberStatus.SUCCESS;
@@ -2503,7 +2499,7 @@ class EmberAdapter extends __1.Adapter {
2503
2499
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2504
2500
  const [status, apsFrame, messageTag] = (await this.emberActiveEndpointsRequest(networkAddress, DEFAULT_APS_OPTIONS));
2505
2501
  if (status !== enums_2.EmberStatus.SUCCESS) {
2506
- console.error(`[ZDO] Failed active endpoints request for "${networkAddress}" with status=${enums_2.EmberStatus[status]}.`);
2502
+ logger_1.logger.error(`[ZDO] Failed active endpoints request for "${networkAddress}" with status=${enums_2.EmberStatus[status]}.`, NS);
2507
2503
  return status;
2508
2504
  }
2509
2505
  const result = (await this.oneWaitress.startWaitingFor({
@@ -2524,8 +2520,8 @@ class EmberAdapter extends __1.Adapter {
2524
2520
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2525
2521
  const [status, apsFrame, messageTag] = (await this.emberSimpleDescriptorRequest(networkAddress, endpointID, DEFAULT_APS_OPTIONS));
2526
2522
  if (status !== enums_2.EmberStatus.SUCCESS) {
2527
- console.error(`[ZDO] Failed simple descriptor request for "${networkAddress}" endpoint "${endpointID}" `
2528
- + `with status=${enums_2.EmberStatus[status]}.`);
2523
+ logger_1.logger.error(`[ZDO] Failed simple descriptor request for "${networkAddress}" endpoint "${endpointID}" `
2524
+ + `with status=${enums_2.EmberStatus[status]}.`, NS);
2529
2525
  return status;
2530
2526
  }
2531
2527
  const result = (await this.oneWaitress.startWaitingFor({
@@ -2555,8 +2551,8 @@ class EmberAdapter extends __1.Adapter {
2555
2551
  const [status, apsFrame, messageTag] = (await this.emberBindRequest(destinationNetworkAddress, sourceIeeeAddress, sourceEndpoint, clusterID, zdo_1.UNICAST_BINDING, destinationAddressOrGroup, null, // doesn't matter
2556
2552
  destinationEndpoint, DEFAULT_APS_OPTIONS));
2557
2553
  if (status !== enums_2.EmberStatus.SUCCESS) {
2558
- console.error(`[ZDO] Failed bind request for "${destinationNetworkAddress}" destination "${destinationAddressOrGroup}" `
2559
- + `endpoint "${destinationEndpoint}" with status=${enums_2.EmberStatus[status]}.`);
2554
+ logger_1.logger.error(`[ZDO] Failed bind request for "${destinationNetworkAddress}" destination "${destinationAddressOrGroup}" `
2555
+ + `endpoint "${destinationEndpoint}" with status=${enums_2.EmberStatus[status]}.`, NS);
2560
2556
  return status;
2561
2557
  }
2562
2558
  await this.oneWaitress.startWaitingFor({
@@ -2579,8 +2575,8 @@ class EmberAdapter extends __1.Adapter {
2579
2575
  destinationAddressOrGroup, destinationEndpoint, // doesn't matter
2580
2576
  DEFAULT_APS_OPTIONS));
2581
2577
  if (status !== enums_2.EmberStatus.SUCCESS) {
2582
- console.error(`[ZDO] Failed bind request for "${destinationNetworkAddress}" group "${destinationAddressOrGroup}" `
2583
- + `with status=${enums_2.EmberStatus[status]}.`);
2578
+ logger_1.logger.error(`[ZDO] Failed bind request for "${destinationNetworkAddress}" group "${destinationAddressOrGroup}" `
2579
+ + `with status=${enums_2.EmberStatus[status]}.`, NS);
2584
2580
  return status;
2585
2581
  }
2586
2582
  await this.oneWaitress.startWaitingFor({
@@ -2605,8 +2601,8 @@ class EmberAdapter extends __1.Adapter {
2605
2601
  const [status, apsFrame, messageTag] = (await this.emberUnbindRequest(destinationNetworkAddress, sourceIeeeAddress, sourceEndpoint, clusterID, zdo_1.UNICAST_BINDING, destinationAddressOrGroup, null, // doesn't matter
2606
2602
  destinationEndpoint, DEFAULT_APS_OPTIONS));
2607
2603
  if (status !== enums_2.EmberStatus.SUCCESS) {
2608
- console.error(`[ZDO] Failed unbind request for "${destinationNetworkAddress}" destination "${destinationAddressOrGroup}" `
2609
- + `endpoint "${destinationEndpoint}" with status=${enums_2.EmberStatus[status]}.`);
2604
+ logger_1.logger.error(`[ZDO] Failed unbind request for "${destinationNetworkAddress}" destination "${destinationAddressOrGroup}" `
2605
+ + `endpoint "${destinationEndpoint}" with status=${enums_2.EmberStatus[status]}.`, NS);
2610
2606
  return status;
2611
2607
  }
2612
2608
  await this.oneWaitress.startWaitingFor({
@@ -2629,8 +2625,8 @@ class EmberAdapter extends __1.Adapter {
2629
2625
  destinationAddressOrGroup, destinationEndpoint, // doesn't matter
2630
2626
  DEFAULT_APS_OPTIONS));
2631
2627
  if (status !== enums_2.EmberStatus.SUCCESS) {
2632
- console.error(`[ZDO] Failed unbind request for "${destinationNetworkAddress}" group "${destinationAddressOrGroup}" `
2633
- + `with status=${enums_2.EmberStatus[status]}.`);
2628
+ logger_1.logger.error(`[ZDO] Failed unbind request for "${destinationNetworkAddress}" group "${destinationAddressOrGroup}" `
2629
+ + `with status=${enums_2.EmberStatus[status]}.`, NS);
2634
2630
  return status;
2635
2631
  }
2636
2632
  await this.oneWaitress.startWaitingFor({
@@ -2652,8 +2648,8 @@ class EmberAdapter extends __1.Adapter {
2652
2648
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2653
2649
  const [status, apsFrame, messageTag] = (await this.emberLeaveRequest(networkAddress, ieeeAddr, enums_2.EmberLeaveRequestFlags.WITHOUT_REJOIN, DEFAULT_APS_OPTIONS));
2654
2650
  if (status !== enums_2.EmberStatus.SUCCESS) {
2655
- console.error(`[ZDO] Failed remove device request for "${networkAddress}" target "${ieeeAddr}" `
2656
- + `with status=${enums_2.EmberStatus[status]}.`);
2651
+ logger_1.logger.error(`[ZDO] Failed remove device request for "${networkAddress}" target "${ieeeAddr}" `
2652
+ + `with status=${enums_2.EmberStatus[status]}.`, NS);
2657
2653
  return status;
2658
2654
  }
2659
2655
  await this.oneWaitress.startWaitingFor({
@@ -2702,12 +2698,12 @@ class EmberAdapter extends __1.Adapter {
2702
2698
  return enums_2.EmberStatus.MESSAGE_TOO_LONG; // queue will reject
2703
2699
  }
2704
2700
  }
2705
- debug(`~~~> [ZCL to=${networkAddress} apsFrame=${JSON.stringify(apsFrame)} header=${JSON.stringify(zclFrame.Header)}]`);
2701
+ logger_1.logger.debug(`~~~> [ZCL to=${networkAddress} apsFrame=${JSON.stringify(apsFrame)} header=${JSON.stringify(zclFrame.Header)}]`, NS);
2706
2702
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2707
2703
  const [status, messageTag] = (await this.ezsp.send(enums_2.EmberOutgoingMessageType.DIRECT, networkAddress, apsFrame, data, 0, // alias
2708
2704
  0));
2709
2705
  if (status !== enums_2.EmberStatus.SUCCESS) {
2710
- console.error(`~x~> [ZCL to=${networkAddress}] Failed to send request with status=${enums_2.EmberStatus[status]}.`);
2706
+ logger_1.logger.error(`~x~> [ZCL to=${networkAddress}] Failed to send request with status=${enums_2.EmberStatus[status]}.`, NS);
2711
2707
  return status; // let queue handle retry based on status
2712
2708
  }
2713
2709
  if (commandResponseId != null) {
@@ -2750,13 +2746,13 @@ class EmberAdapter extends __1.Adapter {
2750
2746
  return enums_2.EmberStatus.MESSAGE_TOO_LONG; // queue will reject
2751
2747
  }
2752
2748
  }
2753
- debug(`~~~> [ZCL GROUP apsFrame=${JSON.stringify(apsFrame)} header=${JSON.stringify(zclFrame.Header)}]`);
2749
+ logger_1.logger.debug(`~~~> [ZCL GROUP apsFrame=${JSON.stringify(apsFrame)} header=${JSON.stringify(zclFrame.Header)}]`, NS);
2754
2750
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2755
2751
  const [status, messageTag] = (await this.ezsp.send(enums_2.EmberOutgoingMessageType.MULTICAST, apsFrame.groupId, // not used for MC
2756
2752
  apsFrame, data, 0, // alias
2757
2753
  0));
2758
2754
  if (status !== enums_2.EmberStatus.SUCCESS) {
2759
- console.error(`~x~> [ZCL GROUP] Failed to send with status=${enums_2.EmberStatus[status]}.`);
2755
+ logger_1.logger.error(`~x~> [ZCL GROUP] Failed to send with status=${enums_2.EmberStatus[status]}.`, NS);
2760
2756
  return status; // let queue handle retry based on status
2761
2757
  }
2762
2758
  // NOTE: since ezspMessageSentHandler could take a while here, we don't block, it'll just be logged if the delivery failed
@@ -2788,12 +2784,12 @@ class EmberAdapter extends __1.Adapter {
2788
2784
  return enums_2.EmberStatus.MESSAGE_TOO_LONG; // queue will reject
2789
2785
  }
2790
2786
  }
2791
- debug(`~~~> [ZCL BROADCAST apsFrame=${JSON.stringify(apsFrame)} header=${JSON.stringify(zclFrame.Header)}]`);
2787
+ logger_1.logger.debug(`~~~> [ZCL BROADCAST apsFrame=${JSON.stringify(apsFrame)} header=${JSON.stringify(zclFrame.Header)}]`, NS);
2792
2788
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2793
2789
  const [status, messageTag] = (await this.ezsp.send(enums_2.EmberOutgoingMessageType.BROADCAST, consts_2.EMBER_RX_ON_WHEN_IDLE_BROADCAST_ADDRESS, apsFrame, data, 0, // alias
2794
2790
  0));
2795
2791
  if (status !== enums_2.EmberStatus.SUCCESS) {
2796
- console.error(`~x~> [ZCL BROADCAST] Failed to send with status=${enums_2.EmberStatus[status]}.`);
2792
+ logger_1.logger.error(`~x~> [ZCL BROADCAST] Failed to send with status=${enums_2.EmberStatus[status]}.`, NS);
2797
2793
  return status; // let queue handle retry based on status
2798
2794
  }
2799
2795
  // NOTE: since ezspMessageSentHandler could take a while here, we don't block, it'll just be logged if the delivery failed
@@ -2808,7 +2804,7 @@ class EmberAdapter extends __1.Adapter {
2808
2804
  // queued
2809
2805
  async setChannelInterPAN(channel) {
2810
2806
  if (typeof channel !== 'number') {
2811
- console.error(`Tried to set channel InterPAN to non-number. Channel ${channel} of type ${typeof channel}.`);
2807
+ logger_1.logger.error(`Tried to set channel InterPAN to non-number. Channel ${channel} of type ${typeof channel}.`, NS);
2812
2808
  return;
2813
2809
  }
2814
2810
  return new Promise((resolve, reject) => {
@@ -2817,7 +2813,7 @@ class EmberAdapter extends __1.Adapter {
2817
2813
  const status = (await this.ezsp.ezspSetLogicalAndRadioChannel(channel));
2818
2814
  if (status !== enums_2.EmberStatus.SUCCESS) {
2819
2815
  this.interpanLock = false; // XXX: ok?
2820
- console.error(`Failed to set InterPAN channel to ${channel} with status=${enums_2.EmberStatus[status]}.`);
2816
+ logger_1.logger.error(`Failed to set InterPAN channel to ${channel} with status=${enums_2.EmberStatus[status]}.`, NS);
2821
2817
  return status;
2822
2818
  }
2823
2819
  resolve();
@@ -2843,10 +2839,10 @@ class EmberAdapter extends __1.Adapter {
2843
2839
  msgBuffalo.writeUInt8((enums_2.EmberInterpanMessageType.UNICAST | consts_2.INTERPAN_APS_FRAME_TYPE)); // apsFrameControl
2844
2840
  msgBuffalo.writeUInt16(zclFrame.Cluster.ID);
2845
2841
  msgBuffalo.writeUInt16(consts_2.TOUCHLINK_PROFILE_ID);
2846
- debug(`~~~> [ZCL TOUCHLINK to=${ieeeAddress} header=${JSON.stringify(zclFrame.Header)}]`);
2842
+ logger_1.logger.debug(`~~~> [ZCL TOUCHLINK to=${ieeeAddress} header=${JSON.stringify(zclFrame.Header)}]`, NS);
2847
2843
  const status = (await this.ezsp.ezspSendRawMessage(Buffer.concat([msgBuffalo.getWritten(), zclFrame.toBuffer()])));
2848
2844
  if (status !== enums_2.EmberStatus.SUCCESS) {
2849
- console.error(`~x~> [ZCL TOUCHLINK to=${ieeeAddress}] Failed to send with status=${enums_2.EmberStatus[status]}.`);
2845
+ logger_1.logger.error(`~x~> [ZCL TOUCHLINK to=${ieeeAddress}] Failed to send with status=${enums_2.EmberStatus[status]}.`, NS);
2850
2846
  return status;
2851
2847
  }
2852
2848
  // NOTE: can use ezspRawTransmitCompleteHandler if needed here
@@ -2888,10 +2884,10 @@ class EmberAdapter extends __1.Adapter {
2888
2884
  msgBuffalo.writeUInt16(apsFrame.clusterId);
2889
2885
  msgBuffalo.writeUInt16(apsFrame.profileId);
2890
2886
  const data = Buffer.concat([msgBuffalo.getWritten(), zclFrame.toBuffer()]);
2891
- debug(`~~~> [ZCL TOUCHLINK BROADCAST header=${JSON.stringify(zclFrame.Header)}]`);
2887
+ logger_1.logger.debug(`~~~> [ZCL TOUCHLINK BROADCAST header=${JSON.stringify(zclFrame.Header)}]`, NS);
2892
2888
  const status = (await this.ezsp.ezspSendRawMessage(data));
2893
2889
  if (status !== enums_2.EmberStatus.SUCCESS) {
2894
- console.error(`~x~> [ZCL TOUCHLINK BROADCAST] Failed to send with status=${enums_2.EmberStatus[status]}.`);
2890
+ logger_1.logger.error(`~x~> [ZCL TOUCHLINK BROADCAST] Failed to send with status=${enums_2.EmberStatus[status]}.`, NS);
2895
2891
  return status;
2896
2892
  }
2897
2893
  // NOTE: can use ezspRawTransmitCompleteHandler if needed here
@@ -2912,7 +2908,7 @@ class EmberAdapter extends __1.Adapter {
2912
2908
  this.requestQueue.enqueue(async () => {
2913
2909
  const status = (await this.ezsp.ezspSetLogicalAndRadioChannel(this.networkOptions.channelList[0]));
2914
2910
  if (status !== enums_2.EmberStatus.SUCCESS) {
2915
- console.error(`Failed to restore InterPAN channel to ${this.networkOptions.channelList[0]} with status=${enums_2.EmberStatus[status]}.`);
2911
+ logger_1.logger.error(`Failed to restore InterPAN channel to ${this.networkOptions.channelList[0]} with status=${enums_2.EmberStatus[status]}.`, NS);
2916
2912
  return status;
2917
2913
  }
2918
2914
  // let adapter settle down
@@ -2926,7 +2922,7 @@ class EmberAdapter extends __1.Adapter {
2926
2922
  //-- END Adapter implementation
2927
2923
  checkInterpanLock() {
2928
2924
  if (this.interpanLock) {
2929
- console.error(`[INTERPAN MODE] Cannot execute non-InterPAN commands.`);
2925
+ logger_1.logger.error(`[INTERPAN MODE] Cannot execute non-InterPAN commands.`, NS);
2930
2926
  // will be caught by request queue and rejected internally.
2931
2927
  throw new Error(enums_2.EzspStatus[enums_2.EzspStatus.ERROR_INVALID_CALL]);
2932
2928
  }