@switchbot/homebridge-switchbot 5.0.0-beta.128 → 5.0.0-beta.129

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 (29) hide show
  1. package/config.schema.json +11 -0
  2. package/dist/devices/genericDevice.d.ts.map +1 -1
  3. package/dist/devices/genericDevice.js +55 -10
  4. package/dist/devices/genericDevice.js.map +1 -1
  5. package/dist/homebridge-ui/endpoints/discovery.d.ts.map +1 -1
  6. package/dist/homebridge-ui/endpoints/discovery.js +10 -1
  7. package/dist/homebridge-ui/endpoints/discovery.js.map +1 -1
  8. package/dist/homebridge-ui/public/js/api.d.ts +4 -1
  9. package/dist/homebridge-ui/public/js/api.d.ts.map +1 -1
  10. package/dist/homebridge-ui/public/js/api.js +7 -1
  11. package/dist/homebridge-ui/public/js/api.js.map +1 -1
  12. package/dist/homebridge-ui/public/js/api.ts +8 -1
  13. package/dist/homebridge-ui/public/js/app.js +149 -24
  14. package/dist/homebridge-ui/public/js/app.js.map +2 -2
  15. package/dist/homebridge-ui/public/js/devices.d.ts.map +1 -1
  16. package/dist/homebridge-ui/public/js/devices.js +1 -0
  17. package/dist/homebridge-ui/public/js/devices.js.map +1 -1
  18. package/dist/homebridge-ui/public/js/devices.ts +5 -2
  19. package/dist/homebridge-ui/public/js/modals.d.ts.map +1 -1
  20. package/dist/homebridge-ui/public/js/modals.js +149 -20
  21. package/dist/homebridge-ui/public/js/modals.js.map +1 -1
  22. package/dist/homebridge-ui/public/js/modals.ts +156 -26
  23. package/docs/variables/default.html +1 -1
  24. package/package.json +1 -1
  25. package/src/devices/genericDevice.ts +64 -10
  26. package/src/homebridge-ui/endpoints/discovery.ts +9 -1
  27. package/src/homebridge-ui/public/js/api.ts +8 -1
  28. package/src/homebridge-ui/public/js/devices.ts +5 -2
  29. package/src/homebridge-ui/public/js/modals.ts +156 -26
@@ -1 +1 @@
1
- {"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/devices.ts"],"names":[],"mappings":"AAeA,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAgF3I;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQzD;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3D"}
1
+ {"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/devices.ts"],"names":[],"mappings":"AAeA,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAiF3I;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAUzD;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3D"}
@@ -19,6 +19,7 @@ export async function addDeviceToConfig(device, options = {}) {
19
19
  rssi: device.rssi,
20
20
  encryptionKey: importValues.encryptionKey,
21
21
  keyId: importValues.keyId,
22
+ matterType: importValues.matterType,
22
23
  });
23
24
  uiLog.info('Add device response:', resp);
