@homebridge-plugins/homebridge-august 3.4.0-beta.3 → 3.4.0-beta.5

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 CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  - feat(matter): expose lock battery via a PowerSource cluster (@zbuc)
6
6
  - feat(ui): add, remove and hide devices from the config via the devices tab
7
+ - style(ui): standardise the custom ui layout and sync the support tab with the readme
8
+ - feat(ui): add a remove all devices action to the my devices tab
7
9
 
8
10
  ## v3.3.2 (2026-07-22)
9
11
 
@@ -32,8 +32,8 @@
32
32
  </div>
33
33
  </div>
34
34
  <div id="menuWrapper" class="btn-group w-100 mb-0" role="group" aria-label="UI Menu" style="display: none">
35
- <button type="button" class="btn btn-primary" id="menuDevices">Devices</button>
36
35
  <button type="button" class="btn btn-primary" id="menuSettings">Settings</button>
36
+ <button type="button" class="btn btn-primary" id="menuDevices">My Devices</button>
37
37
  <button type="button" class="btn btn-primary mr-0" id="menuHome">Support</button>
38
38
  </div>
39
39
  <div id="pageDevices" class="mt-4" style="display: none">
@@ -55,6 +55,17 @@
55
55
  </button>
56
56
  </div>
57
57
  </li>
58
+ <li class="list-group-item">
59
+ <div class="d-flex justify-content-between align-items-center">
60
+ <div class="pr-2">
61
+ <div>Remove All Devices</div>
62
+ <div class="text-muted action-desc" id="removeAllText">Remove every device from the plugin config.</div>
63
+ </div>
64
+ <button type="button" class="btn btn-primary m-0 ml-3 py-1 min-w-50" id="removeAllBtn" aria-label="Remove all devices from the config">
65
+ <i aria-hidden="true" class="fas fa-arrow-right"></i>
66
+ </button>
67
+ </div>
68
+ </li>
58
69
  <li class="list-group-item">
59
70
  <div class="d-flex justify-content-between align-items-center">
60
71
  <div class="pr-2">
@@ -105,43 +116,58 @@
105
116
  </div>
106
117
  <div id="pageSupport" class="mt-4" style="display: none">
107
118
  <p class="text-center lead">Thank you for using <strong>homebridge-august</strong></p>
108
- <p class="text-center">The links below will take you to our GitHub wiki</p>
109
- <h5>Setup</h5>
119
+ <h5>Plugin Information</h5>
120
+ <ul>
121
+ <li>This plugin allows you to view and control your <a href="https://august.com" target="_blank">August</a> and <a href="https://shopyalehome.com" target="_blank">Yale</a> locks within HomeKit. The plugin:</li>
110
122
  <ul>
111
- <li>
112
- <a href="https://github.com/homebridge-plugins/homebridge-august/wiki" target="_blank">Wiki Home</a>
113
- </li>
114
- <li>
115
- <a href="https://github.com/homebridge-plugins/homebridge-august/wiki/Configuration" target="_blank">Configuration</a>
116
- </li>
117
- <li>
118
- <a href="https://github.com/homebridge-plugins/homebridge-august/wiki/Beta-Version" target="_blank">Beta Version</a>
119
- </li>
120
- <li>
121
- <a href="https://github.com/homebridge-plugins/homebridge-august/wiki/Node-Version" target="_blank">Node Version</a>
122
- </li>
123
- <li>
124
- <a href="https://github.com/homebridge-plugins/homebridge-august/wiki/Uninstallation"
125
- target="_blank">Uninstallation</a>
126
- </li>
123
+ <li>requires your August account credentials to work</li>
124
+ <li>connects to the August cloud to discover and control your locks</li>
127
125
  </ul>
