@mp-consulting/homebridge-unifi-access 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/LICENSE.md +19 -2
  2. package/README.md +9 -8
  3. package/dist/access-controller.d.ts +7 -7
  4. package/dist/access-controller.js +45 -50
  5. package/dist/access-controller.js.map +1 -1
  6. package/dist/access-device-catalog.d.ts +3 -3
  7. package/dist/access-device-catalog.js +52 -52
  8. package/dist/access-device.d.ts +5 -5
  9. package/dist/access-device.js +36 -36
  10. package/dist/access-events.d.ts +4 -4
  11. package/dist/access-events.js +22 -20
  12. package/dist/access-events.js.map +1 -1
  13. package/dist/access-options.d.ts +1 -1
  14. package/dist/access-options.js +44 -46
  15. package/dist/access-options.js.map +1 -1
  16. package/dist/access-platform.d.ts +3 -3
  17. package/dist/access-platform.js +13 -13
  18. package/dist/access-platform.js.map +1 -1
  19. package/dist/hub/access-hub-api.d.ts +3 -2
  20. package/dist/hub/access-hub-api.js +28 -22
  21. package/dist/hub/access-hub-api.js.map +1 -1
  22. package/dist/hub/access-hub-events.d.ts +1 -1
  23. package/dist/hub/access-hub-events.js +21 -21
  24. package/dist/hub/access-hub-events.js.map +1 -1
  25. package/dist/hub/access-hub-mqtt.d.ts +1 -1
  26. package/dist/hub/access-hub-mqtt.js +45 -45
  27. package/dist/hub/access-hub-services.d.ts +1 -1
  28. package/dist/hub/access-hub-services.js +177 -99
  29. package/dist/hub/access-hub-services.js.map +1 -1
  30. package/dist/hub/access-hub-types.d.ts +21 -21
  31. package/dist/hub/access-hub-types.js +16 -16
  32. package/dist/hub/access-hub-utils.d.ts +7 -7
  33. package/dist/hub/access-hub-utils.js +19 -18
  34. package/dist/hub/access-hub-utils.js.map +1 -1
  35. package/dist/hub/access-hub.d.ts +10 -8
  36. package/dist/hub/access-hub.js +74 -47
  37. package/dist/hub/access-hub.js.map +1 -1
  38. package/dist/hub/index.d.ts +4 -4
  39. package/dist/hub/index.js +2 -2
  40. package/dist/hub/index.js.map +1 -1
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.js +2 -2
  43. package/dist/settings.d.ts +3 -3
  44. package/dist/settings.js +14 -14
  45. package/dist/settings.js.map +1 -1
  46. package/homebridge-ui/public/app.js +31 -31
  47. package/homebridge-ui/public/index.html +2 -2
  48. package/homebridge-ui/public/modules/constants.js +12 -12
  49. package/homebridge-ui/public/modules/controllers.js +61 -61
  50. package/homebridge-ui/public/modules/discovery.js +33 -33
  51. package/homebridge-ui/public/modules/dom-helpers.js +8 -8
  52. package/homebridge-ui/public/modules/feature-options/option-state.js +26 -16
  53. package/homebridge-ui/public/modules/feature-options/renderer.js +133 -115
  54. package/homebridge-ui/public/modules/feature-options/scope.js +44 -36
  55. package/homebridge-ui/public/modules/feature-options.js +1 -1
  56. package/homebridge-ui/public/modules/state.js +1 -1
  57. package/homebridge-ui/server.js +61 -53
  58. package/package.json +9 -9
