@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
@@ -4,7 +4,7 @@ import * as cheerio from 'cheerio';
4
4
  import pkg from 'lodash';
5
5
  import { Issuer } from 'openid-client';
6
6
  import { CookieJar } from 'tough-cookie';
7
- import { OAUTH2_CLIENT_ID, OAUTH2_CLIENT_SECRET, OAUTH2_REDIRECT_URI } from './settings.js';
7
+ import { OAUTH2_CLIENT_ID, OAUTH2_CLIENT_SECRET, OAUTH2_REDIRECT_URI, LOGIN_URL } from './settings.js';
8
8
  const { keyBy, mapValues } = pkg;
9
9
  const oidcClient = Issuer.discover('https://accounts.brillion.geappliances.com/').then(geData => new geData.Client({
10
10
  client_id: OAUTH2_CLIENT_ID,
@@ -35,7 +35,195 @@ export default async function getAccessToken(username, password) {
35
35
  maxRedirects: 0,
36
36
  validateStatus: () => true,
37
37
  });
38
- const code = new URL(res.headers.location).searchParams.get('code');
38
+ // If the initial POST did not return a redirect with the code, the login
39
+ // flow may have hit an intermediate page (MFA enrollment or Terms acceptance).
40
+ // Attempt to handle those pages automatically; fall back to an error with
41
+ // guidance if not possible.
42
+ const tryExtractCodeFromLocation = (location) => {
43
+ if (!location)
44
+ return null;
45
+ try {
46
+ return new URL(location).searchParams.get('code');
47
+ }
48
+ catch (e) {
49
+ // Handle relative URLs
50
+ try {
51
+ const full = location.startsWith('/') ? `${LOGIN_URL}${location}` : location;
52
+ return new URL(full).searchParams.get('code');
53
+ }
54
+ catch (e) {
55
+ return null;
56
+ }
57
+ }
58
+ };
59
+ let code = tryExtractCodeFromLocation(res.headers.location);
60
+ if (!code) {
61
+ // Try to handle HTML response pages (MFA or Terms)
62
+ const asyncHandleOkResponse = async (respText) => {
63
+ // MFA enrollment page
64
+ if (respText.includes('Add Multi-Factor Authentication') || respText.includes('addMfaForm')) {
65
+ try {
66
+ const $ = cheerio.load(respText);
67
+ const mfaForm = $('#addMfaForm');
68
+ if (!mfaForm || mfaForm.length === 0) {
69
+ throw new Error('MFA form not found');
70
+ }
71
+ const formData = {};
72
+ mfaForm.find('input').each((i, el) => {
73
+ const name = $(el).attr('name');
74
+ if (!name)
75
+ return;
76
+ formData[name] = $(el).val() || '';
77
+ });
78
+ // Try meta tag for CSRF if not present
79
+ if (!formData['_csrf']) {
80
+ const csrfMeta = $('meta[name="_csrf"]').attr('content');
81
+ if (csrfMeta)
82
+ formData['_csrf'] = csrfMeta;
83
+ }
84
+ const postData = new URLSearchParams(formData);
85
+ const skipResp = await aclient({
86
+ method: 'POST',
87
+ url: `${LOGIN_URL}/account/active/redirect`,
88
+ data: postData,
89
+ headers: { 'content-type': 'application/x-www-form-urlencoded' },
90
+ maxRedirects: 0,
91
+ validateStatus: () => true,
92
+ });
93
+ const loc = skipResp.headers.location;
94
+ const gotCode = tryExtractCodeFromLocation(loc);
95
+ if (gotCode)
96
+ return gotCode;
97
+ // Follow redirect manually if provided
98
+ if (loc) {
99
+ const resolved = loc.startsWith('/') ? `${LOGIN_URL}${loc}` : loc;
100
+ const redirectResp = await aclient.get(resolved, { maxRedirects: 0, validateStatus: () => true });
101
+ const finalLoc = redirectResp.headers.location;
102
+ const finalCode = tryExtractCodeFromLocation(finalLoc);
103
+ if (finalCode)
104
+ return finalCode;
105
+ if (redirectResp.status === 200)
106
+ return await asyncHandleOkResponse(await redirectResp.data);
107
+ }
108
+ if (skipResp.status === 200)
109
+ return await asyncHandleOkResponse(await skipResp.data);
110
+ throw new Error('MFA skip failed');
111
+ }
112
+ catch (e) {
113
+ throw new Error(`MFA handling failed: ${e.message}`);
114
+ }
115
+ }
116
+ // Terms acceptance page
117
+ if (respText.includes('Almost Finished') && respText.includes('/oauth2/terms/accept')) {
118
+ try {
119
+ const $ = cheerio.load(respText);
120
+ let termsForm = $('#termsform');
121
+ if (!termsForm || termsForm.length === 0) {
122
+ termsForm = $("form[name='termsform']");
123
+ }
124
+ if (!termsForm || termsForm.length === 0) {
125
+ // Fallback: try to extract required fields with regex
126
+ const formData = {};
127
+ const sigMatch = respText.match(/name="signature"\\s+value="([^\"]+)"/);
128
+ if (sigMatch)
129
+ formData['signature'] = sigMatch[1];
130
+ const lasMatch = respText.match(/name="login_actions_signature"[^>]*value=([^>\\s>]+)/);
131
+ if (lasMatch)
132
+ formData['login_actions_signature'] = lasMatch[1].replace(/>$/, '');
133
+ const devMatch = respText.match(/name="isDeveloper"\\s+value="([^\"]+)"/);
134
+ if (devMatch)
135
+ formData['isDeveloper'] = devMatch[1];
136
+ const csrfMatch = respText.match(/name="_csrf"\\s+value="([^\"]+)"/);
137
+ if (csrfMatch)
138
+ formData['_csrf'] = csrfMatch[1];
139
+ formData['developerTerms'] = 'on';
140
+ formData['connected_terms'] = 'on';
141
+ const headers = {};
142
+ if (formData['_csrf'])
143
+ headers['X-CSRF-TOKEN'] = formData['_csrf'];
144
+ const termsResp = await aclient({
145
+ method: 'POST',
146
+ url: `${LOGIN_URL}/oauth2/terms/accept`,
147
+ data: new URLSearchParams(formData),
148
+ headers: { 'content-type': 'application/x-www-form-urlencoded', ...headers },
149
+ maxRedirects: 0,
150
+ validateStatus: () => true,
151
+ });
152
+ const loc = termsResp.headers.location;
153
+ const gotCode = tryExtractCodeFromLocation(loc);
154
+ if (gotCode)
155
+ return gotCode;
156
+ if (loc) {
157
+ const resolved = loc.startsWith('/') ? `${LOGIN_URL}${loc}` : loc;
158
+ const redirectResp = await aclient.get(resolved, { maxRedirects: 0, validateStatus: () => true });
159
+ const finalCode = tryExtractCodeFromLocation(redirectResp.headers.location);
160
+ if (finalCode)
161
+ return finalCode;
162
+ if (redirectResp.status === 200)
163
+ return await asyncHandleOkResponse(await redirectResp.data);
164
+ }
165
+ if (termsResp.status === 200)
166
+ return await asyncHandleOkResponse(await termsResp.data);
167
+ throw new Error('Terms acceptance failed');
168
+ }
169
+ // Collect inputs from the form
170
+ const formData = {};
171
+ termsForm.find('input').each((i, el) => {
172
+ const name = $(el).attr('name');
173
+ if (!name)
174
+ return;
175
+ formData[name] = $(el).val() || '';
176
+ });
177
+ // Set checkboxes to accepted
178
+ formData['developerTerms'] = 'on';
179
+ formData['connected_terms'] = 'on';
180
+ if (!formData['_csrf']) {
181
+ const csrfMeta = $('meta[name="_csrf"]').attr('content');
182
+ if (csrfMeta)
183
+ formData['_csrf'] = csrfMeta;
184
+ }
185
+ const headers = {};
186
+ if (formData['_csrf'])
187
+ headers['X-CSRF-TOKEN'] = formData['_csrf'];
188
+ const termsResp = await aclient({
189
+ method: 'POST',
190
+ url: `${LOGIN_URL}/oauth2/terms/accept`,
191
+ data: new URLSearchParams(formData),
192
+ headers: { 'content-type': 'application/x-www-form-urlencoded', ...headers },
193
+ maxRedirects: 0,
194
+ validateStatus: () => true,
195
+ });
196
+ const loc = termsResp.headers.location;
197
+ const gotCode = tryExtractCodeFromLocation(loc);
198
+ if (gotCode)
199
+ return gotCode;
200
+ if (loc) {
201
+ const resolved = loc.startsWith('/') ? `${LOGIN_URL}${loc}` : loc;
202
+ const redirectResp = await aclient.get(resolved, { maxRedirects: 0, validateStatus: () => true });
203
+ const finalCode = tryExtractCodeFromLocation(redirectResp.headers.location);
204
+ if (finalCode)
205
+ return finalCode;
206
+ if (redirectResp.status === 200)
207
+ return await asyncHandleOkResponse(await redirectResp.data);
208
+ }
209
+ if (termsResp.status === 200)
210
+ return await asyncHandleOkResponse(await termsResp.data);
211
+ throw new Error('Terms acceptance failed');
212
+ }
213
+ catch (e) {
214
+ throw new Error(`Terms handling failed: ${e.message}`);
215
+ }
216
+ }
217
+ throw new Error('Authentication failed: No authorization code received and no known intermediate page detected');
218
+ };
219
+ // If we have HTML in the response, try to handle it
220
+ if (res.data && typeof res.data === 'string') {
221
+ code = await asyncHandleOkResponse(res.data);
222
+ }
223
+ }
224
+ if (!code) {
225
+ throw new Error('Authentication failed: No authorization code received');
226
+ }
39
227
  return client.grant({ grant_type: 'authorization_code', code, redirect_uri: OAUTH2_REDIRECT_URI });
40
228
  }
41
229
  //# sourceMappingURL=getAccessToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getAccessToken.js","sourceRoot":"","sources":["../src/getAccessToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAE3F,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,GAAG,CAAA;AAEhC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAAC,IAAI,CACpF,MAAM,CAAC,EAAE,CACP,IAAI,MAAM,CAAC,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB;IAC3B,aAAa,EAAE,oBAAoB;IACnC,cAAc,EAAE,CAAC,MAAM,CAAC;CACzB,CAAC,CACL,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,aAAqB;IAC5D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAA;IAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAA;AACrE,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,QAAgB;IAC7E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAA;IAE/B,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAA;IAE1C,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAA;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IAC9C,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAEpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,SAAS,CAC3B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACvD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CACb,CAAA;IAED,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;IAExE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;QACxB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,mCAAmC;YACnD,QAAQ,EAAE,4CAA4C;SACvD;QACD,GAAG,EAAE,kEAAkE;QACvE,IAAI,EAAE,IAAI;QACV,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;KAC3B,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnE,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC,CAAA;AACpG,CAAC"}
1
+ {"version":3,"file":"getAccessToken.js","sourceRoot":"","sources":["../src/getAccessToken.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { API, DynamicPlatformPlugin, HAP, Logging, PlatformAccessory } from 'homebridge';
2
- import type { options, SmartHqContext, SmartHQPlatformConfig } from './settings.js';
2
+ import type { devicesConfig, options, SmartHqContext, SmartHQPlatformConfig } from './settings.js';
3
3
  /**
4
4
  * HomebridgePlatform
5
5
  * This class is the main constructor for your plugin, this is where you should
@@ -21,6 +21,8 @@ export declare class SmartHQPlatform implements DynamicPlatformPlugin {
21
21
  platformUpdateRate: options['updateRate'];
22
22
  debugMode: boolean;
23
23
  version: string;
24
+ matterEnabled: boolean;
25
+ matterAvailable: boolean;
24
26
  constructor(log: Logging, config: SmartHQPlatformConfig, api: API);
25
27
  /**
26
28
  * This function is invoked when homebridge restores cached accessories from disk at startup.
@@ -40,8 +42,22 @@ export declare class SmartHQPlatform implements DynamicPlatformPlugin {
40
42
  private createSmartHQDishWasher;
41
43
  private createSmartHQOven;
42
44
  private createSmartHQIceMaker;
45
+ /**
46
+ * Create Refrigerator accessory (unified HAP/Matter)
47
+ * The SmartHQRefrigerator class now handles both protocols internally
48
+ */
43
49
  private createSmartHQRefrigerator;
44
50
  private createSmartHQAirConditioner;
51
+ private createSmartHQHood;
52
+ private createSmartHQClothesWasher;
53
+ private createSmartHQClothesDryer;
54
+ private createSmartHQWaterFilter;
55
+ private createSmartHQWaterSoftener;
56
+ private createSmartHQWaterHeater;
57
+ private createSmartHQAdvantium;
58
+ private createSmartHQMicrowave;
59
+ private createSmartHQCoffeeMaker;
60
+ private createSmartHQBeverageCenter;
45
61
  unregisterPlatformAccessories(existingAccessory: PlatformAccessory): Promise<void>;
46
62
  getPlatformLogSettings(): Promise<void>;
47
63
  getPlatformRateSettings(): Promise<void>;
@@ -78,5 +94,20 @@ export declare class SmartHQPlatform implements DynamicPlatformPlugin {
78
94
  debugLog(...log: any[]): Promise<void>;
79
95
  loggingIsDebug(): Promise<boolean>;
80
96
  enablingPlatformLogging(): Promise<boolean>;
97
+ /**
98
+ * Check if Matter is available and enabled in Homebridge
99
+ */
100
+ checkMatterSupport(): void;
101
+ /**
102
+ * Determine if a device should use Matter based on platform and device config
103
+ */
104
+ shouldUseMatter(device: devicesConfig): boolean;
105
+ /**
106
+ * Handle accessory that needs to switch from HAP to Matter
107
+ * Returns true if accessory was unregistered and needs to be recreated
108
+ */
109
+ shouldUnregisterForMatter(existingAccessory: PlatformAccessory<SmartHqContext>, deviceData: devicesConfig & {
110
+ useMatter?: boolean;
111
+ }): boolean;
81
112
  }
82
113
  //# sourceMappingURL=platform.d.ts.map
@@ -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;AAqB/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;IAsB5B;;;OAGG;IACG,eAAe;YAuHP,uBAAuB;YAiDvB,iBAAiB;YAiDjB,qBAAqB;YAgDrB,yBAAyB;YAiDzB,2BAA2B;IAiD5B,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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"}