isy-nodejs 1.0.1-alpha.1 → 1.0.1-alpha.3

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 (107) hide show
  1. package/dist/cjs/ISY.js +113 -110
  2. package/dist/cjs/ISY.js.map +1 -1
  3. package/dist/cjs/ISYNode.js +22 -6
  4. package/dist/cjs/ISYNode.js.map +1 -1
  5. package/dist/cjs/types/ISY.d.ts +37 -37
  6. package/dist/cjs/types/ISY.d.ts.map +1 -1
  7. package/dist/cjs/types/ISYNode.d.ts.map +1 -1
  8. package/dist/esm/ISY.js +152 -149
  9. package/dist/esm/ISY.js.map +1 -1
  10. package/dist/esm/ISYNode.js +22 -6
  11. package/dist/esm/ISYNode.js.map +1 -1
  12. package/dist/esm/types/ISY.d.ts +37 -37
  13. package/dist/esm/types/ISY.d.ts.map +1 -1
  14. package/dist/esm/types/ISYNode.d.ts.map +1 -1
  15. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  16. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  17. package/package.json +3 -5
  18. package/src/ISY.ts +790 -820
  19. package/src/ISYNode.ts +20 -7
  20. package/dist/esm/Devices/Brultech/index.js +0 -4
  21. package/dist/esm/Devices/Brultech/index.js.map +0 -1
  22. package/dist/esm/Devices/Constructor.js +0 -2
  23. package/dist/esm/Devices/Constructor.js.map +0 -1
  24. package/dist/esm/Devices/DeviceFactory.js +0 -13
  25. package/dist/esm/Devices/DeviceFactory.js.map +0 -1
  26. package/dist/esm/Devices/DeviceMap.js +0 -4
  27. package/dist/esm/Devices/DeviceMap.js.map +0 -1
  28. package/dist/esm/Devices/Elk/ElkAlarmPanelDevice.js +0 -181
  29. package/dist/esm/Devices/Elk/ElkAlarmPanelDevice.js.map +0 -1
  30. package/dist/esm/Devices/Elk/ElkAlarmSensorDevice.js +0 -107
  31. package/dist/esm/Devices/Elk/ElkAlarmSensorDevice.js.map +0 -1
  32. package/dist/esm/Devices/EndpointFor.js +0 -31
  33. package/dist/esm/Devices/EndpointFor.js.map +0 -1
  34. package/dist/esm/Devices/ISYDevice.js +0 -35
  35. package/dist/esm/Devices/ISYDevice.js.map +0 -1
  36. package/dist/esm/Devices/ISYDeviceNode.js +0 -62
  37. package/dist/esm/Devices/ISYDeviceNode.js.map +0 -1
  38. package/dist/esm/Devices/ISYMultiNodeDevice.js +0 -89
  39. package/dist/esm/Devices/ISYMultiNodeDevice.js.map +0 -1
  40. package/dist/esm/Devices/Insteon/InsteonBallastDimmerDevice.js +0 -8
  41. package/dist/esm/Devices/Insteon/InsteonBallastDimmerDevice.js.map +0 -1
  42. package/dist/esm/Devices/Insteon/InsteonBaseDevice.js +0 -47
  43. package/dist/esm/Devices/Insteon/InsteonBaseDevice.js.map +0 -1
  44. package/dist/esm/Devices/Insteon/InsteonCOSensorDevice.js +0 -14
  45. package/dist/esm/Devices/Insteon/InsteonCOSensorDevice.js.map +0 -1
  46. package/dist/esm/Devices/Insteon/InsteonDevice.js +0 -17
  47. package/dist/esm/Devices/Insteon/InsteonDevice.js.map +0 -1
  48. package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js +0 -875
  49. package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js.map +0 -1
  50. package/dist/esm/Devices/Insteon/InsteonDimmableDevice.js +0 -32
  51. package/dist/esm/Devices/Insteon/InsteonDimmableDevice.js.map +0 -1
  52. package/dist/esm/Devices/Insteon/InsteonDimmerOutletDevice.js +0 -7
  53. package/dist/esm/Devices/Insteon/InsteonDimmerOutletDevice.js.map +0 -1
  54. package/dist/esm/Devices/Insteon/InsteonDimmerSwitchDevice.js +0 -8
  55. package/dist/esm/Devices/Insteon/InsteonDimmerSwitchDevice.js.map +0 -1
  56. package/dist/esm/Devices/Insteon/InsteonDoorWindowSensorDevice.js +0 -11
  57. package/dist/esm/Devices/Insteon/InsteonDoorWindowSensorDevice.js.map +0 -1
  58. package/dist/esm/Devices/Insteon/InsteonFanDevice.js +0 -56
  59. package/dist/esm/Devices/Insteon/InsteonFanDevice.js.map +0 -1
  60. package/dist/esm/Devices/Insteon/InsteonKeypadDevice.js +0 -8
  61. package/dist/esm/Devices/Insteon/InsteonKeypadDevice.js.map +0 -1
  62. package/dist/esm/Devices/Insteon/InsteonKeypadDimmerDevice.js +0 -8
  63. package/dist/esm/Devices/Insteon/InsteonKeypadDimmerDevice.js.map +0 -1
  64. package/dist/esm/Devices/Insteon/InsteonKeypadRelayDevice.js +0 -8
  65. package/dist/esm/Devices/Insteon/InsteonKeypadRelayDevice.js.map +0 -1
  66. package/dist/esm/Devices/Insteon/InsteonLeakSensorDevice.js +0 -11
  67. package/dist/esm/Devices/Insteon/InsteonLeakSensorDevice.js.map +0 -1
  68. package/dist/esm/Devices/Insteon/InsteonLockDevice.js +0 -32
  69. package/dist/esm/Devices/Insteon/InsteonLockDevice.js.map +0 -1
  70. package/dist/esm/Devices/Insteon/InsteonMotionSensorDevice.js +0 -36
  71. package/dist/esm/Devices/Insteon/InsteonMotionSensorDevice.js.map +0 -1
  72. package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js +0 -19
  73. package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js.map +0 -1
  74. package/dist/esm/Devices/Insteon/InsteonRelayDevice.js +0 -46
  75. package/dist/esm/Devices/Insteon/InsteonRelayDevice.js.map +0 -1
  76. package/dist/esm/Devices/Insteon/InsteonRelaySwitchDevice.js +0 -8
  77. package/dist/esm/Devices/Insteon/InsteonRelaySwitchDevice.js.map +0 -1
  78. package/dist/esm/Devices/Insteon/InsteonSmokeSensorDevice.js +0 -11
  79. package/dist/esm/Devices/Insteon/InsteonSmokeSensorDevice.js.map +0 -1
  80. package/dist/esm/Devices/Insteon/InsteonThermostatDevice.js +0 -30
  81. package/dist/esm/Devices/Insteon/InsteonThermostatDevice.js.map +0 -1
  82. package/dist/esm/Devices/Insteon/index.js +0 -31
  83. package/dist/esm/Devices/Insteon/index.js.map +0 -1
  84. package/dist/esm/Devices/Lutron/index.js +0 -4
  85. package/dist/esm/Devices/Lutron/index.js.map +0 -1
  86. package/dist/esm/Devices/MapsTo.js +0 -2
  87. package/dist/esm/Devices/MapsTo.js.map +0 -1
  88. package/dist/esm/Devices/NCD/index.js +0 -4
  89. package/dist/esm/Devices/NCD/index.js.map +0 -1
  90. package/dist/esm/Devices/NodeFactory.js +0 -48
  91. package/dist/esm/Devices/NodeFactory.js.map +0 -1
  92. package/dist/esm/Devices/Poly/index.js +0 -4
  93. package/dist/esm/Devices/Poly/index.js.map +0 -1
  94. package/dist/esm/Devices/Scene/index.js +0 -4
  95. package/dist/esm/Devices/Scene/index.js.map +0 -1
  96. package/dist/esm/Devices/UDI/index.js +0 -4
  97. package/dist/esm/Devices/UDI/index.js.map +0 -1
  98. package/dist/esm/Devices/ZWave/ZWaveBaseDevice.js +0 -38
  99. package/dist/esm/Devices/ZWave/ZWaveBaseDevice.js.map +0 -1
  100. package/dist/esm/Devices/ZWave/ZWaveDimmerSwitchDevice.js +0 -8
  101. package/dist/esm/Devices/ZWave/ZWaveDimmerSwitchDevice.js.map +0 -1
  102. package/dist/esm/Devices/ZWave/ZWaveLockDevice.js +0 -35
  103. package/dist/esm/Devices/ZWave/ZWaveLockDevice.js.map +0 -1
  104. package/dist/esm/Devices/ZWave/index.js +0 -20
  105. package/dist/esm/Devices/ZWave/index.js.map +0 -1
  106. package/dist/esm/Devices/index.js +0 -9
  107. 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 === "st" || tagName === "cmd" || tagName === "nodeDef" ? "" : 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: "$comment",
