homebridge-carrier-infinity 1.6.7 → 1.6.8

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 (63) hide show
  1. package/dist/accessory_base.d.ts +2 -2
  2. package/dist/accessory_base.d.ts.map +1 -1
  3. package/dist/accessory_base.js.map +1 -1
  4. package/dist/accessory_comfort_activity.js +6 -6
  5. package/dist/accessory_comfort_activity.js.map +1 -1
  6. package/dist/accessory_thermostat.d.ts +0 -3
  7. package/dist/accessory_thermostat.d.ts.map +1 -1
  8. package/dist/accessory_thermostat.js +11 -14
  9. package/dist/accessory_thermostat.js.map +1 -1
  10. package/dist/api/constants.d.ts +26 -0
  11. package/dist/api/constants.d.ts.map +1 -0
  12. package/dist/api/constants.js +29 -0
  13. package/dist/api/constants.js.map +1 -0
  14. package/dist/api/interface_config.d.ts +185 -0
  15. package/dist/api/interface_config.d.ts.map +1 -0
  16. package/dist/api/interface_config.js +5 -0
  17. package/dist/api/interface_config.js.map +1 -0
  18. package/dist/api/interface_locations.d.ts +45 -0
  19. package/dist/api/interface_locations.d.ts.map +1 -0
  20. package/dist/api/interface_locations.js +5 -0
  21. package/dist/api/interface_locations.js.map +1 -0
  22. package/dist/api/interface_profile.d.ts +80 -0
  23. package/dist/api/interface_profile.d.ts.map +1 -0
  24. package/dist/api/interface_profile.js +5 -0
  25. package/dist/api/interface_profile.js.map +1 -0
  26. package/dist/api/interface_status.d.ts +90 -0
  27. package/dist/api/interface_status.d.ts.map +1 -0
  28. package/dist/api/interface_status.js +5 -0
  29. package/dist/api/interface_status.js.map +1 -0
  30. package/dist/{infinityApi.d.ts → api/models.d.ts} +27 -56
  31. package/dist/api/models.d.ts.map +1 -0
  32. package/dist/{infinityApi.js → api/models.js} +53 -215
  33. package/dist/api/models.js.map +1 -0
  34. package/dist/api/oauth.d.ts +6 -0
  35. package/dist/api/oauth.d.ts.map +1 -0
  36. package/dist/api/oauth.js +52 -0
  37. package/dist/api/oauth.js.map +1 -0
  38. package/dist/api/rest_client.d.ts +15 -0
  39. package/dist/api/rest_client.d.ts.map +1 -0
  40. package/dist/api/rest_client.js +110 -0
  41. package/dist/api/rest_client.js.map +1 -0
  42. package/dist/characteristics_ac.js +22 -22
  43. package/dist/characteristics_ac.js.map +1 -1
  44. package/dist/characteristics_base.d.ts +2 -2
  45. package/dist/characteristics_base.d.ts.map +1 -1
  46. package/dist/characteristics_base.js +3 -3
  47. package/dist/characteristics_base.js.map +1 -1
  48. package/dist/characteristics_fan.js +19 -19
  49. package/dist/characteristics_fan.js.map +1 -1
  50. package/dist/helpers.js +8 -8
  51. package/dist/helpers.js.map +1 -1
  52. package/dist/platform.d.ts +4 -3
  53. package/dist/platform.d.ts.map +1 -1
  54. package/dist/platform.js +7 -6
  55. package/dist/platform.js.map +1 -1
  56. package/package.json +4 -2
  57. package/scripts/xml2ts.ts +38 -0
  58. package/testdata/config.xml +2022 -0
  59. package/testdata/locations.xml +20 -0
  60. package/testdata/profile.xml +112 -0
  61. package/testdata/status.xml +180 -0
  62. package/dist/infinityApi.d.ts.map +0 -1
  63. package/dist/infinityApi.js.map +0 -1
