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.
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +7 -0
- package/dist/adapter/deconz/adapter/deconzAdapter.js +1 -1
- package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.d.ts +1 -1
- package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.js +3 -5
- package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
- package/dist/controller/controller.d.ts +1 -0
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/controller/controller.js +25 -9
- package/dist/controller/controller.js.map +1 -1
- package/dist/controller/greenPower.d.ts +5 -3
- package/dist/controller/greenPower.d.ts.map +1 -1
- package/dist/controller/greenPower.js +157 -75
- package/dist/controller/greenPower.js.map +1 -1
- package/dist/controller/model/device.d.ts +3 -1
- package/dist/controller/model/device.d.ts.map +1 -1
- package/dist/controller/model/device.js +10 -4
- package/dist/controller/model/device.js.map +1 -1
- package/dist/controller/tstype.d.ts +1 -0
- package/dist/controller/tstype.d.ts.map +1 -1
- package/dist/zspec/zcl/buffaloZcl.d.ts +19 -2
- package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -1
- package/dist/zspec/zcl/buffaloZcl.js +17 -14
- package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
- package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/cluster.js +33 -11
- package/dist/zspec/zcl/definition/cluster.js.map +1 -1
- package/dist/zspec/zcl/definition/enums.d.ts +1 -1
- package/dist/zspec/zcl/definition/enums.js +1 -1
- 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 =
|
|
42
|
-
const node_events_1 =
|
|
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
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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 (
|
|
80
|
-
|
|
81
|
-
|
|
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:
|
|
103
|
+
case 0b00:
|
|
86
104
|
case 0b11: {
|
|
87
|
-
|
|
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 (
|
|
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(
|
|
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,
|
|
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(`
|
|
165
|
+
logger_1.logger.info(`[COMMISSIONING] from=${dataPayload.address}`, NS);
|
|
125
166
|
/* v8 ignore start */
|
|
126
|
-
if (
|
|
127
|
-
|
|
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
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
//
|
|
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,
|
|
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
|
-
|
|
155
|
-
options:
|
|
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
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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
|
|
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
|
|
187
|
-
|
|
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(`
|
|
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
|
-
|
|
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
|
|
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(`
|
|
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":"AAEA,OAAO,EAAC,MAAM,IAAI,aAAa,EAAC,MAAM,eAAe,CAAC;AAOtD,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,iBAAiB,EAAE,cAAc,EAAC,MAAM,mCAAmC,CAAC;AAEpF,OAAO,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAGjD,OAAO,EAAgB,UAAU,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAC;AAC9D,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,MAAM,MAAM,UAAU,CAAC;AAS9B,UAAU,GAAG;IACT,SAAS,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;CACP;AAED,UAAU,YAAY;IAClB,KAAK,EAAE;QAAC,kBAAkB,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;CAC1E;AAED,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;AAE5E,qBAAa,MAAO,SAAQ,MAAM,CAAC,kBAAkB,CAAC;IAClD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,mBAAmB,CAAU;IACrC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,iBAAiB,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,oBAAoB,CAAU;IACtC,OAAO,CAAC,mBAAmB,CAAC,CAAqB;IACjD,OAAO,CAAC,kCAAkC,CAAC,CAAS;IACpD,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,eAAe,CAAsB;
|
|
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);
|