@switchbot/homebridge-switchbot 5.0.0-beta.110 → 5.0.0-beta.111

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 (50) hide show
  1. package/.github/copilot-instructions.md +39 -0
  2. package/dist/homebridge-ui/endpoints/devices.d.ts.map +1 -1
  3. package/dist/homebridge-ui/endpoints/devices.js +10 -1
  4. package/dist/homebridge-ui/endpoints/devices.js.map +1 -1
  5. package/dist/homebridge-ui/public/js/api.d.ts +5 -1
  6. package/dist/homebridge-ui/public/js/api.d.ts.map +1 -1
  7. package/dist/homebridge-ui/public/js/api.js +13 -3
  8. package/dist/homebridge-ui/public/js/api.js.map +1 -1
  9. package/dist/homebridge-ui/public/js/api.ts +13 -3
  10. package/dist/homebridge-ui/public/js/app.js +245 -11
  11. package/dist/homebridge-ui/public/js/app.js.map +3 -3
  12. package/dist/homebridge-ui/public/js/devices.d.ts.map +1 -1
  13. package/dist/homebridge-ui/public/js/devices.js +12 -3
  14. package/dist/homebridge-ui/public/js/devices.js.map +1 -1
  15. package/dist/homebridge-ui/public/js/devices.ts +13 -3
  16. package/dist/homebridge-ui/public/js/discovery.d.ts.map +1 -1
  17. package/dist/homebridge-ui/public/js/discovery.js +13 -2
  18. package/dist/homebridge-ui/public/js/discovery.js.map +1 -1
  19. package/dist/homebridge-ui/public/js/discovery.ts +14 -1
  20. package/dist/homebridge-ui/public/js/modals.d.ts +5 -0
  21. package/dist/homebridge-ui/public/js/modals.d.ts.map +1 -1
  22. package/dist/homebridge-ui/public/js/modals.js +146 -0
  23. package/dist/homebridge-ui/public/js/modals.js.map +1 -1
  24. package/dist/homebridge-ui/public/js/modals.ts +167 -0
  25. package/dist/homebridge-ui/public/js/render.d.ts +3 -1
  26. package/dist/homebridge-ui/public/js/render.d.ts.map +1 -1
  27. package/dist/homebridge-ui/public/js/render.js +62 -2
  28. package/dist/homebridge-ui/public/js/render.js.map +1 -1
  29. package/dist/homebridge-ui/public/js/render.ts +71 -2
  30. package/dist/platform.d.ts.map +1 -1
  31. package/dist/platform.js +63 -103
  32. package/dist/platform.js.map +1 -1
  33. package/dist/utils.d.ts.map +1 -1
  34. package/dist/utils.js +2 -1
  35. package/dist/utils.js.map +1 -1
  36. package/docs/variables/default.html +1 -1
  37. package/package.json +1 -1
  38. package/src/homebridge-ui/endpoints/devices.ts +5 -2
  39. package/src/homebridge-ui/public/js/api.ts +13 -3
  40. package/src/homebridge-ui/public/js/devices.ts +13 -3
  41. package/src/homebridge-ui/public/js/discovery.ts +14 -1
  42. package/src/homebridge-ui/public/js/modals.ts +167 -0
  43. package/src/homebridge-ui/public/js/render.ts +71 -2
  44. package/src/platform.ts +76 -103
  45. package/src/utils.ts +2 -1
  46. package/test/matter-childbridge.spec.ts +5 -1
  47. package/test/matter-integration.spec.ts +41 -0
  48. package/test/utils.spec.ts +18 -2
  49. package/todo/COMPLETED.md +40 -0
  50. package/todo/TODO.md +13 -42
