isy-nodejs 1.0.1-alpha.0 → 1.0.1-alpha.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/dist/cjs/ISY.js +113 -107
- package/dist/cjs/ISY.js.map +1 -1
- package/dist/cjs/ISYNode.js +21 -5
- package/dist/cjs/ISYNode.js.map +1 -1
- package/dist/cjs/types/ISY.d.ts +37 -37
- package/dist/cjs/types/ISY.d.ts.map +1 -1
- package/dist/cjs/types/ISYNode.d.ts.map +1 -1
- package/dist/esm/ISY.js +152 -146
- package/dist/esm/ISY.js.map +1 -1
- package/dist/esm/ISYNode.js +21 -5
- package/dist/esm/ISYNode.js.map +1 -1
- package/dist/esm/types/ISY.d.ts +37 -37
- package/dist/esm/types/ISY.d.ts.map +1 -1
- package/dist/esm/types/ISYNode.d.ts.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +3 -5
- package/src/ISY.ts +790 -817
- package/src/ISYNode.ts +19 -6
- package/dist/esm/Devices/Brultech/index.js +0 -4
- package/dist/esm/Devices/Brultech/index.js.map +0 -1
- package/dist/esm/Devices/Constructor.js +0 -2
- package/dist/esm/Devices/Constructor.js.map +0 -1
- package/dist/esm/Devices/DeviceFactory.js +0 -13
- package/dist/esm/Devices/DeviceFactory.js.map +0 -1
- package/dist/esm/Devices/DeviceMap.js +0 -4
- package/dist/esm/Devices/DeviceMap.js.map +0 -1
- package/dist/esm/Devices/Elk/ElkAlarmPanelDevice.js +0 -181
- package/dist/esm/Devices/Elk/ElkAlarmPanelDevice.js.map +0 -1
- package/dist/esm/Devices/Elk/ElkAlarmSensorDevice.js +0 -107
- package/dist/esm/Devices/Elk/ElkAlarmSensorDevice.js.map +0 -1
- package/dist/esm/Devices/EndpointFor.js +0 -31
- package/dist/esm/Devices/EndpointFor.js.map +0 -1
- package/dist/esm/Devices/ISYDevice.js +0 -35
- package/dist/esm/Devices/ISYDevice.js.map +0 -1
- package/dist/esm/Devices/ISYDeviceNode.js +0 -62
- package/dist/esm/Devices/ISYDeviceNode.js.map +0 -1
- package/dist/esm/Devices/ISYMultiNodeDevice.js +0 -89
- package/dist/esm/Devices/ISYMultiNodeDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonBallastDimmerDevice.js +0 -8
- package/dist/esm/Devices/Insteon/InsteonBallastDimmerDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonBaseDevice.js +0 -47
- package/dist/esm/Devices/Insteon/InsteonBaseDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonCOSensorDevice.js +0 -14
- package/dist/esm/Devices/Insteon/InsteonCOSensorDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonDevice.js +0 -17
- package/dist/esm/Devices/Insteon/InsteonDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js +0 -875
- package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonDimmableDevice.js +0 -32
- package/dist/esm/Devices/Insteon/InsteonDimmableDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonDimmerOutletDevice.js +0 -7
- package/dist/esm/Devices/Insteon/InsteonDimmerOutletDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonDimmerSwitchDevice.js +0 -8
- package/dist/esm/Devices/Insteon/InsteonDimmerSwitchDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonDoorWindowSensorDevice.js +0 -11
- package/dist/esm/Devices/Insteon/InsteonDoorWindowSensorDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonFanDevice.js +0 -56
- package/dist/esm/Devices/Insteon/InsteonFanDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonKeypadDevice.js +0 -8
- package/dist/esm/Devices/Insteon/InsteonKeypadDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonKeypadDimmerDevice.js +0 -8
- package/dist/esm/Devices/Insteon/InsteonKeypadDimmerDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonKeypadRelayDevice.js +0 -8
- package/dist/esm/Devices/Insteon/InsteonKeypadRelayDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonLeakSensorDevice.js +0 -11
- package/dist/esm/Devices/Insteon/InsteonLeakSensorDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonLockDevice.js +0 -32
- package/dist/esm/Devices/Insteon/InsteonLockDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonMotionSensorDevice.js +0 -36
- package/dist/esm/Devices/Insteon/InsteonMotionSensorDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js +0 -19
- package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonRelayDevice.js +0 -46
- package/dist/esm/Devices/Insteon/InsteonRelayDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonRelaySwitchDevice.js +0 -8
- package/dist/esm/Devices/Insteon/InsteonRelaySwitchDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonSmokeSensorDevice.js +0 -11
- package/dist/esm/Devices/Insteon/InsteonSmokeSensorDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonThermostatDevice.js +0 -30
- package/dist/esm/Devices/Insteon/InsteonThermostatDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/index.js +0 -31
- package/dist/esm/Devices/Insteon/index.js.map +0 -1
- package/dist/esm/Devices/Lutron/index.js +0 -4
- package/dist/esm/Devices/Lutron/index.js.map +0 -1
- package/dist/esm/Devices/MapsTo.js +0 -2
- package/dist/esm/Devices/MapsTo.js.map +0 -1
- package/dist/esm/Devices/NCD/index.js +0 -4
- package/dist/esm/Devices/NCD/index.js.map +0 -1
- package/dist/esm/Devices/NodeFactory.js +0 -48
- package/dist/esm/Devices/NodeFactory.js.map +0 -1
- package/dist/esm/Devices/Poly/index.js +0 -4
- package/dist/esm/Devices/Poly/index.js.map +0 -1
- package/dist/esm/Devices/Scene/index.js +0 -4
- package/dist/esm/Devices/Scene/index.js.map +0 -1
- package/dist/esm/Devices/UDI/index.js +0 -4
- package/dist/esm/Devices/UDI/index.js.map +0 -1
- package/dist/esm/Devices/ZWave/ZWaveBaseDevice.js +0 -38
- package/dist/esm/Devices/ZWave/ZWaveBaseDevice.js.map +0 -1
- package/dist/esm/Devices/ZWave/ZWaveDimmerSwitchDevice.js +0 -8
- package/dist/esm/Devices/ZWave/ZWaveDimmerSwitchDevice.js.map +0 -1
- package/dist/esm/Devices/ZWave/ZWaveLockDevice.js +0 -35
- package/dist/esm/Devices/ZWave/ZWaveLockDevice.js.map +0 -1
- package/dist/esm/Devices/ZWave/index.js +0 -20
- package/dist/esm/Devices/ZWave/index.js.map +0 -1
- package/dist/esm/Devices/index.js +0 -9
- package/dist/esm/Devices/index.js.map +0 -1
package/dist/cjs/ISY.js
CHANGED
|
@@ -102,12 +102,12 @@ const defaultParserOptions = {
|
|
|
102
102
|
mergeAttrs: true,
|
|
103
103
|
attrValueProcessors: [processors_js_1.parseNumbers, processors_js_1.parseBooleans],
|
|
104
104
|
valueProcessors: [processors_js_1.parseNumbers, processors_js_1.parseBooleans],
|
|
105
|
-
tagNameProcessors: [(tagName) => (tagName ===
|
|
105
|
+
tagNameProcessors: [(tagName) => (tagName === 'st' || tagName === 'cmd' || tagName === 'nodeDef' ? '' : tagName)]
|
|
106
106
|
};
|
|
107
107
|
const defaultXMLParserOptions = {
|
|
108
108
|
parseAttributeValue: true,
|
|
109
109
|
allowBooleanAttributes: true,
|
|
110
|
-
attributeNamePrefix:
|
|
110
|
+
attributeNamePrefix: '',
|
|
111
111
|
attributesGroupName: false,
|
|
112
112
|
ignoreAttributes: false,
|
|
113
113
|
// updateTag(tagName, jPath, attrs) {
|
|
@@ -115,20 +115,20 @@ const defaultXMLParserOptions = {
|
|
|
115
115
|
// // return false;
|
|
116
116
|
// //return tagName;
|
|
117
117
|
// },
|
|
118
|
-
textNodeName:
|
|
119
|
-
commentPropName:
|
|
120
|
-
cdataPropName:
|
|
118
|
+
textNodeName: '_',
|
|
119
|
+
commentPropName: '$comment',
|
|
120
|
+
cdataPropName: '$cdata',
|
|
121
121
|
ignoreDeclaration: true,
|
|
122
122
|
tagValueProcessor: (tagName, tagValue, jPath, hasAttributes, isLeafNode) => {
|
|
123
|
-
if (tagValue ===
|
|
123
|
+
if (tagValue === '')
|
|
124
124
|
return null;
|
|
125
125
|
return tagValue;
|
|
126
126
|
},
|
|
127
127
|
isArray(tagName, jPath, isLeafNode, isAttribute) {
|
|
128
|
-
if (tagName ===
|
|
128
|
+
if (tagName === 'property')
|
|
129
129
|
return true;
|
|
130
130
|
return false;
|
|
131
|
-
}
|
|
131
|
+
}
|
|
132
132
|
};
|
|
133
133
|
axios_1.default.defaults.transitional.forcedJSONParsing = false;
|
|
134
134
|
const parser = new xml2js_1.Parser(defaultParserOptions);
|
|
@@ -149,7 +149,7 @@ class ISY extends events_1.EventEmitter {
|
|
|
149
149
|
sceneList = new Map();
|
|
150
150
|
storagePath;
|
|
151
151
|
variableList = new Map();
|
|
152
|
-
wsprotocol =
|
|
152
|
+
wsprotocol = 'ws';
|
|
153
153
|
zoneMap = new Map();
|
|
154
154
|
static instance;
|
|
155
155
|
configInfo;
|
|
@@ -161,35 +161,35 @@ class ISY extends events_1.EventEmitter {
|
|
|
161
161
|
model;
|
|
162
162
|
nodesLoaded = false;
|
|
163
163
|
productId = 5226;
|
|
164
|
-
productName =
|
|
164
|
+
productName = 'eisy';
|
|
165
165
|
serverVersion;
|
|
166
|
-
vendorName =
|
|
166
|
+
vendorName = 'Universal Devices, Inc.';
|
|
167
167
|
webSocket;
|
|
168
168
|
// #endregion Properties (30)
|
|
169
169
|
// #region Constructors (1)
|
|
170
170
|
constructor(config, logger = new winston_1.Logger(), storagePath) {
|
|
171
171
|
super();
|
|
172
172
|
this.enableWebSocket = config.enableWebSocket ?? true;
|
|
173
|
-
this.storagePath = storagePath ??
|
|
174
|
-
this.displayNameFormat = config.displayNameFormat ??
|
|
173
|
+
this.storagePath = storagePath ?? './';
|
|
174
|
+
this.displayNameFormat = config.displayNameFormat ?? '${location ?? folder} ${spokenName ?? name}';
|
|
175
175
|
this.host = config.host;
|
|
176
176
|
this.port = config.port;
|
|
177
177
|
this.credentials = {
|
|
178
178
|
username: config.username,
|
|
179
|
-
password: config.password
|
|
179
|
+
password: config.password
|
|
180
180
|
};
|
|
181
181
|
this.protocol = config.protocol;
|
|
182
|
-
this.wsprotocol = config.protocol ===
|
|
182
|
+
this.wsprotocol = config.protocol === 'https' ? 'wss' : 'ws';
|
|
183
183
|
this.elkEnabled = config.elkEnabled ?? false;
|
|
184
184
|
this.nodesLoaded = false;
|
|
185
185
|
var fopts = (0, winston_1.format)((info) => {
|
|
186
186
|
info.message = JSON.stringify(info.message);
|
|
187
187
|
return info;
|
|
188
|
-
})({ label:
|
|
189
|
-
this.logger = winston_1.loggers.add(
|
|
188
|
+
})({ label: 'ISY' });
|
|
189
|
+
this.logger = winston_1.loggers.add('isy', {
|
|
190
190
|
transports: logger.transports,
|
|
191
191
|
levels: logger.levels,
|
|
192
|
-
format: winston_1.format.label({ label:
|
|
192
|
+
format: winston_1.format.label({ label: 'ISY' })
|
|
193
193
|
});
|
|
194
194
|
this.guardianTimer = null;
|
|
195
195
|
if (this.elkEnabled) {
|
|
@@ -275,7 +275,7 @@ class ISY extends events_1.EventEmitter {
|
|
|
275
275
|
else if (evt.action instanceof Number || evt.action instanceof String) {
|
|
276
276
|
actionValue = Number(evt.action);
|
|
277
277
|
}
|
|
278
|
-
const stringControl = Number(evt.control?.replace(
|
|
278
|
+
const stringControl = Number(evt.control?.replace('_', ''));
|
|
279
279
|
switch (stringControl) {
|
|
280
280
|
case EventType_js_1.EventType.Elk:
|
|
281
281
|
if (actionValue === 2) {
|
|
@@ -304,9 +304,9 @@ class ISY extends events_1.EventEmitter {
|
|
|
304
304
|
this.logger.debug(`Received ${EventType_js_1.EventType[Number(stringControl)]} Signal from ISY: ${JSON.stringify(evt)}`);
|
|
305
305
|
break;
|
|
306
306
|
default:
|
|
307
|
-
if (evt.node !==
|
|
307
|
+
if (evt.node !== '' && evt.node !== undefined && evt.node !== null) {
|
|
308
308
|
//
|
|
309
|
-
const impactedDevice = this.
|
|
309
|
+
const impactedDevice = this.getNode(evt.node);
|
|
310
310
|
if (impactedDevice !== undefined && impactedDevice !== null) {
|
|
311
311
|
impactedDevice.handleEvent(evt);
|
|
312
312
|
}
|
|
@@ -335,7 +335,7 @@ class ISY extends events_1.EventEmitter {
|
|
|
335
335
|
await this.#finishInitialize(true);
|
|
336
336
|
}
|
|
337
337
|
catch (e) {
|
|
338
|
-
this.handleInitializeError(
|
|
338
|
+
this.handleInitializeError('initialize', e);
|
|
339
339
|
}
|
|
340
340
|
finally {
|
|
341
341
|
if (this.nodesLoaded !== true) {
|
|
@@ -346,7 +346,7 @@ class ISY extends events_1.EventEmitter {
|
|
|
346
346
|
}
|
|
347
347
|
initializeWebSocket() {
|
|
348
348
|
const that = this;
|
|
349
|
-
const auth = `Basic ${Buffer.from(`${this.credentials.username}:${this.credentials.password}`).toString(
|
|
349
|
+
const auth = `Basic ${Buffer.from(`${this.credentials.username}:${this.credentials.password}`).toString('base64')}`;
|
|
350
350
|
this.logger.info(`Opening webSocket: ${this.wsprotocol}://${this.address}/rest/subscribe`);
|
|
351
351
|
if (this.webSocket) {
|
|
352
352
|
try {
|
|
@@ -356,42 +356,42 @@ class ISY extends events_1.EventEmitter {
|
|
|
356
356
|
this.logger.warn(`Error closing existing websocket: ${e.message}`);
|
|
357
357
|
}
|
|
358
358
|
}
|
|
359
|
-
this.webSocket = new faye_websocket_1.default.Client(`${this.wsprotocol}://${this.address}/rest/subscribe`, [
|
|
359
|
+
this.webSocket = new faye_websocket_1.default.Client(`${this.wsprotocol}://${this.address}/rest/subscribe`, ['ISYSUB'], {
|
|
360
360
|
headers: {
|
|
361
|
-
Origin:
|
|
362
|
-
Authorization: auth
|
|
361
|
+
Origin: 'com.universal-devices.websockets.isy',
|
|
362
|
+
Authorization: auth
|
|
363
363
|
},
|
|
364
|
-
ping: 10
|
|
364
|
+
ping: 10
|
|
365
365
|
});
|
|
366
366
|
this.lastActivity = new Date();
|
|
367
367
|
this.webSocket
|
|
368
|
-
.on(
|
|
368
|
+
.on('message', (event) => {
|
|
369
369
|
that.logger.silly(`Received message: ${JSON.stringify(event.data, null, 2)}`);
|
|
370
370
|
that.handleWebSocketMessage(event);
|
|
371
371
|
})
|
|
372
|
-
.on(
|
|
372
|
+
.on('error', (err, response) => {
|
|
373
373
|
that.logger.warn(`Websocket subscription error: ${JSON.stringify(err.message)}`);
|
|
374
374
|
/// throw new Error('Error calling ISY' + err);
|
|
375
375
|
})
|
|
376
|
-
.on(
|
|
376
|
+
.on('fail', (data, response) => {
|
|
377
377
|
that.logger.warn(`Websocket subscription failure: ${data}`);
|
|
378
|
-
throw new Error(
|
|
378
|
+
throw new Error('Failed calling ISY');
|
|
379
379
|
})
|
|
380
|
-
.on(
|
|
381
|
-
that.logger.warn(
|
|
382
|
-
throw new Error(
|
|
380
|
+
.on('abort', () => {
|
|
381
|
+
that.logger.warn('Websocket subscription aborted.');
|
|
382
|
+
throw new Error('Call to ISY was aborted');
|
|
383
383
|
})
|
|
384
|
-
.on(
|
|
384
|
+
.on('timeout', (ms) => {
|
|
385
385
|
that.logger.warn(`Websocket subscription timed out after ${ms} milliseconds.`);
|
|
386
|
-
throw new Error(
|
|
386
|
+
throw new Error('Timeout contacting ISY');
|
|
387
387
|
});
|
|
388
388
|
}
|
|
389
389
|
async loadConfig() {
|
|
390
390
|
try {
|
|
391
|
-
this.logger.info(
|
|
392
|
-
const configuration = (await this.sendRequest(
|
|
391
|
+
this.logger.info('Loading ISY Config');
|
|
392
|
+
const configuration = (await this.sendRequest('config')).configuration;
|
|
393
393
|
if (this.isDebugEnabled) {
|
|
394
|
-
(0, fs_1.writeFile)(this.storagePath +
|
|
394
|
+
(0, fs_1.writeFile)(this.storagePath + '/ISYConfigDump.json', JSON.stringify(configuration), this.logger.error);
|
|
395
395
|
}
|
|
396
396
|
const controls = configuration.controls;
|
|
397
397
|
this.model = configuration.deviceSpecs.model;
|
|
@@ -413,18 +413,18 @@ class ISY extends events_1.EventEmitter {
|
|
|
413
413
|
return configuration;
|
|
414
414
|
}
|
|
415
415
|
catch (e) {
|
|
416
|
-
this.handleInitializeError(
|
|
416
|
+
this.handleInitializeError('config', e);
|
|
417
417
|
throw Error(`Error Loading Config: ${e.message}`);
|
|
418
418
|
}
|
|
419
419
|
}
|
|
420
420
|
async loadNodes() {
|
|
421
421
|
try {
|
|
422
|
-
const result = await this.sendRequest(
|
|
422
|
+
const result = await this.sendRequest('nodes');
|
|
423
423
|
if (this.isDebugEnabled)
|
|
424
|
-
(0, fs_1.writeFile)(this.storagePath +
|
|
425
|
-
await this.#readFolderNodes(result).catch((p) => this.logger.error(
|
|
426
|
-
await this.#readDeviceNodes(result).catch((p) => this.logger.error(
|
|
427
|
-
await this.#readSceneNodes(result).catch((p) => this.logger.error(
|
|
424
|
+
(0, fs_1.writeFile)(this.storagePath + '/ISYNodesDump.json', JSON.stringify(result), this.logger.error);
|
|
425
|
+
await this.#readFolderNodes(result).catch((p) => this.logger.error('Error Loading Folders', p));
|
|
426
|
+
await this.#readDeviceNodes(result).catch((p) => this.logger.error('Error Loading Devices', p));
|
|
427
|
+
await this.#readSceneNodes(result).catch((p) => this.logger.error('Error Loading Scenes', p));
|
|
428
428
|
return result;
|
|
429
429
|
}
|
|
430
430
|
catch (e) {
|
|
@@ -453,9 +453,9 @@ class ISY extends events_1.EventEmitter {
|
|
|
453
453
|
async refreshStatuses() {
|
|
454
454
|
try {
|
|
455
455
|
const that = this;
|
|
456
|
-
const result = await that.sendRequest(
|
|
456
|
+
const result = await that.sendRequest('status');
|
|
457
457
|
if (that.isDebugEnabled) {
|
|
458
|
-
(0, fs_1.writeFile)(that.storagePath +
|
|
458
|
+
(0, fs_1.writeFile)(that.storagePath + '/ISYStatusDump.json', JSON.stringify(result), this.logger.error);
|
|
459
459
|
}
|
|
460
460
|
this.logger.debug(result);
|
|
461
461
|
for (const node of result.nodes.node) {
|
|
@@ -510,14 +510,14 @@ class ISY extends events_1.EventEmitter {
|
|
|
510
510
|
async sendNodeCommand(node, command, parameters) {
|
|
511
511
|
let uriToUse = `nodes/${node.address}/cmd/${command}`;
|
|
512
512
|
if (parameters !== null && parameters !== undefined) {
|
|
513
|
-
if (typeof parameters ==
|
|
513
|
+
if (typeof parameters == 'object') {
|
|
514
514
|
var q = parameters;
|
|
515
515
|
for (const paramName of Object.getOwnPropertyNames(q)) {
|
|
516
516
|
uriToUse += `/${paramName}/${q[paramName]}`;
|
|
517
517
|
}
|
|
518
518
|
//uriToUse += `/${q[((p : Record<string,number|number>) => `${p[]}/${p.paramValue}` ).join('/')}`;
|
|
519
519
|
}
|
|
520
|
-
else if (typeof parameters ==
|
|
520
|
+
else if (typeof parameters == 'number' || typeof parameters == 'string') {
|
|
521
521
|
uriToUse += `/${parameters}`;
|
|
522
522
|
}
|
|
523
523
|
}
|
|
@@ -527,28 +527,28 @@ class ISY extends events_1.EventEmitter {
|
|
|
527
527
|
async sendRequest(url, options = { trailingSlash: true }) {
|
|
528
528
|
const requestLogLevel = options.requestLogLevel ?? winston_1.default.config.cli.levels.debug;
|
|
529
529
|
const responseLogLevel = options.responseLogLevel ?? winston_1.default.config.cli.levels.silly;
|
|
530
|
-
url = `${this.protocol}://${this.address}/rest/${url}${options.trailingSlash ?
|
|
530
|
+
url = `${this.protocol}://${this.address}/rest/${url}${options.trailingSlash ? '/' : ''}`;
|
|
531
531
|
this.logger.log(`Sending request: ${url}`, requestLogLevel);
|
|
532
532
|
try {
|
|
533
533
|
const response = await axios_1.default.get(url, {
|
|
534
|
-
auth: { username: this.credentials.username, password: this.credentials.password }
|
|
534
|
+
auth: { username: this.credentials.username, password: this.credentials.password }
|
|
535
535
|
});
|
|
536
536
|
if (response.data) {
|
|
537
|
-
if (response.headers[
|
|
537
|
+
if (response.headers['content-type'].toString().includes('xml')) {
|
|
538
538
|
let curParser = parser;
|
|
539
539
|
if (options.parserOptions)
|
|
540
540
|
curParser = new xml2js_1.Parser({ ...defaultParserOptions, ...options.parserOptions });
|
|
541
541
|
var altParser = new fast_xml_parser_1.XMLParser(defaultXMLParserOptions);
|
|
542
542
|
var s = altParser.parse(response.data);
|
|
543
|
-
this.logger.log(`Response: ${JSON.stringify(s)}`, requestLogLevel ??
|
|
543
|
+
this.logger.log(`Response: ${JSON.stringify(s)}`, requestLogLevel ?? 'debug');
|
|
544
544
|
return s;
|
|
545
545
|
}
|
|
546
|
-
else if (response.headers[
|
|
547
|
-
this.logger.log(`Response: ${JSON.stringify(response.data)}`, requestLogLevel ??
|
|
546
|
+
else if (response.headers['content-type'].toString().includes('json')) {
|
|
547
|
+
this.logger.log(`Response: ${JSON.stringify(response.data)}`, requestLogLevel ?? 'debug');
|
|
548
548
|
return JSON.parse(response.data);
|
|
549
549
|
}
|
|
550
550
|
else {
|
|
551
|
-
this.logger.log(`Response Header: ${JSON.stringify(response.headers)} Response: ${JSON.stringify(response.data)}`, responseLogLevel ??
|
|
551
|
+
this.logger.log(`Response Header: ${JSON.stringify(response.headers)} Response: ${JSON.stringify(response.data)}`, responseLogLevel ?? 'debug');
|
|
552
552
|
return response.data;
|
|
553
553
|
}
|
|
554
554
|
}
|
|
@@ -569,9 +569,7 @@ class ISY extends events_1.EventEmitter {
|
|
|
569
569
|
// #endregion Public Methods (22)
|
|
570
570
|
// #region Private Methods (11)
|
|
571
571
|
#checkForFailure(response) {
|
|
572
|
-
return
|
|
573
|
-
response instanceof Error ||
|
|
574
|
-
(response.RestResponse !== undefined && response.RestResponse.status !== 200));
|
|
572
|
+
return response === null || response instanceof Error || (response.RestResponse !== undefined && response.RestResponse.status !== 200);
|
|
575
573
|
}
|
|
576
574
|
#createVariableKey(type, id) {
|
|
577
575
|
return `${type}:${id}`;
|
|
@@ -602,14 +600,14 @@ class ISY extends events_1.EventEmitter {
|
|
|
602
600
|
#guardian() {
|
|
603
601
|
const timeNow = new Date();
|
|
604
602
|
if (Number(timeNow) - Number(this.lastActivity) > 60000) {
|
|
605
|
-
this.logger.info(
|
|
603
|
+
this.logger.info('Guardian: Detected no activity in more then 60 seconds. Reinitializing web sockets');
|
|
606
604
|
this.initializeWebSocket();
|
|
607
605
|
}
|
|
608
606
|
}
|
|
609
607
|
#loadElkInitialStatus(result) {
|
|
610
608
|
const p = new xml2js_1.Parser({
|
|
611
609
|
explicitArray: false,
|
|
612
|
-
mergeAttrs: true
|
|
610
|
+
mergeAttrs: true
|
|
613
611
|
});
|
|
614
612
|
p.parseString(result, (err, res) => {
|
|
615
613
|
if (err) {
|
|
@@ -633,7 +631,7 @@ class ISY extends events_1.EventEmitter {
|
|
|
633
631
|
}
|
|
634
632
|
#loadElkNodes(result) {
|
|
635
633
|
const document = new xmldoc_1.XmlDocument(result);
|
|
636
|
-
const nodes = document.childNamed(
|
|
634
|
+
const nodes = document.childNamed('areas').childNamed('area').childrenNamed('zone');
|
|
637
635
|
for (let index = 0; index < nodes.length; index++) {
|
|
638
636
|
const id = nodes[index].attr.id;
|
|
639
637
|
const name = nodes[index].attr.name;
|
|
@@ -643,62 +641,70 @@ class ISY extends events_1.EventEmitter {
|
|
|
643
641
|
}
|
|
644
642
|
}
|
|
645
643
|
async #readDeviceNodes(obj) {
|
|
646
|
-
this.logger.info(
|
|
644
|
+
this.logger.info('Loading Device Nodes');
|
|
647
645
|
for (const nodeInfo of obj.nodes.node) {
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
let newDevice = null;
|
|
659
|
-
// let deviceTypeInfo = this.isyTypeToTypeName(device.type, device.address);
|
|
660
|
-
// this.logger.info(JSON.stringify(deviceTypeInfo));
|
|
661
|
-
const enabled = nodeInfo.enabled ?? true;
|
|
662
|
-
const d = await NodeFactory_js_1.NodeFactory.get(nodeInfo);
|
|
663
|
-
const m = DeviceFactory_js_1.DeviceFactory.getDeviceDetails(nodeInfo);
|
|
664
|
-
if (d) {
|
|
665
|
-
newDevice = new d(this, nodeInfo);
|
|
666
|
-
newDevice.productName = d.name;
|
|
667
|
-
newDevice.model = `(${m.modelNumber}) ${m.name} v.${m.version}`;
|
|
668
|
-
newDevice.modelNumber = m.modelNumber;
|
|
669
|
-
newDevice.version = m.version;
|
|
670
|
-
}
|
|
671
|
-
if (enabled) {
|
|
672
|
-
if (newDevice === null) {
|
|
673
|
-
this.logger.warn(`Device type resolution failed for ${nodeInfo.name} with type: ${nodeInfo.type} and nodedef: ${nodeInfo.nodeDefId}`);
|
|
674
|
-
newDevice = new ISYDeviceNode_js_1.ISYDeviceNode(this, nodeInfo);
|
|
646
|
+
try {
|
|
647
|
+
this.logger.debug(`Loading Device Node: ${JSON.stringify(nodeInfo)}`);
|
|
648
|
+
if (!this.deviceMap.has(nodeInfo.pnode)) {
|
|
649
|
+
const address = nodeInfo.address;
|
|
650
|
+
this.deviceMap[nodeInfo.pnode] = {
|
|
651
|
+
address
|
|
652
|
+
};
|
|
653
|
+
}
|
|
654
|
+
else {
|
|
655
|
+
this.deviceMap[nodeInfo.pnode].push(nodeInfo.address);
|
|
675
656
|
}
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
657
|
+
let newDevice = null;
|
|
658
|
+
// let deviceTypeInfo = this.isyTypeToTypeName(device.type, device.address);
|
|
659
|
+
// this.logger.info(JSON.stringify(deviceTypeInfo));
|
|
660
|
+
const enabled = nodeInfo.enabled ?? true;
|
|
661
|
+
const d = await NodeFactory_js_1.NodeFactory.get(nodeInfo);
|
|
662
|
+
const m = DeviceFactory_js_1.DeviceFactory.getDeviceDetails(nodeInfo);
|
|
663
|
+
if (d) {
|
|
664
|
+
newDevice = new d(this, nodeInfo);
|
|
665
|
+
}
|
|
666
|
+
if (m) {
|
|
667
|
+
newDevice = newDevice ?? new m.class(this, nodeInfo);
|
|
668
|
+
newDevice.productName = m.name;
|
|
669
|
+
newDevice.model = `(${m.modelNumber}) ${m.name} v.${m.version}`;
|
|
670
|
+
newDevice.modelNumber = m.modelNumber;
|
|
671
|
+
newDevice.version = m.version;
|
|
672
|
+
}
|
|
673
|
+
if (enabled) {
|
|
674
|
+
if (newDevice === null) {
|
|
675
|
+
this.logger.warn(`Device type resolution failed for ${nodeInfo.name} with type: ${nodeInfo.type} and nodedef: ${nodeInfo.nodeDefId}`);
|
|
676
|
+
newDevice = new ISYDeviceNode_js_1.ISYDeviceNode(this, nodeInfo);
|
|
679
677
|
}
|
|
680
|
-
|
|
681
|
-
|
|
678
|
+
else if (newDevice !== null) {
|
|
679
|
+
if (m.unsupported) {
|
|
680
|
+
this.logger.warn('Device not currently supported: ' + JSON.stringify(nodeInfo) + ' /n It has been mapped to: ' + d.name);
|
|
681
|
+
}
|
|
682
|
+
try {
|
|
683
|
+
await newDevice.refreshNotes();
|
|
684
|
+
}
|
|
685
|
+
catch (e) {
|
|
686
|
+
this.logger.debug('No notes found.');
|
|
687
|
+
}
|
|
688
|
+
// if (!newDevice.hidden) {
|
|
689
|
+
// }
|
|
690
|
+
// this.deviceList.push(newDevice);
|
|
682
691
|
}
|
|
683
|
-
|
|
684
|
-
this.logger.debug("No notes found.");
|
|
692
|
+
else {
|
|
685
693
|
}
|
|
686
|
-
|
|
687
|
-
// }
|
|
688
|
-
// this.deviceList.push(newDevice);
|
|
694
|
+
this.nodeMap.set(newDevice.address, newDevice);
|
|
689
695
|
}
|
|
690
696
|
else {
|
|
697
|
+
this.logger.info(`Ignoring disabled device: ${nodeInfo.name}`);
|
|
691
698
|
}
|
|
692
|
-
this.nodeMap.set(newDevice.address, newDevice);
|
|
693
699
|
}
|
|
694
|
-
|
|
695
|
-
this.logger.
|
|
700
|
+
catch (e) {
|
|
701
|
+
this.logger.error(`Error loading device node: ${e.message}`);
|
|
696
702
|
}
|
|
697
703
|
}
|
|
698
704
|
this.logger.info(`${this.nodeMap.size} devices added.`);
|
|
699
705
|
}
|
|
700
706
|
async #readFolderNodes(result) {
|
|
701
|
-
this.logger.info(
|
|
707
|
+
this.logger.info('Loading Folder Nodes');
|
|
702
708
|
if (result?.nodes?.folder) {
|
|
703
709
|
for (const folder of result.nodes.folder) {
|
|
704
710
|
this.logger.info(`Loading Folder Node: ${JSON.stringify(folder)}`);
|
|
@@ -707,9 +713,9 @@ class ISY extends events_1.EventEmitter {
|
|
|
707
713
|
}
|
|
708
714
|
}
|
|
709
715
|
async #readSceneNodes(result) {
|
|
710
|
-
this.logger.info(
|
|
716
|
+
this.logger.info('Loading Scene Nodes');
|
|
711
717
|
for (const scene of result.nodes?.group) {
|
|
712
|
-
if (scene.name ===
|
|
718
|
+
if (scene.name === 'ISY' || scene.name === 'IoX' || scene.name === 'Auto DR') {
|
|
713
719
|
continue;
|
|
714
720
|
} // Skip ISY & Auto DR Scenes
|
|
715
721
|
const newScene = new ISYScene_js_1.ISYScene(this, scene);
|
|
@@ -717,7 +723,7 @@ class ISY extends events_1.EventEmitter {
|
|
|
717
723
|
await newScene.refreshNotes();
|
|
718
724
|
}
|
|
719
725
|
catch (e) {
|
|
720
|
-
this.logger.debug(
|
|
726
|
+
this.logger.debug('No notes found.');
|
|
721
727
|
}
|
|
722
728
|
this.sceneList.set(newScene.address, newScene);
|
|
723
729
|
}
|
package/dist/cjs/ISY.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ISY.js","sourceRoot":"","sources":["../../src/ISY.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ISY.js","sourceRoot":"","sources":["../../src/ISY.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/ISYNode.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ISYNode = void 0;
|
|
4
4
|
const UOM_js_1 = require("./Definitions/Global/UOM.js");
|
|
5
5
|
const ISY_js_1 = require("./ISY.js");
|
|
6
|
+
const Converters_js_1 = require("./Converters.js");
|
|
6
7
|
const Events_js_1 = require("./Definitions/Global/Events.js");
|
|
7
8
|
//type DriverValues<DK extends string | number | symbol,V = any> = {[x in DK]?:V};
|
|
8
9
|
class ISYNode {
|
|
@@ -124,15 +125,30 @@ class ISYNode {
|
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
127
|
convert(value, from, to) {
|
|
127
|
-
|
|
128
|
+
if (from === to)
|
|
129
|
+
return value;
|
|
130
|
+
else {
|
|
131
|
+
try {
|
|
132
|
+
return Converters_js_1.Converters.Standard[from][to].from(value);
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
this.isy.logger.error(`Conversion from ${UOM_js_1.UnitOfMeasure[from]} to ${UOM_js_1.UnitOfMeasure[to]} not supported.`);
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
return value;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
128
141
|
}
|
|
129
142
|
convertFrom(value, uom, propertyName) {
|
|
130
|
-
|
|
143
|
+
if (this.drivers[propertyName]?.uom != uom) {
|
|
144
|
+
this.logger(`Converting ${this.drivers[propertyName].label} to ${UOM_js_1.UnitOfMeasure[this.drivers[propertyName]?.uom]} from ${UOM_js_1.UnitOfMeasure[uom]}`);
|
|
145
|
+
return this.convert(value, uom, this.drivers[propertyName].uom);
|
|
146
|
+
}
|
|
131
147
|
}
|
|
132
148
|
convertTo(value, uom, propertyName) {
|
|
133
|
-
if (this.drivers[propertyName]
|
|
134
|
-
this.isy.logger.debug(`Converting ${this.drivers[propertyName].label} from ${this.drivers[propertyName].uom} to ${UOM_js_1.UnitOfMeasure}`);
|
|
135
|
-
return this.
|
|
149
|
+
if (this.drivers[propertyName]?.uom != uom) {
|
|
150
|
+
this.isy.logger.debug(`Converting ${this.drivers[propertyName].label} from ${UOM_js_1.UnitOfMeasure[this.drivers[propertyName].uom]} to ${UOM_js_1.UnitOfMeasure[uom]}`);
|
|
151
|
+
return this.convert(value, uom, this.drivers[propertyName].uom);
|
|
136
152
|
}
|
|
137
153
|
}
|
|
138
154
|
emit(event, propertyName, newValue, oldValue, formattedValue, controlName) {
|