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

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 (78) hide show
  1. package/config.schema.json +4 -0
  2. package/dist/device-types.d.ts +18 -2
  3. package/dist/device-types.d.ts.map +1 -1
  4. package/dist/device-types.js +71 -0
  5. package/dist/device-types.js.map +1 -1
  6. package/dist/deviceFactory.d.ts.map +1 -1
  7. package/dist/deviceFactory.js +1 -0
  8. package/dist/deviceFactory.js.map +1 -1
  9. package/dist/homebridge-ui/endpoints/config.d.ts +0 -3
  10. package/dist/homebridge-ui/endpoints/config.d.ts.map +1 -1
  11. package/dist/homebridge-ui/endpoints/config.js +40 -9
  12. package/dist/homebridge-ui/endpoints/config.js.map +1 -1
  13. package/dist/homebridge-ui/endpoints/devices.d.ts.map +1 -1
  14. package/dist/homebridge-ui/endpoints/devices.js +59 -2
  15. package/dist/homebridge-ui/endpoints/devices.js.map +1 -1
  16. package/dist/homebridge-ui/public/css/styles.css +254 -0
  17. package/dist/homebridge-ui/public/index.html +23 -168
  18. package/dist/homebridge-ui/public/js/api.d.ts +4 -0
  19. package/dist/homebridge-ui/public/js/api.d.ts.map +1 -1
  20. package/dist/homebridge-ui/public/js/api.js +14 -0
  21. package/dist/homebridge-ui/public/js/api.js.map +1 -1
  22. package/dist/homebridge-ui/public/js/api.ts +17 -1
  23. package/dist/homebridge-ui/public/js/app.js +556 -44
  24. package/dist/homebridge-ui/public/js/app.js.map +3 -3
  25. package/dist/homebridge-ui/public/js/app.ts +2 -1
  26. package/dist/homebridge-ui/public/js/devices-delete.d.ts +1 -0
  27. package/dist/homebridge-ui/public/js/devices-delete.d.ts.map +1 -1
  28. package/dist/homebridge-ui/public/js/devices-delete.js +108 -1
  29. package/dist/homebridge-ui/public/js/devices-delete.js.map +1 -1
  30. package/dist/homebridge-ui/public/js/devices-delete.ts +124 -1
  31. package/dist/homebridge-ui/public/js/devices.d.ts +1 -0
  32. package/dist/homebridge-ui/public/js/devices.d.ts.map +1 -1
  33. package/dist/homebridge-ui/public/js/devices.js +10 -0
  34. package/dist/homebridge-ui/public/js/devices.js.map +1 -1
  35. package/dist/homebridge-ui/public/js/devices.ts +10 -0
  36. package/dist/homebridge-ui/public/js/discovery.d.ts.map +1 -1
  37. package/dist/homebridge-ui/public/js/discovery.js +130 -4
  38. package/dist/homebridge-ui/public/js/discovery.js.map +1 -1
  39. package/dist/homebridge-ui/public/js/discovery.ts +158 -4
  40. package/dist/homebridge-ui/public/js/modals.d.ts.map +1 -1
  41. package/dist/homebridge-ui/public/js/modals.js +71 -26
  42. package/dist/homebridge-ui/public/js/modals.js.map +1 -1
  43. package/dist/homebridge-ui/public/js/modals.ts +74 -27
  44. package/dist/homebridge-ui/public/js/render.d.ts +57 -0
  45. package/dist/homebridge-ui/public/js/render.d.ts.map +1 -1
  46. package/dist/homebridge-ui/public/js/render.js +286 -13
  47. package/dist/homebridge-ui/public/js/render.js.map +1 -1
  48. package/dist/homebridge-ui/public/js/render.ts +331 -11
  49. package/dist/homebridge-ui/utils/device-migration.d.ts +35 -0
  50. package/dist/homebridge-ui/utils/device-migration.d.ts.map +1 -0
  51. package/dist/homebridge-ui/utils/device-migration.js +111 -0
  52. package/dist/homebridge-ui/utils/device-migration.js.map +1 -0
  53. package/dist/platform.js +2 -2
  54. package/dist/platform.js.map +1 -1
  55. package/docs/variables/default.html +1 -1
  56. package/package.json +1 -1
  57. package/src/device-types.ts +85 -0
  58. package/src/deviceFactory.ts +1 -0
  59. package/src/homebridge-ui/endpoints/config.ts +54 -10
  60. package/src/homebridge-ui/endpoints/devices.ts +62 -3
  61. package/src/homebridge-ui/public/css/styles.css +254 -0
  62. package/src/homebridge-ui/public/index.html +23 -168
  63. package/src/homebridge-ui/public/js/api.ts +17 -1
  64. package/src/homebridge-ui/public/js/app.ts +2 -1
  65. package/src/homebridge-ui/public/js/devices-delete.ts +124 -1
  66. package/src/homebridge-ui/public/js/devices.ts +10 -0
  67. package/src/homebridge-ui/public/js/discovery.ts +158 -4
  68. package/src/homebridge-ui/public/js/modals.ts +74 -27
  69. package/src/homebridge-ui/public/js/render.ts +331 -11
  70. package/src/homebridge-ui/utils/device-migration.ts +144 -0
  71. package/src/platform.ts +2 -2
  72. package/todo/COMPLETED.md +189 -0
  73. package/todo/README.md +59 -0
  74. package/todo/TODO.md +205 -0
  75. package/todo/mockups/filtering-sorting.svg +112 -0
  76. package/todo/mockups/modal-switchbot-theme.svg +66 -0
  77. package/todo/mockups/signal-strength-visualization.svg +94 -0
  78. package/TODO.md +0 -564
