@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.
- package/config.schema.json +11 -0
- package/dist/devices/genericDevice.d.ts.map +1 -1
- package/dist/devices/genericDevice.js +55 -10
- package/dist/devices/genericDevice.js.map +1 -1
- package/dist/homebridge-ui/endpoints/discovery.d.ts.map +1 -1
- package/dist/homebridge-ui/endpoints/discovery.js +10 -1
- package/dist/homebridge-ui/endpoints/discovery.js.map +1 -1
- package/dist/homebridge-ui/public/js/api.d.ts +4 -1
- package/dist/homebridge-ui/public/js/api.d.ts.map +1 -1
- package/dist/homebridge-ui/public/js/api.js +7 -1
- package/dist/homebridge-ui/public/js/api.js.map +1 -1
- package/dist/homebridge-ui/public/js/api.ts +8 -1
- package/dist/homebridge-ui/public/js/app.js +149 -24
- package/dist/homebridge-ui/public/js/app.js.map +2 -2
- package/dist/homebridge-ui/public/js/devices.d.ts.map +1 -1
- package/dist/homebridge-ui/public/js/devices.js +1 -0
- package/dist/homebridge-ui/public/js/devices.js.map +1 -1
- package/dist/homebridge-ui/public/js/devices.ts +5 -2
- package/dist/homebridge-ui/public/js/modals.d.ts.map +1 -1
- package/dist/homebridge-ui/public/js/modals.js +149 -20
- package/dist/homebridge-ui/public/js/modals.js.map +1 -1
- package/dist/homebridge-ui/public/js/modals.ts +156 -26
- package/docs/variables/default.html +1 -1
- package/package.json +1 -1
- package/src/devices/genericDevice.ts +64 -10
- package/src/homebridge-ui/endpoints/discovery.ts +9 -1
- package/src/homebridge-ui/public/js/api.ts +8 -1
- package/src/homebridge-ui/public/js/devices.ts +5 -2
- 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,
|
|
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":"
|
|
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) {
|
|
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,
|
|
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
|
|