128
- <h5>Features</h5>
126
+ </ul>
127
+ <p>&gt; [!IMPORTANT]</p>
128
+ <p>&gt; <strong>Yale Home accounts (common outside North America) can no longer sign in through this plugin.</strong> Yale has switched off password-based login on its servers (verified July 2026) and now requires an OAuth sign-in that is only available to officially registered partners. If you have a Yale Home account: check whether your lock supports <strong>native HomeKit</strong> (many Yale Home locks do — look for a HomeKit option in the Yale Home app), or use Home Assistant's official Yale integration with its HomeKit Bridge.</p>
129
+ <h5>Prerequisites</h5>
130
+ <ul>
131
+ <li>To use this plugin, you will need to already have:</li>
129
132
  <ul>
130
- <li>
131
- <a href="https://github.com/homebridge-plugins/homebridge-august/wiki/Supported-Devices" target="_blank">Supported
132
- Devices</a>
133
- </li>
133
+ <li><a href="https://nodejs.org" target="_blank">Node</a>: latest version of <code>v22</code> or <code>v24</code> - any other major version is not supported.</li>
134
+ <li><a href="https://homebridge.io" target="_blank">Homebridge</a>: <code>v2</code> - refer to link for more information and installation instructions.</li>
134
135
  </ul>
136
+ </ul>
137
+ <h5>Setup</h5>
138
+ <ul>
139
+ <li><a href="https://github.com/homebridge-plugins/homebridge-august/wiki/Installation" target="_blank">Installation</a></li>
140
+ <li><a href="https://github.com/homebridge-plugins/homebridge-august/wiki/Configuration" target="_blank">Configuration</a></li>
141
+ <li><a href="https://github.com/homebridge-plugins/homebridge-august/wiki/Beta-Version" target="_blank">Beta Version</a></li>
142
+ <li><a href="https://github.com/homebridge-plugins/homebridge-august/wiki/Node-Version" target="_blank">Node Version</a></li>
143
+ </ul>
144
+ <h5>Supported Devices</h5>
145
+ <ul>
146
+ <li>August Smart Lock (AUG-SL04-C03-N04)</li>
147
+ <li>August Smart Lock Pro 3rd Gen (AUG-SL03-C02-G03-C)</li>
148
+ <li>August WiFi Smart Lock (Gen 4)</li>
149
+ <li>Yale Assure Lock (AUG-MD01)</li>
150
+ <li>Yale Assure Lock 2 (YDR410)</li>
151
+ <li>Yale Assure Lock SL (YDR256)</li>
152
+ </ul>
135
153
  <h5>Help/About</h5>
136
- <ul>
137
- <li>
138
- <a href="https://github.com/homebridge-plugins/homebridge-august/issues/new/choose" target="_blank">Support Request</a>
139
- </li>
140
- <li>
141
- <a href="https://github.com/homebridge-plugins/homebridge-august/blob/latest/CHANGELOG.md"
142
- target="_blank">Changelog</a>
143
- </li>
144
- </ul>
154
+ <ul>
155
+ <li><a href="https://github.com/homebridge-plugins/homebridge-august/wiki/Common-Errors" target="_blank">Common Errors</a></li>
156
+ <li><a href="https://github.com/homebridge-plugins/homebridge-august/issues/new/choose" target="_blank">Support Request</a></li>
157
+ <li><a href="https://github.com/homebridge-plugins/homebridge-august/blob/latest/CHANGELOG.md" target="_blank">Changelog</a></li>
158
+ <li><a href="https://github.com/sponsors/bwp91" target="_blank">About Me</a></li>
159
+ </ul>
160
+ <h5>Credits</h5>
161
+ <ul>
162
+ <li>To <a href="https://github.com/donavanbecker" target="_blank">@donavanbecker</a>: the original creator and maintainer of this plugin.</li>
163
+ <li>To <a href="https://github.com/hufftheweevil" target="_blank">@hufftheweevil</a>: the author of the <a href="https://github.com/hufftheweevil/august-api" target="_blank">august-api</a> module this plugin builds on.</li>
164
+ <li>To the creators/contributors of <a href="https://homebridge.io" target="_blank">Homebridge</a> who make this plugin possible.</li>
165
+ </ul>
166
+ <h5>Disclaimer</h5>
167
+ <ul>
168
+ <li>I am in no way affiliated with August or Yale and this plugin is a personal project that I maintain in my free time.</li>
169
+ <li>Use this plugin entirely at your own risk - please see licence for more information.</li>
170
+ </ul>
145
171
  </div>