@@ -0,0 +1,254 @@
1
+ :root {
2
+ color-scheme: light dark;
3
+ --switchbot-red: #ef4444;
4
+ --switchbot-red-hover: #dc2626;
5
+ --switchbot-red-light: #fee2e2;
6
+ }
7
+
8
+ @media (prefers-color-scheme: light) {
9
+ body {
10
+ background: #f5f5f5;
11
+ color: #1a1a1a;
12
+ }
13
+ input {
14
+ background: #fff;
15
+ border-color: #ddd;
16
+ color: #1a1a1a;
17
+ }
18
+ input:focus {
19
+ border-color: #6366f1;
20
+ }
21
+ .card {
22
+ background: #fff;
23
+ border: 1px solid #ddd;
24
+ }
25
+ code {
26
+ background: #f0f0f0;
27
+ color: #1a1a1a;
28
+ }
29
+ h2 {
30
+ border-bottom-color: #ddd;
31
+ }
32
+ .status {
33
+ color: #666;
34
+ }
35
+ }
36
+
37
+ @media (prefers-color-scheme: dark) {
38
+ body {
39
+ background: #1a1a1a;
40
+ color: #fff;
41
+ }
42
+ input {
43
+ background: #2a2a2a;
44
+ border-color: #444;
45
+ color: #fff;
46
+ }
47
+ .card {
48
+ background: #2a2a2a;
49
+ }
50
+ code {
51
+ background: #333;
52
+ color: #fff;
53
+ }
54
+ h2 {
55
+ border-bottom-color: #444;
56
+ }
57
+ .status {
58
+ color: #888;
59
+ }
60
+ .device-item {
61
+ background: #333;
62
+ border: 1px solid #444;
63
+ }
64
+ }
65
+
66
+ @media (prefers-color-scheme: light) {
67
+ .device-item {
68
+ background: #f9f9f9;
69
+ border: 1px solid #e0e0e0;
70
+ }
71
+ }
72
+
73
+ body {
74
+ font-family:
75
+ system-ui,
76
+ -apple-system,
77
+ Arial;
78
+ padding: 16px;
79
+ }
80
+
81
+ h1 {
82
+ font-size: 24px;
83
+ margin-top: 0;
84
+ }
85
+
86
+ h2 {
87
+ font-size: 16px;
88
+ margin-top: 24px;
89
+ margin-bottom: 12px;
90
+ border-bottom: 1px solid;
91
+ padding-bottom: 8px;
92
+ }
93
+
94
+ ul {
95
+ padding-left: 0;
96
+ list-style: none;
97
+ }
98
+
99
+ li {
100
+ margin: 8px 0;
101
+ display: flex;
102
+ gap: 8px;
103
+ align-items: center;
104
+ }
105
+
106
+ button {
107
+ padding: 10px 20px;
108
+ background: var(--switchbot-red);
109
+ color: #fff;
110
+ border: none;
111
+ border-radius: 6px;
112
+ cursor: pointer;
113
+ font-weight: 500;
114
+ font-size: 14px;
115
+ transition: all 0.2s ease;
116
+ }
117
+
118
+ button:hover {
119
+ background: var(--switchbot-red-hover);
120
+ transform: translateY(-1px);
121
+ box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
122
+ }
123
+
124
+ button:active {
125
+ transform: translateY(0);
126
+ box-shadow: 0 2px 6px rgba(239, 68, 68, 0.2);
127
+ }
128
+
129
+ button.secondary {
130
+ background: #6b7280;
131
+ color: #fff;
132
+ }
133
+
134
+ button.secondary:hover {
135
+ background: #4b5563;
136
+ box-shadow: 0 4px 12px rgba(107, 114, 128, 0.3);
137
+ }
138
+
139
+ button.success {
140
+ background: #10b981;
141
+ }
142
+
143
+ button.success:hover {
144
+ background: #059669;
145
+ box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
146
+ }
147
+
148
+ code {
149
+ padding: 4px 6px;
150
+ border-radius: 4px;
151
+ font-family: monospace;
152
+ }
153
+
154
+ .form-group {
155
+ margin-bottom: 16px;
156
+ }
157
+
158
+ label {
159
+ display: block;
160
+ margin-bottom: 6px;
161
+ font-weight: 500;
162
+ font-size: 12px;
163
+ color: #6b7280;
164
+ }
165
+
166
+ input {
167
+ width: 100%;
168
+ max-width: 400px;
169
+ padding: 8px 10px;
170
+ border: 1px solid #d1d5db;
171
+ border-radius: 6px;
172
+ font-family: system-ui, -apple-system, monospace;
173
+ font-size: 14px;
174
+ transition: all 0.2s ease;
175
+ }
176
+
177
+ input:focus {
178
+ outline: none;
179
+ border-color: var(--switchbot-red, #ef4444);
180
+ box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
181
+ }
182
+
183
+ input:disabled,
184
+ input[readonly] {
185
+ background-color: #f9fafb;
186
+ cursor: not-allowed;
187
+ }
188
+
189
+ select {
190
+ padding: 8px 10px;
191
+ border: 1px solid #d1d5db;
192
+ border-radius: 6px;
193
+ font-family: system-ui, -apple-system, Arial;
194
+ font-size: 14px;
195
+ transition: all 0.2s ease;
196
+ cursor: pointer;
197
+ }
198
+
199
+ select:focus {
200
+ outline: none;
201
+ border-color: var(--switchbot-red, #ef4444);
202
+ box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
203
+ }
204
+
205
+ .status {
206
+ font-size: 14px;
207
+ margin-top: 4px;
208
+ }
209
+
210
+ .status.ok {
211
+ color: #10b981;
212
+ }
213
+
214
+ .error {
215
+ color: #ef4444;
216
+ }
217
+
218
+ .success-msg {
219
+ color: #10b981;
220
+ margin-top: 8px;
221
+ }
222
+
223
+ .card {
224
+ padding: 16px;
225
+ border-radius: 8px;
226
+ margin-bottom: 16px;
227
+ }
228
+
229
+ .device-item {
230
+ padding: 10px 12px;
231
+ border-radius: 6px;
232
+ margin-bottom: 6px;
233
+ display: flex;
234
+ gap: 10px;
235
+ align-items: center;
236
+ justify-content: space-between;
237
+ transition: all 0.2s ease;
238
+ }
239
+
240
+ .device-item:hover {
241
+ transform: translateY(-1px);
242
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
243
+ }
244
+
245
+ .card {
246
+ padding: 16px;
247
+ border-radius: 8px;
248
+ margin-bottom: 16px;
249
+ transition: box-shadow 0.2s ease;
250
+ }
251
+
252
+ .card:hover {
253
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
254
+ }
@@ -4,174 +4,7 @@
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width,initial-scale=1" />
6
6
  <title>SwitchBot Plugin UI</title>
7
- <style>
8
- :root {
9
- color-scheme: light dark;
10
- }
11
-
12
- @media (prefers-color-scheme: light) {
13
- body {
14
- background: #f5f5f5;
15
- color: #1a1a1a;
16
- }
17
- input {
18
- background: #fff;
19
- border-color: #ddd;
20
- color: #1a1a1a;
21
- }
22
- input:focus {
23
- border-color: #6366f1;
24
- }
25
- .card {
26
- background: #fff;
27
- border: 1px solid #ddd;
28
- }
29
- code {
30
- background: #f0f0f0;
31
- color: #1a1a1a;
32
- }
33
- h2 {
34
- border-bottom-color: #ddd;
35
- }
36
- .status {
37
- color: #666;
38
- }
39
- }
40
-
41
- @media (prefers-color-scheme: dark) {
42
- body {
43
- background: #1a1a1a;
44
- color: #fff;
45
- }
46
- input {
47
- background: #2a2a2a;
48
- border-color: #444;
49
- color: #fff;
50
- }
51
- .card {
52
- background: #2a2a2a;
53
- }
54
- code {
55
- background: #333;
56
- color: #fff;
57
- }
58
- h2 {
59
- border-bottom-color: #444;
60
- }
61
- .status {
62
- color: #888;
63
- }
64
- .device-item {
65
- background: #333;
66
- border: 1px solid #444;
67
- }
68
- }
69
-
70
- @media (prefers-color-scheme: light) {
71
- .device-item {
72
- background: #f9f9f9;
73
- border: 1px solid #e0e0e0;
74
- }
75
- }
76
-
77
- @media (prefers-color-scheme: dark) {
78
- }
79
-
80
- body {
81
- font-family:
82
- system-ui,
83
- -apple-system,
84
- Arial;
85
- padding: 16px;
86
- }
87
- h1 {
88
- font-size: 24px;
89
- margin-top: 0;
90
- }
91
- h2 {
92
- font-size: 16px;
93
- margin-top: 24px;
94
- margin-bottom: 12px;
95
- border-bottom: 1px solid;
96
- padding-bottom: 8px;
97
- }
98
- ul {
99
- padding-left: 0;
100
- list-style: none;
101
- }
102
- li {
103
- margin: 8px 0;
104
- display: flex;
105
- gap: 8px;
106
- align-items: center;
107
- }
108
- button {
109
- padding: 8px 16px;
110
- background: #6366f1;
111
- color: #fff;
112
- border: none;
113
- border-radius: 4px;
114
- cursor: pointer;
115
- }
116
- button:hover {
117
- background: #4f46e5;
118
- }
119
- button.success {
120
- background: #10b981;
121
- }
122
- code {
123
- padding: 4px 6px;
124
- border-radius: 4px;
125
- font-family: monospace;
126
- }
127
- .form-group {
128
- margin-bottom: 16px;
129
- }
130
- label {
131
- display: block;
132
- margin-bottom: 6px;
133
- font-weight: 500;
134
- }
135
- input {
136
- width: 100%;
137
- max-width: 400px;
138
- padding: 8px;
139
- border: 1px solid;
140
- border-radius: 4px;
141
- font-family: monospace;
142
- }
143
- input:focus {
144
- outline: none;
145
- }
146
- .status {
147
- font-size: 14px;
148
- margin-top: 4px;
149
- }
150
- .status.ok {
151
- color: #10b981;
152
- }
153
- .error {
154
- color: #ef4444;
155
- }
156
- .success-msg {
157
- color: #10b981;
158
- margin-top: 8px;
159
- }
160
- .card {
161
- padding: 16px;
162
- border-radius: 8px;
163
- margin-bottom: 16px;
164
- }
165
- .device-item {
166
- padding: 8px;
167
- border-radius: 4px;
168
- margin-bottom: 8px;
169
- display: flex;
170
- gap: 8px;
171
- align-items: center;
172
- justify-content: space-between;
173
- }
174
- </style>
7
+ <link rel="stylesheet" href="css/styles.css" />
175
8
  </head>
176
9
  <body>
177
10
  <h1>🤖 SwitchBot Configuration</h1>
@@ -252,6 +85,28 @@
252
85
  </p>
253
86
  <div id="status">Loading…</div>
254
87
  <ul id="devices"></ul>
88
+ <div
89
+ id="removeAllContainer"
90
+ style="
91
+ display: none;
92
+ margin-top: 16px;
93
+ padding-top: 16px;
94
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
95
+ "
96
+ >
97
+ <button
98
+ id="removeAllBtn"
99
+ style="
100
+ background: #dc2626;
101
+ width: 100%;
102
+ padding: 10px 16px;
103
+ font-size: 14px;
104
+ font-weight: 500;
105
+ "
106
+ >
107
+ 🗑️ Remove All Devices
108
+ </button>
109
+ </div>
255
110
  </div>
256
111
 
257
112
  <script type="module" src="js/app.js"></script>
@@ -9,7 +9,11 @@ export declare function addDevicesInBulk(devices: Array<{
9
9
  deviceId: string;
10
10
  name: string;
11
11
  type: string;
12
+ rssi?: number;
13
+ address?: string;
14
+ model?: string;
12
15
  }>): Promise<any>;
13
16
  export declare function updateDevice(deviceId: string, configDeviceName?: string, configDeviceType?: string): Promise<any>;
14
17
  export declare function deleteDevice(deviceId: string): Promise<any>;
18
+ export declare function deleteAllDevices(): Promise<any>;
15
19
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/api.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,CAAA;AAYnB,wBAAsB,8BAA8B,CAAC,QAAQ,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CA2CvF;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,CAe1D;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAcjF;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CASnD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAatD;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAc1F;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC/D,OAAO,CAAC,GAAG,CAAC,CAad;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,GAAG,CAAC,CAkBd;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAcjE"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/api.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,CAAA;AAYnB,wBAAsB,8BAA8B,CAAC,QAAQ,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CA2CvF;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,CAe1D;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAcjF;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CASnD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAatD;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAc1F;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAChH,OAAO,CAAC,GAAG,CAAC,CAad;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,GAAG,CAAC,CAkBd;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAcjE;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,CAcrD"}
@@ -161,4 +161,18 @@ export async function deleteDevice(deviceId) {
161
161
  throw e;
162
162
  }
163
163
  }
