zigbee-herdsman 3.4.1 → 3.4.2

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 (32) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +7 -0
  3. package/dist/adapter/deconz/adapter/deconzAdapter.js +1 -1
  4. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  5. package/dist/adapter/ember/ezsp/ezsp.d.ts +1 -1
  6. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
  7. package/dist/adapter/ember/ezsp/ezsp.js +3 -5
  8. package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
  9. package/dist/controller/controller.d.ts +1 -0
  10. package/dist/controller/controller.d.ts.map +1 -1
  11. package/dist/controller/controller.js +25 -9
  12. package/dist/controller/controller.js.map +1 -1
  13. package/dist/controller/greenPower.d.ts +5 -3
  14. package/dist/controller/greenPower.d.ts.map +1 -1
  15. package/dist/controller/greenPower.js +157 -75
  16. package/dist/controller/greenPower.js.map +1 -1
  17. package/dist/controller/model/device.d.ts +3 -1
  18. package/dist/controller/model/device.d.ts.map +1 -1
  19. package/dist/controller/model/device.js +10 -4
  20. package/dist/controller/model/device.js.map +1 -1
  21. package/dist/controller/tstype.d.ts +1 -0
  22. package/dist/controller/tstype.d.ts.map +1 -1
  23. package/dist/zspec/zcl/buffaloZcl.d.ts +19 -2
  24. package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -1
  25. package/dist/zspec/zcl/buffaloZcl.js +17 -14
  26. package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
  27. package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
  28. package/dist/zspec/zcl/definition/cluster.js +33 -11
  29. package/dist/zspec/zcl/definition/cluster.js.map +1 -1
  30. package/dist/zspec/zcl/definition/enums.d.ts +1 -1
  31. package/dist/zspec/zcl/definition/enums.js +1 -1
  32. package/package.json +1 -1
@@ -38,8 +38,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.GreenPower = void 0;
40
40
  const node_assert_1 = __importDefault(require("node:assert"));
41
- const node_crypto_1 = __importDefault(require("node:crypto"));
42
- const node_events_1 = __importDefault(require("node:events"));
41
+ const node_crypto_1 = require("node:crypto");
42
+ const node_events_1 = require("node:events");
43
+ const zigbee_1 = require("zigbee-on-host/dist/zigbee/zigbee");
43
44
  const logger_1 = require("../utils/logger");
44
45
  const consts_1 = require("../zspec/consts");
45
46
  const enums_1 = require("../zspec/enums");
@@ -47,160 +48,234 @@ const Zcl = __importStar(require("../zspec/zcl"));
47
48
  const zclTransactionSequenceNumber_1 = __importDefault(require("./helpers/zclTransactionSequenceNumber"));
48
49
  const model_1 = require("./model");
49
50
  const NS = 'zh:controller:greenpower';
