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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ProtectDevice } from "./protect-device.js";
|
|
2
2
|
import { ProtectReservedNames } from "../protect-types.js";
|
|
3
3
|
export class ProtectSensor extends ProtectDevice {
|
|
4
|
+
enabledSensors;
|
|
4
5
|
lastAlarm;
|
|
5
6
|
lastContact;
|
|
6
7
|
lastLeak;
|
|
@@ -8,6 +9,7 @@ export class ProtectSensor extends ProtectDevice {
|
|
|
8
9
|
// Create an instance.
|
|
9
10
|
constructor(nvr, device, accessory) {
|
|
10
11
|
super(nvr, accessory);
|
|
12
|
+
this.enabledSensors = [];
|
|
11
13
|
this.ufp = device;
|
|
12
14
|
this.configureHints();
|
|
13
15
|
this.configureDevice();
|
|
@@ -23,72 +25,57 @@ export class ProtectSensor extends ProtectDevice {
|
|
|
23
25
|
// Configure the battery status.
|
|
24
26
|
this.configureBatteryService();
|
|
25
27
|
// Configure the sensor services that have been enabled.
|
|
26
|
-
|
|
28
|
+
this.updateDevice(false);
|
|
27
29
|
// Configure MQTT services.
|
|
28
30
|
this.configureMqtt();
|
|
29
31
|
// Listen for events.
|
|
30
32
|
this.nvr.events.on("updateEvent." + this.ufp.id, this.listeners["updateEvent." + this.ufp.id] = this.eventHandler.bind(this));
|
|
31
|
-
// Inform the user what we're enabling on startup.
|
|
32
|
-
if (enabledSensors.length) {
|
|
33
|
-
this.log.info("Enabled sensor%s: %s.", enabledSensors.length > 1 ? "s" : "", enabledSensors.join(", "));
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
this.log.info("No sensors enabled.");
|
|
37
|
-
}
|
|
38
33
|
return true;
|
|
39
34
|
}
|
|
40
35
|
// Update battery status information for HomeKit.
|
|
41
36
|
configureBatteryService() {
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
//
|
|
45
|
-
if (!
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (!batteryService) {
|
|
49
|
-
this.log.error("Unable to add the battery service.");
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
this.accessory.addService(batteryService);
|
|
37
|
+
// Acquire the service.
|
|
38
|
+
const service = this.acquireService(this.hap.Service.Battery);
|
|
39
|
+
// Fail gracefully.
|
|
40
|
+
if (!service) {
|
|
41
|
+
this.log.error("Unable to add the battery service.");
|
|
42
|
+
return false;
|
|
53
43
|
}
|
|
54
44
|
// Retrieve the current battery status when requested.
|
|
55
|
-
|
|
45
|
+
service.getCharacteristic(this.hap.Characteristic.StatusLowBattery)?.onGet(() => {
|
|
56
46
|
return this.ufp.batteryStatus?.percentage ?? 0;
|
|
57
47
|
});
|
|
58
|
-
|
|
48
|
+
service.getCharacteristic(this.hap.Characteristic.StatusLowBattery)?.onGet(() => {
|
|
59
49
|
return this.ufp.batteryStatus?.isLow ?? false;
|
|
60
50
|
});
|
|
61
|
-
// Initialize our name.
|
|
62
|
-
batteryService.displayName = this.accessoryName;
|
|
63
|
-
batteryService.updateCharacteristic(this.hap.Characteristic.Name, this.accessoryName);
|
|
64
51
|
// Initialize the battery state.
|
|
65
52
|
this.updateBatteryStatus();
|
|
66
53
|
return true;
|
|
67
54
|
}
|
|
68
55
|
// Update accessory services and characteristics.
|
|
69
56
|
updateDevice(isInitialized = true) {
|
|
70
|
-
const
|
|
57
|
+
const currentEnabledSensors = [];
|
|
71
58
|
// Update the battery status for the accessory.
|
|
72
59
|
this.updateBatteryStatus();
|
|
73
60
|
// Configure the alarm sound sensor.
|
|
74
61
|
if (this.configureAlarmSoundSensor()) {
|
|
75
|
-
|
|
62
|
+
currentEnabledSensors.push("alarm sound");
|
|
76
63
|
}
|
|
77
64
|
// Configure the ambient light sensor.
|
|
78
65
|
if (this.configureAmbientLightSensor()) {
|
|
79
|
-
|
|
66
|
+
currentEnabledSensors.push("ambient light");
|
|
80
67
|
}
|
|
81
68
|
// Configure the contact sensor.
|
|
82
69
|
if (this.configureContactSensor()) {
|
|
83
|
-
|
|
70
|
+
currentEnabledSensors.push("contact");
|
|
84
71
|
}
|
|
85
72
|
// Configure the humidity sensor.
|
|
86
73
|
if (this.configureHumiditySensor()) {
|
|
87
|
-
|
|
74
|
+
currentEnabledSensors.push("humidity");
|
|
88
75
|
}
|
|
89
76
|
// Configure the alarm sound sensor.
|
|
90
77
|
if (this.configureLeakSensor()) {
|
|
91
|
-
|
|
78
|
+
currentEnabledSensors.push("leak");
|
|
92
79
|
}
|
|
93
80
|
// Configure the motion sensor.
|
|
94
81
|
if (this.configureMotionSensor(this.ufp.motionSettings?.isEnabled, isInitialized)) {
|
|
@@ -98,229 +85,199 @@ export class ProtectSensor extends ProtectDevice {
|
|
|
98
85
|
// Update the state characteristics.
|
|
99
86
|
this.configureStateCharacteristics(motionService);
|
|
100
87
|
}
|
|
101
|
-
|
|
88
|
+
currentEnabledSensors.push("motion sensor");
|
|
102
89
|
}
|
|
103
90
|
// Configure the occupancy sensor.
|
|
104
91
|
this.configureOccupancySensor(this.ufp.motionSettings?.isEnabled, isInitialized);
|
|
105
92
|
// Configure the temperature sensor.
|
|
106
93
|
if (this.configureTemperatureSensor()) {
|
|
107
|
-
|
|
94
|
+
currentEnabledSensors.push("temperature");
|
|
95
|
+
}
|
|
96
|
+
// Inform the user if we've had a change.
|
|
97
|
+
if (this.enabledSensors.join(" ") !== currentEnabledSensors.join(" ")) {
|
|
98
|
+
this.enabledSensors = currentEnabledSensors;
|
|
99
|
+
// Inform the user what we're enabling on startup.
|
|
100
|
+
if (this.enabledSensors.length) {
|
|
101
|
+
this.log.info("Enabled sensor%s: %s.", this.enabledSensors.length > 1 ? "s" : "", this.enabledSensors.join(", "));
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
this.log.info("No sensors enabled.");
|
|
105
|
+
}
|
|
108
106
|
}
|
|
109
|
-
return enabledSensors;
|
|
110
107
|
}
|
|
111
108
|
// Configure the alarm sound sensor for HomeKit.
|
|
112
109
|
configureAlarmSoundSensor() {
|
|
113
|
-
//
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
this.accessory.removeService(contactService);
|
|
119
|
-
this.log.info("Disabling alarm sound contact sensor.");
|
|
110
|
+
// Validate whether we should have this service enabled.
|
|
111
|
+
if (!this.validService(this.hap.Service.ContactSensor, () => {
|
|
112
|
+
// Have we disabled the sensor?
|
|
113
|
+
if (!this.ufp.alarmSettings?.isEnabled) {
|
|
114
|
+
return false;
|
|
120
115
|
}
|
|
116
|
+
return true;
|
|
117
|
+
}, ProtectReservedNames.CONTACT_SENSOR_ALARM_SOUND)) {
|
|
121
118
|
return false;
|
|
122
119
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
return false;
|
|
130
|
-
}
|
|
131
|
-
contactService.addOptionalCharacteristic(this.hap.Characteristic.ConfiguredName);
|
|
132
|
-
contactService.updateCharacteristic(this.hap.Characteristic.ConfiguredName, contactName);
|
|
133
|
-
this.accessory.addService(contactService);
|
|
134
|
-
this.log.info("Enabling alarm sound contact sensor.");
|
|
120
|
+
// Acquire the service.
|
|
121
|
+
const service = this.acquireService(this.hap.Service.ContactSensor, this.accessoryName + " Alarm Sound", ProtectReservedNames.CONTACT_SENSOR_ALARM_SOUND);
|
|
122
|
+
// Fail gracefully.
|
|
123
|
+
if (!service) {
|
|
124
|
+
this.log.error("Unable to add alarm sound contact sensor.");
|
|
125
|
+
return false;
|
|
135
126
|
}
|
|
136
127
|
// Retrieve the current contact sensor state when requested.
|
|
137
|
-
|
|
128
|
+
service.getCharacteristic(this.hap.Characteristic.ContactSensorState)?.onGet(() => {
|
|
138
129
|
return this.alarmDetected;
|
|
139
130
|
});
|
|
140
|
-
// Initialize our name.
|
|
141
|
-
contactService.displayName = contactName;
|
|
142
|
-
contactService.updateCharacteristic(this.hap.Characteristic.Name, contactName);
|
|
143
|
-
contactService.updateCharacteristic(this.hap.Characteristic.ConfiguredName, contactName);
|
|
144
131
|
// Update the sensor.
|
|
145
|
-
|
|
132
|
+
service.updateCharacteristic(this.hap.Characteristic.ContactSensorState, this.alarmDetected);
|
|
146
133
|
// Update the state characteristics.
|
|
147
|
-
this.configureStateCharacteristics(
|
|
134
|
+
this.configureStateCharacteristics(service);
|
|
148
135
|
return true;
|
|
149
136
|
}
|
|
150
137
|
// Configure the ambient light sensor for HomeKit.
|
|
151
138
|
configureAmbientLightSensor() {
|
|
152
|
-
//
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
this.accessory.removeService(lightService);
|
|
158
|
-
this.log.info("Disabling ambient light sensor.");
|
|
139
|
+
// Validate whether we should have this service enabled.
|
|
140
|
+
if (!this.validService(this.hap.Service.LightSensor, () => {
|
|
141
|
+
// Have we disabled the sensor?
|
|
142
|
+
if (!this.ufp.lightSettings?.isEnabled) {
|
|
143
|
+
return false;
|
|
159
144
|
}
|
|
145
|
+
return true;
|
|
146
|
+
})) {
|
|
160
147
|
return false;
|
|
161
148
|
}
|
|
162
|
-
//
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
169
|
-
this.accessory.addService(lightService);
|
|
170
|
-
this.log.info("Enabling ambient light sensor.");
|
|
149
|
+
// Acquire the service.
|
|
150
|
+
const service = this.acquireService(this.hap.Service.LightSensor);
|
|
151
|
+
// Fail gracefully.
|
|
152
|
+
if (!service) {
|
|
153
|
+
this.log.error("Unable to add ambient light sensor.");
|
|
154
|
+
return false;
|
|
171
155
|
}
|
|
172
156
|
// Retrieve the current light level when requested.
|
|
173
|
-
|
|
157
|
+
service.getCharacteristic(this.hap.Characteristic.CurrentAmbientLightLevel)?.onGet(() => {
|
|
174
158
|
// The minimum value for ambient light in HomeKit is 0.0001. I have no idea why...but it is. Honor it.
|
|
175
159
|
return this.ambientLight >= 0.0001 ? this.ambientLight : 0.0001;
|
|
176
160
|
});
|
|
177
|
-
// Initialize our name.
|
|
178
|
-
lightService.displayName = this.accessoryName;
|
|
179
|
-
lightService.updateCharacteristic(this.hap.Characteristic.Name, this.accessoryName);
|
|
180
161
|
// Update the sensor. The minimum value for ambient light in HomeKit is 0.0001. I have no idea why...but it is. Honor it.
|
|
181
|
-
|
|
162
|
+
service.updateCharacteristic(this.hap.Characteristic.CurrentAmbientLightLevel, this.ambientLight >= 0.0001 ? this.ambientLight : 0.0001);
|
|
182
163
|
// Update the state characteristics.
|
|
183
|
-
this.configureStateCharacteristics(
|
|
164
|
+
this.configureStateCharacteristics(service);
|
|
184
165
|
return true;
|
|
185
166
|
}
|
|
186
167
|
// Configure the contact sensor for HomeKit.
|
|
187
168
|
configureContactSensor() {
|
|
188
|
-
//
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
this.accessory.removeService(contactService);
|
|
194
|
-
this.log.info("Disabling contact sensor.");
|
|
169
|
+
// Validate whether we should have this service enabled.
|
|
170
|
+
if (!this.validService(this.hap.Service.ContactSensor, () => {
|
|
171
|
+
// Have we disabled the sensor or are we configured as a leak sensor?
|
|
172
|
+
if (!this.ufp.mountType || (this.ufp.mountType === "leak") || (this.ufp.mountType === "none")) {
|
|
173
|
+
return false;
|
|
195
174
|
}
|
|
175
|
+
return true;
|
|
176
|
+
}, ProtectReservedNames.CONTACT_SENSOR)) {
|
|
196
177
|
return false;
|
|
197
178
|
}
|
|
198
|
-
//
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
}
|
|
205
|
-
this.accessory.addService(contactService);
|
|
206
|
-
this.log.info("Enabling contact sensor.");
|
|
179
|
+
// Acquire the service.
|
|
180
|
+
const service = this.acquireService(this.hap.Service.ContactSensor, undefined, ProtectReservedNames.CONTACT_SENSOR);
|
|
181
|
+
// Fail gracefully.
|
|
182
|
+
if (!service) {
|
|
183
|
+
this.log.error("Unable to add contact sensor.");
|
|
184
|
+
return false;
|
|
207
185
|
}
|
|
208
186
|
// Retrieve the current contact sensor state when requested.
|
|
209
|
-
|
|
187
|
+
service.getCharacteristic(this.hap.Characteristic.ContactSensorState)?.onGet(() => {
|
|
210
188
|
return this.contact;
|
|
211
189
|
});
|
|
212
|
-
// Initialize our name.
|
|
213
|
-
contactService.displayName = this.accessoryName;
|
|
214
|
-
contactService.updateCharacteristic(this.hap.Characteristic.Name, this.accessoryName);
|
|
215
190
|
// Update the sensor.
|
|
216
|
-
|
|
191
|
+
service.updateCharacteristic(this.hap.Characteristic.ContactSensorState, this.contact);
|
|
217
192
|
// Update the state characteristics.
|
|
218
|
-
this.configureStateCharacteristics(
|
|
193
|
+
this.configureStateCharacteristics(service);
|
|
219
194
|
return true;
|
|
220
195
|
}
|
|
221
196
|
// Configure the humidity sensor for HomeKit.
|
|
222
197
|
configureHumiditySensor() {
|
|
223
|
-
//
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
this.accessory.removeService(humidityService);
|
|
229
|
-
this.log.info("Disabling humidity sensor.");
|
|
198
|
+
// Validate whether we should have this service enabled.
|
|
199
|
+
if (!this.validService(this.hap.Service.HumiditySensor, () => {
|
|
200
|
+
// Have we disabled the sensor?
|
|
201
|
+
if (!this.ufp.humiditySettings?.isEnabled) {
|
|
202
|
+
return false;
|
|
230
203
|
}
|
|
204
|
+
return true;
|
|
205
|
+
})) {
|
|
231
206
|
return false;
|
|
232
207
|
}
|
|
233
|
-
//
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
}
|
|
240
|
-
this.accessory.addService(humidityService);
|
|
241
|
-
this.log.info("Enabling humidity sensor.");
|
|
208
|
+
// Acquire the service.
|
|
209
|
+
const service = this.acquireService(this.hap.Service.HumiditySensor);
|
|
210
|
+
// Fail gracefully.
|
|
211
|
+
if (!service) {
|
|
212
|
+
this.log.error("Unable to add humidity sensor.");
|
|
213
|
+
return false;
|
|
242
214
|
}
|
|
243
215
|
// Retrieve the current humidity when requested.
|
|
244
|
-
|
|
216
|
+
service.getCharacteristic(this.hap.Characteristic.CurrentRelativeHumidity)?.onGet(() => {
|
|
245
217
|
return this.humidity < 0 ? 0 : this.humidity;
|
|
246
218
|
});
|
|
247
|
-
// Initialize our name.
|
|
248
|
-
humidityService.displayName = this.accessoryName;
|
|
249
|
-
humidityService.updateCharacteristic(this.hap.Characteristic.Name, this.accessoryName);
|
|
250
219
|
// Update the sensor.
|
|
251
|
-
|
|
220
|
+
service.updateCharacteristic(this.hap.Characteristic.CurrentRelativeHumidity, this.humidity < 0 ? 0 : this.humidity);
|
|
252
221
|
// Update the state characteristics.
|
|
253
|
-
this.configureStateCharacteristics(
|
|
222
|
+
this.configureStateCharacteristics(service);
|
|
254
223
|
return true;
|
|
255
224
|
}
|
|
256
225
|
// Configure the leak sensor for HomeKit.
|
|
257
226
|
configureLeakSensor() {
|
|
258
|
-
//
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
this.accessory.removeService(leakService);
|
|
264
|
-
this.log.info("Disabling leak sensor.");
|
|
227
|
+
// Validate whether we should have this service enabled.
|
|
228
|
+
if (!this.validService(this.hap.Service.LeakSensor, () => {
|
|
229
|
+
// Have we disabled the leak sensor?
|
|
230
|
+
if (this.ufp.mountType !== "leak") {
|
|
231
|
+
return false;
|
|
265
232
|
}
|
|
233
|
+
return true;
|
|
234
|
+
})) {
|
|
266
235
|
return false;
|
|
267
236
|
}
|
|
268
|
-
//
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
}
|
|
275
|
-
this.accessory.addService(leakService);
|
|
276
|
-
this.log.info("Enabling leak sensor.");
|
|
237
|
+
// Acquire the service.
|
|
238
|
+
const service = this.acquireService(this.hap.Service.LeakSensor);
|
|
239
|
+
// Fail gracefully.
|
|
240
|
+
if (!service) {
|
|
241
|
+
this.log.error("Unable to add leak sensor.");
|
|
242
|
+
return false;
|
|
277
243
|
}
|
|
278
244
|
// Retrieve the current contact sensor state when requested.
|
|
279
|
-
|
|
245
|
+
service.getCharacteristic(this.hap.Characteristic.LeakDetected)?.onGet(() => {
|
|
280
246
|
return this.leakDetected;
|
|
281
247
|
});
|
|
282
|
-
// Initialize our name.
|
|
283
|
-
leakService.displayName = this.accessoryName;
|
|
284
|
-
leakService.updateCharacteristic(this.hap.Characteristic.Name, this.accessoryName);
|
|
285
248
|
// Update the sensor.
|
|
286
|
-
|
|
249
|
+
service.updateCharacteristic(this.hap.Characteristic.LeakDetected, this.leakDetected);
|
|
287
250
|
// Update the state characteristics.
|
|
288
|
-
this.configureStateCharacteristics(
|
|
251
|
+
this.configureStateCharacteristics(service);
|
|
289
252
|
return true;
|
|
290
253
|
}
|
|
291
254
|
// Configure the temperature sensor for HomeKit.
|
|
292
255
|
configureTemperatureSensor() {
|
|
293
|
-
//
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
this.accessory.removeService(temperatureService);
|
|
299
|
-
this.log.info("Disabling temperature sensor.");
|
|
256
|
+
// Validate whether we should have this service enabled.
|
|
257
|
+
if (!this.validService(this.hap.Service.TemperatureSensor, () => {
|
|
258
|
+
// Have we disabled the sensor?
|
|
259
|
+
if (!this.ufp.temperatureSettings?.isEnabled) {
|
|
260
|
+
return false;
|
|
300
261
|
}
|
|
262
|
+
return true;
|
|
263
|
+
})) {
|
|
301
264
|
return false;
|
|
302
265
|
}
|
|
303
|
-
//
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
}
|
|
310
|
-
this.accessory.addService(temperatureService);
|
|
311
|
-
this.log.info("Enabling temperature sensor.");
|
|
266
|
+
// Acquire the service.
|
|
267
|
+
const service = this.acquireService(this.hap.Service.TemperatureSensor);
|
|
268
|
+
// Fail gracefully.
|
|
269
|
+
if (!service) {
|
|
270
|
+
this.log.error("Unable to add humidity sensor.");
|
|
271
|
+
return false;
|
|
312
272
|
}
|
|
313
273
|
// Retrieve the current temperature when requested.
|
|
314
|
-
|
|
274
|
+
service.getCharacteristic(this.hap.Characteristic.CurrentTemperature)?.onGet(() => {
|
|
315
275
|
return this.temperature < 0 ? 0 : this.temperature;
|
|
316
276
|
});
|
|
317
|
-
// Initialize our name.
|
|
318
|
-
temperatureService.displayName = this.accessoryName;
|
|
319
|
-
temperatureService.updateCharacteristic(this.hap.Characteristic.Name, this.accessoryName);
|
|
320
277
|
// Update the sensor.
|
|
321
|
-
|
|
278
|
+
service.updateCharacteristic(this.hap.Characteristic.CurrentTemperature, this.temperature < 0 ? 0 : this.temperature);
|
|
322
279
|
// Update the state characteristics.
|
|
323
|
-
this.configureStateCharacteristics(
|
|
280
|
+
this.configureStateCharacteristics(service);
|
|
324
281
|
return true;
|
|
325
282
|
}
|
|
326
283
|
// Configure the active connection status in HomeKit.
|
|
@@ -337,13 +294,9 @@ export class ProtectSensor extends ProtectDevice {
|
|
|
337
294
|
updateBatteryStatus() {
|
|
338
295
|
// Find the battery service, if it exists.
|
|
339
296
|
const batteryService = this.accessory.getService(this.hap.Service.Battery);
|
|
340
|
-
// We don't have the battery service, we're done.
|
|
341
|
-
if (!batteryService) {
|
|
342
|
-
return false;
|
|
343
|
-
}
|
|
344
297
|
// Update the battery status.
|
|
345
|
-
batteryService
|
|
346
|
-
batteryService
|
|
298
|
+
batteryService?.updateCharacteristic(this.hap.Characteristic.BatteryLevel, this.ufp.batteryStatus?.percentage ?? 0);
|
|
299
|
+
batteryService?.updateCharacteristic(this.hap.Characteristic.StatusLowBattery, this.ufp.batteryStatus?.isLow);
|
|
347
300
|
return true;
|
|
348
301
|
}
|
|
349
302
|
// Configure the tamper status in HomeKit.
|
|
@@ -371,7 +324,7 @@ export class ProtectSensor extends ProtectDevice {
|
|
|
371
324
|
// Save the state change and publish to MQTT.
|
|
372
325
|
if (value !== this.lastAlarm) {
|
|
373
326
|
this.lastAlarm = value;
|
|
374
|
-
this.
|
|
327
|
+
this.publish("alarm", value.toString());
|
|
375
328
|
this.log.info("Alarm %sdetected.", value ? "" : "no longer ");
|
|
376
329
|
}
|
|
377
330
|
return value;
|
|
@@ -385,7 +338,7 @@ export class ProtectSensor extends ProtectDevice {
|
|
|
385
338
|
// Save the state change and publish to MQTT.
|
|
386
339
|
if (this.ufp.isOpened !== this.lastContact) {
|
|
387
340
|
this.lastContact = this.ufp.isOpened;
|
|
388
|
-
this.
|
|
341
|
+
this.publish("contact", this.ufp.isOpened.toString());
|
|
389
342
|
}
|
|
390
343
|
return this.ufp.isOpened;
|
|
391
344
|
}
|
|
@@ -405,7 +358,7 @@ export class ProtectSensor extends ProtectDevice {
|
|
|
405
358
|
// Save the state change and publish to MQTT.
|
|
406
359
|
if (value !== this.lastLeak) {
|
|
407
360
|
this.lastLeak = value;
|
|
408
|
-
this.
|
|
361
|
+
this.publish("leak", value.toString());
|
|
409
362
|
this.log.info("Leak %sdetected.", value ? "" : "no longer ");
|
|
410
363
|
}
|
|
411
364
|
return value;
|
|
@@ -416,22 +369,22 @@ export class ProtectSensor extends ProtectDevice {
|
|
|
416
369
|
}
|
|
417
370
|
// Configure MQTT capabilities for sensors.
|
|
418
371
|
configureMqtt() {
|
|
419
|
-
this.
|
|
372
|
+
this.subscribeGet("alarm", "alarm detected", () => {
|
|
420
373
|
return this.alarmDetected.toString();
|
|
421
374
|
});
|
|
422
|
-
this.
|
|
375
|
+
this.subscribeGet("ambientlight", "ambient light", () => {
|
|
423
376
|
return this.ambientLight.toString();
|
|
424
377
|
});
|
|
425
|
-
this.
|
|
378
|
+
this.subscribeGet("contact", "contact sensor", () => {
|
|
426
379
|
return this.contact.toString();
|
|
427
380
|
});
|
|
428
|
-
this.
|
|
381
|
+
this.subscribeGet("humidity", "humidity", () => {
|
|
429
382
|
return this.humidity.toString();
|
|
430
383
|
});
|
|
431
|
-
this.
|
|
384
|
+
this.subscribeGet("leak", "leak detected", () => {
|
|
432
385
|
return this.leakDetected.toString();
|
|
433
386
|
});
|
|
434
|
-
this.
|
|
387
|
+
this.subscribeGet("temperature", "temperature", () => {
|
|
435
388
|
return this.temperature.toString();
|
|
436
389
|
});
|
|
437
390
|
}
|
|
@@ -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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"}
|