24
25
  if (!resp || resp.success === false) {
@@ -1 +1 @@
1
- {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/devices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAA;AAClF,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAU9E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAW,EAAE,UAAuD,EAAE;IAC5G,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;IAErD,IAAI,CAAC;QACH,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;QAE9D,MAAM,YAAY,GAAiC,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAA;QACvF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QACzB,CAAC;QAED,UAAU,EAAE,CAAA;QACZ,KAAK,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;QAC9C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,EAAE;YACpG,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,aAAa,EAAE,YAAY,CAAC,aAAa;YACzC,KAAK,EAAE,YAAY,CAAC,KAAK;SAC1B,CAAC,CAAA;QACF,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAA;QAExC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI,sBAAsB,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,aAAa,CAAA;QAC3C,MAAM,OAAO,GACT,IAAI,EAAE,OAAO;eACV,CAAC,aAAa;gBACf,CAAC,CAAC,WAAW,YAAY,CAAC,gBAAgB,qBAAqB;gBAC/D,CAAC,CAAC,WAAW,YAAY,CAAC,gBAAgB,uBAAuB,CAAC,CAAA;QAExE,IAAI,aAAa,EAAE,CAAC;YAClB,SAAS,CAAC,OAAO,CAAC,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;YACxD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,WAAW,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;gBAC5D,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBAChC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;gBAEnC,6EAA6E;gBAC7E,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC,IAAI,CAAC,CAAA;oBACzD,MAAM,CAAC,WAAW,IAAI,MAAM;wBAC1B,CAAC,CAAC,gCAAgC;wBAClC,CAAC,CAAC,qEAAqE,CAAA;oBAEzE,IAAI,MAAM,EAAE,CAAC;wBACX,YAAY,CAAC,8CAA8C,CAAC,CAAA;oBAC9D,CAAC;yBAAM,CAAC;wBACN,YAAY,CAAC,kEAAkE,CAAC,CAAA;oBAClF,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,qBAAqB,EAAE,CAAA;QAC/B,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,CAAC,aAAa,EAAE,CAAA;IAClC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACtD,KAAK,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAA;QACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;QACxD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,WAAW,GAAG,YAAY,GAAG,EAAE,CAAA;YACtC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC/B,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;YAAS,CAAC;QACT,UAAU,EAAE,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;IAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;QAAC,OAAM;IAAC,CAAC;IAE7B,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAA;QAC1E,MAAM,0BAA0B,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAA;IACjC,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC"}
1
+ {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/devices.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
-
2
1
  import { addDevice, fetchDevices, syncParentPluginConfigFromDisk } from './api.js'
3
2
  import { uiLog } from './logger.js'
4
3
  import { hideBusyUi, showBusyUi } from './modal.js'
@@ -11,6 +10,7 @@ type ImportDiscoveredDeviceResult = {
11
10
  address?: string
12
11
  encryptionKey?: string
13
12
  keyId?: string
13
+ matterType?: number
14
14
  } | null
15
15
 
16
16
  export async function addDeviceToConfig(device: any, options: { refresh?: boolean, showStatus?: boolean } = {}): Promise<{ added: boolean }> {
@@ -32,6 +32,7 @@ export async function addDeviceToConfig(device: any, options: { refresh?: boolea
32
32
  rssi: device.rssi,
33
33
  encryptionKey: importValues.encryptionKey,
34
34
  keyId: importValues.keyId,
35
+ matterType: importValues.matterType,
35
36
  })
36
37
  uiLog.info('Add device response:', resp)
37
38
 
@@ -97,7 +98,9 @@ export async function addDeviceToConfig(device: any, options: { refresh?: boolea
97
98
 
98
99
  export async function initRemoveAllButton(): Promise<void> {
99
100
  const removeAllBtn = document.getElementById('removeAllBtn')
100
- if (!removeAllBtn) { return }
101
+ if (!removeAllBtn) {
102
+ return
103
+ }
101
104
 
102
105
  removeAllBtn.addEventListener('click', async () => {
103
106
  const { deleteAllDevicesFromConfig } = await import('./devices-delete.js')
@@ -1 +1 @@
1
- {"version":3,"file":"modals.d.ts","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/modals.ts"],"names":[],"mappings":"AAGA,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAsNlJ;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAoM3D"}
1
+ {"version":3,"file":"modals.d.ts","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/modals.ts"],"names":[],"mappings":"AAGA,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAiRlJ;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA2Q3D"}
@@ -50,6 +50,7 @@ export async function importDiscoveredDevice(device) {
50
50
  nameInput.style.borderRadius = '6px';
51
51
  nameInput.style.fontSize = '14px';
52
52
  nameInput.style.boxSizing = 'border-box';
53
+ // --- Device Type Select ---
53
54
  const typeLabel = document.createElement('label');
54
55
  typeLabel.textContent = 'Config Device Type';
55
56
  typeLabel.style.display = 'block';
@@ -80,6 +81,61 @@ export async function importDiscoveredDevice(device) {
80
81
  });
81
82
  typeSelect.appendChild(optgroup);
82
83
  });
84
+ // --- Matter Type Advanced Field (only for window covering types) ---
85
+ // Matter Type advanced field (only for window covering types)
86
+ const windowCoveringTypes = ['Roller Shade', 'Curtain', 'Curtain3', 'Blind Tilt'];
87
+ const matterTypeLabel = document.createElement('label');
88
+ matterTypeLabel.textContent = 'Matter Window Covering Type (Advanced)';
89
+ matterTypeLabel.style.display = 'block';
90
+ matterTypeLabel.style.marginBottom = '6px';
91
+ matterTypeLabel.style.fontWeight = '500';
92
+ matterTypeLabel.style.fontSize = '12px';
93
+ matterTypeLabel.style.color = '#6b7280';
94
+ matterTypeLabel.style.marginTop = '2px';
95
+ // Table 8.2 from Matter spec (partial, most common types)
96
+ const matterTypes = [
97
+ { value: '', label: 'Auto-detect (recommended)' },
98
+ { value: 0, label: 'Roller Shade (0)' },
99
+ { value: 1, label: 'Roman Shade (1)' },
100
+ { value: 2, label: 'Balloon Shade (2)' },
101
+ { value: 3, label: 'Woven Wood (3)' },
102
+ { value: 4, label: 'Drapery (4)' },
103
+ { value: 5, label: 'Awning (5)' },
104
+ { value: 6, label: 'Shutter (6)' },
105
+ { value: 7, label: 'Tilt Blind (7)' },
106
+ { value: 8, label: 'Blind Tilt (8)' },
107
+ { value: 9, label: 'Projector Screen (9)' },
108
+ { value: 15, label: 'Other (15)' },
109
+ ];
110
+ const matterTypeSelect = document.createElement('select');
111
+ matterTypeSelect.style.width = '100%';
112
+ matterTypeSelect.style.marginBottom = '12px';
113
+ matterTypeSelect.style.padding = '8px 10px';
114
+ matterTypeSelect.style.borderRadius = '6px';
115
+ matterTypeSelect.style.fontSize = '14px';
116
+ matterTypeSelect.style.boxSizing = 'border-box';
117
+ matterTypes.forEach((opt) => {
118
+ const option = document.createElement('option');
119
+ option.value = String(opt.value);
120
+ option.textContent = opt.label;
121
+ if (device.matterType != null && String(opt.value) === String(device.matterType)) {
122
+ option.selected = true;
123
+ }
124
+ matterTypeSelect.appendChild(option);
125
+ });
126
+ // Show/hide Matter Type field based on type
127
+ function updateMatterTypeVisibility() {
128
+ if (windowCoveringTypes.includes(typeSelect.value)) {
129
+ matterTypeLabel.style.display = 'block';
130
+ matterTypeSelect.style.display = 'block';
131
+ }
132
+ else {
133
+ matterTypeLabel.style.display = 'none';
134
+ matterTypeSelect.style.display = 'none';
135
+ }
136
+ }
137
+ typeSelect.addEventListener('change', updateMatterTypeVisibility);
138
+ updateMatterTypeVisibility();
83
139
  const macLabel = document.createElement('label');
84
140
  macLabel.textContent = 'BLE MAC Address (optional)';
85
141
  macLabel.style.display = 'block';
@@ -162,6 +218,7 @@ export async function importDiscoveredDevice(device) {
162
218
  address: macInput.value || undefined,
163
219
  encryptionKey: encryptionKeyInput.value || undefined,
164
220
  keyId: keyIdInput.value || undefined,
221
+ ...(windowCoveringTypes.includes(typeSelect.value) && matterTypeSelect.value !== '' ? { matterType: Number(matterTypeSelect.value) } : {}),
165
222
  });
166
223
  div.addEventListener('click', (event) => {
167
224
  if (event.target === div) {
@@ -174,6 +231,8 @@ export async function importDiscoveredDevice(device) {
174
231
  contentDiv.appendChild(nameInput);
175
232
  contentDiv.appendChild(typeLabel);
176
233
  contentDiv.appendChild(typeSelect);
234
+ contentDiv.appendChild(matterTypeLabel);
235
+ contentDiv.appendChild(matterTypeSelect);
177
236
  contentDiv.appendChild(macLabel);
178
237
  contentDiv.appendChild(macInput);
179
238
  contentDiv.appendChild(encryptionKeyLabel);
@@ -189,6 +248,92 @@ export async function importDiscoveredDevice(device) {
189
248
  });
190
249
  }
191
250
  export async function editDevice(device) {
251
+ // --- Device Type Select ---
252
+ const typeLabel = document.createElement('label');
253
+ typeLabel.textContent = 'Config Device Type';
254
+ typeLabel.style.display = 'block';
255
+ typeLabel.style.marginBottom = '6px';
256
+ typeLabel.style.fontWeight = '500';
257
+ typeLabel.style.fontSize = '12px';
258
+ typeLabel.style.color = '#6b7280';
259
+ const typeSelect = document.createElement('select');
260
+ typeSelect.style.width = '100%';
261
+ typeSelect.style.padding = '8px 10px';
262
+ typeSelect.style.marginBottom = '12px';
263
+ typeSelect.style.borderRadius = '6px';
264
+ typeSelect.style.fontSize = '14px';
265
+ typeSelect.style.background = getComputedStyle(document.body).backgroundColor;
266
+ typeSelect.style.color = getComputedStyle(document.body).color;
267
+ typeSelect.style.border = '1px solid #ccc';
268
+ typeSelect.style.boxSizing = 'border-box';
269
+ // Add option groups with all API device types
270
+ Object.keys(DEVICE_TYPES).forEach((categoryName) => {
271
+ const optgroup = document.createElement('optgroup');
272
+ optgroup.label = categoryName;
273
+ DEVICE_TYPES[categoryName].forEach((deviceType) => {
274
+ const opt = document.createElement('option');
275
+ opt.value = deviceType;
276
+ opt.text = deviceType;
277
+ // Select current configDeviceType if set, otherwise match API deviceType
278
+ const currentType = device.configDeviceType || device.deviceType || device.type || '';
279
+ opt.selected = currentType === deviceType;
280
+ optgroup.appendChild(opt);
281
+ });
282
+ typeSelect.appendChild(optgroup);
283
+ });
284
+ // --- Matter Type Advanced Field (only for window covering types) ---
285
+ const windowCoveringTypes = ['Roller Shade', 'Curtain', 'Curtain3', 'Blind Tilt'];
286
+ const showMatterType = windowCoveringTypes.includes(device.configDeviceType || device.deviceType || device.type || '');
287
+ const matterTypeLabel = document.createElement('label');
288
+ matterTypeLabel.textContent = 'Matter Window Covering Type (Advanced)';
289
+ matterTypeLabel.style.display = showMatterType ? 'block' : 'none';
290
+ matterTypeLabel.style.marginBottom = '6px';
291
+ matterTypeLabel.style.fontWeight = '500';
292
+ matterTypeLabel.style.fontSize = '12px';
293
+ matterTypeLabel.style.color = '#6b7280';
294
+ matterTypeLabel.style.marginTop = '2px';
295
+ const matterTypes = [
296
+ { value: '', label: 'Auto-detect (recommended)' },
297
+ { value: 0, label: 'Roller Shade (0)' },
298
+ { value: 1, label: 'Roman Shade (1)' },
299
+ { value: 2, label: 'Balloon Shade (2)' },
300
+ { value: 3, label: 'Woven Wood (3)' },
301
+ { value: 4, label: 'Drapery (4)' },
302
+ { value: 5, label: 'Awning (5)' },
303
+ { value: 6, label: 'Shutter (6)' },
304
+ { value: 7, label: 'Tilt Blind (7)' },
305
+ { value: 8, label: 'Blind Tilt (8)' },
306
+ { value: 9, label: 'Projector Screen (9)' },
307
+ { value: 15, label: 'Other (15)' },
308
+ ];
309
+ const matterTypeSelect = document.createElement('select');
310
+ matterTypeSelect.style.width = '100%';
311
+ matterTypeSelect.style.marginBottom = '12px';
312
+ matterTypeSelect.style.padding = '8px 10px';
313
+ matterTypeSelect.style.borderRadius = '6px';
314
+ matterTypeSelect.style.fontSize = '14px';
315
+ matterTypeSelect.style.boxSizing = 'border-box';
316
+ matterTypes.forEach((opt) => {
317
+ const option = document.createElement('option');
318
+ option.value = String(opt.value);
319
+ option.textContent = opt.label;
320
+ if (device.matterType != null && String(opt.value) === String(device.matterType)) {
321
+ option.selected = true;
322
+ }
323
+ matterTypeSelect.appendChild(option);
324
+ });
325
+ function updateMatterTypeVisibility() {
326
+ if (windowCoveringTypes.includes(typeSelect.value)) {
327
+ matterTypeLabel.style.display = 'block';
328
+ matterTypeSelect.style.display = 'block';
329
+ }
330
+ else {
331
+ matterTypeLabel.style.display = 'none';
332
+ matterTypeSelect.style.display = 'none';
333
+ }
334
+ }
335
+ typeSelect.addEventListener('change', updateMatterTypeVisibility);
336
+ updateMatterTypeVisibility();
192
337
  // Create modal dialog for editing
193
338
  const div = document.createElement('div');
194
339
  div.style.position = 'fixed';
@@ -261,25 +406,6 @@ export async function editDevice(device) {
261
406
  apiTypeInput.style.boxSizing = 'border-box';
262
407
  apiTypeInput.style.backgroundColor = '#f9fafb';
263
408
  // Editable config device type dropdown
264
- const typeLabel = document.createElement('label');
265
- typeLabel.textContent = 'Config Device Type (Override)';
266
- typeLabel.style.display = 'block';
267
- typeLabel.style.marginBottom = '6px';
268
- typeLabel.style.fontWeight = '500';
269
- typeLabel.style.fontSize = '12px';
270
- typeLabel.style.color = '#6b7280';
271
- const typeSelect = document.createElement('select');
272
- typeSelect.style.width = '100%';
273
- typeSelect.style.padding = '8px 10px';
274
- typeSelect.style.marginBottom = '12px';
275
- typeSelect.style.borderRadius = '6px';
276
- typeSelect.style.fontSize = '14px';
277
- typeSelect.style.background = getComputedStyle(nameInput).background;
278
- typeSelect.style.color = getComputedStyle(nameInput).color;
279
- typeSelect.style.border = getComputedStyle(nameInput).border;
280
- typeSelect.style.boxSizing = 'border-box';
281
- typeSelect.style.cursor = 'pointer';
282
- typeSelect.style.transition = 'border-color 0.2s ease';
283
409
  // Add option groups with all API device types
284
410
  Object.keys(DEVICE_TYPES).forEach((categoryName) => {
285
411
  const optgroup = document.createElement('optgroup');
@@ -331,8 +457,9 @@ export async function editDevice(device) {
331
457
  deviceId: device.id,
332
458
  configDeviceName: nameInput.value || undefined,
333
459
  configDeviceType: typeSelect.value,
460
+ matterType: windowCoveringTypes.includes(typeSelect.value) && matterTypeSelect.value !== '' ? Number(matterTypeSelect.value) : undefined,
334
461
  };
335
- await updateDevice(params.deviceId, params.configDeviceName, params.configDeviceType);
462
+ await updateDevice(params.deviceId, params.configDeviceName, params.configDeviceType, { matterType: params.matterType });
336
463
  await syncParentPluginConfigFromDisk();
337
464
  // Refresh device list
338
465
  uiLog.info('[Edit Device] Refreshing device list after update');
@@ -354,6 +481,8 @@ export async function editDevice(device) {
354
481
  contentDiv.appendChild(apiTypeInput);
355
482
  contentDiv.appendChild(typeLabel);
356
483
  contentDiv.appendChild(typeSelect);
484
+ contentDiv.appendChild(matterTypeLabel);
485
+ contentDiv.appendChild(matterTypeSelect);
357
486
  contentDiv.appendChild(errorMessage);
358
487
  contentDiv.appendChild(buttons);
359
488
  modal.appendChild(title);
@@ -1 +1 @@
1
- {"version":3,"file":"modals.js","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/modals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modals.js","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/modals.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,7 @@ export async function importDiscoveredDevice(device: any): Promise<{ configDevic
57
57
  nameInput.style.fontSize = '14px'
58
58
  nameInput.style.boxSizing = 'border-box'
59
59
 
60
+ // --- Device Type Select ---
60
61
  const typeLabel = document.createElement('label')
61
62
  typeLabel.textContent = 'Config Device Type'
62
63
  typeLabel.style.display = 'block'
@@ -79,7 +80,6 @@ export async function importDiscoveredDevice(device: any): Promise<{ configDevic
79
80
  Object.keys(DEVICE_TYPES).forEach((categoryName) => {
80
81
  const optgroup = document.createElement('optgroup')
81
82
  optgroup.label = categoryName
82
-
83
83
  DEVICE_TYPES[categoryName as keyof typeof DEVICE_TYPES].forEach((deviceType) => {
84
84
  const opt = document.createElement('option')
85
85
  opt.value = deviceType
@@ -88,10 +88,69 @@ export async function importDiscoveredDevice(device: any): Promise<{ configDevic
88
88
  opt.selected = deviceType.toLowerCase() === detectedType
89
89
  optgroup.appendChild(opt)
90
90
  })
91
-
92
91
  typeSelect.appendChild(optgroup)
93
92
  })
94
93
 
94
+ // --- Matter Type Advanced Field (only for window covering types) ---
95
+
96
+ // Matter Type advanced field (only for window covering types)
97
+ const windowCoveringTypes = ['Roller Shade', 'Curtain', 'Curtain3', 'Blind Tilt']
98
+
99
+ const matterTypeLabel = document.createElement('label')
100
+ matterTypeLabel.textContent = 'Matter Window Covering Type (Advanced)'
101
+ matterTypeLabel.style.display = 'block'
102
+ matterTypeLabel.style.marginBottom = '6px'
103
+ matterTypeLabel.style.fontWeight = '500'
104
+ matterTypeLabel.style.fontSize = '12px'
105
+ matterTypeLabel.style.color = '#6b7280'
106
+ matterTypeLabel.style.marginTop = '2px'
107
+
108
+ // Table 8.2 from Matter spec (partial, most common types)
109
+ const matterTypes = [
110
+ { value: '', label: 'Auto-detect (recommended)' },
111
+ { value: 0, label: 'Roller Shade (0)' },
112
+ { value: 1, label: 'Roman Shade (1)' },
113
+ { value: 2, label: 'Balloon Shade (2)' },
114
+ { value: 3, label: 'Woven Wood (3)' },
115
+ { value: 4, label: 'Drapery (4)' },
116
+ { value: 5, label: 'Awning (5)' },
117
+ { value: 6, label: 'Shutter (6)' },
118
+ { value: 7, label: 'Tilt Blind (7)' },
119
+ { value: 8, label: 'Blind Tilt (8)' },
120
+ { value: 9, label: 'Projector Screen (9)' },
121
+ { value: 15, label: 'Other (15)' },
122
+ ]
123
+
124
+ const matterTypeSelect = document.createElement('select')
125
+ matterTypeSelect.style.width = '100%'
126
+ matterTypeSelect.style.marginBottom = '12px'
127
+ matterTypeSelect.style.padding = '8px 10px'
128
+ matterTypeSelect.style.borderRadius = '6px'
129
+ matterTypeSelect.style.fontSize = '14px'
130
+ matterTypeSelect.style.boxSizing = 'border-box'
131
+ matterTypes.forEach((opt) => {
132
+ const option = document.createElement('option')
133
+ option.value = String(opt.value)
134
+ option.textContent = opt.label
135
+ if (device.matterType != null && String(opt.value) === String(device.matterType)) {
136
+ option.selected = true
137
+ }
138
+ matterTypeSelect.appendChild(option)
139
+ })
140
+
141
+ // Show/hide Matter Type field based on type
142
+ function updateMatterTypeVisibility() {
143
+ if (windowCoveringTypes.includes(typeSelect.value)) {
144
+ matterTypeLabel.style.display = 'block'
145
+ matterTypeSelect.style.display = 'block'
146
+ } else {
147
+ matterTypeLabel.style.display = 'none'
148
+ matterTypeSelect.style.display = 'none'
149
+ }
150
+ }
151
+ typeSelect.addEventListener('change', updateMatterTypeVisibility)
152
+ updateMatterTypeVisibility()
153
+
95
154
  const macLabel = document.createElement('label')
96
155
  macLabel.textContent = 'BLE MAC Address (optional)'
97
156
  macLabel.style.display = 'block'
@@ -111,7 +170,6 @@ export async function importDiscoveredDevice(device: any): Promise<{ configDevic
111
170
  macInput.style.fontSize = '14px'
112
171
  macInput.style.boxSizing = 'border-box'
113
172
 
114
-
115
173
  // BLE Encryption Key
116
174
  const encryptionKeyLabel = document.createElement('label')
117
175
  encryptionKeyLabel.textContent = 'BLE Encryption Key (optional)'
@@ -173,7 +231,6 @@ export async function importDiscoveredDevice(device: any): Promise<{ configDevic
173
231
  importBtn.style.padding = '8px 20px'
174
232
  importBtn.style.fontSize = '13px'
175
233
 
176
-
177
234
  const cleanup = (result: { configDeviceName: string, configDeviceType: string, address?: string, encryptionKey?: string, keyId?: string } | null) => {
178
235
  div.remove()
179
236
  resolve(result)
@@ -186,6 +243,7 @@ export async function importDiscoveredDevice(device: any): Promise<{ configDevic
186
243
  address: macInput.value || undefined,
187
244
  encryptionKey: encryptionKeyInput.value || undefined,
188
245
  keyId: keyIdInput.value || undefined,
246
+ ...(windowCoveringTypes.includes(typeSelect.value) && matterTypeSelect.value !== '' ? { matterType: Number(matterTypeSelect.value) } : {}),
189
247
  })
190
248
 
191
249
  div.addEventListener('click', (event) => {
@@ -194,13 +252,14 @@ export async function importDiscoveredDevice(device: any): Promise<{ configDevic
194
252
  }
195
253
  })
196
254
 
197
-
198
255
  buttons.appendChild(cancelBtn)
199
256
  buttons.appendChild(importBtn)
200
257
  contentDiv.appendChild(nameLabel)
201
258
  contentDiv.appendChild(nameInput)
202
259
  contentDiv.appendChild(typeLabel)
203
260
  contentDiv.appendChild(typeSelect)
261
+ contentDiv.appendChild(matterTypeLabel)
262
+ contentDiv.appendChild(matterTypeSelect)
204
263
  contentDiv.appendChild(macLabel)
205
264
  contentDiv.appendChild(macInput)
206
265
  contentDiv.appendChild(encryptionKeyLabel)
@@ -218,6 +277,94 @@ export async function importDiscoveredDevice(device: any): Promise<{ configDevic
218
277
  }
219
278
 
220
279
  export async function editDevice(device: any): Promise<void> {
280
+ // --- Device Type Select ---
281
+ const typeLabel = document.createElement('label')
282
+ typeLabel.textContent = 'Config Device Type'
283
+ typeLabel.style.display = 'block'
284
+ typeLabel.style.marginBottom = '6px'
285
+ typeLabel.style.fontWeight = '500'
286
+ typeLabel.style.fontSize = '12px'
287
+ typeLabel.style.color = '#6b7280'
288
+
289
+ const typeSelect = document.createElement('select')
290
+ typeSelect.style.width = '100%'
291
+ typeSelect.style.padding = '8px 10px'
292
+ typeSelect.style.marginBottom = '12px'
293
+ typeSelect.style.borderRadius = '6px'
294
+ typeSelect.style.fontSize = '14px'
295
+ typeSelect.style.background = getComputedStyle(document.body).backgroundColor
296
+ typeSelect.style.color = getComputedStyle(document.body).color
297
+ typeSelect.style.border = '1px solid #ccc'
298
+ typeSelect.style.boxSizing = 'border-box'
299
+
300
+ // Add option groups with all API device types
301
+ Object.keys(DEVICE_TYPES).forEach((categoryName) => {
302
+ const optgroup = document.createElement('optgroup')
303
+ optgroup.label = categoryName
304
+ DEVICE_TYPES[categoryName as keyof typeof DEVICE_TYPES].forEach((deviceType) => {
305
+ const opt = document.createElement('option')
306
+ opt.value = deviceType
307
+ opt.text = deviceType
308
+ // Select current configDeviceType if set, otherwise match API deviceType
309
+ const currentType = device.configDeviceType || device.deviceType || device.type || ''
310
+ opt.selected = currentType === deviceType
311
+ optgroup.appendChild(opt)
312
+ })
313
+ typeSelect.appendChild(optgroup)
314
+ })
315
+
316
+ // --- Matter Type Advanced Field (only for window covering types) ---
317
+ const windowCoveringTypes = ['Roller Shade', 'Curtain', 'Curtain3', 'Blind Tilt']
318
+ const showMatterType = windowCoveringTypes.includes(device.configDeviceType || device.deviceType || device.type || '')
319
+ const matterTypeLabel = document.createElement('label')
320
+ matterTypeLabel.textContent = 'Matter Window Covering Type (Advanced)'
321
+ matterTypeLabel.style.display = showMatterType ? 'block' : 'none'
322
+ matterTypeLabel.style.marginBottom = '6px'
323
+ matterTypeLabel.style.fontWeight = '500'
324
+ matterTypeLabel.style.fontSize = '12px'
325
+ matterTypeLabel.style.color = '#6b7280'
326
+ matterTypeLabel.style.marginTop = '2px'
327
+ const matterTypes = [
328
+ { value: '', label: 'Auto-detect (recommended)' },
329
+ { value: 0, label: 'Roller Shade (0)' },
330
+ { value: 1, label: 'Roman Shade (1)' },
331
+ { value: 2, label: 'Balloon Shade (2)' },
332
+ { value: 3, label: 'Woven Wood (3)' },
333
+ { value: 4, label: 'Drapery (4)' },
334
+ { value: 5, label: 'Awning (5)' },
335
+ { value: 6, label: 'Shutter (6)' },
336
+ { value: 7, label: 'Tilt Blind (7)' },
337
+ { value: 8, label: 'Blind Tilt (8)' },
338
+ { value: 9, label: 'Projector Screen (9)' },
339
+ { value: 15, label: 'Other (15)' },
340
+ ]
341
+ const matterTypeSelect = document.createElement('select')
342
+ matterTypeSelect.style.width = '100%'
343
+ matterTypeSelect.style.marginBottom = '12px'
344
+ matterTypeSelect.style.padding = '8px 10px'
345
+ matterTypeSelect.style.borderRadius = '6px'
346
+ matterTypeSelect.style.fontSize = '14px'
347
+ matterTypeSelect.style.boxSizing = 'border-box'
348
+ matterTypes.forEach((opt) => {
349
+ const option = document.createElement('option')
350
+ option.value = String(opt.value)
351
+ option.textContent = opt.label
352
+ if (device.matterType != null && String(opt.value) === String(device.matterType)) {
353
+ option.selected = true
354
+ }
355
+ matterTypeSelect.appendChild(option)
356
+ })
357
+ function updateMatterTypeVisibility() {
358
+ if (windowCoveringTypes.includes(typeSelect.value)) {
359
+ matterTypeLabel.style.display = 'block'
360
+ matterTypeSelect.style.display = 'block'
361
+ } else {
362
+ matterTypeLabel.style.display = 'none'
363
+ matterTypeSelect.style.display = 'none'
364
+ }
365
+ }
366
+ typeSelect.addEventListener('change', updateMatterTypeVisibility)
367
+ updateMatterTypeVisibility()
221
368
  // Create modal dialog for editing
222
369
  const div = document.createElement('div')
223
370
  div.style.position = 'fixed'
@@ -298,26 +445,6 @@ export async function editDevice(device: any): Promise<void> {
298
445
  apiTypeInput.style.backgroundColor = '#f9fafb'
299
446
 
300
447
  // Editable config device type dropdown
301
- const typeLabel = document.createElement('label')
302
- typeLabel.textContent = 'Config Device Type (Override)'
303
- typeLabel.style.display = 'block'
304
- typeLabel.style.marginBottom = '6px'
305
- typeLabel.style.fontWeight = '500'
306
- typeLabel.style.fontSize = '12px'
307
- typeLabel.style.color = '#6b7280'
308
-
309
- const typeSelect = document.createElement('select')
310
- typeSelect.style.width = '100%'
311
- typeSelect.style.padding = '8px 10px'
312
- typeSelect.style.marginBottom = '12px'
313
- typeSelect.style.borderRadius = '6px'
314
- typeSelect.style.fontSize = '14px'
315
- typeSelect.style.background = getComputedStyle(nameInput).background
316
- typeSelect.style.color = getComputedStyle(nameInput).color
317
- typeSelect.style.border = getComputedStyle(nameInput).border
318
- typeSelect.style.boxSizing = 'border-box'
319
- typeSelect.style.cursor = 'pointer'
320
- typeSelect.style.transition = 'border-color 0.2s ease'
321
448
 
322
449
  // Add option groups with all API device types
323
450
  Object.keys(DEVICE_TYPES).forEach((categoryName) => {
@@ -378,9 +505,10 @@ export async function editDevice(device: any): Promise<void> {
378
505
  deviceId: device.id,
379
506
  configDeviceName: nameInput.value || undefined,
380
507
  configDeviceType: typeSelect.value,
508
+ matterType: windowCoveringTypes.includes(typeSelect.value) && matterTypeSelect.value !== '' ? Number(matterTypeSelect.value) : undefined,
381
509
  }
382
510
 
383
- await updateDevice(params.deviceId, params.configDeviceName, params.configDeviceType)
511
+ await updateDevice(params.deviceId, params.configDeviceName, params.configDeviceType, { matterType: params.matterType })
384
512
  await syncParentPluginConfigFromDisk()
385
513
 
386
514
  // Refresh device list
@@ -404,6 +532,8 @@ export async function editDevice(device: any): Promise<void> {
404
532
  contentDiv.appendChild(apiTypeInput)
405
533
  contentDiv.appendChild(typeLabel)
406
534
  contentDiv.appendChild(typeSelect)
535
+ contentDiv.appendChild(matterTypeLabel)
536
+ contentDiv.appendChild(matterTypeSelect)
407
537
  contentDiv.appendChild(errorMessage)
408
538
  contentDiv.appendChild(buttons)
409
539