package/LICENSE.md CHANGED
@@ -1,5 +1,22 @@
1
- MIT License
2
- ===========
1
+ Internet Systems Consortium License (Original Work)
2
+ ====================================================
3
+
4
+ Copyright (c) 2017-2026, HJD (https://github.com/hjdhjd)
5
+
6
+ Permission to use, copy, modify, and/or distribute this software for any purpose
7
+ with or without fee is hereby granted, provided that the above copyright notice
8
+ and this permission notice appear in all copies.
9
+
10
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
11
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
12
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
13
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
14
+ OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
16
+ THIS SOFTWARE.
17
+
18
+ MIT License (Modifications)
19
+ ===========================
3
20
 
4
21
  Copyright (c) 2026 Mickael Palma
5
22
 
package/README.md CHANGED
@@ -6,11 +6,12 @@
6
6
 
7
7
  [![Downloads](https://img.shields.io/npm/dt/@mp-consulting/homebridge-unifi-access?color=%230559C9&logo=icloud&logoColor=%23FFFFFF&style=for-the-badge)](https://www.npmjs.com/package/@mp-consulting/homebridge-unifi-access)
8
8
  [![Version](https://img.shields.io/npm/v/@mp-consulting/homebridge-unifi-access?color=%230559C9&label=Latest%20Version&logo=ubiquiti&logoColor=%23FFFFFF&style=for-the-badge)](https://www.npmjs.com/package/@mp-consulting/homebridge-unifi-access)
9
- [![verified-by-homebridge](https://img.shields.io/badge/homebridge-verified-blueviolet?color=%23491F59&style=for-the-badge&logoColor=%23FFFFFF&logo=homebridge)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
10
9
  [![License](https://img.shields.io/npm/l/@mp-consulting/homebridge-unifi-access?color=%230559C9&logo=open%20source%20initiative&logoColor=%23FFFFFF&style=for-the-badge)](LICENSE.md)
11
10
 
12
11
  Complete HomeKit support for the [UniFi Access](https://ui.com/door-access) ecosystem using [Homebridge](https://homebridge.io).
13
12
 
13
+ > Originally based on [homebridge-unifi-access](https://github.com/hjdhjd/homebridge-unifi-access) by [HJD](https://github.com/hjdhjd), licensed under the ISC License. This fork has been substantially rewritten by [MP Consulting](https://github.com/mp-consulting).
14
+
14
15
  </div>
15
16
 
16
17
  ## Table of Contents
@@ -48,8 +49,8 @@ This plugin discovers all your supported UniFi Access devices and makes them ava
48
49
  - **Automatic name sync** - device and door names from UniFi Access are automatically reflected in HomeKit, including per-door names for multi-door hubs like the UA Gate
49
50
  - **Multiple controllers** - seamlessly integrate several UniFi Access controllers into HomeKit
50
51
  - **Realtime device detection** - automatically adds and removes devices in HomeKit as they change on your controller, without restarting Homebridge
51
- - **Customizable** - [feature options](docs/FeatureOptions.md) let you show/hide specific devices and tailor behavior via the built-in webUI
52
- - **MQTT support** - publish events to an [MQTT broker](docs/MQTT.md) for further automation
52
+ - **Customizable** - [feature options](docs/feature-options.md) let you show/hide specific devices and tailor behavior via the built-in webUI
53
+ - **MQTT support** - publish events to an [MQTT broker](docs/mqtt.md) for further automation
53
54
 
54
55
  ## Prerequisites
55
56
 
@@ -100,14 +101,14 @@ The recommended way to configure the plugin is through the [Homebridge UI](https
100
101
  | `controllers[].name` | Custom name for the controller (used in logs) |
101
102
  | `controllers[].mqttUrl` | MQTT broker URL (e.g. `mqtt://1.2.3.4`) |
102
103
  | `controllers[].mqttTopic` | MQTT base topic (default: `unifi/access`) |
103
- | `options` | Array of [feature options](docs/FeatureOptions.md) for granular control |
104
+ | `options` | Array of [feature options](docs/feature-options.md) for granular control |
104
105
  | `ringDelay` | Delay in seconds between doorbell rings (default: `0`) |
105
106
 
106
107
  ## Documentation
107
108
 
108
- - [Feature Options](docs/FeatureOptions.md) - show/hide devices and customize behavior
109
- - [MQTT](docs/MQTT.md) - configure MQTT event publishing
110
- - [Events](docs/Events.md) - UniFi Access event types and payloads
109
+ - [Feature Options](docs/feature-options.md) - show/hide devices and customize behavior
110
+ - [MQTT](docs/mqtt.md) - configure MQTT event publishing
111
+ - [Events](docs/events.md) - UniFi Access event types and payloads
111
112
  - [UniFi Access API](https://www.npmjs.com/package/unifi-access) - native API library
112
113
  - [Changelog](CHANGELOG.md) - release notes and version history
113
114
 
@@ -161,4 +162,4 @@ When mismatches are found, update the schemas in `tests/event-schemas.ts` (the s
161
162
 
162
163
  ## License
163
164
 
164
- [MIT](LICENSE.md)
165
+ Original work by [HJD](https://github.com/hjdhjd) under [ISC](LICENSE.md). Modifications by Mickael Palma under [MIT](LICENSE.md).
@@ -1,10 +1,10 @@
1
- import type { PlatformAccessory } from "homebridge";
2
- import { AccessApi, type AccessControllerConfig, type AccessDeviceConfig } from "unifi-access";
3
- import { type HomebridgePluginLogging, MqttClient, type Nullable } from "homebridge-plugin-utils";
4
- import type { AccessControllerOptions } from "./access-options.js";
5
- import type { AccessDevice } from "./access-device.js";
6
- import { AccessEvents } from "./access-events.js";
7
- import type { AccessPlatform } from "./access-platform.js";
1
+ import type { PlatformAccessory } from 'homebridge';
2
+ import { AccessApi, type AccessControllerConfig, type AccessDeviceConfig } from 'unifi-access';
3
+ import { type HomebridgePluginLogging, MqttClient, type Nullable } from 'homebridge-plugin-utils';
4
+ import type { AccessControllerOptions } from './access-options.js';
5
+ import type { AccessDevice } from './access-device.js';
6
+ import { AccessEvents } from './access-events.js';
7
+ import type { AccessPlatform } from './access-platform.js';
8
8
  export declare class AccessController {
9
9
  private api;
10
10
  config: AccessControllerOptions;
@@ -2,17 +2,17 @@
2
2
  *
3
3
  * access-controller.ts: Access controller device class for UniFi Access.
4
4
  */
5
- import { ACCESS_CONTROLLER_REFRESH_INTERVAL, ACCESS_CONTROLLER_RETRY_INTERVAL, PLATFORM_NAME, PLUGIN_NAME, createPrefixedLogger, isValidAddress, normalizeMac } from "./settings.js";
6
- import { AccessApi } from "unifi-access";
7
- import { MqttClient, retry, sanitizeName, sleep } from "homebridge-plugin-utils";
8
- import { AccessEventType } from "./access-types.js";
9
- import { AccessEvents } from "./access-events.js";
10
- import { AccessHub } from "./hub/index.js";
11
- import { getDeviceCatalog } from "./access-device-catalog.js";
12
- import util from "node:util";
5
+ import { ACCESS_CONTROLLER_REFRESH_INTERVAL, ACCESS_CONTROLLER_RETRY_INTERVAL, PLATFORM_NAME, PLUGIN_NAME, createPrefixedLogger, isValidAddress, normalizeMac, } from './settings.js';
6
+ import { AccessApi } from 'unifi-access';
7
+ import { MqttClient, retry, sanitizeName, sleep } from 'homebridge-plugin-utils';
8
+ import { AccessEventType } from './access-types.js';
9
+ import { AccessEvents } from './access-events.js';
10
+ import { AccessHub } from './hub/index.js';
11
+ import { getDeviceCatalog } from './access-device-catalog.js';
12
+ import util from 'node:util';
13
13
  // Check if a device has supported hub or reader capabilities.
14
14
  function isSupportedDevice(device) {
15
- return ["is_hub", "is_reader"].some(capability => device.capabilities.includes(capability));
15
+ return ['is_hub', 'is_reader'].some(capability => device.capabilities.includes(capability));
16
16
  }
17
17
  export class AccessController {
18
18
  api;
@@ -50,7 +50,7 @@ export class AccessController {
50
50
  }
51
51
  // Validate that the controller address is not a loopback, link-local, or otherwise invalid address.
52
52
  if (!isValidAddress(accessOptions.address)) {
53
- this.log.error("Invalid controller address: %s. Please provide a valid network address.", accessOptions.address);
53
+ this.log.error('Invalid controller address: %s. Please provide a valid network address.', accessOptions.address);
54
54
  return;
55
55
  }
56
56
  }
@@ -62,8 +62,8 @@ export class AccessController {
62
62
  // Initialize our connection to the UniFi Access controller.
63
63
  async login() {
64
64
  // The plugin has been disabled globally. Let the user know that we're done here.
65
- if (!this.hasFeature("Device")) {
66
- this.log.info("Disabling this UniFi Access controller.");
65
+ if (!this.hasFeature('Device')) {
66
+ this.log.info('Disabling this UniFi Access controller.');
67
67
  return;
68
68
  }
69
69
  // Initialize our connection to the UniFi Access API.
@@ -75,12 +75,12 @@ export class AccessController {
75
75
  }
76
76
  },
77
77
  info: (message, ...parameters) => this.platform.log.info(util.format(message, ...parameters)),
78
- warn: (message, ...parameters) => this.platform.log.warn(util.format(message, ...parameters))
78
+ warn: (message, ...parameters) => this.platform.log.warn(util.format(message, ...parameters)),
79
79
  };
80
80
  // Create our connection to the Access API.
81
81
  this.udaApi = new AccessApi(udaLog);
82
- // Attempt to login to the Access controller, retrying at reasonable intervals. This accounts for cases where the Access controller or the network connection
83
- // may not be fully available when we startup.
82
+ // Attempt to login to the Access controller, retrying at reasonable intervals. This accounts for cases where the Access controller or the network
83
+ // connection may not be fully available when we startup.
84
84
  await retry(async () => this.udaApi.login(this.config.address, this.config.username, this.config.password), ACCESS_CONTROLLER_RETRY_INTERVAL * 1000);
85
85
  // Now, let's get the bootstrap configuration from the Access controller.
86
86
  await this.bootstrapController();
@@ -89,17 +89,18 @@ export class AccessController {
89
89
  // Assign our name if the user hasn't explicitly specified a preference.
90
90
  this.name = this.config.name ?? this.udaApi.name;
91
91
  // We successfully logged in.
92
- this.log.info("Connected to %s (UniFi Access %s running on UniFi OS %s).", this.config.address, this.uda.version, this.uda.host.firmware_version);
92
+ this.log.info('Connected to %s (UniFi Access %s running on UniFi OS %s).', this.config.address, this.uda.version, this.uda.host.firmware_version);
93
93
  // Now that we know the Access controller configuration, check to see if we've disabled it.
94
- if (!this.hasFeature("Device")) {
94
+ if (!this.hasFeature('Device')) {
95
95
  this.udaApi.logout();
96
- this.log.info("Disabling this UniFi Access controller in HomeKit.");
97
- // Let's sleep for thirty seconds to give all the accessories a chance to load before disabling everything. Homebridge doesn't have a good mechanism to notify us
98
- // when all the cached accessories are loaded at startup.
96
+ this.log.info('Disabling this UniFi Access controller in HomeKit.');
97
+ // Let's sleep for thirty seconds to give all the accessories a chance to load before disabling everything. Homebridge doesn't have a good mechanism
98
+ // to notify us when all the cached accessories are loaded at startup.
99
99
  await sleep(30);
100
- // Unregister all the accessories for this controller from Homebridge that may have been restored already. Any additional ones will be automatically caught when
101
- // they are restored.
102
- this.platform.accessories.filter(accessory => accessory.context.controller === this.uda.host.mac).map(accessory => this.removeHomeKitDevice(accessory, true));
100
+ // Unregister all the accessories for this controller from Homebridge that may have been restored already. Any additional ones will be automatically
101
+ // caught when they are restored.
102
+ this.platform.accessories.filter(accessory => accessory.context.controller === this.uda.host.mac)
103
+ .map(accessory => this.removeHomeKitDevice(accessory, true));
103
104
  return;
104
105
  }
105
106
  // Initialize our UniFi Access events handler.
@@ -115,7 +116,7 @@ export class AccessController {
115
116
  if (!device.is_managed) {
116
117
  continue;
117
118
  }
118
- this.log.info("Discovered %s: %s.", this.resolveDeviceModel(device), this.udaApi.getDeviceName(device, this.resolveDeviceName(device), true));
119
+ this.log.info('Discovered %s: %s.', this.resolveDeviceModel(device), this.udaApi.getDeviceName(device, this.resolveDeviceName(device), true));
119
120
  }
120
121
  }
121
122
  // Bootstrap refresh loop. Clear any existing timer to prevent accumulation.
@@ -133,7 +134,7 @@ export class AccessController {
133
134
  // Initialize our Access controller device sync.
134
135
  syncUdaHomeKit();
135
136
  // Let's set a listener to wait for bootstrap events to occur so we can keep ourselves in sync with the Access controller.
136
- this.udaApi.on("bootstrap", () => {
137
+ this.udaApi.on('bootstrap', () => {
137
138
  // Sync our device view.
138
139
  syncUdaHomeKit();
139
140
  // Refresh our bootstrap.
@@ -151,7 +152,7 @@ export class AccessController {
151
152
  return true;
152
153
  }
153
154
  // Default to an unknown device type.
154
- this.log.error("Unknown device class %s detected for %s.", device.device_type, this.resolveDeviceName(device));
155
+ this.log.error('Unknown device class %s detected for %s.', device.device_type, this.resolveDeviceName(device));
155
156
  return false;
156
157
  }
157
158
  // Discover UniFi Access devices that may have been added to the controller since we last checked.
@@ -181,11 +182,11 @@ export class AccessController {
181
182
  }
182
183
  // Generate this device's unique identifier. For multi-door devices, we append source_id to the MAC address to distinguish them.
183
184
  const catalog = getDeviceCatalog(device.device_type);
184
- const uuid = this.hap.uuid.generate(device.mac + (catalog?.appendsSourceId ? "-" + device.source_id.toUpperCase() : ""));
185
+ const uuid = this.hap.uuid.generate(device.mac + (catalog?.appendsSourceId ? '-' + device.source_id.toUpperCase() : ''));
185
186
  // See if we already know about this accessory.
186
187
  let accessory = this.platform.accessories.find(x => x.UUID === uuid);
187
188
  // Enable or disable certain devices based on configuration parameters.
188
- if (!this.hasFeature("Device", device)) {
189
+ if (!this.hasFeature('Device', device)) {
189
190
  if (accessory) {
190
191
  this.removeHomeKitDevice(accessory, true);
191
192
  }
@@ -194,7 +195,7 @@ export class AccessController {
194
195
  // We've got a new device, let's add it to HomeKit.
195
196
  if (!accessory) {
196
197
  accessory = new this.api.platformAccessory(sanitizeName(this.resolveDeviceName(device)), uuid);
197
- this.log.info("%s: Adding %s to HomeKit.", this.udaApi.getFullName(device), device.display_model);
198
+ this.log.info('%s: Adding %s to HomeKit.', this.udaApi.getFullName(device), device.display_model);
198
199
  // Register this accessory with homebridge and add it to the accessory array so we can track it.
199
200
  this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
200
201
  this.platform.accessories.push(accessory);
@@ -206,8 +207,7 @@ export class AccessController {
206
207
  return true;
207
208
  }
208
209
  // Update the configuration on an existing Access device.
209
- // eslint-disable-next-line camelcase
210
- this.events.emit(AccessEventType.DEVICE_UPDATE, { data: device, event: AccessEventType.DEVICE_UPDATE, event_object_id: device.unique_id });
210
+ this.events.emit(AccessEventType.DEVICE_UPDATE, { data: device, event: AccessEventType.DEVICE_UPDATE, event_object_id: device.unique_id, receiver_id: '', save_to_history: false });
211
211
  return true;
212
212
  }
213
213
  // Discover and sync UniFi Access devices between HomeKit and the Access controller.
@@ -216,7 +216,7 @@ export class AccessController {
216
216
  return false;
217
217
  }
218
218
  if (this.udaApi.devices && !this.discoverDevices(this.udaApi.devices)) {
219
- this.log.error("Error discovering devices.");
219
+ this.log.error('Error discovering devices.');
220
220
  }
221
221
  // Remove Access devices that are no longer found on this Access controller, but we still have in HomeKit.
222
222
  this.cleanupDevices();
@@ -227,16 +227,14 @@ export class AccessController {
227
227
  // Cleanup removed Access devices from HomeKit.
228
228
  cleanupDevices() {
229
229
  // Process the device removal queue before we do anything else.
230
- this.platform.accessories.filter(accessory => accessory.UUID in this.deviceRemovalQueue).map(accessory =>
231
- // eslint-disable-next-line @stylistic/implicit-arrow-linebreak
232
- this.removeHomeKitDevice(accessory, !this.platform.featureOptions.test("Device", (accessory.getService(this.hap.Service.AccessoryInformation)?.getCharacteristic(this.hap.Characteristic.SerialNumber).value ?? ""), this.id)));
230
+ this.platform.accessories.filter(accessory => accessory.UUID in this.deviceRemovalQueue).map(accessory => this.removeHomeKitDevice(accessory, !this.platform.featureOptions.test('Device', (accessory.getService(this.hap.Service.AccessoryInformation)?.getCharacteristic(this.hap.Characteristic.SerialNumber).value ?? ''), this.id)));
233
231
  for (const accessory of this.platform.accessories) {
234
232
  const accessDevice = this.configuredDevices[accessory.UUID];
235
- // Check to see if we have an orphan - where we haven't configured this in the plugin, but the accessory still exists in HomeKit. One example of when this might
236
- // happen is when Homebridge might be shutdown and a device is then removed. When we start back up, the device still exists in HomeKit but not in Access. We
237
- // catch those orphan devices here.
233
+ // Check to see if we have an orphan - where we haven't configured this in the plugin, but the accessory still exists in HomeKit. One example of
234
+ // when this might happen is when Homebridge might be shutdown and a device is then removed. When we start back up, the device still exists in
235
+ // HomeKit but not in Access. We catch those orphan devices here.
238
236
  if (!accessDevice) {
239
- this.removeHomeKitDevice(accessory, !this.platform.featureOptions.test("Device", (accessory.getService(this.hap.Service.AccessoryInformation)?.getCharacteristic(this.hap.Characteristic.SerialNumber).value ?? "")));
237
+ this.removeHomeKitDevice(accessory, !this.platform.featureOptions.test('Device', (accessory.getService(this.hap.Service.AccessoryInformation)?.getCharacteristic(this.hap.Characteristic.SerialNumber).value ?? '')));
240
238
  continue;
241
239
  }
242
240
  // If we don't have the Access bootstrap JSON available, we're done. We need to know what's on the Access controller in order to determine what to do with
@@ -252,18 +250,16 @@ export class AccessController {
252
250
  continue;
253
251
  }
254
252
  // Process the device removal.
255
- this.removeHomeKitDevice(accessory, !this.hasFeature("Device", accessDevice.uda));
253
+ this.removeHomeKitDevice(accessory, !this.hasFeature('Device', accessDevice.uda));
256
254
  }
257
255
  }
258
256
  // Utility to retrieve a reasonable device name for an Access device.
259
257
  resolveDeviceName(device) {
260
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
261
- return (device.alias?.length ? device.alias : device.name) ?? device.display_model ?? device.model ?? device.device_type ?? "Access Device";
258
+ return (device.alias?.length ? device.alias : device.name) ?? device.display_model ?? device.model ?? device.device_type ?? 'Access Device';
262
259
  }
263
260
  // Utility to retrieve a reasonable device model for an Access device.
264
261
  resolveDeviceModel(device) {
265
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
266
- return device.display_model ?? device.model ?? device.device_type ?? "Unknown Model";
262
+ return device.display_model ?? device.model ?? device.device_type ?? 'Unknown Model';
267
263
  }
268
264
  // Remove an individual Access device from HomeKit.
269
265
  removeHomeKitDevice(accessory, noRemovalDelay = false) {
@@ -275,14 +271,14 @@ export class AccessController {
275
271
  if (accessory.context.controller !== this.uda.host.mac) {
276
272
  return;
277
273
  }
278
- const delayInterval = this.getFeatureNumber("Controller.DelayDeviceRemoval") ?? 0;
279
- // For certain use cases, we may want to defer removal of an Access device where Access may lose track of devices for a brief period of time. This prevents a
280
- // potential back-and-forth where devices are removed momentarily only to be readded later.
274
+ const delayInterval = this.getFeatureNumber('Controller.DelayDeviceRemoval') ?? 0;
275
+ // For certain use cases, we may want to defer removal of an Access device where Access may lose track of devices for a brief period of time.
276
+ // This prevents a potential back-and-forth where devices are removed momentarily only to be readded later.
281
277
  if (!noRemovalDelay && delayInterval) {
282
278
  // Have we seen this device queued for removal previously? If not, let's add it to the queue and come back after our specified delay.
283
279
  if (!this.deviceRemovalQueue[accessory.UUID]) {
284
280
  this.deviceRemovalQueue[accessory.UUID] = Date.now();
285
- this.log.info("%s: Delaying device removal for at least %s second%s.", accessory.displayName, delayInterval, delayInterval > 1 ? "s" : "");
281
+ this.log.info('%s: Delaying device removal for at least %s second%s.', accessory.displayName, delayInterval, delayInterval > 1 ? 's' : '');
286
282
  return;
287
283
  }
288
284
  // Is it time to process this device removal?
@@ -296,7 +292,7 @@ export class AccessController {
296
292
  const accessDevice = this.configuredDevices[accessory.UUID];
297
293
  // See if we can pull the device's configuration details from our Access device instance or the controller.
298
294
  const device = accessDevice?.uda ?? this.udaApi.devices?.find(dev => dev.unique_id === accessory.context.mac.toLowerCase()) ?? null;
299
- this.log.info("%s: Removing %s from HomeKit.", device ? this.udaApi.getDeviceName(device) : accessDevice?.accessoryName ?? accessory.displayName, device?.display_model ?? "device");
295
+ this.log.info('%s: Removing %s from HomeKit.', device ? this.udaApi.getDeviceName(device) : accessDevice?.accessoryName ?? accessory.displayName, device?.display_model ?? 'device');
300
296
  // Cleanup our device instance.
301
297
  accessDevice?.cleanup();
302
298
  // Finally, remove it from our list of configured devices and HomeKit.
@@ -335,7 +331,6 @@ export class AccessController {
335
331
  }
336
332
  // Return a unique identifier for an Access controller.
337
333
  get id() {
338
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
339
334
  return this.uda.host?.mac ? normalizeMac(this.uda.host.mac) : undefined;
340
335
  }
341
336
  }
@@ -1 +1 @@
1
- {"version":3,"file":"access-controller.js","sourceRoot":"","sources":["../src/access-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access-controller.js","sourceRoot":"","sources":["../src/access-controller.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- export type SensorInput = "Dps" | "Rel" | "Ren" | "Rex";
2
- type ProxyMode = "dps" | "rex";
1
+ export type SensorInput = 'Dps' | 'Rel' | 'Ren' | 'Rex';
2
+ type ProxyMode = 'dps' | 'rex';
3
3
  export interface SensorConfig {
4
4
  configKey?: string;
5
5
  proxyMode?: ProxyMode;
@@ -12,7 +12,7 @@ interface SideDoorConfig {
12
12
  }
13
13
  export interface DeviceCatalogEntry {
14
14
  appendsSourceId: boolean;
15
- defaultDoorService: "Lock" | "GarageDoorOpener";
15
+ defaultDoorService: 'Lock' | 'GarageDoorOpener';
16
16
  displayModel: string;
17
17
  hasDps: boolean;
18
18
  hasRel: boolean;
@@ -3,130 +3,130 @@
3
3
  * access-device-catalog.ts: Device catalog for UniFi Access - single source of truth for all device-specific knowledge.
4
4
  */
5
5
  // UGT port and extension identifiers used when mapping physical doors to location IDs.
6
- export const UGT_MAIN_PORT_SOURCE_ID = "port1";
7
- export const UGT_SIDE_PORT_SOURCE_ID = "port2";
8
- export const UGT_SIDE_DOOR_TARGET_NAME = "oper2";
6
+ export const UGT_MAIN_PORT_SOURCE_ID = 'port1';
7
+ export const UGT_SIDE_PORT_SOURCE_ID = 'port2';
8
+ export const UGT_SIDE_DOOR_TARGET_NAME = 'oper2';
9
9
  // The device catalog, keyed by device_type. This is the single source of truth for all device-specific knowledge in the plugin.
10
10
  export const deviceCatalog = {
11
- "UA-Hub-Door-Mini": {
11
+ 'UA-Hub-Door-Mini': {
12
12
  appendsSourceId: false,
13
- defaultDoorService: "Lock",
14
- displayModel: "UA Hub Door Mini",
13
+ defaultDoorService: 'Lock',
14
+ displayModel: 'UA Hub Door Mini',
15
15
  hasDps: true,
16
16
  hasRel: false,
17
17
  hasRen: false,
18
18
  hasRex: true,
19
- lockRelayConfigKey: "output_d1_lock_relay",
19
+ lockRelayConfigKey: 'output_d1_lock_relay',
20
20
  sensors: {
21
- Dps: { configKey: "input_d1_dps", wiringKeys: ["wiring_state_d1-dps-neg", "wiring_state_d1-dps-pos"] },
22
- Rex: { configKey: "input_d1_button", wiringKeys: ["wiring_state_d1-button-neg", "wiring_state_d1-button-pos"] }
21
+ Dps: { configKey: 'input_d1_dps', wiringKeys: ['wiring_state_d1-dps-neg', 'wiring_state_d1-dps-pos'] },
22
+ Rex: { configKey: 'input_d1_button', wiringKeys: ['wiring_state_d1-button-neg', 'wiring_state_d1-button-pos'] },
23
23
  },
24
24
  skipsV1LockEvents: false,
25
25
  supportsSideDoor: false,
26
26
  usesConfigsApi: false,
27
27
  usesLocationApi: false,
28
- usesProxyMode: false
28
+ usesProxyMode: false,
29
29
  },
30
- "UA-ULTRA": {
30
+ 'UA-ULTRA': {
31
31
  appendsSourceId: false,
32
- defaultDoorService: "Lock",
33
- displayModel: "UA Ultra",
32
+ defaultDoorService: 'Lock',
33
+ displayModel: 'UA Ultra',
34
34
  hasDps: true,
35
35
  hasRel: false,
36
36
  hasRen: false,
37
37
  hasRex: true,
38
- lockRelayConfigKey: "output_d1_lock_relay",
38
+ lockRelayConfigKey: 'output_d1_lock_relay',
39
39
  sensors: {
40
- Dps: { configKey: "input_d1_dps", proxyMode: "dps" },
41
- Rex: { configKey: "input_d1_button", proxyMode: "rex" }
40
+ Dps: { configKey: 'input_d1_dps', proxyMode: 'dps' },
41
+ Rex: { configKey: 'input_d1_button', proxyMode: 'rex' },
42
42
  },
43
43
  skipsV1LockEvents: false,
44
44
  supportsSideDoor: false,
45
45
  usesConfigsApi: false,
46
46
  usesLocationApi: false,
47
- usesProxyMode: true
47
+ usesProxyMode: true,
48
48
  },
49
- "UAH": {
49
+ 'UAH': {
50
50
  appendsSourceId: false,
51
- defaultDoorService: "Lock",
52
- displayModel: "UA Hub",
51
+ defaultDoorService: 'Lock',
52
+ displayModel: 'UA Hub',
53
53
  hasDps: true,
54
54
  hasRel: true,
55
55
  hasRen: true,
56
56
  hasRex: true,
57
- lockRelayConfigKey: "input_state_rly-lock_dry",
57
+ lockRelayConfigKey: 'input_state_rly-lock_dry',
58
58
  sensors: {
59
- Dps: { configKey: "input_state_dps", wiringKeys: ["wiring_state_dps-neg", "wiring_state_dps-pos"] },
60
- Rel: { configKey: "input_state_rel", wiringKeys: ["wiring_state_rel-neg", "wiring_state_rel-pos"] },
61
- Ren: { configKey: "input_state_ren", wiringKeys: ["wiring_state_ren-neg", "wiring_state_ren-pos"] },
62
- Rex: { configKey: "input_state_rex", wiringKeys: ["wiring_state_rex-neg", "wiring_state_rex-pos"] }
59
+ Dps: { configKey: 'input_state_dps', wiringKeys: ['wiring_state_dps-neg', 'wiring_state_dps-pos'] },
60
+ Rel: { configKey: 'input_state_rel', wiringKeys: ['wiring_state_rel-neg', 'wiring_state_rel-pos'] },
61
+ Ren: { configKey: 'input_state_ren', wiringKeys: ['wiring_state_ren-neg', 'wiring_state_ren-pos'] },
62
+ Rex: { configKey: 'input_state_rex', wiringKeys: ['wiring_state_rex-neg', 'wiring_state_rex-pos'] },
63
63
  },
64
64
  skipsV1LockEvents: false,
65
65
  supportsSideDoor: false,
66
66
  usesConfigsApi: false,
67
67
  usesLocationApi: false,
68
- usesProxyMode: false
68
+ usesProxyMode: false,
69
69
  },
70
- "UAH-Ent": {
70
+ 'UAH-Ent': {
71
71
  appendsSourceId: true,
72
- defaultDoorService: "Lock",
73
- displayModel: "UA Hub Enterprise",
72
+ defaultDoorService: 'Lock',
73
+ displayModel: 'UA Hub Enterprise',
74
74
  hasDps: true,
75
75
  hasRel: true,
76
76
  hasRen: true,
77
77
  hasRex: true,
78
- lockRelayConfigKey: "input_state_rly-lock_dry",
78
+ lockRelayConfigKey: 'input_state_rly-lock_dry',
79
79
  sensors: {
80
- Dps: { configKey: "input_state_dps", wiringKeys: ["wiring_state_dps-neg", "wiring_state_dps-pos"] },
81
- Rel: { configKey: "input_state_rel", wiringKeys: ["wiring_state_rel-neg", "wiring_state_rel-pos"] },
82
- Ren: { configKey: "input_state_ren", wiringKeys: ["wiring_state_ren-neg", "wiring_state_ren-pos"] },
83
- Rex: { configKey: "input_state_rex", wiringKeys: ["wiring_state_rex-neg", "wiring_state_rex-pos"] }
80
+ Dps: { configKey: 'input_state_dps', wiringKeys: ['wiring_state_dps-neg', 'wiring_state_dps-pos'] },
81
+ Rel: { configKey: 'input_state_rel', wiringKeys: ['wiring_state_rel-neg', 'wiring_state_rel-pos'] },
82
+ Ren: { configKey: 'input_state_ren', wiringKeys: ['wiring_state_ren-neg', 'wiring_state_ren-pos'] },
83
+ Rex: { configKey: 'input_state_rex', wiringKeys: ['wiring_state_rex-neg', 'wiring_state_rex-pos'] },
84
84
  },
85
85
  skipsV1LockEvents: false,
86
86
  supportsSideDoor: false,
87
87
  usesConfigsApi: false,
88
88
  usesLocationApi: false,
89
- usesProxyMode: false
89
+ usesProxyMode: false,
90
90
  },
91
- "UGT": {
91
+ 'UGT': {
92
92
  appendsSourceId: false,
93
- defaultDoorService: "GarageDoorOpener",
94
- displayModel: "UA Gate",
93
+ defaultDoorService: 'GarageDoorOpener',
94
+ displayModel: 'UA Gate',
95
95
  hasDps: true,
96
96
  hasRel: false,
97
97
  hasRen: false,
98
98
  hasRex: false,
99
- lockRelayConfigKey: "output_oper1_relay",
99
+ lockRelayConfigKey: 'output_oper1_relay',
100
100
  sensors: {
101
- Dps: { configKey: "input_gate_dps", wiringKeys: ["wiring_state_gate-dps-neg", "wiring_state_gate-dps-pos"] }
101
+ Dps: { configKey: 'input_gate_dps', wiringKeys: ['wiring_state_gate-dps-neg', 'wiring_state_gate-dps-pos'] },
102
102
  },
103
103
  sideDoor: {
104
- dpsConfigKey: "input_door_dps",
105
- dpsWiringKeys: ["wiring_state_door-dps-neg", "wiring_state_door-dps-pos"],
106
- lockRelayConfigKey: "output_oper2_relay"
104
+ dpsConfigKey: 'input_door_dps',
105
+ dpsWiringKeys: ['wiring_state_door-dps-neg', 'wiring_state_door-dps-pos'],
106
+ lockRelayConfigKey: 'output_oper2_relay',
107
107
  },
108
108
  skipsV1LockEvents: true,
109
109
  supportsSideDoor: true,
110
110
  usesConfigsApi: false,
111
111
  usesLocationApi: true,
112
- usesProxyMode: false
112
+ usesProxyMode: false,
113
113
  },
114
- "UVC G6 Entry": {
114
+ 'UVC G6 Entry': {
115
115
  appendsSourceId: false,
116
- defaultDoorService: "Lock",
117
- displayModel: "UVC G6 Entry",
116
+ defaultDoorService: 'Lock',
117
+ displayModel: 'UVC G6 Entry',
118
118
  hasDps: false,
119
119
  hasRel: false,
120
120
  hasRen: false,
121
121
  hasRex: false,
122
- lockRelayConfigKey: "input_state_rly-lock_dry",
122
+ lockRelayConfigKey: 'input_state_rly-lock_dry',
123
123
  sensors: {},
124
124
  skipsV1LockEvents: false,
125
125
  supportsSideDoor: false,
126
126
  usesConfigsApi: true,
127
127
  usesLocationApi: false,
128
- usesProxyMode: false
129
- }
128
+ usesProxyMode: false,
129
+ },
130
130
  };
131
131
  // Look up a device catalog entry by device_type. Returns undefined for unknown devices.
132
132
  export function getDeviceCatalog(deviceType) {
@@ -146,6 +146,6 @@ export const modelsRel = modelsWithCapability(e => e.hasRel);
146
146
  export const modelsRen = modelsWithCapability(e => e.hasRen);
147
147
  export const modelsRex = modelsWithCapability(e => e.hasRex);
148
148
  export const modelsSideDoor = modelsWithCapability(e => e.supportsSideDoor);
149
- export const modelsDefaultGarageDoor = modelsWithCapability(e => e.defaultDoorService === "GarageDoorOpener");
150
- export const modelsDefaultLock = modelsWithCapability(e => (e.defaultDoorService === "Lock") && !e.appendsSourceId && !e.usesConfigsApi);
149
+ export const modelsDefaultGarageDoor = modelsWithCapability(e => e.defaultDoorService === 'GarageDoorOpener');
150
+ export const modelsDefaultLock = modelsWithCapability(e => (e.defaultDoorService === 'Lock') && !e.appendsSourceId && !e.usesConfigsApi);
151
151
  //# sourceMappingURL=access-device-catalog.js.map