homebridge-generac 0.1.0-beta.1 → 1.0.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 +27 -0
- package/README.md +17 -9
- package/SECURITY.md +5 -0
- package/config.schema.json +1 -1
- package/dist/auth.d.ts +15 -1
- package/dist/auth.js +52 -9
- package/dist/auth.js.map +1 -1
- package/dist/cli.js +30 -10
- package/dist/cli.js.map +1 -1
- package/dist/exercise.d.ts +7 -4
- package/dist/exercise.js +7 -4
- package/dist/exercise.js.map +1 -1
- package/dist/platform.js +1 -1
- package/dist/platform.js.map +1 -1
- package/homebridge-ui/public/generac.css +3 -6
- package/homebridge-ui/public/index.css +3 -53
- package/homebridge-ui/public/js/copy.js +5 -3
- package/homebridge-ui/public/js/dom.js +4 -2
- package/homebridge-ui/public/js/main.js +1 -1
- package/homebridge-ui/public/js/sections/settings.js +23 -4
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,33 @@ All notable changes to homebridge-generac are listed here. The format follows Ke
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## 1.0.1 (September 26, 2026)
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- The exercise watch window now opens 10 minutes before the exercise time instead of 2, and still closes 20 minutes after it, so the plugin checks at the faster interval for 30 minutes a day. Mobile Link can report a later time than the one the generator keeps: one unit starts at 10:00 while Mobile Link says 10:05. With the prefilled time, the first minutes of the exercise were missed and the Exercising sensor only opened later, when Mobile Link recorded the finished exercise. Now the window opens at 9:55 for that unit.
|
|
12
|
+
- The intro on the settings page and at the top of the plugin's configuration lists the Exercising sensor and no longer promises a propane tank level.
|
|
13
|
+
- Propane tank monitors on the account are listed on the settings page and in the Homebridge log as not supported. Propane support is on hold with no planned release, so the plugin no longer says tank level support is coming.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- `homebridge-generac login` no longer shows the sign-in code or state in the terminal. Every redirect it prints shows REDACTED in place of the code, the state and any token, and a failed token request shows only the error and its description.
|
|
18
|
+
- `homebridge-generac login` no longer writes debug files to the folder you run it from when a sign-in step fails. It prints the step, the HTTP status and the error code instead. The new `--debug` option also saves the page, with codes, state and tokens redacted, to `homebridge-generac/debug/` in the Homebridge storage folder (mode 600).
|
|
19
|
+
|
|
20
|
+
## 1.0.0 (September 25, 2026)
|
|
21
|
+
|
|
22
|
+
First stable release, after a soak of the beta on a live install since September 16, 2026.
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
|
|
26
|
+
- Node 24 support. The plugin runs on Node 20, 22 and 24, and CI tests all three.
|
|
27
|
+
- After Confirm, the Reset dialog is replaced in place by a done state that says to click Save and restart Homebridge, and the Reset link is hidden until the page reloads.
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
|
|
31
|
+
- The Reset dialog in the Homebridge UI dark theme: it now uses the host's card colours instead of a white panel.
|
|
32
|
+
- The Reset confirmation accepts RESET in any case.
|
|
33
|
+
|
|
7
34
|
## 0.1.0-beta.1 (September 15, 2026)
|
|
8
35
|
|
|
9
36
|
First beta of Generac for Homebridge, a ground-up successor to homebridge-mobilelink.
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Do not claim it. Once the plugin is verified, replace this comment with the badg
|
|
|
6
6
|
[](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
|
-
[](https://www.npmjs.com/package/homebridge-generac)
|
|
10
10
|
[](https://www.npmjs.com/package/homebridge-generac)
|
|
11
11
|
[](LICENSE)
|
|
12
12
|
[](https://github.com/arodbuilds/homebridge-generac/actions/workflows/build.yml)
|
|
@@ -15,7 +15,7 @@ A [Homebridge](https://homebridge.io) plugin that shows the standby generators o
|
|
|
15
15
|
|
|
16
16
|
Not affiliated with or endorsed by Generac Power Systems, Inc. Generac and Mobile Link are its trademarks. Uses Generac's undocumented Mobile Link API, which can change without notice.
|
|
17
17
|
|
|
18
|
-
> **Status:**
|
|
18
|
+
> **Status:** 1.0.1, released September 26, 2026.
|
|
19
19
|
|
|
20
20
|
## Contents
|
|
21
21
|
|
|
@@ -37,16 +37,16 @@ Not affiliated with or endorsed by Generac Power Systems, Inc. Generac and Mobil
|
|
|
37
37
|
## Requirements
|
|
38
38
|
|
|
39
39
|
- Homebridge 1.8 or 2.x, with the Homebridge UI for the settings page.
|
|
40
|
-
- Node 20 or
|
|
40
|
+
- Node 20, 22 or 24.
|
|
41
41
|
- A Generac Mobile Link account with at least one generator on it.
|
|
42
42
|
- If the account predates April 21, 2026, a password reset since then. Generac moved Mobile Link sign-in to a new system on that date and did not carry older passwords across, so an older password is rejected until it is reset in the Mobile Link app.
|
|
43
43
|
|
|
44
44
|
## Install
|
|
45
45
|
|
|
46
|
-
Search for "Generac" under Plugins in the Homebridge UI and install
|
|
46
|
+
Search for "Generac" under Plugins in the Homebridge UI and install it, or from a shell on the Homebridge host:
|
|
47
47
|
|
|
48
48
|
```shell
|
|
49
|
-
npm i -g homebridge-generac
|
|
49
|
+
npm i -g homebridge-generac
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
Then open the plugin's settings from the Plugins page. Everything in the setup below happens on that page. The host's Save button writes config.json and Homebridge restarts the plugin.
|
|
@@ -120,7 +120,7 @@ Every sensor also reports Status Active, which is off while the unit is not resp
|
|
|
120
120
|
## How it works
|
|
121
121
|
|
|
122
122
|
- **Polling.** While every generator is ready and quiet the plugin checks Mobile Link every 10 minutes (Poll interval while idle, minimum 2). While any generator is running, exercising or in fault it checks every 90 seconds (Poll interval while running or in fault, minimum 60). Mobile Link itself updates every few minutes and limits how often an account can be checked, so faster settings rarely help.
|
|
123
|
-
- **The exercise watch window.** Around the exercise time, from
|
|
123
|
+
- **The exercise watch window.** Around the exercise time, from 10 minutes before it until 20 minutes after it, every day, the plugin checks at the faster interval so a live exercise is likely to be seen rather than only detected afterwards. The window opens early because Mobile Link can report a slightly later time than the one the generator keeps: one unit starts at 10:00 while Mobile Link says 10:05, so the prefilled time still covers the start.
|
|
124
124
|
- **Backoff.** When a check fails, the plugin waits longer between tries, doubling from the fast interval up to 30 minutes with some jitter. After three failures in a row the sensors show Not responding until a check succeeds.
|
|
125
125
|
- **Sign-in.** The plugin signs in once, from the settings page, and keeps only a refresh token. Access tokens are refreshed shortly before they expire; the plugin never signs in again on its own and never needs the password after the first time.
|
|
126
126
|
- **After a password change.** Changing the Mobile Link password revokes the refresh token. The plugin then enters Reconnect needed: it logs once, marks the sensors as not responding, turns the Attention needed sensor on if enabled, and retries hourly in case access comes back. Click Reconnect on the settings page and sign in again; nothing else changes.
|
|
@@ -132,6 +132,7 @@ Every sensor also reports Status Active, which is off while the unit is not resp
|
|
|
132
132
|
- The password is never stored. It is used once to sign in from the settings page (or the `homebridge-generac login` command) and then forgotten.
|
|
133
133
|
- `homebridge-generac/state.json` holds what the settings page shows: the account state, each generator's last status, and when the plugin last checked. No tokens.
|
|
134
134
|
- With Debug logging on, every status change writes the raw Mobile Link payload for the generator to `homebridge-generac/captures/`, keeping the newest 10, so a real payload can be shared as a test fixture. Captures never contain tokens.
|
|
135
|
+
- `homebridge-generac/debug/` exists only if you ran `homebridge-generac login --debug` and a sign-in step failed. It holds the page Mobile Link's sign-in service returned, with codes, state and tokens replaced by REDACTED (mode 600). Without `--debug`, the command writes no such file, and it never writes to the folder you run it from.
|
|
135
136
|
- The log never contains passwords, tokens, keys or one-time codes, at any log level.
|
|
136
137
|
- Nothing is sent anywhere but Generac. The plugin talks to Generac's sign-in service and the Mobile Link API and to nothing else.
|
|
137
138
|
- To remove everything, use Reset plugin to fresh install on the settings page, or delete the `homebridge-generac` folder in the Homebridge storage folder.
|
|
@@ -145,12 +146,12 @@ Every sensor also reports Status Active, which is off while the unit is not resp
|
|
|
145
146
|
- **The card stays on Checking.** Homebridge picks up a new sign-in within a minute without a restart. If the card has not changed after two minutes, restart Homebridge from Power Options.
|
|
146
147
|
- **Reconnect needed.** Mobile Link signed the plugin out. This happens after a password change or if Generac revokes access. Click Reconnect and sign in again; the generators and their sensors stay as they were. The Attention needed sensor, if enabled, is on until you do.
|
|
147
148
|
- **Not responding.** The generator has not reported to Mobile Link recently (a Wi-Fi drop is the usual cause), or the plugin has not been able to reach Mobile Link for three checks in a row. The card shows when the unit was last heard from; the sensors report Status Active off and keep their last values. It is not a fault unless Treat a lost connection as a fault is on.
|
|
148
|
-
- **No generators yet.** They appear within a minute of connecting. If the account holds only a propane tank monitor or a linked ecobee thermostat, the settings page says so under Generators: tank monitors are
|
|
149
|
+
- **No generators yet.** They appear within a minute of connecting. If the account holds only a propane tank monitor or a linked ecobee thermostat, the settings page says so under Generators: tank monitors are not supported, and ecobee thermostats are already native HomeKit devices and are skipped.
|
|
149
150
|
- **The generator exercised but the sensor did not open.** The sensor also opens retroactively when Mobile Link records the finished exercise, usually within the next idle poll. Check Exercise time under Advanced; the plugin checks more often around that time every day.
|
|
150
151
|
|
|
151
152
|
## Development
|
|
152
153
|
|
|
153
|
-
Node 20 or
|
|
154
|
+
Node 20, 22 or 24. Clone the repository, then:
|
|
154
155
|
|
|
155
156
|
```shell
|
|
156
157
|
npm ci
|
|
@@ -161,7 +162,14 @@ npm test
|
|
|
161
162
|
|
|
162
163
|
To try a build on a Homebridge host, symlink the clone into the global plugin path, for example `ln -s ~/homebridge-generac "$(npm root -g)/homebridge-generac"`, then restart Homebridge. The settings page is TypeScript under `homebridge-ui/src/`, compiled to `homebridge-ui/public/js/` by the build; its server side is compiled from `src/ui/` and started by `homebridge-ui/server.js`. [SPEC.md](SPEC.md) is the source of truth for behaviour, naming, configuration and the page's copy.
|
|
163
164
|
|
|
164
|
-
The `homebridge-generac status` command prints the account and generator state from a terminal, and `homebridge-generac login` signs in without the settings page
|
|
165
|
+
The `homebridge-generac status` command prints the account and generator state from a terminal, and `homebridge-generac login` signs in without the settings page:
|
|
166
|
+
|
|
167
|
+
```shell
|
|
168
|
+
homebridge-generac login [--out file] [--debug]
|
|
169
|
+
homebridge-generac status [--creds file]
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Run `login` as the user Homebridge runs as, so the credentials land in `homebridge-generac/credentials.json` in its storage folder (or at `--out`). The redirects it prints show their shape only: the sign-in code, state and any token read `REDACTED`. When a sign-in step fails, `login` prints the step, the HTTP status and the sign-in service's error code. Add `--debug` to also save the page that step returned, redacted the same way, to `homebridge-generac/debug/<step>-<status>.html` next to the credentials (mode 600), for a bug report. Nothing is written to the folder you run it from.
|
|
165
173
|
|
|
166
174
|
## Credits
|
|
167
175
|
|
package/SECURITY.md
CHANGED
package/config.schema.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"pluginAlias": "Generac",
|
|
3
3
|
"pluginType": "platform",
|
|
4
4
|
"singular": true,
|
|
5
|
-
"headerDisplay": "Generac for Homebridge shows the standby generators on your Mobile Link account in the Home app. Each generator appears as a Running sensor, a Fault sensor, a Maintenance Due sensor and a starting battery reading.
|
|
5
|
+
"headerDisplay": "Generac for Homebridge shows the standby generators on your Mobile Link account in the Home app. Each generator appears as a Running sensor, a Fault sensor, a Maintenance Due sensor, an Exercising sensor and a starting battery reading. Not affiliated with or endorsed by Generac Power Systems, Inc. Generac and Mobile Link are its trademarks. Uses Generac's undocumented Mobile Link API, which can change without notice.",
|
|
6
6
|
"schema": {
|
|
7
7
|
"type": "object",
|
|
8
8
|
"required": [
|
package/dist/auth.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export interface LoginOptions {
|
|
|
19
19
|
mfaPrompt: (type: MfaType, attempt: number) => Promise<string>;
|
|
20
20
|
/** Optional step logger for diagnostics. Never receives secrets. */
|
|
21
21
|
log?: (step: string, message: string) => void;
|
|
22
|
-
/** Optional sink for the HTML of a failed step. */
|
|
22
|
+
/** Optional sink for the HTML of a failed step, as the server sent it: pass it through `redactBody()` before it is written anywhere. */
|
|
23
23
|
onFailureBody?: (step: string, status: number, body: string) => void;
|
|
24
24
|
}
|
|
25
25
|
export interface LoginResult {
|
|
@@ -35,6 +35,20 @@ export declare class AuthError extends Error {
|
|
|
35
35
|
export declare class InvalidGrantError extends AuthError {
|
|
36
36
|
constructor(message: string);
|
|
37
37
|
}
|
|
38
|
+
/** Parameters whose values never reach a log line, an error message or a debug file. */
|
|
39
|
+
export declare const REDACTED_KEYS: string[];
|
|
40
|
+
/**
|
|
41
|
+
* A URL or Location header with the values of `code`, `state`, `nonce`, `code_challenge`, `code_verifier`,
|
|
42
|
+
* `id_token`, `access_token` and `refresh_token` replaced by REDACTED, in the query and in a `#fragment`. The key
|
|
43
|
+
* names stay, so a log line still shows the shape of the redirect. Relative and app-scheme URLs work too.
|
|
44
|
+
*/
|
|
45
|
+
export declare function redactUrl(url: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* An HTML page (a failed sign-in step) with the same rules as `redactUrl()` applied to every URL in it, plus the
|
|
48
|
+
* same keys as hidden form fields (`<input name="state" value="…">`) and as JSON fields, and anything shaped
|
|
49
|
+
* like a JWT. Used before the CLI writes a debug file.
|
|
50
|
+
*/
|
|
51
|
+
export declare function redactBody(body: string): string;
|
|
38
52
|
export declare class DPoPKey {
|
|
39
53
|
private readonly privateKey;
|
|
40
54
|
readonly jwk: {
|
package/dist/auth.js
CHANGED
|
@@ -58,6 +58,49 @@ function truncate(s, n = 160) {
|
|
|
58
58
|
return s.length > n ? s.slice(0, n) + '…' : s;
|
|
59
59
|
}
|
|
60
60
|
// ---------------------------------------------------------------------------
|
|
61
|
+
// Redaction (SPEC section 12): sign-in redirects carry the authorization code and state
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
/** Parameters whose values never reach a log line, an error message or a debug file. */
|
|
64
|
+
export const REDACTED_KEYS = ['code', 'state', 'nonce', 'code_challenge', 'code_verifier', 'id_token', 'access_token', 'refresh_token'];
|
|
65
|
+
const KEYS = REDACTED_KEYS.join('|');
|
|
66
|
+
// A key right after `?`, `&`, `#` or the `;` of an HTML `&`, so `code_challenge_method` and `client_id` are left alone.
|
|
67
|
+
const PARAM = new RegExp(`([?&#;])(${KEYS})=[^&#\\s"'<>]*`, 'gi');
|
|
68
|
+
const INPUT_TAG = /<input\b[^>]*>/gi;
|
|
69
|
+
const INPUT_NAME = new RegExp(`\\bname\\s*=\\s*(["']?)(${KEYS})\\1(?=[\\s/>])`, 'i');
|
|
70
|
+
const INPUT_VALUE = /(\bvalue\s*=\s*)(["'])[^"']*\2/i;
|
|
71
|
+
const JSON_FIELD = new RegExp(`(["'])(${KEYS})\\1(\\s*:\\s*)(["'])[^"']*\\4`, 'gi');
|
|
72
|
+
const JWT = /\beyJ[\w-]+\.[\w-]+\.[\w-]*/g;
|
|
73
|
+
/**
|
|
74
|
+
* A URL or Location header with the values of `code`, `state`, `nonce`, `code_challenge`, `code_verifier`,
|
|
75
|
+
* `id_token`, `access_token` and `refresh_token` replaced by REDACTED, in the query and in a `#fragment`. The key
|
|
76
|
+
* names stay, so a log line still shows the shape of the redirect. Relative and app-scheme URLs work too.
|
|
77
|
+
*/
|
|
78
|
+
export function redactUrl(url) {
|
|
79
|
+
return url.replace(PARAM, '$1$2=REDACTED');
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* An HTML page (a failed sign-in step) with the same rules as `redactUrl()` applied to every URL in it, plus the
|
|
83
|
+
* same keys as hidden form fields (`<input name="state" value="…">`) and as JSON fields, and anything shaped
|
|
84
|
+
* like a JWT. Used before the CLI writes a debug file.
|
|
85
|
+
*/
|
|
86
|
+
export function redactBody(body) {
|
|
87
|
+
return redactUrl(body)
|
|
88
|
+
.replace(INPUT_TAG, (tag) => (INPUT_NAME.test(tag) ? tag.replace(INPUT_VALUE, '$1$2REDACTED$2') : tag))
|
|
89
|
+
.replace(JSON_FIELD, '$1$2$1$3$4REDACTED$4')
|
|
90
|
+
.replace(JWT, 'REDACTED');
|
|
91
|
+
}
|
|
92
|
+
/** Only `error` and `error_description` from a token endpoint answer, for an error message. Never the whole payload. */
|
|
93
|
+
function oauthError(payload) {
|
|
94
|
+
const fields = {};
|
|
95
|
+
for (const k of ['error', 'error_description']) {
|
|
96
|
+
const v = payload[k];
|
|
97
|
+
if (typeof v === 'string') {
|
|
98
|
+
fields[k] = v;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return Object.keys(fields).length > 0 ? ` ${JSON.stringify(fields)}` : '';
|
|
102
|
+
}
|
|
103
|
+
// ---------------------------------------------------------------------------
|
|
61
104
|
// DPoP key
|
|
62
105
|
// ---------------------------------------------------------------------------
|
|
63
106
|
export class DPoPKey {
|
|
@@ -172,7 +215,7 @@ async function stepAuthorize(ctx, key, state, challenge) {
|
|
|
172
215
|
return fail(ctx, 'authorize', res);
|
|
173
216
|
}
|
|
174
217
|
const loc = res.headers.get('location') ?? '';
|
|
175
|
-
log(ctx, 'authorize', `302 -> ${truncate(loc)}`);
|
|
218
|
+
log(ctx, 'authorize', `302 -> ${truncate(redactUrl(loc))}`);
|
|
176
219
|
const next = absolute(loc).searchParams.get('state');
|
|
177
220
|
if (!next) {
|
|
178
221
|
throw new AuthError('authorize: no state in redirect', 'authorize');
|
|
@@ -195,7 +238,7 @@ async function postForm(ctx, step, url, state, form) {
|
|
|
195
238
|
return fail(ctx, step, res);
|
|
196
239
|
}
|
|
197
240
|
const loc = res.headers.get('location') ?? '';
|
|
198
|
-
log(ctx, step, `302 -> ${truncate(loc)}`);
|
|
241
|
+
log(ctx, step, `302 -> ${truncate(redactUrl(loc))}`);
|
|
199
242
|
return loc;
|
|
200
243
|
}
|
|
201
244
|
async function stepIdentifier(ctx, state, email) {
|
|
@@ -244,7 +287,7 @@ async function handleCustomPrompt(ctx, loc) {
|
|
|
244
287
|
return fail(ctx, 'custom-prompt', res, 'This prompt needs a real browser (T&C, email verification or profile step). Sign in to the Mobile Link app, clear it, then retry.');
|
|
245
288
|
}
|
|
246
289
|
const next = res.headers.get('location') ?? '';
|
|
247
|
-
log(ctx, 'custom-prompt', `302 -> ${truncate(next)}`);
|
|
290
|
+
log(ctx, 'custom-prompt', `302 -> ${truncate(redactUrl(next))}`);
|
|
248
291
|
const nextState = absolute(next).searchParams.get('state');
|
|
249
292
|
if (!nextState) {
|
|
250
293
|
throw new AuthError('custom-prompt: no state after continue', 'custom-prompt');
|
|
@@ -291,7 +334,7 @@ async function driveResume(ctx, resumeState, depth = 0) {
|
|
|
291
334
|
return fail(ctx, 'resume', res);
|
|
292
335
|
}
|
|
293
336
|
const loc = res.headers.get('location') ?? '';
|
|
294
|
-
log(ctx, 'resume', `302 -> ${truncate(loc)}`);
|
|
337
|
+
log(ctx, 'resume', `302 -> ${truncate(redactUrl(loc))}`);
|
|
295
338
|
if (loc.startsWith(APP_SCHEME)) {
|
|
296
339
|
const code = new URL(loc).searchParams.get('code');
|
|
297
340
|
if (!code) {
|
|
@@ -312,7 +355,7 @@ async function driveResume(ctx, resumeState, depth = 0) {
|
|
|
312
355
|
log(ctx, 'mfa', `code rejected (${r.error})`);
|
|
313
356
|
continue;
|
|
314
357
|
}
|
|
315
|
-
log(ctx, 'mfa-submit', `302 -> ${truncate(r.loc)}`);
|
|
358
|
+
log(ctx, 'mfa-submit', `302 -> ${truncate(redactUrl(r.loc))}`);
|
|
316
359
|
if (r.loc.startsWith(APP_SCHEME)) {
|
|
317
360
|
const c = new URL(r.loc).searchParams.get('code');
|
|
318
361
|
if (!c) {
|
|
@@ -332,7 +375,7 @@ async function driveResume(ctx, resumeState, depth = 0) {
|
|
|
332
375
|
if (nu.pathname.endsWith('/authorize/resume')) {
|
|
333
376
|
return driveResume(ctx, nu.searchParams.get('state'), depth + 1);
|
|
334
377
|
}
|
|
335
|
-
throw new AuthError(`mfa: unexpected redirect ${truncate(r.loc)}`, 'mfa');
|
|
378
|
+
throw new AuthError(`mfa: unexpected redirect ${truncate(redactUrl(r.loc))}`, 'mfa');
|
|
336
379
|
}
|
|
337
380
|
throw new AuthError('mfa: three rejected codes', 'mfa');
|
|
338
381
|
}
|
|
@@ -344,7 +387,7 @@ async function driveResume(ctx, resumeState, depth = 0) {
|
|
|
344
387
|
resumeState = await handleCustomPrompt(ctx, loc);
|
|
345
388
|
continue;
|
|
346
389
|
}
|
|
347
|
-
throw new AuthError(`resume: unexpected redirect ${truncate(loc)}`, 'resume');
|
|
390
|
+
throw new AuthError(`resume: unexpected redirect ${truncate(redactUrl(loc))}`, 'resume');
|
|
348
391
|
}
|
|
349
392
|
throw new AuthError('resume: three consecutive custom prompts. Clear pending prompts in the Mobile Link app and retry.', 'resume');
|
|
350
393
|
}
|
|
@@ -388,7 +431,7 @@ export async function login(email, password, opts) {
|
|
|
388
431
|
const code = await driveResume(ctx, resumeState);
|
|
389
432
|
const r = await tokenRequest(key, { grant_type: 'authorization_code', client_id: CLIENT_ID, code, code_verifier: verifier, redirect_uri: REDIRECT_URI }, opts.log);
|
|
390
433
|
if (r.status !== 200) {
|
|
391
|
-
throw new AuthError(`token: code exchange failed HTTP ${r.status}
|
|
434
|
+
throw new AuthError(`token: code exchange failed HTTP ${r.status}${oauthError(r.payload)}`, 'token');
|
|
392
435
|
}
|
|
393
436
|
const tokens = r.payload;
|
|
394
437
|
if (!tokens.refresh_token) {
|
|
@@ -407,6 +450,6 @@ export async function refreshAccessToken(key, refreshToken, log) {
|
|
|
407
450
|
if (err === 'invalid_grant' || (r.status === 403 && /invalid|revoked|expired/i.test(desc))) {
|
|
408
451
|
throw new InvalidGrantError(`refresh token rejected (${err || r.status}): ${desc}`);
|
|
409
452
|
}
|
|
410
|
-
throw new AuthError(`refresh failed HTTP ${r.status}
|
|
453
|
+
throw new AuthError(`refresh failed HTTP ${r.status}${oauthError(r.payload)}`, 'refresh');
|
|
411
454
|
}
|
|
412
455
|
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -2,17 +2,19 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* homebridge-generac CLI
|
|
4
4
|
*
|
|
5
|
-
* homebridge-generac login [--out <file>] sign in once, save refresh token
|
|
6
|
-
* homebridge-generac status [--creds <file>]
|
|
5
|
+
* homebridge-generac login [--out <file>] [--debug] sign in once, save refresh token
|
|
6
|
+
* homebridge-generac status [--creds <file>] print what the account exposes
|
|
7
7
|
*
|
|
8
8
|
* Run `login` as the same user Homebridge runs as so the credentials land where
|
|
9
|
-
* the platform looks for them.
|
|
9
|
+
* the platform looks for them. With `--debug`, a failed sign-in step's page is
|
|
10
|
+
* saved, redacted, to a `debug` folder next to the credentials file (SPEC section 12).
|
|
10
11
|
*/
|
|
11
12
|
import fs from 'node:fs';
|
|
12
13
|
import path from 'node:path';
|
|
13
14
|
import readline from 'node:readline';
|
|
14
|
-
import { login } from './auth.js';
|
|
15
|
+
import { extractAuth0ErrorCode, login, redactBody } from './auth.js';
|
|
15
16
|
import { MobileLinkClient, readCredentials, writeCredentials } from './api.js';
|
|
17
|
+
import { writeFileAtomic } from './files.js';
|
|
16
18
|
import { toGeneratorState } from './model.js';
|
|
17
19
|
import { credentialCandidates, defaultStoragePath, primaryCredentialsPath } from './settings.js';
|
|
18
20
|
import { DEVICE_TYPE, DEVICE_TYPE_LABEL } from './types.js';
|
|
@@ -48,19 +50,37 @@ async function prompt(question, hidden = false) {
|
|
|
48
50
|
}
|
|
49
51
|
return answer.trim();
|
|
50
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* What `login` does with the page of a failed sign-in step. Without `--debug` it prints the step, the HTTP status
|
|
55
|
+
* and the Auth0 error code. With `--debug` it also saves the page, redacted, as `<step>-<status>.html` (mode 600) in
|
|
56
|
+
* a `debug` folder (mode 700) next to the credentials file: `<storage>/homebridge-generac/debug/` by default.
|
|
57
|
+
* Nothing is ever written to the working directory.
|
|
58
|
+
*/
|
|
59
|
+
function failureBodySink(out, debug) {
|
|
60
|
+
return (step, status, body) => {
|
|
61
|
+
const code = extractAuth0ErrorCode(body);
|
|
62
|
+
log(step, `HTTP ${status}${code ? ` (auth0: ${code})` : ''}`);
|
|
63
|
+
if (!debug) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const dir = path.join(path.dirname(out), 'debug');
|
|
67
|
+
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
68
|
+
fs.chmodSync(dir, 0o700);
|
|
69
|
+
const f = path.join(dir, `${step}-${status}.html`);
|
|
70
|
+
writeFileAtomic(f, redactBody(body), 0o600);
|
|
71
|
+
log('debug', `saved the server response, redacted, to ${f}`);
|
|
72
|
+
};
|
|
73
|
+
}
|
|
51
74
|
async function cmdLogin() {
|
|
52
75
|
const out = arg('--out') ?? primaryCredentialsPath(defaultStoragePath());
|
|
76
|
+
const debug = process.argv.includes('--debug');
|
|
53
77
|
const email = process.env.GENERAC_EMAIL || (await prompt('Mobile Link email: '));
|
|
54
78
|
const password = process.env.GENERAC_PASSWORD || (await prompt('Mobile Link password: ', true));
|
|
55
79
|
console.error(`\nSigning in to Mobile Link as ${email}…`);
|
|
56
80
|
const result = await login(email, password, {
|
|
57
81
|
log,
|
|
58
82
|
mfaPrompt: async (type) => prompt(`Enter the ${type.toUpperCase()} code you just received: `),
|
|
59
|
-
onFailureBody: (
|
|
60
|
-
const f = path.join(process.cwd(), `homebridge-generac-debug-${step}-${status}.html`);
|
|
61
|
-
fs.writeFileSync(f, body);
|
|
62
|
-
log('debug', `saved server response to ${f}`);
|
|
63
|
-
},
|
|
83
|
+
onFailureBody: failureBodySink(out, debug),
|
|
64
84
|
});
|
|
65
85
|
writeCredentials(out, {
|
|
66
86
|
email,
|
|
@@ -106,7 +126,7 @@ async function cmdStatus() {
|
|
|
106
126
|
const cmd = process.argv[2];
|
|
107
127
|
const run = cmd === 'login' ? cmdLogin : cmd === 'status' ? cmdStatus : null;
|
|
108
128
|
if (!run) {
|
|
109
|
-
console.error('Usage: homebridge-generac <login [--out file] | status [--creds file]>');
|
|
129
|
+
console.error('Usage: homebridge-generac <login [--out file] [--debug] | status [--creds file]>');
|
|
110
130
|
process.exit(2);
|
|
111
131
|
}
|
|
112
132
|
run().catch((err) => {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/exercise.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/** "HH:MM" to minutes past midnight, or null when malformed. */
|
|
2
2
|
export declare function parseHHMM(value: string | null | undefined): number | null;
|
|
3
|
-
/**
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* The watch window opens this many minutes before the exercise time and closes this many after it. It opens early
|
|
5
|
+
* because Mobile Link can report a later time than the unit keeps (10:05 reported, 10:00 start; SPEC section 16).
|
|
6
|
+
*/
|
|
7
|
+
export declare const WATCH_BEFORE_MINUTES = 10;
|
|
5
8
|
export declare const WATCH_AFTER_MINUTES = 20;
|
|
6
9
|
/**
|
|
7
|
-
* True from `exerciseMinutes -
|
|
8
|
-
* local time zone. A window that straddles midnight (an exercise at 00:
|
|
10
|
+
* True from `exerciseMinutes - 10` (inclusive) to `exerciseMinutes + 20` (exclusive), every day, in the host's
|
|
11
|
+
* local time zone. A window that straddles midnight (an exercise at 00:05 or 23:50) is handled.
|
|
9
12
|
*/
|
|
10
13
|
export declare function inWatchWindow(exerciseMinutes: number, now: Date): boolean;
|
|
11
14
|
/** Milliseconds until the next watch window opens; 0 while inside one. */
|
package/dist/exercise.js
CHANGED
|
@@ -19,8 +19,11 @@ export function parseHHMM(value) {
|
|
|
19
19
|
}
|
|
20
20
|
return h * 60 + min;
|
|
21
21
|
}
|
|
22
|
-
/**
|
|
23
|
-
|
|
22
|
+
/**
|
|
23
|
+
* The watch window opens this many minutes before the exercise time and closes this many after it. It opens early
|
|
24
|
+
* because Mobile Link can report a later time than the unit keeps (10:05 reported, 10:00 start; SPEC section 16).
|
|
25
|
+
*/
|
|
26
|
+
export const WATCH_BEFORE_MINUTES = 10;
|
|
24
27
|
export const WATCH_AFTER_MINUTES = 20;
|
|
25
28
|
const DAY_MINUTES = 24 * 60;
|
|
26
29
|
/** Minutes past local midnight of `now`, with the seconds as a fraction. */
|
|
@@ -28,8 +31,8 @@ function localMinutes(now) {
|
|
|
28
31
|
return now.getHours() * 60 + now.getMinutes() + now.getSeconds() / 60 + now.getMilliseconds() / 60000;
|
|
29
32
|
}
|
|
30
33
|
/**
|
|
31
|
-
* True from `exerciseMinutes -
|
|
32
|
-
* local time zone. A window that straddles midnight (an exercise at 00:
|
|
34
|
+
* True from `exerciseMinutes - 10` (inclusive) to `exerciseMinutes + 20` (exclusive), every day, in the host's
|
|
35
|
+
* local time zone. A window that straddles midnight (an exercise at 00:05 or 23:50) is handled.
|
|
33
36
|
*/
|
|
34
37
|
export function inWatchWindow(exerciseMinutes, now) {
|
|
35
38
|
const offset = (localMinutes(now) - (exerciseMinutes - WATCH_BEFORE_MINUTES) + DAY_MINUTES) % DAY_MINUTES;
|
package/dist/exercise.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exercise.js","sourceRoot":"","sources":["../src/exercise.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,gEAAgE;AAChE,MAAM,UAAU,SAAS,CAAC,KAAgC;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;AACtB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"exercise.js","sourceRoot":"","sources":["../src/exercise.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,gEAAgE;AAChE,MAAM,UAAU,SAAS,CAAC,KAAgC;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,CAAC;AAE5B,4EAA4E;AAC5E,SAAS,YAAY,CAAC,GAAS;IAC7B,OAAO,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,GAAG,KAAK,CAAC;AACxG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,eAAuB,EAAE,GAAS;IAC9D,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,GAAG,oBAAoB,CAAC,GAAG,WAAW,CAAC,GAAG,WAAW,CAAC;IAC1G,OAAO,MAAM,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAC7D,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,kBAAkB,CAAC,eAAuB,EAAE,GAAS;IACnE,IAAI,aAAa,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,GAAG,oBAAoB,CAAC;IACrD,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,WAAW,CAAC;IACtE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;AAChD,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,OAAO,eAAe;IAMyC;IALnE,sIAAsI;IAC9H,QAAQ,CAA4B;IACpC,aAAa,GAAkB,IAAI,CAAC;IACpC,aAAa,GAAG,KAAK,CAAC;IAE9B,YAAY,SAAoC,EAAmB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAC/E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC5B,CAAC;aAAM,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,4FAA4F;IAC5F,IAAI,cAAc;QAChB,OAAO,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1F,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,cAA2B,EAAE,GAAW;QAC9D,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,IAAI,CAAC,aAAa,GAAG,MAAM,KAAK,MAAM,CAAC,UAAU,CAAC;QAClD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,6GAA6G;YAC7G,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,SAAS,GAAG,IAAI,CAAC;YACjB,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QAC3B,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;IAC5D,CAAC;IAED,kGAAkG;IAClG,MAAM,CAAC,GAAW;QAChB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/E,CAAC;IAED,6GAA6G;IAC7G,aAAa,CAAC,GAAW;QACvB,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QACzD,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;CACF"}
|
package/dist/platform.js
CHANGED
|
@@ -309,7 +309,7 @@ export class GeneracPlatform {
|
|
|
309
309
|
}
|
|
310
310
|
others.set(raw.apparatusId, { type: raw.type, name: raw.name, apparatusId: raw.apparatusId });
|
|
311
311
|
if (raw.type === DEVICE_TYPE.PROPANE_MONITOR) {
|
|
312
|
-
this.once(`propane-${raw.apparatusId}`, 'info', `
|
|
312
|
+
this.once(`propane-${raw.apparatusId}`, 'info', `Skipping ${label} "${raw.name}" (id ${raw.apparatusId}). Tank monitors are not supported.`);
|
|
313
313
|
}
|
|
314
314
|
else if (raw.type === DEVICE_TYPE.LINKED_ECOBEE) {
|
|
315
315
|
this.once(`ecobee-${raw.apparatusId}`, 'info', `Skipping ${label} "${raw.name}". It is already a native HomeKit device; Generac's details endpoint 500s on it.`);
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -219,15 +219,12 @@
|
|
|
219
219
|
margin-bottom: 1rem;
|
|
220
220
|
}
|
|
221
221
|
|
|
222
|
-
/* The Reset dialog, in the page flow directly below the Reset link (SPEC section 11.2)
|
|
223
|
-
|
|
222
|
+
/* The Reset dialog, in the page flow directly below the Reset link (SPEC section 11.2), never a fixed overlay. It
|
|
223
|
+
carries Bootstrap's `card` class, so its fill, border and text are the host's card surface in both themes; this
|
|
224
|
+
rule sets none of them (the host's dark theme leaves `--bs-body-bg` white and paints `.card` itself). */
|
|
224
225
|
.generac-ui .ns-inline-dialog {
|
|
225
226
|
margin-top: 0.75rem;
|
|
226
227
|
max-width: 28rem;
|
|
227
|
-
border: 1px solid var(--bs-border-color, rgba(128, 128, 128, 0.35));
|
|
228
|
-
border-radius: 0.5rem;
|
|
229
|
-
background: var(--bs-body-bg, #fff);
|
|
230
|
-
color: var(--bs-body-color, inherit);
|
|
231
228
|
}
|
|
232
229
|
|
|
233
230
|
.generac-ui .ns-inline-dialog-title {
|
|
@@ -81,9 +81,7 @@ body[class*="config-ui-x-dark-mode"] .generac-ui .card {
|
|
|
81
81
|
colour, never Bootstrap's dimmed copy of the enabled button and never the host's dark fill. Pointer events stay
|
|
82
82
|
on so the not-allowed cursor shows (a disabled button fires no click either way). */
|
|
83
83
|
.generac-ui .btn:disabled,
|
|
84
|
-
.generac-ui .btn.disabled
|
|
85
|
-
.ns-modal .btn:disabled,
|
|
86
|
-
.ns-modal .btn.disabled {
|
|
84
|
+
.generac-ui .btn.disabled {
|
|
87
85
|
opacity: 1;
|
|
88
86
|
color: var(--bs-secondary-color, currentColor);
|
|
89
87
|
border-color: var(--bs-border-color, currentColor);
|
|
@@ -419,9 +417,7 @@ body[class*="config-ui-x-dark-mode"] .generac-ui .btn-link {
|
|
|
419
417
|
/* Touch targets: every button, text buttons included, is at least 44px tall on touch devices. */
|
|
420
418
|
@media (pointer: coarse) {
|
|
421
419
|
.generac-ui .btn,
|
|
422
|
-
.generac-ui .btn-close
|
|
423
|
-
.ns-modal .btn,
|
|
424
|
-
.ns-modal .btn-close {
|
|
420
|
+
.generac-ui .btn-close {
|
|
425
421
|
min-height: 44px;
|
|
426
422
|
display: inline-flex;
|
|
427
423
|
align-items: center;
|
|
@@ -430,59 +426,13 @@ body[class*="config-ui-x-dark-mode"] .generac-ui .btn-link {
|
|
|
430
426
|
}
|
|
431
427
|
|
|
432
428
|
body.ns-touch .generac-ui .btn,
|
|
433
|
-
body.ns-touch .generac-ui .btn-close
|
|
434
|
-
body.ns-touch .ns-modal .btn,
|
|
435
|
-
body.ns-touch .ns-modal .btn-close {
|
|
429
|
+
body.ns-touch .generac-ui .btn-close {
|
|
436
430
|
min-height: 44px;
|
|
437
431
|
display: inline-flex;
|
|
438
432
|
align-items: center;
|
|
439
433
|
justify-content: center;
|
|
440
434
|
}
|
|
441
435
|
|
|
442
|
-
/* Modal drawn by the page (the Reset dialog). */
|
|
443
|
-
.ns-modal-backdrop {
|
|
444
|
-
position: fixed;
|
|
445
|
-
inset: 0;
|
|
446
|
-
z-index: 50;
|
|
447
|
-
background: rgba(0, 0, 0, 0.55);
|
|
448
|
-
display: flex;
|
|
449
|
-
align-items: center;
|
|
450
|
-
justify-content: center;
|
|
451
|
-
padding: 1rem;
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
.ns-modal {
|
|
455
|
-
background: var(--bs-body-bg, #fff);
|
|
456
|
-
color: var(--bs-body-color, inherit);
|
|
457
|
-
border-radius: 0.5rem;
|
|
458
|
-
width: 100%;
|
|
459
|
-
max-width: 28rem;
|
|
460
|
-
max-height: 100%;
|
|
461
|
-
overflow: auto;
|
|
462
|
-
box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.3);
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
.ns-modal-header {
|
|
466
|
-
display: flex;
|
|
467
|
-
justify-content: space-between;
|
|
468
|
-
align-items: center;
|
|
469
|
-
padding: 0.75rem 1rem;
|
|
470
|
-
border-bottom: 1px solid var(--bs-border-color, rgba(128, 128, 128, 0.35));
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
.ns-modal-body {
|
|
474
|
-
padding: 1rem;
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
.ns-modal-actions {
|
|
478
|
-
display: flex;
|
|
479
|
-
flex-wrap: wrap;
|
|
480
|
-
justify-content: flex-end;
|
|
481
|
-
gap: 0.5rem;
|
|
482
|
-
padding: 0.75rem 1rem;
|
|
483
|
-
border-top: 1px solid var(--bs-border-color, rgba(128, 128, 128, 0.35));
|
|
484
|
-
}
|
|
485
|
-
|
|
486
436
|
/* Version and credit footer: one line of secondary text that wraps between its items on narrow screens. */
|
|
487
437
|
.ns-footer {
|
|
488
438
|
margin-top: 1.5rem;
|
|
@@ -11,8 +11,7 @@ export const BANNER = {
|
|
|
11
11
|
};
|
|
12
12
|
export const INTRO = {
|
|
13
13
|
one: 'Generac for Homebridge shows the standby generators on your Mobile Link account in the Home app. '
|
|
14
|
-
+ 'Each generator appears as a Running sensor, a Fault sensor, a Maintenance Due sensor and a starting battery reading.
|
|
15
|
-
+ 'Propane models will also get a tank level later.',
|
|
14
|
+
+ 'Each generator appears as a Running sensor, a Fault sensor, a Maintenance Due sensor, an Exercising sensor and a starting battery reading.',
|
|
16
15
|
two: 'It is read only. It cannot start, stop or exercise the generator. Connect your account below and your generators are found for you.',
|
|
17
16
|
accountHeading: 'Mobile Link account',
|
|
18
17
|
accountHelp: 'One account per Homebridge instance. Use the email and password you use in the Mobile Link app.',
|
|
@@ -96,7 +95,7 @@ export const GENERATOR = {
|
|
|
96
95
|
name: 'Name',
|
|
97
96
|
saveName: 'Save name',
|
|
98
97
|
cancel: 'Cancel',
|
|
99
|
-
alsoPropane: 'Also on your account: Propane tank monitor (
|
|
98
|
+
alsoPropane: 'Also on your account: Propane tank monitor (not supported).',
|
|
100
99
|
alsoEcobee: (name) => `Also on your account: ecobee thermostat "${name}" (already in HomeKit, skipped).`,
|
|
101
100
|
};
|
|
102
101
|
/** SPEC 11.3 E. */
|
|
@@ -135,6 +134,9 @@ export const SETTINGS = {
|
|
|
135
134
|
'Removes every generator and its sensors from the Home app.',
|
|
136
135
|
'Clears all settings on this page.',
|
|
137
136
|
],
|
|
137
|
+
resetDoneTitle: 'Reset done',
|
|
138
|
+
resetDoneBody: 'Click Save, then restart Homebridge to remove the generators from the Home app. '
|
|
139
|
+
+ 'Reconnect your Mobile Link account afterwards if you want them back.',
|
|
138
140
|
};
|
|
139
141
|
/** Shell strings (SPEC 11.3 F): the disclosure, the Reset dialog, the password toggle, the credit footer and relative times. */
|
|
140
142
|
export const SHELL = {
|
|
@@ -223,10 +223,12 @@ export function inlineConfirm(opts) {
|
|
|
223
223
|
/**
|
|
224
224
|
* A dialog in the page flow (the Reset dialog), drawn where it is opened rather than over the page: a fixed
|
|
225
225
|
* overlay would pin to the iframe's own top, off-screen when the opener sits at the bottom of a scrolled host
|
|
226
|
-
* modal. Escape closes it; `onClose` runs on every close, including the caller's.
|
|
226
|
+
* modal. Escape closes it; `onClose` runs on every close, including the caller's. It is a Bootstrap `card`, so
|
|
227
|
+
* the host paints it like every other card in both themes: the dark theme sets the card's fill and text itself and
|
|
228
|
+
* leaves `--bs-body-bg` at its light value, so a panel of its own would be white on the dark page (SPEC section 11.2).
|
|
227
229
|
*/
|
|
228
230
|
export function inlineDialog(opts) {
|
|
229
|
-
const dialog = el('div', { class: 'ns-inline-dialog', role: 'dialog', 'aria-label': opts.title });
|
|
231
|
+
const dialog = el('div', { class: 'card ns-inline-dialog', role: 'dialog', 'aria-label': opts.title });
|
|
230
232
|
let onKey = () => undefined;
|
|
231
233
|
const close = () => {
|
|
232
234
|
document.removeEventListener('keydown', onKey);
|
|
@@ -33,7 +33,7 @@ export class Page {
|
|
|
33
33
|
this.config = config;
|
|
34
34
|
this.root = root;
|
|
35
35
|
this.status = null;
|
|
36
|
-
this.ui = { flow: null, disconnectOpen: false, resetOpen: false, rename: null, checkingSince: null };
|
|
36
|
+
this.ui = { flow: null, disconnectOpen: false, resetOpen: false, resetDone: false, rename: null, checkingSince: null };
|
|
37
37
|
this.containers = new Map();
|
|
38
38
|
this.touched = new Set();
|
|
39
39
|
/** The messages currently shown inline, by path. A focused field only ever loses its message, never gains one. */
|
|
@@ -10,14 +10,17 @@ import { DEFAULTS, emptyConfig } from '../model.js';
|
|
|
10
10
|
import { hasOneDecimal } from '../validate.js';
|
|
11
11
|
/**
|
|
12
12
|
* The Reset dialog: the three lines from SPEC section 11.3 E, "Type RESET to confirm.", Confirm disabled until
|
|
13
|
-
* typed. It renders inline directly below the Reset link (SPEC section 11.2) and is page state,
|
|
14
|
-
* the section keeps it open; opening it by click focuses the field and scrolls the host modal to the
|
|
13
|
+
* RESET is typed in any case. It renders inline directly below the Reset link (SPEC section 11.2) and is page state,
|
|
14
|
+
* so a redraw of the section keeps it open; opening it by click focuses the field and scrolls the host modal to the
|
|
15
|
+
* dialog. Confirm redraws the page with the done state in the dialog's place and scrolls the host to it.
|
|
15
16
|
*/
|
|
16
17
|
function resetDialog(app, opened) {
|
|
17
18
|
const confirmInput = el('input', { type: 'text', class: 'form-control', autocomplete: 'off', spellcheck: 'false', id: 'gn-reset-confirm' });
|
|
18
19
|
let close = () => undefined;
|
|
19
20
|
const confirm = button(SHELL.resetConfirm, () => {
|
|
20
21
|
close();
|
|
22
|
+
// The done state replaces the dialog in place when the page is redrawn below (SPEC section 11.3 E).
|
|
23
|
+
app.ui.resetDone = true;
|
|
21
24
|
// Sign out and forget the saved state on the server; the platform removes the accessories on its next start.
|
|
22
25
|
void callServer('/reset').then(() => app.refreshStatus());
|
|
23
26
|
if (app.status) {
|
|
@@ -28,10 +31,15 @@ function resetDialog(app, opened) {
|
|
|
28
31
|
app.ui.rename = null;
|
|
29
32
|
app.replaceConfig(emptyConfig());
|
|
30
33
|
toastSuccess(SHELL.resetDone);
|
|
34
|
+
const done = document.querySelector('.gn-reset-done');
|
|
35
|
+
if (done) {
|
|
36
|
+
reveal(done);
|
|
37
|
+
}
|
|
31
38
|
}, 'btn btn-danger btn-sm');
|
|
32
39
|
confirm.disabled = true;
|
|
33
40
|
confirmInput.addEventListener('input', () => {
|
|
34
|
-
|
|
41
|
+
// RESET in any case (SPEC section 11.3 E); the prompt still reads "Type RESET to confirm."
|
|
42
|
+
confirm.disabled = confirmInput.value.trim().toUpperCase() !== 'RESET';
|
|
35
43
|
});
|
|
36
44
|
const dialog = inlineDialog({
|
|
37
45
|
title: SHELL.resetTitle,
|
|
@@ -50,9 +58,20 @@ function resetDialog(app, opened) {
|
|
|
50
58
|
}
|
|
51
59
|
return dialog.el;
|
|
52
60
|
}
|
|
53
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* The done state after Confirm (SPEC section 11.3 E): the dialog's place on the page, a card with the title and one
|
|
63
|
+
* line, no buttons. It stays until the page reloads.
|
|
64
|
+
*/
|
|
65
|
+
function resetDoneState() {
|
|
66
|
+
return el('div', { class: 'card ns-inline-dialog gn-reset-done', role: 'status' }, el('div', { class: 'ns-inline-dialog-title fw-semibold' }, SETTINGS.resetDoneTitle), el('div', { class: 'ns-inline-dialog-body' }, el('p', { class: 'mb-0' }, SETTINGS.resetDoneBody)));
|
|
67
|
+
}
|
|
68
|
+
/** The Reset link, with the dialog directly below it while open; after Confirm, only the done state. */
|
|
54
69
|
function resetControl(app) {
|
|
55
70
|
const holder = el('div', { class: 'gn-reset' });
|
|
71
|
+
if (app.ui.resetDone) {
|
|
72
|
+
holder.appendChild(resetDoneState());
|
|
73
|
+
return holder;
|
|
74
|
+
}
|
|
56
75
|
const link = dangerLinkButton(SHELL.reset, () => {
|
|
57
76
|
if (app.ui.resetOpen) {
|
|
58
77
|
return;
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "homebridge-generac",
|
|
3
3
|
"displayName": "Generac",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "1.0.1",
|
|
6
6
|
"description": "Generac Mobile Link standby generators in HomeKit: running, fault and maintenance sensors plus starting-battery health.",
|
|
7
7
|
"author": "Alex Rodriguez (https://alex-rodriguez.com)",
|
|
8
8
|
"license": "Apache-2.0",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"SECURITY.md"
|
|
41
41
|
],
|
|
42
42
|
"engines": {
|
|
43
|
-
"node": "^20.18.0 || ^22.10.0",
|
|
43
|
+
"node": "^20.18.0 || ^22.10.0 || ^24.0.0",
|
|
44
44
|
"homebridge": "^1.8.0 || ^2.0.0-beta.0"
|
|
45
45
|
},
|
|
46
46
|
"scripts": {
|