146
172
  <script>
147
173
  (async () => {
@@ -153,6 +179,7 @@
153
179
  // so staged-but-unsaved edits made in the Settings tab are respected
154
180
  let pickerAccessories = [];
155
181
  let removeConfirmTimer;
182
+ let removeAllConfirmTimer;
156
183
 
157
184
  // The action buttons always show the settings-page arrow; the row text
158
185
  // (and the button's aria-label) says what the arrow will do
@@ -367,6 +394,51 @@
367
394
  homebridge.toast.error(err.message, 'Error');
368
395
  }
369
396
  });
397
+ const resetRemoveAllButton = () => {
398
+ const btn = document.getElementById('removeAllBtn');
399
+ clearTimeout(removeAllConfirmTimer);
400
+ delete btn.dataset.confirm;
401
+ btn.classList.remove('btn-danger');
402
+ btn.classList.add('btn-primary');
403
+ btn.innerHTML = actionArrow;
404
+ btn.setAttribute('aria-label', 'Remove all devices from the config');
405
+ document.getElementById('removeAllText').innerHTML = 'Remove every device from the plugin config.';
406
+ };
407
+
408
+ document.getElementById('removeAllBtn').addEventListener('click', async () => {
409
+ try {
410
+ const btn = document.getElementById('removeAllBtn');
411
+ const blocks = await getConfigBlocks();
412
+ const config = blocks[0];
413
+ const total = config.options && Array.isArray(config.options.devices) ? config.options.devices.length : 0;
414
+ if (total === 0) {
415
+ resetRemoveAllButton();
416
+ homebridge.toast.info('There are no devices in the config.', 'Nothing To Remove');
417
+ return;
418
+ }
419
+ if (btn.dataset.confirm !== 'yes') {
420
+ // Removing everything always asks for a second click, since any
421
+ // settings on the entries would be lost
422
+ btn.dataset.confirm = 'yes';
423
+ btn.classList.remove('btn-primary');
424
+ btn.classList.add('btn-danger');
425
+ btn.innerHTML = actionArrow;
426
+ btn.setAttribute('aria-label', 'Confirm removing all devices from the config');
427
+ document.getElementById('removeAllText').innerHTML = 'Any settings on these entries will be lost. Click again to remove all ' + total + (total === 1 ? ' entry.' : ' entries.');
428
+ removeAllConfirmTimer = setTimeout(resetRemoveAllButton, 5000);
429
+ return;
430
+ }
431
+ delete config.options.devices;
432
+ await homebridge.updatePluginConfig(blocks);
433
+ resetRemoveAllButton();
434
+ setConfigButton(false);
435
+ setHideControl(false);
436
+ homebridge.toast.success(total + ' device entr' + (total === 1 ? 'y' : 'ies') + ' removed - press Save to apply.', 'Removed From Config');
437
+ } catch (err) {
438
+ homebridge.toast.error(err.message, 'Error');
439
+ }
440
+ });
441
+
370
442
  // ===== End device picker =====
371
443
  showIntro = () => {
372
444
  const introLink = document.getElementById('introLink');
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@homebridge-plugins/homebridge-august",
3
3
  "displayName": "August",
4
4
  "type": "module",
5
- "version": "3.4.0-beta.3",
5
+ "version": "3.4.0-beta.5",
6
6
  "description": "The August plugin allows you to access your August & Yale device(s) from HomeKit.",
7
7
  "author": {
8
8
  "name": "bwp91",