50
- const zigBeeLinkKey = Buffer.from([0x5a, 0x69, 0x67, 0x42, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x30, 0x39]);
51
- class GreenPower extends node_events_1.default.EventEmitter {
51
+ class GreenPower extends node_events_1.EventEmitter {
52
52
  adapter;
53
53
  constructor(adapter) {
54
54
  super();
55
55
  this.adapter = adapter;
56
56
  }
57
57
  encryptSecurityKey(sourceID, securityKey) {
58
- const sourceIDInBytes = Buffer.from([
59
- sourceID & 0x000000ff,
60
- (sourceID & 0x0000ff00) >> 8,
61
- (sourceID & 0x00ff0000) >> 16,
62
- (sourceID & 0xff000000) >> 24,
63
- ]);
64
58
  const nonce = Buffer.alloc(13);
65
- for (let i = 0; i < 3; i++) {
66
- for (let j = 0; j < 4; j++) {
67
- nonce[4 * i + j] = sourceIDInBytes[j];
68
- }
69
- }
70
- nonce[12] = 0x05;
71
- const cipher = node_crypto_1.default.createCipheriv('aes-128-ccm', zigBeeLinkKey, nonce, { authTagLength: 16 });
59
+ nonce.writeUInt32LE(sourceID, 0);
60
+ nonce.writeUInt32LE(sourceID, 4);
61
+ nonce.writeUInt32LE(sourceID, 8);
62
+ nonce.writeUInt8(0x05, 12);
63
+ const cipher = (0, node_crypto_1.createCipheriv)('aes-128-ccm', Buffer.from(consts_1.INTEROPERABILITY_LINK_KEY), nonce, { authTagLength: 16 });
72
64
  const encrypted = cipher.update(securityKey);
73
65
  return Buffer.concat([encrypted, cipher.final()]);
74
66
  }
75
- /* eslint-disable-next-line @typescript-eslint/no-explicit-any*/
76
- async sendPairingCommand(payload, dataPayload, frame) {
77
- logger_1.logger.debug(`Payload.Options: ${payload.options} wasBroadcast: ${dataPayload.wasBroadcast}`, NS);
67
+ decryptPayload(sourceID, frameCounter, securityKey, payload) {
68
+ const nonce = Buffer.alloc(13);
69
+ nonce.writeUInt32LE(sourceID, 0);
70
+ nonce.writeUInt32LE(sourceID, 4);
71
+ nonce.writeUInt32LE(frameCounter, 8);
72
+ nonce.writeUInt8(0x05, 12);
73
+ const [, decryptedPayload] = (0, zigbee_1.aes128CcmStar)(4, securityKey, nonce, payload);
74
+ return decryptedPayload;
75
+ }
76
+ async sendPairingCommand(payload, wasBroadcast, gppNwkAddr) {
77
+ const appId = payload.options & 0x7;
78
+ // const addSink = Boolean(payload.options & 0x8);
79
+ // const removeGpd = Boolean(payload.options & 0x10);
80
+ const communicationMode = (payload.options >> 5) & 0x3;
81
+ // const gpdFixed = Boolean(payload.options & 0x80);
82
+ // const gpdMacSeqNumCapabilities = Boolean(payload.options & 0x100);
83
+ // const securityLevel = (payload.options >> 9) & 0x2;
84
+ // const securityKeyType = (payload.options >> 11) & 0x3;
85
+ // const gpdSecurityFrameCounterPresent = Boolean(payload.options & 0x4000);
86
+ // const gpdSecurityKeyPresent = Boolean(payload.options & 0x8000);
87
+ // const assignedAliasPresent = Boolean(payload.options & 0x10000);
88
+ // const groupcastRadiusPresent = Boolean(payload.options & 0x20000);
89
+ // payload.options bits 18..23 reserved
90
+ logger_1.logger.debug(`[PAIRING] options=${payload.options} (appId=${appId} communicationMode=${communicationMode}) wasBroadcast=${wasBroadcast} gppNwkAddr=${gppNwkAddr}`, NS);
78
91
  // Set sink address based on communication mode
79
- switch ((payload.options >> 5) & 3) {
80
- case 0b10: // Groupcast to pre-commissioned GroupID
81
- case 0b01: // Groupcast to DGroupID
92
+ switch (communicationMode) {
93
+ // Groupcast forwarding to pre-commissioned GroupID
94
+ // Groupcast forwarding to DGroupID
95
+ case 0b10:
96
+ case 0b01: {
82
97
  payload.sinkGroupID = consts_1.GP_GROUP_ID;
83
98
  break;
99
+ }
100
+ // Full unicast forwarding
101
+ // Lightweight unicast forwarding
84
102
  /* v8 ignore next */
85
- case 0b00: // Full unicast forwarding
103
+ case 0b00:
86
104
  case 0b11: {
87
- // Lightweight unicast forwarding
88
- const coordinatorIEEE = await this.adapter.getCoordinatorIEEE();
89
- payload.sinkIEEEAddr = coordinatorIEEE;
105
+ payload.sinkIEEEAddr = await this.adapter.getCoordinatorIEEE();
90
106
  payload.sinkNwkAddr = consts_1.COORDINATOR_ADDRESS;
91
107
  break;
92
108
  }
93
- /* v8 ignore start */
94
- default:
95
- logger_1.logger.error(`Unhandled applicationID: ${payload.options & 7}`, NS);
96
- return;
97
- /* v8 ignore stop */
98
109
  }
99
110
  const replyFrame = Zcl.Frame.create(Zcl.FrameType.SPECIFIC, Zcl.Direction.SERVER_TO_CLIENT, true, undefined, zclTransactionSequenceNumber_1.default.next(), 'pairing', Zcl.Clusters.greenPower.ID, payload, {});
100
111
  // Not sure how correct this is - according to GP spec Pairing command is
101
112
  // to be sent as broadcast unless communication mode is 0b11 - in which case
102
113
  // the proxy MAY send it as unicast to selected proxy.
103
114
  // This attempts to mirror logic from commit 92f77cc5.
104
- if (dataPayload.wasBroadcast) {
115
+ if (wasBroadcast) {
105
116
  return await this.adapter.sendZclFrameToAll(consts_1.GP_ENDPOINT, replyFrame, consts_1.GP_ENDPOINT, enums_1.BroadcastAddress.RX_ON_WHEN_IDLE);
106
117
  }
107
118
  else {
108
- const device = model_1.Device.byNetworkAddress(frame.payload.gppNwkAddr);
119
+ const device = model_1.Device.byNetworkAddress(gppNwkAddr ?? /* v8 ignore next */ consts_1.COORDINATOR_ADDRESS);
109
120
  (0, node_assert_1.default)(device, 'Failed to find green power proxy device');
110
- return await this.adapter.sendZclFrameToEndpoint(device.ieeeAddr, frame.payload.gppNwkAddr, consts_1.GP_ENDPOINT, replyFrame, 10000, false, false, consts_1.GP_ENDPOINT);
121
+ return await this.adapter.sendZclFrameToEndpoint(device.ieeeAddr, device.networkAddress, consts_1.GP_ENDPOINT, replyFrame, 10000, false, false, consts_1.GP_ENDPOINT);
111
122
  }
112
123
  }
113
- async onZclGreenPowerData(dataPayload, frame) {
124
+ async onZclGreenPowerData(dataPayload, frame, securityKey) {
114
125
  try {
126
+ const fullEncr = ((frame.payload.options >> 6) & 0x3) === 0x3;
127
+ if (fullEncr) {
128
+ if (!securityKey) {
129
+ logger_1.logger.error(`[FULLENCR] from=${dataPayload.address} commandIdentifier=${frame.header.commandIdentifier} Unknown security key`, NS);
130
+ return frame;
131
+ }
132
+ if (frame.header.commandIdentifier === Zcl.Clusters.greenPower.commands.notification.ID) {
133
+ /* v8 ignore start */
134
+ if (frame.payload.srcID === undefined) {
135
+ // ApplicationID = 0b010 indicates the GPD ID field has the length of 8B and contains the GPD IEEE address; the Endpoint field is present.
136
+ // Note: no device are currently known to use this (too expensive)
137
+ logger_1.logger.error(`[FULLENCR] from=${dataPayload.address} GPD ID containing IEEE address is not supported`, NS);
138
+ return frame;
139
+ }
140
+ /* v8 ignore stop */
141
+ const hashedKey = this.encryptSecurityKey(frame.payload.srcID, securityKey);
142
+ const oldHeader = dataPayload.data.subarray(0, 15);
143
+ // 4 bytes appended for MIC placeholder (just needs the bytes present for decrypt)
144
+ const payload = Buffer.from([frame.payload.commandID, ...dataPayload.data.subarray(15), 0, 0, 0, 0]);
145
+ // if the device has a registered security key, we assume it uses encrypted payloads
146
+ const decrypted = this.decryptPayload(frame.payload.srcID, frame.payload.frameCounter, hashedKey, payload);
147
+ const newHeader = Buffer.alloc(15);
148
+ newHeader.set(oldHeader, 0);
149
+ newHeader.writeUInt8(decrypted[0], oldHeader.byteLength - 2); // commandID
150
+ newHeader.writeUInt8(decrypted.byteLength - 1, oldHeader.byteLength - 1); // payloadSize
151
+ // re-parse with decrypted data
152
+ frame = Zcl.Frame.fromBuffer(dataPayload.clusterID, dataPayload.header, Buffer.concat([newHeader, decrypted.subarray(1)]), {});
153
+ /* v8 ignore start */
154
+ }
155
+ else {
156
+ logger_1.logger.error(`[FULLENCR] from=${dataPayload.address} commandIdentifier=${frame.header.commandIdentifier} Not supported`, NS);
157
+ return frame;
158
+ }
159
+ /* v8 ignore stop */
160
+ }
115
161
  const commandID = frame.payload.commandID ?? frame.header.commandIdentifier;
116
162
  switch (commandID) {
117
- /* v8 ignore start */
118
- case undefined:
119
- logger_1.logger.error(`Received undefined command from '${dataPayload.address}'`, NS);
120
- break;
121
- /* v8 ignore stop */
122
163
  case 0xe0: {
123
164
  // GP Commissioning
124
- logger_1.logger.info(`Received commissioning from '${dataPayload.address}'`, NS);
165
+ logger_1.logger.info(`[COMMISSIONING] from=${dataPayload.address}`, NS);
125
166
  /* v8 ignore start */
126
- if (typeof dataPayload.address !== 'number') {
127
- logger_1.logger.error(`Commissioning request with string type address unsupported for '${dataPayload.address}'`, NS);
167
+ if (frame.payload.srcID === undefined) {
168
+ // ApplicationID = 0b010 indicates the GPD ID field has the length of 8B and contains the GPD IEEE address; the Endpoint field is present.
169
+ // Note: no device are currently known to use this (too expensive)
170
+ logger_1.logger.error(`[COMMISSIONING] from=${dataPayload.address} GPD ID containing IEEE address is not supported`, NS);
128
171
  break;
129
172
  }
130
173
  /* v8 ignore stop */
131
- const rxOnCap = frame.payload.commandFrame.options & 0b10;
132
- const key = this.encryptSecurityKey(frame.payload.srcID, frame.payload.commandFrame.securityKey);
133
- // RX capable GPD needs GP Commissioning Reply
174
+ /* v8 ignore start */
175
+ if (frame.payload.gppGpdLink !== undefined) {
176
+ const rssi = frame.payload.gppGpdLink & 0x3f;
177
+ const linkQuality = (frame.payload.gppGpdLink >> 6) & 0x3;
178
+ let linkQualityStr;
179
+ switch (linkQuality) {
180
+ case 0b00:
181
+ linkQualityStr = 'Poor';
182
+ break;
183
+ case 0b01:
184
+ linkQualityStr = 'Moderate';
185
+ break;
186
+ case 0b10:
187
+ linkQualityStr = 'High';
188
+ break;
189
+ case 0b11:
190
+ linkQualityStr = 'Excellent';
191
+ break;
192
+ }
193
+ logger_1.logger.info(`[COMMISSIONING] from=${dataPayload.address} rssi=${rssi} linkQuality=${linkQualityStr}`, NS);
194
+ }
195
+ /* v8 ignore stop */
196
+ /* v8 ignore start */
197
+ if (frame.payload.options & 0x200) {
198
+ logger_1.logger.warning(`[COMMISSIONING] from=${dataPayload.address} Security processing marked as failed`, NS);
199
+ }
200
+ /* v8 ignore stop */
201
+ const rxOnCap = frame.payload.commandFrame.options & 0x2;
134
202
  if (rxOnCap) {
135
- logger_1.logger.debug('RxOnCap set -> supports bidirectional communication', NS);
203
+ // RX capable GPD needs GP Commissioning Reply
204
+ logger_1.logger.debug(`[COMMISSIONING] from=${dataPayload.address} GPD has receiving capabilities in operational mode (RxOnCapability)`, NS);
136
205
  // NOTE: currently encryption is disabled for RX capable GPDs
137
206
  const networkParameters = await this.adapter.getNetworkParameters();
138
207
  // Commissioning reply
139
- const payloadReply = {
208
+ const payloadResponse = {
140
209
  options: 0,
141
- tempMaster: frame.payload.gppNwkAddr,
210
+ tempMaster: frame.payload.gppNwkAddr ?? /* v8 ignore next */ consts_1.COORDINATOR_ADDRESS,
142
211
  tempMasterTx: networkParameters.channel - 11,
143
212
  srcID: frame.payload.srcID,
144
213
  gpdCmd: 0xf0,
145
214
  gpdPayload: {
146
215
  commandID: 0xf0,
147
216
  options: 0b00000000, // Disable encryption
148
- // securityKey: [...frame.payload.commandFrame.securityKey],
217
+ // panID: number,
218
+ // securityKey: frame.payload.commandFrame.securityKey,
149
219
  // keyMic: frame.payload.commandFrame.keyMic,
220
+ // frameCounter: number,
150
221
  },
151
222
  };
152
- const replyFrame = Zcl.Frame.create(Zcl.FrameType.SPECIFIC, Zcl.Direction.SERVER_TO_CLIENT, true, undefined, zclTransactionSequenceNumber_1.default.next(), 'response', Zcl.Clusters.greenPower.ID, payloadReply, {});
223
+ const replyFrame = Zcl.Frame.create(Zcl.FrameType.SPECIFIC, Zcl.Direction.SERVER_TO_CLIENT, true, undefined, zclTransactionSequenceNumber_1.default.next(), 'response', Zcl.Clusters.greenPower.ID, payloadResponse, {});
153
224
  await this.adapter.sendZclFrameToAll(consts_1.GP_ENDPOINT, replyFrame, consts_1.GP_ENDPOINT, enums_1.BroadcastAddress.RX_ON_WHEN_IDLE);
154
- const payloadPairing = {
155
- options: 0b0000000110101000, // Disable encryption
225
+ await this.sendPairingCommand({
226
+ options: 0b000000000110101000, // Disable encryption
156
227
  srcID: frame.payload.srcID,
157
228
  deviceID: frame.payload.commandFrame.deviceID,
158
- };
159
- await this.sendPairingCommand(payloadPairing, dataPayload, frame);
229
+ }, dataPayload.wasBroadcast, frame.payload.gppNwkAddr);
160
230
  }
161
231
  else {
162
- // Communication mode:
163
- // Broadcast: Groupcast to precommissioned ID (0b10)
164
- // !Broadcast: Lightweight unicast (0b11)
165
- let opt = 0b1110010101101000;
166
- if (dataPayload.wasBroadcast) {
167
- opt = 0b1110010101001000;
168
- }
169
- const payload = {
170
- options: opt,
232
+ const gpdKey = this.encryptSecurityKey(frame.payload.srcID, frame.payload.commandFrame.securityKey);
233
+ await this.sendPairingCommand({
234
+ // Communication mode:
235
+ // Broadcast: Groupcast to precommissioned ID (0b10)
236
+ // !Broadcast: Lightweight unicast (0b11)
237
+ options: dataPayload.wasBroadcast ? 0b001110010101001000 : 0b001110010101101000,
171
238
  srcID: frame.payload.srcID,
172
239
  deviceID: frame.payload.commandFrame.deviceID,
173
240
  frameCounter: frame.payload.commandFrame.outgoingCounter,
174
- gpdKey: [...key],
175
- };
176
- await this.sendPairingCommand(payload, dataPayload, frame);
241
+ gpdKey,
242
+ }, dataPayload.wasBroadcast, frame.payload.gppNwkAddr);
177
243
  }
178
244
  this.emit('deviceJoined', {
179
245
  sourceID: frame.payload.srcID,
180
246
  deviceID: frame.payload.commandFrame.deviceID,
181
247
  networkAddress: frame.payload.srcID & 0xffff,
248
+ securityKey: frame.payload.commandFrame.securityKey,
182
249
  });
183
250
  break;
184
251
  }
185
252
  /* v8 ignore start */
186
- case 0xe2: // GP Success
187
- logger_1.logger.debug(`Received success from '${dataPayload.address}'`, NS);
253
+ case 0xe1:
254
+ // GP Success
255
+ logger_1.logger.debug(`[DECOMMISSIONING] from=${dataPayload.address}`, NS);
256
+ this.emit('deviceLeave', frame.payload.srcID);
257
+ break;
258
+ case 0xe2:
259
+ // GP Success
260
+ logger_1.logger.debug(`[SUCCESS] from=${dataPayload.address}`, NS);
188
261
  break;
189
262
  /* v8 ignore stop */
190
263
  case 0xe3: {
191
264
  // GP Channel Request
192
- logger_1.logger.debug(`Received channel request from '${dataPayload.address}'`, NS);
265
+ logger_1.logger.debug(`[CHANNEL_REQUEST] from=${dataPayload.address}`, NS);
193
266
  const networkParameters = await this.adapter.getNetworkParameters();
194
267
  // Channel notification
195
268
  const payload = {
196
269
  options: 0,
197
- tempMaster: frame.payload.gppNwkAddr,
270
+ tempMaster: frame.payload.gppNwkAddr ?? /* v8 ignore next */ consts_1.COORDINATOR_ADDRESS,
198
271
  tempMasterTx: frame.payload.commandFrame.nextChannel,
199
272
  srcID: frame.payload.srcID,
200
273
  gpdCmd: 0xf3,
201
274
  gpdPayload: {
202
275
  commandID: 0xf3,
203
- options: networkParameters.channel - 11,
276
+ operationalChannel: networkParameters.channel - 11,
277
+ /** This bit SHALL be set to 0b1 in GPD Channel Configuration commands sent by Basic Combo product. */
278
+ basic: true,
204
279
  },
205
280
  };
206
281
  const replyFrame = Zcl.Frame.create(Zcl.FrameType.SPECIFIC, Zcl.Direction.SERVER_TO_CLIENT, true, undefined, zclTransactionSequenceNumber_1.default.next(), 'response', Zcl.Clusters.greenPower.ID, payload, {});
@@ -208,19 +283,26 @@ class GreenPower extends node_events_1.default.EventEmitter {
208
283
  break;
209
284
  }
210
285
  /* v8 ignore start */
211
- case 0xa1: // GP Manufacturer-specific Attribute Reporting
286
+ case 0xe4:
287
+ // GP Success
288
+ logger_1.logger.debug(`[APP_DESCRIPTION] from=${dataPayload.address}`, NS);
289
+ break;
290
+ case 0xa1:
291
+ // GP Manufacturer-specific Attribute Reporting
212
292
  break;
213
293
  /* v8 ignore stop */
214
294
  default:
215
295
  // NOTE: this is spammy because it logs everything that is handed back to Controller without special processing here
216
- logger_1.logger.debug(`Received unhandled command '0x${commandID.toString(16)}' from '${dataPayload.address}'`, NS);
296
+ logger_1.logger.debug(`[UNHANDLED_CMD/PASSTHROUGH] command=0x${commandID.toString(16)} from=${dataPayload.address}`, NS);
217
297
  }
218
298
  /* v8 ignore start */
219
299
  }
220
300
  catch (error) {
221
301
  logger_1.logger.error(error.stack, NS);
302
+ return frame;
222
303
  }
223
304
  /* v8 ignore stop */
305
+ return frame;
224
306
  }
225
307
  async permitJoin(time, networkAddress) {
226
308
  const payload = {
@@ -1 +1 @@
1
- {"version":3,"file":"greenPower.js","sourceRoot":"","sources":["../../src/controller/greenPower.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"greenPower.js","sourceRoot":"","sources":["../../src/controller/greenPower.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,7 @@ export declare class Device extends Entity<ControllerEventMap> {
48
48
  private _checkinInterval?;
49
49
  private _pendingRequestTimeout;
50
50
  private _customClusters;
51
+ private _gpSecurityKey?;
51
52
  get ieeeAddr(): string;
52
53
  set ieeeAddr(ieeeAddr: string);
53
54
  get applicationVersion(): number | undefined;
@@ -89,6 +90,7 @@ export declare class Device extends Entity<ControllerEventMap> {
89
90
  get pendingRequestTimeout(): number;
90
91
  set pendingRequestTimeout(pendingRequestTimeout: number);
91
92
  get customClusters(): CustomClusters;
93
+ get gpSecurityKey(): number[] | undefined;
92
94
  meta: KeyValue;
93
95
  private static readonly devices;
94
96
  private static loadedFromDatabase;
@@ -128,7 +130,7 @@ export declare class Device extends Entity<ControllerEventMap> {
128
130
  static all(): Device[];
129
131
  static allIterator(predicate?: (value: Device) => boolean): Generator<Device>;
130
132
  undelete(interviewCompleted?: boolean): void;
131
- static create(type: DeviceType, ieeeAddr: string, networkAddress: number, manufacturerID: number | undefined, manufacturerName: string | undefined, powerSource: string | undefined, modelID: string | undefined, interviewCompleted: boolean): Device;
133
+ static create(type: DeviceType, ieeeAddr: string, networkAddress: number, manufacturerID: number | undefined, manufacturerName: string | undefined, powerSource: string | undefined, modelID: string | undefined, interviewCompleted: boolean, gpSecurityKey: number[] | undefined): Device;
132
134
  interview(ignoreCache?: boolean): Promise<void>;
133
135
  private interviewQuirks;
134
136
  private interviewInternal;
@@ -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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"}
@@ -79,6 +79,7 @@ class Device extends entity_1.default {
79
79
  _checkinInterval;
80
80
  _pendingRequestTimeout;
81
81
  _customClusters = {};
82
+ _gpSecurityKey;
82
83
  // Getters/setters
83
84
  get ieeeAddr() {
84
85
  return this._ieeeAddr;
@@ -209,6 +210,9 @@ class Device extends entity_1.default {
209
210
  get customClusters() {
210
211
  return this._customClusters;
211
212
  }
213
+ get gpSecurityKey() {
214
+ return this._gpSecurityKey;
215
+ }
212
216
  meta;
213
217
  // This lookup contains all devices that are queried from the database, this is to ensure that always
214
218
  // the same instance is returned.
@@ -272,7 +276,7 @@ class Device extends entity_1.default {
272
276
  },
273
277
  },
274
278
  };
275
- constructor(ID, type, ieeeAddr, networkAddress, manufacturerID, endpoints, manufacturerName, powerSource, modelID, applicationVersion, stackVersion, zclVersion, hardwareVersion, dateCode, softwareBuildID, interviewCompleted, meta, lastSeen, checkinInterval, pendingRequestTimeout) {
279
+ constructor(ID, type, ieeeAddr, networkAddress, manufacturerID, endpoints, manufacturerName, powerSource, modelID, applicationVersion, stackVersion, zclVersion, hardwareVersion, dateCode, softwareBuildID, interviewCompleted, meta, lastSeen, checkinInterval, pendingRequestTimeout, gpSecurityKey) {
276
280
  super();
277
281
  this.ID = ID;
278
282
  this._type = type;
@@ -296,6 +300,7 @@ class Device extends entity_1.default {
296
300
  this._lastSeen = lastSeen;
297
301
  this._checkinInterval = checkinInterval;
298
302
  this._pendingRequestTimeout = pendingRequestTimeout;
303
+ this._gpSecurityKey = gpSecurityKey;
299
304
  }
300
305
  createEndpoint(ID) {
301
306
  if (this.getEndpoint(ID)) {
@@ -493,7 +498,7 @@ class Device extends entity_1.default {
493
498
  pendingRequestTimeout = entry.checkinInterval * 1000; // milliseconds
494
499
  }
495
500
  logger_1.logger.debug(`Request Queue (${ieeeAddr}): default expiration timeout set to ${pendingRequestTimeout}`, NS);
496
- 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, entry.checkinInterval, pendingRequestTimeout);
501
+ 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, entry.checkinInterval, pendingRequestTimeout, entry.gpSecurityKey);
497
502
  }
498
503
  toDatabaseEntry() {
499
504
  const epList = this.endpoints.map((e) => e.ID);
@@ -522,6 +527,7 @@ class Device extends entity_1.default {
522
527
  meta: this.meta,
523
528
  lastSeen: this.lastSeen,
524
529
  checkinInterval: this.checkinInterval,
530
+ gpSecurityKey: this.gpSecurityKey,
525
531
  };
526
532
  }
527
533
  save(writeDatabase = true) {
@@ -583,13 +589,13 @@ class Device extends entity_1.default {
583
589
  throw new Error(`Device '${this.ieeeAddr}' is not deleted`);
584
590
  }
585
591
  }
586
- static create(type, ieeeAddr, networkAddress, manufacturerID, manufacturerName, powerSource, modelID, interviewCompleted) {
592
+ static create(type, ieeeAddr, networkAddress, manufacturerID, manufacturerName, powerSource, modelID, interviewCompleted, gpSecurityKey) {
587
593
  Device.loadFromDatabaseIfNecessary();
588
594
  if (Device.devices.has(ieeeAddr)) {
589
595
  throw new Error(`Device with IEEE address '${ieeeAddr}' already exists`);
590
596
  }
591
597
  const ID = entity_1.default.database.newID();
592
- const device = new Device(ID, type, ieeeAddr, networkAddress, manufacturerID, [], manufacturerName, powerSource, modelID, undefined, undefined, undefined, undefined, undefined, undefined, interviewCompleted, {}, undefined, undefined, 0);
598
+ const device = new Device(ID, type, ieeeAddr, networkAddress, manufacturerID, [], manufacturerName, powerSource, modelID, undefined, undefined, undefined, undefined, undefined, undefined, interviewCompleted, {}, undefined, undefined, 0, gpSecurityKey);
593
599
  entity_1.default.database.insert(device.toDatabaseEntry());
594
600
  Device.devices.set(device.ieeeAddr, device);
595
601
  Device.nwkToIeeeCache.set(device.networkAddress, device.ieeeAddr);