homebridge-unifi-protect 7.21.0 → 7.23.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.
Files changed (58) hide show
  1. package/dist/devices/protect-camera-package.js +3 -3
  2. package/dist/devices/protect-camera-package.js.map +1 -1
  3. package/dist/devices/protect-camera.d.ts +2 -1
  4. package/dist/devices/protect-camera.js +78 -49
  5. package/dist/devices/protect-camera.js.map +1 -1
  6. package/dist/devices/protect-chime.js +3 -2
  7. package/dist/devices/protect-chime.js.map +1 -1
  8. package/dist/devices/protect-device.js +19 -22
  9. package/dist/devices/protect-device.js.map +1 -1
  10. package/dist/devices/protect-doorbell.d.ts +4 -2
  11. package/dist/devices/protect-doorbell.js +37 -22
  12. package/dist/devices/protect-doorbell.js.map +1 -1
  13. package/dist/devices/protect-light.js +6 -6
  14. package/dist/devices/protect-light.js.map +1 -1
  15. package/dist/devices/protect-liveviews.js +8 -26
  16. package/dist/devices/protect-liveviews.js.map +1 -1
  17. package/dist/devices/protect-nvr-systeminfo.d.ts +0 -2
  18. package/dist/devices/protect-nvr-systeminfo.js +13 -47
  19. package/dist/devices/protect-nvr-systeminfo.js.map +1 -1
  20. package/dist/devices/protect-securitysystem.js +17 -36
  21. package/dist/devices/protect-securitysystem.js.map +1 -1
  22. package/dist/devices/protect-sensor.d.ts +4 -4
  23. package/dist/devices/protect-sensor.js +56 -44
  24. package/dist/devices/protect-sensor.js.map +1 -1
  25. package/dist/devices/protect-viewer.js +8 -8
  26. package/dist/devices/protect-viewer.js.map +1 -1
  27. package/dist/protect-events.js +12 -18
  28. package/dist/protect-events.js.map +1 -1
  29. package/dist/protect-livestream.js +10 -4
  30. package/dist/protect-livestream.js.map +1 -1
  31. package/dist/protect-nvr.d.ts +5 -5
  32. package/dist/protect-nvr.js +36 -34
  33. package/dist/protect-nvr.js.map +1 -1
  34. package/dist/protect-options.d.ts +4 -4
  35. package/dist/protect-options.js +3 -2
  36. package/dist/protect-options.js.map +1 -1
  37. package/dist/protect-platform.d.ts +1 -1
  38. package/dist/protect-platform.js +8 -14
  39. package/dist/protect-platform.js.map +1 -1
  40. package/dist/protect-record.d.ts +1 -2
  41. package/dist/protect-record.js +9 -14
  42. package/dist/protect-record.js.map +1 -1
  43. package/dist/protect-stream.js +39 -59
  44. package/dist/protect-stream.js.map +1 -1
  45. package/dist/protect-timeshift.d.ts +0 -2
  46. package/dist/protect-timeshift.js +7 -15
  47. package/dist/protect-timeshift.js.map +1 -1
  48. package/dist/protect-types.d.ts +2 -0
  49. package/dist/protect-types.js +3 -0
  50. package/dist/protect-types.js.map +1 -1
  51. package/dist/settings.d.ts +4 -4
  52. package/dist/settings.js +5 -5
  53. package/dist/settings.js.map +1 -1
  54. package/homebridge-ui/public/lib/featureoptions.js +7 -8
  55. package/homebridge-ui/public/lib/featureoptions.js.map +1 -1
  56. package/homebridge-ui/public/lib/webUi-featureoptions.mjs +488 -213
  57. package/homebridge-ui/public/ui.mjs +1 -1
  58. package/package.json +9 -9
@@ -2,14 +2,13 @@
2
2
  *
3
3
  * protect-nvr-systeminfo.ts: NVR System Information device class for UniFi Protect.
4
4
  */
