homebridge-unifi-protect 6.18.1 → 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/index.d.ts +11 -0
- package/dist/devices/index.js +16 -0
- package/dist/devices/index.js.map +1 -0
- package/dist/{protect-camera-package.js → devices/protect-camera-package.js} +2 -4
- package/dist/devices/protect-camera-package.js.map +1 -0
- package/dist/{protect-camera.d.ts → devices/protect-camera.d.ts} +2 -5
- package/dist/{protect-camera.js → devices/protect-camera.js} +119 -210
- package/dist/devices/protect-camera.js.map +1 -0
- package/dist/{protect-chime.d.ts → devices/protect-chime.d.ts} +4 -1
- package/dist/devices/protect-chime.js +180 -0
- package/dist/devices/protect-chime.js.map +1 -0
- package/dist/{protect-device.d.ts → devices/protect-device.d.ts} +12 -5
- package/dist/{protect-device.js → devices/protect-device.js} +159 -109
- package/dist/devices/protect-device.js.map +1 -0
- package/dist/{protect-doorbell.d.ts → devices/protect-doorbell.d.ts} +1 -1
- package/dist/{protect-doorbell.js → devices/protect-doorbell.js} +50 -83
- package/dist/devices/protect-doorbell.js.map +1 -0
- package/dist/{protect-light.d.ts → devices/protect-light.d.ts} +1 -1
- package/dist/{protect-light.js → devices/protect-light.js} +34 -44
- package/dist/devices/protect-light.js.map +1 -0
- package/dist/{protect-liveviews.d.ts → devices/protect-liveviews.d.ts} +1 -1
- package/dist/{protect-liveviews.js → devices/protect-liveviews.js} +11 -21
- package/dist/devices/protect-liveviews.js.map +1 -0
- package/dist/{protect-nvr-systeminfo.d.ts → devices/protect-nvr-systeminfo.d.ts} +1 -1
- package/dist/{protect-nvr-systeminfo.js → devices/protect-nvr-systeminfo.js} +3 -9
- package/dist/devices/protect-nvr-systeminfo.js.map +1 -0
- package/dist/{protect-securitysystem.d.ts → devices/protect-securitysystem.d.ts} +2 -3
- package/dist/{protect-securitysystem.js → devices/protect-securitysystem.js} +32 -59
- package/dist/devices/protect-securitysystem.js.map +1 -0
- package/dist/{protect-sensor.d.ts → devices/protect-sensor.d.ts} +3 -2
- package/dist/devices/protect-sensor.js +402 -0
- package/dist/devices/protect-sensor.js.map +1 -0
- package/dist/{protect-viewer.d.ts → devices/protect-viewer.d.ts} +1 -1
- package/dist/{protect-viewer.js → devices/protect-viewer.js} +21 -28
- package/dist/devices/protect-viewer.js.map +1 -0
- package/dist/ffmpeg/index.d.ts +6 -0
- package/dist/ffmpeg/index.js +11 -0
- package/dist/ffmpeg/index.js.map +1 -0
- package/dist/{protect-ffmpeg-codecs.d.ts → ffmpeg/protect-ffmpeg-codecs.d.ts} +1 -1
- package/dist/ffmpeg/protect-ffmpeg-codecs.js.map +1 -0
- package/dist/{protect-ffmpeg-exec.d.ts → ffmpeg/protect-ffmpeg-exec.d.ts} +5 -2
- package/dist/{protect-ffmpeg-exec.js → ffmpeg/protect-ffmpeg-exec.js} +13 -1
- package/dist/ffmpeg/protect-ffmpeg-exec.js.map +1 -0
- package/dist/{protect-ffmpeg-options.d.ts → ffmpeg/protect-ffmpeg-options.d.ts} +1 -1
- package/dist/{protect-ffmpeg-options.js → ffmpeg/protect-ffmpeg-options.js} +1 -1
- package/dist/ffmpeg/protect-ffmpeg-options.js.map +1 -0
- package/dist/{protect-ffmpeg-record.d.ts → ffmpeg/protect-ffmpeg-record.d.ts} +1 -1
- package/dist/{protect-ffmpeg-record.js → ffmpeg/protect-ffmpeg-record.js} +7 -3
- package/dist/ffmpeg/protect-ffmpeg-record.js.map +1 -0
- package/dist/{protect-ffmpeg-stream.d.ts → ffmpeg/protect-ffmpeg-stream.d.ts} +1 -1
- package/dist/ffmpeg/protect-ffmpeg-stream.js.map +1 -0
- package/dist/{protect-ffmpeg.d.ts → ffmpeg/protect-ffmpeg.d.ts} +3 -3
- package/dist/ffmpeg/protect-ffmpeg.js.map +1 -0
- package/dist/{protect-nvr-events.d.ts → protect-events.d.ts} +3 -4
- package/dist/{protect-nvr-events.js → protect-events.js} +4 -4
- package/dist/protect-events.js.map +1 -0
- package/dist/protect-mqtt.d.ts +3 -2
- package/dist/protect-mqtt.js +30 -6
- package/dist/protect-mqtt.js.map +1 -1
- package/dist/protect-nvr.d.ts +4 -8
- package/dist/protect-nvr.js +82 -129
- package/dist/protect-nvr.js.map +1 -1
- package/dist/protect-options.js +7 -5
- package/dist/protect-options.js.map +1 -1
- package/dist/protect-platform.d.ts +1 -1
- package/dist/protect-platform.js +1 -1
- package/dist/protect-platform.js.map +1 -1
- package/dist/protect-record.d.ts +4 -2
- package/dist/protect-record.js +37 -34
- package/dist/protect-record.js.map +1 -1
- package/dist/protect-snapshot.d.ts +21 -0
- package/dist/protect-snapshot.js +200 -0
- package/dist/protect-snapshot.js.map +1 -0
- package/dist/protect-stream.d.ts +3 -7
- package/dist/protect-stream.js +7 -86
- package/dist/protect-stream.js.map +1 -1
- package/dist/protect-timeshift.d.ts +3 -2
- package/dist/protect-timeshift.js +31 -30
- package/dist/protect-timeshift.js.map +1 -1
- package/dist/protect-types.d.ts +5 -6
- package/dist/protect-types.js +8 -0
- package/dist/protect-types.js.map +1 -1
- package/dist/settings.d.ts +3 -6
- package/dist/settings.js +6 -12
- package/dist/settings.js.map +1 -1
- package/homebridge-ui/public/index.html +2 -0
- package/package.json +12 -12
- package/dist/protect-camera-package.js.map +0 -1
- package/dist/protect-camera.js.map +0 -1
- package/dist/protect-chime.js +0 -108
- package/dist/protect-chime.js.map +0 -1
- package/dist/protect-device.js.map +0 -1
- package/dist/protect-doorbell.js.map +0 -1
- package/dist/protect-ffmpeg-codecs.js.map +0 -1
- package/dist/protect-ffmpeg-exec.js.map +0 -1
- package/dist/protect-ffmpeg-options.js.map +0 -1
- package/dist/protect-ffmpeg-record.js.map +0 -1
- package/dist/protect-ffmpeg-stream.js.map +0 -1
- package/dist/protect-ffmpeg.js.map +0 -1
- package/dist/protect-light.js.map +0 -1
- package/dist/protect-liveviews.js.map +0 -1
- package/dist/protect-nvr-events.js.map +0 -1
- package/dist/protect-nvr-systeminfo.js.map +0 -1
- package/dist/protect-securitysystem.js.map +0 -1
- package/dist/protect-sensor.js +0 -449
- package/dist/protect-sensor.js.map +0 -1
- package/dist/protect-viewer.js.map +0 -1
- /package/dist/{protect-camera-package.d.ts → devices/protect-camera-package.d.ts} +0 -0
- /package/dist/{protect-ffmpeg-codecs.js → ffmpeg/protect-ffmpeg-codecs.js} +0 -0
- /package/dist/{protect-ffmpeg-stream.js → ffmpeg/protect-ffmpeg-stream.js} +0 -0
- /package/dist/{protect-ffmpeg.js → ffmpeg/protect-ffmpeg.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { PLATFORM_NAME, PLUGIN_NAME, PROTECT_DOORBELL_CHIME_DURATION_DIGITAL } from "
|
|
1
|
+
import { PLATFORM_NAME, PLUGIN_NAME, PROTECT_DOORBELL_CHIME_DURATION_DIGITAL } from "../settings.js";
|
|
2
|
+
import { ProtectReservedNames, toCamelCase } from "../protect-types.js";
|
|
2
3
|
import { ProtectCamera } from "./protect-camera.js";
|
|
3
4
|
import { ProtectCameraPackage } from "./protect-camera-package.js";
|
|
4
|
-
import { ProtectReservedNames } from "./protect-types.js";
|
|
5
5
|
export class ProtectDoorbell extends ProtectCamera {
|
|
6
6
|
chimeDigitalDuration;
|
|
7
7
|
defaultMessageDuration;
|
|
@@ -69,28 +69,19 @@ export class ProtectDoorbell extends ProtectCamera {
|
|
|
69
69
|
continue;
|
|
70
70
|
}
|
|
71
71
|
this.log.info("Enabled doorbell message switch%s: %s.", entry.duration ? " (" + (entry.duration / 1000).toString() + " seconds)" : "", entry.text);
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
//
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (!switchService) {
|
|
79
|
-
this.log.error("Unable to add doorbell message switch: %s.", entry.text);
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
switchService.addOptionalCharacteristic(this.hap.Characteristic.ConfiguredName);
|
|
83
|
-
this.accessory.addService(switchService);
|
|
72
|
+
// Acquire the service. Each message cannot exceed 30 characters, but given that HomeKit allows for strings to be up to 64 characters long, this should be fine.
|
|
73
|
+
const service = this.acquireService(this.hap.Service.Switch, entry.text, entry.type + "." + entry.text);
|
|
74
|
+
// Fail gracefully.
|
|
75
|
+
if (!service) {
|
|
76
|
+
this.log.error("Unable to add doorbell message switch: %s.", entry.text);
|
|
77
|
+
return false;
|
|
84
78
|
}
|
|
85
79
|
const duration = "duration" in entry ? entry.duration : this.defaultMessageDuration;
|
|
86
80
|
// Save the message switch in the list we maintain.
|
|
87
|
-
this.messageSwitches.push({ duration: duration, service:
|
|
81
|
+
this.messageSwitches.push({ duration: duration, service: service, state: false, text: entry.text, type: entry.type }) - 1;
|
|
88
82
|
// Configure the message switch.
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
.getCharacteristic(this.hap.Characteristic.On)
|
|
92
|
-
?.onGet(this.getSwitchState.bind(this, this.messageSwitches[this.messageSwitches.length - 1]))
|
|
93
|
-
.onSet(this.setSwitchState.bind(this, this.messageSwitches[this.messageSwitches.length - 1]));
|
|
83
|
+
service.getCharacteristic(this.hap.Characteristic.On)?.onGet(this.getSwitchState.bind(this, this.messageSwitches[this.messageSwitches.length - 1]));
|
|
84
|
+
service.getCharacteristic(this.hap.Characteristic.On)?.onSet(this.setSwitchState.bind(this, this.messageSwitches[this.messageSwitches.length - 1]));
|
|
94
85
|
}
|
|
95
86
|
// Update the message switch state in HomeKit.
|
|
96
87
|
this.updateLcdSwitch(this.ufp.lcdMessage);
|
|
@@ -134,39 +125,33 @@ export class ProtectDoorbell extends ProtectCamera {
|
|
|
134
125
|
// The Protect controller supports three modes for attached, physical chimes on a doorbell: none, mechanical, and digital. We create switches for each of the modes.
|
|
135
126
|
for (const physicalChimeType of [ProtectReservedNames.SWITCH_DOORBELL_CHIME_NONE, ProtectReservedNames.SWITCH_DOORBELL_CHIME_MECHANICAL, ProtectReservedNames.SWITCH_DOORBELL_CHIME_DIGITAL]) {
|
|
136
127
|
const chimeSetting = physicalChimeType.slice(physicalChimeType.lastIndexOf(".") + 1);
|
|
137
|
-
//
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
this.accessory.removeService(switchService);
|
|
128
|
+
// Validate whether we should have this service enabled.
|
|
129
|
+
if (!this.validService(this.hap.Service.Switch, () => {
|
|
130
|
+
// If we don't have the physical capabilities or the feature option enabled, disable the switch and we're done.
|
|
131
|
+
if (!this.ufp.featureFlags.hasChime || !this.hasFeature("Doorbell.PhysicalChime")) {
|
|
132
|
+
return false;
|
|
143
133
|
}
|
|
134
|
+
return true;
|
|
135
|
+
}, physicalChimeType)) {
|
|
144
136
|
continue;
|
|
145
137
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
continue;
|
|
153
|
-
}
|
|
154
|
-
switchService.addOptionalCharacteristic(this.hap.Characteristic.ConfiguredName);
|
|
155
|
-
this.accessory.addService(switchService);
|
|
138
|
+
// Acquire the service.
|
|
139
|
+
const service = this.acquireService(this.hap.Service.Switch, this.accessoryName + " Physical Chime " + toCamelCase(chimeSetting), physicalChimeType);
|
|
140
|
+
// Fail gracefully.
|
|
141
|
+
if (!service) {
|
|
142
|
+
this.log.error("Unable to add physical chime switch: %s.", chimeSetting);
|
|
143
|
+
continue;
|
|
156
144
|
}
|
|
157
145
|
// Get the current status of the physical chime mode on the doorbell.
|
|
158
|
-
|
|
146
|
+
service.getCharacteristic(this.hap.Characteristic.On)?.onGet(() => {
|
|
159
147
|
return this.ufp.chimeDuration === this.getPhysicalChimeDuration(physicalChimeType);
|
|
160
148
|
});
|
|
161
149
|
// Activate the appropriate physical chime mode on the doorbell.
|
|
162
|
-
|
|
163
|
-
// We only want to do something if we're being activated. Turning off the switch would really be an undefined state given that
|
|
164
|
-
//
|
|
165
|
-
// they really want to set.
|
|
150
|
+
service.getCharacteristic(this.hap.Characteristic.On)?.onSet(async (value) => {
|
|
151
|
+
// We only want to do something if we're being activated. Turning off the switch would really be an undefined state given that there are three different settings
|
|
152
|
+
// one can choose from. Instead, we do nothing and leave it to the user to choose what state they really want to set.
|
|
166
153
|
if (!value) {
|
|
167
|
-
setTimeout(() =>
|
|
168
|
-
this.updateDevice();
|
|
169
|
-
}, 50);
|
|
154
|
+
setTimeout(() => this.updateDevice(), 50);
|
|
170
155
|
return;
|
|
171
156
|
}
|
|
172
157
|
// Set our physical chime duration.
|
|
@@ -191,8 +176,7 @@ export class ProtectDoorbell extends ProtectCamera {
|
|
|
191
176
|
this.log.info("Physical chime type set to %s.", chimeSetting);
|
|
192
177
|
});
|
|
193
178
|
// Initialize the physical chime switch state.
|
|
194
|
-
|
|
195
|
-
switchService.updateCharacteristic(this.hap.Characteristic.On, this.ufp.chimeDuration === this.getPhysicalChimeDuration(physicalChimeType));
|
|
179
|
+
service.updateCharacteristic(this.hap.Characteristic.On, this.ufp.chimeDuration === this.getPhysicalChimeDuration(physicalChimeType));
|
|
196
180
|
switchesEnabled.push(chimeSetting);
|
|
197
181
|
}
|
|
198
182
|
if (switchesEnabled.length) {
|
|
@@ -205,18 +189,11 @@ export class ProtectDoorbell extends ProtectCamera {
|
|
|
205
189
|
// Call our parent to setup the general camera MQTT capabilities.
|
|
206
190
|
super.configureMqtt();
|
|
207
191
|
// Get the current message on the doorbell.
|
|
208
|
-
this.
|
|
209
|
-
const
|
|
210
|
-
// When we get the right message, we return the current message set on the doorbell.
|
|
211
|
-
if (value?.toLowerCase() !== "true") {
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
const doorbellMessage = this.ufp.lcdMessage?.text ?? "";
|
|
215
|
-
const doorbellDuration = (("resetAt" in this.ufp.lcdMessage) && this.ufp.lcdMessage.resetAt !== null) ?
|
|
192
|
+
this.subscribeGet("message", "doorbell message", () => {
|
|
193
|
+
const doorbellDuration = (("resetAt" in this.ufp.lcdMessage) && (this.ufp.lcdMessage.resetAt !== null)) ?
|
|
216
194
|
Math.round((this.ufp.lcdMessage.resetAt - Date.now()) / 1000) : 0;
|
|
217
|
-
//
|
|
218
|
-
|
|
219
|
-
this.log.info("Doorbell message information published via MQTT.");
|
|
195
|
+
// Return the current message.
|
|
196
|
+
return JSON.stringify({ duration: doorbellDuration, message: this.ufp.lcdMessage?.text ?? "" });
|
|
220
197
|
});
|
|
221
198
|
// We support the ability to set the doorbell message like so:
|
|
222
199
|
//
|
|
@@ -225,48 +202,38 @@ export class ProtectDoorbell extends ProtectCamera {
|
|
|
225
202
|
// If duration is omitted, we assume the default duration.
|
|
226
203
|
// If duration is 0, we assume it's not expiring.
|
|
227
204
|
// If the message is blank, we assume we're resetting the doorbell message.
|
|
228
|
-
this.
|
|
229
|
-
let
|
|
230
|
-
let outboundPayload;
|
|
205
|
+
this.subscribeSet("message", "doorbell message", (value, rawValue) => {
|
|
206
|
+
let inboundPayload;
|
|
231
207
|
// Catch any errors in parsing what we get over MQTT.
|
|
232
208
|
try {
|
|
233
|
-
|
|
234
|
-
// Sanity check what comes in from MQTT to make sure it's what we want.
|
|
235
|
-
if (!(incomingPayload instanceof Object)) {
|
|
236
|
-
throw new Error("The JSON object is not in the expected format");
|
|
237
|
-
}
|
|
209
|
+
inboundPayload = JSON.parse(rawValue);
|
|
238
210
|
}
|
|
239
211
|
catch (error) {
|
|
240
|
-
|
|
241
|
-
this.log.error("Unable to process MQTT message: \"%s\". Error: %s.", message.toString(), error.message);
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
this.log.error("Unknown error has occurred: %s.", error);
|
|
245
|
-
}
|
|
212
|
+
this.log.error("Unable to process MQTT message: \"%s\". Invalid JSON.", rawValue);
|
|
246
213
|
// Errors mean that we're done now.
|
|
247
214
|
return;
|
|
248
215
|
}
|
|
249
|
-
// At a minimum, make sure a message was specified. If we have specified duration, make sure it's a number.
|
|
250
|
-
//
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
this.log.error("Unable to process MQTT message: \"%s\".", incomingPayload);
|
|
216
|
+
// At a minimum, make sure a message was specified. If we have specified duration, make sure it's a number. Our NaN test may seem strange - that's because NaN is
|
|
217
|
+
// the only JavaScript value that is treated as unequal to itself. Meaning, you can always test if a value is NaN by checking it for equality to itself. Weird huh?
|
|
218
|
+
if (!inboundPayload || !("message" in inboundPayload) || (("duration" in inboundPayload) && (inboundPayload.duration !== inboundPayload.duration))) {
|
|
219
|
+
this.log.error("Unable to process MQTT message: \"%s\".", inboundPayload);
|
|
254
220
|
return;
|
|
255
221
|
}
|
|
256
222
|
// If no duration specified, or a negative duration, we assume the default duration.
|
|
257
|
-
if (!("duration" in
|
|
258
|
-
|
|
223
|
+
if (!("duration" in inboundPayload) || (("duration" in inboundPayload) && (inboundPayload.duration < 0))) {
|
|
224
|
+
inboundPayload.duration = this.defaultMessageDuration;
|
|
259
225
|
}
|
|
260
226
|
else {
|
|
261
|
-
|
|
227
|
+
inboundPayload.duration = inboundPayload.duration * 1000;
|
|
262
228
|
}
|
|
229
|
+
let outboundPayload;
|
|
263
230
|
// No message defined...we assume we're resetting the message.
|
|
264
|
-
if (!
|
|
231
|
+
if (!inboundPayload.message.length) {
|
|
265
232
|
outboundPayload = { resetAt: 0 };
|
|
266
233
|
this.log.info("Received MQTT doorbell message reset.");
|
|
267
234
|
}
|
|
268
235
|
else {
|
|
269
|
-
outboundPayload = { duration:
|
|
236
|
+
outboundPayload = { duration: inboundPayload.duration, text: inboundPayload.message, type: "CUSTOM_MESSAGE" };
|
|
270
237
|
this.log.info("Received MQTT doorbell message%s: %s.", outboundPayload.duration ? " (" + (outboundPayload.duration / 1000).toString() + " seconds)" : "", outboundPayload.text);
|
|
271
238
|
}
|
|
272
239
|
// Send it to the doorbell and we're done.
|
|
@@ -401,7 +368,7 @@ export class ProtectDoorbell extends ProtectCamera {
|
|
|
401
368
|
lcdEntry.service.updateCharacteristic(this.hap.Characteristic.On, true);
|
|
402
369
|
this.log.info("Doorbell message set%s: %s.", lcdMessage.resetAt !== null ? " (" + Math.round(((lcdMessage.resetAt ?? 0) - Date.now()) / 1000).toString() + " seconds)" : "", lcdMessage.text);
|
|
403
370
|
// Publish to MQTT, if the user has configured it.
|
|
404
|
-
this.
|
|
371
|
+
this.publish("message", JSON.stringify({ duration: lcdEntry.duration / 1000, message: lcdEntry.text }));
|
|
405
372
|
}
|
|
406
373
|
}
|
|
407
374
|
// Get the current state of this message switch.
|
|
@@ -446,7 +413,7 @@ export class ProtectDoorbell extends ProtectCamera {
|
|
|
446
413
|
// and since a package camera is actually a secondary camera on a device with a single motion sensor, we use that motion sensor to trigger the package camera's HKSV
|
|
447
414
|
// event recording.
|
|
448
415
|
if (payload.lastMotion && this.packageCamera?.stream?.hksv?.isRecording) {
|
|
449
|
-
this.nvr.events.motionEventHandler(this.packageCamera
|
|
416
|
+
this.nvr.events.motionEventHandler(this.packageCamera);
|
|
450
417
|
}
|
|
451
418
|
// Process LCD message events.
|
|
452
419
|
if (payload.lcdMessage) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protect-doorbell.js","sourceRoot":"","sources":["../../src/devices/protect-doorbell.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PlatformAccessory } from "homebridge";
|
|
2
2
|
import { ProtectLightConfig } from "unifi-protect";
|
|
3
3
|
import { ProtectDevice } from "./protect-device.js";
|
|
4
|
-
import { ProtectNvr } from "
|
|
4
|
+
import { ProtectNvr } from "../protect-nvr.js";
|
|
5
5
|
export declare class ProtectLight extends ProtectDevice {
|
|
6
6
|
private lightState;
|
|
7
7
|
ufp: ProtectLightConfig;
|
|
@@ -33,22 +33,18 @@ export class ProtectLight extends ProtectDevice {
|
|
|
33
33
|
}
|
|
34
34
|
// Configure the light for HomeKit.
|
|
35
35
|
configureLightbulb() {
|
|
36
|
-
//
|
|
37
|
-
|
|
38
|
-
// Add the
|
|
39
|
-
if (!
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
this.log.error("Unable to add light.");
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
this.accessory.addService(lightService);
|
|
36
|
+
// Acquire the service.
|
|
37
|
+
const service = this.acquireService(this.hap.Service.Lightbulb);
|
|
38
|
+
// Add the switch to the device, if needed.
|
|
39
|
+
if (!service) {
|
|
40
|
+
this.log.error("Unable to add light.");
|
|
41
|
+
return false;
|
|
46
42
|
}
|
|
47
43
|
// Turn the light on or off.
|
|
48
|
-
|
|
44
|
+
service.getCharacteristic(this.hap.Characteristic.On)?.onGet(() => {
|
|
49
45
|
return this.ufp.isLightOn === true;
|
|
50
46
|
});
|
|
51
|
-
|
|
47
|
+
service.getCharacteristic(this.hap.Characteristic.On)?.onSet(async (value) => {
|
|
52
48
|
const lightState = value === true;
|
|
53
49
|
const newDevice = await this.nvr.ufpApi.updateDevice(this.ufp, { lightOnSettings: { isLedForceOn: lightState } });
|
|
54
50
|
if (!newDevice) {
|
|
@@ -57,13 +53,15 @@ export class ProtectLight extends ProtectDevice {
|
|
|
57
53
|
}
|
|
58
54
|
// Set the context to our updated device configuration.
|
|
59
55
|
this.ufp = newDevice;
|
|
56
|
+
// Publish our state.
|
|
57
|
+
this.publish("light", lightState ? "true" : "false");
|
|
60
58
|
});
|
|
61
59
|
// Adjust the brightness of the light.
|
|
62
|
-
|
|
60
|
+
service.getCharacteristic(this.hap.Characteristic.Brightness)?.onGet(() => {
|
|
63
61
|
// The Protect ledLevel settings goes from 1 - 6. HomeKit expects percentages, so we convert it like so.
|
|
64
62
|
return (this.ufp.lightDeviceSettings.ledLevel - 1) * 20;
|
|
65
63
|
});
|
|
66
|
-
|
|
64
|
+
service.getCharacteristic(this.hap.Characteristic.Brightness)?.onSet(async (value) => {
|
|
67
65
|
const brightness = Math.round((value / 20) + 1);
|
|
68
66
|
const newDevice = await this.nvr.ufpApi.updateDevice(this.ufp, { lightDeviceSettings: { ledLevel: brightness } });
|
|
69
67
|
if (!newDevice) {
|
|
@@ -74,44 +72,36 @@ export class ProtectLight extends ProtectDevice {
|
|
|
74
72
|
this.ufp = newDevice;
|
|
75
73
|
// Make sure we properly reflect what brightness we're actually at, given the differences in setting granularity between Protect and HomeKit.
|
|
76
74
|
setTimeout(() => {
|
|
77
|
-
|
|
75
|
+
service?.updateCharacteristic(this.hap.Characteristic.Brightness, (brightness - 1) * 20);
|
|
78
76
|
}, 50);
|
|
77
|
+
// Publish our state.
|
|
78
|
+
this.publish("light/brightness", ((brightness - 1) * 20).toString());
|
|
79
79
|
});
|
|
80
80
|
// Initialize the light.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
lightService.updateCharacteristic(this.hap.Characteristic.On, this.ufp.isLightOn);
|
|
84
|
-
lightService.updateCharacteristic(this.hap.Characteristic.Brightness, (this.ufp.lightDeviceSettings.ledLevel - 1) * 20);
|
|
81
|
+
service.updateCharacteristic(this.hap.Characteristic.On, this.ufp.isLightOn);
|
|
82
|
+
service.updateCharacteristic(this.hap.Characteristic.Brightness, (this.ufp.lightDeviceSettings.ledLevel - 1) * 20);
|
|
85
83
|
return true;
|
|
86
84
|
}
|
|
87
85
|
// Configure MQTT capabilities of this light.
|
|
88
86
|
configureMqtt() {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
87
|
+
// Get the light state.
|
|
88
|
+
this.subscribeGet("light", "light status", () => {
|
|
89
|
+
return (this.ufp.isLightOn === true).toString();
|
|
90
|
+
});
|
|
91
|
+
this.subscribeGet("light/brightness", "light brightness", () => {
|
|
92
|
+
return ((this.ufp.lightDeviceSettings.ledLevel - 1) * 20).toString();
|
|
93
|
+
});
|
|
94
|
+
// Control the light.
|
|
95
|
+
this.subscribeSet("light", "light", (value) => {
|
|
96
|
+
this.accessory.getService(this.hap.Service.Lightbulb)?.getCharacteristic(this.hap.Characteristic.On)?.setValue(value === "true");
|
|
97
|
+
});
|
|
98
|
+
this.subscribeSet("light/brightness", "light brightness", (value) => {
|
|
96
99
|
const brightness = parseInt(value);
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
this.log.info("Light turned off via MQTT.");
|
|
101
|
-
break;
|
|
102
|
-
case "on":
|
|
103
|
-
lightService.getCharacteristic(this.hap.Characteristic.On)?.setValue(true);
|
|
104
|
-
this.log.info("Light turned on via MQTT.");
|
|
105
|
-
break;
|
|
106
|
-
default:
|
|
107
|
-
// Unknown message - ignore it.
|
|
108
|
-
if (isNaN(brightness) || (brightness < 0) || (brightness > 100)) {
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
lightService.getCharacteristic(this.hap.Characteristic.Brightness)?.setValue(brightness);
|
|
112
|
-
this.log.info("Light set to %s% via MQTT.", brightness);
|
|
113
|
-
break;
|
|
100
|
+
// Unknown message - ignore it.
|
|
101
|
+
if (isNaN(brightness) || (brightness < 0) || (brightness > 100)) {
|
|
102
|
+
return;
|
|
114
103
|
}
|
|
104
|
+
this.accessory.getService(this.hap.Service.Lightbulb)?.getCharacteristic(this.hap.Characteristic.Brightness)?.setValue(brightness);
|
|
115
105
|
});
|
|
116
106
|
return true;
|
|
117
107
|
}
|
|
@@ -120,7 +110,7 @@ export class ProtectLight extends ProtectDevice {
|
|
|
120
110
|
const payload = packet.payload;
|
|
121
111
|
// It's a motion event - process it accordingly.
|
|
122
112
|
if (payload.lastMotion) {
|
|
123
|
-
this.nvr.events.motionEventHandler(this
|
|
113
|
+
this.nvr.events.motionEventHandler(this);
|
|
124
114
|
}
|
|
125
115
|
// It's a light power event - process it accordingly.
|
|
126
116
|
if ("isLightOn" in payload) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protect-light.js","sourceRoot":"","sources":["../../src/devices/protect-light.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PLATFORM_NAME, PLUGIN_NAME } from "
|
|
1
|
+
import { PLATFORM_NAME, PLUGIN_NAME } from "../settings.js";
|
|
2
2
|
import { ProtectBase } from "./protect-device.js";
|
|
3
3
|
import { ProtectSecuritySystem } from "./protect-securitysystem.js";
|
|
4
4
|
export class ProtectLiveviews extends ProtectBase {
|
|
@@ -170,38 +170,28 @@ export class ProtectLiveviews extends ProtectBase {
|
|
|
170
170
|
}
|
|
171
171
|
this.isMqttConfigured = true;
|
|
172
172
|
// Return the current status of all the liveviews.
|
|
173
|
-
this.nvr.mqtt?.
|
|
174
|
-
const value = message.toString().toLowerCase();
|
|
175
|
-
// When we get the right message, we return the list of liveviews.
|
|
176
|
-
if (value !== "true") {
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
173
|
+
this.nvr.mqtt?.subscribeGet(this.nvr.ufp.mac, "liveviews", "liveview scenes", () => {
|
|
179
174
|
// Get the list of liveviews.
|
|
180
175
|
const liveviews = this.platform.accessories.filter(x => "liveview" in x.context).map(x => ({ name: x.context.liveview, state: x.getService(this.hap.Service.Switch)?.getCharacteristic(this.hap.Characteristic.On).value }));
|
|
181
|
-
|
|
182
|
-
this.log.info("Liveview scenes list published via MQTT.");
|
|
176
|
+
return JSON.stringify(liveviews);
|
|
183
177
|
});
|
|
184
178
|
// Set the status of one or more liveviews.
|
|
185
|
-
this.nvr.mqtt?.
|
|
179
|
+
this.nvr.mqtt?.subscribeSet(this.nvr.ufp.mac, "liveviews", "liveview scenes", (value, rawValue) => {
|
|
186
180
|
let incomingPayload;
|
|
187
181
|
// Catch any errors in parsing what we get over MQTT.
|
|
188
182
|
try {
|
|
189
|
-
incomingPayload = JSON.parse(
|
|
190
|
-
// Sanity check what comes in from MQTT to make sure it's what we want.
|
|
191
|
-
if (!(incomingPayload instanceof Array)) {
|
|
192
|
-
throw new Error("The JSON object is not in the expected format");
|
|
193
|
-
}
|
|
183
|
+
incomingPayload = JSON.parse(rawValue.toString());
|
|
194
184
|
}
|
|
195
185
|
catch (error) {
|
|
196
|
-
|
|
197
|
-
this.log.error("Unable to process MQTT liveview setting: \"%s\". Error: %s.", message.toString(), error.message);
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
this.log.error("Unknown error has occurred: %s.", error);
|
|
201
|
-
}
|
|
186
|
+
this.log.error("Unable to process MQTT message: \"%s\". Invalid JSON.", rawValue);
|
|
202
187
|
// Errors mean that we're done now.
|
|
203
188
|
return;
|
|
204
189
|
}
|
|
190
|
+
// Sanity check.
|
|
191
|
+
if (!incomingPayload || !incomingPayload.length) {
|
|
192
|
+
this.log.error("Unable to process MQTT message: \"%s\".", incomingPayload);
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
205
195
|
// Update state on the liveviews.
|
|
206
196
|
for (const entry of incomingPayload) {
|
|
207
197
|
// Lookup this liveview.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protect-liveviews.js","sourceRoot":"","sources":["../../src/devices/protect-liveviews.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
*
|
|
3
3
|
* protect-nvr-systeminfo.ts: NVR System Information device class for UniFi Protect.
|
|
4
4
|
*/
|
|
5
|
-
import { PLATFORM_NAME, PLUGIN_NAME } from "
|
|
5
|
+
import { PLATFORM_NAME, PLUGIN_NAME } from "../settings.js";
|
|
6
6
|
import { ProtectBase } from "./protect-device.js";
|
|
7
7
|
export class ProtectNvrSystemInfo extends ProtectBase {
|
|
8
8
|
accessory;
|
|
@@ -157,14 +157,8 @@ export class ProtectNvrSystemInfo extends ProtectBase {
|
|
|
157
157
|
// Configure MQTT capabilities for the security system.
|
|
158
158
|
configureMqtt() {
|
|
159
159
|
// Return the current status of all sensors.
|
|
160
|
-
this.nvr.mqtt?.
|
|
161
|
-
|
|
162
|
-
// When we get the right message, we return the system information JSON.
|
|
163
|
-
if (value !== "true") {
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
this.nvr.mqtt?.publish(this.nvr.ufp.mac ?? "", "systeminfo", JSON.stringify(this.nvr.ufp.systemInfo));
|
|
167
|
-
this.log.info("System information published via MQTT.");
|
|
160
|
+
this.nvr.mqtt?.subscribeGet(this.nvr.ufp.mac, "systeminfo", "system information", () => {
|
|
161
|
+
return JSON.stringify(this.nvr.ufp.systemInfo);
|
|
168
162
|
});
|
|
169
163
|
}
|
|
170
164
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protect-nvr-systeminfo.js","sourceRoot":"","sources":["../../src/devices/protect-nvr-systeminfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PlatformAccessory } from "homebridge";
|
|
2
2
|
import { ProtectBase } from "./protect-device.js";
|
|
3
|
-
import { ProtectNvr } from "
|
|
3
|
+
import { ProtectNvr } from "../protect-nvr.js";
|
|
4
4
|
export declare class ProtectSecuritySystem extends ProtectBase {
|
|
5
5
|
accessory: PlatformAccessory;
|
|
6
6
|
private isAlarmTriggered;
|
|
@@ -11,8 +11,7 @@ export declare class ProtectSecuritySystem extends ProtectBase {
|
|
|
11
11
|
private configureSecuritySystem;
|
|
12
12
|
private configureSecurityAlarm;
|
|
13
13
|
updateDevice(): boolean;
|
|
14
|
-
private
|
|
15
|
-
private getSecurityState;
|
|
14
|
+
private get currentSecuritySystemState();
|
|
16
15
|
private setSecurityState;
|
|
17
16
|
private setSecurityAlarm;
|
|
18
17
|
}
|