@homebridge-plugins/homebridge-smarthq 0.4.4 → 0.4.6

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 (71) hide show
  1. package/CHANGELOG.md +76 -94
  2. package/dist/devices/advantium.d.ts +10 -0
  3. package/dist/devices/advantium.d.ts.map +1 -0
  4. package/dist/devices/advantium.js +72 -0
  5. package/dist/devices/advantium.js.map +1 -0
  6. package/dist/devices/beverageCenter.d.ts +10 -0
  7. package/dist/devices/beverageCenter.d.ts.map +1 -0
  8. package/dist/devices/beverageCenter.js +122 -0
  9. package/dist/devices/beverageCenter.js.map +1 -0
  10. package/dist/devices/clothesDryer.d.ts +1 -1
  11. package/dist/devices/clothesDryer.d.ts.map +1 -1
  12. package/dist/devices/clothesDryer.js +44 -9
  13. package/dist/devices/clothesDryer.js.map +1 -1
  14. package/dist/devices/clothesWasher.d.ts +1 -1
  15. package/dist/devices/clothesWasher.d.ts.map +1 -1
  16. package/dist/devices/clothesWasher.js +44 -9
  17. package/dist/devices/clothesWasher.js.map +1 -1
  18. package/dist/devices/coffeeMaker.d.ts +10 -0
  19. package/dist/devices/coffeeMaker.d.ts.map +1 -0
  20. package/dist/devices/coffeeMaker.js +13 -0
  21. package/dist/devices/coffeeMaker.js.map +1 -0
  22. package/dist/devices/dishwasher.d.ts.map +1 -1
  23. package/dist/devices/dishwasher.js +44 -24
  24. package/dist/devices/dishwasher.js.map +1 -1
  25. package/dist/devices/microwave.d.ts +10 -0
  26. package/dist/devices/microwave.d.ts.map +1 -0
  27. package/dist/devices/microwave.js +81 -0
  28. package/dist/devices/microwave.js.map +1 -0
  29. package/dist/devices/oven.d.ts.map +1 -1
  30. package/dist/devices/oven.js +71 -52
  31. package/dist/devices/oven.js.map +1 -1
  32. package/dist/devices/refrigerator.d.ts.map +1 -1
  33. package/dist/devices/refrigerator.js +106 -7
  34. package/dist/devices/refrigerator.js.map +1 -1
  35. package/dist/devices/waterFilter.d.ts +10 -0
  36. package/dist/devices/waterFilter.d.ts.map +1 -0
  37. package/dist/devices/waterFilter.js +65 -0
  38. package/dist/devices/waterFilter.js.map +1 -0
  39. package/dist/devices/waterHeater.d.ts +10 -0
  40. package/dist/devices/waterHeater.d.ts.map +1 -0
  41. package/dist/devices/waterHeater.js +94 -0
  42. package/dist/devices/waterHeater.js.map +1 -0
  43. package/dist/devices/waterSoftener.d.ts +10 -0
  44. package/dist/devices/waterSoftener.d.ts.map +1 -0
  45. package/dist/devices/waterSoftener.js +65 -0
  46. package/dist/devices/waterSoftener.js.map +1 -0
  47. package/dist/platform.d.ts +7 -0
  48. package/dist/platform.d.ts.map +1 -1
  49. package/dist/platform.js +267 -0
  50. package/dist/platform.js.map +1 -1
  51. package/docs/classes/SmartHQPlatform.html +8 -8
  52. package/docs/interfaces/DeviceOptions.html +2 -2
  53. package/docs/interfaces/SmartHQPlatformConfig.html +2 -2
  54. package/docs/interfaces/SmartHqContext.html +2 -2
  55. package/docs/interfaces/SmartHqERDResponse.html +2 -2
  56. package/docs/interfaces/credentials.html +2 -2
  57. package/docs/interfaces/devicesConfig.html +2 -2
  58. package/docs/interfaces/options.html +2 -2
  59. package/docs/variables/API_URL.html +1 -1
  60. package/docs/variables/ERD_CODES.html +1 -1
  61. package/docs/variables/ERD_TYPES.html +1 -1
  62. package/docs/variables/KEEPALIVE_TIMEOUT.html +1 -1
  63. package/docs/variables/LOGIN_URL.html +1 -1
  64. package/docs/variables/OAUTH2_CLIENT_ID.html +1 -1
  65. package/docs/variables/OAUTH2_CLIENT_SECRET.html +1 -1
  66. package/docs/variables/OAUTH2_REDIRECT_URI.html +1 -1
  67. package/docs/variables/PLATFORM_NAME.html +1 -1
  68. package/docs/variables/PLUGIN_NAME.html +1 -1
  69. package/docs/variables/SECURE_URL.html +1 -1
  70. package/docs/variables/default.html +1 -1
  71. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"refrigerator.js","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refrigerator.js","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { PlatformAccessory } from 'homebridge';