120
- cdataPropName: "$cdata",
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 === "property")
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 = "ws";
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 = "eisy";
164
+ productName = 'eisy';
165
165
  serverVersion;
166
- vendorName = "Universal Devices, Inc.";
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 ?? "${location ?? folder} ${spokenName ?? name}";
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 === "https" ? "wss" : "ws";
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: "ISY" });
189
- this.logger = winston_1.loggers.add("isy", {
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: "ISY" }),
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 !== "" && evt.node !== undefined && evt.node !== null) {
307
+ if (evt.node !== '' && evt.node !== undefined && evt.node !== null) {
308
308
  //
309
- const impactedDevice = this.getDevice(evt.node);
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("initialize", e);
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("base64")}`;
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`, ["ISYSUB"], {
359
+ this.webSocket = new faye_websocket_1.default.Client(`${this.wsprotocol}://${this.address}/rest/subscribe`, ['ISYSUB'], {
360
360
  headers: {
361
- Origin: "com.universal-devices.websockets.isy",
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("message", (event) => {
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("error", (err, response) => {
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("fail", (data, response) => {
376
+ .on('fail', (data, response) => {
377
377
  that.logger.warn(`Websocket subscription failure: ${data}`);
378
- throw new Error("Failed calling ISY");
378
+ throw new Error('Failed calling ISY');
379
379
  })
380
- .on("abort", () => {
381
- that.logger.warn("Websocket subscription aborted.");
382
- throw new Error("Call to ISY was aborted");
380
+ .on('abort', () => {
381
+ that.logger.warn('Websocket subscription aborted.');
382
+ throw new Error('Call to ISY was aborted');
383
383
  })
384
- .on("timeout", (ms) => {
384
+ .on('timeout', (ms) => {
385
385
  that.logger.warn(`Websocket subscription timed out after ${ms} milliseconds.`);
386
- throw new Error("Timeout contacting ISY");
386
+ throw new Error('Timeout contacting ISY');
387
387
  });
388
388
  }
389
389
  async loadConfig() {
390
390
  try {
391
- this.logger.info("Loading ISY Config");
392
- const configuration = (await this.sendRequest("config")).configuration;
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 + "/ISYConfigDump.json", JSON.stringify(configuration), this.logger.error);
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("config", e);
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("nodes");
422
+ const result = await this.sendRequest('nodes');
423
423
  if (this.isDebugEnabled)
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));
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("status");
456
+ const result = await that.sendRequest('status');
457
457
  if (that.isDebugEnabled) {
458
- (0, fs_1.writeFile)(that.storagePath + "/ISYStatusDump.json", JSON.stringify(result), this.logger.error);
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 == "object") {
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 == "number" || typeof parameters == "string") {
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["content-type"].toString().includes("xml")) {
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 ?? "debug");
543
+ this.logger.log(`Response: ${JSON.stringify(s)}`, requestLogLevel ?? 'debug');
544
544
  return s;
545
545
  }
546
- else if (response.headers["content-type"].toString().includes("json")) {
547
- this.logger.log(`Response: ${JSON.stringify(response.data)}`, requestLogLevel ?? "debug");
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 ?? "debug");
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 (response === null ||
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("Guardian: Detected no activity in more then 60 seconds. Reinitializing web sockets");
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("areas").childNamed("area").childrenNamed("zone");
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,65 +641,70 @@ class ISY extends events_1.EventEmitter {
643
641
  }
644
642
  }
645
643
  async #readDeviceNodes(obj) {
646
- this.logger.info("Loading Device Nodes");
644
+ this.logger.info('Loading Device Nodes');
647
645
  for (const nodeInfo of obj.nodes.node) {
648
- this.logger.debug(`Loading Device Node: ${JSON.stringify(nodeInfo)}`);
649
- if (!this.deviceMap.has(nodeInfo.pnode)) {
650
- const address = nodeInfo.address;
651
- this.deviceMap[nodeInfo.pnode] = {
652
- address,
653
- };
654
- }
655
- else {
656
- this.deviceMap[nodeInfo.pnode].push(nodeInfo.address);
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
- }
667
- if (m) {
668
- newDevice = newDevice ?? new m.class(this, nodeInfo);
669
- newDevice.productName = m.name;
670
- newDevice.model = `(${m.modelNumber}) ${m.name} v.${m.version}`;
671
- newDevice.modelNumber = m.modelNumber;
672
- newDevice.version = m.version;
673
- }
674
- if (enabled) {
675
- if (newDevice === null) {
676
- this.logger.warn(`Device type resolution failed for ${nodeInfo.name} with type: ${nodeInfo.type} and nodedef: ${nodeInfo.nodeDefId}`);
677
- 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);
656
+ }
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);
678
665
  }
679
- else if (newDevice !== null) {
680
- if (m.unsupported) {
681
- this.logger.warn("Device not currently supported: " + JSON.stringify(nodeInfo) + " /n It has been mapped to: " + d.name);
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);
682
677
  }
683
- try {
684
- await newDevice.refreshNotes();
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);
685
691
  }
686
- catch (e) {
687
- this.logger.debug("No notes found.");
692
+ else {
688
693
  }
689
- // if (!newDevice.hidden) {
690
- // }
691
- // this.deviceList.push(newDevice);
694
+ this.nodeMap.set(newDevice.address, newDevice);
692
695
  }
693
696
  else {
697
+ this.logger.info(`Ignoring disabled device: ${nodeInfo.name}`);
694
698
  }
695
- this.nodeMap.set(newDevice.address, newDevice);
696
699
  }
697
- else {
698
- this.logger.info(`Ignoring disabled device: ${nodeInfo.name}`);
700
+ catch (e) {
701
+ this.logger.error(`Error loading device node: ${e.message}`);
699
702
  }
700
703
  }
701
704
  this.logger.info(`${this.nodeMap.size} devices added.`);
702
705
  }
703
706
  async #readFolderNodes(result) {
704
- this.logger.info("Loading Folder Nodes");
707
+ this.logger.info('Loading Folder Nodes');
705
708
  if (result?.nodes?.folder) {
706
709
  for (const folder of result.nodes.folder) {
707
710
  this.logger.info(`Loading Folder Node: ${JSON.stringify(folder)}`);
@@ -710,9 +713,9 @@ class ISY extends events_1.EventEmitter {
710
713
  }
711
714
  }
712
715
  async #readSceneNodes(result) {
713
- this.logger.info("Loading Scene Nodes");
716
+ this.logger.info('Loading Scene Nodes');
714
717
  for (const scene of result.nodes?.group) {
715
- if (scene.name === "ISY" || scene.name === "IoX" || scene.name === "Auto DR") {
718
+ if (scene.name === 'ISY' || scene.name === 'IoX' || scene.name === 'Auto DR') {
716
719
  continue;
717
720
  } // Skip ISY & Auto DR Scenes
718
721
  const newScene = new ISYScene_js_1.ISYScene(this, scene);
@@ -720,7 +723,7 @@ class ISY extends events_1.EventEmitter {
720
723
  await newScene.refreshNotes();
721
724
  }
722
725
  catch (e) {
723
- this.logger.debug("No notes found.");
726
+ this.logger.debug('No notes found.');
724
727
  }
725
728
  this.sceneList.set(newScene.address, newScene);
726
729
  }
@@ -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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"}
@@ -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
- return value;
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
- throw new Error('Method not implemented.');
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].uom != uom) {
134
- this.isy.logger.debug(`Converting ${this.drivers[propertyName].label} from ${this.drivers[propertyName].uom} to ${UOM_js_1.UnitOfMeasure}`);
135
- return this.convertTo(value, uom);
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) {
@@ -212,7 +228,7 @@ class ISYNode {
212
228
  const oldValue = this.drivers[propertyName].value;
213
229
  if (this.drivers[propertyName].patch(value, formattedValue, uom, prec)) {
214
230
  this.emit('PropertyChanged', propertyName, value, oldValue, formattedValue);
215
- this.scenes.forEach((element) => {
231
+ this.scenes?.forEach((element) => {
216
232
  this.logger(`Recalulating ${element.deviceFriendlyName}`);
217
233
  element.recalculateState();
218
234
  });