package/dist/helpers.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.processSetpointDeadband = exports.convertCharFan2SystemFan = exports.convertSystemFan2CharFan = exports.areCharTempsClose = exports.convertCharTemp2SystemTemp = exports.convertSystemTemp2CharTemp = void 0;
4
- const infinityApi_1 = require("./infinityApi");
4
+ const constants_1 = require("./api/constants");
5
5
  function convertSystemTemp2CharTemp(temp, units) {
6
6
  if (units === 'F') {
7
7
  return 5.0 / 9.0 * (temp - 32);
@@ -35,11 +35,11 @@ function areCharTempsClose(t1, t2) {
35
35
  exports.areCharTempsClose = areCharTempsClose;
36
36
  function convertSystemFan2CharFan(fan) {
37
37
  switch (fan) {
38
- case infinityApi_1.FAN_MODE.LOW:
38
+ case constants_1.FAN_MODE.LOW:
39
39
  return 1;
40
- case infinityApi_1.FAN_MODE.MED:
40
+ case constants_1.FAN_MODE.MED:
41
41
  return 2;
42
- case infinityApi_1.FAN_MODE.HIGH:
42
+ case constants_1.FAN_MODE.HIGH:
43
43
  return 3;
44
44
  default:
45
45
  return 0;
@@ -49,13 +49,13 @@ exports.convertSystemFan2CharFan = convertSystemFan2CharFan;
49
49
  function convertCharFan2SystemFan(fan) {
50
50
  switch (fan) {
51
51
  case 1:
52
- return infinityApi_1.FAN_MODE.LOW;
52
+ return constants_1.FAN_MODE.LOW;
53
53
  case 2:
54
- return infinityApi_1.FAN_MODE.MED;
54
+ return constants_1.FAN_MODE.MED;
55
55
  case 3:
56
- return infinityApi_1.FAN_MODE.HIGH;
56
+ return constants_1.FAN_MODE.HIGH;
57
57
  default:
58
- return infinityApi_1.FAN_MODE.OFF;
58
+ return constants_1.FAN_MODE.OFF;
59
59
  }
60
60
  }
61
61
  exports.convertCharFan2SystemFan = convertCharFan2SystemFan;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AACA,+CAAyC;AAEzC,SAAgB,0BAA0B,CAAC,IAAY,EAAE,KAAa;IACpE,IAAI,KAAK,KAAK,GAAG,EAAE;QACjB,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;KAChC;SAAM;QACL,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAND,gEAMC;AAED,SAAgB,0BAA0B,CAAC,IAAyB,EAAE,KAAa;IACjF,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,KAAK,KAAK,GAAG,EAAE;QACjB,0EAA0E;QAC1E,6CAA6C;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;KAC5C;SAAM;QACL,uCAAuC;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACjC;AACH,CAAC;AAVD,gEAUC;AAED,SAAgB,iBAAiB,CAAC,EAA8B,EAAE,EAA8B;IAC9F,IAAI,EAAE,IAAI,EAAE,EAAE;QACZ,OAAO,IAAI,CAAC,GAAG,CAAE,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAE,GAAG,EAAE,CAAC;KACjD;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAND,8CAMC;AAED,SAAgB,wBAAwB,CAAC,GAAW;IAClD,QAAO,GAAG,EAAE;QACV,KAAK,sBAAQ,CAAC,GAAG;YACf,OAAO,CAAC,CAAC;QACX,KAAK,sBAAQ,CAAC,GAAG;YACf,OAAO,CAAC,CAAC;QACX,KAAK,sBAAQ,CAAC,IAAI;YAChB,OAAO,CAAC,CAAC;QACX;YACE,OAAO,CAAC,CAAC;KACZ;AACH,CAAC;AAXD,4DAWC;AAED,SAAgB,wBAAwB,CAAC,GAAwB;IAC/D,QAAQ,GAAG,EAAE;QACX,KAAK,CAAC;YACJ,OAAO,sBAAQ,CAAC,GAAG,CAAC;QACtB,KAAK,CAAC;YACJ,OAAO,sBAAQ,CAAC,GAAG,CAAC;QACtB,KAAK,CAAC;YACJ,OAAO,sBAAQ,CAAC,IAAI,CAAC;QACvB;YACE,OAAO,sBAAQ,CAAC,GAAG,CAAC;KACvB;AACH,CAAC;AAXD,4DAWC;AAED,SAAgB,uBAAuB,CACrC,IAAY,EACZ,IAAY,EACZ,KAAa,EACb,WAAoB;IAEpB,MAAM,QAAQ,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,EAAE;QAC1B,IAAI,WAAW,EAAE;YACf,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;SACxB;aAAM;YACL,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;SACxB;KACF;IACD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtB,CAAC;AAfD,0DAeC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AACA,+CAA2C;AAE3C,SAAgB,0BAA0B,CAAC,IAAY,EAAE,KAAa;IACpE,IAAI,KAAK,KAAK,GAAG,EAAE;QACjB,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;KAChC;SAAM;QACL,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAND,gEAMC;AAED,SAAgB,0BAA0B,CAAC,IAAyB,EAAE,KAAa;IACjF,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,KAAK,KAAK,GAAG,EAAE;QACjB,0EAA0E;QAC1E,6CAA6C;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;KAC5C;SAAM;QACL,uCAAuC;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACjC;AACH,CAAC;AAVD,gEAUC;AAED,SAAgB,iBAAiB,CAAC,EAA8B,EAAE,EAA8B;IAC9F,IAAI,EAAE,IAAI,EAAE,EAAE;QACZ,OAAO,IAAI,CAAC,GAAG,CAAE,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAE,GAAG,EAAE,CAAC;KACjD;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAND,8CAMC;AAED,SAAgB,wBAAwB,CAAC,GAAW;IAClD,QAAO,GAAG,EAAE;QACV,KAAK,oBAAQ,CAAC,GAAG;YACf,OAAO,CAAC,CAAC;QACX,KAAK,oBAAQ,CAAC,GAAG;YACf,OAAO,CAAC,CAAC;QACX,KAAK,oBAAQ,CAAC,IAAI;YAChB,OAAO,CAAC,CAAC;QACX;YACE,OAAO,CAAC,CAAC;KACZ;AACH,CAAC;AAXD,4DAWC;AAED,SAAgB,wBAAwB,CAAC,GAAwB;IAC/D,QAAQ,GAAG,EAAE;QACX,KAAK,CAAC;YACJ,OAAO,oBAAQ,CAAC,GAAG,CAAC;QACtB,KAAK,CAAC;YACJ,OAAO,oBAAQ,CAAC,GAAG,CAAC;QACtB,KAAK,CAAC;YACJ,OAAO,oBAAQ,CAAC,IAAI,CAAC;QACvB;YACE,OAAO,oBAAQ,CAAC,GAAG,CAAC;KACvB;AACH,CAAC;AAXD,4DAWC;AAED,SAAgB,uBAAuB,CACrC,IAAY,EACZ,IAAY,EACZ,KAAa,EACb,WAAoB;IAEpB,MAAM,QAAQ,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,EAAE;QAC1B,IAAI,WAAW,EAAE;YACf,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;SACxB;aAAM;YACL,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;SACxB;KACF;IACD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtB,CAAC;AAfD,0DAeC"}
@@ -1,6 +1,7 @@
1
1
  import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic } from 'homebridge';
2
- import { InfinityEvolutionApiConnection, InfinityEvolutionSystemModel } from './infinityApi';
2
+ import { SystemModel } from './api/models';
3
3
  import { BaseAccessory } from './accessory_base';
4
+ import { InfinityRestClient } from './api/rest_client';
4
5
  export declare class CarrierInfinityHomebridgePlatform implements DynamicPlatformPlugin {
5
6
  readonly log: Logger;
6
7
  readonly config: PlatformConfig;
@@ -9,8 +10,8 @@ export declare class CarrierInfinityHomebridgePlatform implements DynamicPlatfor
9
10
  readonly Characteristic: typeof Characteristic;
10
11
  readonly restored_accessories: Record<string, PlatformAccessory>;
11
12
  readonly accessories: Record<string, BaseAccessory>;
12
- api_connection: InfinityEvolutionApiConnection;
13
- systems: Record<string, InfinityEvolutionSystemModel>;
13
+ infinity_client: InfinityRestClient;
14
+ systems: Record<string, SystemModel>;
14
15
  constructor(log: Logger, config: PlatformConfig, api: API);
15
16
  configureAccessory(accessory: PlatformAccessory): void;
16
17
  discoverSystems(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK5H,OAAO,EACL,8BAA8B,EAE9B,4BAA4B,EAC7B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,qBAAa,iCAAkC,YAAW,qBAAqB;aAc3D,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAf1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAM;IAE7E,SAAgB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAM;IAGzD,cAAc,EAAE,8BAA8B,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAM;gBAGhD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IA0B1B,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAIhD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAqEvC"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK5H,OAAO,EAEL,WAAW,EACZ,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,qBAAa,iCAAkC,YAAW,qBAAqB;aAc3D,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAf1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IAGpF,SAAgB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAM;IAE7E,SAAgB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAM;IAGzD,eAAe,EAAE,kBAAkB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAM;gBAG/B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IA0B1B,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAIhD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAqEvC"}
package/dist/platform.js CHANGED
@@ -4,9 +4,10 @@ exports.CarrierInfinityHomebridgePlatform = void 0;
4
4
  const settings_1 = require("./settings");
5
5
  const accessory_thermostat_1 = require("./accessory_thermostat");
6
6
  const accessory_oat_1 = require("./accessory_oat");
7
- const infinityApi_1 = require("./infinityApi");
7
+ const models_1 = require("./api/models");
8
8
  const accessory_envsensor_1 = require("./accessory_envsensor");
9
9
  const accessory_comfort_activity_1 = require("./accessory_comfort_activity");
10
+ const rest_client_1 = require("./api/rest_client");
10
11
  class CarrierInfinityHomebridgePlatform {
11
12
  constructor(log, config, api) {
12
13
  this.log = log;
@@ -22,8 +23,8 @@ class CarrierInfinityHomebridgePlatform {
22
23
  if (!config.username || !config.password) {
23
24
  this.log.error('Username and password do not appear to be set in config. This is not going to work.');
24
25
  }
25
- this.api_connection = new infinityApi_1.InfinityEvolutionApiConnection(config['username'], config['password'], this.log);
26
- this.api_connection.forceRefreshToken().then().catch(error => {
26
+ this.infinity_client = new rest_client_1.InfinityRestClient(config['username'], config['password'], this.log);
27
+ this.infinity_client.forceRefreshToken().then().catch(error => {
27
28
  this.log.error('Login failed: ' + error.message);
28
29
  });
29
30
  this.api.on('didFinishLaunching', () => {
@@ -36,17 +37,17 @@ class CarrierInfinityHomebridgePlatform {
36
37
  // know how to push changes to HK yet.
37
38
  // TODO: try to move this into the api class when we have event based
38
39
  setInterval(() => {
39
- this.api_connection.activate();
40
+ this.infinity_client.activate();
40
41
  }, 30 * 60 * 1000); // every 30 min
41
42
  }
42
43
  configureAccessory(accessory) {
43
44
  this.restored_accessories[accessory.UUID] = accessory;
44
45
  }
45
46
  async discoverSystems() {
46
- const systems = await new infinityApi_1.InfinityEvolutionLocations(this.api_connection).getSystems();
47
+ const systems = await new models_1.LocationsModel(this.infinity_client).getSystems();
47
48
  for (const serialNumber of systems) {
48
49
  // Create system api object, and save for later reference
49
- const system = new infinityApi_1.InfinityEvolutionSystemModel(this.api_connection, serialNumber);
50
+ const system = new models_1.SystemModel(this.infinity_client, serialNumber);
50
51
  this.systems[serialNumber] = system;
51
52
  // Add system based accessories
52
53
  const context_system = { serialNumber: system.serialNumber };
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";;;AAEA,yCAAwD;AACxD,iEAA6D;AAC7D,mDAA8D;AAC9D,yCAGsB;AACtB,+DAA2D;AAE3D,6EAAwE;AACxE,mDAAuD;AAEvD,MAAa,iCAAiC;IAa5C,YACkB,GAAW,EACX,MAAsB,EACtB,GAAQ;QAFR,QAAG,GAAH,GAAG,CAAQ;QACX,WAAM,GAAN,MAAM,CAAgB;QACtB,QAAG,GAAH,GAAG,CAAK;QAfV,YAAO,GAAmB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QAC/C,mBAAc,GAA0B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC;QAEpF,oDAAoD;QACpC,yBAAoB,GAAsC,EAAE,CAAC;QAC7E,mDAAmD;QACnC,gBAAW,GAAkC,EAAE,CAAC;QAIzD,YAAO,GAAgC,EAAE,CAAC;QAO/C,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;SACvG;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,gCAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAChG,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC5D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YACrC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,4EAA4E;QAC5E,yEAAyE;QACzE,sCAAsC;QACtC,qEAAqE;QACrE,WAAW,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;QAClC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,eAAe;IACrC,CAAC;IAED,kBAAkB,CAAC,SAA4B;QAC7C,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,OAAO,GAAG,MAAM,IAAI,uBAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,CAAC;QAC5E,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE;YAClC,yDAAyD;YACzD,MAAM,MAAM,GAAG,IAAI,oBAAW,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;YAEpC,+BAA+B;YAC/B,MAAM,cAAc,GAAG,EAAC,YAAY,EAAE,MAAM,CAAC,YAAY,EAAC,CAAC;YAC3D,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACrC,2CAA2C;YAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,8BAA8B,CAAC,EAAE;gBAC/C,IAAI,2CAA2B,CAC7B,IAAI,EACJ,EAAC,GAAG,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAC,CACjD,CAAC;aACH;YAED,oCAAoC;YACpC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,EAAG,oDAAoD;gBAC/E,MAAM,YAAY,GAAG,EAAC,GAAG,cAAc,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;gBACrD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzD,gCAAgC;gBAChC,IAAI,0CAAmB,CACrB,IAAI,EACJ;oBACE,GAAG,YAAY;oBACf,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa;oBAC3D,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;oBACzC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;iBAC1C,CACF,CAAC;gBACF,gCAAgC;gBAChC,IAAI,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,EAAE;oBAC5C,IAAI,wCAAkB,CACpB,IAAI,EACJ;wBACE,GAAG,YAAY;wBACf,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,uBAAuB;qBACtE,CACF,CAAC;iBACH;gBACD,8CAA8C;gBAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,iCAAiC,CAAC,EAAE;oBAClD,IAAI,qDAAwB,CAC1B,IAAI,EACJ;wBACE,GAAG,YAAY;wBACf,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB;wBACjE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;wBACzC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;qBAC1C,CACF,CAAC;iBACH;aACF;SACF;QAED,oEAAoE;QACpE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;gBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;gBAChD,4BAA4B;gBAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,YAAY,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBACjG,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,sBAAW,EAAE,wBAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;gBAChF,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;aACtC;SACF;IACH,CAAC;CACF;AAnHD,8EAmHC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Homebridge Carrier Infinity",
3
3
  "name": "homebridge-carrier-infinity",
4
- "version": "1.6.7",
4
+ "version": "1.6.8",
5
5
  "description": "Standalone homebridge plugin for Carrier Infinity / Bryant Evolution / ICP Brands Ion thermostats.",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -22,7 +22,8 @@
22
22
  "watch": "npm run build && (sudo hb-service link || true) && nodemon",
23
23
  "build": "rimraf ./dist && tsc",
24
24
  "prepublishOnly": "npm run lint && npm run build",
25
- "test": "jest"
25
+ "test": "jest",
26
+ "xml2ts": "find testdata/*.xml -exec sh -c 'node scripts/xml2ts.ts {} src/api/interface_$(basename {} .xml).ts' \\;"
26
27
  },
27
28
  "nodemonConfig": {
28
29
  "watch": [
@@ -70,6 +71,7 @@
70
71
  "eslint-plugin-spellcheck": "^0.0.19",
71
72
  "homebridge": "^1.2.3",
72
73
  "jest": "^27.0.4",
74
+ "json-to-ts": "^1.7.0",
73
75
  "nodemon": "^2.0.6",
74
76
  "rimraf": "^3.0.2",
75
77
  "semantic-release": "^19.0.2",
@@ -0,0 +1,38 @@
1
+ /*
2
+ * This script converts an example xml file to a TS interface.
3
+ */
4
+
5
+ /* eslint-disable @typescript-eslint/no-var-requires */
6
+ /* eslint-disable no-console */
7
+ /* eslint-disable spellcheck/spell-checker */
8
+ const fs = require('fs');
9
+ const xml2js = require('xml2js');
10
+ const JsonToTS = require('json-to-ts');
11
+
12
+ const xmlFile = process.argv[2];
13
+ const tsFile = process.argv[3];
14
+
15
+ const xml = fs.readFileSync(xmlFile, 'utf-8');
16
+
17
+ xml2js.parseString(xml, (err, json) => {
18
+ if (err) {
19
+ console.error(err);
20
+ return;
21
+ }
22
+
23
+ fs.writeFileSync(
24
+ tsFile,
25
+ '/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable spellcheck/spell-checker */\n\n',
26
+ );
27
+
28
+ JsonToTS(json).forEach(typeInterface => {
29
+ if (typeInterface.includes('RootObject')){
30
+ fs.appendFileSync(tsFile, 'export default ');
31
+ } else {
32
+ fs.appendFileSync(tsFile, 'export ');
33
+ }
34
+ fs.appendFileSync(tsFile, typeInterface);
35
+ fs.appendFileSync(tsFile, '\n\n');
36
+ });
37
+ });
38
+