@homebridge-plugins/homebridge-smarthq 0.5.0-beta.4 → 0.5.0-beta.41

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 (145) hide show
  1. package/.github/ISSUE_TEMPLATE/config.yml +1 -1
  2. package/.github/copilot-instructions.md +361 -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/MATTER.md +304 -0
  8. package/README.md +15 -0
  9. package/config.schema.json +24 -5
  10. package/dist/devices/OpalIceMaker/Managers/OpalDescaleSvcManager.d.ts.map +1 -1
  11. package/dist/devices/OpalIceMaker/Managers/OpalDescaleSvcManager.js +3 -1
  12. package/dist/devices/OpalIceMaker/Managers/OpalDescaleSvcManager.js.map +1 -1
  13. package/dist/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.d.ts.map +1 -1
  14. package/dist/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.js +3 -1
  15. package/dist/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.js.map +1 -1
  16. package/dist/devices/OpalIceMaker/Managers/OpalPowerSvcManager.js +1 -1
  17. package/dist/devices/OpalIceMaker/Managers/OpalPowerSvcManager.js.map +1 -1
  18. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.d.ts +1 -1
  19. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.d.ts.map +1 -1
  20. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.js +12 -5
  21. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.js.map +1 -1
  22. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.d.ts.map +1 -1
  23. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.js +4 -2
  24. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.js.map +1 -1
  25. package/dist/devices/OpalIceMaker/OpalDeviceBase.d.ts +3 -4
  26. package/dist/devices/OpalIceMaker/OpalDeviceBase.d.ts.map +1 -1
  27. package/dist/devices/OpalIceMaker/OpalDeviceBase.js +3 -18
  28. package/dist/devices/OpalIceMaker/OpalDeviceBase.js.map +1 -1
  29. package/dist/devices/advantium.d.ts +10 -0
  30. package/dist/devices/advantium.d.ts.map +1 -0
  31. package/dist/devices/advantium.js +75 -0
  32. package/dist/devices/advantium.js.map +1 -0
  33. package/dist/devices/airConditioner.d.ts +11 -2
  34. package/dist/devices/airConditioner.d.ts.map +1 -1
  35. package/dist/devices/airConditioner.js +111 -17
  36. package/dist/devices/airConditioner.js.map +1 -1
  37. package/dist/devices/beverageCenter.d.ts +10 -0
  38. package/dist/devices/beverageCenter.d.ts.map +1 -0
  39. package/dist/devices/beverageCenter.js +125 -0
  40. package/dist/devices/beverageCenter.js.map +1 -0
  41. package/dist/devices/clothesDryer.d.ts +21 -0
  42. package/dist/devices/clothesDryer.d.ts.map +1 -0
  43. package/dist/devices/clothesDryer.js +273 -0
  44. package/dist/devices/clothesDryer.js.map +1 -0
  45. package/dist/devices/clothesWasher.d.ts +21 -0
  46. package/dist/devices/clothesWasher.d.ts.map +1 -0
  47. package/dist/devices/clothesWasher.js +284 -0
  48. package/dist/devices/clothesWasher.js.map +1 -0
  49. package/dist/devices/coffeeMaker.d.ts +10 -0
  50. package/dist/devices/coffeeMaker.d.ts.map +1 -0
  51. package/dist/devices/coffeeMaker.js +79 -0
  52. package/dist/devices/coffeeMaker.js.map +1 -0
  53. package/dist/devices/device.d.ts +108 -13
  54. package/dist/devices/device.d.ts.map +1 -1
  55. package/dist/devices/device.js +381 -60
  56. package/dist/devices/device.js.map +1 -1
  57. package/dist/devices/dishwasher.d.ts +9 -3
  58. package/dist/devices/dishwasher.d.ts.map +1 -1
  59. package/dist/devices/dishwasher.js +164 -29
  60. package/dist/devices/dishwasher.js.map +1 -1
  61. package/dist/devices/hood.d.ts +41 -0
  62. package/dist/devices/hood.d.ts.map +1 -0
  63. package/dist/devices/hood.js +336 -0
  64. package/dist/devices/hood.js.map +1 -0
  65. package/dist/devices/microwave.d.ts +19 -0
  66. package/dist/devices/microwave.d.ts.map +1 -0
  67. package/dist/devices/microwave.js +147 -0
  68. package/dist/devices/microwave.js.map +1 -0
  69. package/dist/devices/oven.d.ts +9 -2
  70. package/dist/devices/oven.d.ts.map +1 -1
  71. package/dist/devices/oven.js +267 -43
  72. package/dist/devices/oven.js.map +1 -1
  73. package/dist/devices/refrigerator.d.ts +37 -2
  74. package/dist/devices/refrigerator.d.ts.map +1 -1
  75. package/dist/devices/refrigerator.js +583 -34
  76. package/dist/devices/refrigerator.js.map +1 -1
  77. package/dist/devices/waterFilter.d.ts +10 -0
  78. package/dist/devices/waterFilter.d.ts.map +1 -0
  79. package/dist/devices/waterFilter.js +67 -0
  80. package/dist/devices/waterFilter.js.map +1 -0
  81. package/dist/devices/waterHeater.d.ts +19 -0
  82. package/dist/devices/waterHeater.d.ts.map +1 -0
  83. package/dist/devices/waterHeater.js +161 -0
  84. package/dist/devices/waterHeater.js.map +1 -0
  85. package/dist/devices/waterSoftener.d.ts +10 -0
  86. package/dist/devices/waterSoftener.d.ts.map +1 -0
  87. package/dist/devices/waterSoftener.js +67 -0
  88. package/dist/devices/waterSoftener.js.map +1 -0
  89. package/dist/getAccessToken.d.ts.map +1 -1
  90. package/dist/getAccessToken.js +190 -2
  91. package/dist/getAccessToken.js.map +1 -1
  92. package/dist/platform.d.ts +32 -1
  93. package/dist/platform.d.ts.map +1 -1
  94. package/dist/platform.js +853 -151
  95. package/dist/platform.js.map +1 -1
  96. package/dist/platform.test.d.ts +2 -0
  97. package/dist/platform.test.d.ts.map +1 -0
  98. package/dist/platform.test.js +80 -0
  99. package/dist/platform.test.js.map +1 -0
  100. package/dist/settings.d.ts +24 -0
  101. package/dist/settings.d.ts.map +1 -1
  102. package/dist/settings.js +13 -0
  103. package/dist/settings.js.map +1 -1
  104. package/docs/assets/highlight.css +7 -0
  105. package/docs/assets/main.js +5 -5
  106. package/docs/assets/navigation.js +1 -0
  107. package/docs/assets/search.js +1 -0
  108. package/docs/assets/style.css +248 -226
  109. package/docs/classes/SmartHQPlatform.html +54 -56
  110. package/docs/hierarchy.html +1 -0
  111. package/docs/index.html +22 -12
  112. package/docs/interfaces/DeviceOptions.html +2 -3
  113. package/docs/interfaces/SmartHQPlatformConfig.html +6 -17
  114. package/docs/interfaces/SmartHqContext.html +6 -4
  115. package/docs/interfaces/SmartHqERDResponse.html +7 -8
  116. package/docs/interfaces/credentials.html +3 -4
  117. package/docs/interfaces/devicesConfig.html +9 -8
  118. package/docs/interfaces/options.html +7 -8
  119. package/docs/media/copilot-instructions.md +361 -0
  120. package/docs/modules.html +1 -2
  121. package/docs/variables/API_URL.html +1 -2
  122. package/docs/variables/ERD_CODES.html +1 -2
  123. package/docs/variables/ERD_TYPES.html +1 -2
  124. package/docs/variables/KEEPALIVE_TIMEOUT.html +1 -2
  125. package/docs/variables/LOGIN_URL.html +2 -3
  126. package/docs/variables/OAUTH2_CLIENT_ID.html +1 -2
  127. package/docs/variables/OAUTH2_CLIENT_SECRET.html +1 -2
  128. package/docs/variables/OAUTH2_REDIRECT_URI.html +1 -2
  129. package/docs/variables/PLATFORM_NAME.html +2 -3
  130. package/docs/variables/PLUGIN_NAME.html +2 -3
  131. package/docs/variables/SECURE_URL.html +2 -3
  132. package/docs/variables/default.html +1 -0
  133. package/package.json +22 -33
  134. package/typedoc.json +0 -4
  135. package/vitest.config.ts +6 -5
  136. package/.github/workflows/build.yml +0 -18
  137. package/.github/workflows/changerelease.yml +0 -11
  138. package/.github/workflows/labeler.yml +0 -9
  139. package/.github/workflows/release-drafter.yml +0 -14
  140. package/docs/assets/dmt/dmt-component-data.js +0 -1
  141. package/docs/assets/dmt/dmt-components.css +0 -20
  142. package/docs/assets/dmt/dmt-components.js +0 -67
  143. package/docs/assets/dmt/dmt-search.cmp +0 -0
  144. package/docs/assets/dmt/dmt-theme.css +0 -1
  145. package/docs/functions/default.html +0 -2
