@homebridge-plugins/homebridge-smarthq 0.5.0-beta.5 → 0.5.0-beta.7

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 (113) hide show
  1. package/.github/ISSUE_TEMPLATE/config.yml +1 -1
  2. package/.github/copilot-instructions.md +90 -0
  3. package/.github/scripts/branch-helper.sh +41 -0
  4. package/.github/workflows/beta-release.yml +1 -1
  5. package/.github/workflows/release.yml +53 -17
  6. package/CHANGELOG.md +563 -18
  7. package/README.md +15 -0
  8. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.d.ts +1 -1
  9. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.d.ts.map +1 -1
  10. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.js +9 -5
  11. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.js.map +1 -1
  12. package/dist/devices/advantium.d.ts +10 -0
  13. package/dist/devices/advantium.d.ts.map +1 -0
  14. package/dist/devices/advantium.js +75 -0
  15. package/dist/devices/advantium.js.map +1 -0
  16. package/dist/devices/beverageCenter.d.ts +10 -0
  17. package/dist/devices/beverageCenter.d.ts.map +1 -0
  18. package/dist/devices/beverageCenter.js +125 -0
  19. package/dist/devices/beverageCenter.js.map +1 -0
  20. package/dist/devices/clothesDryer.d.ts +10 -0
  21. package/dist/devices/clothesDryer.d.ts.map +1 -0
  22. package/dist/devices/clothesDryer.js +84 -0
  23. package/dist/devices/clothesDryer.js.map +1 -0
  24. package/dist/devices/clothesWasher.d.ts +10 -0
  25. package/dist/devices/clothesWasher.d.ts.map +1 -0
  26. package/dist/devices/clothesWasher.js +84 -0
  27. package/dist/devices/clothesWasher.js.map +1 -0
  28. package/dist/devices/coffeeMaker.d.ts +10 -0
  29. package/dist/devices/coffeeMaker.d.ts.map +1 -0
  30. package/dist/devices/coffeeMaker.js +79 -0
  31. package/dist/devices/coffeeMaker.js.map +1 -0
  32. package/dist/devices/device.js +1 -1
  33. package/dist/devices/device.js.map +1 -1
  34. package/dist/devices/dishwasher.d.ts +0 -1
  35. package/dist/devices/dishwasher.d.ts.map +1 -1
  36. package/dist/devices/dishwasher.js +47 -12
  37. package/dist/devices/dishwasher.js.map +1 -1
  38. package/dist/devices/hood.d.ts +34 -0
  39. package/dist/devices/hood.d.ts.map +1 -0
  40. package/dist/devices/hood.js +306 -0
  41. package/dist/devices/hood.js.map +1 -0
  42. package/dist/devices/microwave.d.ts +10 -0
  43. package/dist/devices/microwave.d.ts.map +1 -0
  44. package/dist/devices/microwave.js +84 -0
  45. package/dist/devices/microwave.js.map +1 -0
  46. package/dist/devices/oven.d.ts.map +1 -1
  47. package/dist/devices/oven.js +78 -32
  48. package/dist/devices/oven.js.map +1 -1
  49. package/dist/devices/refrigerator.d.ts.map +1 -1
  50. package/dist/devices/refrigerator.js +142 -13
  51. package/dist/devices/refrigerator.js.map +1 -1
  52. package/dist/devices/waterFilter.d.ts +10 -0
  53. package/dist/devices/waterFilter.d.ts.map +1 -0
  54. package/dist/devices/waterFilter.js +67 -0
  55. package/dist/devices/waterFilter.js.map +1 -0
  56. package/dist/devices/waterHeater.d.ts +10 -0
  57. package/dist/devices/waterHeater.d.ts.map +1 -0
  58. package/dist/devices/waterHeater.js +95 -0
  59. package/dist/devices/waterHeater.js.map +1 -0
  60. package/dist/devices/waterSoftener.d.ts +10 -0
  61. package/dist/devices/waterSoftener.d.ts.map +1 -0
  62. package/dist/devices/waterSoftener.js +67 -0
  63. package/dist/devices/waterSoftener.js.map +1 -0
  64. package/dist/platform.d.ts +10 -0
  65. package/dist/platform.d.ts.map +1 -1
  66. package/dist/platform.js +383 -0
  67. package/dist/platform.js.map +1 -1
  68. package/dist/settings.d.ts +13 -0
  69. package/dist/settings.d.ts.map +1 -1
  70. package/dist/settings.js +3 -0
  71. package/dist/settings.js.map +1 -1
  72. package/docs/assets/highlight.css +7 -0
  73. package/docs/assets/main.js +5 -5
  74. package/docs/assets/navigation.js +1 -0
  75. package/docs/assets/search.js +1 -0
  76. package/docs/assets/style.css +248 -226
  77. package/docs/classes/SmartHQPlatform.html +45 -56
  78. package/docs/hierarchy.html +1 -0
  79. package/docs/index.html +22 -12
  80. package/docs/interfaces/DeviceOptions.html +2 -3
  81. package/docs/interfaces/SmartHQPlatformConfig.html +6 -17
  82. package/docs/interfaces/SmartHqContext.html +6 -4
  83. package/docs/interfaces/SmartHqERDResponse.html +7 -8
  84. package/docs/interfaces/credentials.html +3 -4
  85. package/docs/interfaces/devicesConfig.html +7 -8
  86. package/docs/interfaces/options.html +7 -8
  87. package/docs/media/copilot-instructions.md +90 -0
  88. package/docs/modules.html +1 -2
  89. package/docs/variables/API_URL.html +1 -2
  90. package/docs/variables/ERD_CODES.html +1 -2
  91. package/docs/variables/ERD_TYPES.html +1 -2
  92. package/docs/variables/KEEPALIVE_TIMEOUT.html +1 -2
  93. package/docs/variables/LOGIN_URL.html +2 -3
  94. package/docs/variables/OAUTH2_CLIENT_ID.html +1 -2
  95. package/docs/variables/OAUTH2_CLIENT_SECRET.html +1 -2
  96. package/docs/variables/OAUTH2_REDIRECT_URI.html +1 -2
  97. package/docs/variables/PLATFORM_NAME.html +2 -3
  98. package/docs/variables/PLUGIN_NAME.html +2 -3
  99. package/docs/variables/SECURE_URL.html +2 -3
  100. package/docs/variables/default.html +1 -0
  101. package/package.json +21 -28
  102. package/typedoc.json +0 -4
  103. package/vitest.config.ts +6 -5
  104. package/.github/workflows/build.yml +0 -18
  105. package/.github/workflows/changerelease.yml +0 -11
  106. package/.github/workflows/labeler.yml +0 -9
  107. package/.github/workflows/release-drafter.yml +0 -14
  108. package/docs/assets/dmt/dmt-component-data.js +0 -1
  109. package/docs/assets/dmt/dmt-components.css +0 -20
  110. package/docs/assets/dmt/dmt-components.js +0 -67
  111. package/docs/assets/dmt/dmt-search.cmp +0 -0
  112. package/docs/assets/dmt/dmt-theme.css +0 -1
  113. package/docs/functions/default.html +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microwave.js","sourceRoot":"","sources":["../../src/devices/microwave.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"oven.d.ts","sourceRoot":"","sources":["../../src/devices/oven.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;AAOnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,WAAY,SAAQ,UAAU;IAEvC,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;IAuCrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAWpD"}