@@ -8,9 +8,19 @@ export async function addDeviceToConfig(device: any, options: { refresh?: boolea
8
8
  const { refresh = true, showStatus = true } = options
9
9
 
10
10
  try {
11
+ const { importDiscoveredDevice } = await import('./modals.js')
12
+ const importValues = await importDiscoveredDevice(device)
13
+ if (!importValues) {
14
+ return { added: false }
15
+ }
16
+
11
17
  showBusyUi()
12
18
  uiLog.info('Adding device to config:', device)
13
- const resp = await addDevice(device.id, device.name, device.type)
19
+ const resp = await addDevice(device.id, importValues.configDeviceName, importValues.configDeviceType, {
20
+ address: importValues.address,
21
+ model: device.model,
22
+ rssi: device.rssi,
23
+ })
14
24
  uiLog.info('Add device response:', resp)
15
25
 
16
26
  if (!resp || resp.success === false) {
@@ -21,8 +31,8 @@ export async function addDeviceToConfig(device: any, options: { refresh?: boolea
21
31
  const message
22
32
  = resp?.message
23
33
  || (alreadyExists
24
- ? `Device "${device.name}" already in config`
25
- : `Device "${device.name}" added successfully!`)
34
+ ? `Device "${importValues.configDeviceName}" already in config`
35
+ : `Device "${importValues.configDeviceName}" added successfully!`)
26
36
 
27
37
  if (alreadyExists) {
28
38
  toastInfo(message)
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/discovery.ts"],"names":[],"mappings":"AAYA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAoOrD;AAiCD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlE"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/discovery.ts"],"names":[],"mappings":"AAgBA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAuOrD;AAuCD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlE"}
@@ -1,9 +1,12 @@
1
- import { addDevicesInBulk, discoverDevices as apiDiscoverDevices, syncParentPluginConfigFromDisk, } from './api.js';
1
+ import { addDevicesInBulk, discoverDevices as apiDiscoverDevices, fetchDevices, syncParentPluginConfigFromDisk, } from './api.js';
2
2
  import { loadConfiguredDevices } from './devices.js';
3
3
  import { uiLog } from './logger.js';
4
4
  import { hideBusyUi, showBusyUi } from './modal.js';
5
5
  import { renderDiscoveredDevices, filterDevices, sortDevices, getDiscoveryPreferences, setDiscoveryPreferences } from './render.js';
6
6
  import { toastError, toastInfo, toastSuccess, toastWarning } from './toast.js';
7
+ function normalizeId(value) {
8
+ return String(value ?? '').trim().toLowerCase();
9
+ }
7
10
  export async function discoverDevices() {
8
11
  const btn = document.getElementById('discoverBtn');
9
12
  const status = document.getElementById('discoverStatus');
@@ -114,6 +117,7 @@ export async function discoverDevices() {
114
117
  btn.style.cursor = 'pointer';
115
118
  btn.style.border = preferences.connectionType === option.value ? '2px solid #007AFF' : '1px solid #ccc';
116
119
  btn.style.backgroundColor = preferences.connectionType === option.value ? '#f0f7ff' : '#fff';
120
+ btn.style.color = preferences.connectionType === option.value ? '#1d4ed8' : '#374151';
117
121
  btn.onclick = () => {
118
122
  preferences.connectionType = option.value;
119
123
  setDiscoveryPreferences(preferences);
@@ -123,9 +127,11 @@ export async function discoverDevices() {
123
127
  ;
124
128
  b.style.border = '1px solid #ccc';
125
129
  b.style.backgroundColor = '#fff';
130
+ b.style.color = '#374151';
126
131
  }
127
132
  btn.style.border = '2px solid #007AFF';
128
133
  btn.style.backgroundColor = '#f0f7ff';
134
+ btn.style.color = '#1d4ed8';
129
135
  };
130
136
  filterGroup.appendChild(btn);
131
137
  }
@@ -212,8 +218,13 @@ async function updateDiscoveryView(allDevices, preferences) {
212
218
  // Apply filters and sort
213
219
  const filtered = filterDevices(allDevices, preferences.connectionType, preferences.searchQuery);
214
220
  const sorted = sortDevices(filtered, preferences.sortBy);
221
+ // Build configured device lookup for duplicate detection
222
+ const configured = await fetchDevices();
223
+ const configuredIds = new Set((configured || []).map(d => normalizeId(d?.id || d?.deviceId)));
215
224
  // Render updated list
216
- const ul = await renderDiscoveredDevices(sorted);
225
+ const ul = await renderDiscoveredDevices(sorted, {
226
+ configuredIds,
227
+ });
217
228
  document.getElementById('discoveredDevices')?.replaceWith(ul);
218
229
  ul.id = 'discoveredDevices';
219
230
  // Update status with count
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/discovery.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,10 @@ import { hideBusyUi, showBusyUi } from './modal.js'
10
10
  import { renderDiscoveredDevices, filterDevices, sortDevices, getDiscoveryPreferences, setDiscoveryPreferences } from './render.js'
11
11
  import { toastError, toastInfo, toastSuccess, toastWarning } from './toast.js'
12
12
 
13
+ function normalizeId(value: any): string {
14
+ return String(value ?? '').trim().toLowerCase()
15
+ }
16
+
13
17
  export async function discoverDevices(): Promise<void> {
14
18
  const btn = document.getElementById('discoverBtn') as HTMLButtonElement
15
19
  const status = document.getElementById('discoverStatus')
@@ -138,6 +142,7 @@ export async function discoverDevices(): Promise<void> {
138
142
  btn.style.cursor = 'pointer'
139
143
  btn.style.border = preferences.connectionType === option.value ? '2px solid #007AFF' : '1px solid #ccc'
140
144
  btn.style.backgroundColor = preferences.connectionType === option.value ? '#f0f7ff' : '#fff'
145
+ btn.style.color = preferences.connectionType === option.value ? '#1d4ed8' : '#374151'
141
146
 
142
147
  btn.onclick = () => {
143
148
  preferences.connectionType = option.value
@@ -147,9 +152,11 @@ export async function discoverDevices(): Promise<void> {
147
152
  for (const b of Array.from(filterGroup.querySelectorAll('button'))) {
148
153
  ;(b as HTMLButtonElement).style.border = '1px solid #ccc'
149
154
  ;(b as HTMLButtonElement).style.backgroundColor = '#fff'
155
+ ;(b as HTMLButtonElement).style.color = '#374151'
150
156
  }
151
157
  btn.style.border = '2px solid #007AFF'
152
158
  btn.style.backgroundColor = '#f0f7ff'
159
+ btn.style.color = '#1d4ed8'
153
160
  }
154
161
 
155
162
  filterGroup.appendChild(btn)
@@ -255,8 +262,14 @@ async function updateDiscoveryView(
255
262
  const filtered = filterDevices(allDevices, preferences.connectionType, preferences.searchQuery)
256
263
  const sorted = sortDevices(filtered, preferences.sortBy)
257
264
 
265
+ // Build configured device lookup for duplicate detection
266
+ const configured = await fetchDevices()
267
+ const configuredIds = new Set((configured || []).map(d => normalizeId(d?.id || d?.deviceId)))
268
+
258
269
  // Render updated list
259
- const ul = await renderDiscoveredDevices(sorted)
270
+ const ul = await renderDiscoveredDevices(sorted, {
271
+ configuredIds,
272
+ })
260
273
  document.getElementById('discoveredDevices')?.replaceWith(ul)
261
274
  ul.id = 'discoveredDevices'
262
275
 
@@ -1,2 +1,7 @@
1
+ export declare function importDiscoveredDevice(device: any): Promise<{
2
+ configDeviceName: string;
3
+ configDeviceType: string;
4
+ address?: string;
5
+ } | null>;
1
6
  export declare function editDevice(device: any): Promise<void>;
2
7
  //# sourceMappingURL=modals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modals.d.ts","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/modals.ts"],"names":[],"mappings":"AAGA,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,CAqKlJ;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAoM3D"}
@@ -1,5 +1,151 @@
1
1
  import { DEVICE_TYPES } from './constants.js';
2
2
  import { uiLog } from './logger.js';
3
+ export async function importDiscoveredDevice(device) {
4
+ return new Promise((resolve) => {
5
+ const div = document.createElement('div');
6
+ div.style.position = 'fixed';
7
+ div.style.top = '0';
8
+ div.style.left = '0';
9
+ div.style.width = '100%';
10
+ div.style.height = '100%';
11
+ div.style.background = 'rgba(0,0,0,0.7)';
12
+ div.style.display = 'flex';
13
+ div.style.alignItems = 'center';
14
+ div.style.justifyContent = 'center';
15
+ div.style.zIndex = '9999';
16
+ const modal = document.createElement('div');
17
+ modal.style.background = getComputedStyle(document.body).backgroundColor;
18
+ modal.style.color = getComputedStyle(document.body).color;
19
+ modal.style.padding = '0';
20
+ modal.style.borderRadius = '10px';
21
+ modal.style.minWidth = '440px';
22
+ modal.style.maxWidth = '90vw';
23
+ modal.style.boxShadow = '0 8px 32px rgba(0,0,0,0.35)';
24
+ modal.style.overflow = 'hidden';
25
+ modal.style.borderTop = '3px solid var(--switchbot-red, #ef4444)';
26
+ const title = document.createElement('h3');
27
+ title.textContent = 'Import Discovered Device';
28
+ title.style.marginTop = '0';
29
+ title.style.marginBottom = '16px';
30
+ title.style.padding = '20px 20px 0';
31
+ title.style.fontSize = '18px';
32
+ title.style.fontWeight = '600';
33
+ title.style.color = 'var(--switchbot-red, #ef4444)';
34
+ title.style.letterSpacing = '-0.02em';
35
+ const contentDiv = document.createElement('div');
36
+ contentDiv.style.padding = '0 20px 20px';
37
+ const nameLabel = document.createElement('label');
38
+ nameLabel.textContent = 'Device Name';
39
+ nameLabel.style.display = 'block';
40
+ nameLabel.style.marginBottom = '6px';
41
+ nameLabel.style.fontWeight = '500';
42
+ nameLabel.style.fontSize = '12px';
43
+ nameLabel.style.color = '#6b7280';
44
+ const nameInput = document.createElement('input');
45
+ nameInput.type = 'text';
46
+ nameInput.value = device.name || device.id || '';
47
+ nameInput.style.width = '100%';
48
+ nameInput.style.marginBottom = '12px';
49
+ nameInput.style.padding = '8px 10px';
50
+ nameInput.style.borderRadius = '6px';
51
+ nameInput.style.fontSize = '14px';
52
+ nameInput.style.boxSizing = 'border-box';
53
+ const typeLabel = document.createElement('label');
54
+ typeLabel.textContent = 'Config Device Type';
55
+ typeLabel.style.display = 'block';
56
+ typeLabel.style.marginBottom = '6px';
57
+ typeLabel.style.fontWeight = '500';
58
+ typeLabel.style.fontSize = '12px';
59
+ typeLabel.style.color = '#6b7280';
60
+ const typeSelect = document.createElement('select');
61
+ typeSelect.style.width = '100%';
62
+ typeSelect.style.padding = '8px 10px';
63
+ typeSelect.style.marginBottom = '12px';
64
+ typeSelect.style.borderRadius = '6px';
65
+ typeSelect.style.fontSize = '14px';
66
+ typeSelect.style.background = getComputedStyle(nameInput).background;
67
+ typeSelect.style.color = getComputedStyle(nameInput).color;
68
+ typeSelect.style.border = getComputedStyle(nameInput).border;
69
+ typeSelect.style.boxSizing = 'border-box';
70
+ Object.keys(DEVICE_TYPES).forEach((categoryName) => {
71
+ const optgroup = document.createElement('optgroup');
72
+ optgroup.label = categoryName;
73
+ DEVICE_TYPES[categoryName].forEach((deviceType) => {
74
+ const opt = document.createElement('option');
75
+ opt.value = deviceType;
76
+ opt.text = deviceType;
77
+ const detectedType = (device.type || '').toLowerCase();
78
+ opt.selected = deviceType.toLowerCase() === detectedType;
79
+ optgroup.appendChild(opt);
80
+ });
81
+ typeSelect.appendChild(optgroup);
82
+ });
83
+ const macLabel = document.createElement('label');
84
+ macLabel.textContent = 'BLE MAC Address (optional)';
85
+ macLabel.style.display = 'block';
86
+ macLabel.style.marginBottom = '6px';
87
+ macLabel.style.fontWeight = '500';
88
+ macLabel.style.fontSize = '12px';
89
+ macLabel.style.color = '#6b7280';
90
+ const macInput = document.createElement('input');
91
+ macInput.type = 'text';
92
+ macInput.value = device.address || '';
93
+ macInput.placeholder = 'AA:BB:CC:DD:EE:FF';
94
+ macInput.style.width = '100%';
95
+ macInput.style.marginBottom = '12px';
96
+ macInput.style.padding = '8px 10px';
97
+ macInput.style.borderRadius = '6px';
98
+ macInput.style.fontSize = '14px';
99
+ macInput.style.boxSizing = 'border-box';
100
+ const buttons = document.createElement('div');
101
+ buttons.style.display = 'flex';
102
+ buttons.style.gap = '10px';
103
+ buttons.style.justifyContent = 'flex-end';
104
+ buttons.style.marginTop = '18px';
105
+ buttons.style.paddingTop = '18px';
106
+ buttons.style.borderTop = '1px solid rgba(0, 0, 0, 0.08)';
107
+ const cancelBtn = document.createElement('button');
108
+ cancelBtn.textContent = 'Cancel';
109
+ cancelBtn.className = 'secondary';
110
+ cancelBtn.style.background = '#6b7280';
111
+ cancelBtn.style.padding = '8px 16px';
112
+ cancelBtn.style.fontSize = '13px';
113
+ const importBtn = document.createElement('button');
114
+ importBtn.textContent = 'Add to Config';
115
+ importBtn.style.background = 'var(--switchbot-red, #ef4444)';
116
+ importBtn.style.padding = '8px 20px';
117
+ importBtn.style.fontSize = '13px';
118
+ const cleanup = (result) => {
119
+ div.remove();
120
+ resolve(result);
121
+ };
122
+ cancelBtn.onclick = () => cleanup(null);
123
+ importBtn.onclick = () => cleanup({
124
+ configDeviceName: nameInput.value || device.name || device.id,
125
+ configDeviceType: typeSelect.value || device.type,
126
+ address: macInput.value || undefined,
127
+ });
128
+ div.addEventListener('click', (event) => {
129
+ if (event.target === div) {
130
+ cleanup(null);
131
+ }
132
+ });
133
+ buttons.appendChild(cancelBtn);
134
+ buttons.appendChild(importBtn);
135
+ contentDiv.appendChild(nameLabel);
136
+ contentDiv.appendChild(nameInput);
137
+ contentDiv.appendChild(typeLabel);
138
+ contentDiv.appendChild(typeSelect);
139
+ contentDiv.appendChild(macLabel);
140
+ contentDiv.appendChild(macInput);
141
+ contentDiv.appendChild(buttons);
142
+ modal.appendChild(title);
143
+ modal.appendChild(contentDiv);
144
+ div.appendChild(modal);
145
+ document.body.appendChild(div);
146
+ nameInput.focus();
147
+ });
148
+ }
3
149
  export async function editDevice(device) {
4
150
  // Create modal dialog for editing
5
151
  const div = document.createElement('div');
@@ -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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"}
@@ -1,6 +1,173 @@
1
1
  import { DEVICE_TYPES } from './constants.js'
2
2
  import { uiLog } from './logger.js'
3
3
 
4
+ export async function importDiscoveredDevice(device: any): Promise<{ configDeviceName: string, configDeviceType: string, address?: string } | null> {
5
+ return new Promise((resolve) => {
6
+ const div = document.createElement('div')
7
+ div.style.position = 'fixed'
8
+ div.style.top = '0'
9
+ div.style.left = '0'
10
+ div.style.width = '100%'
11
+ div.style.height = '100%'
12
+ div.style.background = 'rgba(0,0,0,0.7)'
13
+ div.style.display = 'flex'
14
+ div.style.alignItems = 'center'
15
+ div.style.justifyContent = 'center'
16
+ div.style.zIndex = '9999'
17
+
18
+ const modal = document.createElement('div')
19
+ modal.style.background = getComputedStyle(document.body).backgroundColor
20
+ modal.style.color = getComputedStyle(document.body).color
21
+ modal.style.padding = '0'
22
+ modal.style.borderRadius = '10px'
23
+ modal.style.minWidth = '440px'
24
+ modal.style.maxWidth = '90vw'
25
+ modal.style.boxShadow = '0 8px 32px rgba(0,0,0,0.35)'
26
+ modal.style.overflow = 'hidden'
27
+ modal.style.borderTop = '3px solid var(--switchbot-red, #ef4444)'
28
+
29
+ const title = document.createElement('h3')
30
+ title.textContent = 'Import Discovered Device'
31
+ title.style.marginTop = '0'
32
+ title.style.marginBottom = '16px'
33
+ title.style.padding = '20px 20px 0'
34
+ title.style.fontSize = '18px'
35
+ title.style.fontWeight = '600'
36
+ title.style.color = 'var(--switchbot-red, #ef4444)'
37
+ title.style.letterSpacing = '-0.02em'
38
+
39
+ const contentDiv = document.createElement('div')
40
+ contentDiv.style.padding = '0 20px 20px'
41
+
42
+ const nameLabel = document.createElement('label')
43
+ nameLabel.textContent = 'Device Name'
44
+ nameLabel.style.display = 'block'
45
+ nameLabel.style.marginBottom = '6px'
46
+ nameLabel.style.fontWeight = '500'
47
+ nameLabel.style.fontSize = '12px'
48
+ nameLabel.style.color = '#6b7280'
49
+
50
+ const nameInput = document.createElement('input')
51
+ nameInput.type = 'text'
52
+ nameInput.value = device.name || device.id || ''
53
+ nameInput.style.width = '100%'
54
+ nameInput.style.marginBottom = '12px'
55
+ nameInput.style.padding = '8px 10px'
56
+ nameInput.style.borderRadius = '6px'
57
+ nameInput.style.fontSize = '14px'
58
+ nameInput.style.boxSizing = 'border-box'
59
+
60
+ const typeLabel = document.createElement('label')
61
+ typeLabel.textContent = 'Config Device Type'
62
+ typeLabel.style.display = 'block'
63
+ typeLabel.style.marginBottom = '6px'
64
+ typeLabel.style.fontWeight = '500'
65
+ typeLabel.style.fontSize = '12px'
66
+ typeLabel.style.color = '#6b7280'
67
+
68
+ const typeSelect = document.createElement('select')
69
+ typeSelect.style.width = '100%'
70
+ typeSelect.style.padding = '8px 10px'
71
+ typeSelect.style.marginBottom = '12px'
72
+ typeSelect.style.borderRadius = '6px'
73
+ typeSelect.style.fontSize = '14px'
74
+ typeSelect.style.background = getComputedStyle(nameInput).background
75
+ typeSelect.style.color = getComputedStyle(nameInput).color
76
+ typeSelect.style.border = getComputedStyle(nameInput).border
77
+ typeSelect.style.boxSizing = 'border-box'
78
+
79
+ Object.keys(DEVICE_TYPES).forEach((categoryName) => {
80
+ const optgroup = document.createElement('optgroup')
81
+ optgroup.label = categoryName
82
+
83
+ DEVICE_TYPES[categoryName as keyof typeof DEVICE_TYPES].forEach((deviceType) => {
84
+ const opt = document.createElement('option')
85
+ opt.value = deviceType
86
+ opt.text = deviceType
87
+ const detectedType = (device.type || '').toLowerCase()
88
+ opt.selected = deviceType.toLowerCase() === detectedType
89
+ optgroup.appendChild(opt)
90
+ })
91
+
92
+ typeSelect.appendChild(optgroup)
93
+ })
94
+
95
+ const macLabel = document.createElement('label')
96
+ macLabel.textContent = 'BLE MAC Address (optional)'
97
+ macLabel.style.display = 'block'
98
+ macLabel.style.marginBottom = '6px'
99
+ macLabel.style.fontWeight = '500'
100
+ macLabel.style.fontSize = '12px'
101
+ macLabel.style.color = '#6b7280'
102
+
103
+ const macInput = document.createElement('input')
104
+ macInput.type = 'text'
105
+ macInput.value = device.address || ''
106
+ macInput.placeholder = 'AA:BB:CC:DD:EE:FF'
107
+ macInput.style.width = '100%'
108
+ macInput.style.marginBottom = '12px'
109
+ macInput.style.padding = '8px 10px'
110
+ macInput.style.borderRadius = '6px'
111
+ macInput.style.fontSize = '14px'
112
+ macInput.style.boxSizing = 'border-box'
113
+
114
+ const buttons = document.createElement('div')
115
+ buttons.style.display = 'flex'
116
+ buttons.style.gap = '10px'
117
+ buttons.style.justifyContent = 'flex-end'
118
+ buttons.style.marginTop = '18px'
119
+ buttons.style.paddingTop = '18px'
120
+ buttons.style.borderTop = '1px solid rgba(0, 0, 0, 0.08)'
121
+
122
+ const cancelBtn = document.createElement('button')
123
+ cancelBtn.textContent = 'Cancel'
124
+ cancelBtn.className = 'secondary'
125
+ cancelBtn.style.background = '#6b7280'
126
+ cancelBtn.style.padding = '8px 16px'
127
+ cancelBtn.style.fontSize = '13px'
128
+
129
+ const importBtn = document.createElement('button')
130
+ importBtn.textContent = 'Add to Config'
131
+ importBtn.style.background = 'var(--switchbot-red, #ef4444)'
132
+ importBtn.style.padding = '8px 20px'
133
+ importBtn.style.fontSize = '13px'
134
+
135
+ const cleanup = (result: { configDeviceName: string, configDeviceType: string, address?: string } | null) => {
136
+ div.remove()
137
+ resolve(result)
138
+ }
139
+
140
+ cancelBtn.onclick = () => cleanup(null)
141
+ importBtn.onclick = () => cleanup({
142
+ configDeviceName: nameInput.value || device.name || device.id,
143
+ configDeviceType: typeSelect.value || device.type,
144
+ address: macInput.value || undefined,
145
+ })
146
+
147
+ div.addEventListener('click', (event) => {
148
+ if (event.target === div) {
149
+ cleanup(null)
150
+ }
151
+ })
152
+
153
+ buttons.appendChild(cancelBtn)
154
+ buttons.appendChild(importBtn)
155
+ contentDiv.appendChild(nameLabel)
156
+ contentDiv.appendChild(nameInput)
157
+ contentDiv.appendChild(typeLabel)
158
+ contentDiv.appendChild(typeSelect)
159
+ contentDiv.appendChild(macLabel)
160
+ contentDiv.appendChild(macInput)
161
+ contentDiv.appendChild(buttons)
162
+
163
+ modal.appendChild(title)
164
+ modal.appendChild(contentDiv)
165
+ div.appendChild(modal)
166
+ document.body.appendChild(div)
167
+ nameInput.focus()
168
+ })
169
+ }
170
+
4
171
  export async function editDevice(device: any): Promise<void> {
5
172
  // Create modal dialog for editing
6
173
  const div = document.createElement('div')
@@ -25,7 +25,9 @@ export declare function renderSignalQualityBadge(rssi: number | undefined): HTML
25
25
  export declare function renderBadge(text: string, style: string): HTMLElement;
26
26
  export declare function renderConnectionBadge(connectionType: string): HTMLElement | null;
27
27
  export declare function renderIRBadge(): HTMLElement;
28
- export declare function renderDiscoveredDevices(devices: any[]): Promise<HTMLElement>;
28
+ export declare function renderDiscoveredDevices(devices: any[], options?: {
29
+ configuredIds?: Set<string>;
30
+ }): Promise<HTMLElement>;
29
31
  /**
30
32
  * Filter devices by connection type and search query
31
33
  * @param devices Discovered devices array
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/render.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG;IAC9D,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACzD,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;CACb,CA8CA;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CA+BtE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAiB9E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAKpE;AAED,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAiBhF;AAED,wBAAgB,aAAa,IAAI,WAAW,CAK3C;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAsFlF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,GAAG,EAAE,EACd,cAAc,GAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,IAAY,EAC7D,WAAW,SAAK,GACf,GAAG,EAAE,CAmCP;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,GAAG,EAAE,EACd,MAAM,GAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAqB,GACzD,GAAG,EAAE,CA8CP;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI;IACzC,cAAc,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAA;IACrD,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAA;IACjD,WAAW,EAAE,MAAM,CAAA;CACpB,CAeA;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE;IACnD,cAAc,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAA;IACrD,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAA;IACjD,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,IAAI,CAMP;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAuHlD"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/render.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG;IAC9D,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACzD,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;CACb,CA8CA;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CA+BtE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAiB9E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAKpE;AAED,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAiBhF;AAED,wBAAgB,aAAa,IAAI,WAAW,CAK3C;AAwBD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,GAAG,EAAE,EACd,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAO,GAC5C,OAAO,CAAC,WAAW,CAAC,CAiItB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,GAAG,EAAE,EACd,cAAc,GAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,IAAY,EAC7D,WAAW,SAAK,GACf,GAAG,EAAE,CAmCP;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,GAAG,EAAE,EACd,MAAM,GAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAqB,GACzD,GAAG,EAAE,CA8CP;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI;IACzC,cAAc,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAA;IACrD,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAA;IACjD,WAAW,EAAE,MAAM,CAAA;CACpB,CAeA;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE;IACnD,cAAc,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAA;IACrD,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAA;IACjD,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,IAAI,CAMP;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAwHlD"}