@homebridge-plugins/homebridge-august 3.2.3 → 3.3.0-beta.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 +20 -0
- package/CLAUDE.md +48 -0
- package/README.md +39 -27
- package/config.schema.json +47 -3
- package/dist/Platform.HAP.d.ts.map +1 -1
- package/dist/Platform.HAP.js +1 -2
- package/dist/Platform.HAP.js.map +1 -1
- package/dist/connectivity-manager.d.ts.map +1 -1
- package/dist/connectivity-manager.js.map +1 -1
- package/dist/platform.matter.d.ts +6 -0
- package/dist/platform.matter.d.ts.map +1 -1
- package/dist/platform.matter.js +15 -2
- package/dist/platform.matter.js.map +1 -1
- package/dist/settings.d.ts +1 -0
- package/dist/settings.d.ts.map +1 -1
- package/package.json +37 -31
- package/test/connectivity-manager.test.ts +25 -23
- package/.github/FUNDING.yml +0 -4
- package/.github/ISSUE_TEMPLATE/bug-report.yml +0 -97
- package/.github/ISSUE_TEMPLATE/config.yml +0 -8
- package/.github/ISSUE_TEMPLATE/feature-request.yml +0 -38
- package/.github/ISSUE_TEMPLATE/support-request.yml +0 -85
- package/.github/ISSUE_TEMPLATE.md +0 -48
- package/.github/PULL_REQUEST_TEMPLATE/pull_request.md +0 -27
- package/.github/copilot-instructions.md +0 -200
- package/.github/dependabot.yml +0 -17
- package/.github/labeler.yml +0 -38
- package/.github/scripts/compute-version-override.cjs +0 -51
- package/.github/scripts/normalize-changelog-header.cjs +0 -86
- package/.github/scripts/npm-version-script-esm-auto.js +0 -201
- package/.github/scripts/resolve-version-bump-esm.js +0 -118
- package/.github/workflows/release.yml +0 -169
- package/.github/workflows/stale.yml +0 -12
- package/SECURITY.md +0 -19
- package/branding/Homebridge_x_August.svg +0 -32
- package/branding/icon.png +0 -0
- package/dist/package.json +0 -84
- package/docs/.nojekyll +0 -1
- package/docs/assets/hierarchy.js +0 -1
- package/docs/assets/highlight.css +0 -22
- package/docs/assets/icons.js +0 -18
- package/docs/assets/icons.svg +0 -1
- package/docs/assets/main.js +0 -60
- package/docs/assets/navigation.js +0 -1
- package/docs/assets/search.js +0 -1
- package/docs/assets/style.css +0 -1633
- package/docs/hierarchy.html +0 -1
- package/docs/index.html +0 -44
- package/docs/modules.html +0 -1
- package/docs/variables/default.html +0 -1
- package/eslint.config.js +0 -47
- package/vitest.config.ts +0 -8
package/package.json
CHANGED
|
@@ -2,21 +2,31 @@
|
|
|
2
2
|
"name": "@homebridge-plugins/homebridge-august",
|
|
3
3
|
"displayName": "August",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "3.
|
|
5
|
+
"version": "3.3.0-beta.1",
|
|
6
6
|
"description": "The August plugin allows you to access your August & Yale device(s) from HomeKit.",
|
|
7
7
|
"author": {
|
|
8
|
-
"name": "
|
|
9
|
-
"
|
|
8
|
+
"name": "bwp91",
|
|
9
|
+
"email": "bwp91@icloud.com"
|
|
10
10
|
},
|
|
11
|
+
"contributors": [
|
|
12
|
+
{
|
|
13
|
+
"name": "donavanbecker",
|
|
14
|
+
"url": "https://github.com/donavanbecker"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
11
17
|
"license": "ISC",
|
|
12
18
|
"funding": [
|
|
13
19
|
{
|
|
14
|
-
"type": "
|
|
15
|
-
"url": "https://
|
|
20
|
+
"type": "github",
|
|
21
|
+
"url": "https://github.com/sponsors/bwp91"
|
|
16
22
|
},
|
|
17
23
|
{
|
|
18
|
-
"type": "
|
|
19
|
-
"url": "https://
|
|
24
|
+
"type": "kofi",
|
|
25
|
+
"url": "https://ko-fi.com/bwp91"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": "paypal",
|
|
29
|
+
"url": "https://www.paypal.me/BenPotter"
|
|
20
30
|
}
|
|
21
31
|
],
|
|
22
32
|
"homepage": "https://github.com/homebridge-plugins/homebridge-august",
|
|
@@ -39,18 +49,15 @@
|
|
|
39
49
|
"main": "dist/index.js",
|
|
40
50
|
"engines": {
|
|
41
51
|
"homebridge": "^2.0.0",
|
|
42
|
-
"node": "^22 || ^24"
|
|
52
|
+
"node": "^22.12.0 || ^24.0.0"
|
|
43
53
|
},
|
|
44
54
|
"scripts": {
|
|
45
|
-
"
|
|
46
|
-
"lint": "
|
|
47
|
-
"
|
|
48
|
-
"watch": "npm run build && npm run plugin-ui && npm link && nodemon",
|
|
55
|
+
"lint": "eslint . --max-warnings=0",
|
|
56
|
+
"lint:fix": "npm run lint -- --fix",
|
|
57
|
+
"watch": "npm run build && npm link && nodemon",
|
|
49
58
|
"plugin-ui": "rsync ./src/homebridge-ui/public/index.html ./dist/homebridge-ui/public/",
|
|
50
|
-
"build": "
|
|
51
|
-
"prepublishOnly": "npm run lint && npm run build
|
|
52
|
-
"postpublish": "npm run clean && npm ci",
|
|
53
|
-
"clean": "shx rm -rf ./dist",
|
|
59
|
+
"build": "rimraf ./dist && tsc && npm run plugin-ui",
|
|
60
|
+
"prepublishOnly": "npm run lint && npm run build",
|
|
54
61
|
"test": "vitest run",
|
|
55
62
|
"test:watch": "vitest watch",
|
|
56
63
|
"test-coverage": "npm run test -- --coverage",
|
|
@@ -61,24 +68,23 @@
|
|
|
61
68
|
"access": "public"
|
|
62
69
|
},
|
|
63
70
|
"dependencies": {
|
|
64
|
-
"@homebridge/plugin-ui-utils": "^2.2.
|
|
65
|
-
"august-yale": "
|
|
71
|
+
"@homebridge/plugin-ui-utils": "^2.2.5",
|
|
72
|
+
"august-yale": "1.2.3-beta.0",
|
|
66
73
|
"rxjs": "^7.8.2"
|
|
67
74
|
},
|
|
68
75
|
"devDependencies": {
|
|
69
|
-
"@antfu/eslint-config": "^
|
|
70
|
-
"@types/node": "^
|
|
71
|
-
"@vitest/coverage-v8": "^4.1.
|
|
72
|
-
"
|
|
73
|
-
"eslint-plugin-format": "^2.0.1",
|
|
74
|
-
"eslint-plugin-html": "^8.1.4",
|
|
75
|
-
"eslint-plugin-perfectionist": "^5.8.0",
|
|
76
|
-
"eslint-plugin-unused-imports": "^4.4.1",
|
|
77
|
-
"homebridge": "^2.0.0",
|
|
76
|
+
"@antfu/eslint-config": "^9.1.0",
|
|
77
|
+
"@types/node": "^26.1.1",
|
|
78
|
+
"@vitest/coverage-v8": "^4.1.10",
|
|
79
|
+
"homebridge": "^2.1.1",
|
|
78
80
|
"nodemon": "^3.1.14",
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
+
"rimraf": "^6.1.3",
|
|
82
|
+
"ts-node": "^10.9.2",
|
|
83
|
+
"typedoc": "^0.28.20",
|
|
81
84
|
"typescript": "^6.0.3",
|
|
82
|
-
"vitest": "^4.1.
|
|
85
|
+
"vitest": "^4.1.10"
|
|
86
|
+
},
|
|
87
|
+
"allowScripts": {
|
|
88
|
+
"fsevents@2.3.3": true
|
|
83
89
|
}
|
|
84
|
-
}
|
|
90
|
+
}
|
|
@@ -88,7 +88,7 @@ vi.mock('august-yale', () => {
|
|
|
88
88
|
// Helper: build a stub Logging object that records calls.
|
|
89
89
|
function makeLog(): Logging & { _calls: { level: string, msg: string }[] } {
|
|
90
90
|
const calls: { level: string, msg: string }[] = []
|
|
91
|
-
const stub = ((
|
|
91
|
+
const stub = (() => {}) as any
|
|
92
92
|
stub._calls = calls
|
|
93
93
|
for (const level of ['info', 'warn', 'error', 'debug', 'success'] as const) {
|
|
94
94
|
stub[level] = (msg: string) => calls.push({ level, msg })
|
|
@@ -101,7 +101,7 @@ async function fakeCredentials(): Promise<credentials> {
|
|
|
101
101
|
return { installId: 'test-install', apiKey: 'test-key' } as unknown as credentials
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
describe('
|
|
104
|
+
describe('connectivityManager', () => {
|
|
105
105
|
beforeEach(() => {
|
|
106
106
|
// Use fake timers so probes can be advanced deterministically without
|
|
107
107
|
// waiting for real backoff windows (5s..5min).
|
|
@@ -187,7 +187,7 @@ describe('ConnectivityManager', () => {
|
|
|
187
187
|
await m.init()
|
|
188
188
|
const transientErr = Object.assign(new Error('Unprocessable Entity'), { statusCode: 422 })
|
|
189
189
|
await expect(
|
|
190
|
-
m.execute('test', async () =>
|
|
190
|
+
m.execute('test', async () => Promise.reject(transientErr)),
|
|
191
191
|
).rejects.toBe(transientErr)
|
|
192
192
|
expect(m.getState()).toBe('healthy')
|
|
193
193
|
})
|
|
@@ -209,7 +209,7 @@ describe('ConnectivityManager', () => {
|
|
|
209
209
|
await m.init()
|
|
210
210
|
expect(onClientChanged).toHaveBeenCalledTimes(1)
|
|
211
211
|
const authErr = Object.assign(new Error('Unauthorized'), { statusCode: 401 })
|
|
212
|
-
const result = await m.execute('test', async () =>
|
|
212
|
+
const result = await m.execute('test', async () => Promise.reject(authErr))
|
|
213
213
|
expect(result).toBeUndefined()
|
|
214
214
|
// Allow the rebuild promise to resolve.
|
|
215
215
|
await vi.runAllTimersAsync()
|
|
@@ -221,7 +221,7 @@ describe('ConnectivityManager', () => {
|
|
|
221
221
|
const m = new ConnectivityManager(makeLog(), fakeCredentials)
|
|
222
222
|
await m.init()
|
|
223
223
|
const { TimeoutError } = await import('august-yale')
|
|
224
|
-
const result = await m.execute('test', async () =>
|
|
224
|
+
const result = await m.execute('test', async () => Promise.reject(new TimeoutError('timed out')))
|
|
225
225
|
expect(result).toBeUndefined()
|
|
226
226
|
expect(m.getState()).toBe('degraded')
|
|
227
227
|
})
|
|
@@ -233,7 +233,7 @@ describe('ConnectivityManager', () => {
|
|
|
233
233
|
const m = new ConnectivityManager(makeLog(), fakeCredentials)
|
|
234
234
|
await m.init()
|
|
235
235
|
const { NetworkError } = await import('august-yale')
|
|
236
|
-
const result = await m.execute('test', async () =>
|
|
236
|
+
const result = await m.execute('test', async () => Promise.reject(new NetworkError('socket hang up', undefined, 'ECONNRESET')))
|
|
237
237
|
expect(result).toBeUndefined()
|
|
238
238
|
expect(m.getState()).toBe('degraded')
|
|
239
239
|
})
|
|
@@ -244,7 +244,7 @@ describe('ConnectivityManager', () => {
|
|
|
244
244
|
await m.init()
|
|
245
245
|
expect(onClientChanged).toHaveBeenCalledTimes(1)
|
|
246
246
|
const { InvalidAuth } = await import('august-yale')
|
|
247
|
-
const result = await m.execute('test', async () =>
|
|
247
|
+
const result = await m.execute('test', async () => Promise.reject(new InvalidAuth('session expired')))
|
|
248
248
|
expect(result).toBeUndefined()
|
|
249
249
|
await vi.runAllTimersAsync()
|
|
250
250
|
expect(onClientChanged).toHaveBeenCalledTimes(2)
|
|
@@ -262,7 +262,7 @@ describe('ConnectivityManager', () => {
|
|
|
262
262
|
const { AbortedError } = await import('august-yale')
|
|
263
263
|
const err = new AbortedError('client destroyed', undefined, 'UND_ERR_DESTROYED')
|
|
264
264
|
await expect(
|
|
265
|
-
m.execute('test', async () =>
|
|
265
|
+
m.execute('test', async () => Promise.reject(err)),
|
|
266
266
|
).rejects.toBe(err)
|
|
267
267
|
// State stays healthy — no probe scheduled.
|
|
268
268
|
expect(m.getState()).toBe('healthy')
|
|
@@ -275,7 +275,7 @@ describe('ConnectivityManager', () => {
|
|
|
275
275
|
const m = new ConnectivityManager(makeLog(), fakeCredentials)
|
|
276
276
|
await m.init()
|
|
277
277
|
const err = Object.assign(new Error('Bad Gateway'), { statusCode: 502 })
|
|
278
|
-
await m.execute('test', async () =>
|
|
278
|
+
await m.execute('test', async () => Promise.reject(err))
|
|
279
279
|
expect(m.getState()).toBe('degraded')
|
|
280
280
|
})
|
|
281
281
|
})
|
|
@@ -289,7 +289,7 @@ describe('ConnectivityManager', () => {
|
|
|
289
289
|
|
|
290
290
|
// Network failure: degrades and schedules probe.
|
|
291
291
|
const { TimeoutError } = await import('august-yale')
|
|
292
|
-
await m.execute('test', async () =>
|
|
292
|
+
await m.execute('test', async () => Promise.reject(new TimeoutError('boom')))
|
|
293
293
|
expect(m.getState()).toBe('degraded')
|
|
294
294
|
|
|
295
295
|
// Probe calls resetTransport() on the existing client and then its
|
|
@@ -320,7 +320,7 @@ describe('ConnectivityManager', () => {
|
|
|
320
320
|
}))
|
|
321
321
|
|
|
322
322
|
// Trigger degraded.
|
|
323
|
-
await m.execute('test', async () =>
|
|
323
|
+
await m.execute('test', async () => Promise.reject(new TimeoutError('boom')))
|
|
324
324
|
expect(m.getState()).toBe('degraded')
|
|
325
325
|
|
|
326
326
|
// Advance past first backoff + probe timeout.
|
|
@@ -345,7 +345,7 @@ describe('ConnectivityManager', () => {
|
|
|
345
345
|
const m = new ConnectivityManager(makeLog(), fakeCredentials)
|
|
346
346
|
await m.init()
|
|
347
347
|
const { TimeoutError } = await import('august-yale')
|
|
348
|
-
await m.execute('test', async () =>
|
|
348
|
+
await m.execute('test', async () => Promise.reject(new TimeoutError('blip')))
|
|
349
349
|
expect(m.getState()).toBe('degraded')
|
|
350
350
|
// Next call succeeds.
|
|
351
351
|
const result = await m.execute('test', async () => 'recovered')
|
|
@@ -372,7 +372,7 @@ describe('ConnectivityManager', () => {
|
|
|
372
372
|
|
|
373
373
|
// Trigger degraded.
|
|
374
374
|
const { TimeoutError } = await import('august-yale')
|
|
375
|
-
await m.execute('test', async () =>
|
|
375
|
+
await m.execute('test', async () => Promise.reject(new TimeoutError('boom')))
|
|
376
376
|
expect(m.getState()).toBe('degraded')
|
|
377
377
|
|
|
378
378
|
// Advance past the first backoff: probe runs, default mock has
|
|
@@ -406,7 +406,7 @@ describe('ConnectivityManager', () => {
|
|
|
406
406
|
))
|
|
407
407
|
|
|
408
408
|
// Trigger degraded.
|
|
409
|
-
await m.execute('test', async () =>
|
|
409
|
+
await m.execute('test', async () => Promise.reject(new TimeoutError('boom')))
|
|
410
410
|
expect(m.getState()).toBe('degraded')
|
|
411
411
|
|
|
412
412
|
// Advance past first probe → offline.
|
|
@@ -429,7 +429,7 @@ describe('ConnectivityManager', () => {
|
|
|
429
429
|
await m.init()
|
|
430
430
|
|
|
431
431
|
const { TimeoutError } = await import('august-yale')
|
|
432
|
-
await m.execute('test', async () =>
|
|
432
|
+
await m.execute('test', async () => Promise.reject(new TimeoutError('boom')))
|
|
433
433
|
expect(m.getState()).toBe('degraded')
|
|
434
434
|
|
|
435
435
|
// PubNub reconnect → immediate probe. Default mock has .locks()
|
|
@@ -471,8 +471,8 @@ describe('ConnectivityManager', () => {
|
|
|
471
471
|
// Fire two execute()s concurrently — each will see a 401, each will
|
|
472
472
|
// request a rebuild. The manager must coalesce these into one rebuild.
|
|
473
473
|
await Promise.all([
|
|
474
|
-
m.execute('a', async () =>
|
|
475
|
-
m.execute('b', async () =>
|
|
474
|
+
m.execute('a', async () => Promise.reject(authErr)),
|
|
475
|
+
m.execute('b', async () => Promise.reject(authErr)),
|
|
476
476
|
])
|
|
477
477
|
await vi.runAllTimersAsync()
|
|
478
478
|
|
|
@@ -489,14 +489,14 @@ describe('ConnectivityManager', () => {
|
|
|
489
489
|
m.onStateChange(listener)
|
|
490
490
|
|
|
491
491
|
const { TimeoutError } = await import('august-yale')
|
|
492
|
-
await m.execute('test', async () =>
|
|
492
|
+
await m.execute('test', async () => Promise.reject(new TimeoutError('boom')))
|
|
493
493
|
// healthy -> degraded fires once.
|
|
494
494
|
expect(listener).toHaveBeenCalledWith('degraded', 'healthy')
|
|
495
495
|
expect(listener).toHaveBeenCalledTimes(1)
|
|
496
496
|
|
|
497
497
|
// A second network error while already degraded should NOT fire
|
|
498
498
|
// again (no transition).
|
|
499
|
-
await m.execute('test', async () =>
|
|
499
|
+
await m.execute('test', async () => Promise.reject(new TimeoutError('boom')))
|
|
500
500
|
expect(listener).toHaveBeenCalledTimes(1)
|
|
501
501
|
})
|
|
502
502
|
|
|
@@ -508,7 +508,7 @@ describe('ConnectivityManager', () => {
|
|
|
508
508
|
unsubscribe()
|
|
509
509
|
|
|
510
510
|
const { TimeoutError } = await import('august-yale')
|
|
511
|
-
await m.execute('test', async () =>
|
|
511
|
+
await m.execute('test', async () => Promise.reject(new TimeoutError('boom')))
|
|
512
512
|
expect(listener).not.toHaveBeenCalled()
|
|
513
513
|
})
|
|
514
514
|
|
|
@@ -516,11 +516,13 @@ describe('ConnectivityManager', () => {
|
|
|
516
516
|
const m = new ConnectivityManager(makeLog(), fakeCredentials)
|
|
517
517
|
await m.init()
|
|
518
518
|
const good = vi.fn()
|
|
519
|
-
m.onStateChange(() => {
|
|
519
|
+
m.onStateChange(() => {
|
|
520
|
+
throw new Error('listener bug')
|
|
521
|
+
})
|
|
520
522
|
m.onStateChange(good)
|
|
521
523
|
|
|
522
524
|
const { TimeoutError } = await import('august-yale')
|
|
523
|
-
await m.execute('test', async () =>
|
|
525
|
+
await m.execute('test', async () => Promise.reject(new TimeoutError('boom')))
|
|
524
526
|
expect(good).toHaveBeenCalledTimes(1)
|
|
525
527
|
})
|
|
526
528
|
})
|
|
@@ -544,7 +546,7 @@ describe('ConnectivityManager', () => {
|
|
|
544
546
|
))
|
|
545
547
|
|
|
546
548
|
// Trigger degraded.
|
|
547
|
-
await m.execute('test', async () =>
|
|
549
|
+
await m.execute('test', async () => Promise.reject(new TimeoutError('boom')))
|
|
548
550
|
|
|
549
551
|
// Drive past first probe so we land in offline.
|
|
550
552
|
await vi.advanceTimersByTimeAsync(15_000)
|
package/.github/FUNDING.yml
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
name: Bug-Report
|
|
2
|
-
description: Report a Bug to help us improve
|
|
3
|
-
title: "Bug:"
|
|
4
|
-
labels: [bug]
|
|
5
|
-
assignees: 'donavanbecker'
|
|
6
|
-
body:
|
|
7
|
-
- type: markdown
|
|
8
|
-
attributes:
|
|
9
|
-
value: |
|
|
10
|
-
You must use the issue template below when submitting a bug.
|
|
11
|
-
- type: input
|
|
12
|
-
attributes:
|
|
13
|
-
label: Describe The Bug
|
|
14
|
-
placeholder: A clear and concise description of what the bug is.
|
|
15
|
-
validations:
|
|
16
|
-
required: true
|
|
17
|
-
- type: input
|
|
18
|
-
attributes:
|
|
19
|
-
label: To Reproduce
|
|
20
|
-
placeholder: Steps to reproduce the behavior.
|
|
21
|
-
validations:
|
|
22
|
-
required: true
|
|
23
|
-
- type: input
|
|
24
|
-
attributes:
|
|
25
|
-
label: Expected behavior
|
|
26
|
-
placeholder: A clear and concise description of what you expected to happen.
|
|
27
|
-
validations:
|
|
28
|
-
required: true
|
|
29
|
-
- type: textarea
|
|
30
|
-
id: Logs
|
|
31
|
-
attributes:
|
|
32
|
-
label: Relevant log output
|
|
33
|
-
placeholder: Bug reports that do not contain logs may be closed without warning. Show the Homebridge logs here. If using Homebridge Config-UI-X, you can easly download your log by visiting the log page on the UI and Clicking the Download Icon in the top right. Remove any sensitive information, such as your homebridge-august refreshToken. Please Turn on Debug Mode before submitting your Issue so more logs can be shared to fix the issue being submitted.
|
|
34
|
-
render: shell
|
|
35
|
-
validations:
|
|
36
|
-
required: true
|
|
37
|
-
- type: textarea
|
|
38
|
-
id: Config
|
|
39
|
-
attributes:
|
|
40
|
-
label: Config for homebridge-august
|
|
41
|
-
placeholder: Paste your homebridge config.json here. Remove any sensitive information, such as your homebridge-august consumerKey/ consumerSecret / refreshToken.
|
|
42
|
-
render: shell
|
|
43
|
-
validations:
|
|
44
|
-
required: true
|
|
45
|
-
- type: textarea
|
|
46
|
-
attributes:
|
|
47
|
-
label: Screenshots
|
|
48
|
-
description: If applicable add screenshots to help explain your problem.
|
|
49
|
-
placeholder: You can attach images or log files by clicking this area to highlight it and then dragging files in.
|
|
50
|
-
validations:
|
|
51
|
-
required: false
|
|
52
|
-
- type: input
|
|
53
|
-
attributes:
|
|
54
|
-
label: Device & Model
|
|
55
|
-
placeholder: If applicable, add screenshots to help explain your problem.
|
|
56
|
-
validations:
|
|
57
|
-
required: true
|
|
58
|
-
- type: markdown
|
|
59
|
-
attributes:
|
|
60
|
-
value: |
|
|
61
|
-
Environment
|
|
62
|
-
- type: input
|
|
63
|
-
attributes:
|
|
64
|
-
label: Node.js Version
|
|
65
|
-
placeholder: v14.17.6
|
|
66
|
-
validations:
|
|
67
|
-
required: true
|
|
68
|
-
- type: input
|
|
69
|
-
attributes:
|
|
70
|
-
label: NPM Version
|
|
71
|
-
placeholder: v7.22.0
|
|
72
|
-
validations:
|
|
73
|
-
required: true
|
|
74
|
-
- type: input
|
|
75
|
-
attributes:
|
|
76
|
-
label: Homebridge Version
|
|
77
|
-
placeholder: If applicable, add screenshots to help explain your problem.
|
|
78
|
-
validations:
|
|
79
|
-
required: true
|
|
80
|
-
- type: input
|
|
81
|
-
attributes:
|
|
82
|
-
label: Homebridge August Plugin Version
|
|
83
|
-
placeholder: v10.0.1
|
|
84
|
-
validations:
|
|
85
|
-
required: true
|
|
86
|
-
- type: input
|
|
87
|
-
attributes:
|
|
88
|
-
label: Homebridge Config UI X Plugin Version
|
|
89
|
-
placeholder: v4.41.2
|
|
90
|
-
validations:
|
|
91
|
-
required: false
|
|
92
|
-
- type: input
|
|
93
|
-
attributes:
|
|
94
|
-
label: Operating System
|
|
95
|
-
placeholder: Raspbian / Ubuntu / Debian / Windows / macOS / Docker
|
|
96
|
-
validations:
|
|
97
|
-
required: true
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
blank_issues_enabled: false
|
|
2
|
-
contact_links:
|
|
3
|
-
- name: Homebridge Discord Channel for August
|
|
4
|
-
url: https://discord.gg/8fpZA4S
|
|
5
|
-
about: Please ask and answer questions here.
|
|
6
|
-
- name: Homebridge-August - Pull Requests
|
|
7
|
-
url: https://github.com/homebridge-plugins/homebridge-august/pulls
|
|
8
|
-
about: Please report security vulnerabilities here.
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
name: Feature Request
|
|
2
|
-
description: Suggest an idea for this project
|
|
3
|
-
title: "Feature Request: "
|
|
4
|
-
labels: [enhancement]
|
|
5
|
-
assignees: 'donavanbecker'
|
|
6
|
-
body:
|
|
7
|
-
- type: markdown
|
|
8
|
-
attributes:
|
|
9
|
-
value: |
|
|
10
|
-
You must use the issue template below when submitting a feature request.
|
|
11
|
-
- type: markdown
|
|
12
|
-
attributes:
|
|
13
|
-
value: |
|
|
14
|
-
Is your feature request related to a problem? Please describe.
|
|
15
|
-
- type: input
|
|
16
|
-
attributes:
|
|
17
|
-
label: Problem
|
|
18
|
-
placeholder: A clear and concise description of what the problem is. Ex. I am always frustrated when [...]
|
|
19
|
-
validations:
|
|
20
|
-
required: false
|
|
21
|
-
- type: input
|
|
22
|
-
attributes:
|
|
23
|
-
label: Solution
|
|
24
|
-
placeholder: A clear and concise description of what you want to happen.
|
|
25
|
-
validations:
|
|
26
|
-
required: true
|
|
27
|
-
- type: input
|
|
28
|
-
attributes:
|
|
29
|
-
label: Alternatives
|
|
30
|
-
placeholder: A clear and concise description of any alternative solutions or features you have considered.
|
|
31
|
-
validations:
|
|
32
|
-
required: false
|
|
33
|
-
- type: input
|
|
34
|
-
attributes:
|
|
35
|
-
label: Additional context
|
|
36
|
-
placeholder: Add any other context or screenshots about the feature request here. Post device logs here.
|
|
37
|
-
validations:
|
|
38
|
-
required: false
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
name: Support Request
|
|
2
|
-
description: Need help?
|
|
3
|
-
title: "Support Request:"
|
|
4
|
-
labels: [question]
|
|
5
|
-
assignees: 'donavanbecker'
|
|
6
|
-
body:
|
|
7
|
-
- type: markdown
|
|
8
|
-
attributes:
|
|
9
|
-
value: |
|
|
10
|
-
You must use the issue template below when submitting a support request.
|
|
11
|
-
- type: input
|
|
12
|
-
attributes:
|
|
13
|
-
label: Describe Your Problem
|
|
14
|
-
placeholder: A clear and concise description of what problem you are trying to solve.
|
|
15
|
-
validations:
|
|
16
|
-
required: true
|
|
17
|
-
- type: textarea
|
|
18
|
-
id: Logs
|
|
19
|
-
attributes:
|
|
20
|
-
label: Relevant log output
|
|
21
|
-
placeholder: Bug reports that do not contain logs may be closed without warning. Show the Homebridge logs here. If using Homebridge Config-UI-X, you can easly download your log by visiting the log page on the UI and Clicking the Download Icon in the top right. Remove any sensitive information, such as your homebridge-august refreshToken. Please Turn on Debug Mode before submitting your Issue so more logs can be shared to fix the issue being submitted.
|
|
22
|
-
render: shell
|
|
23
|
-
validations:
|
|
24
|
-
required: false
|
|
25
|
-
- type: textarea
|
|
26
|
-
id: Config
|
|
27
|
-
attributes:
|
|
28
|
-
label: Config for homebridge-august
|
|
29
|
-
placeholder: Paste your homebridge config.json here. Remove any sensitive information, such as your homebridge-august consumerKey/ consumerSecret refreshToken.
|
|
30
|
-
render: shell
|
|
31
|
-
validations:
|
|
32
|
-
required: false
|
|
33
|
-
- type: textarea
|
|
34
|
-
attributes:
|
|
35
|
-
label: Screenshots
|
|
36
|
-
description: If applicable add screenshots to help explain your problem.
|
|
37
|
-
placeholder: You can attach images or log files by clicking this area to highlight it and then dragging files in.
|
|
38
|
-
validations:
|
|
39
|
-
required: false
|
|
40
|
-
- type: input
|
|
41
|
-
attributes:
|
|
42
|
-
label: Device & Model
|
|
43
|
-
placeholder: If applicable, add screenshots to help explain your problem.
|
|
44
|
-
validations:
|
|
45
|
-
required: true
|
|
46
|
-
- type: markdown
|
|
47
|
-
attributes:
|
|
48
|
-
value: |
|
|
49
|
-
Environment
|
|
50
|
-
- type: input
|
|
51
|
-
attributes:
|
|
52
|
-
label: Node.js Version
|
|
53
|
-
placeholder: v14.17.5
|
|
54
|
-
validations:
|
|
55
|
-
required: true
|
|
56
|
-
- type: input
|
|
57
|
-
attributes:
|
|
58
|
-
label: NPM Version
|
|
59
|
-
placeholder: v7.20.5
|
|
60
|
-
validations:
|
|
61
|
-
required: true
|
|
62
|
-
- type: input
|
|
63
|
-
attributes:
|
|
64
|
-
label: Homebridge Version
|
|
65
|
-
placeholder: If applicable, add screenshots to help explain your problem.
|
|
66
|
-
validations:
|
|
67
|
-
required: true
|
|
68
|
-
- type: input
|
|
69
|
-
attributes:
|
|
70
|
-
label: Homebridge August Plugin Version
|
|
71
|
-
placeholder: v10.0.1
|
|
72
|
-
validations:
|
|
73
|
-
required: true
|
|
74
|
-
- type: input
|
|
75
|
-
attributes:
|
|
76
|
-
label: Homebridge Config UI X Plugin Version
|
|
77
|
-
placeholder: v4.41.2
|
|
78
|
-
validations:
|
|
79
|
-
required: false
|
|
80
|
-
- type: input
|
|
81
|
-
attributes:
|
|
82
|
-
label: Operating System
|
|
83
|
-
placeholder: Raspbian / Ubuntu / Debian / Windows / macOS / Docker
|
|
84
|
-
validations:
|
|
85
|
-
required: true
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Bug Report
|
|
3
|
-
about: Create a report to help us improve
|
|
4
|
-
title: ''
|
|
5
|
-
labels: bug
|
|
6
|
-
assignees: ''
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
<!-- You must use the issue template below when submitting a bug -->
|
|
11
|
-
|
|
12
|
-
**Describe The Bug:**
|
|
13
|
-
<!-- A clear and concise description of what the bug is. -->
|
|
14
|
-
|
|
15
|
-
**To Reproduce:**
|
|
16
|
-
<!-- Steps to reproduce the behavior. -->
|
|
17
|
-
|
|
18
|
-
**Expected behavior:**
|
|
19
|
-
<!-- A clear and concise description of what you expected to happen. -->
|
|
20
|
-
|
|
21
|
-
**Logs:**
|
|
22
|
-
<!-- Bug reports that do not contain logs may be closed without warning. -->
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
Show the Homebridge / Homebridge Config UI X logs here.
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
**Homebridge Config:**
|
|
29
|
-
|
|
30
|
-
```json
|
|
31
|
-
Show your homebridge config.json here
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
**Screenshots:**
|
|
35
|
-
<!-- If applicable, add screenshots to help explain your problem. -->
|
|
36
|
-
|
|
37
|
-
**Environment:**
|
|
38
|
-
|
|
39
|
-
* **Node.js Version**: <!-- node -v -->
|
|
40
|
-
* **NPM Version**: <!-- npm -v -->
|
|
41
|
-
* **Homebridge Version**: <!-- homebridge -V -->
|
|
42
|
-
* **Homebridge August Plugin Version**:
|
|
43
|
-
* **Homebridge Config UI X Version**:
|
|
44
|
-
* **Operating System**: Raspbian / Ubuntu / Debian / Windows / macOS / Docker
|
|
45
|
-
* **Process Supervisor**: Docker / Systemd / init.d / pm2 / launchctl / hb-service / other / none
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
<!-- Click the "Preview" tab before you submit to ensure the formatting is correct. -->
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Enhancement
|
|
3
|
-
about: Contribute to Plugin through Pull Request
|
|
4
|
-
title: ''
|
|
5
|
-
labels: 'enhancement'
|
|
6
|
-
assignees: 'donavanbecker'
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
**Is your enhancement related to a problem? Please describe.**
|
|
10
|
-
|
|
11
|
-
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
|
|
12
|
-
|
|
13
|
-
**Describe the solution you are addding**
|
|
14
|
-
|
|
15
|
-
<!-- A clear and concise description of what you want to happen. -->
|
|
16
|
-
|
|
17
|
-
**Changes Proposed in this Pull Request**
|
|
18
|
-
|
|
19
|
-
<!-- A clear and concise description of what is being changed. -->
|
|
20
|
-
|
|
21
|
-
**Describe alternatives you've considered**
|
|
22
|
-
|
|
23
|
-
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
|
|
24
|
-
|
|
25
|
-
**Additional context**
|
|
26
|
-
|
|
27
|
-
<!-- Add any other context or screenshots about the feature request here. -->
|