164
+ export async function deleteAllDevices() {
165
+ try {
166
+ uiLog.info('Sending delete all devices request');
167
+ const resp = await homebridge.request('/delete-all-devices', {});
168
+ uiLog.info('Delete all response:', resp);
169
+ if (!resp || resp.success === false) {
170
+ throw new Error(resp?.data?.message || 'Failed to delete all devices');
171
+ }
172
+ return resp.data || resp;
173
+ }
174
+ catch (e) {
175
+ throw e;
176
+ }
177
+ }
164
178
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/api.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,YAAY,CAAA;AACnB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,SAAS,yBAAyB,CAAC,KAAU;IAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC/E,OAAO,CACL,YAAY,KAAK,WAAW;WACzB,YAAY,KAAK,iCAAiC;WAClD,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CACtC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,QAAQ,GAAG,KAAK;IACnE,IAAI,CAAC;QACH,IACE,OAAO,UAAU,CAAC,eAAe,KAAK,UAAU;eAC7C,OAAO,UAAU,CAAC,kBAAkB,KAAK,UAAU,EACtD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;YAClD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;QACjE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;YAC7D,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC,eAAe,EAAE,CAAA;QAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YACrE,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;YAC9D,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAA;QACrF,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;YAC5E,OAAO,KAAK,CAAA;QACd,CAAC;QAED,kBAAkB,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAA;QACzC,MAAM,UAAU,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAA;QAEvD,wFAAwF;QACxF,IAAI,QAAQ,IAAI,OAAO,UAAU,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;YAC3C,MAAM,UAAU,CAAC,gBAAgB,EAAE,CAAA;YACnC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;QACzC,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,4CAA4C,EAAE,CAAC,CAAC,CAAA;QAC3D,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;QACzD,KAAK,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAA;QAE9C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACpC,KAAK,CAAC,KAAK,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAA;YAChD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;IACxB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAa,EAAE,MAAc;IACjE,IAAI,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QACnC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACxE,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;QAElC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,IAAI,aAAa,CAAC,CAAA;QACjD,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;IAC1B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QACrD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI,gBAAgB,CAAC,CAAA;QAAC,CAAC;QACjG,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;IACxB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAA;QACzC,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QACtD,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;QAEtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI,kBAAkB,CAAC,CAAA;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;IACxB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,IAAY,EAAE,IAAY;IAC1E,IAAI,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAChE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9E,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,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;IAC1B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAiH;IAEjH,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;QAClE,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;QAEtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI,iBAAiB,CAAC,CAAA;QAC3D,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;IAC1B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAgB,EAChB,gBAAyB,EACzB,gBAAyB;IAEzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAQ,EAAE,QAAQ,EAAE,CAAA;QAChC,IAAI,gBAAgB,EAAE,CAAC;YAAC,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QAAC,CAAC;QACpE,IAAI,gBAAgB,EAAE,CAAC;YAAC,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QAAC,CAAC;QAEpE,KAAK,CAAC,IAAI,CAAC,qDAAqD,EAAE,MAAM,CAAC,CAAA;QACzE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;QAC/D,KAAK,CAAC,IAAI,CAAC,kCAAkC,EAAE,IAAI,CAAC,CAAA;QAEpD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC,CAAA;QACnE,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;IAC1B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,IAAI,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,sCAAsC,EAAE,QAAQ,CAAC,CAAA;QAC5D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QACrE,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC,CAAA;QACnE,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;IAC1B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;QAChE,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,8BAA8B,CAAC,CAAA;QACxE,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;IAC1B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC"}
@@ -132,7 +132,7 @@ export async function addDevice(deviceId: string, name: string, type: string): P
132
132
  }
133
133
 
134
134
  export async function addDevicesInBulk(
135
- devices: Array<{ deviceId: string, name: string, type: string }>,
135
+ devices: Array<{ deviceId: string, name: string, type: string, rssi?: number, address?: string, model?: string }>,
136
136
  ): Promise<any> {
137
137
  try {
138
138
  const resp = await homebridge.request('/add-devices', { devices })
@@ -187,3 +187,19 @@ export async function deleteDevice(deviceId: string): Promise<any> {
187
187
  throw e
188
188
  }
189
189
  }
190
+
191
+ export async function deleteAllDevices(): Promise<any> {
192
+ try {
193
+ uiLog.info('Sending delete all devices request')
194
+ const resp = await homebridge.request('/delete-all-devices', {})
195
+ uiLog.info('Delete all response:', resp)
196
+
197
+ if (!resp || resp.success === false) {
198
+ throw new Error(resp?.data?.message || 'Failed to delete all devices')
199
+ }
200
+
201
+ return resp.data || resp
202
+ } catch (e) {
203
+ throw e
204
+ }
205
+ }