homebridge-unifi-protect 4.4.4 → 5.0.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 +1 @@
1
- {"version":3,"file":"protect-platform.js","sourceRoot":"","sources":["../src/protect-platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protect-platform.js","sourceRoot":"","sources":["../src/protect-platform.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProtectSecuritySystem = void 0;
4
- const protect_camera_1 = require("./protect-camera");
5
4
  const protect_accessory_1 = require("./protect-accessory");
6
5
  class ProtectSecuritySystem extends protect_accessory_1.ProtectAccessory {
7
6
  // Configure a security system accessory for HomeKit.
@@ -9,7 +8,7 @@ class ProtectSecuritySystem extends protect_accessory_1.ProtectAccessory {
9
8
  var _a;
10
9
  const accessory = this.accessory;
11
10
  let securityState = this.hap.Characteristic.SecuritySystemCurrentState.STAY_ARM;
12
- // Save the motion sensor switch state before we wipeout the context.
11
+ // Save the security system state before we wipeout the context.
13
12
  if (accessory.context.securityState !== undefined) {
14
13
  securityState = accessory.context.securityState;
15
14
  }
@@ -298,14 +297,14 @@ class ProtectSecuritySystem extends protect_accessory_1.ProtectAccessory {
298
297
  // check to see if this is one of the cameras we want to turn on motion detection for.
299
298
  if (((newState !== SecuritySystemCurrentState.DISARMED) ||
300
299
  ((newState === SecuritySystemCurrentState.DISARMED) && targetCameraIds.length)) &&
301
- targetCameraIds.some(thisCameraId => thisCameraId === targetAccessory.context.camera.id)) {
300
+ targetCameraIds.some(thisCameraId => thisCameraId === targetAccessory.context.device.id)) {
302
301
  targetState = true;
303
302
  }
304
303
  // Only take action to change motion detection state if needed.
305
304
  if (targetAccessory.context.detectMotion !== targetState) {
306
305
  targetAccessory.context.detectMotion = targetState;
307
306
  // Update the switch service, if present.
308
- const motionSwitch = targetAccessory.getServiceById(hap.Service.Switch, protect_camera_1.PROTECT_SWITCH_MOTION_SENSOR);
307
+ const motionSwitch = targetAccessory.getServiceById(hap.Service.Switch, protect_accessory_1.PROTECT_SWITCH_MOTION_SENSOR);
309
308
  if (motionSwitch) {
310
309
  motionSwitch.updateCharacteristic(hap.Characteristic.On, targetAccessory.context.detectMotion);
311
310
  }
@@ -1 +1 @@
1
- {"version":3,"file":"protect-securitysystem.js","sourceRoot":"","sources":["../src/protect-securitysystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protect-securitysystem.js","sourceRoot":"","sources":["../src/protect-securitysystem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,357 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProtectSensor = void 0;
4
+ /* Copyright(C) 2019-2022, HJD (https://github.com/hjdhjd). All rights reserved.
5
+ *
6
+ * protect-sensor.ts: Sensor device class for UniFi Protect.
7
+ */
8
+ const protect_accessory_1 = require("./protect-accessory");
9
+ class ProtectSensor extends protect_accessory_1.ProtectAccessory {
10
+ // Initialize and configure the sensor accessory for HomeKit.
11
+ async configureDevice() {
12
+ var _a;
13
+ // Save the device object before we wipeout the context.
14
+ const device = this.accessory.context.device;
15
+ // Clean out the context object in case it's been polluted somehow.
16
+ this.accessory.context = {};
17
+ this.accessory.context.device = device;
18
+ this.accessory.context.nvr = (_a = this.nvr.nvrApi.bootstrap) === null || _a === void 0 ? void 0 : _a.nvr.mac;
19
+ // Configure accessory information.
20
+ this.configureInfo();
21
+ // Configure accessory services.
22
+ const enabledSensors = this.updateDevice();
23
+ // Configure MQTT services.
24
+ this.configureMqtt();
25
+ // Inform the user what we're enabling on startup.
26
+ if (enabledSensors.length) {
27
+ this.log.info("%s: Enabled sensor%s: %s.", this.name(), enabledSensors.length > 1 ? "s" : "", enabledSensors.join(", "));
28
+ }
29
+ else {
30
+ this.log.info("%s: No sensors enabled.", this.name());
31
+ }
32
+ return Promise.resolve(true);
33
+ }
34
+ // Update accessory services and characteristics.
35
+ updateDevice() {
36
+ var _a, _b;
37
+ const enabledSensors = [];
38
+ // Configure the alarm sound sensor.
39
+ if (this.configureAlarmSoundSensor()) {
40
+ enabledSensors.push("alarm sound");
41
+ }
42
+ // Configure the ambient light sensor.
43
+ if (this.configureAmbientLightSensor()) {
44
+ enabledSensors.push("ambient light");
45
+ }
46
+ // Configure the contact sensor.
47
+ if (this.configureContactSensor()) {
48
+ enabledSensors.push("contact");
49
+ }
50
+ // Configure the humidity sensor.
51
+ if (this.configureHumiditySensor()) {
52
+ enabledSensors.push("humidity");
53
+ }
54
+ // Configure the motion sensor.
55
+ if (this.configureMotionSensor((_b = (_a = this.accessory.context.device) === null || _a === void 0 ? void 0 : _a.motionSettings) === null || _b === void 0 ? void 0 : _b.isEnabled)) {
56
+ // Sensor accessories also support battery, connection, and tamper status...we need to handle those ourselves.
57
+ const motionService = this.accessory.getService(this.hap.Service.MotionSensor);
58
+ if (motionService) {
59
+ // Update the state characteristics.
60
+ this.configureStateCharacteristics(motionService);
61
+ }
62
+ enabledSensors.push("motion sensor");
63
+ }
64
+ // Configure the temperature sensor.
65
+ if (this.configureTemperatureSensor()) {
66
+ enabledSensors.push("temperature");
67
+ }
68
+ return enabledSensors;
69
+ }
70
+ // Configure the alarm sound sensor for HomeKit.
71
+ configureAlarmSoundSensor() {
72
+ var _a, _b;
73
+ const device = this.accessory.context.device;
74
+ // Find the service, if it exists.
75
+ let contactService = this.accessory.getServiceById(this.hap.Service.ContactSensor, protect_accessory_1.PROTECT_CONTACT_SENSOR_ALARM_SOUND);
76
+ // Have we disabled the alarm sound sensor?
77
+ if (!((_a = device === null || device === void 0 ? void 0 : device.alarmSettings) === null || _a === void 0 ? void 0 : _a.isEnabled)) {
78
+ if (contactService) {
79
+ this.accessory.removeService(contactService);
80
+ this.log.info("%s: Disabling alarm sound contact sensor.", this.name());
81
+ }
82
+ return false;
83
+ }
84
+ // Add the service to the accessory, if needed.
85
+ if (!contactService) {
86
+ contactService = new this.hap.Service.ContactSensor(this.accessory.displayName + " Alarm Sound", protect_accessory_1.PROTECT_CONTACT_SENSOR_ALARM_SOUND);
87
+ if (!contactService) {
88
+ this.log.error("%s: Unable to add alarm sound contact sensor.", this.name());
89
+ return false;
90
+ }
91
+ this.accessory.addService(contactService);
92
+ this.log.info("%s: Enabling alarm sound contact sensor.", this.name());
93
+ }
94
+ // Retrieve the current contact sensor state when requested.
95
+ (_b = contactService.getCharacteristic(this.hap.Characteristic.ContactSensorState)) === null || _b === void 0 ? void 0 : _b.onGet(() => {
96
+ return this.getAlarmSound();
97
+ });
98
+ // Update the sensor.
99
+ contactService.updateCharacteristic(this.hap.Characteristic.ContactSensorState, this.getAlarmSound());
100
+ // Update the state characteristics.
101
+ this.configureStateCharacteristics(contactService);
102
+ return true;
103
+ }
104
+ // Configure the ambient light sensor for HomeKit.
105
+ configureAmbientLightSensor() {
106
+ var _a, _b;
107
+ const device = this.accessory.context.device;
108
+ // Find the service, if it exists.
109
+ let lightService = this.accessory.getService(this.hap.Service.LightSensor);
110
+ // Have we disabled the light sensor?
111
+ if (!((_a = device === null || device === void 0 ? void 0 : device.lightSettings) === null || _a === void 0 ? void 0 : _a.isEnabled)) {
112
+ if (lightService) {
113
+ this.accessory.removeService(lightService);
114
+ this.log.info("%s: Disabling ambient light sensor.", this.name());
115
+ }
116
+ return false;
117
+ }
118
+ // Add the service to the accessory, if needed.
119
+ if (!lightService) {
120
+ lightService = new this.hap.Service.LightSensor(this.accessory.displayName);
121
+ if (!lightService) {
122
+ this.log.error("%s: Unable to add ambient light sensor.", this.name());
123
+ return false;
124
+ }
125
+ this.accessory.addService(lightService);
126
+ this.log.info("%s: Enabling ambient light sensor.", this.name());
127
+ }
128
+ // Retrieve the current light level when requested.
129
+ (_b = lightService.getCharacteristic(this.hap.Characteristic.CurrentAmbientLightLevel)) === null || _b === void 0 ? void 0 : _b.onGet(() => {
130
+ // The minimum value for ambient light in HomeKit is 0.0001. I have no idea why...but it is. Honor it.
131
+ const value = this.getAmbientLight();
132
+ return value >= 0.0001 ? value : 0.0001;
133
+ });
134
+ // Update the sensor. The minimum value for ambient light in HomeKit is 0.0001. I have no idea why...but it is. Honor it.
135
+ const value = this.getAmbientLight();
136
+ lightService.updateCharacteristic(this.hap.Characteristic.CurrentAmbientLightLevel, value >= 0.0001 ? value : 0.0001);
137
+ // Update the state characteristics.
138
+ this.configureStateCharacteristics(lightService);
139
+ return true;
140
+ }
141
+ // Configure the contact sensor for HomeKit.
142
+ configureContactSensor() {
143
+ var _a;
144
+ const device = this.accessory.context.device;
145
+ // Find the service, if it exists.
146
+ let contactService = this.accessory.getServiceById(this.hap.Service.ContactSensor, protect_accessory_1.PROTECT_CONTACT_SENSOR);
147
+ // Have we disabled the sensor?
148
+ if (!(device === null || device === void 0 ? void 0 : device.mountType) || (device.mountType === "none")) {
149
+ if (contactService) {
150
+ this.accessory.removeService(contactService);
151
+ this.log.info("%s: Disabling contact sensor.", this.name());
152
+ }
153
+ return false;
154
+ }
155
+ // Add the service to the accessory, if needed.
156
+ if (!contactService) {
157
+ contactService = new this.hap.Service.ContactSensor(this.accessory.displayName, protect_accessory_1.PROTECT_CONTACT_SENSOR);
158
+ if (!contactService) {
159
+ this.log.error("%s: Unable to add contact sensor.", this.name());
160
+ return false;
161
+ }
162
+ this.accessory.addService(contactService);
163
+ this.log.info("%s: Enabling contact sensor.", this.name());
164
+ }
165
+ // Retrieve the current contact sensor state when requested.
166
+ (_a = contactService.getCharacteristic(this.hap.Characteristic.ContactSensorState)) === null || _a === void 0 ? void 0 : _a.onGet(() => {
167
+ return this.getContact();
168
+ });
169
+ // Update the sensor.
170
+ contactService.updateCharacteristic(this.hap.Characteristic.ContactSensorState, this.getContact());
171
+ // Update the state characteristics.
172
+ this.configureStateCharacteristics(contactService);
173
+ return true;
174
+ }
175
+ // Configure the humidity sensor for HomeKit.
176
+ configureHumiditySensor() {
177
+ var _a, _b;
178
+ const device = this.accessory.context.device;
179
+ // Find the service, if it exists.
180
+ let humidityService = this.accessory.getService(this.hap.Service.HumiditySensor);
181
+ // Have we disabled the sensor?
182
+ if (!((_a = device === null || device === void 0 ? void 0 : device.humiditySettings) === null || _a === void 0 ? void 0 : _a.isEnabled)) {
183
+ if (humidityService) {
184
+ this.accessory.removeService(humidityService);
185
+ this.log.info("%s: Disabling humidity sensor.", this.name());
186
+ }
187
+ return false;
188
+ }
189
+ // Add the service to the accessory, if needed.
190
+ if (!humidityService) {
191
+ humidityService = new this.hap.Service.HumiditySensor(this.accessory.displayName);
192
+ if (!humidityService) {
193
+ this.log.error("%s: Unable to add humidity sensor.", this.name());
194
+ return false;
195
+ }
196
+ this.accessory.addService(humidityService);
197
+ this.log.info("%s: Enabling humidity sensor.", this.name());
198
+ }
199
+ // Retrieve the current humidity when requested.
200
+ (_b = humidityService.getCharacteristic(this.hap.Characteristic.CurrentRelativeHumidity)) === null || _b === void 0 ? void 0 : _b.onGet(() => {
201
+ const value = this.getHumidity();
202
+ return value < 0 ? 0 : value;
203
+ });
204
+ // Update the sensor.
205
+ const value = this.getHumidity();
206
+ humidityService.updateCharacteristic(this.hap.Characteristic.CurrentRelativeHumidity, value < 0 ? 0 : value);
207
+ // Update the state characteristics.
208
+ this.configureStateCharacteristics(humidityService);
209
+ return true;
210
+ }
211
+ // Configure the temperature sensor for HomeKit.
212
+ configureTemperatureSensor() {
213
+ var _a, _b;
214
+ const device = this.accessory.context.device;
215
+ // Find the service, if it exists.
216
+ let temperatureService = this.accessory.getService(this.hap.Service.TemperatureSensor);
217
+ // Have we disabled the temperature sensor?
218
+ if (!((_a = device === null || device === void 0 ? void 0 : device.temperatureSettings) === null || _a === void 0 ? void 0 : _a.isEnabled)) {
219
+ if (temperatureService) {
220
+ this.accessory.removeService(temperatureService);
221
+ this.log.info("%s: Disabling temperature sensor.", this.name());
222
+ }
223
+ return false;
224
+ }
225
+ // Add the service to the accessory, if needed.
226
+ if (!temperatureService) {
227
+ temperatureService = new this.hap.Service.TemperatureSensor(this.accessory.displayName);
228
+ if (!temperatureService) {
229
+ this.log.error("%s: Unable to add temperature sensor.", this.name());
230
+ return false;
231
+ }
232
+ this.accessory.addService(temperatureService);
233
+ this.log.info("%s: Enabling temperature sensor.", this.name());
234
+ }
235
+ // Retrieve the current temperature when requested.
236
+ (_b = temperatureService.getCharacteristic(this.hap.Characteristic.CurrentTemperature)) === null || _b === void 0 ? void 0 : _b.onGet(() => {
237
+ const value = this.getTemperature();
238
+ return value < 0 ? 0 : value;
239
+ });
240
+ // Update the sensor.
241
+ const value = this.getTemperature();
242
+ temperatureService.updateCharacteristic(this.hap.Characteristic.CurrentTemperature, value < 0 ? 0 : value);
243
+ // Update the state characteristics.
244
+ this.configureStateCharacteristics(temperatureService);
245
+ return true;
246
+ }
247
+ // Configure the active connection status in HomeKit.
248
+ configureActiveStatus(service) {
249
+ var _a;
250
+ const device = this.accessory.context.device;
251
+ // Retrieve the current connection status when requested.
252
+ (_a = service.getCharacteristic(this.hap.Characteristic.StatusActive)) === null || _a === void 0 ? void 0 : _a.onGet(() => {
253
+ return this.accessory.context.device.state === "CONNECTED";
254
+ });
255
+ // Update the current connection status.
256
+ service.updateCharacteristic(this.hap.Characteristic.StatusActive, device.state === "CONNECTED");
257
+ return true;
258
+ }
259
+ // Configure the battery status in HomeKit.
260
+ configureBatteryStatus(service) {
261
+ var _a, _b;
262
+ const device = this.accessory.context.device;
263
+ // Retrieve the current battery status when requested.
264
+ (_a = service.getCharacteristic(this.hap.Characteristic.StatusLowBattery)) === null || _a === void 0 ? void 0 : _a.onGet(() => {
265
+ var _a;
266
+ return (_a = this.accessory.context.device.batteryStatus) === null || _a === void 0 ? void 0 : _a.isLow;
267
+ });
268
+ // Update the battery status.
269
+ service.updateCharacteristic(this.hap.Characteristic.StatusLowBattery, (_b = device.batteryStatus) === null || _b === void 0 ? void 0 : _b.isLow);
270
+ return true;
271
+ }
272
+ // Configure the tamper status in HomeKit.
273
+ configureTamperedStatus(service) {
274
+ var _a;
275
+ const device = this.accessory.context.device;
276
+ // Retrieve the current tamper status when requested.
277
+ (_a = service.getCharacteristic(this.hap.Characteristic.StatusTampered)) === null || _a === void 0 ? void 0 : _a.onGet(() => {
278
+ return this.accessory.context.device.tamperingDetectedAt !== null;
279
+ });
280
+ // Update the tamper status.
281
+ service.updateCharacteristic(this.hap.Characteristic.StatusTampered, device.tamperingDetectedAt !== null);
282
+ return true;
283
+ }
284
+ // Configure the additional state characteristics in HomeKit.
285
+ configureStateCharacteristics(service) {
286
+ // Update the active connection status.
287
+ this.configureActiveStatus(service);
288
+ // Update the battery status.
289
+ this.configureBatteryStatus(service);
290
+ // Update the tamper status.
291
+ this.configureTamperedStatus(service);
292
+ return true;
293
+ }
294
+ // Get the current alarm sound information.
295
+ getAlarmSound() {
296
+ var _a;
297
+ // Return true if we are not null, meaning the alarm has sounded.
298
+ const value = this.accessory.context.device.alarmTriggeredAt !== null;
299
+ // Save the state change and publish to MQTT.
300
+ if (value !== this.savedAlarmSound) {
301
+ this.savedAlarmSound = value;
302
+ (_a = this.nvr.mqtt) === null || _a === void 0 ? void 0 : _a.publish(this.accessory, "alarmsound", value.toString());
303
+ }
304
+ return value;
305
+ }
306
+ // Get the current ambient light information.
307
+ getAmbientLight() {
308
+ var _a;
309
+ return (_a = this.accessory.context.device.stats.light.value) !== null && _a !== void 0 ? _a : -1;
310
+ }
311
+ // Get the current contact sensor information.
312
+ getContact() {
313
+ var _a;
314
+ // Return true if we are open.
315
+ const value = this.accessory.context.device.isOpened;
316
+ // Save the state change and publish to MQTT.
317
+ if (value !== this.savedContact) {
318
+ this.savedContact = value;
319
+ (_a = this.nvr.mqtt) === null || _a === void 0 ? void 0 : _a.publish(this.accessory, "contact", value.toString());
320
+ }
321
+ return value;
322
+ }
323
+ // Get the current humidity information.
324
+ getHumidity() {
325
+ var _a;
326
+ return (_a = this.accessory.context.device.stats.humidity.value) !== null && _a !== void 0 ? _a : -1;
327
+ }
328
+ // Get the current temperature information.
329
+ getTemperature() {
330
+ var _a;
331
+ return (_a = this.accessory.context.device.stats.temperature.value) !== null && _a !== void 0 ? _a : -1;
332
+ }
333
+ // Configure MQTT capabilities for sensors.
334
+ configureMqtt() {
335
+ var _a, _b, _c, _d, _e, _f;
336
+ if (!((_a = this.nvrApi.bootstrap) === null || _a === void 0 ? void 0 : _a.nvr.mac)) {
337
+ return;
338
+ }
339
+ (_b = this.nvr.mqtt) === null || _b === void 0 ? void 0 : _b.subscribeGet(this.accessory, this.name(), "alarmsound", "Alarm sound", () => {
340
+ return this.getAlarmSound().toString();
341
+ });
342
+ (_c = this.nvr.mqtt) === null || _c === void 0 ? void 0 : _c.subscribeGet(this.accessory, this.name(), "ambientlight", "Ambient light", () => {
343
+ return this.getAmbientLight().toString();
344
+ });
345
+ (_d = this.nvr.mqtt) === null || _d === void 0 ? void 0 : _d.subscribeGet(this.accessory, this.name(), "contact", "Contact sensor", () => {
346
+ return this.getContact().toString();
347
+ });
348
+ (_e = this.nvr.mqtt) === null || _e === void 0 ? void 0 : _e.subscribeGet(this.accessory, this.name(), "humidity", "Humidity", () => {
349
+ return this.getHumidity().toString();
350
+ });
351
+ (_f = this.nvr.mqtt) === null || _f === void 0 ? void 0 : _f.subscribeGet(this.accessory, this.name(), "temperature", "Temperature", () => {
352
+ return this.getTemperature().toString();
353
+ });
354
+ }
355
+ }
356
+ exports.ProtectSensor = ProtectSensor;
357
+ //# sourceMappingURL=protect-sensor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protect-sensor.js","sourceRoot":"","sources":["../src/protect-sensor.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,12 @@ const unifi_protect_1 = require("unifi-protect");
8
8
  const settings_1 = require("./settings");
9
9
  const protect_ffmpeg_1 = require("./protect-ffmpeg");
10
10
  const protect_rtp_1 = require("./protect-rtp");
11
+ const ws_1 = __importDefault(require("ws"));
11
12
  const ffmpeg_for_homebridge_1 = __importDefault(require("ffmpeg-for-homebridge"));
12
13
  const camera_utils_1 = require("@homebridge/camera-utils");
13
- // Increase the listener limits to support Protect installations with more than 10 cameras. 200 seems like a reasonable default.
14
+ // Increase the listener limits to support Protect installations with more than 10 cameras. 100 seems like a reasonable default.
14
15
  // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access
15
- require("events").EventEmitter.defaultMaxListeners = 200;
16
+ require("events").EventEmitter.defaultMaxListeners = 100;
16
17
  // Camera streaming delegate implementation for Protect.
17
18
  class ProtectStreamingDelegate {
18
19
  constructor(protectCamera, resolutions) {
@@ -83,11 +84,11 @@ class ProtectStreamingDelegate {
83
84
  }
84
85
  // Prepare to launch the video stream.
85
86
  async prepareStream(request, callback) {
86
- const cameraConfig = this.protectCamera.accessory.context.camera;
87
+ const cameraConfig = this.protectCamera.accessory.context.device;
87
88
  // Check if audio support is enabled.
88
89
  const isAudioEnabled = this.protectCamera.nvr.optionEnabled(cameraConfig, "Audio", true, request.targetAddress);
89
90
  // We need to check for AAC support because it's going to determine whether we support audio.
90
- const hasLibFdk = isAudioEnabled && (await protect_ffmpeg_1.FfmpegProcess.codecEnabled(this.videoProcessor, "libfdk_aac"));
91
+ const hasLibFdk = isAudioEnabled && (await protect_ffmpeg_1.FfmpegProcess.codecEnabled(this.videoProcessor, "libfdk_aac", this.log));
91
92
  // Setup our audio plumbing.
92
93
  const audioIncomingRtcpPort = (await (0, camera_utils_1.reservePorts)({ count: 1 }))[0];
93
94
  const audioIncomingPort = (hasLibFdk && this.protectCamera.twoWayAudio) ? (await (0, camera_utils_1.reservePorts)({ count: 1 }))[0] : -1;
@@ -96,9 +97,23 @@ class ProtectStreamingDelegate {
96
97
  if (!hasLibFdk) {
97
98
  this.log.info("%s: Audio support disabled.%s", this.name(), isAudioEnabled ? " A version of FFmpeg that is compiled with fdk_aac support is required to support audio." : "");
98
99
  }
99
- // Setup the RTP demuxer for two-way audio scenarios.
100
- const rtpDemuxer = (hasLibFdk && this.protectCamera.twoWayAudio) ?
101
- new protect_rtp_1.RtpDemuxer(this, request.addressVersion, audioIncomingPort, audioIncomingRtcpPort, audioIncomingRtpPort) : null;
100
+ let rtpDemuxer = null;
101
+ let talkBack = null;
102
+ if (hasLibFdk && this.protectCamera.twoWayAudio) {
103
+ // Setup the RTP demuxer for two-way audio scenarios.
104
+ rtpDemuxer = new protect_rtp_1.RtpDemuxer(this, request.addressVersion, audioIncomingPort, audioIncomingRtcpPort, audioIncomingRtpPort);
105
+ // Request the talkback websocket from the controller.
106
+ const params = new URLSearchParams({ camera: cameraConfig.id });
107
+ const response = await this.protectCamera.nvr.nvrApi.fetch(this.protectCamera.nvr.nvrApi.wsUrl() + "/talkback?" + params.toString());
108
+ // Something went wrong and we don't have a talkback websocket.
109
+ if (!(response === null || response === void 0 ? void 0 : response.ok)) {
110
+ this.log.error("%s: Unable to configure the return audio channel.%s", this.name(), response ? " " + response.status.toString() + " - " + response.statusText + "." : "");
111
+ }
112
+ else {
113
+ const tb = await response.json();
114
+ talkBack = tb === null || tb === void 0 ? void 0 : tb.url;
115
+ }
116
+ }
102
117
  // Setup our video plumbing.
103
118
  const videoReturnPort = (await (0, camera_utils_1.reservePorts)({ count: 1 }))[0];
104
119
  const videoSSRC = this.hap.CameraController.generateSynchronisationSource();
@@ -113,6 +128,7 @@ class ProtectStreamingDelegate {
113
128
  audioSSRC: audioSSRC,
114
129
  hasLibFdk: hasLibFdk,
115
130
  rtpDemuxer: rtpDemuxer,
131
+ talkBack: talkBack,
116
132
  videoCryptoSuite: request.video.srtpCryptoSuite,
117
133
  videoPort: request.video.port,
118
134
  videoReturnPort: videoReturnPort,
@@ -146,8 +162,8 @@ class ProtectStreamingDelegate {
146
162
  }
147
163
  // Launch the Protect video (and audio) stream.
148
164
  startStream(request, callback) {
149
- var _a, _b, _c, _d;
150
- const cameraConfig = this.protectCamera.accessory.context.camera;
165
+ var _a, _b, _c, _d, _e, _f;
166
+ const cameraConfig = this.protectCamera.accessory.context.device;
151
167
  const sessionInfo = this.pendingSessions[request.sessionID];
152
168
  const sdpIpVersion = sessionInfo.addressVersion === "ipv6" ? "IP6 " : "IP4";
153
169
  // If we aren't connected, we're done.
@@ -350,7 +366,7 @@ class ProtectStreamingDelegate {
350
366
  "-ar", cameraConfig.talkbackSettings.samplingRate.toString(),
351
367
  "-b:a", "64k",
352
368
  "-f", "adts",
353
- "udp://" + cameraConfig.host + ":" + cameraConfig.talkbackSettings.bindPort.toString()
369
+ "-"
354
370
  ];
355
371
  // Additional logging, but only if we're debugging.
356
372
  if (this.platform.verboseFfmpeg) {
@@ -359,12 +375,31 @@ class ProtectStreamingDelegate {
359
375
  if (this.platform.config.debugAll) {
360
376
  ffmpegReturnAudioCmd.push("-loglevel", "level+debug");
361
377
  }
378
+ // Create the talkback websocket.
379
+ let ws = null;
380
+ try {
381
+ if (sessionInfo.talkBack) {
382
+ ws = new ws_1.default(sessionInfo.talkBack, { rejectUnauthorized: false });
383
+ }
384
+ }
385
+ catch (error) {
386
+ this.log.error("%s: Unable to connect to the return audio channel: %s", this.name(), error);
387
+ }
388
+ // Fire up FFmpeg.
362
389
  const ffmpegReturnAudio = new protect_ffmpeg_1.FfmpegProcess(this, request.sessionID, ffmpegReturnAudioCmd);
363
- // Housekeeping for the twoway FFmpeg session.
390
+ // Make sure we close the talkback websocket when we're done.
391
+ (_c = ffmpegReturnAudio.getStdout()) === null || _c === void 0 ? void 0 : _c.on("close", () => {
392
+ ws === null || ws === void 0 ? void 0 : ws.close();
393
+ });
394
+ // Setup housekeeping for the twoway FFmpeg session.
364
395
  this.ongoingSessions[request.sessionID].ffmpeg.push(ffmpegReturnAudio);
365
396
  // Feed the SDP session description to FFmpeg on stdin.
366
- (_c = ffmpegReturnAudio.getStdin()) === null || _c === void 0 ? void 0 : _c.write(sdpReturnAudio);
367
- (_d = ffmpegReturnAudio.getStdin()) === null || _d === void 0 ? void 0 : _d.end();
397
+ (_d = ffmpegReturnAudio.getStdin()) === null || _d === void 0 ? void 0 : _d.write(sdpReturnAudio);
398
+ (_e = ffmpegReturnAudio.getStdin()) === null || _e === void 0 ? void 0 : _e.end();
399
+ // Send the audio.
400
+ (_f = ffmpegReturnAudio.getStdout()) === null || _f === void 0 ? void 0 : _f.on("data", (data) => {
401
+ ws === null || ws === void 0 ? void 0 : ws.send(data);
402
+ });
368
403
  }
369
404
  // Process incoming stream requests.
370
405
  handleStreamRequest(request, callback) {
@@ -395,7 +430,7 @@ class ProtectStreamingDelegate {
395
430
  }
396
431
  // Take a snapshot.
397
432
  async getSnapshot(request) {
398
- const cameraConfig = this.protectCamera.accessory.context.camera;
433
+ const cameraConfig = this.protectCamera.accessory.context.device;
399
434
  const params = new URLSearchParams({ force: "true" });
400
435
  // If we aren't connected, we're done.
401
436
  if (cameraConfig.state !== "CONNECTED") {
@@ -423,7 +458,7 @@ class ProtectStreamingDelegate {
423
458
  }
424
459
  try {
425
460
  // Retrieve the image.
426
- this.snapshotCache[cameraConfig.mac] = { image: await response.buffer(), time: Date.now() };
461
+ this.snapshotCache[cameraConfig.mac] = { image: Buffer.from(await response.arrayBuffer()), time: Date.now() };
427
462
  return this.snapshotCache[cameraConfig.mac].image;
428
463
  }
429
464
  catch (error) {