2
+ import type { SmartHQPlatform } from '../platform.js';
3
+ import type { devicesConfig, SmartHqContext } from '../settings.js';
4
+ import { deviceBase } from './device.js';
5
+ export declare class SmartHQWaterFilter extends deviceBase {
6
+ readonly platform: SmartHQPlatform;
7
+ readonly device: SmartHqContext['device'] & devicesConfig;
8
+ constructor(platform: SmartHQPlatform, accessory: PlatformAccessory<SmartHqContext>, device: SmartHqContext['device'] & devicesConfig);
9
+ }
10
+ //# sourceMappingURL=waterFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waterFilter.d.ts","sourceRoot":"","sources":["../../src/devices/waterFilter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,kBAAmB,SAAQ,UAAU;IAE9C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;gBAFhD,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;CA0D5D"}
@@ -0,0 +1,65 @@
1
+ import { deviceBase } from './device.js';
2
+ export class SmartHQWaterFilter extends deviceBase {
3
+ platform;
4
+ device;
5
+ constructor(platform, accessory, device) {
6
+ super(platform, accessory, device);
7
+ this.platform = platform;
8
+ this.device = device;
9
+ this.debugLog(`Water Filter Features: ${JSON.stringify(accessory.context.device.features)}`);
10
+ // Water Filter Maintenance
11
+ const filterService = this.accessory.getService('Water Filter') ?? this.accessory.addService(this.platform.Service.FilterMaintenance, 'Water Filter', 'WaterFilter');
12
+ filterService
13
+ .getCharacteristic(this.platform.Characteristic.FilterChangeIndication)
14
+ .onGet(async () => {
15
+ try {
16
+ // TODO: Implement filter status ERD
17
+ return this.platform.Characteristic.FilterChangeIndication.FILTER_OK;
18
+ }
19
+ catch (error) {
20
+ this.warnLog?.(`Water Filter Status error: ${error?.message ?? error}`);
21
+ return this.platform.Characteristic.FilterChangeIndication.FILTER_OK;
22
+ }
23
+ });
24
+ filterService
25
+ .getCharacteristic(this.platform.Characteristic.FilterLifeLevel)
26
+ .onGet(async () => {
27
+ try {
28
+ // TODO: Implement filter life percentage ERD
29
+ return 100;
30
+ }
31
+ catch (error) {
32
+ this.warnLog?.(`Water Filter Life error: ${error?.message ?? error}`);
33
+ return 100;
34
+ }
35
+ });
36
+ // Water Flow Valve
37
+ const valveService = this.accessory.getService('Water Flow') ?? this.accessory.addService(this.platform.Service.Valve, 'Water Flow', 'WaterFlow');
38
+ valveService.setCharacteristic(this.platform.Characteristic.ValveType, this.platform.Characteristic.ValveType.WATER_FAUCET);
39
+ valveService
40
+ .getCharacteristic(this.platform.Characteristic.Active)
41
+ .onGet(async () => {
42
+ try {
43
+ // TODO: Implement water flow state ERD
44
+ return this.platform.Characteristic.Active.ACTIVE;
45
+ }
46
+ catch (error) {
47
+ this.warnLog?.(`Water Flow error: ${error?.message ?? error}`);
48
+ return this.platform.Characteristic.Active.INACTIVE;
49
+ }
50
+ });
51
+ valveService
52
+ .getCharacteristic(this.platform.Characteristic.InUse)
53
+ .onGet(async () => {
54
+ try {
55
+ // TODO: Implement water flow state ERD
56
+ return this.platform.Characteristic.InUse.IN_USE;
57
+ }
58
+ catch (error) {
59
+ this.warnLog?.(`Water Flow InUse error: ${error?.message ?? error}`);
60
+ return this.platform.Characteristic.InUse.NOT_IN_USE;
61
+ }
62
+ });
63
+ }
64
+ }
65
+ //# sourceMappingURL=waterFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waterFilter.js","sourceRoot":"","sources":["../../src/devices/waterFilter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { PlatformAccessory } from 'homebridge';
2
+ import type { SmartHQPlatform } from '../platform.js';
3
+ import type { devicesConfig, SmartHqContext } from '../settings.js';
4
+ import { deviceBase } from './device.js';
5
+ export declare class SmartHQWaterHeater extends deviceBase {
6
+ readonly platform: SmartHQPlatform;
7
+ readonly device: SmartHqContext['device'] & devicesConfig;
8
+ constructor(platform: SmartHQPlatform, accessory: PlatformAccessory<SmartHqContext>, device: SmartHqContext['device'] & devicesConfig);
9
+ }
10
+ //# sourceMappingURL=waterHeater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waterHeater.d.ts","sourceRoot":"","sources":["../../src/devices/waterHeater.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,kBAAmB,SAAQ,UAAU;IAE9C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;gBAFhD,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;CAuF5D"}
@@ -0,0 +1,94 @@
1
+ import { deviceBase } from './device.js';
2
+ export class SmartHQWaterHeater extends deviceBase {
3
+ platform;
4
+ device;
5
+ constructor(platform, accessory, device) {
6
+ super(platform, accessory, device);
7
+ this.platform = platform;
8
+ this.device = device;
9
+ this.debugLog(`Water Heater Features: ${JSON.stringify(accessory.context.device.features)}`);
10
+ // Water Heater as Thermostat
11
+ const heaterService = this.accessory.getService('Water Heater') ?? this.accessory.addService(this.platform.Service.Thermostat, 'Water Heater', 'WaterHeater');
12
+ heaterService
13
+ .getCharacteristic(this.platform.Characteristic.CurrentHeatingCoolingState)
14
+ .onGet(async () => {
15
+ try {
16
+ // TODO: Implement heating state ERD
17
+ return this.platform.Characteristic.CurrentHeatingCoolingState.HEAT;
18
+ }
19
+ catch (error) {
20
+ this.warnLog?.(`Water Heater State error: ${error?.message ?? error}`);
21
+ return this.platform.Characteristic.CurrentHeatingCoolingState.OFF;
22
+ }
23
+ });
24
+ heaterService
25
+ .getCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState)
26
+ .setProps({
27
+ validValues: [this.platform.Characteristic.TargetHeatingCoolingState.OFF, this.platform.Characteristic.TargetHeatingCoolingState.HEAT],
28
+ })
29
+ .onGet(async () => {
30
+ try {
31
+ // TODO: Implement target state ERD
32
+ return this.platform.Characteristic.TargetHeatingCoolingState.HEAT;
33
+ }
34
+ catch (error) {
35
+ this.warnLog?.(`Water Heater Target State error: ${error?.message ?? error}`);
36
+ return this.platform.Characteristic.TargetHeatingCoolingState.OFF;
37
+ }
38
+ })
39
+ .onSet(async (value) => {
40
+ try {
41
+ // TODO: Implement target state control ERD
42
+ this.debugLog(`Water Heater set to: ${value}`);
43
+ }
44
+ catch (error) {
45
+ this.warnLog?.(`Water Heater Target State set error: ${error?.message ?? error}`);
46
+ }
47
+ });
48
+ heaterService
49
+ .getCharacteristic(this.platform.Characteristic.CurrentTemperature)
50
+ .onGet(async () => {
51
+ try {
52
+ // TODO: Implement current temperature ERD
53
+ return 50;
54
+ }
55
+ catch (error) {
56
+ this.warnLog?.(`Water Heater Current Temp error: ${error?.message ?? error}`);
57
+ return 50;
58
+ }
59
+ });
60
+ heaterService
61
+ .getCharacteristic(this.platform.Characteristic.TargetTemperature)
62
+ .setProps({
63
+ minValue: 40,
64
+ maxValue: 60,
65
+ minStep: 1,
66
+ })
67
+ .onGet(async () => {
68
+ try {
69
+ // TODO: Implement target temperature ERD
70
+ return 50;
71
+ }
72
+ catch (error) {
73
+ this.warnLog?.(`Water Heater Target Temp error: ${error?.message ?? error}`);
74
+ return 50;
75
+ }
76
+ })
77
+ .onSet(async (value) => {
78
+ try {
79
+ // TODO: Implement target temperature control ERD
80
+ this.debugLog(`Water Heater temperature set to: ${value}°C`);
81
+ }
82
+ catch (error) {
83
+ this.warnLog?.(`Water Heater Target Temp set error: ${error?.message ?? error}`);
84
+ }
85
+ });
86
+ heaterService
87
+ .getCharacteristic(this.platform.Characteristic.TemperatureDisplayUnits)
88
+ .onGet(async () => this.platform.Characteristic.TemperatureDisplayUnits.CELSIUS)
89
+ .onSet(async (value) => {
90
+ this.debugLog(`Water Heater display units set to: ${value}`);
91
+ });
92
+ }
93
+ }
94
+ //# sourceMappingURL=waterHeater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waterHeater.js","sourceRoot":"","sources":["../../src/devices/waterHeater.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { PlatformAccessory } from 'homebridge';
2
+ import type { SmartHQPlatform } from '../platform.js';
3
+ import type { devicesConfig, SmartHqContext } from '../settings.js';
4
+ import { deviceBase } from './device.js';
5
+ export declare class SmartHQWaterSoftener extends deviceBase {
6
+ readonly platform: SmartHQPlatform;
7
+ readonly device: SmartHqContext['device'] & devicesConfig;
8
+ constructor(platform: SmartHQPlatform, accessory: PlatformAccessory<SmartHqContext>, device: SmartHqContext['device'] & devicesConfig);
9
+ }
10
+ //# sourceMappingURL=waterSoftener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waterSoftener.d.ts","sourceRoot":"","sources":["../../src/devices/waterSoftener.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,oBAAqB,SAAQ,UAAU;IAEhD,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;gBAFhD,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;CA0D5D"}
@@ -0,0 +1,65 @@
1
+ import { deviceBase } from './device.js';
2
+ export class SmartHQWaterSoftener extends deviceBase {
3
+ platform;
4
+ device;
5
+ constructor(platform, accessory, device) {
6
+ super(platform, accessory, device);
7
+ this.platform = platform;
8
+ this.device = device;
9
+ this.debugLog(`Water Softener Features: ${JSON.stringify(accessory.context.device.features)}`);
10
+ // Water Softener Filter/Salt Status
11
+ const filterService = this.accessory.getService('Softener Salt') ?? this.accessory.addService(this.platform.Service.FilterMaintenance, 'Softener Salt', 'SoftenerSalt');
12
+ filterService
13
+ .getCharacteristic(this.platform.Characteristic.FilterChangeIndication)
14
+ .onGet(async () => {
15
+ try {
16
+ // TODO: Implement salt level ERD
17
+ return this.platform.Characteristic.FilterChangeIndication.FILTER_OK;
18
+ }
19
+ catch (error) {
20
+ this.warnLog?.(`Softener Salt Status error: ${error?.message ?? error}`);
21
+ return this.platform.Characteristic.FilterChangeIndication.FILTER_OK;
22
+ }
23
+ });
24
+ filterService
25
+ .getCharacteristic(this.platform.Characteristic.FilterLifeLevel)
26
+ .onGet(async () => {
27
+ try {
28
+ // TODO: Implement salt level percentage ERD
29
+ return 100;
30
+ }
31
+ catch (error) {
32
+ this.warnLog?.(`Softener Salt Level error: ${error?.message ?? error}`);
33
+ return 100;
34
+ }
35
+ });
36
+ // Water Valve
37
+ const valveService = this.accessory.getService('Water Softener') ?? this.accessory.addService(this.platform.Service.Valve, 'Water Softener', 'WaterSoftener');
38
+ valveService.setCharacteristic(this.platform.Characteristic.ValveType, this.platform.Characteristic.ValveType.WATER_FAUCET);
39
+ valveService
40
+ .getCharacteristic(this.platform.Characteristic.Active)
41
+ .onGet(async () => {
42
+ try {
43
+ // TODO: Implement softener active state ERD
44
+ return this.platform.Characteristic.Active.ACTIVE;
45
+ }
46
+ catch (error) {
47
+ this.warnLog?.(`Water Softener Active error: ${error?.message ?? error}`);
48
+ return this.platform.Characteristic.Active.INACTIVE;
49
+ }
50
+ });
51
+ valveService
52
+ .getCharacteristic(this.platform.Characteristic.InUse)
53
+ .onGet(async () => {
54
+ try {
55
+ // TODO: Implement softener in-use state ERD
56
+ return this.platform.Characteristic.InUse.IN_USE;
57
+ }
58
+ catch (error) {
59
+ this.warnLog?.(`Water Softener InUse error: ${error?.message ?? error}`);
60
+ return this.platform.Characteristic.InUse.NOT_IN_USE;
61
+ }
62
+ });
63
+ }
64
+ }
65
+ //# sourceMappingURL=waterSoftener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waterSoftener.js","sourceRoot":"","sources":["../../src/devices/waterSoftener.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,13 @@ export declare class SmartHQPlatform implements DynamicPlatformPlugin {
45
45
  private createSmartHQHood;