5
- import { sanitizeName } from "homebridge-plugin-utils";
5
+ import { acquireService, sanitizeName, validService } from "homebridge-plugin-utils";
6
6
  import { PLATFORM_NAME, PLUGIN_NAME } from "../settings.js";
7
7
  import { ProtectBase } from "./protect-device.js";
8
8
  export class ProtectNvrSystemInfo extends ProtectBase {
9
9
  accessory;
10
10
  eventListener;
11
11
  isConfigured;
12
- lastTemp;
13
12
  // Configure our NVR sensor capability.
14
13
  constructor(nvr) {
15
14
  // Let the base class get us set up.
@@ -18,7 +17,6 @@ export class ProtectNvrSystemInfo extends ProtectBase {
18
17
  this.accessory = null;
19
18
  this.eventListener = null;
20
19
  this.isConfigured = false;
21
- this.lastTemp = 0;
22
20
  this.configureAccessory();
23
21
  this.configureMqtt();
24
22
  this.nvr.events.on("updateEvent." + this.nvr.ufp.id, this.eventListener = this.eventHandler.bind(this));
@@ -52,11 +50,6 @@ export class ProtectNvrSystemInfo extends ProtectBase {
52
50
  if (!this.accessory) {
53
51
  // We will use the NVR MAC address + ".NVRSystemInfo" to create our UUID. That should provide the guaranteed uniqueness we need.
54
52
  this.accessory = new this.api.platformAccessory(sanitizeName(this.nvr.ufp.name ?? this.nvr.ufp.marketName), uuid);
55
- if (!this.accessory) {
56
- this.isConfigured = true;
57
- this.log.error("Unable to create the system information accessory.");
58
- return;
59
- }
60
53
  // Register this accessory with homebridge and add it to the platform accessory array so we can track it.
61
54
  this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [this.accessory]);
62
55
  this.platform.accessories.push(this.accessory);
@@ -66,9 +59,8 @@ export class ProtectNvrSystemInfo extends ProtectBase {
66
59
  this.accessory.context = {};
67
60
  this.accessory.context.nvr = this.nvr.ufp.mac;
68
61
  this.accessory.context.systemInfo = true;
69
- // Verify the NVR has been bootstrapped, and finish our configuration.
70
- if (this.nvr.ufp.systemInfo) {
71
- // Configure accessory information.
62
+ // Configure accessory information.
63
+ if (this.nvr.ufpApi.bootstrap) {
72
64
  this.setInfo(this.accessory, this.nvr.ufp);
73
65
  }
74
66
  // Configure accessory services.
@@ -112,55 +104,29 @@ export class ProtectNvrSystemInfo extends ProtectBase {
112
104
  if (!this.accessory) {
113
105
  return false;
114
106
  }
115
- // Find the service, if it exists.
116
- let temperatureService = this.accessory.getService(this.hap.Service.TemperatureSensor);
117
- // Have we disabled the temperature sensor?
118
- if (!this.nvr?.hasFeature("NVR.SystemInfo.Temperature")) {
119
- if (temperatureService) {
120
- this.accessory.removeService(temperatureService);
121
- this.log.info("Disabling CPU temperature sensor.");
122
- }
107
+ // Validate the service.
108
+ if (!validService(this.accessory, this.hap.Service.TemperatureSensor, this.nvr.hasFeature("NVR.SystemInfo"))) {
123
109
  return false;
124
110
  }
125
- // Add the service to the accessory, if needed.
126
- if (!temperatureService) {
127
- temperatureService = new this.hap.Service.TemperatureSensor("CPU Temperature");
128
- if (!temperatureService) {
129
- this.log.error("Unable to add CPU temperature sensor.");
130
- return false;
131
- }
132
- this.accessory.addService(temperatureService);
111
+ // Acquire the service.
112
+ const service = acquireService(this.accessory, this.hap.Service.TemperatureSensor, this.accessory.displayName + " CPU Temperature");
113
+ if (!service) {
114
+ this.log.error("Unable to add CPU temperature sensor.");
115
+ return false;
133
116
  }
134
117
  // If we're configuring for the first time, we add our respective handlers.
135
118
  if (configureHandler) {
136
119
  // Retrieve the current temperature when requested.
137
- temperatureService.getCharacteristic(this.hap.Characteristic.CurrentTemperature)?.onGet(() => {
138
- return this.getCpuTemp();
139
- });
120
+ service.getCharacteristic(this.hap.Characteristic.CurrentTemperature).onGet(() => this.nvr.ufp.systemInfo.cpu.temperature);
140
121
  }
141
122
  // Update the sensor.
142
- temperatureService.updateCharacteristic(this.hap.Characteristic.CurrentTemperature, this.getCpuTemp());
123
+ service.updateCharacteristic(this.hap.Characteristic.CurrentTemperature, this.nvr.ufp.systemInfo.cpu.temperature);
143
124
  return true;
144
125
  }
145
- // Retrieve the CPU temperature of the Protect NVR for HomeKit.
146
- getCpuTemp() {
147
- let cpuTemp = this.nvr.ufp?.systemInfo?.cpu?.temperature;
148
- // No data available from the Protect NVR, so we default to a starting point.
149
- if (cpuTemp === undefined) {
150
- return this.lastTemp;
151
- }
152
- // HomeKit wants temperature values in Celsius, so we need to convert accordingly, if needed.
153
- if (this.nvr.ufp.temperatureUnit === "F") {
154
- cpuTemp = (cpuTemp - 32) * (5 / 9);
155
- }
156
- return this.lastTemp = cpuTemp;
157
- }
158
126
  // Configure MQTT capabilities for the security system.
159
127
  configureMqtt() {
160
128
  // Return the current status of all sensors.
161
- this.nvr.mqtt?.subscribeGet(this.nvr.ufp.mac, "systeminfo", "system information", () => {
162
- return JSON.stringify(this.nvr.ufp.systemInfo);
163
- });
129
+ this.nvr.mqtt?.subscribeGet(this.nvr.ufp.mac, "systeminfo", "system information", () => JSON.stringify(this.nvr.ufp.systemInfo));
164
130
  }
165
131
  }
166
132
  //# sourceMappingURL=protect-nvr-systeminfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protect-nvr-systeminfo.js","sourceRoot":"","sources":["../../src/devices/protect-nvr-systeminfo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protect-nvr-systeminfo.js","sourceRoot":"","sources":["../../src/devices/protect-nvr-systeminfo.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { acquireService, validService } from "homebridge-plugin-utils";
1
2
  import { ProtectBase } from "./protect-device.js";
2
3
  import { ProtectReservedNames } from "../protect-types.js";
3
4
  export class ProtectSecuritySystem extends ProtectBase {
@@ -96,15 +97,10 @@ export class ProtectSecuritySystem extends ProtectBase {
96
97
  // Configure the security system for HomeKit.
97
98
  configureSecuritySystem() {
98
99
  // Find any existing security system service.
99
- let service = this.accessory.getService(this.hap.Service.SecuritySystem);
100
- // Add the security system service, if needed.
100
+ const service = acquireService(this.accessory, this.hap.Service.SecuritySystem, this.accessory.displayName);
101
101
  if (!service) {
102
- service = new this.hap.Service.SecuritySystem(this.accessory.displayName);
103
- if (!service) {
104
- this.log.error("Unable to add security system.");
105
- return false;
106
- }
107
- this.accessory.addService(service);
102
+ this.log.error("Unable to add security system.");
103
+ return false;
108
104
  }
109
105
  const SecuritySystemCurrentState = this.hap.Characteristic.SecuritySystemCurrentState;
110
106
  const SecuritySystemTargetState = this.hap.Characteristic.SecuritySystemTargetState;
@@ -126,7 +122,7 @@ export class ProtectSecuritySystem extends ProtectBase {
126
122
  }
127
123
  // Handlers to get our current state, and initialize on startup.
128
124
  service.updateCharacteristic(SecuritySystemCurrentState, this.accessory.context.securityState)
129
- .getCharacteristic(SecuritySystemCurrentState)?.onGet(() => {
125
+ .getCharacteristic(SecuritySystemCurrentState).onGet(() => {
130
126
  return this.isAlarmTriggered ? this.hap.Characteristic.SecuritySystemCurrentState.ALARM_TRIGGERED : this.accessory.context.securityState;
131
127
  });
132
128
  // Handlers for triggering a change in the security system state.
@@ -139,40 +135,26 @@ export class ProtectSecuritySystem extends ProtectBase {
139
135
  // Configure the security alarm for HomeKit.
140
136
  configureSecurityAlarm() {
141
137
  this.isAlarmTriggered = false;
142
- // Find the existing security alarm switch service.
143
- let switchService = this.accessory.getService(this.hap.Service.Switch);
144
138
  // Have we enabled the security system alarm?
145
- if (!this.nvr?.hasFeature("SecuritySystem.Alarm")) {
146
- if (switchService) {
147
- this.accessory.removeService(switchService);
148
- }
139
+ if (!validService(this.accessory, this.hap.Service.Switch, this.nvr.hasFeature("SecuritySystem.Alarm"))) {
149
140
  return false;
150
141
  }
151
- const switchName = this.accessory.displayName + " Security Alarm";
152
- // Add the security alarm switch to the security system.
153
- if (!switchService) {
154
- switchService = new this.hap.Service.Switch(switchName);
155
- if (!switchService) {
156
- this.log.error("Unable to add security system alarm.");
157
- return false;
158
- }
159
- switchService.addOptionalCharacteristic(this.hap.Characteristic.ConfiguredName);
160
- this.accessory.addService(switchService);
142
+ // Acquire the service.
143
+ const service = acquireService(this.accessory, this.hap.Service.Switch, this.accessory.displayName + " Security Alarm");
144
+ if (!service) {
145
+ this.log.error("Unable to add security system alarm.");
146
+ return false;
161
147
  }
162
148
  // Notify the user that we're enabled.
163
149
  this.log.info("Enabling the security alarm switch on the security system accessory.");
164
150
  // Activate or deactivate the security alarm.
165
- switchService.getCharacteristic(this.hap.Characteristic.On)
166
- ?.onGet(() => {
167
- return this.isAlarmTriggered === true;
168
- })
169
- .onSet((value) => {
170
- this.setSecurityAlarm(value === true);
171
- this.log.info("Security system alarm %s.", (value === true) ? "triggered" : "reset");
151
+ service.getCharacteristic(this.hap.Characteristic.On).onGet(() => this.isAlarmTriggered === true);
152
+ service.getCharacteristic(this.hap.Characteristic.On).onSet((value) => {
153
+ this.setSecurityAlarm(!!value);
154
+ this.log.info("Security system alarm %s.", value ? "triggered" : "reset");
172
155
  });
173
156
  // Initialize the value.
174
- switchService.updateCharacteristic(this.hap.Characteristic.ConfiguredName, switchName);
175
- switchService.updateCharacteristic(this.hap.Characteristic.On, this.isAlarmTriggered);
157
+ service.updateCharacteristic(this.hap.Characteristic.On, this.isAlarmTriggered);
176
158
  return true;
177
159
  }
178
160
  // Update security system accessory settings.
@@ -269,8 +251,7 @@ export class ProtectSecuritySystem extends ProtectBase {
269
251
  let targetState = false;
270
252
  // If we're disarming, then all Protect cameras will disable motion detection in HomeKit. Otherwise, check to see if this is one of the cameras we want to turn on
271
253
  // motion detection for.
272
- if (((newState !== SecuritySystemCurrentState.DISARMED) ||
273
- ((newState === SecuritySystemCurrentState.DISARMED) && targetCameraIds.length)) && targetCameraIds.some(thisCameraId => thisCameraId === targetUfp?.id)) {
254
+ if (((newState !== SecuritySystemCurrentState.DISARMED) || targetCameraIds.length) && targetCameraIds.some(thisCameraId => thisCameraId === targetUfp.id)) {
274
255
  targetState = true;
275
256
  }
276
257
  // Only take action to change motion detection state if needed.
@@ -1 +1 @@
1
- {"version":3,"file":"protect-securitysystem.js","sourceRoot":"","sources":["../../src/devices/protect-securitysystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protect-securitysystem.js","sourceRoot":"","sources":["../../src/devices/protect-securitysystem.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
+ import type { DeepIndexable, ProtectSensorConfig } from "unifi-protect";
1
2
  import type { PlatformAccessory } from "homebridge";
2
- import type { ProtectSensorConfig } from "unifi-protect";
3
3
  import { ProtectDevice } from "./protect-device.js";
4
4
  import type { ProtectNvr } from "../protect-nvr.js";
5
5
  export declare class ProtectSensor extends ProtectDevice {
6
6
  private enabledSensors;
7
- private lastAlarm;
7
+ private lastAlarm?;
8
8
  private lastLeak;
9
- ufp: ProtectSensorConfig;
9
+ ufp: DeepIndexable<ProtectSensorConfig>;
10
10
  constructor(nvr: ProtectNvr, device: ProtectSensorConfig, accessory: PlatformAccessory);
11
11
  private configureDevice;
12
12
  private configureBatteryService;
@@ -23,7 +23,7 @@ export declare class ProtectSensor extends ProtectDevice {
23
23
  private get ambientLight();
24
24
  private get contact();
25
25
  private get humidity();
26
- private get leakDetected();
26
+ private leakDetected;
27
27
  private get temperature();
28
28
  private configureMqtt;
29
29
  private eventHandler;
@@ -9,6 +9,7 @@ export class ProtectSensor extends ProtectDevice {
9
9
  constructor(nvr, device, accessory) {
10
10
  super(nvr, accessory);
11
11
  this.enabledSensors = [];
12
+ this.lastLeak = {};
12
13
  this.ufp = device;
13
14
  this.configureHints();
14
15
  this.configureDevice();
@@ -67,12 +68,17 @@ export class ProtectSensor extends ProtectDevice {
67
68
  if (this.configureHumiditySensor()) {
68
69
  currentEnabledSensors.push("humidity");
69
70
  }
70
- // Configure the alarm sound sensor.
71
+ // Configure the leak sensor.
71
72
  if (this.configureLeakSensor()) {
72
- currentEnabledSensors.push("leak");
73
+ if (this.ufp.leakSettings.isInternalEnabled) {
74
+ currentEnabledSensors.push("leak");
75
+ }
76
+ if (this.ufp.leakSettings.isExternalEnabled) {
77
+ currentEnabledSensors.push("leak (external)");
78
+ }
73
79
  }
74
80
  // Configure the motion sensor.
75
- if (this.configureMotionSensor(this.ufp.motionSettings?.isEnabled, isInitialized)) {
81
+ if (this.configureMotionSensor(this.ufp.motionSettings.isEnabled, isInitialized)) {
76
82
  // Sensor accessories also support battery, connection, and tamper status...we need to handle those ourselves.
77
83
  const motionService = this.accessory.getService(this.hap.Service.MotionSensor);
78
84
  if (motionService) {
@@ -82,7 +88,7 @@ export class ProtectSensor extends ProtectDevice {
82
88
  currentEnabledSensors.push("motion sensor");
83
89
  }
84
90
  // Configure the occupancy sensor.
85
- this.configureOccupancySensor(this.ufp.motionSettings?.isEnabled, isInitialized);
91
+ this.configureOccupancySensor(this.ufp.motionSettings.isEnabled, isInitialized);
86
92
  // Configure the temperature sensor.
87
93
  if (this.configureTemperatureSensor()) {
88
94
  currentEnabledSensors.push("temperature");
@@ -104,7 +110,7 @@ export class ProtectSensor extends ProtectDevice {
104
110
  // Configure the alarm sound sensor for HomeKit.
105
111
  configureAlarmSoundSensor() {
106
112
  // Validate whether we should have this service enabled.
107
- if (!this.validService(this.hap.Service.ContactSensor, this.ufp.alarmSettings?.isEnabled, ProtectReservedNames.CONTACT_SENSOR_ALARM_SOUND)) {
113
+ if (!this.validService(this.hap.Service.ContactSensor, this.ufp.alarmSettings.isEnabled, ProtectReservedNames.CONTACT_SENSOR_ALARM_SOUND)) {
108
114
  return false;
109
115
  }
110
116
  // Acquire the service.
@@ -115,7 +121,7 @@ export class ProtectSensor extends ProtectDevice {
115
121
  return false;
116
122
  }
117
123
  // Retrieve the current contact sensor state when requested.
118
- service.getCharacteristic(this.hap.Characteristic.ContactSensorState)?.onGet(() => this.alarmDetected);
124
+ service.getCharacteristic(this.hap.Characteristic.ContactSensorState).onGet(() => this.alarmDetected);
119
125
  // Update the sensor.
120
126
  service.updateCharacteristic(this.hap.Characteristic.ContactSensorState, this.alarmDetected);
121
127
  // Update the state characteristics.
@@ -127,7 +133,7 @@ export class ProtectSensor extends ProtectDevice {
127
133
  // Configure the ambient light sensor for HomeKit.
128
134
  configureAmbientLightSensor() {
129
135
  // Validate whether we should have this service enabled.
130
- if (!this.validService(this.hap.Service.LightSensor, this.ufp.lightSettings?.isEnabled)) {
136
+ if (!this.validService(this.hap.Service.LightSensor, this.ufp.lightSettings.isEnabled)) {
131
137
  return false;
132
138
  }
133
139
  // Acquire the service.
@@ -138,7 +144,7 @@ export class ProtectSensor extends ProtectDevice {
138
144
  return false;
139
145
  }
140
146
  // Retrieve the current light level when requested.
141
- service.getCharacteristic(this.hap.Characteristic.CurrentAmbientLightLevel)?.onGet(() => {
147
+ service.getCharacteristic(this.hap.Characteristic.CurrentAmbientLightLevel).onGet(() => {
142
148
  // The minimum value for ambient light in HomeKit is 0.0001. I have no idea why...but it is. Honor it.
143
149
  return this.ambientLight >= 0.0001 ? this.ambientLight : 0.0001;
144
150
  });
@@ -164,7 +170,7 @@ export class ProtectSensor extends ProtectDevice {
164
170
  return false;
165
171
  }
166
172
  // Retrieve the current contact sensor state when requested.
167
- service.getCharacteristic(this.hap.Characteristic.ContactSensorState)?.onGet(() => this.contact);
173
+ service.getCharacteristic(this.hap.Characteristic.ContactSensorState).onGet(() => this.contact);
168
174
  // Update the sensor.
169
175
  service.updateCharacteristic(this.hap.Characteristic.ContactSensorState, this.contact);
170
176
  // Update the state characteristics.
@@ -176,7 +182,7 @@ export class ProtectSensor extends ProtectDevice {
176
182
  // Configure the humidity sensor for HomeKit.
177
183
  configureHumiditySensor() {
178
184
  // Validate whether we should have this service enabled.
179
- if (!this.validService(this.hap.Service.HumiditySensor, this.ufp.humiditySettings?.isEnabled)) {
185
+ if (!this.validService(this.hap.Service.HumiditySensor, this.ufp.humiditySettings.isEnabled)) {
180
186
  return false;
181
187
  }
182
188
  // Acquire the service.
@@ -187,7 +193,7 @@ export class ProtectSensor extends ProtectDevice {
187
193
  return false;
188
194
  }
189
195
  // Retrieve the current humidity when requested.
190
- service.getCharacteristic(this.hap.Characteristic.CurrentRelativeHumidity)?.onGet(() => {
196
+ service.getCharacteristic(this.hap.Characteristic.CurrentRelativeHumidity).onGet(() => {
191
197
  return this.humidity < 0 ? 0 : this.humidity;
192
198
  });
193
199
  // Update the sensor.
@@ -200,33 +206,39 @@ export class ProtectSensor extends ProtectDevice {
200
206
  }
201
207
  // Configure the leak sensor for HomeKit.
202
208
  configureLeakSensor() {
203
- // Validate whether we should have this service enabled.
204
- if (!this.validService(this.hap.Service.LeakSensor, this.ufp.mountType === "leak")) {
205
- return false;
206
- }
207
- // Acquire the service.
208
- const service = this.acquireService(this.hap.Service.LeakSensor);
209
- // Fail gracefully.
210
- if (!service) {
211
- this.log.error("Unable to add leak sensor.");
212
- return false;
209
+ let count = 0;
210
+ for (const sensor of [
211
+ { isDetected: "externalLeakDetectedAt", isEnabled: "isExternalEnabled", mqtt: "leak-enternal", name: " External Leak Sensor",
212
+ subtype: ProtectReservedNames.LEAKSENSOR_EXTERNAL },
213
+ { isDetected: "leakDetectedAt", isEnabled: "isInternalEnabled", mqtt: "leak", subtype: ProtectReservedNames.LEAKSENSOR_INTERNAL }
214
+ ]) {
215
+ // Validate whether we should have this service enabled.
216
+ if (!this.validService(this.hap.Service.LeakSensor, this.ufp.leakSettings[sensor.isEnabled], sensor.subtype)) {
217
+ continue;
218
+ }
219
+ // Acquire the service.
220
+ const service = this.acquireService(this.hap.Service.LeakSensor, this.accessoryName + (sensor.name ?? ""), sensor.subtype);
221
+ // Fail gracefully.
222
+ if (!service) {
223
+ this.log.error("Unable to add leak sensor.");
224
+ continue;
225
+ }
226
+ // Retrieve the current contact sensor state when requested.
227
+ service.getCharacteristic(this.hap.Characteristic.LeakDetected).onGet(() => this.leakDetected(sensor.isDetected));
228
+ // Update the sensor.
229
+ service.updateCharacteristic(this.hap.Characteristic.LeakDetected, this.leakDetected(sensor.isDetected));
230
+ // Update the state characteristics.
231
+ this.configureStateCharacteristics(service);
232
+ // Publish the state.
233
+ this.publish(sensor.mqtt, this.leakDetected.toString());
234
+ count++;
213
235
  }
214
- // Retrieve the current contact sensor state when requested.
215
- service.getCharacteristic(this.hap.Characteristic.LeakDetected)?.onGet(() => {
216
- return this.leakDetected;
217
- });
218
- // Update the sensor.
219
- service.updateCharacteristic(this.hap.Characteristic.LeakDetected, this.leakDetected);
220
- // Update the state characteristics.
221
- this.configureStateCharacteristics(service);
222
- // Publish the state.
223
- this.publish("leak", this.leakDetected.toString());
224
- return true;
236
+ return count > 0;
225
237
  }
226
238
  // Configure the temperature sensor for HomeKit.
227
239
  configureTemperatureSensor() {
228
240
  // Validate whether we should have this service enabled.
229
- if (!this.validService(this.hap.Service.TemperatureSensor, this.ufp.temperatureSettings?.isEnabled)) {
241
+ if (!this.validService(this.hap.Service.TemperatureSensor, this.ufp.temperatureSettings.isEnabled)) {
230
242
  return false;
231
243
  }
232
244
  // Acquire the service.
@@ -237,7 +249,7 @@ export class ProtectSensor extends ProtectDevice {
237
249
  return false;
238
250
  }
239
251
  // Retrieve the current temperature when requested.
240
- service.getCharacteristic(this.hap.Characteristic.CurrentTemperature)?.onGet(() => {
252
+ service.getCharacteristic(this.hap.Characteristic.CurrentTemperature).onGet(() => {
241
253
  return this.temperature < 0 ? 0 : this.temperature;
242
254
  });
243
255
  // Update the sensor.
@@ -253,18 +265,18 @@ export class ProtectSensor extends ProtectDevice {
253
265
  // Find the battery service, if it exists.
254
266
  const batteryService = this.accessory.getService(this.hap.Service.Battery);
255
267
  // Update the battery status.
256
- batteryService?.updateCharacteristic(this.hap.Characteristic.BatteryLevel, this.ufp.batteryStatus?.percentage ?? 0);
257
- batteryService?.updateCharacteristic(this.hap.Characteristic.StatusLowBattery, this.ufp.batteryStatus?.isLow);
268
+ batteryService?.updateCharacteristic(this.hap.Characteristic.BatteryLevel, this.ufp.batteryStatus.percentage ?? 0);
269
+ batteryService?.updateCharacteristic(this.hap.Characteristic.StatusLowBattery, this.ufp.batteryStatus.isLow);
258
270
  return true;
259
271
  }
260
272
  // Configure the additional state characteristics in HomeKit.
261
273
  configureStateCharacteristics(service) {
262
274
  // Retrieve the current connection status when requested.
263
- service.getCharacteristic(this.hap.Characteristic.StatusActive)?.onGet(() => this.isOnline);
275
+ service.getCharacteristic(this.hap.Characteristic.StatusActive).onGet(() => this.isOnline);
264
276
  // Update the current connection status.
265
277
  service.updateCharacteristic(this.hap.Characteristic.StatusActive, this.isOnline);
266
278
  // Retrieve the current tamper status when requested.
267
- service.getCharacteristic(this.hap.Characteristic.StatusTampered)?.onGet(() => this.ufp.tamperingDetectedAt !== null);
279
+ service.getCharacteristic(this.hap.Characteristic.StatusTampered).onGet(() => this.ufp.tamperingDetectedAt !== null);
268
280
  // Update the tamper status.
269
281
  service.updateCharacteristic(this.hap.Characteristic.StatusTampered, this.ufp.tamperingDetectedAt !== null);
270
282
  return true;
@@ -293,17 +305,17 @@ export class ProtectSensor extends ProtectDevice {
293
305
  return this.ufp.stats?.humidity?.value ?? -1;
294
306
  }
295
307
  // Get the current leak sensor information.
296
- get leakDetected() {
308
+ leakDetected(type = "leakDetectedAt") {
297
309
  // Return true if we are not null, meaning a leak has been detected.
298
- const value = this.ufp.leakDetectedAt !== null;
310
+ const value = this.ufp[type] !== null;
299
311
  // If it's our first run, just save the state and we're done if we don't have a leak. If we do have a leak, make sure we inform the user.
300
- if ((this.lastLeak === undefined) && !value) {
301
- this.lastLeak = value;
312
+ if ((this.lastLeak[type] === undefined) && !value) {
313
+ this.lastLeak[type] = value;
302
314
  return value;
303
315
  }
304
316
  // Save the state change and publish to MQTT.
305
- if (value !== this.lastLeak) {
306
- this.lastLeak = value;
317
+ if (value !== this.lastLeak[type]) {
318
+ this.lastLeak[type] = value;
307
319
  this.log.info("Leak %sdetected.", value ? "" : "no longer ");
308
320
  }
309
321
  return value;
@@ -1 +1 @@
1
- {"version":3,"file":"protect-sensor.js","sourceRoot":"","sources":["../../src/devices/protect-sensor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protect-sensor.js","sourceRoot":"","sources":["../../src/devices/protect-sensor.ts"],"names":[],"mappings":"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"}