homebridge-dyson-solarcycle-morph 0.2.0 → 0.2.1
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/CHANGELOG.md +11 -0
- package/homebridge-ui/public/index.html +15 -10
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,17 @@ All notable changes to this project are documented here.
|
|
|
5
5
|
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.1] — 2026-09-17
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- The settings page shows the auth code field alongside the request and submit
|
|
13
|
+
buttons, rather than revealing it once a code has been requested. Someone who
|
|
14
|
+
already has a code in their inbox can type it straight in, and the step no
|
|
15
|
+
longer looks incomplete.
|
|
16
|
+
- Clearing the password no longer prints a notice explaining that the field is
|
|
17
|
+
now empty, next to the field that is now empty.
|
|
18
|
+
|
|
8
19
|
## [0.2.0] — 2026-09-17
|
|
9
20
|
|
|
10
21
|
Identical in content to 0.1.0. Published from CI rather than from a developer's
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
.morph-hint { font-size: .8rem; opacity: .7; }
|
|
17
17
|
.morph-link { background: none; border: 0; padding: 0; font-size: .85rem;
|
|
18
18
|
text-decoration: underline; cursor: pointer; color: inherit; opacity: .75; }
|
|
19
|
+
.morph-row { display: flex; gap: .5rem; align-items: flex-start; }
|
|
20
|
+
.morph-row input { flex: 1 1 auto; min-width: 0; }
|
|
21
|
+
.morph-row .btn { flex: 0 0 auto; white-space: nowrap; }
|
|
19
22
|
</style>
|
|
20
23
|
|
|
21
24
|
<div id="morph">
|
|
@@ -44,18 +47,22 @@
|
|
|
44
47
|
</div>
|
|
45
48
|
|
|
46
49
|
<div id="morph-auth">
|
|
50
|
+
<div id="morph-needs-lights" class="alert alert-warning morph-hidden">
|
|
51
|
+
Add a light below first — pairing fetches a key for each one, so there has to be
|
|
52
|
+
something to fetch it for.
|
|
53
|
+
</div>
|
|
47
54
|
<div id="morph-lamps-work" class="alert alert-info morph-hidden">
|
|
48
55
|
Your lights already have their keys and will work without this. Authorising again is only
|
|
49
56
|
needed to add a light or re-pair one.
|
|
50
57
|
</div>
|
|
51
|
-
<
|
|
52
|
-
|
|
53
|
-
<div class="
|
|
54
|
-
<
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
<div class="form-group mb-0">
|
|
59
|
+
<label for="morph-otp">Auth code</label>
|
|
60
|
+
<div class="morph-row">
|
|
61
|
+
<input type="text" class="form-control" id="morph-otp"
|
|
62
|
+
autocomplete="one-time-code" placeholder="from the Dyson email">
|
|
63
|
+
<button type="button" class="btn btn-secondary" id="morph-request">Request code</button>
|
|
64
|
+
<button type="button" class="btn btn-primary" id="morph-verify">Submit</button>
|
|
57
65
|
</div>
|
|
58
|
-
<button type="button" class="btn btn-primary" id="morph-verify">Authorise</button>
|
|
59
66
|
</div>
|
|
60
67
|
</div>
|
|
61
68
|
|
|
@@ -176,7 +183,6 @@
|
|
|
176
183
|
*/
|
|
177
184
|
function showAuthorised(created, devices) {
|
|
178
185
|
$('morph-auth').classList.add('morph-hidden');
|
|
179
|
-
$('morph-code').classList.add('morph-hidden');
|
|
180
186
|
$('morph-done').classList.remove('morph-hidden');
|
|
181
187
|
$('morph-find').disabled = false;
|
|
182
188
|
const parts = [];
|
|
@@ -296,7 +302,6 @@
|
|
|
296
302
|
}
|
|
297
303
|
const { message } = await homebridge.request('/start-auth', { account: stored });
|
|
298
304
|
show(message, 'success');
|
|
299
|
-
$('morph-code').classList.remove('morph-hidden');
|
|
300
305
|
$('morph-otp').focus();
|
|
301
306
|
}));
|
|
302
307
|
|
|
@@ -373,8 +378,8 @@
|
|
|
373
378
|
delete configs[0].dysonAccount.password;
|
|
374
379
|
await homebridge.updatePluginConfig(configs);
|
|
375
380
|
$('morph-password').value = '';
|
|
381
|
+
// The button disappearing says it happened; a notice would only repeat that.
|
|
376
382
|
refreshPasswordButton();
|
|
377
|
-
show('Password cleared. Press Save to write that to config.json. Enter it again only if you need to authorise afresh.', 'success');
|
|
378
383
|
})());
|
|
379
384
|
|
|
380
385
|
for (const id of ['morph-email', 'morph-password', 'morph-country']) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-dyson-solarcycle-morph",
|
|
3
3
|
"displayName": "Dyson Solarcycle Morph",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.1",
|
|
5
5
|
"description": "Homebridge plugin for the Bluetooth LE controlled Dyson Solarcycle/Lightcycle Morph task light",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "Oliver Rummeyer",
|