46
46
  private createSmartHQClothesWasher;
47
47
  private createSmartHQClothesDryer;
48
+ private createSmartHQWaterFilter;
49
+ private createSmartHQWaterSoftener;
50
+ private createSmartHQWaterHeater;
51
+ private createSmartHQAdvantium;
52
+ private createSmartHQMicrowave;
53
+ private createSmartHQCoffeeMaker;
54
+ private createSmartHQBeverageCenter;
48
55
  unregisterPlatformAccessories(existingAccessory: PlatformAccessory): Promise<void>;
49
56
  getPlatformLogSettings(): Promise<void>;
50
57
  getPlatformRateSettings(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAG7F,OAAO,KAAK,EAA8B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAwB/G;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,qBAAqB;IACpD,WAAW,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAA;IACvD,SAAgB,GAAG,EAAE,GAAG,CAAA;IACxB,SAAgB,GAAG,EAAE,OAAO,CAAA;IAC5B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IACpB,MAAM,EAAG,qBAAqB,CAAA;IAE9B,OAAO,EAAG,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAA;IACrC,cAAc,EAAG,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAA;IAC1D,OAAO,CAAC,QAAQ,CAAW;IAE3B,cAAc,EAAG,qBAAqB,CAAA;IACtC,eAAe,EAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IACpC,mBAAmB,EAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IAC5C,gBAAgB,EAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACtC,kBAAkB,EAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC1C,SAAS,EAAG,OAAO,CAAA;IACnB,OAAO,EAAG,MAAM,CAAA;gBAGd,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,qBAAqB,EAC7B,GAAG,EAAE,GAAG;IA0DV;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAO/C;;OAEG;IACG,YAAY;IAaZ,sBAAsB;IA+B5B;;;OAGG;IACG,eAAe;YAmIP,uBAAuB;YAiDvB,iBAAiB;YAiDjB,qBAAqB;YAgDrB,yBAAyB;YAiDzB,2BAA2B;YAiD3B,iBAAiB;YAoCjB,0BAA0B;YAmC1B,yBAAyB;IAmC1B,6BAA6B,CAAC,iBAAiB,EAAE,iBAAiB;IAMzE,sBAAsB;IAUtB,uBAAuB;IAevB,yBAAyB;IAgB/B;;;;;;;;OAQG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;;;;;OAMG;IACG,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCpG;;;OAGG;IACG,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrC,UAAU,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,eAAe,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrC,YAAY,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,aAAa,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;CAGlD"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
package/dist/platform.js CHANGED
@@ -4,13 +4,20 @@ import { SmartHQIceMaker } from './devices/OpalIceMaker/index.js';
4
4
  import axios from 'axios';
5
5
  import pkg from 'lodash';
6
6
  import ws from 'ws';
7
+ import { SmartHQAdvantium } from './devices/advantium.js';
7
8
  import { SmartHQAirConditioner } from './devices/airConditioner.js';
9
+ import { SmartHQBeverageCenter } from './devices/beverageCenter.js';
8
10
  import { SmartHQClothesDryer } from './devices/clothesDryer.js';
9
11
  import { SmartHQClothesWasher } from './devices/clothesWasher.js';
12
+ import { SmartHQCoffeeMaker } from './devices/coffeeMaker.js';
10
13
  import { SmartHQDishWasher } from './devices/dishwasher.js';
11
14
  import { SmartHQHood } from './devices/hood.js';
15
+ import { SmartHQMicrowave } from './devices/microwave.js';
12
16
  import { SmartHQOven } from './devices/oven.js';
13
17
  import { SmartHQRefrigerator } from './devices/refrigerator.js';
18
+ import { SmartHQWaterFilter } from './devices/waterFilter.js';
19
+ import { SmartHQWaterHeater } from './devices/waterHeater.js';
20
+ import { SmartHQWaterSoftener } from './devices/waterSoftener.js';
14
21
  import getAccessToken, { refreshAccessToken } from './getAccessToken.js';
15
22
  import { API_URL, ERD_CODES, ERD_TYPES, KEEPALIVE_TIMEOUT, PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
16
23
  const { find } = pkg;
@@ -247,6 +254,28 @@ export class SmartHQPlatform {
247
254
  case 'Clothes Dryer':
248
255
  await this.createSmartHQClothesDryer(userId, device, details, features);
249
256
  break;
257
+ case 'Whole Home Water Filter':
258
+ await this.createSmartHQWaterFilter(userId, device, details, features);
259
+ break;
260
+ case 'Whole Home Water Softener':
261
+ await this.createSmartHQWaterSoftener(userId, device, details, features);
262
+ break;
263
+ case 'Whole Home Water Heater':
264
+ await this.createSmartHQWaterHeater(userId, device, details, features);
265
+ break;
266
+ case 'Advantium':
267
+ await this.createSmartHQAdvantium(userId, device, details, features);
268
+ break;
269
+ case 'Microwave':
270
+ await this.createSmartHQMicrowave(userId, device, details, features);
271
+ break;
272
+ case 'Coffee Maker':
273
+ case 'Espresso Maker':
274
+ await this.createSmartHQCoffeeMaker(userId, device, details, features);
275
+ break;
276
+ case 'Beverage Center':
277
+ await this.createSmartHQBeverageCenter(userId, device, details, features);
278
+ break;
250
279
  default:
251
280
  await this.warnLog(`Device Type Not Supported: ${device.type}`);
252
281
  break;
@@ -599,6 +628,244 @@ export class SmartHQPlatform {
599
628
  this.debugErrorLog(`Unable to Register new device: ${JSON.stringify(device.nickname)}`);
600
629
  }
601
630
  }
631
+ async createSmartHQWaterFilter(userId, device, details, features) {
632
+ const uuid = this.api.hap.uuid.generate(device.applianceId);
633
+ const existingAccessory = this.accessories.find(accessory => accessory.UUID === uuid);
634
+ if (existingAccessory) {
635
+ if (!device.hide_device) {
636
+ existingAccessory.context.device = device;
637
+ existingAccessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
638
+ existingAccessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
639
+ existingAccessory.context.device.firmware = device.firmware ?? await this.getVersion();
640
+ this.api.updatePlatformAccessories([existingAccessory]);
641
+ this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName}`);
642
+ new SmartHQWaterFilter(this, existingAccessory, device);
643
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
644
+ }
645
+ else {
646
+ this.unregisterPlatformAccessories(existingAccessory);
647
+ }
648
+ }
649
+ else if (!device.hide_device && !existingAccessory) {
650
+ this.infoLog(`Adding new accessory: ${device.nickname}`);
651
+ const accessory = new this.api.platformAccessory(device.nickname, uuid);
652
+ accessory.context.device = device;
653
+ accessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
654
+ accessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
655
+ accessory.context.device.firmware = device.firmware ?? await this.getVersion();
656
+ new SmartHQWaterFilter(this, accessory, device);
657
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
658
+ this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
659
+ this.accessories.push(accessory);
660
+ }
661
+ else {
662
+ this.debugErrorLog(`Unable to Register new device: ${JSON.stringify(device.nickname)}`);
663
+ }
664
+ }
665
+ async createSmartHQWaterSoftener(userId, device, details, features) {
666
+ const uuid = this.api.hap.uuid.generate(device.applianceId);
667
+ const existingAccessory = this.accessories.find(accessory => accessory.UUID === uuid);
668
+ if (existingAccessory) {
669
+ if (!device.hide_device) {
670
+ existingAccessory.context.device = device;
671
+ existingAccessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
672
+ existingAccessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
673
+ existingAccessory.context.device.firmware = device.firmware ?? await this.getVersion();
674
+ this.api.updatePlatformAccessories([existingAccessory]);
675
+ this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName}`);
676
+ new SmartHQWaterSoftener(this, existingAccessory, device);
677
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
678
+ }
679
+ else {
680
+ this.unregisterPlatformAccessories(existingAccessory);
681
+ }
682
+ }
683
+ else if (!device.hide_device && !existingAccessory) {
684
+ this.infoLog(`Adding new accessory: ${device.nickname}`);
685
+ const accessory = new this.api.platformAccessory(device.nickname, uuid);
686
+ accessory.context.device = device;
687
+ accessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
688
+ accessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
689
+ accessory.context.device.firmware = device.firmware ?? await this.getVersion();
690
+ new SmartHQWaterSoftener(this, accessory, device);
691
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
692
+ this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
693
+ this.accessories.push(accessory);
694
+ }
695
+ else {
696
+ this.debugErrorLog(`Unable to Register new device: ${JSON.stringify(device.nickname)}`);
697
+ }
698
+ }
699
+ async createSmartHQWaterHeater(userId, device, details, features) {
700
+ const uuid = this.api.hap.uuid.generate(device.applianceId);
701
+ const existingAccessory = this.accessories.find(accessory => accessory.UUID === uuid);
702
+ if (existingAccessory) {
703
+ if (!device.hide_device) {
704
+ existingAccessory.context.device = device;
705
+ existingAccessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
706
+ existingAccessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
707
+ existingAccessory.context.device.firmware = device.firmware ?? await this.getVersion();
708
+ this.api.updatePlatformAccessories([existingAccessory]);
709
+ this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName}`);
710
+ new SmartHQWaterHeater(this, existingAccessory, device);
711
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
712
+ }
713
+ else {
714
+ this.unregisterPlatformAccessories(existingAccessory);
715
+ }
716
+ }
717
+ else if (!device.hide_device && !existingAccessory) {
718
+ this.infoLog(`Adding new accessory: ${device.nickname}`);
719
+ const accessory = new this.api.platformAccessory(device.nickname, uuid);
720
+ accessory.context.device = device;
721
+ accessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
722
+ accessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
723
+ accessory.context.device.firmware = device.firmware ?? await this.getVersion();
724
+ new SmartHQWaterHeater(this, accessory, device);
725
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
726
+ this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
727
+ this.accessories.push(accessory);
728
+ }
729
+ else {
730
+ this.debugErrorLog(`Unable to Register new device: ${JSON.stringify(device.nickname)}`);
731
+ }
732
+ }
733
+ async createSmartHQAdvantium(userId, device, details, features) {
734
+ const uuid = this.api.hap.uuid.generate(device.applianceId);
735
+ const existingAccessory = this.accessories.find(accessory => accessory.UUID === uuid);
736
+ if (existingAccessory) {
737
+ if (!device.hide_device) {
738
+ existingAccessory.context.device = device;
739
+ existingAccessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
740
+ existingAccessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
741
+ existingAccessory.context.device.firmware = device.firmware ?? await this.getVersion();
742
+ this.api.updatePlatformAccessories([existingAccessory]);
743
+ this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName}`);
744
+ new SmartHQAdvantium(this, existingAccessory, device);
745
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
746
+ }
747
+ else {
748
+ this.unregisterPlatformAccessories(existingAccessory);
749
+ }
750
+ }
751
+ else if (!device.hide_device && !existingAccessory) {
752
+ this.infoLog(`Adding new accessory: ${device.nickname}`);
753
+ const accessory = new this.api.platformAccessory(device.nickname, uuid);
754
+ accessory.context.device = device;
755
+ accessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
756
+ accessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
757
+ accessory.context.device.firmware = device.firmware ?? await this.getVersion();
758
+ new SmartHQAdvantium(this, accessory, device);
759
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
760
+ this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
761
+ this.accessories.push(accessory);
762
+ }
763
+ else {
764
+ this.debugErrorLog(`Unable to Register new device: ${JSON.stringify(device.nickname)}`);
765
+ }
766
+ }
767
+ async createSmartHQMicrowave(userId, device, details, features) {
768
+ const uuid = this.api.hap.uuid.generate(device.applianceId);
769
+ const existingAccessory = this.accessories.find(accessory => accessory.UUID === uuid);
770
+ if (existingAccessory) {
771
+ if (!device.hide_device) {
772
+ existingAccessory.context.device = device;
773
+ existingAccessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
774
+ existingAccessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
775
+ existingAccessory.context.device.firmware = device.firmware ?? await this.getVersion();
776
+ this.api.updatePlatformAccessories([existingAccessory]);
777
+ this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName}`);
778
+ new SmartHQMicrowave(this, existingAccessory, device);
779
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
780
+ }
781
+ else {
782
+ this.unregisterPlatformAccessories(existingAccessory);
783
+ }
784
+ }
785
+ else if (!device.hide_device && !existingAccessory) {
786
+ this.infoLog(`Adding new accessory: ${device.nickname}`);
787
+ const accessory = new this.api.platformAccessory(device.nickname, uuid);
788
+ accessory.context.device = device;
789
+ accessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
790
+ accessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
791
+ accessory.context.device.firmware = device.firmware ?? await this.getVersion();
792
+ new SmartHQMicrowave(this, accessory, device);
793
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
794
+ this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
795
+ this.accessories.push(accessory);
796
+ }
797
+ else {
798
+ this.debugErrorLog(`Unable to Register new device: ${JSON.stringify(device.nickname)}`);
799
+ }
800
+ }
801
+ async createSmartHQCoffeeMaker(userId, device, details, features) {
802
+ const uuid = this.api.hap.uuid.generate(device.applianceId);
803
+ const existingAccessory = this.accessories.find(accessory => accessory.UUID === uuid);
804
+ if (existingAccessory) {
805
+ if (!device.hide_device) {
806
+ existingAccessory.context.device = device;
807
+ existingAccessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
808
+ existingAccessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
809
+ existingAccessory.context.device.firmware = device.firmware ?? await this.getVersion();
810
+ this.api.updatePlatformAccessories([existingAccessory]);
811
+ this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName}`);
812
+ new SmartHQCoffeeMaker(this, existingAccessory, device);
813
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
814
+ }
815
+ else {
816
+ this.unregisterPlatformAccessories(existingAccessory);
817
+ }
818
+ }
819
+ else if (!device.hide_device && !existingAccessory) {
820
+ this.infoLog(`Adding new accessory: ${device.nickname}`);
821
+ const accessory = new this.api.platformAccessory(device.nickname, uuid);
822
+ accessory.context.device = device;
823
+ accessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
824
+ accessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
825
+ accessory.context.device.firmware = device.firmware ?? await this.getVersion();
826
+ new SmartHQCoffeeMaker(this, accessory, device);
827
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
828
+ this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
829
+ this.accessories.push(accessory);
830
+ }
831
+ else {
832
+ this.debugErrorLog(`Unable to Register new device: ${JSON.stringify(device.nickname)}`);
833
+ }
834
+ }
835
+ async createSmartHQBeverageCenter(userId, device, details, features) {
836
+ const uuid = this.api.hap.uuid.generate(device.applianceId);
837
+ const existingAccessory = this.accessories.find(accessory => accessory.UUID === uuid);
838
+ if (existingAccessory) {
839
+ if (!device.hide_device) {
840
+ existingAccessory.context.device = device;
841
+ existingAccessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
842
+ existingAccessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
843
+ existingAccessory.context.device.firmware = device.firmware ?? await this.getVersion();
844
+ this.api.updatePlatformAccessories([existingAccessory]);
845
+ this.infoLog(`Restoring existing accessory from cache: ${existingAccessory.displayName}`);
846
+ new SmartHQBeverageCenter(this, existingAccessory, device);
847
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
848
+ }
849
+ else {
850
+ this.unregisterPlatformAccessories(existingAccessory);
851
+ }
852
+ }
853
+ else if (!device.hide_device && !existingAccessory) {
854
+ this.infoLog(`Adding new accessory: ${device.nickname}`);
855
+ const accessory = new this.api.platformAccessory(device.nickname, uuid);
856
+ accessory.context.device = device;
857
+ accessory.context = { device: { brand: 'GE', ...details, ...features }, userId };
858
+ accessory.displayName = await this.validateAndCleanDisplayName(device.nickname, 'nickname', device.nickname);
859
+ accessory.context.device.firmware = device.firmware ?? await this.getVersion();
860
+ new SmartHQBeverageCenter(this, accessory, device);
861
+ this.debugLog(`${device.nickname} uuid: ${device.applianceId}`);
862
+ this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
863
+ this.accessories.push(accessory);
864
+ }
865
+ else {
866
+ this.debugErrorLog(`Unable to Register new device: ${JSON.stringify(device.nickname)}`);
867
+ }
868
+ }
602
869
  async unregisterPlatformAccessories(existingAccessory) {
603
870
  // remove platform accessories when no longer present
604
871
  this.api.unregisterPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [existingAccessory]);