@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.
- package/LICENSE.md +19 -2
- package/README.md +9 -8
- package/dist/access-controller.d.ts +7 -7
- package/dist/access-controller.js +45 -50
- package/dist/access-controller.js.map +1 -1
- package/dist/access-device-catalog.d.ts +3 -3
- package/dist/access-device-catalog.js +52 -52
- package/dist/access-device.d.ts +5 -5
- package/dist/access-device.js +36 -36
- package/dist/access-events.d.ts +4 -4
- package/dist/access-events.js +22 -20
- package/dist/access-events.js.map +1 -1
- package/dist/access-options.d.ts +1 -1
- package/dist/access-options.js +44 -46
- package/dist/access-options.js.map +1 -1
- package/dist/access-platform.d.ts +3 -3
- package/dist/access-platform.js +13 -13
- package/dist/access-platform.js.map +1 -1
- package/dist/hub/access-hub-api.d.ts +3 -2
- package/dist/hub/access-hub-api.js +28 -22
- package/dist/hub/access-hub-api.js.map +1 -1
- package/dist/hub/access-hub-events.d.ts +1 -1
- package/dist/hub/access-hub-events.js +21 -21
- package/dist/hub/access-hub-events.js.map +1 -1
- package/dist/hub/access-hub-mqtt.d.ts +1 -1
- package/dist/hub/access-hub-mqtt.js +45 -45
- package/dist/hub/access-hub-services.d.ts +1 -1
- package/dist/hub/access-hub-services.js +177 -99
- package/dist/hub/access-hub-services.js.map +1 -1
- package/dist/hub/access-hub-types.d.ts +21 -21
- package/dist/hub/access-hub-types.js +16 -16
- package/dist/hub/access-hub-utils.d.ts +7 -7
- package/dist/hub/access-hub-utils.js +19 -18
- package/dist/hub/access-hub-utils.js.map +1 -1
- package/dist/hub/access-hub.d.ts +10 -8
- package/dist/hub/access-hub.js +74 -47
- package/dist/hub/access-hub.js.map +1 -1
- package/dist/hub/index.d.ts +4 -4
- package/dist/hub/index.js +2 -2
- package/dist/hub/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/settings.d.ts +3 -3
- package/dist/settings.js +14 -14
- package/dist/settings.js.map +1 -1
- package/homebridge-ui/public/app.js +31 -31
- package/homebridge-ui/public/index.html +2 -2
- package/homebridge-ui/public/modules/constants.js +12 -12
- package/homebridge-ui/public/modules/controllers.js +61 -61
- package/homebridge-ui/public/modules/discovery.js +33 -33
- package/homebridge-ui/public/modules/dom-helpers.js +8 -8
- package/homebridge-ui/public/modules/feature-options/option-state.js +26 -16
- package/homebridge-ui/public/modules/feature-options/renderer.js +133 -115
- package/homebridge-ui/public/modules/feature-options/scope.js +44 -36
- package/homebridge-ui/public/modules/feature-options.js +1 -1
- package/homebridge-ui/public/modules/state.js +1 -1
- package/homebridge-ui/server.js +61 -53
- package/package.json +9 -9
package/LICENSE.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
|
-
|
|
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
|
[](https://www.npmjs.com/package/@mp-consulting/homebridge-unifi-access)
|
|
8
8
|
[](https://www.npmjs.com/package/@mp-consulting/homebridge-unifi-access)
|
|
9
|
-
[](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
|
|
10
9
|
[](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/
|
|
52
|
-
- **MQTT support** - publish events to an [MQTT broker](docs/
|
|
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/
|
|
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/
|
|
109
|
-
- [MQTT](docs/
|
|
110
|
-
- [Events](docs/
|
|
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
|
|
2
|
-
import { AccessApi, type AccessControllerConfig, type AccessDeviceConfig } from
|
|
3
|
-
import { type HomebridgePluginLogging, MqttClient, type Nullable } from
|
|
4
|
-
import type { AccessControllerOptions } from
|
|
5
|
-
import type { AccessDevice } from
|
|
6
|
-
import { AccessEvents } from
|
|
7
|
-
import type { AccessPlatform } from
|
|
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
|
|
6
|
-
import { AccessApi } from
|
|
7
|
-
import { MqttClient, retry, sanitizeName, sleep } from
|
|
8
|
-
import { AccessEventType } from
|
|
9
|
-
import { AccessEvents } from
|
|
10
|
-
import { AccessHub } from
|
|
11
|
-
import { getDeviceCatalog } from
|
|
12
|
-
import util from
|
|
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 [
|
|
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(
|
|
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(
|
|
66
|
-
this.log.info(
|
|
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
|
|
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(
|
|
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(
|
|
94
|
+
if (!this.hasFeature('Device')) {
|
|
95
95
|
this.udaApi.logout();
|
|
96
|
-
this.log.info(
|
|
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
|
-
// 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
|
|
101
|
-
// they are restored.
|
|
102
|
-
this.platform.accessories.filter(accessory => accessory.context.controller === this.uda.host.mac)
|
|
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(
|
|
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(
|
|
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(
|
|
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 ?
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
|
236
|
-
// happen is when Homebridge might be shutdown and a device is then removed. When we start back up, the device still exists in
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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.
|
|
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(
|
|
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(
|
|
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 =
|
|
2
|
-
type ProxyMode =
|
|
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:
|
|
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 =
|
|
7
|
-
export const UGT_SIDE_PORT_SOURCE_ID =
|
|
8
|
-
export const UGT_SIDE_DOOR_TARGET_NAME =
|
|
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
|
-
|
|
11
|
+
'UA-Hub-Door-Mini': {
|
|
12
12
|
appendsSourceId: false,
|
|
13
|
-
defaultDoorService:
|
|
14
|
-
displayModel:
|
|
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:
|
|
19
|
+
lockRelayConfigKey: 'output_d1_lock_relay',
|
|
20
20
|
sensors: {
|
|
21
|
-
Dps: { configKey:
|
|
22
|
-
Rex: { configKey:
|
|
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
|
-
|
|
30
|
+
'UA-ULTRA': {
|
|
31
31
|
appendsSourceId: false,
|
|
32
|
-
defaultDoorService:
|
|
33
|
-
displayModel:
|
|
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:
|
|
38
|
+
lockRelayConfigKey: 'output_d1_lock_relay',
|
|
39
39
|
sensors: {
|
|
40
|
-
Dps: { configKey:
|
|
41
|
-
Rex: { configKey:
|
|
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
|
-
|
|
49
|
+
'UAH': {
|
|
50
50
|
appendsSourceId: false,
|
|
51
|
-
defaultDoorService:
|
|
52
|
-
displayModel:
|
|
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:
|
|
57
|
+
lockRelayConfigKey: 'input_state_rly-lock_dry',
|
|
58
58
|
sensors: {
|
|
59
|
-
Dps: { configKey:
|
|
60
|
-
Rel: { configKey:
|
|
61
|
-
Ren: { configKey:
|
|
62
|
-
Rex: { configKey:
|
|
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
|
-
|
|
70
|
+
'UAH-Ent': {
|
|
71
71
|
appendsSourceId: true,
|
|
72
|
-
defaultDoorService:
|
|
73
|
-
displayModel:
|
|
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:
|
|
78
|
+
lockRelayConfigKey: 'input_state_rly-lock_dry',
|
|
79
79
|
sensors: {
|
|
80
|
-
Dps: { configKey:
|
|
81
|
-
Rel: { configKey:
|
|
82
|
-
Ren: { configKey:
|
|
83
|
-
Rex: { configKey:
|
|
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
|
-
|
|
91
|
+
'UGT': {
|
|
92
92
|
appendsSourceId: false,
|
|
93
|
-
defaultDoorService:
|
|
94
|
-
displayModel:
|
|
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:
|
|
99
|
+
lockRelayConfigKey: 'output_oper1_relay',
|
|
100
100
|
sensors: {
|
|
101
|
-
Dps: { configKey:
|
|
101
|
+
Dps: { configKey: 'input_gate_dps', wiringKeys: ['wiring_state_gate-dps-neg', 'wiring_state_gate-dps-pos'] },
|
|
102
102
|
},
|
|
103
103
|
sideDoor: {
|
|
104
|
-
dpsConfigKey:
|
|
105
|
-
dpsWiringKeys: [
|
|
106
|
-
lockRelayConfigKey:
|
|
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
|
-
|
|
114
|
+
'UVC G6 Entry': {
|
|
115
115
|
appendsSourceId: false,
|
|
116
|
-
defaultDoorService:
|
|
117
|
-
displayModel:
|
|
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:
|
|
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 ===
|
|
150
|
-
export const modelsDefaultLock = modelsWithCapability(e => (e.defaultDoorService ===
|
|
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
|