homebridge-unifi-protect 6.19.0 → 6.20.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.
- package/dist/devices/protect-camera.d.ts +0 -2
- package/dist/devices/protect-camera.js +114 -189
- package/dist/devices/protect-camera.js.map +1 -1
- package/dist/devices/protect-chime.d.ts +3 -0
- package/dist/devices/protect-chime.js +100 -28
- package/dist/devices/protect-chime.js.map +1 -1
- package/dist/devices/protect-device.d.ts +7 -2
- package/dist/devices/protect-device.js +147 -98
- package/dist/devices/protect-device.js.map +1 -1
- package/dist/devices/protect-doorbell.js +48 -81
- package/dist/devices/protect-doorbell.js.map +1 -1
- package/dist/devices/protect-light.js +33 -43
- package/dist/devices/protect-light.js.map +1 -1
- package/dist/devices/protect-liveviews.js +10 -20
- package/dist/devices/protect-liveviews.js.map +1 -1
- package/dist/devices/protect-nvr-systeminfo.js +2 -8
- package/dist/devices/protect-nvr-systeminfo.js.map +1 -1
- package/dist/devices/protect-securitysystem.d.ts +1 -2
- package/dist/devices/protect-securitysystem.js +31 -58
- package/dist/devices/protect-securitysystem.js.map +1 -1
- package/dist/devices/protect-sensor.d.ts +2 -1
- package/dist/devices/protect-sensor.js +137 -184
- package/dist/devices/protect-sensor.js.map +1 -1
- package/dist/devices/protect-viewer.js +21 -28
- package/dist/devices/protect-viewer.js.map +1 -1
- package/dist/protect-mqtt.d.ts +2 -2
- package/dist/protect-mqtt.js +17 -3
- package/dist/protect-mqtt.js.map +1 -1
- package/dist/protect-nvr.js +5 -2
- package/dist/protect-nvr.js.map +1 -1
- package/dist/protect-options.js +6 -5
- package/dist/protect-options.js.map +1 -1
- package/dist/protect-record.js +8 -8
- package/dist/protect-record.js.map +1 -1
- package/dist/protect-snapshot.js +8 -0
- package/dist/protect-snapshot.js.map +1 -1
- package/dist/protect-types.d.ts +3 -0
- package/dist/protect-types.js +6 -0
- package/dist/protect-types.js.map +1 -1
- package/dist/settings.d.ts +1 -0
- package/dist/settings.js +2 -0
- package/dist/settings.js.map +1 -1
- package/homebridge-ui/public/index.html +2 -0
- package/package.json +9 -9
|
@@ -75,6 +75,60 @@ export class ProtectDevice extends ProtectBase {
|
|
|
75
75
|
this.accessory = accessory;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
+
// Retrieve an existing service from an accessory, creating it if necessary.
|
|
79
|
+
acquireService(serviceType, name = this.accessoryName, subtype, onServiceCreate) {
|
|
80
|
+
// Services that need the ConfiguredName characteristic added and maintained.
|
|
81
|
+
const configuredNameServices = [this.hap.Service.ContactSensor, this.hap.Service.Lightbulb, this.hap.Service.MotionSensor, this.hap.Service.OccupancySensor,
|
|
82
|
+
this.hap.Service.Switch];
|
|
83
|
+
// Services that need the Name characteristic maintained.
|
|
84
|
+
const nameServices = [this.hap.Service.Battery, this.hap.Service.ContactSensor, this.hap.Service.HumiditySensor, this.hap.Service.LeakSensor,
|
|
85
|
+
this.hap.Service.Lightbulb, this.hap.Service.LightSensor, this.hap.Service.MotionSensor, this.hap.Service.TemperatureSensor];
|
|
86
|
+
// Find the service, if it exists.
|
|
87
|
+
let service = subtype ? this.accessory.getServiceById(serviceType, subtype) : this.accessory.getService(serviceType);
|
|
88
|
+
// Add the service to the accessory, if needed.
|
|
89
|
+
if (!service) {
|
|
90
|
+
// @ts-expect-error TypeScript tries to associate this with an overloaded version of the addService method. However, Homebridge/HAP-NodeJS isn't exporting
|
|
91
|
+
// a version of the method that implements the unexposed interface that's been defined for each service class (e.g. Lightbulb). The constructor on the
|
|
92
|
+
// service-type-specific version of the service takes the following arguments: constructor(displayName?: string, subtype?: string). We're safe, but because
|
|
93
|
+
// the type definitions are missing, we need to override it here.
|
|
94
|
+
service = new serviceType(name, subtype);
|
|
95
|
+
if (!service) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
this.accessory.addService(service);
|
|
99
|
+
if (onServiceCreate) {
|
|
100
|
+
onServiceCreate();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Update our name.
|
|
104
|
+
service.displayName = name;
|
|
105
|
+
if (configuredNameServices.includes(serviceType)) {
|
|
106
|
+
// Add the characteristic if we don't already have it. We do this here instead of at service creation to ensure we catch legacy situations where we may have
|
|
107
|
+
// already created the service previously without adding the optional characteristics we want.
|
|
108
|
+
if (!service.optionalCharacteristics.some(x => (x.UUID === this.hap.Characteristic.ConfiguredName.UUID))) {
|
|
109
|
+
service.addOptionalCharacteristic(this.hap.Characteristic.ConfiguredName);
|
|
110
|
+
}
|
|
111
|
+
service.updateCharacteristic(this.hap.Characteristic.ConfiguredName, name);
|
|
112
|
+
}
|
|
113
|
+
if (nameServices.includes(serviceType)) {
|
|
114
|
+
service.updateCharacteristic(this.hap.Characteristic.Name, name);
|
|
115
|
+
}
|
|
116
|
+
return service;
|
|
117
|
+
}
|
|
118
|
+
// Validate whether a service should exist, removing it if necessary.
|
|
119
|
+
validService(serviceType, validate, subtype) {
|
|
120
|
+
// Find the switch service, if it exists.
|
|
121
|
+
const service = subtype ? this.accessory.getServiceById(serviceType, subtype) : this.accessory.getService(serviceType);
|
|
122
|
+
// Validate whether we should have the service. If not, remove it.
|
|
123
|
+
if (!validate()) {
|
|
124
|
+
if (service) {
|
|
125
|
+
this.accessory.removeService(service);
|
|
126
|
+
}
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
// We have a valid service.
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
78
132
|
// Configure device-specific settings.
|
|
79
133
|
configureHints() {
|
|
80
134
|
this.hints.enabled = this.hasFeature("Device");
|
|
@@ -119,46 +173,63 @@ export class ProtectDevice extends ProtectBase {
|
|
|
119
173
|
delete this.listeners[eventName];
|
|
120
174
|
}
|
|
121
175
|
}
|
|
176
|
+
// Utility to ease publishing of MQTT events.
|
|
177
|
+
publish(topic, message) {
|
|
178
|
+
this.nvr.mqtt?.publish(this.accessory, topic, message);
|
|
179
|
+
}
|
|
180
|
+
// Configure our MQTT get subscriptions.
|
|
181
|
+
subscribeGet(topic, type, getValue) {
|
|
182
|
+
this.nvr.mqtt?.subscribeGet(this.accessory, topic, type, getValue);
|
|
183
|
+
}
|
|
184
|
+
// Configure our MQTT set subscriptions.
|
|
185
|
+
subscribeSet(topic, type, setValue) {
|
|
186
|
+
this.nvr.mqtt?.subscribeSet(this.accessory, topic, type, setValue);
|
|
187
|
+
}
|
|
122
188
|
// Configure the Protect motion sensor for HomeKit.
|
|
123
189
|
configureMotionSensor(isEnabled = true, isInitialized = false) {
|
|
124
|
-
//
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
this.
|
|
130
|
-
this.
|
|
131
|
-
this.
|
|
190
|
+
// Validate whether we should have this service enabled.
|
|
191
|
+
if (!this.validService(this.hap.Service.MotionSensor, () => {
|
|
192
|
+
// Have we disabled the motion sensor?
|
|
193
|
+
if (!isEnabled) {
|
|
194
|
+
this.nvr.mqtt?.unsubscribe(this.accessory, "motion/get");
|
|
195
|
+
this.nvr.mqtt?.unsubscribe(this.accessory, "motion/set");
|
|
196
|
+
this.configureMotionSwitch(isEnabled);
|
|
197
|
+
this.configureMotionTrigger(isEnabled);
|
|
198
|
+
return false;
|
|
132
199
|
}
|
|
133
|
-
|
|
134
|
-
|
|
200
|
+
return true;
|
|
201
|
+
})) {
|
|
135
202
|
return false;
|
|
136
203
|
}
|
|
137
|
-
//
|
|
138
|
-
|
|
139
|
-
// We don't have it, add the motion sensor to the device.
|
|
140
|
-
motionService = new this.hap.Service.MotionSensor(this.accessoryName);
|
|
141
|
-
if (!motionService) {
|
|
142
|
-
this.log.error("Unable to add motion sensor.");
|
|
143
|
-
return false;
|
|
144
|
-
}
|
|
145
|
-
this.accessory.addService(motionService);
|
|
204
|
+
// Acquire the service.
|
|
205
|
+
const service = this.acquireService(this.hap.Service.MotionSensor, undefined, undefined, () => {
|
|
146
206
|
isInitialized = false;
|
|
147
|
-
|
|
207
|
+
});
|
|
208
|
+
if (!service) {
|
|
209
|
+
this.log.error("Unable to add motion sensor.");
|
|
210
|
+
return false;
|
|
148
211
|
}
|
|
149
212
|
// Have we previously initialized this sensor? We assume not by default, but this allows for scenarios where you may be dynamically reconfiguring a sensor at
|
|
150
213
|
// runtime (e.g. UniFi sensors can be reconfigured for various sensor modes in realtime).
|
|
151
214
|
if (!isInitialized) {
|
|
152
215
|
// Initialize the state of the motion sensor.
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
motionService.updateCharacteristic(this.hap.Characteristic.StatusActive, this.isOnline);
|
|
157
|
-
motionService.getCharacteristic(this.hap.Characteristic.StatusActive).onGet(() => {
|
|
216
|
+
service.updateCharacteristic(this.hap.Characteristic.MotionDetected, false);
|
|
217
|
+
service.updateCharacteristic(this.hap.Characteristic.StatusActive, this.isOnline);
|
|
218
|
+
service.getCharacteristic(this.hap.Characteristic.StatusActive).onGet(() => {
|
|
158
219
|
return this.isOnline;
|
|
159
220
|
});
|
|
160
221
|
// Configure our MQTT support.
|
|
161
|
-
this.
|
|
222
|
+
this.subscribeGet("motion", "motion", () => {
|
|
223
|
+
return service.getCharacteristic(this.hap.Characteristic.MotionDetected).value === true ? "true" : "false";
|
|
224
|
+
});
|
|
225
|
+
this.subscribeSet("motion", "motion event trigger", (value) => {
|
|
226
|
+
// When we get the right message, we trigger the motion event.
|
|
227
|
+
if (value !== "true") {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
// Trigger the motion event.
|
|
231
|
+
this.nvr.events.motionEventHandler(this);
|
|
232
|
+
});
|
|
162
233
|
// Configure any motion switches or triggers the user may have enabled or disabled.
|
|
163
234
|
this.configureMotionSwitch(isEnabled);
|
|
164
235
|
this.configureMotionTrigger(isEnabled);
|
|
@@ -167,35 +238,31 @@ export class ProtectDevice extends ProtectBase {
|
|
|
167
238
|
}
|
|
168
239
|
// Configure a switch to easily activate or deactivate motion sensor detection for HomeKit.
|
|
169
240
|
configureMotionSwitch(isEnabled = true) {
|
|
170
|
-
//
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
this.accessory.removeService(switchService);
|
|
241
|
+
// Validate whether we should have this service enabled.
|
|
242
|
+
if (!this.validService(this.hap.Service.Switch, () => {
|
|
243
|
+
// Motion switches are disabled by default unless the user enables them.
|
|
244
|
+
if (!isEnabled || !this.hasFeature("Motion.Switch")) {
|
|
245
|
+
return false;
|
|
176
246
|
}
|
|
247
|
+
return true;
|
|
248
|
+
}, ProtectReservedNames.SWITCH_MOTION_SENSOR)) {
|
|
177
249
|
// If we disable the switch, make sure we fully reset it's state. Otherwise, we can end up in a situation (e.g. liveview switches) where we have disabled motion
|
|
178
250
|
// detection with no meaningful way to enable it again.
|
|
179
251
|
this.accessory.context.detectMotion = true;
|
|
180
252
|
return false;
|
|
181
253
|
}
|
|
182
|
-
|
|
183
|
-
const
|
|
184
|
-
//
|
|
185
|
-
if (!
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
this.log.error("Unable to add motion sensor switch.");
|
|
189
|
-
return false;
|
|
190
|
-
}
|
|
191
|
-
switchService.addOptionalCharacteristic(this.hap.Characteristic.ConfiguredName);
|
|
192
|
-
this.accessory.addService(switchService);
|
|
254
|
+
// Acquire the service.
|
|
255
|
+
const service = this.acquireService(this.hap.Service.Switch, this.accessoryName + " Motion Events", ProtectReservedNames.SWITCH_MOTION_SENSOR);
|
|
256
|
+
// Fail gracefully.
|
|
257
|
+
if (!service) {
|
|
258
|
+
this.log.error("Unable to add motion sensor switch.");
|
|
259
|
+
return false;
|
|
193
260
|
}
|
|
194
261
|
// Activate or deactivate motion detection.
|
|
195
|
-
|
|
262
|
+
service.getCharacteristic(this.hap.Characteristic.On)?.onGet(() => {
|
|
196
263
|
return this.accessory.context.detectMotion === true;
|
|
197
264
|
});
|
|
198
|
-
|
|
265
|
+
service.getCharacteristic(this.hap.Characteristic.On)?.onSet((value) => {
|
|
199
266
|
if (this.accessory.context.detectMotion !== value) {
|
|
200
267
|
this.log.info("Motion detection %s.", (value === true) ? "enabled" : "disabled");
|
|
201
268
|
}
|
|
@@ -205,31 +272,28 @@ export class ProtectDevice extends ProtectBase {
|
|
|
205
272
|
if (!("detectMotion" in this.accessory.context)) {
|
|
206
273
|
this.accessory.context.detectMotion = true;
|
|
207
274
|
}
|
|
208
|
-
|
|
209
|
-
|
|
275
|
+
service.updateCharacteristic(this.hap.Characteristic.On, this.accessory.context.detectMotion);
|
|
276
|
+
this.log.info("Enabling motion sensor switch.");
|
|
210
277
|
return true;
|
|
211
278
|
}
|
|
212
279
|
// Configure a switch to manually trigger a motion sensor event for HomeKit.
|
|
213
280
|
configureMotionTrigger(isEnabled = true) {
|
|
214
|
-
//
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
this.accessory.removeService(triggerService);
|
|
281
|
+
// Validate whether we should have this service enabled.
|
|
282
|
+
if (!this.validService(this.hap.Service.Switch, () => {
|
|
283
|
+
// Motion triggers are disabled by default and primarily exist for automation purposes.
|
|
284
|
+
if (!isEnabled || !this.hasFeature("Motion.Trigger")) {
|
|
285
|
+
return false;
|
|
220
286
|
}
|
|
287
|
+
return true;
|
|
288
|
+
}, ProtectReservedNames.SWITCH_MOTION_TRIGGER)) {
|
|
221
289
|
return false;
|
|
222
290
|
}
|
|
223
|
-
|
|
224
|
-
|
|
291
|
+
// Acquire the service.
|
|
292
|
+
const triggerService = this.acquireService(this.hap.Service.Switch, this.accessoryName + " Motion Trigger", ProtectReservedNames.SWITCH_MOTION_TRIGGER);
|
|
293
|
+
// Fail gracefully.
|
|
225
294
|
if (!triggerService) {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
this.log.error("Unable to add motion sensor trigger.");
|
|
229
|
-
return false;
|
|
230
|
-
}
|
|
231
|
-
triggerService.addOptionalCharacteristic(this.hap.Characteristic.ConfiguredName);
|
|
232
|
-
this.accessory.addService(triggerService);
|
|
295
|
+
this.log.error("Unable to add motion sensor trigger.");
|
|
296
|
+
return false;
|
|
233
297
|
}
|
|
234
298
|
const motionService = this.accessory.getService(this.hap.Service.MotionSensor);
|
|
235
299
|
const switchService = this.accessory.getServiceById(this.hap.Service.Switch, ProtectReservedNames.SWITCH_MOTION_SENSOR);
|
|
@@ -261,55 +325,36 @@ export class ProtectDevice extends ProtectBase {
|
|
|
261
325
|
}
|
|
262
326
|
});
|
|
263
327
|
// Initialize the switch.
|
|
264
|
-
triggerService.updateCharacteristic(this.hap.Characteristic.ConfiguredName, triggerName);
|
|
265
328
|
triggerService.updateCharacteristic(this.hap.Characteristic.On, false);
|
|
266
329
|
this.log.info("Enabling motion sensor automation trigger.");
|
|
267
330
|
return true;
|
|
268
331
|
}
|
|
269
|
-
// Configure MQTT motion triggers.
|
|
270
|
-
configureMqttMotionTrigger() {
|
|
271
|
-
// Trigger a motion event in MQTT, if requested to do so.
|
|
272
|
-
this.nvr.mqtt?.subscribe(this.id, "motion/trigger", (message) => {
|
|
273
|
-
const value = message.toString();
|
|
274
|
-
// When we get the right message, we trigger the motion event.
|
|
275
|
-
if (value?.toLowerCase() !== "true") {
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
278
|
-
// Trigger the motion event.
|
|
279
|
-
this.nvr.events.motionEventHandler(this);
|
|
280
|
-
this.log.info("Motion event triggered via MQTT.");
|
|
281
|
-
});
|
|
282
|
-
return true;
|
|
283
|
-
}
|
|
284
332
|
// Configure the Protect occupancy sensor for HomeKit.
|
|
285
333
|
configureOccupancySensor(isEnabled = true, isInitialized = false) {
|
|
286
|
-
//
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
this.log.info("Disabling occupancy sensor.");
|
|
334
|
+
// Validate whether we should have this service enabled.
|
|
335
|
+
if (!this.validService(this.hap.Service.OccupancySensor, () => {
|
|
336
|
+
// Occupancy sensors are disabled by default and primarily exist for automation purposes.
|
|
337
|
+
if (!isEnabled || !this.hasFeature("Motion.OccupancySensor")) {
|
|
338
|
+
this.nvr.mqtt?.unsubscribe(this.accessory, "occupancy/get");
|
|
339
|
+
return false;
|
|
293
340
|
}
|
|
341
|
+
return true;
|
|
342
|
+
})) {
|
|
294
343
|
return false;
|
|
295
344
|
}
|
|
296
|
-
//
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
this.log.error("Unable to add occupancy sensor.");
|
|
302
|
-
return false;
|
|
303
|
-
}
|
|
304
|
-
this.accessory.addService(occupancyService);
|
|
345
|
+
// Acquire the service.
|
|
346
|
+
const service = this.acquireService(this.hap.Service.OccupancySensor);
|
|
347
|
+
if (!service) {
|
|
348
|
+
this.log.error("Unable to add occupancy sensor.");
|
|
349
|
+
return false;
|
|
305
350
|
}
|
|
306
351
|
// Have we previously initialized this sensor? We assume not by default, but this allows for scenarios where you may be dynamically reconfiguring a sensor at
|
|
307
352
|
// runtime (e.g. UniFi sensors can be reconfigured for various sensor modes in realtime).
|
|
308
353
|
if (!isInitialized) {
|
|
309
354
|
// Initialize the state of the occupancy sensor.
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
355
|
+
service.updateCharacteristic(this.hap.Characteristic.OccupancyDetected, false);
|
|
356
|
+
service.updateCharacteristic(this.hap.Characteristic.StatusActive, this.isOnline);
|
|
357
|
+
service.getCharacteristic(this.hap.Characteristic.StatusActive).onGet(() => {
|
|
313
358
|
return this.isOnline;
|
|
314
359
|
});
|
|
315
360
|
// If we have smart motion detection, allow users to choose which object types determine occupancy.
|
|
@@ -325,6 +370,10 @@ export class ProtectDevice extends ProtectBase {
|
|
|
325
370
|
this.hints.smartOccupancy.push("no smart motion detection object type configured");
|
|
326
371
|
}
|
|
327
372
|
}
|
|
373
|
+
// Configure our MQTT support.
|
|
374
|
+
this.subscribeGet("occupancy", "occupancy", () => {
|
|
375
|
+
return service.getCharacteristic(this.hap.Characteristic.OccupancyDetected).value === true ? "true" : "false";
|
|
376
|
+
});
|
|
328
377
|
this.log.info("Enabling occupancy sensor%s.", this.hints.smartDetect ? " using smart motion detection: " + this.hints.smartOccupancy.join(", ") : "");
|
|
329
378
|
}
|
|
330
379
|
return true;
|
|
@@ -359,7 +408,7 @@ export class ProtectDevice extends ProtectBase {
|
|
|
359
408
|
}
|
|
360
409
|
// Utility function to return the fully enumerated name of this device.
|
|
361
410
|
get name() {
|
|
362
|
-
return this.nvr.ufpApi.
|
|
411
|
+
return this.nvr.ufpApi.getDeviceName(this.ufp);
|
|
363
412
|
}
|
|
364
413
|
// Utility function to return the current accessory name of this device.
|
|
365
414
|
get accessoryName() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect-device.js","sourceRoot":"","sources":["../../src/devices/protect-device.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"protect-device.js","sourceRoot":"","sources":["../../src/devices/protect-device.ts"],"names":[],"mappings":"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"}
|