homebridge-unifi-access 1.3.0 → 1.5.0

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.
@@ -1,10 +1,9 @@
1
- /// <reference types="node" />
2
1
  import { AccessApi, AccessControllerConfig, AccessDeviceConfig } from "unifi-access";
2
+ import { MqttClient } from "homebridge-plugin-utils";
3
3
  import { AccessControllerOptions } from "./access-options.js";
4
4
  import { AccessDevice } from "./access-device.js";
5
5
  import { AccessEvents } from "./access-events.js";
6
6
  import { AccessLogging } from "./access-types.js";
7
- import { AccessMqtt } from "./access-mqtt.js";
8
7
  import { AccessPlatform } from "./access-platform.js";
9
8
  export declare class AccessController {
10
9
  private api;
@@ -18,7 +17,7 @@ export declare class AccessController {
18
17
  private hap;
19
18
  logApiErrors: boolean;
20
19
  readonly log: AccessLogging;
21
- mqtt: AccessMqtt | null;
20
+ mqtt: MqttClient | null;
22
21
  private name;
23
22
  platform: AccessPlatform;
24
23
  uda: AccessControllerConfig;
@@ -39,7 +38,6 @@ export declare class AccessController {
39
38
  deviceLookup(deviceId: string): AccessDevice | null;
40
39
  getFeatureFloat(option: string): number | undefined;
41
40
  getFeatureNumber(option: string): number | undefined;
42
- hasFeature(option: string, defaultReturnValue?: boolean, device?: AccessControllerConfig | AccessDeviceConfig | null): boolean;
43
- sleep(sleepTimer: number): Promise<NodeJS.Timeout>;
44
- private retry;
41
+ hasFeature(option: string, deviceId?: string | undefined): boolean;
42
+ get id(): string | undefined;
45
43
  }
@@ -4,10 +4,9 @@
4
4
  */
5
5
  import { ACCESS_CONTROLLER_REFRESH_INTERVAL, ACCESS_CONTROLLER_RETRY_INTERVAL, PLATFORM_NAME, PLUGIN_NAME } from "./settings.js";
6
6
  import { AccessApi } from "unifi-access";
7
- import { getOptionFloat, getOptionNumber, getOptionValue, isOptionEnabled } from "./access-options.js";
7
+ import { MqttClient, retry, sleep, validateName } from "homebridge-plugin-utils";
8
8
  import { AccessEvents } from "./access-events.js";
9
9
  import { AccessHub } from "./access-hub.js";
10
- import { AccessMqtt } from "./access-mqtt.js";
11
10
  import util from "node:util";
12
11
  export class AccessController {
13
12
  api;
@@ -53,7 +52,7 @@ export class AccessController {
53
52
  // Retrieve the bootstrap configuration from the Access controller.
54
53
  async bootstrapController() {
55
54
  // Attempt to bootstrap the controller until we're successful.
56
- await this.retry(() => this.udaApi.getBootstrap(), ACCESS_CONTROLLER_RETRY_INTERVAL * 1000);
55
+ await retry(async () => this.udaApi.getBootstrap(), ACCESS_CONTROLLER_RETRY_INTERVAL * 1000);
57
56
  }
58
57
  // Initialize our connection to the UniFi Access controller.
59
58
  async login() {
@@ -77,7 +76,7 @@ export class AccessController {
77
76
  this.udaApi = new AccessApi(udaLog);
78
77
  // Attempt to login to the Access controller, retrying at reasonable intervals. This accounts for cases where the Access controller or the network connection
79
78
  // may not be fully available when we startup.
80
- await this.retry(() => this.udaApi.login(this.config.address, this.config.username, this.config.password), ACCESS_CONTROLLER_RETRY_INTERVAL * 1000);
79
+ await retry(async () => this.udaApi.login(this.config.address, this.config.username, this.config.password), ACCESS_CONTROLLER_RETRY_INTERVAL * 1000);
81
80
  // Now, let's get the bootstrap configuration from the Access controller.
82
81
  await this.bootstrapController();
83
82
  // Set our Access configuration from the controller.
@@ -94,7 +93,7 @@ export class AccessController {
94
93
  this.log.info("Disabling this UniFi Access controller in HomeKit.");
95
94
  // 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
96
95
  // when all the cached accessories are loaded at startup.
97
- await this.sleep(30);
96
+ await sleep(30);
98
97
  // Unregister all the accessories for this controller from Homebridge that may have been restored already. Any additional ones will be automatically caught when
99
98
  // they are restored.
100
99
  this.removeHomeKitAccessories(this.platform.accessories.filter(x => x.context.controller === this.uda.host.mac));
@@ -106,7 +105,7 @@ export class AccessController {
106
105
  this.configureController();
107
106
  // Initialize MQTT, if needed.
108
107
  if (!this.mqtt && this.config.mqttUrl) {
109
- this.mqtt = new AccessMqtt(this);
108
+ this.mqtt = new MqttClient(this.config.mqttUrl, this.config.mqttTopic, this.log);
110
109
  }
111
110
  // Inform the user about the devices we see.
112
111
  if (this.udaApi.devices) {
@@ -115,7 +114,7 @@ export class AccessController {
115
114
  if (!device.is_managed) {
116
115
  continue;
117
116
  }
118
- this.log.info("Discovered %s: %s.", device.model ?? device.display_model, this.udaApi.getDeviceName(device, device.name ?? device.model, true));
117
+ this.log.info("Discovered %s: %s.", device.model ?? device.display_model, this.udaApi.getDeviceName(device, (device.alias?.length ? device.alias : device.name) ?? device.model, true));
119
118
  }
120
119
  }
121
120
  // Sync the Access controller's devices with HomeKit.
@@ -157,9 +156,8 @@ export class AccessController {
157
156
  // We have a UniFi Access hub.
158
157
  this.configuredDevices[accessory.UUID] = new AccessHub(this, device, accessory);
159
158
  return true;
160
- break;
161
159
  default:
162
- this.log.error("Unknown device class %s detected for %s.", device.device_type, device.name ?? device.model);
160
+ this.log.error("Unknown device class %s detected for %s.", device.device_type, device.alias ?? device.model);
163
161
  return false;
164
162
  }
165
163
  }
@@ -177,24 +175,19 @@ export class AccessController {
177
175
  if (!this.uda?.host.mac || !device || !device.mac || !device.is_managed) {
178
176
  return null;
179
177
  }
180
- // We only support certain devices.
181
- switch (device.device_type) {
182
- case "UAH":
183
- case "UAH-DOOR":
184
- break;
185
- default:
186
- // If we've already informed the user about this one, we're done.
187
- if (this.unsupportedDevices[device.mac]) {
188
- return null;
189
- }
190
- // Notify the user we see this device, but we aren't adding it to HomeKit.
191
- this.unsupportedDevices[device.mac] = true;
192
- this.log.info("UniFi Access device type '%s' is not currently supported, ignoring: %s.", device.device_type, this.udaApi.getDeviceName(device));
178
+ // We only support certain device capabilities.
179
+ if (!device.capabilities.includes("is_hub")) {
180
+ // If we've already informed the user about this one, we're done.
181
+ if (this.unsupportedDevices[device.mac]) {
193
182
  return null;
194
- break;
183
+ }
184
+ // Notify the user we see this device, but we aren't adding it to HomeKit.
185
+ this.unsupportedDevices[device.mac] = true;
186
+ this.log.info("UniFi Access device type '%s' is not currently supported, ignoring: %s.", device.device_type, this.udaApi.getDeviceName(device));
187
+ return null;
195
188
  }
196
189
  // Exclude or include certain devices based on configuration parameters.
197
- if (!this.hasFeature("Device", true, device)) {
190
+ if (!this.hasFeature("Device", device.mac.replace(/:/g, ""))) {
198
191
  return null;
199
192
  }
200
193
  // Generate this device's unique identifier.
@@ -202,7 +195,7 @@ export class AccessController {
202
195
  let accessory;
203
196
  // See if we already know about this accessory or if it's truly new. If it is new, add it to HomeKit.
204
197
  if ((accessory = this.platform.accessories.find(x => x.UUID === uuid)) === undefined) {
205
- accessory = new this.api.platformAccessory(device.name ?? device.model, uuid);
198
+ accessory = new this.api.platformAccessory(validateName(device.alias ?? device.model), uuid);
206
199
  this.log.info("%s: Adding %s to HomeKit.", this.udaApi.getFullName(device), device.model);
207
200
  // Register this accessory with homebridge and add it to the accessory array so we can track it.
208
201
  this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
@@ -279,17 +272,11 @@ export class AccessController {
279
272
  continue;
280
273
  }
281
274
  // Check to see if the device still exists on the Access controller and the user has not chosen to hide it.
282
- switch (accessDevice.uda.device_type) {
283
- case "UAH":
284
- case "UAH-DOOR":
285
- if (this.udaApi.devices?.some((x) => x.mac === accessDevice.uda.mac) && accessDevice.hasFeature("Device")) {
286
- // In case we have previously queued a device for deletion, let's remove it from the queue since it's reappeared.
287
- delete this.deviceRemovalQueue[accessDevice.accessory.UUID];
288
- continue;
289
- }
290
- break;
291
- default:
292
- break;
275
+ if (accessDevice.uda.capabilities.includes("is_hub") && this.udaApi.devices?.some((x) => x.mac === accessDevice.uda.mac) &&
276
+ accessDevice.hasFeature("Device")) {
277
+ // In case we have previously queued a device for deletion, let's remove it from the queue since it's reappeared.
278
+ delete this.deviceRemovalQueue[accessDevice.accessory.UUID];
279
+ continue;
293
280
  }
294
281
  // Process the device removal.
295
282
  this.removeHomeKitDevice(this.configuredDevices[accessory.UUID]);
@@ -311,7 +298,7 @@ export class AccessController {
311
298
  // 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.
312
299
  if (!this.deviceRemovalQueue[accessDevice.accessory.UUID]) {
313
300
  this.deviceRemovalQueue[accessDevice.accessory.UUID] = Date.now();
314
- this.log.info("%s: Delaying device removal for %s second%s.", accessDevice.uda.name ? this.udaApi.getDeviceName(accessDevice.uda) : accessDevice.accessoryName, delayInterval, delayInterval > 1 ? "s" : "");
301
+ this.log.info("%s: Delaying device removal for %s second%s.", accessDevice.uda.alias ? this.udaApi.getDeviceName(accessDevice.uda) : accessDevice.accessoryName, delayInterval, delayInterval > 1 ? "s" : "");
315
302
  return;
316
303
  }
317
304
  // Is it time to process this device removal?
@@ -322,7 +309,7 @@ export class AccessController {
322
309
  delete this.deviceRemovalQueue[accessDevice.accessory.UUID];
323
310
  }
324
311
  // Remove this device.
325
- this.log.info("%s: Removing %s from HomeKit.", accessDevice.uda.name ? this.udaApi.getDeviceName(accessDevice.uda) : accessDevice.accessoryName, accessDevice.uda.model ? accessDevice.uda.model : "device");
312
+ this.log.info("%s: Removing %s from HomeKit.", accessDevice.uda.alias ? this.udaApi.getDeviceName(accessDevice.uda) : accessDevice.accessoryName, accessDevice.uda.model ? accessDevice.uda.model : "device");
326
313
  const deletingAccessories = [accessDevice.accessory];
327
314
  // Cleanup our event handlers.
328
315
  accessDevice.cleanup();
@@ -360,30 +347,19 @@ export class AccessController {
360
347
  }
361
348
  // Utility function to return a floating point configuration parameter on a device.
362
349
  getFeatureFloat(option) {
363
- return getOptionFloat(getOptionValue(this.platform.featureOptions, this.uda, null, option));
350
+ return this.platform.featureOptions.getFloat(option, this.id);
364
351
  }
365
352
  // Utility function to return an integer configuration parameter on a device.
366
353
  getFeatureNumber(option) {
367
- return getOptionNumber(getOptionValue(this.platform.featureOptions, this.uda, null, option));
354
+ return this.platform.featureOptions.getInteger(option, this.id);
368
355
  }
369
356
  // Utility for checking feature options on the NVR.
370
- hasFeature(option, defaultReturnValue, device = null) {
371
- return isOptionEnabled(this.platform.featureOptions, this.uda, device, option, defaultReturnValue ?? this.platform.featureOptionDefault(option));
357
+ hasFeature(option, deviceId = this.id) {
358
+ return this.platform.featureOptions.test(option, deviceId, this.id);
372
359
  }
373
- // Emulate a sleep function.
374
- sleep(sleepTimer) {
375
- return new Promise(resolve => setTimeout(resolve, sleepTimer));
376
- }
377
- // Retry an operation until we're successful.
378
- async retry(operation, retryInterval) {
379
- // Try the operation that was requested.
380
- if (!(await operation())) {
381
- // If the operation wasn't successful, let's sleep for the requested interval and try again.
382
- await this.sleep(retryInterval);
383
- return this.retry(operation, retryInterval);
384
- }
385
- // We were successful - we're done.
386
- return true;
360
+ // Return a unique identifier for an Access controller.
361
+ get id() {
362
+ return this.uda.host?.mac?.replace(/:/g, "");
387
363
  }
388
364
  }
389
365
  //# sourceMappingURL=access-controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"access-controller.js","sourceRoot":"","sources":["../src/access-controller.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,kCAAkC,EAAE,gCAAgC,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjI,OAAO,EAAE,SAAS,EAA8C,MAAM,cAAc,CAAC;AACrF,OAAO,EAA2B,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEhI,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,OAAO,gBAAgB;IAEnB,GAAG,CAAM;IACV,MAAM,CAA0B;IAC/B,kBAAkB,CAA8B;IACxC,iBAAiB,CAAoC;IAC9D,MAAM,CAAgB;IACrB,SAAS,CAAU;IACnB,GAAG,CAAM;IACV,YAAY,CAAU;IACb,GAAG,CAAgB;IAC5B,IAAI,CAAoB;IACvB,IAAI,CAAS;IACd,QAAQ,CAAiB;IACzB,GAAG,CAAyB;IAC5B,MAAM,CAAa;IAClB,kBAAkB,CAA+B;IAEzD,YAAY,QAAwB,EAAE,aAAsC;QAE1E,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;QAC5B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC;QACxD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,EAA4B,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAE7B,yBAAyB;QACzB,IAAI,CAAC,GAAG,GAAG;YAET,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,UAAqB,EAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;YAC9J,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,UAAqB,EAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;YAClK,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,UAAqB,EAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;YAChK,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,UAAqB,EAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;SACjK,CAAC;QAEF,yDAAyD;QACzD,IAAG,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAEhF,OAAO;QACT,CAAC;IACH,CAAC;IAED,mEAAmE;IAC3D,KAAK,CAAC,mBAAmB;QAE/B,8DAA8D;QAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,gCAAgC,GAAG,IAAI,CAAC,CAAC;IAC9F,CAAC;IAED,4DAA4D;IACrD,KAAK,CAAC,KAAK;QAEhB,iFAAiF;QACjF,IAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAE9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,qDAAqD;QACrD,MAAM,MAAM,GAAG;YAEb,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,UAAqB,EAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;YACpH,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,UAAqB,EAAQ,EAAE;gBAEzD,IAAG,IAAI,CAAC,YAAY,EAAE,CAAC;oBAErB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YACD,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,UAAqB,EAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;YACtH,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,UAAqB,EAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;SACvH,CAAC;QAEF,2CAA2C;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QAEpC,6JAA6J;QAC7J,8CAA8C;QAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,gCAAgC,GAAG,IAAI,CAAC,CAAC;QAEpJ,yEAAyE;QACzE,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjC,oDAAoD;QACpD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAoC,CAAC;QAE5D,wEAAwE;QACxE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEtF,6BAA6B;QAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2DAA2D,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAElJ,wCAAwC;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE3C,oDAAoD;QACpD,IAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAEnB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YAEpE,iKAAiK;YACjK,yDAAyD;YACzD,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAErB,gKAAgK;YAChK,qBAAqB;YACrB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACjH,OAAO;QACT,CAAC;QAED,8CAA8C;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QAErC,8CAA8C;QAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,8BAA8B;QAC9B,IAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAErC,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,4CAA4C;QAC5C,IAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAEvB,KAAI,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAExC,wEAAwE;gBACxE,IAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;oBAEtB,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAClJ,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,MAAM,cAAc,GAAG,GAAS,EAAE;YAEhC,4DAA4D;YAC5D,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAElC,+BAA+B;YAC/B,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAChE,CAAC,CAAC;QAEF,gDAAgD;QAChD,cAAc,EAAE,CAAC;QAEjB,0BAA0B;QAC1B,MAAM,gBAAgB,GAAG,GAAS,EAAE;YAElC,4CAA4C;YAC5C,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,mBAAmB,EAAE,EAAE,kCAAkC,GAAG,IAAI,CAAC,CAAC;QAC/F,CAAC,CAAC;QAEF,0HAA0H;QAC1H,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YAE/B,wBAAwB;YACxB,cAAc,EAAE,CAAC;YAEjB,yBAAyB;YACzB,gBAAgB,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,4EAA4E;QAC5E,gBAAgB,EAAE,CAAC;IACrB,CAAC;IAED,0CAA0C;IAClC,mBAAmB;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yDAAyD;IACjD,eAAe,CAAC,SAA4B,EAAE,MAA0B;QAE9E,IAAG,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;YAEzB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,QAAO,MAAM,CAAC,WAAW,EAAE,CAAC;YAE1B,KAAK,KAAK,CAAC;YACX,KAAK,UAAU;gBAEb,8BAA8B;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAChF,OAAO,IAAI,CAAC;gBAEZ,MAAM;YAER;gBAEE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0CAA0C,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE5G,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED,kGAAkG;IAC1F,eAAe,CAAC,OAA6B;QAEnD,wGAAwG;QACxG,KAAI,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAE5B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iDAAiD;IAC1C,gBAAgB,CAAC,MAA0B;QAEhD,6GAA6G;QAC7G,IAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAEvE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mCAAmC;QACnC,QAAO,MAAM,CAAC,WAAW,EAAE,CAAC;YAE1B,KAAK,KAAK,CAAC;YACX,KAAK,UAAU;gBAEb,MAAM;YAER;gBAEE,iEAAiE;gBACjE,IAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBAEvC,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,0EAA0E;gBAC1E,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAE3C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yEAAyE,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChJ,OAAO,IAAI,CAAC;gBAEZ,MAAM;QACV,CAAC;QAED,wEAAwE;QACxE,IAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YAE5C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4CAA4C;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEhD,IAAI,SAAwC,CAAC;QAE7C,qGAAqG;QACrG,IAAG,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAEpF,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAE9E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAE1F,gGAAgG;YAChG,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAChE,CAAC;QAED,iEAAiE;QACjE,SAAS,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QAEjD,8DAA8D;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5D,4DAA4D;QAC5D,IAAG,CAAC,YAAY,EAAE,CAAC;YAEjB,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,oFAAoF;IAC5E,0BAA0B;QAEhC,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAE1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAErE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC/C,CAAC;QAED,0GAA0G;QAC1G,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,iCAAiC;QACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;QAExF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+CAA+C;IACvC,cAAc;QAEpB,KAAI,MAAM,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAEjD,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAE5D,gKAAgK;YAChK,4JAA4J;YAC5J,mCAAmC;YACnC,IAAG,CAAC,YAAY,EAAE,CAAC;gBAEjB,kFAAkF;gBAClF,IAAG,CAAC,YAAY,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAE/F,SAAS;gBACX,CAAC;gBAED,0JAA0J;gBAC1J,aAAa;gBACb,IAAG,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;oBAEjC,SAAS;gBACX,CAAC;gBAED,sGAAsG;gBACtG,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,CAAC;gBAE7E,IAAG,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;oBAExD,qIAAqI;oBACrI,IAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;wBAE5C,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBACrD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uDAAuD,EAAE,SAAS,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBAC3I,SAAS;oBACX,CAAC;oBAED,6CAA6C;oBAC7C,IAAG,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;wBAEnF,SAAS;oBACX,CAAC;oBAED,2BAA2B;oBAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACjD,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAmC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;gBAE1E,kEAAkE;gBAClE,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,WAAW,EAAE,aAAa,EAAE,CAAE,SAAS,CAAE,CAAC,CAAC;gBAClF,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClF,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAE9D,SAAS;YACX,CAAC;YAED,0JAA0J;YAC1J,iCAAiC;YACjC,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAE1B,SAAS;YACX,CAAC;YAED,2GAA2G;YAC3G,QAAO,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBAEpC,KAAK,KAAK,CAAC;gBACX,KAAK,UAAU;oBAEb,IAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAE7H,iHAAiH;wBACjH,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAC5D,SAAS;oBACX,CAAC;oBAED,MAAM;gBAER;oBAEE,MAAM;YACV,CAAC;YAED,8BAA8B;YAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,mDAAmD;IAC5C,mBAAmB,CAAC,YAA0B;QAEnD,gBAAgB;QAChB,IAAG,CAAC,YAAY,EAAE,CAAC;YAEjB,OAAO;QACT,CAAC;QAED,kFAAkF;QAClF,IAAG,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAEnE,OAAO;QACT,CAAC;QAED,2EAA2E;QAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,CAAC;QAE7E,IAAG,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;YAExD,qIAAqI;YACrI,IAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBAEzD,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAClE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,8CAA8C,EAC1D,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,EAChG,aAAa,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAE/C,OAAO;YACT,CAAC;YAED,6CAA6C;YAC7C,IAAG,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAEhG,OAAO;YACT,CAAC;YAED,2BAA2B;YAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAC3C,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,EAChG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE9D,MAAM,mBAAmB,GAAG,CAAE,YAAY,CAAC,SAAS,CAAE,CAAC;QAEvD,8BAA8B;QAC9B,YAAY,CAAC,OAAO,EAAE,CAAC;QAEvB,iFAAiF;QACjF,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;IACrD,CAAC;IAED,kDAAkD;IAC1C,wBAAwB,CAAC,mBAAwC;QAEvE,gBAAgB;QAChB,IAAG,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC;YAE7D,OAAO;QACT,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,WAAW,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;QAExF,iEAAiE;QACjE,KAAI,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;YAE3C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC;QAED,2DAA2D;QAC3D,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IAED,sCAAsC;IAC/B,KAAK,CAAC,yBAAyB;QAEpC,8CAA8C;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEpB,mCAAmC;QACnC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACnC,CAAC;IAED,iEAAiE;IAC1D,YAAY,CAAC,QAAgB;QAElC,mBAAmB;QACnB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;QAExH,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC;IAED,mFAAmF;IAC5E,eAAe,CAAC,MAAc;QAEnC,OAAO,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,6EAA6E;IACtE,gBAAgB,CAAC,MAAc;QAEpC,OAAO,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,mDAAmD;IAC5C,UAAU,CAAC,MAAc,EAAE,kBAA4B,EAAE,SAA8D,IAAI;QAEhI,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnJ,CAAC;IAED,4BAA4B;IACrB,KAAK,CAAC,UAAkB;QAE7B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,6CAA6C;IACrC,KAAK,CAAC,KAAK,CAAC,SAAiC,EAAE,aAAqB;QAE1E,wCAAwC;QACxC,IAAG,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,EAAE,CAAC;YAExB,4FAA4F;YAC5F,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC9C,CAAC;QAED,mCAAmC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"access-controller.js","sourceRoot":"","sources":["../src/access-controller.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ export declare abstract class AccessDevice extends AccessBase {
43
43
  getFeatureFloat(option: string): number | undefined;
44
44
  getFeatureNumber(option: string): number | undefined;
45
45
  getFeatureValue(option: string): string | undefined;
46
- hasFeature(option: string, defaultReturnValue?: boolean): boolean;
46
+ hasFeature(option: string): boolean;
47
47
  isReservedName(name: string | undefined): boolean;
48
48
  get isOnline(): boolean;
49
49
  get id(): string;
@@ -4,8 +4,8 @@
4
4
  */
5
5
  import { ACCESS_MOTION_DURATION, ACCESS_OCCUPANCY_DURATION } from "./settings.js";
6
6
  import { AccessReservedNames } from "./access-types.js";
7
- import { getOptionFloat, getOptionNumber, getOptionValue, isOptionEnabled } from "./access-options.js";
8
7
  import util from "node:util";
8
+ import { validateName } from "homebridge-plugin-utils";
9
9
  export class AccessBase {
10
10
  api;
11
11
  debug;
@@ -109,7 +109,7 @@ export class AccessDevice extends AccessBase {
109
109
  configureInfo() {
110
110
  // Sync the Access name with HomeKit, if configured.
111
111
  if (this.hints.syncName) {
112
- this.accessoryName = this.uda.name;
112
+ this.accessoryName = this.uda.alias;
113
113
  }
114
114
  return this.setInfo(this.accessory, this.uda);
115
115
  }
@@ -319,19 +319,19 @@ export class AccessDevice extends AccessBase {
319
319
  }
320
320
  // Utility function to return a floating point configuration parameter on a device.
321
321
  getFeatureFloat(option) {
322
- return getOptionFloat(this.getFeatureValue(option));
322
+ return this.platform.featureOptions.getFloat(option, this.id, this.controller.id);
323
323
  }
324
324
  // Utility function to return an integer configuration parameter on a device.
325
325
  getFeatureNumber(option) {
326
- return getOptionNumber(this.getFeatureValue(option));
326
+ return this.platform.featureOptions.getInteger(option, this.id, this.controller.id);
327
327
  }
328
328
  // Utility function to return a configuration parameter on a device.
329
329
  getFeatureValue(option) {
330
- return getOptionValue(this.platform.featureOptions, this.controller.uda, this.uda, option);
330
+ return this.platform.featureOptions.value(option, this.id, this.controller.id);
331
331
  }
332
332
  // Utility for checking feature options on a device.
333
- hasFeature(option, defaultReturnValue) {
334
- return isOptionEnabled(this.platform.featureOptions, this.controller.uda, this.uda, option, defaultReturnValue ?? this.platform.featureOptionDefault(option));
333
+ hasFeature(option) {
334
+ return this.controller.hasFeature(option, this.id);
335
335
  }
336
336
  // Utility function for reserved identifiers for switches.
337
337
  isReservedName(name) {
@@ -339,7 +339,7 @@ export class AccessDevice extends AccessBase {
339
339
  }
340
340
  // Utility function to determine whether or not a device is currently online.
341
341
  get isOnline() {
342
- return this.uda.is_online;
342
+ return ["is_adopted", "is_connected", "is_managed", "is_online"].every(key => this.uda[key]);
343
343
  }
344
344
  // Return a unique identifier for an Access device.
345
345
  get id() {
@@ -352,15 +352,16 @@ export class AccessDevice extends AccessBase {
352
352
  // Utility function to return the current accessory name of this device.
353
353
  get accessoryName() {
354
354
  return this.accessory.getService(this.hap.Service.AccessoryInformation)?.getCharacteristic(this.hap.Characteristic.Name).value ??
355
- (this.uda?.name ?? "Unknown");
355
+ (this.uda?.alias ?? "Unknown");
356
356
  }
357
357
  // Utility function to set the current accessory name of this device.
358
358
  set accessoryName(name) {
359
+ const cleanedName = validateName(name);
359
360
  // Set all the internally managed names within Homebridge to the new accessory name.
360
- this.accessory.displayName = name;
361
- this.accessory._associatedHAPAccessory.displayName = name;
361
+ this.accessory.displayName = cleanedName;
362
+ this.accessory._associatedHAPAccessory.displayName = cleanedName;
362
363
  // Set all the HomeKit-visible names.
363
- this.accessory.getService(this.hap.Service.AccessoryInformation)?.updateCharacteristic(this.hap.Characteristic.Name, name);
364
+ this.accessory.getService(this.hap.Service.AccessoryInformation)?.updateCharacteristic(this.hap.Characteristic.Name, cleanedName);
364
365
  }
365
366
  }
366
367
  //# sourceMappingURL=access-device.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"access-device.js","sourceRoot":"","sources":["../src/access-device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access-device.js","sourceRoot":"","sources":["../src/access-device.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAC,MAAM,eAAe,CAAC;AAGjF,OAAO,EAAiB,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAcvD,MAAM,OAAgB,UAAU;IAEd,GAAG,CAAM;IACjB,KAAK,CAAsD;IAChD,GAAG,CAAM;IACZ,GAAG,CAAgB;IACnB,UAAU,CAAmB;IACtC,MAAM,CAAY;IACT,QAAQ,CAAiB;IAEzC,yEAAyE;IACzE,YAAY,UAA4B;QAEtC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QAEpC,IAAI,CAAC,GAAG,GAAG;YAET,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,UAAqB,EAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;YAC7I,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,UAAqB,EAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;YACjJ,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,UAAqB,EAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;YAC/I,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,UAAqB,EAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;SAChJ,CAAC;IACJ,CAAC;IAED,gDAAgD;IACtC,OAAO,CAAC,SAA4B,EAAE,MAA0B;QAExE,yCAAyC;QACzC,IAAG,CAAC,MAAM,EAAE,CAAC;YAEX,OAAO,KAAK,CAAC;QACf,CAAC;QAED,uDAAuD;QACvD,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAEzI,gDAAgD;QAChD,IAAI,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC;QAEvC,IAAG,OAAO,IAAI,MAAM,EAAE,CAAC;YAErB,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,IAAG,WAAW,CAAC,MAAM,EAAE,CAAC;YAEtB,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAChI,CAAC;QAED,4CAA4C;QAC5C,IAAG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;YAEtB,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EACpH,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,gDAAgD;QAChD,IAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAE3B,4GAA4G;YAC5G,MAAM,YAAY,GAAG,6CAA6C,CAAC;YACnE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEjD,gCAAgC;YAChC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,EACxH,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5F,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uEAAuE;IACvE,IAAW,IAAI;QAEb,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAgB,YAAa,SAAQ,UAAU;IAE5C,SAAS,CAAqB;IAC9B,KAAK,CAAc;IAChB,SAAS,CAA2D;IAG9E,yEAAyE;IACzE,YAAY,UAA4B,EAAE,SAA4B;QAEpE,0CAA0C;QAC1C,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,IAAI,CAAC,KAAK,GAAG,EAAiB,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,uFAAuF;QACvF,IAAG,SAAS,EAAE,CAAC;YAEb,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,sCAAsC;IAC5B,cAAc;QAEtB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,sBAAsB,CAAC;QAC/F,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,iCAAiC,CAAC,IAAI,yBAAyB,CAAC;QACrH,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAEzD,sHAAsH;QACtH,IAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAEjC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,0HAA0H;QAC1H,IAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,EAAE,EAAE,CAAC;YAErC,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC;QACpC,CAAC;QAED,wEAAwE;QACxE,IAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAEvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAG,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,sBAAsB,EAAE,CAAC;YAExD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0CAA0C,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACvF,CAAC;QAED,IAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,KAAK,yBAAyB,EAAE,CAAC;YAE9D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6CAA6C,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC7F,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wDAAwD;IACjD,aAAa;QAElB,oDAAoD;QACpD,IAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAEvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,iEAAiE;IAC1D,OAAO;QAEZ,KAAI,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAEnD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5E,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,kDAAkD;IACxC,qBAAqB,CAAC,SAAS,GAAG,IAAI,EAAE,aAAa,GAAG,KAAK;QAErE,gDAAgD;QAChD,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAE7E,sCAAsC;QACtC,IAAG,CAAC,SAAS,EAAE,CAAC;YAEd,IAAG,aAAa,EAAE,CAAC;gBAEjB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;gBAC7D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAEvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,6DAA6D;QAC7D,IAAG,CAAC,aAAa,EAAE,CAAC;YAElB,yDAAyD;YACzD,aAAa,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEtE,IAAG,CAAC,aAAa,EAAE,CAAC;gBAElB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBAE/C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACzC,aAAa,GAAG,KAAK,CAAC;YAEtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC3C,CAAC;QAED,6JAA6J;QAC7J,yFAAyF;QACzF,IAAG,CAAC,aAAa,EAAE,CAAC;YAElB,6CAA6C;YAC7C,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/C,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACrF,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAClF,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAExF,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAE/E,OAAO,IAAI,CAAC,QAAQ,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,8BAA8B;YAC9B,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAElC,mFAAmF;YACnF,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2FAA2F;IACnF,qBAAqB,CAAC,SAAS,GAAG,IAAI;QAE5C,yCAAyC;QACzC,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;QAErH,wEAAwE;QACxE,IAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAEnD,IAAG,aAAa,EAAE,CAAC;gBAEjB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YAC9C,CAAC;YAED,gJAAgJ;YAChJ,uEAAuE;YACvE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;YAE3C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAEhD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;QAEzD,2CAA2C;QAC3C,IAAG,CAAC,aAAa,EAAE,CAAC;YAElB,aAAa,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;YAElG,IAAG,CAAC,aAAa,EAAE,CAAC;gBAElB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBAEtD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,aAAa,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAChF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC;QAED,2CAA2C;QAC3C,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE;YAEtE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,KAA0B,EAAE,EAAE;YAEhG,IAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;gBAEjD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACnF,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,GAAG,KAAK,KAAK,IAAI,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,IAAG,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAE/C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7C,CAAC;QAED,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACvF,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAuB,CAAC,CAAC;QAE/G,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4EAA4E;IACpE,sBAAsB,CAAC,SAAS,GAAG,IAAI;QAE7C,yCAAyC;QACzC,IAAI,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAEvH,uFAAuF;QACvF,IAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAEpD,IAAG,cAAc,EAAE,CAAC;gBAElB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC/C,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;QAE3D,2CAA2C;QAC3C,IAAG,CAAC,cAAc,EAAE,CAAC;YAEnB,cAAc,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;YAErG,IAAG,CAAC,cAAc,EAAE,CAAC;gBAEnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBAEvD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YACjF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;QAEvH,2CAA2C;QAC3C,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE;YAEvE,OAAO,aAAa,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;QACjG,CAAC,CAAC,CAAC;QAEH,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAyB,EAAE,EAAE;YAEhG,IAAG,IAAI,EAAE,CAAC;gBAER,8CAA8C;gBAC9C,IAAG,aAAa,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;oBAEvF,UAAU,CAAC,GAAG,EAAE;wBAEd,cAAc,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC1E,CAAC,EAAE,EAAE,CAAC,CAAC;gBAET,CAAC;qBAAM,CAAC;oBAEN,4BAA4B;oBAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAEhD,mBAAmB;oBACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBAC3C,CAAC;gBAED,OAAO;YACT,CAAC;YAED,0DAA0D;YAC1D,IAAG,aAAa,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;gBAElF,UAAU,CAAC,GAAG,EAAE;oBAEd,cAAc,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACzE,CAAC,EAAE,EAAE,CAAC,CAAC;YACT,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,yBAAyB;QACzB,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACzF,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAEvE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kCAAkC;IAC1B,0BAA0B;QAEhC,yDAAyD;QACzD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,CAAC,OAAe,EAAE,EAAE;YAE7E,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YAEjC,8DAA8D;YAC9D,IAAG,KAAK,EAAE,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;gBAEnC,OAAO;YACT,CAAC;YAED,4BAA4B;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qDAAqD;IAC3C,wBAAwB,CAAC,SAAS,GAAG,IAAI,EAAE,aAAa,GAAG,KAAK;QAExE,mDAAmD;QACnD,IAAI,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAEnF,yFAAyF;QACzF,IAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAE5D,IAAG,gBAAgB,EAAE,CAAC;gBAEpB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;gBAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC/C,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,iEAAiE;QACjE,IAAG,CAAC,gBAAgB,EAAE,CAAC;YAErB,4DAA4D;YAC5D,gBAAgB,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE5E,IAAG,CAAC,gBAAgB,EAAE,CAAC;gBAErB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBAElD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAC9C,CAAC;QAED,6JAA6J;QAC7J,yFAAyF;QACzF,IAAG,CAAC,aAAa,EAAE,CAAC;YAElB,gDAAgD;YAChD,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YACxF,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE3F,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAElF,OAAO,IAAI,CAAC,QAAQ,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mFAAmF;IAC5E,eAAe,CAAC,MAAc;QAEnC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,6EAA6E;IACtE,gBAAgB,CAAC,MAAc;QAEpC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,oEAAoE;IAC7D,eAAe,CAAC,MAAc;QAEnC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,oDAAoD;IAC7C,UAAU,CAAC,MAAc;QAE9B,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,0DAA0D;IACnD,cAAc,CAAC,IAAwB;QAE5C,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAChI,CAAC;IAED,6EAA6E;IAC7E,IAAW,QAAQ;QAEjB,OAAQ,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,CAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,mDAAmD;IACnD,IAAW,EAAE;QAEX,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,uEAAuE;IACvE,IAAW,IAAI;QAEb,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,wEAAwE;IACxE,IAAW,aAAa;QAEtB,OAAQ,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAgB;YACxI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,qEAAqE;IACrE,IAAW,aAAa,CAAC,IAAY;QAEnC,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAEvC,oFAAoF;QACpF,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,WAAW,GAAG,WAAW,CAAC;QAEjE,qCAAqC;QACrC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpI,CAAC;CACF"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { AccessController } from "./access-controller.js";
3
2
  import { AccessDevice } from "./access-device.js";
4
3
  import { EventEmitter } from "node:events";
@@ -1,5 +1,6 @@
1
1
  import { AccessReservedNames } from "./access-types.js";
2
2
  import { EventEmitter } from "node:events";
3
+ import { validateName } from "homebridge-plugin-utils";
3
4
  export class AccessEvents extends EventEmitter {
4
5
  api;
5
6
  controller;
@@ -50,9 +51,9 @@ export class AccessEvents extends EventEmitter {
50
51
  accessDevice.uda = packet.data;
51
52
  // If we have services on the accessory associated with the Access device that have a StatusActive characteristic set, update our availability state.
52
53
  accessDevice.accessory.services.filter(x => x.testCharacteristic(this.hap.Characteristic.StatusActive))
53
- ?.map(x => x.updateCharacteristic(this.hap.Characteristic.StatusActive, accessDevice?.uda.is_online === true));
54
+ ?.map(x => x.updateCharacteristic(this.hap.Characteristic.StatusActive, accessDevice?.isOnline ?? false));
54
55
  // Sync names, if configured to do so.
55
- if (accessDevice.hints.syncName && accessDevice.name !== accessDevice.uda.name) {
56
+ if (accessDevice.hints.syncName && (accessDevice.accessoryName !== validateName(accessDevice.uda.alias))) {
56
57
  accessDevice.log.info("Name change detected. A restart of Homebridge may be needed in order to complete name synchronization with HomeKit.");
57
58
  accessDevice.configureInfo();
58
59
  }
@@ -96,7 +97,7 @@ export class AccessEvents extends EventEmitter {
96
97
  this.emit(packet.event + "." + packet.event_object_id, packet);
97
98
  // If enabled, publish all the event traffic coming from the Access controller to MQTT.
98
99
  if (this.mqttPublishTelemetry) {
99
- this.controller.mqtt?.publish(this.controller.uda.host.mac, "telemetry", JSON.stringify(packet));
100
+ this.controller.mqtt?.publish(this.controller.uda.host.mac.replace(/:/g, ""), "telemetry", JSON.stringify(packet));
100
101
  }
101
102
  });
102
103
  return true;
@@ -130,7 +131,7 @@ export class AccessEvents extends EventEmitter {
130
131
  // If we have a motion trigger switch configured, update it.
131
132
  accessDevice.accessory.getServiceById(this.hap.Service.Switch, AccessReservedNames.SWITCH_MOTION_TRIGGER)?.updateCharacteristic(this.hap.Characteristic.On, true);
132
133
  // Publish the motion event to MQTT, if the user has configured it.
133
- this.controller.mqtt?.publish(accessDevice.accessory, "motion", "true");
134
+ this.controller.mqtt?.publish(accessDevice.id, "motion", "true");
134
135
  // Log the event, if configured to do so.
135
136
  if (accessDevice.hints.logMotion) {
136
137
  accessDevice.log.info("Motion detected.");
@@ -142,7 +143,7 @@ export class AccessEvents extends EventEmitter {
142
143
  accessDevice.accessory.getServiceById(this.hap.Service.Switch, AccessReservedNames.SWITCH_MOTION_TRIGGER)?.updateCharacteristic(this.hap.Characteristic.On, false);
143
144
  accessDevice.log.debug("Resetting motion event.");
144
145
  // Publish to MQTT, if the user has configured it.
145
- this.controller.mqtt?.publish(accessDevice.accessory, "motion", "false");
146
+ this.controller.mqtt?.publish(accessDevice.id, "motion", "false");
146
147
  // Delete the timer from our motion event tracker.
147
148
  delete this.eventTimers[accessDevice.id];
148
149
  }, accessDevice.hints.motionDuration * 1000);
@@ -1 +1 @@
1
- {"version":3,"file":"access-events.js","sourceRoot":"","sources":["../src/access-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access-events.js","sourceRoot":"","sources":["../src/access-events.ts"],"names":[],"mappings":"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"}
@@ -104,6 +104,7 @@ export class AccessHub extends AccessDevice {
104
104
  lockService.updateCharacteristic(this.hap.Characteristic.LockTargetState, !value);
105
105
  }, 50);
106
106
  }
107
+ lockService.updateCharacteristic(this.hap.Characteristic.LockCurrentState, this.hkLockState);
107
108
  });
108
109
  // Initialize the lock.
109
110
  this._hkLockState = -1;
@@ -199,25 +200,22 @@ export class AccessHub extends AccessDevice {
199
200
  return false;
200
201
  }
201
202
  // MQTT doorbell status.
202
- this.controller.mqtt?.subscribeGet(this.accessory, "doorbell", "Doorbell ring", () => {
203
+ this.controller.mqtt?.subscribeGet(this.id, "doorbell", "Doorbell ring", () => {
203
204
  return this.doorbellRingRequestId !== null ? "true" : "false";
204
205
  });
205
206
  // MQTT lock status.
206
- this.controller.mqtt?.subscribeGet(this.accessory, "lock", "Lock", () => {
207
+ this.controller.mqtt?.subscribeGet(this.id, "lock", "Lock", () => {
207
208
  switch (this.hkLockState) {
208
209
  case this.hap.Characteristic.LockCurrentState.SECURED:
209
210
  return "true";
210
- break;
211
211
  case this.hap.Characteristic.LockCurrentState.UNSECURED:
212
212
  return "false";
213
- break;
214
213
  default:
215
214
  return "unknown";
216
- break;
217
215
  }
218
216
  });
219
217
  // MQTT lock status.
220
- this.controller.mqtt?.subscribeSet(this.accessory, "lock", "Lock", (value) => {
218
+ this.controller.mqtt?.subscribeSet(this.id, "lock", "Lock", (value) => {
221
219
  switch (value) {
222
220
  case "true":
223
221
  void this.controller.udaApi.unlock(this.uda, 0);
@@ -234,12 +232,20 @@ export class AccessHub extends AccessDevice {
234
232
  }
235
233
  // Utility function to execute lock and unlock actions on a hub.
236
234
  async hubLockCommand(isLocking) {
235
+ const action = isLocking ? "lock" : "unlock";
236
+ // Only allow relocking if we are able to do so.
237
237
  if ((this.lockDelayInterval === undefined) && isLocking) {
238
238
  this.log.error("Unable to manually relock when the lock relay is configured to the default settings.");
239
239
  return false;
240
240
  }
241
+ // If we're not online, we're done.
242
+ if (!this.isOnline) {
243
+ this.log.error("Unable to %s. Device is offline.", action);
244
+ return false;
245
+ }
246
+ // Execute the action.
241
247
  if (!(await this.controller.udaApi.unlock(this.uda, (this.lockDelayInterval === undefined) ? undefined : (isLocking ? 0 : Infinity)))) {
242
- this.log.error("Unable to %s.", isLocking ? "lock" : "unlock");
248
+ this.log.error("Unable to %s.", action);
243
249
  return false;
244
250
  }
245
251
  return true;
@@ -269,7 +275,7 @@ export class AccessHub extends AccessDevice {
269
275
  }
270
276
  // Return the current state of the relay lock on the hub.
271
277
  get hubLockState() {
272
- const lockRelay = this.uda.configs.find(x => x.key === "input_state_rly-lock_dry");
278
+ const lockRelay = this.uda.configs?.find(x => x.key === "input_state_rly-lock_dry");
273
279
  return (lockRelay?.value === "off" ?
274
280
  this.hap.Characteristic.LockCurrentState.SECURED : this.hap.Characteristic.LockCurrentState.UNSECURED) ?? this.hap.Characteristic.LockCurrentState.UNKNOWN;
275
281
  }
@@ -305,7 +311,7 @@ export class AccessHub extends AccessDevice {
305
311
  // Update our doorbell trigger, if needed.
306
312
  this.accessory.getServiceById(this.hap.Service.Switch, AccessReservedNames.SWITCH_DOORBELL_TRIGGER)?.updateCharacteristic(this.hap.Characteristic.On, true);
307
313
  // Publish to MQTT, if configured to do so.
308
- this.controller.mqtt?.publish(this.accessory, "doorbell", "true");
314
+ this.controller.mqtt?.publish(this.id, "doorbell", "true");
309
315
  if (this.hints.logDoorbell) {
310
316
  this.log.info("Doorbell ring detected.");
311
317
  }
@@ -319,7 +325,7 @@ export class AccessHub extends AccessDevice {
319
325
  // Update our doorbell trigger, if needed.
320
326
  this.accessory.getServiceById(this.hap.Service.Switch, AccessReservedNames.SWITCH_DOORBELL_TRIGGER)?.updateCharacteristic(this.hap.Characteristic.On, false);
321
327
  // Publish to MQTT, if configured to do so.
322
- this.controller.mqtt?.publish(this.accessory, "doorbell", "false");
328
+ this.controller.mqtt?.publish(this.id, "doorbell", "false");
323
329
  if (this.hints.logDoorbell) {
324
330
  this.log.info("Doorbell ring cancelled.");
325
331
  }