@switchbot/homebridge-switchbot 5.1.0-beta.4 → 5.1.0-beta.6
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/dist/homebridge-ui/public/index.html +24 -5
- package/dist/homebridge-ui/public/js/advanced-settings.d.ts.map +1 -1
- package/dist/homebridge-ui/public/js/advanced-settings.js +4 -3
- package/dist/homebridge-ui/public/js/advanced-settings.js.map +1 -1
- package/dist/homebridge-ui/public/js/advanced-settings.ts +4 -3
- package/dist/homebridge-ui/public/js/app.js +31 -5
- package/dist/homebridge-ui/public/js/app.js.map +2 -2
- package/dist/homebridge-ui/public/js/app.ts +25 -0
- package/dist/homebridge-ui/public/js/credentials.d.ts.map +1 -1
- package/dist/homebridge-ui/public/js/credentials.js +11 -5
- package/dist/homebridge-ui/public/js/credentials.js.map +1 -1
- package/dist/homebridge-ui/public/js/credentials.ts +11 -5
- package/dist/homebridge-ui/public/js/legacy-view.js +4 -4
- package/docs/variables/default.html +1 -1
- package/package.json +1 -1
- package/src/homebridge-ui/public/index.html +22 -3
- package/src/homebridge-ui/public/js/advanced-settings.ts +4 -3
- package/src/homebridge-ui/public/js/app.ts +25 -0
- package/src/homebridge-ui/public/js/credentials.ts +11 -5
- package/src/homebridge-ui/public/js/legacy-view.js +4 -4
|
@@ -11,10 +11,29 @@
|
|
|
11
11
|
<body>
|
|
12
12
|
|
|
13
13
|
<h1>🤖 SwitchBot Configuration</h1>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
|
|
15
|
+
<!-- ...existing code... -->
|
|
16
|
+
|
|
17
|
+
<!-- Centered legacy view button at the bottom -->
|
|
18
|
+
<div class="centered-toggle-btn">
|
|
19
|
+
<button id="legacyViewBtn" onclick="enableLegacyView()">Legacy View</button>
|
|
20
|
+
<button id="dynamicViewBtn" onclick="disableLegacyView()" style="display: none;">Dynamic View</button>
|
|
17
21
|
</div>
|
|
22
|
+
<style>
|
|
23
|
+
.centered-toggle-btn {
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: row;
|
|
26
|
+
justify-content: center;
|
|
27
|
+
align-items: center;
|
|
28
|
+
margin-top: 32px;
|
|
29
|
+
margin-bottom: 12px;
|
|
30
|
+
gap: 12px;
|
|
31
|
+
}
|
|
32
|
+
#legacyViewBtn, #dynamicViewBtn {
|
|
33
|
+
font-size: 12px;
|
|
34
|
+
padding: 4px 10px;
|
|
35
|
+
}
|
|
36
|
+
</style>
|
|
18
37
|
|
|
19
38
|
<div id="dynamicUiContainer">
|
|
20
39
|
|
|
@@ -243,8 +262,8 @@
|
|
|
243
262
|
</div>
|
|
244
263
|
</div>
|
|
245
264
|
|
|
246
|
-
<script type="module" src="js/app.js?v=
|
|
247
|
-
<script type="module" src="js/advanced-settings.js?v=
|
|
265
|
+
<script type="module" src="js/app.js?v=c130b117"></script>
|
|
266
|
+
<script type="module" src="js/advanced-settings.js?v=031779bb"></script>
|
|
248
267
|
<script type="module" src="js/legacy-view.js"></script>
|
|
249
268
|
</body>
|
|
250
269
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advanced-settings.d.ts","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/advanced-settings.ts"],"names":[],"mappings":"AAGA,iBAAe,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+BnD;AAED,iBAAe,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"advanced-settings.d.ts","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/advanced-settings.ts"],"names":[],"mappings":"AAGA,iBAAe,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+BnD;AAED,iBAAe,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgDnD"}
|
|
@@ -46,10 +46,11 @@ async function saveAdvancedSettings() {
|
|
|
46
46
|
if (!Array.isArray(pluginConfigBlocks) || !pluginConfigBlocks.length) {
|
|
47
47
|
throw new Error('No plugin config blocks returned from Homebridge');
|
|
48
48
|
}
|
|
49
|
-
// Find the SwitchBot config block
|
|
50
|
-
|
|
49
|
+
// Find or add the SwitchBot config block
|
|
50
|
+
let idx = pluginConfigBlocks.findIndex(c => (c.platform || c.name || '').toLowerCase().includes('switchbot'));
|
|
51
51
|
if (idx === -1) {
|
|
52
|
-
|
|
52
|
+
pluginConfigBlocks.push({ platform: 'SwitchBot' });
|
|
53
|
+
idx = pluginConfigBlocks.length - 1;
|
|
53
54
|
}
|
|
54
55
|
const config = pluginConfigBlocks[idx];
|
|
55
56
|
// Update config values from UI
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advanced-settings.js","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/advanced-settings.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"advanced-settings.js","sourceRoot":"","sources":["../../../../src/homebridge-ui/public/js/advanced-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,10 +46,11 @@ async function saveAdvancedSettings(): Promise<void> {
|
|
|
46
46
|
if (!Array.isArray(pluginConfigBlocks) || !pluginConfigBlocks.length) {
|
|
47
47
|
throw new Error('No plugin config blocks returned from Homebridge')
|
|
48
48
|
}
|
|
49
|
-
// Find the SwitchBot config block
|
|
50
|
-
|
|
49
|
+
// Find or add the SwitchBot config block
|
|
50
|
+
let idx = pluginConfigBlocks.findIndex(c => (c.platform || c.name || '').toLowerCase().includes('switchbot'))
|
|
51
51
|
if (idx === -1) {
|
|
52
|
-
|
|
52
|
+
pluginConfigBlocks.push({ platform: 'SwitchBot' })
|
|
53
|
+
idx = pluginConfigBlocks.length - 1
|
|
53
54
|
}
|
|
54
55
|
const config = pluginConfigBlocks[idx]
|
|
55
56
|
// Update config values from UI
|
|
@@ -3766,14 +3766,19 @@ async function saveCredentials2() {
|
|
|
3766
3766
|
if (typeof homebridge.getPluginConfig !== "function" || typeof homebridge.updatePluginConfig !== "function") {
|
|
3767
3767
|
throw new TypeError("Homebridge UI API not available");
|
|
3768
3768
|
}
|
|
3769
|
-
|
|
3770
|
-
if (!Array.isArray(configArr)
|
|
3771
|
-
|
|
3769
|
+
let configArr = await homebridge.getPluginConfig();
|
|
3770
|
+
if (!Array.isArray(configArr)) {
|
|
3771
|
+
configArr = [];
|
|
3772
3772
|
}
|
|
3773
|
-
|
|
3773
|
+
let idx = configArr.findIndex((c) => (c.platform || c.name || "").toLowerCase() === "switchbot");
|
|
3774
|
+
if (idx === -1) {
|
|
3775
|
+
configArr.push({ platform: "SwitchBot" });
|
|
3776
|
+
idx = configArr.length - 1;
|
|
3777
|
+
}
|
|
3778
|
+
const config = configArr[idx];
|
|
3774
3779
|
config.openApiToken = token;
|
|
3775
3780
|
config.openApiSecret = secret;
|
|
3776
|
-
await homebridge.updatePluginConfig(
|
|
3781
|
+
await homebridge.updatePluginConfig(configArr);
|
|
3777
3782
|
if (typeof homebridge.savePluginConfig === "function") {
|
|
3778
3783
|
await homebridge.savePluginConfig();
|
|
3779
3784
|
}
|
|
@@ -3803,6 +3808,26 @@ async function saveCredentials2() {
|
|
|
3803
3808
|
// src/homebridge-ui/public/js/app.ts
|
|
3804
3809
|
init_devices();
|
|
3805
3810
|
init_discovery();
|
|
3811
|
+
async function ensureSwitchBotConfigBlock() {
|
|
3812
|
+
try {
|
|
3813
|
+
if (typeof homebridge.getPluginConfig !== "function" || typeof homebridge.updatePluginConfig !== "function") {
|
|
3814
|
+
return;
|
|
3815
|
+
}
|
|
3816
|
+
let configArr = await homebridge.getPluginConfig();
|
|
3817
|
+
if (!Array.isArray(configArr)) {
|
|
3818
|
+
configArr = [];
|
|
3819
|
+
}
|
|
3820
|
+
const idx = configArr.findIndex((c) => (c.platform || c.name || "").toLowerCase().includes("switchbot"));
|
|
3821
|
+
if (idx === -1) {
|
|
3822
|
+
configArr.push({ platform: "SwitchBot" });
|
|
3823
|
+
await homebridge.updatePluginConfig(configArr);
|
|
3824
|
+
if (typeof homebridge.savePluginConfig === "function") {
|
|
3825
|
+
await homebridge.savePluginConfig();
|
|
3826
|
+
}
|
|
3827
|
+
}
|
|
3828
|
+
} catch (_e) {
|
|
3829
|
+
}
|
|
3830
|
+
}
|
|
3806
3831
|
window.loadCredentialStatus = loadCredentialStatus;
|
|
3807
3832
|
window.saveCredentials = saveCredentials2;
|
|
3808
3833
|
window.discoverDevices = discoverDevices2;
|
|
@@ -3817,6 +3842,7 @@ async function checkV4Config() {
|
|
|
3817
3842
|
}
|
|
3818
3843
|
}
|
|
3819
3844
|
async function init() {
|
|
3845
|
+
await ensureSwitchBotConfigBlock();
|
|
3820
3846
|
await checkV4Config();
|
|
3821
3847
|
await loadCredentialStatus();
|
|
3822
3848
|
await initializeDiscoverySettings();
|