@@ -1,7 +1,10 @@
1
+ import axios from 'axios';
2
+ /**
3
+ * Unified base class for SmartHQ devices supporting both HAP and Matter protocols
4
+ * Contains all shared functionality for ERD operations, logging, configuration, and protocol handling
5
+ */
1
6
  export class deviceBase {
2
7
  platform;
3
- accessory;
4
- device;
5
8
  api;
6
9
  log;
7
10
  config;
@@ -12,31 +15,66 @@ export class deviceBase {
12
15
  deviceUpdateRate;
13
16
  devicePushRate;
14
17
  deviceFirmwareVersion;
15
- constructor(platform, accessory, device) {
18
+ // ERD capability tracking - remember which ERDs are not supported
19
+ unsupportedErds = new Set();
20
+ // HAP-specific properties
21
+ accessory;
22
+ // Matter-specific properties
23
+ matterAccessory;
24
+ matterUuid;
25
+ userId;
26
+ matterRegistered = false;
27
+ // Protocol flag
28
+ useMatter = false;
29
+ /**
30
+ * Get the HAP accessory (throws if not in HAP mode)
31
+ */
32
+ get hapAccessory() {
33
+ if (!this.accessory) {
34
+ throw new Error('Accessory is not available - not in HAP mode');
35
+ }
36
+ return this.accessory;
37
+ }
38
+ constructor(platform, accessoryOrDevice, deviceOrUserId) {
16
39
  this.platform = platform;
17
- this.accessory = accessory;
18
- this.device = device;
19
- this.api = this.platform.api;
20
- this.log = this.platform.log;
21
- this.config = this.platform.config;
40
+ // Initialize platform references
41
+ this.api = platform.api;
42
+ this.log = platform.log;
43
+ this.config = platform.config;
22
44
  this.hap = this.api.hap;
45
+ // Determine if this is HAP or Matter based on constructor arguments
46
+ let device;
47
+ let isHAP = false;
48
+ let accessoryTemp;
49
+ let userIdTemp;
50
+ if ('UUID' in accessoryOrDevice) {
51
+ // HAP mode: first arg is PlatformAccessory
52
+ accessoryTemp = accessoryOrDevice;
53
+ device = deviceOrUserId;
54
+ isHAP = true;
55
+ }
56
+ else {
57
+ // Matter mode: first arg is device, second is userId
58
+ device = accessoryOrDevice;
59
+ userIdTemp = deviceOrUserId;
60
+ }
61
+ // Initialize config settings
23
62
  this.getDeviceLogSettings(device);
24
63
  this.getDeviceRateSettings(device);
25
64
  this.getDeviceConfigSettings(device);
26
- this.getDeviceContext(accessory, device);
27
- // Set accessory information
28
- accessory
29
- .getService(this.hap.Service.AccessoryInformation)
30
- .setCharacteristic(this.hap.Characteristic.Manufacturer, accessory.context.device.brand || 'GE')
31
- .setCharacteristic(this.hap.Characteristic.Name, accessory.context.device.nickname)
32
- .setCharacteristic(this.hap.Characteristic.ConfiguredName, accessory.context.device.nickname)
33
- .setCharacteristic(this.hap.Characteristic.Model, accessory.context.device.model)
34
- .setCharacteristic(this.hap.Characteristic.SerialNumber, accessory.context.device.serial)
35
- .setCharacteristic(this.hap.Characteristic.HardwareRevision, this.deviceFirmwareVersion)
36
- .setCharacteristic(this.hap.Characteristic.SoftwareRevision, this.deviceFirmwareVersion)
37
- .setCharacteristic(this.hap.Characteristic.FirmwareRevision, this.deviceFirmwareVersion)
38
- .getCharacteristic(this.hap.Characteristic.FirmwareRevision)
39
- .updateValue(this.deviceFirmwareVersion);
65
+ // Set instance properties
66
+ if (isHAP) {
67
+ this.accessory = accessoryTemp;
68
+ this.useMatter = false;
69
+ // Initialize HAP accessory asynchronously (won't block constructor)
70
+ this.initializeHAPAccessory().catch((error) => {
71
+ this.log.error(`Failed to initialize HAP accessory: ${error}`);
72
+ });
73
+ }
74
+ else {
75
+ this.userId = userIdTemp;
76
+ this.useMatter = device.useMatter ?? false;
77
+ }
40
78
  }
41
79
  async getDeviceLogSettings(device) {
42
80
  this.deviceLogging = this.platform.debugMode ? 'debugMode' : device.logging ?? this.platform.platformLogging ?? 'standard';
@@ -51,7 +89,7 @@ export class deviceBase {
51
89
  // updateRate
52
90
  this.deviceUpdateRate = device.updateRate ?? this.platform.platformUpdateRate ?? 5;
53
91
  const updateRate = device.updateRate ? 'Device Config' : this.platform.platformUpdateRate ? 'Platform Config' : 'Default';
54
- this.debugSuccessLog(`Using ${updateRate} updateRate: ${this.deviceUpdateRate}`);
92
+ await this.debugLog(`Using ${updateRate} updateRate: ${this.deviceUpdateRate}`);
55
93
  // pushRate
56
94
  this.devicePushRate = device.pushRate ?? this.platform.platformPushRate ?? 1;
57
95
  const pushRate = device.pushRate ? 'Device Config' : this.platform.platformPushRate ? 'Platform Config' : 'Default';
@@ -65,6 +103,7 @@ export class deviceBase {
65
103
  'updateRate',
66
104
  'pushRate',
67
105
  'hide_device',
106
+ 'useMatter',
68
107
  ];
69
108
  properties.forEach((prop) => {
70
109
  if (device[prop] !== undefined) {
@@ -75,102 +114,129 @@ export class deviceBase {
75
114
  this.infoLog(`Config: ${JSON.stringify(deviceConfig)}`);
76
115
  }
77
116
  }
78
- async getDeviceContext(accessory, device) {
79
- const deviceFirmwareVersion = device.firmware ?? this.platform.version ?? '0.0.0';
117
+ /**
118
+ * Get and parse device firmware version
119
+ */
120
+ async parseFirmwareVersion(firmware) {
121
+ const deviceFirmwareVersion = firmware ?? this.platform.version ?? '0.0.0';
80
122
  const version = deviceFirmwareVersion.toString();
81
123
  this.debugLog(`Firmware Version: ${version.replace(/^V|-.*$/g, '')}`);
82
124
  if (version?.includes('.') === false) {
83
125
  const replace = version?.replace(/^V|-.*$/g, '');
84
126
  const match = replace?.match(/./g);
85
127
  const validVersion = match?.join('.');
86
- this.deviceFirmwareVersion = validVersion ?? '0.0.0';
128
+ return validVersion ?? '0.0.0';
87
129
  }
88
130
  else {
89
- this.deviceFirmwareVersion = version.replace(/^V|-.*$/g, '') ?? '0.0.0';
131
+ return version.replace(/^V|-.*$/g, '') ?? '0.0.0';
90
132
  }
91
- accessory.context.device.firmware = this.deviceFirmwareVersion;
92
- accessory
133
+ }
134
+ /**
135
+ * Initialize HAP accessory information
136
+ */
137
+ async initializeHAPAccessory() {
138
+ if (!this.accessory) {
139
+ return;
140
+ }
141
+ // Parse firmware version first to avoid undefined values
142
+ const device = this.accessory.context.device;
143
+ const deviceFirmwareVersion = device.firmware ?? this.platform.version ?? '0.0.0';
144
+ this.deviceFirmwareVersion = await this.parseFirmwareVersion(deviceFirmwareVersion);
145
+ this.getDeviceContext(this.accessory, device);
146
+ // Set accessory information
147
+ this.accessory
93
148
  .getService(this.hap.Service.AccessoryInformation)
94
- .setCharacteristic(this.hap.Characteristic.HardwareRevision, this.deviceFirmwareVersion)
95
- .setCharacteristic(this.hap.Characteristic.SoftwareRevision, this.deviceFirmwareVersion)
96
- .setCharacteristic(this.hap.Characteristic.FirmwareRevision, this.deviceFirmwareVersion)
149
+ .setCharacteristic(this.hap.Characteristic.Manufacturer, this.accessory.context.device.brand && this.accessory.context.device.brand !== 'Unknown' ? this.accessory.context.device.brand : 'GE Appliances')
150
+ .setCharacteristic(this.hap.Characteristic.Name, this.accessory.context.device.nickname)
151
+ .setCharacteristic(this.hap.Characteristic.ConfiguredName, this.accessory.context.device.nickname)
152
+ .setCharacteristic(this.hap.Characteristic.Model, this.accessory.context.device.model)
153
+ .setCharacteristic(this.hap.Characteristic.SerialNumber, this.accessory.context.device.serial)
154
+ .setCharacteristic(this.hap.Characteristic.HardwareRevision, this.deviceFirmwareVersion || '1.0.0')
155
+ .setCharacteristic(this.hap.Characteristic.SoftwareRevision, this.deviceFirmwareVersion || '1.0.0')
156
+ .setCharacteristic(this.hap.Characteristic.FirmwareRevision, this.deviceFirmwareVersion || '1.0.0')
97
157
  .getCharacteristic(this.hap.Characteristic.FirmwareRevision)
98
- .updateValue(this.deviceFirmwareVersion);
99
- this.debugSuccessLog(`deviceFirmwareVersion: ${this.deviceFirmwareVersion}`);
158
+ .updateValue(this.deviceFirmwareVersion || '1.0.0');
100
159
  }
101
160
  /**
102
- * Update the characteristic value and log the change.
103
- *
104
- * @param Service Service
105
- * @param Characteristic Characteristic
106
- * @param CharacteristicValue CharacteristicValue | undefined
107
- * @param CharacteristicName string
108
- * @return: void
109
- *
161
+ * Get the appliance ID for ERD operations
110
162
  */
111
- async updateCharacteristic(Service, Characteristic, CharacteristicValue, CharacteristicName) {
112
- if (CharacteristicValue === undefined) {
113
- this.debugLog(`${CharacteristicName}: ${CharacteristicValue}`);
163
+ getApplianceId() {
164
+ if (this.accessory) {
165
+ return this.accessory.context.device.applianceId;
114
166
  }
115
- else {
116
- Service.updateCharacteristic(Characteristic, CharacteristicValue);
117
- this.debugLog(`updateCharacteristic ${CharacteristicName}: ${CharacteristicValue}`);
118
- this.debugWarnLog(`${CharacteristicName} context before: ${this.accessory.context[CharacteristicName]}`);
119
- this.accessory.context[CharacteristicName] = CharacteristicValue;
120
- this.debugWarnLog(`${CharacteristicName} context after: ${this.accessory.context[CharacteristicName]}`);
167
+ // Fallback for Matter mode - should be set via userId path
168
+ return '';
169
+ }
170
+ /**
171
+ * Get the user ID for ERD operations
172
+ */
173
+ getUserId() {
174
+ if (this.accessory) {
175
+ return this.accessory.context.userId;
121
176
  }
177
+ return this.userId ?? '';
178
+ }
179
+ /**
180
+ * Get the device display name for logging
181
+ */
182
+ getDisplayName() {
183
+ if (this.accessory) {
184
+ return this.accessory.displayName;
185
+ }
186
+ const protocol = this.useMatter ? 'Matter' : 'HAP';
187
+ return `[${protocol}] SmartHQ Device`;
122
188
  }
123
189
  /**
124
190
  * Logging for Device
125
191
  */
126
192
  async infoLog(...log) {
127
193
  if (await this.enablingDeviceLogging()) {
128
- this.log.info(`${this.accessory.displayName}`, String(...log));
194
+ this.log.info(`${this.getDisplayName()}`, String(...log));
129
195
  }
130
196
  }
131
197
  async successLog(...log) {
132
198
  if (await this.enablingDeviceLogging()) {
133
- this.log.success(`${this.accessory.displayName}`, String(...log));
199
+ this.log.success(`${this.getDisplayName()}`, String(...log));
134
200
  }
135
201
  }
136
202
  async debugSuccessLog(...log) {
137
203
  if (await this.enablingDeviceLogging()) {
138
204
  if (await this.loggingIsDebug()) {
139
- this.log.success(`[DEBUG] ${this.accessory.displayName}`, String(...log));
205
+ this.log.success(`[DEBUG] ${this.getDisplayName()}`, String(...log));
140
206
  }
141
207
  }
142
208
  }
143
209
  async warnLog(...log) {
144
210
  if (await this.enablingDeviceLogging()) {
145
- this.log.warn(`${this.accessory.displayName}`, String(...log));
211
+ this.log.warn(`${this.getDisplayName()}`, String(...log));
146
212
  }
147
213
  }
148
214
  async debugWarnLog(...log) {
149
215
  if (await this.enablingDeviceLogging()) {
150
216
  if (await this.loggingIsDebug()) {
151
- this.log.warn(`[DEBUG] ${this.accessory.displayName}`, String(...log));
217
+ this.log.warn(`[DEBUG] ${this.getDisplayName()}`, String(...log));
152
218
  }
153
219
  }
154
220
  }
155
221
  async errorLog(...log) {
156
222
  if (await this.enablingDeviceLogging()) {
157
- this.log.error(`${this.accessory.displayName}`, String(...log));
223
+ this.log.error(`${this.getDisplayName()}`, String(...log));
158
224
  }
159
225
  }
160
226
  async debugErrorLog(...log) {
161
227
  if (await this.enablingDeviceLogging()) {
162
228
  if (await this.loggingIsDebug()) {
163
- this.log.error(`[DEBUG] ${this.accessory.displayName}`, String(...log));
229
+ this.log.error(`[DEBUG] ${this.getDisplayName()}`, String(...log));
164
230
  }
165
231
  }
166
232
  }
167
233
  async debugLog(...log) {
168
234
  if (await this.enablingDeviceLogging()) {
169
235
  if (this.deviceLogging === 'debug') {
170
- this.log.info(`[DEBUG] ${this.accessory.displayName}`, String(...log));
236
+ this.log.info(`[DEBUG] ${this.getDisplayName()}`, String(...log));
171
237
  }
172
238
  else if (this.deviceLogging === 'debugMode') {
173
- this.log.debug(`${this.accessory.displayName}`, String(...log));
239
+ this.log.debug(`${this.getDisplayName()}`, String(...log));
174
240
  }
175
241
  }
176
242
  }
@@ -180,5 +246,260 @@ export class deviceBase {
180
246
  async enablingDeviceLogging() {
181
247
  return this.deviceLogging === 'debugMode' || this.deviceLogging === 'debug' || this.deviceLogging === 'standard';
182
248
  }
249
+ /**
250
+ * Check if an ERD code is supported by this appliance
251
+ */
252
+ async has_erd_code(erd) {
253
+ try {
254
+ const value = await this.readErd(erd);
255
+ return value !== undefined;
256
+ }
257
+ catch {
258
+ return false;
259
+ }
260
+ }
261
+ /**
262
+ * Try to get an ERD value without throwing errors
263
+ */
264
+ async try_get_erd_value(erd) {
265
+ try {
266
+ return await this.readErd(erd);
267
+ }
268
+ catch {
269
+ return undefined;
270
+ }
271
+ }
272
+ /**
273
+ * Read an ERD (Electronic Refrigerator Descriptor) value from the SmartHQ API
274
+ */
275
+ async readErd(erd) {
276
+ // Check if we already know this ERD is not supported
277
+ if (this.unsupportedErds.has(erd)) {
278
+ return undefined;
279
+ }
280
+ try {
281
+ await this.debugLog(`Reading ERD ${erd}`);
282
+ const d = await axios
283
+ .get(`/appliance/${this.getApplianceId()}/erd/${erd}`);
284
+ // If API returns undefined/null, return undefined without logging
285
+ if (d.data.value === undefined || d.data.value === null) {
286
+ return undefined;
287
+ }
288
+ // Check if value is an object (like temperature data with fridge/freezer properties)
289
+ // If so, stringify it so it can be parsed as JSON later
290
+ if (typeof d.data.value === 'object') {
291
+ const jsonValue = JSON.stringify(d.data.value);
292
+ await this.debugLog(`ERD ${erd} returned object: ${jsonValue}`);
293
+ return jsonValue;
294
+ }
295
+ await this.debugLog(`ERD ${erd} value: ${d.data.value}`);
296
+ return String(d.data.value);
297
+ }
298
+ catch (error) {
299
+ // 400 means ERD not supported by this appliance model - cache and return undefined
300
+ if (error?.response?.status === 400) {
301
+ this.unsupportedErds.add(erd);
302
+ await this.debugLog(`ERD ${erd} not supported by this appliance (400) - will not retry`);
303
+ return undefined;
304
+ }
305
+ // For other errors, log warning and return undefined
306
+ await this.warnLog(`readErd ${erd} error: ${error?.message ?? error}`);
307
+ return undefined;
308
+ }
309
+ }
310
+ /**
311
+ * Write an ERD (Electronic Refrigerator Descriptor) value to the SmartHQ API
312
+ */
313
+ async writeErd(erd, value) {
314
+ // Check if we already know this ERD is not supported
315
+ if (this.unsupportedErds.has(erd)) {
316
+ await this.debugLog(`Skipping write to unsupported ERD ${erd}`);
317
+ return;
318
+ }
319
+ try {
320
+ await this.debugLog(`Writing ERD ${erd} with value: ${value}`);
321
+ await axios
322
+ .post(`/appliance/${this.getApplianceId()}/erd/${erd}`, {
323
+ kind: 'appliance#erdListEntry',
324
+ userId: this.getUserId(),
325
+ applianceId: this.getApplianceId(),
326
+ erd,
327
+ value: typeof value === 'boolean' ? (value ? '01' : '00') : value,
328
+ });
329
+ await this.debugLog(`Successfully wrote ERD ${erd}`);
330
+ }
331
+ catch (error) {
332
+ // 400 means ERD not supported or invalid value - cache it
333
+ if (error?.response?.status === 400) {
334
+ this.unsupportedErds.add(erd);
335
+ await this.debugLog(`ERD ${erd} write failed - not supported or invalid value (400) - will not retry`);
336
+ }
337
+ else {
338
+ await this.warnLog(`writeErd ${erd} error: ${error?.message ?? error}`);
339
+ }
340
+ }
341
+ }
342
+ /**
343
+ * Get device context for HAP accessories
344
+ */
345
+ async getDeviceContext(accessory, device) {
346
+ // Only parse firmware if not already set
347
+ if (!this.deviceFirmwareVersion) {
348
+ const deviceFirmwareVersion = device.firmware ?? this.platform.version ?? '0.0.0';
349
+ this.deviceFirmwareVersion = await this.parseFirmwareVersion(deviceFirmwareVersion);
350
+ }
351
+ accessory.context.device.firmware = this.deviceFirmwareVersion;
352
+ accessory
353
+ .getService(this.hap.Service.AccessoryInformation)
354
+ .setCharacteristic(this.hap.Characteristic.HardwareRevision, this.deviceFirmwareVersion || '1.0.0')
355
+ .setCharacteristic(this.hap.Characteristic.SoftwareRevision, this.deviceFirmwareVersion || '1.0.0')
356
+ .setCharacteristic(this.hap.Characteristic.FirmwareRevision, this.deviceFirmwareVersion || '1.0.0')
357
+ .getCharacteristic(this.hap.Characteristic.FirmwareRevision)
358
+ .updateValue(this.deviceFirmwareVersion || '1.0.0');
359
+ this.debugSuccessLog(`deviceFirmwareVersion: ${this.deviceFirmwareVersion}`);
360
+ }
361
+ /**
362
+ * Get device firmware version for Matter devices
363
+ */
364
+ async getDeviceFirmwareVersion(device) {
365
+ const deviceFirmwareVersion = device.firmware ?? this.platform.version ?? '0.0.0';
366
+ this.deviceFirmwareVersion = await this.parseFirmwareVersion(deviceFirmwareVersion);
367
+ await this.debugLog(`deviceFirmwareVersion: ${this.deviceFirmwareVersion}`);
368
+ }
369
+ /**
370
+ * Update HAP characteristic value and log the change
371
+ */
372
+ async updateCharacteristic(Service, Characteristic, CharacteristicValue, CharacteristicName) {
373
+ if (!this.accessory) {
374
+ return;
375
+ }
376
+ if (CharacteristicValue === undefined) {
377
+ this.debugLog(`${CharacteristicName}: ${CharacteristicValue}`);
378
+ }
379
+ else {
380
+ Service.updateCharacteristic(Characteristic, CharacteristicValue);
381
+ this.debugLog(`updateCharacteristic ${CharacteristicName}: ${CharacteristicValue}`);
382
+ this.debugWarnLog(`${CharacteristicName} context before: ${this.accessory.context[CharacteristicName]}`);
383
+ this.accessory.context[CharacteristicName] = CharacteristicValue;
384
+ this.debugWarnLog(`${CharacteristicName} context after: ${this.accessory.context[CharacteristicName]}`);
385
+ }
386
+ }
387
+ /**
388
+ * Create Matter accessory configuration
389
+ * Should be overridden by device-specific implementations that support Matter
390
+ */
391
+ createMatterAccessory() {
392
+ return undefined;
393
+ }
394
+ /**
395
+ * Get the Matter accessory instance
396
+ */
397
+ getMatterAccessory() {
398
+ if (!this.matterAccessory && this.useMatter) {
399
+ this.matterAccessory = this.createMatterAccessory();
400
+ }
401
+ return this.matterAccessory;
402
+ }
403
+ /**
404
+ * Validate Matter API availability and log details for debugging
405
+ */
406
+ validateMatterAPI() {
407
+ const matterAPI = this.api.matter;
408
+ // Log once per plugin session
409
+ if (!this.constructor.prototype._matterAPILogged) {
410
+ this.infoLog(`[Matter Debug] Checking Matter API availability...`);
411
+ this.infoLog(`[Matter Debug] API exists: ${!!matterAPI}`);
412
+ if (matterAPI) {
413
+ const apiKeys = Object.keys(matterAPI);
414
+ this.infoLog(`[Matter Debug] API keys (${apiKeys.length}): ${apiKeys.join(', ')}`);
415
+ this.infoLog(`[Matter Debug] uuid: ${typeof matterAPI.uuid} ${matterAPI.uuid ? '✓' : '✗'}`);
416
+ this.infoLog(`[Matter Debug] deviceTypes: ${typeof matterAPI.deviceTypes} ${matterAPI.deviceTypes ? '✓' : '✗'}`);
417
+ this.infoLog(`[Matter Debug] registerPlatformAccessories: ${typeof matterAPI.registerPlatformAccessories}`);
418
+ if (matterAPI.deviceTypes && typeof matterAPI.deviceTypes === 'object') {
419
+ const deviceTypeKeys = Object.keys(matterAPI.deviceTypes);
420
+ this.infoLog(`[Matter Debug] Available deviceTypes (${deviceTypeKeys.length}): ${deviceTypeKeys.slice(0, 15).join(', ')}${deviceTypeKeys.length > 15 ? '...' : ''}`);
421
+ }
422
+ }
423
+ this.constructor.prototype._matterAPILogged = true;
424
+ }
425
+ // Validate required components
426
+ if (!matterAPI) {
427
+ return { valid: false, api: null };
428
+ }
429
+ if (!matterAPI.uuid || !matterAPI.deviceTypes || typeof matterAPI.registerPlatformAccessories !== 'function') {
430
+ this.errorLog('[Matter Debug] Validation failed:');
431
+ if (!matterAPI.uuid) {
432
+ this.errorLog(' - uuid is missing');
433
+ }
434
+ if (!matterAPI.deviceTypes) {
435
+ this.errorLog(' - deviceTypes is missing');
436
+ }
437
+ if (typeof matterAPI.registerPlatformAccessories !== 'function') {
438
+ this.errorLog(` - registerPlatformAccessories is not a function (type: ${typeof matterAPI.registerPlatformAccessories})`);
439
+ }
440
+ return { valid: false, api: matterAPI };
441
+ }
442
+ return { valid: true, api: matterAPI };
443
+ }
444
+ /**
445
+ * Helper to create base Matter accessory info
446
+ */
447
+ createBaseMatterConfig() {
448
+ const device = this.accessory ? this.accessory.context.device : {};
449
+ const displayName = device.nickname || 'SmartHQ Device';
450
+ const serialNumber = device.applianceId || 'unknown';
451
+ // Type assertion for Matter API (will be properly typed in Homebridge 2.0)
452
+ const matterAPI = this.api.matter;
453
+ // Debug: Log Matter API structure (first device only to avoid spam)
454
+ if (!this.constructor.prototype._matterAPILogged) {
455
+ this.infoLog(`[Matter Debug] API available: ${!!matterAPI}`);
456
+ if (matterAPI) {
457
+ this.infoLog(`[Matter Debug] API keys: ${Object.keys(matterAPI).join(', ')}`);
458
+ this.infoLog(`[Matter Debug] uuid type: ${typeof matterAPI.uuid} = ${matterAPI.uuid ? 'exists' : 'missing'}`);
459
+ this.infoLog(`[Matter Debug] deviceTypes type: ${typeof matterAPI.deviceTypes} = ${matterAPI.deviceTypes ? 'exists' : 'missing'}`);
460
+ this.infoLog(`[Matter Debug] registerAccessory type: ${typeof matterAPI.registerAccessory}`);
461
+ if (matterAPI.deviceTypes) {
462
+ const deviceTypeKeys = Object.keys(matterAPI.deviceTypes);
463
+ this.infoLog(`[Matter Debug] Available deviceTypes (${deviceTypeKeys.length}): ${deviceTypeKeys.slice(0, 10).join(', ')}${deviceTypeKeys.length > 10 ? '...' : ''}`);
464
+ }
465
+ }
466
+ this.constructor.prototype._matterAPILogged = true;
467
+ }
468
+ // Validate Matter API is available
469
+ if (!matterAPI || !matterAPI.uuid) {
470
+ throw new Error('Matter API not available or incomplete');
471
+ }
472
+ return {
473
+ UUID: matterAPI.uuid.generate(serialNumber),
474
+ displayName,
475
+ serialNumber,
476
+ manufacturer: device.brand && device.brand !== 'Unknown' ? device.brand : 'GE Appliances',
477
+ model: device.model || 'SmartHQ',
478
+ firmwareRevision: this.deviceFirmwareVersion || '1.0.0',
479
+ hardwareRevision: this.deviceFirmwareVersion || '1.0.0',
480
+ };
481
+ }
482
+ /**
483
+ * Update Matter cluster state
484
+ */
485
+ async updateMatterState(clusterName, attributes) {
486
+ if (!this.matterUuid || !this.matterRegistered) {
487
+ await this.debugLog(`Cannot update Matter state - accessory not registered yet (UUID: ${this.matterUuid}, Registered: ${this.matterRegistered})`);
488
+ return;
489
+ }
490
+ try {
491
+ // Type assertion for Matter API (will be properly typed in Homebridge 2.0)
492
+ const matterAPI = this.api.matter;
493
+ if (!matterAPI || typeof matterAPI.updateAccessoryState !== 'function') {
494
+ await this.debugLog('Matter API not available or incomplete');
495
+ return;
496
+ }
497
+ await matterAPI.updateAccessoryState(this.matterUuid, clusterName, attributes);
498
+ await this.debugLog(`Updated Matter cluster ${clusterName}: ${JSON.stringify(attributes)}`);
499
+ }
500
+ catch (error) {
501
+ await this.errorLog(`Failed to update Matter cluster ${clusterName}: ${error?.message ?? error}`);
502
+ }
503
+ }
183
504
  }
184
505
  //# sourceMappingURL=device.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"AASA,MAAM,OAAgB,UAAU;IAcT;IACT;IACA;IAfI,GAAG,CAAK;IACR,GAAG,CAAS;IACZ,MAAM,CAAwB;IAC3B,GAAG,CAAK;IAE3B,SAAS;IACC,aAAa,CAAS;IACtB,iBAAiB,CAAS;IAC1B,gBAAgB,CAAS;IACzB,cAAc,CAAS;IACvB,qBAAqB,CAAS;IAExC,YACqB,QAAyB,EAClC,SAA4C,EAC5C,MAAqB;QAFZ,aAAQ,GAAR,QAAQ,CAAiB;QAClC,cAAS,GAAT,SAAS,CAAmC;QAC5C,WAAM,GAAN,MAAM,CAAe;QAE/B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA;QAClC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;QAEvB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QACjC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAExC,4BAA4B;QAC5B,SAAS;aACN,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAE;aAClD,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;aAC/F,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;aAClF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;aAC5F,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;aAChF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;aACxF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC;aACvF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC;aACvF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC;aACvF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC;aAC3D,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAqB;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,UAAU,CAAA;QAC1H,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAA;QACzJ,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,OAAO,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAqB;QAC/C,cAAc;QACd,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,IAAI,GAAG,CAAA;QACvF,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAA;QAC5H,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,WAAW,iBAAiB,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAClF,aAAa;QACb,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,IAAI,CAAC,CAAA;QAClF,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAA;QACzH,IAAI,CAAC,eAAe,CAAC,SAAS,UAAU,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;QAChF,WAAW;QACX,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,CAAA;QAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAA;QACnH,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,QAAQ,cAAc,IAAI,CAAC,cAAc,EAAE,CAAC,CAAA;IAC3E,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,MAAqB;QACjD,MAAM,YAAY,GAAG,EAAE,CAAA;QACvB,MAAM,UAAU,GAAG;YACjB,SAAS;YACT,aAAa;YACb,YAAY;YACZ,UAAU;YACV,aAAa;SACd,CAAA;QACD,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/B,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YACnC,CAAC;QACH,CAAC,CAAC,CAAA;QACF,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAA4B,EAAE,MAAqB;QACxE,MAAM,qBAAqB,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAA;QACjF,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,EAAE,CAAA;QAChD,IAAI,CAAC,QAAQ,CAAC,qBAAqB,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;QACrE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;YAChD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAClC,MAAM,YAAY,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;YACrC,IAAI,CAAC,qBAAqB,GAAG,YAAY,IAAI,OAAO,CAAA;QACtD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAA;QACzE,CAAC;QACD,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAA;QAC9D,SAAS;aACN,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAE;aAClD,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC;aACvF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC;aACvF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC;aACvF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC;aAC3D,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QAC1C,IAAI,CAAC,eAAe,CAAC,0BAA0B,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,oBAAoB,CAAC,OAAgB,EAAE,cAAmB,EAAE,mBAAoD,EAAE,kBAA0B;QAChJ,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,kBAAkB,KAAK,mBAAmB,EAAE,CAAC,CAAA;QAChE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,oBAAoB,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAA;YACjE,IAAI,CAAC,QAAQ,CAAC,wBAAwB,kBAAkB,KAAK,mBAAmB,EAAE,CAAC,CAAA;YACnF,IAAI,CAAC,YAAY,CAAC,GAAG,kBAAkB,oBAAoB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;YACxG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,mBAAmB,CAAA;YAChE,IAAI,CAAC,YAAY,CAAC,GAAG,kBAAkB,mBAAmB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;QACzG,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,GAAG,GAAU;QACzB,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAG,GAAU;QAC5B,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QACnE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAG,GAAU;QACjC,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAG,GAAU;QACzB,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAG,GAAU;QAC9B,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAU;QAC1B,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAG,GAAU;QAC/B,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAU;QAC1B,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;gBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YACxE,CAAC;iBAAM,IAAI,IAAI,CAAC,aAAa,KAAK,WAAW,EAAE,CAAC;gBAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,CAAA;IAC7E,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,KAAK,UAAU,CAAA;IAClH,CAAC;CACF"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,17 @@ import { deviceBase } from './device.js';
5
5
  export declare class SmartHQDishWasher extends deviceBase {
6
6
  readonly platform: SmartHQPlatform;
7
7
  readonly device: SmartHqContext['device'] & devicesConfig;
8
- private DishWasher;
9
8
  SensorUpdateInProgress: boolean;
10
9
  deviceStatus: any;
10
+ private useMatterOverride;
11
11
  constructor(platform: SmartHQPlatform, accessory: PlatformAccessory<SmartHqContext>, device: SmartHqContext['device'] & devicesConfig);
12
- readErd(erd: string): Promise<string>;
13
- writeErd(erd: string, value: string | boolean): Promise<undefined>;
12
+ /**
13
+ * Initialize Matter protocol
14
+ */
15
+ private initializeMatter;
16
+ /**
17
+ * Initialize HAP (HomeKit) protocol
18
+ */
19
+ private initializeHAP;
14
20
  }
15
21
  //# sourceMappingURL=dishwasher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dishwasher.d.ts","sourceRoot":"","sources":["../../src/devices/dishwasher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAuB,iBAAiB,EAAW,MAAM,YAAY,CAAA;AAEjF,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,iBAAkB,SAAQ,UAAU;IAa7C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAb3D,OAAO,CAAC,UAAU,CAIjB;IAGD,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;IAiCrD,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":"dishwasher.d.ts","sourceRoot":"","sources":["../../src/devices/dishwasher.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;AAKnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,iBAAkB,SAAQ,UAAU;IAS7C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAT3D,sBAAsB,EAAG,OAAO,CAAA;IAChC,YAAY,EAAE,GAAG,CAAA;IAGjB,OAAO,CAAC,iBAAiB,CAAiB;gBAG/B,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IA4B3D;;OAEG;YACW,gBAAgB;IAmG9B;;OAEG;IACH,OAAO,CAAC,aAAa;CA8DtB"}