1
+ {"version":3,"file":"oven.d.ts","sourceRoot":"","sources":["../../src/devices/oven.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;AAOnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,WAAY,SAAQ,UAAU;IAEvC,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;IA+ErD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAUpD"}
@@ -10,43 +10,87 @@ export class SmartHQOven extends deviceBase {
10
10
  this.platform = platform;
11
11
  this.device = device;
12
12
  this.debugLog(`Oven Features: ${JSON.stringify(accessory.context.device.features)}`);
13
- accessory.context.device.features.forEach((feature) => {
14
- switch (feature) {
15
- case 'COOKING_V1_UPPER_OVEN_FOUNDATION': {
16
- const ovenLight = this.accessory.getService(accessory.displayName) ?? this.accessory.addService(this.platform.Service.Lightbulb, accessory.displayName, 'Oven');
17
- ovenLight
18
- .getCharacteristic(this.platform.Characteristic.On)
19
- .onGet(() => this.readErd(ERD_TYPES.UPPER_OVEN_LIGHT).then(r => Number.parseInt(r) !== 0))
20
- .onSet(value => this.writeErd(ERD_TYPES.UPPER_OVEN_LIGHT, value));
21
- break;
22
- }
23
- case 'COOKING_V1_EXTENDED_COOKTOP_FOUNDATION': {
24
- this.accessory.getService(accessory.displayName) ?? this.accessory.addService(this.platform.Service.StatefulProgrammableSwitch, accessory.displayName, 'Oven')
25
- .getCharacteristic(this.platform.Characteristic.TargetTemperature)
26
- .onGet(async () => {
27
- const erdVal = await this.readErd(ERD_TYPES.UPPER_OVEN_COOK_MODE);
28
- const b = Buffer.from(erdVal, 'hex');
29
- return fToC(b.readUint16BE(1));
30
- })
31
- .onSet(async (value) => {
32
- const fTarget = cToF(value);
33
- const erdVal = await this.readErd(ERD_TYPES.UPPER_OVEN_COOK_MODE);
34
- const b = Buffer.from(erdVal, 'hex');
35
- b.writeUint16BE(fTarget, 1);
36
- return this.writeErd(ERD_TYPES.UPPER_OVEN_COOK_MODE, b.toString('hex'));
37
- });
38
- }
13
+ // Oven Light
14
+ const ovenLight = this.accessory.getService('Oven Light') ?? this.accessory.addService(this.platform.Service.Lightbulb, 'Oven Light', 'OvenLight');
15
+ ovenLight.setCharacteristic(this.platform.Characteristic.Name, 'Oven Light');
16
+ ovenLight
17
+ .getCharacteristic(this.platform.Characteristic.On)
18
+ .onGet(async () => {
19
+ try {
20
+ return await this.readErd(ERD_TYPES.UPPER_OVEN_LIGHT).then(r => Number.parseInt(r) !== 0);
21
+ }
22
+ catch (error) {
23
+ this.warnLog?.(`Oven Light handleGetOn error: ${error?.message ?? error}`);
24
+ return false;
25
+ }
26
+ })
27
+ .onSet(async (value) => {
28
+ try {
29
+ await this.writeErd(ERD_TYPES.UPPER_OVEN_LIGHT, value);
30
+ }
31
+ catch (error) {
32
+ this.warnLog?.(`Oven Light handleSetOn error: ${error?.message ?? error}`);
33
+ }
34
+ });
35
+ // Oven Current Temperature Sensor
36
+ const ovenTempSensor = this.accessory.getService('Oven Temperature') ?? this.accessory.addService(this.platform.Service.TemperatureSensor, 'Oven Temperature', 'OvenTemp');
37
+ ovenTempSensor.setCharacteristic(this.platform.Characteristic.Name, 'Oven Temperature');
38
+ ovenTempSensor
39
+ .getCharacteristic(this.platform.Characteristic.CurrentTemperature)
40
+ .onGet(async () => {
41
+ try {
42
+ const erdVal = await this.readErd(ERD_TYPES.UPPER_OVEN_COOK_MODE);
43
+ const b = Buffer.from(erdVal, 'hex');
44
+ return fToC(b.readUint16BE(1));
45
+ }
46
+ catch (error) {
47
+ this.warnLog?.(`Oven Temperature error: ${error?.message ?? error}`);
48
+ return 0;
49
+ }
50
+ });
51
+ // Oven Door Lock (Security System for lock state)
52
+ const ovenDoorLock = this.accessory.getService('Oven Door Lock') ?? this.accessory.addService(this.platform.Service.LockMechanism, 'Oven Door Lock', 'OvenDoorLock');
53
+ ovenDoorLock.setCharacteristic(this.platform.Characteristic.Name, 'Oven Door Lock');
54
+ ovenDoorLock
55
+ .getCharacteristic(this.platform.Characteristic.LockCurrentState)
56
+ .onGet(async () => {
57
+ try {
58
+ // TODO: Use actual ERD for door lock state when available
59
+ return this.platform.Characteristic.LockCurrentState.UNSECURED;
60
+ }
61
+ catch (error) {
62
+ this.warnLog?.(`Oven Door Lock error: ${error?.message ?? error}`);
63
+ return this.platform.Characteristic.LockCurrentState.UNSECURED;
64
+ }
65
+ });
66
+ ovenDoorLock
67
+ .getCharacteristic(this.platform.Characteristic.LockTargetState)
68
+ .onGet(async () => {
69
+ try {
70
+ // TODO: Use actual ERD for door lock state when available
71
+ return this.platform.Characteristic.LockTargetState.UNSECURED;
72
+ }
73
+ catch (error) {
74
+ this.warnLog?.(`Oven Door Lock error: ${error?.message ?? error}`);
75
+ return this.platform.Characteristic.LockTargetState.UNSECURED;
76
+ }
77
+ })
78
+ .onSet(async (value) => {
79
+ try {
80
+ // TODO: Implement door lock control when ERD is available
81
+ this.debugLog(`Oven Door Lock set to: ${value}`);
82
+ }
83
+ catch (error) {
84
+ this.warnLog?.(`Oven Door Lock set error: ${error?.message ?? error}`);
39
85
  }
40
86
  });
41
87
  }
42
88
  async readErd(erd) {
43
- const d = await axios
44
- .get(`/appliance/${this.accessory.context.device.applianceId}/erd/${erd}`);
89
+ const d = await axios.get(`/appliance/${this.accessory.context.device.applianceId}/erd/${erd}`);
45
90
  return String(d.data.value);
46
91
  }
47
92
  async writeErd(erd, value) {
48
- await axios
49
- .post(`/appliance/${this.accessory.context.device.applianceId}/erd/${erd}`, {
93
+ await axios.post(`/appliance/${this.accessory.context.device.applianceId}/erd/${erd}`, {
50
94
  kind: 'appliance#erdListEntry',
51
95
  userId: this.accessory.context.userId,
52
96
  applianceId: this.accessory.context.device.applianceId,
@@ -56,9 +100,11 @@ export class SmartHQOven extends deviceBase {
56
100
  return undefined;
57
101
  }
58
102
  }
59
- function cToF(celsius) {
60
- return (celsius * 9) / 5 + 32;
103
+ /*
104
+ function cToF(celsius: number) {
105
+ return (celsius * 9) / 5 + 32
61
106
  }
107
+ */
62
108
  function fToC(fahrenheit) {
63
109
  return ((fahrenheit - 32) * 5) / 9;
64
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"oven.js","sourceRoot":"","sources":["../../src/devices/oven.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,OAAO,WAAY,SAAQ,UAAU;IAE9B;IAEA;IAHX,YACW,QAAyB,EAClC,SAA4C,EACnC,MAAgD;QAEzD,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAJzB,aAAQ,GAAR,QAAQ,CAAiB;QAEzB,WAAM,GAAN,MAAM,CAA0C;QAIzD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACpF,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpD,QAAQ,OAAO,EAAE,CAAC;gBAChB,KAAK,kCAAkC,CAAC,CAAC,CAAC;oBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;oBAE/J,SAAS;yBACN,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;yBAClD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;yBACzF,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAgB,CAAC,CAAC,CAAA;oBAC9E,MAAK;gBACP,CAAC;gBACD,KAAK,wCAAwC,CAAC,CAAC,CAAC;oBAC9C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,0BAA0B,EAAE,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;yBAC3J,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC;yBACjE,KAAK,CAAC,KAAK,IAAI,EAAE;wBAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAA;wBAEjE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;wBACpC,OAAO,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;oBAChC,CAAC,CAAC;yBACD,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;wBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAe,CAAC,CAAA;wBAErC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAA;wBACjE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;wBACpC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;wBAE3B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;oBACzE,CAAC,CAAC,CAAA;gBACN,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,MAAM,CAAC,GAAG,MAAM,KAAK;aAClB,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,QAAQ,GAAG,EAAE,CAAC,CAAA;QAC5E,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,KAAuB;QACjD,MAAM,KAAK;aACR,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,QAAQ,GAAG,EAAE,EAAE;YAC1E,IAAI,EAAE,wBAAwB;YAC9B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM;YACrC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW;YACtD,GAAG;YACH,KAAK,EAAE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;SAClE,CAAC,CAAA;QACJ,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AAED,SAAS,IAAI,CAAC,OAAe;IAC3B,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;AAC/B,CAAC;AAED,SAAS,IAAI,CAAC,UAAkB;IAC9B,OAAO,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC"}
1
+ {"version":3,"file":"oven.js","sourceRoot":"","sources":["../../src/devices/oven.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"refrigerator.d.ts","sourceRoot":"","sources":["../../src/devices/refrigerator.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;AAMnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,mBAAoB,SAAQ,UAAU;IAM/C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAN3D,sBAAsB,EAAG,OAAO,CAAA;IAChC,YAAY,EAAE,GAAG,CAAA;gBAGN,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAoCrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAWpD"}
1
+ {"version":3,"file":"refrigerator.d.ts","sourceRoot":"","sources":["../../src/devices/refrigerator.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;AAMnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,mBAAoB,SAAQ,UAAU;IAM/C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAN3D,sBAAsB,EAAG,OAAO,CAAA;IAChC,YAAY,EAAE,GAAG,CAAA;gBAGN,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAqKrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAWpD"}
@@ -13,19 +13,148 @@ export class SmartHQRefrigerator extends deviceBase {
13
13
  this.platform = platform;
14
14
  this.device = device;
15
15
  this.debugLog(`Refrigerator Features: ${JSON.stringify(accessory.context.device.features)}`);
16
- accessory.context.device.features.forEach((feature) => {
17
- /* [
18
- "DOOR_STATUS"
19
- ] */
20
- switch (feature) {
21
- case 'DOOR_STATUS': {
22
- const refrigerator = this.accessory.getService(accessory.displayName) ?? this.accessory.addService(this.platform.Service.ContactSensor, accessory.displayName, 'Refrigerator');
23
- refrigerator
24
- .getCharacteristic(this.platform.Characteristic.ContactSensorState)
25
- .onGet(() => this.readErd(ERD_TYPES.DOOR_STATUS).then(r => Number.parseInt(r) !== 0))
26
- .onSet(value => this.writeErd(ERD_TYPES.DOOR_STATUS, value));
27
- break;
28
- }
16
+ // Refrigerator Door Sensor
17
+ const doorSensorService = this.accessory.getService('Refrigerator Door') ?? this.accessory.addService(this.platform.Service.ContactSensor, 'Refrigerator Door', 'RefrigeratorDoor');
18
+ doorSensorService.setCharacteristic(this.platform.Characteristic.Name, 'Refrigerator Door');
19
+ doorSensorService
20
+ .getCharacteristic(this.platform.Characteristic.ContactSensorState)
21
+ .onGet(async () => {
22
+ try {
23
+ const r = await this.readErd(ERD_TYPES.DOOR_STATUS);
24
+ return Number.parseInt(r) !== 0;
25
+ }
26
+ catch (error) {
27
+ this.warnLog?.(`Refrigerator Door Sensor readErd error: ${error?.message ?? error}`);
28
+ return false;
29
+ }
30
+ });
31
+ // Fridge Temperature Sensor
32
+ const fridgeTempService = this.accessory.getService('Fridge Temperature') ?? this.accessory.addService(this.platform.Service.TemperatureSensor, 'Fridge Temperature', 'FridgeTemp');
33
+ fridgeTempService.setCharacteristic(this.platform.Characteristic.Name, 'Fridge Temperature');
34
+ fridgeTempService
35
+ .getCharacteristic(this.platform.Characteristic.CurrentTemperature)
36
+ .onGet(async () => {
37
+ try {
38
+ const r = await this.readErd(ERD_TYPES.CURRENT_TEMPERATURE);
39
+ this.debugLog(`Raw CURRENT_TEMPERATURE ERD response: ${r}`);
40
+ // Parse the hex string - format is typically 4 hex characters (2 bytes)
41
+ // First byte = fridge temp, second byte = freezer temp (both in °F)
42
+ const fridgeTempF = Number.parseInt(r.substring(0, 2), 16);
43
+ this.debugLog(`Fridge temp: ${fridgeTempF}°F`);
44
+ // Convert Fahrenheit to Celsius for HomeKit
45
+ const fridgeTempC = (fridgeTempF - 32) * 5 / 9;
46
+ return fridgeTempC;
47
+ }
48
+ catch (error) {
49
+ this.warnLog?.(`Fridge Temperature readErd error: ${error?.message ?? error}`);
50
+ return 0;
51
+ }
52
+ });
53
+ // Freezer Temperature Sensor
54
+ const freezerTempService = this.accessory.getService('Freezer Temperature') ?? this.accessory.addService(this.platform.Service.TemperatureSensor, 'Freezer Temperature', 'FreezerTemp');
55
+ freezerTempService.setCharacteristic(this.platform.Characteristic.Name, 'Freezer Temperature');
56
+ freezerTempService
57
+ .getCharacteristic(this.platform.Characteristic.CurrentTemperature)
58
+ .onGet(async () => {
59
+ try {
60
+ const r = await this.readErd(ERD_TYPES.CURRENT_TEMPERATURE);
61
+ this.debugLog(`Raw CURRENT_TEMPERATURE ERD response: ${r}`);
62
+ // Parse the hex string - second byte is freezer temp in °F
63
+ const freezerTempF = Number.parseInt(r.substring(2, 4), 16);
64
+ this.debugLog(`Freezer temp: ${freezerTempF}°F`);
65
+ // Convert Fahrenheit to Celsius for HomeKit
66
+ const freezerTempC = (freezerTempF - 32) * 5 / 9;
67
+ return freezerTempC;
68
+ }
69
+ catch (error) {
70
+ this.warnLog?.(`Freezer Temperature readErd error: ${error?.message ?? error}`);
71
+ return 0;
72
+ }
73
+ });
74
+ // Air Filter Status
75
+ const filterService = this.accessory.getService('Air Filter') ?? this.accessory.addService(this.platform.Service.FilterMaintenance, 'Air Filter', 'AirFilter');
76
+ filterService.setCharacteristic(this.platform.Characteristic.Name, 'Air Filter');
77
+ filterService
78
+ .getCharacteristic(this.platform.Characteristic.FilterChangeIndication)
79
+ .onGet(async () => {
80
+ try {
81
+ const r = await this.readErd(ERD_TYPES.AIR_FILTER_STATUS);
82
+ return Number.parseInt(r) === 1
83
+ ? this.platform.Characteristic.FilterChangeIndication.CHANGE_FILTER
84
+ : this.platform.Characteristic.FilterChangeIndication.FILTER_OK;
85
+ }
86
+ catch (error) {
87
+ this.warnLog?.(`Air Filter Status readErd error: ${error?.message ?? error}`);
88
+ return this.platform.Characteristic.FilterChangeIndication.FILTER_OK;
89
+ }
90
+ });
91
+ // Ice Maker Control (Switch)
92
+ const iceMakerService = this.accessory.getService('Ice Maker') ?? this.accessory.addService(this.platform.Service.Switch, 'Ice Maker', 'IceMaker');
93
+ iceMakerService.setCharacteristic(this.platform.Characteristic.Name, 'Ice Maker');
94
+ iceMakerService
95
+ .getCharacteristic(this.platform.Characteristic.On)
96
+ .onGet(async () => {
97
+ try {
98
+ const r = await this.readErd(ERD_TYPES.ICE_MAKER_CONTROL);
99
+ return Number.parseInt(r) !== 0;
100
+ }
101
+ catch (error) {
102
+ this.warnLog?.(`Ice Maker Control readErd error: ${error?.message ?? error}`);
103
+ return false;
104
+ }
105
+ })
106
+ .onSet(async (value) => {
107
+ try {
108
+ await this.writeErd(ERD_TYPES.ICE_MAKER_CONTROL, value);
109
+ }
110
+ catch (error) {
111
+ this.warnLog?.(`Ice Maker Control writeErd error: ${error?.message ?? error}`);
112
+ }
113
+ });
114
+ // Turbo Cool Switch
115
+ const turboCoolService = this.accessory.getService('Turbo Cool') ?? this.accessory.addService(this.platform.Service.Switch, 'Turbo Cool', 'TurboCool');
116
+ turboCoolService.setCharacteristic(this.platform.Characteristic.Name, 'Turbo Cool');
117
+ turboCoolService
118
+ .getCharacteristic(this.platform.Characteristic.On)
119
+ .onGet(async () => {
120
+ try {
121
+ const r = await this.readErd(ERD_TYPES.TURBO_COOL_STATUS);
122
+ return Number.parseInt(r) !== 0;
123
+ }
124
+ catch (error) {
125
+ this.warnLog?.(`Turbo Cool Status readErd error: ${error?.message ?? error}`);
126
+ return false;
127
+ }
128
+ })
129
+ .onSet(async (value) => {
130
+ try {
131
+ await this.writeErd(ERD_TYPES.TURBO_COOL_STATUS, value);
132
+ }
133
+ catch (error) {
134
+ this.warnLog?.(`Turbo Cool Status writeErd error: ${error?.message ?? error}`);
135
+ }
136
+ });
137
+ // Turbo Freeze Switch
138
+ const turboFreezeService = this.accessory.getService('Turbo Freeze') ?? this.accessory.addService(this.platform.Service.Switch, 'Turbo Freeze', 'TurboFreeze');
139
+ turboFreezeService.setCharacteristic(this.platform.Characteristic.Name, 'Turbo Freeze');
140
+ turboFreezeService
141
+ .getCharacteristic(this.platform.Characteristic.On)
142
+ .onGet(async () => {
143
+ try {
144
+ const r = await this.readErd(ERD_TYPES.TURBO_FREEZE_STATUS);
145
+ return Number.parseInt(r) !== 0;
146
+ }
147
+ catch (error) {
148
+ this.warnLog?.(`Turbo Freeze Status readErd error: ${error?.message ?? error}`);
149
+ return false;
150
+ }
151
+ })
152
+ .onSet(async (value) => {
153
+ try {
154
+ await this.writeErd(ERD_TYPES.TURBO_FREEZE_STATUS, value);
155
+ }
156
+ catch (error) {
157
+ this.warnLog?.(`Turbo Freeze Status writeErd error: ${error?.message ?? error}`);
29
158
  }
30
159
  });
31
160
  // this is subject we use to track when we need to POST changes to the SmartHQ API
@@ -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;CA4D5D"}
@@ -0,0 +1,67 @@
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.setCharacteristic(this.platform.Characteristic.Name, 'Water Filter');
13
+ filterService
14
+ .getCharacteristic(this.platform.Characteristic.FilterChangeIndication)
15
+ .onGet(async () => {
16
+ try {
17
+ // TODO: Implement filter status ERD
18
+ return this.platform.Characteristic.FilterChangeIndication.FILTER_OK;
19
+ }
20
+ catch (error) {
21
+ this.warnLog?.(`Water Filter Status error: ${error?.message ?? error}`);
22
+ return this.platform.Characteristic.FilterChangeIndication.FILTER_OK;
23
+ }
24
+ });
25
+ filterService
26
+ .getCharacteristic(this.platform.Characteristic.FilterLifeLevel)
27
+ .onGet(async () => {
28
+ try {
29
+ // TODO: Implement filter life percentage ERD
30
+ return 100;
31
+ }
32
+ catch (error) {
33
+ this.warnLog?.(`Water Filter Life error: ${error?.message ?? error}`);
34
+ return 100;
35
+ }
36
+ });
37
+ // Water Flow Valve
38
+ const valveService = this.accessory.getService('Water Flow') ?? this.accessory.addService(this.platform.Service.Valve, 'Water Flow', 'WaterFlow');
39
+ valveService.setCharacteristic(this.platform.Characteristic.Name, 'Water Flow');
40
+ valveService.setCharacteristic(this.platform.Characteristic.ValveType, this.platform.Characteristic.ValveType.WATER_FAUCET);
41
+ valveService
42
+ .getCharacteristic(this.platform.Characteristic.Active)
43
+ .onGet(async () => {
44
+ try {
45
+ // TODO: Implement water flow state ERD
46
+ return this.platform.Characteristic.Active.ACTIVE;
47
+ }
48
+ catch (error) {
49
+ this.warnLog?.(`Water Flow error: ${error?.message ?? error}`);
50
+ return this.platform.Characteristic.Active.INACTIVE;
51
+ }
52
+ });
53
+ valveService
54
+ .getCharacteristic(this.platform.Characteristic.InUse)
55
+ .onGet(async () => {
56
+ try {
57
+ // TODO: Implement water flow state ERD
58
+ return this.platform.Characteristic.InUse.IN_USE;
59
+ }
60
+ catch (error) {
61
+ this.warnLog?.(`Water Flow InUse error: ${error?.message ?? error}`);
62
+ return this.platform.Characteristic.InUse.NOT_IN_USE;
63
+ }
64
+ });
65
+ }
66
+ }
67
+ //# 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;CAwF5D"}
@@ -0,0 +1,95 @@
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.setCharacteristic(this.platform.Characteristic.Name, 'Water Heater');
13
+ heaterService
14
+ .getCharacteristic(this.platform.Characteristic.CurrentHeatingCoolingState)
15
+ .onGet(async () => {
16
+ try {
17
+ // TODO: Implement heating state ERD
18
+ return this.platform.Characteristic.CurrentHeatingCoolingState.HEAT;
19
+ }
20
+ catch (error) {
21
+ this.warnLog?.(`Water Heater State error: ${error?.message ?? error}`);
22
+ return this.platform.Characteristic.CurrentHeatingCoolingState.OFF;
23
+ }
24
+ });
25
+ heaterService
26
+ .getCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState)
27
+ .setProps({
28
+ validValues: [this.platform.Characteristic.TargetHeatingCoolingState.OFF, this.platform.Characteristic.TargetHeatingCoolingState.HEAT],
29
+ })
30
+ .onGet(async () => {
31
+ try {
32
+ // TODO: Implement target state ERD
33
+ return this.platform.Characteristic.TargetHeatingCoolingState.HEAT;
34
+ }
35
+ catch (error) {
36
+ this.warnLog?.(`Water Heater Target State error: ${error?.message ?? error}`);
37
+ return this.platform.Characteristic.TargetHeatingCoolingState.OFF;
38
+ }
39
+ })
40
+ .onSet(async (value) => {
41
+ try {
42
+ // TODO: Implement target state control ERD
43
+ this.debugLog(`Water Heater set to: ${value}`);
44
+ }
45
+ catch (error) {
46
+ this.warnLog?.(`Water Heater Target State set error: ${error?.message ?? error}`);
47
+ }
48
+ });
49
+ heaterService
50
+ .getCharacteristic(this.platform.Characteristic.CurrentTemperature)
51
+ .onGet(async () => {
52
+ try {
53
+ // TODO: Implement current temperature ERD
54
+ return 50;
55
+ }
56
+ catch (error) {
57
+ this.warnLog?.(`Water Heater Current Temp error: ${error?.message ?? error}`);
58
+ return 50;
59
+ }
60
+ });
61
+ heaterService
62
+ .getCharacteristic(this.platform.Characteristic.TargetTemperature)
63
+ .setProps({
64
+ minValue: 40,
65
+ maxValue: 60,
66
+ minStep: 1,
67
+ })
68
+ .onGet(async () => {
69
+ try {
70
+ // TODO: Implement target temperature ERD
71
+ return 50;
72
+ }
73
+ catch (error) {
74
+ this.warnLog?.(`Water Heater Target Temp error: ${error?.message ?? error}`);
75
+ return 50;
76
+ }
77
+ })
78
+ .onSet(async (value) => {
79
+ try {
80
+ // TODO: Implement target temperature control ERD
81
+ this.debugLog(`Water Heater temperature set to: ${value}°C`);
82
+ }
83
+ catch (error) {
84
+ this.warnLog?.(`Water Heater Target Temp set error: ${error?.message ?? error}`);
85
+ }
86
+ });
87
+ heaterService
88
+ .getCharacteristic(this.platform.Characteristic.TemperatureDisplayUnits)
89
+ .onGet(async () => this.platform.Characteristic.TemperatureDisplayUnits.CELSIUS)
90
+ .onSet(async (value) => {
91
+ this.debugLog(`Water Heater display units set to: ${value}`);
92
+ });
93
+ }
94
+ }
95
+ //# 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;CA4D5D"}