homebridge-adt-pulse 3.0.0-beta.12 → 3.0.0-beta.14

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,43 +1,14 @@
1
1
  import axios from 'axios';
2
- import _ from 'lodash';
3
2
  import { serializeError } from 'serialize-error';
3
+ import { doSubmitHandlerRelativeUrlItems, doSubmitHandlerUrlParamsArmItems, doSubmitHandlerUrlParamsArmStateItems, doSubmitHandlerUrlParamsHrefItems, gatewayInformationStatusItems, orbSecurityButtonButtonTextItems, orbSecurityButtonLoadingTextItems, orbSecurityButtonRelativeUrlItems, orbSecurityButtonUrlParamsArmItems, orbSecurityButtonUrlParamsArmStateItems, orbSecurityButtonUrlParamsHrefItems, panelInformationStatusItems, portalVersionItems, sensorInformationDeviceTypeItems, sensorInformationStatusItems, sensorStatusIconItems, sensorStatusStatusItems, } from './items.js';
4
4
  import { debugLog, isPluginOutdated, removePersonalIdentifiableInformation, stackTracer, } from './utility.js';
5
5
  export async function detectedNewDoSubmitHandlers(handlers, logger, debugMode) {
6
- const knownRelativeUrls = [
7
- '16.0.0-131',
8
- '17.0.0-69',
9
- '18.0.0-78',
10
- '19.0.0-89',
11
- '20.0.0-221',
12
- '20.0.0-244',
13
- '21.0.0-344',
14
- '21.0.0-353',
15
- '21.0.0-354',
16
- '22.0.0-233',
17
- '23.0.0-99',
18
- '24.0.0-117',
19
- '25.0.0-21',
20
- '26.0.0-32',
21
- '27.0.0-140',
22
- ].map((version) => `/myhome/${version}/quickcontrol/serv/RunRRACommand`);
23
- const knownUrlParamsArm = [
24
- 'away',
25
- 'night',
26
- 'stay',
27
- ];
28
- const knownUrlParamsArmState = [
29
- 'forcearm',
30
- ];
31
- const knownUrlParamsHref = [
32
- 'rest/adt/ui/client/security/setForceArm',
33
- 'rest/adt/ui/client/security/setCancelProtest',
34
- ];
35
- const detectedNewHandlers = handlers.filter((handler) => (!knownRelativeUrls.includes(handler.relativeUrl)
6
+ const detectedNewHandlers = handlers.filter((handler) => (!doSubmitHandlerRelativeUrlItems.includes(handler.relativeUrl)
36
7
  || (handler.urlParams.arm !== null
37
- && !knownUrlParamsArm.includes(handler.urlParams.arm))
8
+ && !doSubmitHandlerUrlParamsArmItems.includes(handler.urlParams.arm))
38
9
  || (handler.urlParams.armState !== null
39
- && !knownUrlParamsArmState.includes(handler.urlParams.armState))
40
- || !knownUrlParamsHref.includes(handler.urlParams.href)));
10
+ && !doSubmitHandlerUrlParamsArmStateItems.includes(handler.urlParams.armState))
11
+ || !doSubmitHandlerUrlParamsHrefItems.includes(handler.urlParams.href)));
41
12
  if (detectedNewHandlers.length > 0) {
42
13
  const cleanedData = removePersonalIdentifiableInformation(detectedNewHandlers);
43
14
  try {
@@ -57,6 +28,7 @@ export async function detectedNewDoSubmitHandlers(handlers, logger, debugMode) {
57
28
  debugLog(logger, 'detect.ts / detectedNewDoSubmitHandlers()', 'error', 'Failed to check if plugin is outdated');
58
29
  stackTracer('serialize-error', serializeError(error));
59
30
  }
31
+ return false;
60
32
  }
61
33
  if (logger !== null) {
62
34
  logger.warn('Plugin has detected new do submit handlers. Notifying plugin author about this discovery ...');
@@ -76,24 +48,20 @@ export async function detectedNewDoSubmitHandlers(handlers, logger, debugMode) {
76
48
  'X-Title': 'Detected new do submit handlers',
77
49
  },
78
50
  });
51
+ return true;
79
52
  }
80
53
  catch (error) {
81
54
  if (debugMode === true) {
82
55
  debugLog(logger, 'detect.ts / detectedNewDoSubmitHandlers()', 'error', 'Failed to notify plugin author about the new do submit handlers');
83
56
  stackTracer('serialize-error', serializeError(error));
84
57
  }
58
+ return false;
85
59
  }
86
- return true;
87
60
  }
88
61
  return false;
89
62
  }
90
63
  export async function detectedNewGatewayInformation(device, logger, debugMode) {
91
- const knownStatuses = [
92
- 'Offline',
93
- 'Online',
94
- 'Status Unknown',
95
- ];
96
- const detectedNewStatus = (device.status !== null && !knownStatuses.includes(device.status));
64
+ const detectedNewStatus = (device.status !== null && !gatewayInformationStatusItems.includes(device.status));
97
65
  if (detectedNewStatus) {
98
66
  const cleanedData = removePersonalIdentifiableInformation(device);
99
67
  try {
@@ -113,6 +81,7 @@ export async function detectedNewGatewayInformation(device, logger, debugMode) {
113
81
  debugLog(logger, 'detect.ts / detectedNewGatewayInformation()', 'error', 'Failed to check if plugin is outdated');
114
82
  stackTracer('serialize-error', serializeError(error));
115
83
  }
84
+ return false;
116
85
  }
117
86
  if (logger !== null) {
118
87
  logger.warn('Plugin has detected new gateway information. Notifying plugin author about this discovery ...');
@@ -132,64 +101,30 @@ export async function detectedNewGatewayInformation(device, logger, debugMode) {
132
101
  'X-Title': 'Detected new gateway information',
133
102
  },
134
103
  });
104
+ return true;
135
105
  }
136
106
  catch (error) {
137
107
  if (debugMode === true) {
138
108
  debugLog(logger, 'detect.ts / detectedNewGatewayInformation()', 'error', 'Failed to notify plugin author about the new gateway information');
139
109
  stackTracer('serialize-error', serializeError(error));
140
110
  }
111
+ return false;
141
112
  }
142
- return true;
143
113
  }
144
114
  return false;
145
115
  }
146
116
  export async function detectedNewOrbSecurityButtons(buttons, logger, debugMode) {
147
- const knownButtonText = [
148
- 'Arm Away',
149
- 'Arm Night',
150
- 'Arm Stay',
151
- 'Clear Alarm',
152
- 'Disarm',
153
- ];
154
- const knownLoadingText = [
155
- 'Arming Away',
156
- 'Arming Night',
157
- 'Arming Stay',
158
- 'Disarming',
159
- ];
160
- const knownRelativeUrl = [
161
- 'quickcontrol/armDisarm.jsp',
162
- ];
163
- const knownUrlParamsArm = [
164
- 'away',
165
- 'night',
166
- 'off',
167
- 'stay',
168
- ];
169
- const knownUrlParamsArmState = [
170
- 'away',
171
- 'disarmed',
172
- 'disarmed_with_alarm',
173
- 'disarmed+with+alarm',
174
- 'night',
175
- 'night+stay',
176
- 'off',
177
- 'stay',
178
- ];
179
- const knownUrlParamsHref = [
180
- 'rest/adt/ui/client/security/setArmState',
181
- ];
182
117
  const detectedNewButtons = buttons.filter((button) => ((!button.buttonDisabled
183
118
  && ((button.buttonText !== null
184
- && !knownButtonText.includes(button.buttonText))
185
- || !knownLoadingText.includes(button.loadingText)
186
- || !knownRelativeUrl.includes(button.relativeUrl)
187
- || !knownUrlParamsArm.includes(button.urlParams.arm)
188
- || !knownUrlParamsArmState.includes(button.urlParams.armState)
189
- || !knownUrlParamsHref.includes(button.urlParams.href)))
119
+ && !orbSecurityButtonButtonTextItems.includes(button.buttonText))
120
+ || !orbSecurityButtonLoadingTextItems.includes(button.loadingText)
121
+ || !orbSecurityButtonRelativeUrlItems.includes(button.relativeUrl)
122
+ || !orbSecurityButtonUrlParamsArmItems.includes(button.urlParams.arm)
123
+ || !orbSecurityButtonUrlParamsArmStateItems.includes(button.urlParams.armState)
124
+ || !orbSecurityButtonUrlParamsHrefItems.includes(button.urlParams.href)))
190
125
  || (button.buttonDisabled
191
126
  && (button.buttonText !== null
192
- && !knownLoadingText.includes(button.buttonText)))));
127
+ && !orbSecurityButtonLoadingTextItems.includes(button.buttonText)))));
193
128
  if (detectedNewButtons.length > 0) {
194
129
  const cleanedData = removePersonalIdentifiableInformation(detectedNewButtons);
195
130
  try {
@@ -209,6 +144,7 @@ export async function detectedNewOrbSecurityButtons(buttons, logger, debugMode)
209
144
  debugLog(logger, 'detect.ts / detectedNewOrbSecurityButtons()', 'error', 'Failed to check if plugin is outdated');
210
145
  stackTracer('serialize-error', serializeError(error));
211
146
  }
147
+ return false;
212
148
  }
213
149
  if (logger !== null) {
214
150
  logger.warn('Plugin has detected new orb security buttons. Notifying plugin author about this discovery ...');
@@ -228,23 +164,20 @@ export async function detectedNewOrbSecurityButtons(buttons, logger, debugMode)
228
164
  'X-Title': 'Detected new orb security buttons',
229
165
  },
230
166
  });
167
+ return true;
231
168
  }
232
169
  catch (error) {
233
170
  if (debugMode === true) {
234
171
  debugLog(logger, 'detect.ts / detectedNewOrbSecurityButtons()', 'error', 'Failed to notify plugin author about the new orb security buttons');
235
172
  stackTracer('serialize-error', serializeError(error));
236
173
  }
174
+ return false;
237
175
  }
238
- return true;
239
176
  }
240
177
  return false;
241
178
  }
242
179
  export async function detectedNewPanelInformation(device, logger, debugMode) {
243
- const knownStatuses = [
244
- 'Online',
245
- 'Status Unknown',
246
- ];
247
- const detectedNewStatus = (device.status !== null && !knownStatuses.includes(device.status));
180
+ const detectedNewStatus = (device.status !== null && !panelInformationStatusItems.includes(device.status));
248
181
  if (detectedNewStatus) {
249
182
  const cleanedData = removePersonalIdentifiableInformation(device);
250
183
  try {
@@ -264,6 +197,7 @@ export async function detectedNewPanelInformation(device, logger, debugMode) {
264
197
  debugLog(logger, 'detect.ts / detectedNewPanelInformation()', 'error', 'Failed to check if plugin is outdated');
265
198
  stackTracer('serialize-error', serializeError(error));
266
199
  }
200
+ return false;
267
201
  }
268
202
  if (logger !== null) {
269
203
  logger.warn('Plugin has detected new panel information. Notifying plugin author about this discovery ...');
@@ -283,44 +217,21 @@ export async function detectedNewPanelInformation(device, logger, debugMode) {
283
217
  'X-Title': 'Detected new panel information',
284
218
  },
285
219
  });
220
+ return true;
286
221
  }
287
222
  catch (error) {
288
223
  if (debugMode === true) {
289
224
  debugLog(logger, 'detect.ts / detectedNewPanelInformation()', 'error', 'Failed to notify plugin author about the new panel information');
290
225
  stackTracer('serialize-error', serializeError(error));
291
226
  }
227
+ return false;
292
228
  }
293
- return true;
294
229
  }
295
230
  return false;
296
231
  }
297
232
  export async function detectedNewPanelStatus(summary, logger, debugMode) {
298
- const knownStates = [
299
- 'Armed Away',
300
- 'Armed Night',
301
- 'Armed Stay',
302
- 'Disarmed',
303
- 'Status Unavailable',
304
- ];
305
- const knownStatuses = [
306
- '1 Sensor Open',
307
- ..._.range(256).map((_value, index) => `${index + 1} Sensors Open`),
308
- 'All Quiet',
309
- 'BURGLARY ALARM',
310
- 'Carbon Monoxide Alarm',
311
- 'FIRE ALARM',
312
- 'Motion',
313
- 'Sensor Bypassed',
314
- 'Sensor Problem',
315
- 'Sensors Bypassed',
316
- 'Sensors Tripped',
317
- 'Sensor Tripped',
318
- 'Uncleared Alarm',
319
- 'WATER ALARM',
320
- ];
321
- const detectedNewState = (summary.state !== null && !knownStates.includes(summary.state));
322
- const detectedNewStatus = (summary.status !== null && !knownStatuses.includes(summary.status));
323
- if (detectedNewState || detectedNewStatus) {
233
+ const detectedUnknownPieces = summary.rawData.unknownPieces.length > 0;
234
+ if (detectedUnknownPieces) {
324
235
  const cleanedData = removePersonalIdentifiableInformation(summary);
325
236
  try {
326
237
  const outdated = await isPluginOutdated();
@@ -339,6 +250,7 @@ export async function detectedNewPanelStatus(summary, logger, debugMode) {
339
250
  debugLog(logger, 'detect.ts / detectedNewPanelStatus()', 'error', 'Failed to check if plugin is outdated');
340
251
  stackTracer('serialize-error', serializeError(error));
341
252
  }
253
+ return false;
342
254
  }
343
255
  if (logger !== null) {
344
256
  logger.warn('Plugin has detected a new panel state and/or status. Notifying plugin author about this discovery ...');
@@ -358,36 +270,20 @@ export async function detectedNewPanelStatus(summary, logger, debugMode) {
358
270
  'X-Title': 'Detected a new panel state and/or status',
359
271
  },
360
272
  });
273
+ return true;
361
274
  }
362
275
  catch (error) {
363
276
  if (debugMode === true) {
364
277
  debugLog(logger, 'detect.ts / detectedNewPanelStatus()', 'error', 'Failed to notify plugin author about the new panel state and/or status');
365
278
  stackTracer('serialize-error', serializeError(error));
366
279
  }
280
+ return false;
367
281
  }
368
- return true;
369
282
  }
370
283
  return false;
371
284
  }
372
285
  export async function detectedNewPortalVersion(version, logger, debugMode) {
373
- const knownVersions = [
374
- '16.0.0-131',
375
- '17.0.0-69',
376
- '18.0.0-78',
377
- '19.0.0-89',
378
- '20.0.0-221',
379
- '20.0.0-244',
380
- '21.0.0-344',
381
- '21.0.0-353',
382
- '21.0.0-354',
383
- '22.0.0-233',
384
- '23.0.0-99',
385
- '24.0.0-117',
386
- '25.0.0-21',
387
- '26.0.0-32',
388
- '27.0.0-140',
389
- ];
390
- const detectedNewVersion = (version.version !== null && !knownVersions.includes(version.version));
286
+ const detectedNewVersion = (version.version !== null && !portalVersionItems.includes(version.version));
391
287
  if (detectedNewVersion) {
392
288
  const cleanedData = removePersonalIdentifiableInformation(version);
393
289
  try {
@@ -407,6 +303,7 @@ export async function detectedNewPortalVersion(version, logger, debugMode) {
407
303
  debugLog(logger, 'detect.ts / detectedNewPortalVersion()', 'error', 'Failed to check if plugin is outdated');
408
304
  stackTracer('serialize-error', serializeError(error));
409
305
  }
306
+ return false;
410
307
  }
411
308
  if (logger !== null) {
412
309
  logger.warn('Plugin has detected a new portal version. Notifying plugin author about this discovery ...');
@@ -426,42 +323,21 @@ export async function detectedNewPortalVersion(version, logger, debugMode) {
426
323
  'X-Title': 'Detected a new portal version',
427
324
  },
428
325
  });
326
+ return true;
429
327
  }
430
328
  catch (error) {
431
329
  if (debugMode === true) {
432
330
  debugLog(logger, 'detect.ts / detectedNewPortalVersion()', 'error', 'Failed to notify plugin author about the new portal version');
433
331
  stackTracer('serialize-error', serializeError(error));
434
332
  }
333
+ return false;
435
334
  }
436
- return true;
437
335
  }
438
336
  return false;
439
337
  }
440
338
  export async function detectedNewSensorsInformation(sensors, logger, debugMode) {
441
- const knownDeviceTypes = [
442
- 'Audible Panic Button/Pendant',
443
- 'Carbon Monoxide Detector',
444
- 'Door/Window Sensor',
445
- 'Door Sensor',
446
- 'Fire (Smoke/Heat) Detector',
447
- 'Glass Break Detector',
448
- 'Keypad/Touchpad',
449
- 'Motion Sensor',
450
- 'Motion Sensor (Notable Events Only)',
451
- 'Shock Sensor',
452
- 'Silent Panic Button/Pendant',
453
- 'System/Supervisory',
454
- 'Temperature Sensor',
455
- 'Unknown Device Type',
456
- 'Water/Flood Sensor',
457
- 'Window Sensor',
458
- ];
459
- const knownStatuses = [
460
- 'Online',
461
- 'Status Unknown',
462
- ];
463
- const detectedNewInformation = sensors.filter((sensor) => (!knownDeviceTypes.includes(sensor.deviceType)
464
- || !knownStatuses.includes(sensor.status)));
339
+ const detectedNewInformation = sensors.filter((sensor) => (!sensorInformationDeviceTypeItems.includes(sensor.deviceType)
340
+ || !sensorInformationStatusItems.includes(sensor.status)));
465
341
  if (detectedNewInformation.length > 0) {
466
342
  const cleanedData = removePersonalIdentifiableInformation(detectedNewInformation);
467
343
  try {
@@ -481,6 +357,7 @@ export async function detectedNewSensorsInformation(sensors, logger, debugMode)
481
357
  debugLog(logger, 'detect.ts / detectedNewSensorsInformation()', 'error', 'Failed to check if plugin is outdated');
482
358
  stackTracer('serialize-error', serializeError(error));
483
359
  }
360
+ return false;
484
361
  }
485
362
  if (logger !== null) {
486
363
  logger.warn('Plugin has detected new sensors information. Notifying plugin author about this discovery ...');
@@ -500,48 +377,20 @@ export async function detectedNewSensorsInformation(sensors, logger, debugMode)
500
377
  'X-Title': 'Detected new sensors information',
501
378
  },
502
379
  });
380
+ return true;
503
381
  }
504
382
  catch (error) {
505
383
  if (debugMode === true) {
506
384
  debugLog(logger, 'detect.ts / detectedNewSensorsInformation()', 'error', 'Failed to notify plugin author about the new sensors information');
507
385
  stackTracer('serialize-error', serializeError(error));
508
386
  }
387
+ return false;
509
388
  }
510
- return true;
511
389
  }
512
390
  return false;
513
391
  }
514
392
  export async function detectedNewSensorsStatus(sensors, logger, debugMode) {
515
- const knownIcons = [
516
- 'devStatAlarm',
517
- 'devStatLowBatt',
518
- 'devStatMotion',
519
- 'devStatOK',
520
- 'devStatOpen',
521
- 'devStatTamper',
522
- 'devStatUnknown',
523
- ];
524
- const knownStatuses = [
525
- 'ALARM, Closed',
526
- 'ALARM, Okay',
527
- 'ALARM, Open',
528
- 'Bypassed, Closed',
529
- 'Bypassed, Open',
530
- 'Bypassed, Tripped',
531
- 'Closed',
532
- 'Low Battery, Motion',
533
- 'Low Battery, No Motion',
534
- 'Motion',
535
- 'No Motion',
536
- 'Okay',
537
- 'Open',
538
- 'Tripped',
539
- 'Trouble, Open',
540
- 'Trouble, Closed',
541
- 'Unknown',
542
- ];
543
- const detectedNewStatuses = sensors.filter((sensor) => (!knownIcons.includes(sensor.icon)
544
- || !knownStatuses.includes(sensor.status)));
393
+ const detectedNewStatuses = sensors.filter((sensor) => !sensorStatusIconItems.includes(sensor.icon) || sensor.statuses.some((sensorStatus) => !sensorStatusStatusItems.includes(sensorStatus)));
545
394
  if (detectedNewStatuses.length > 0) {
546
395
  const cleanedData = removePersonalIdentifiableInformation(detectedNewStatuses);
547
396
  try {
@@ -561,6 +410,7 @@ export async function detectedNewSensorsStatus(sensors, logger, debugMode) {
561
410
  debugLog(logger, 'detect.ts / detectedNewSensorsStatus()', 'error', 'Failed to check if plugin is outdated');
562
411
  stackTracer('serialize-error', serializeError(error));
563
412
  }
413
+ return false;
564
414
  }
565
415
  if (logger !== null) {
566
416
  logger.warn('Plugin has detected new sensors status. Notifying plugin author about this discovery ...');
@@ -580,15 +430,114 @@ export async function detectedNewSensorsStatus(sensors, logger, debugMode) {
580
430
  'X-Title': 'Detected new sensors status',
581
431
  },
582
432
  });
433
+ return true;
583
434
  }
584
435
  catch (error) {
585
436
  if (debugMode === true) {
586
437
  debugLog(logger, 'detect.ts / detectedNewSensorsStatus()', 'error', 'Failed to notify plugin author about the new sensors status');
587
438
  stackTracer('serialize-error', serializeError(error));
588
439
  }
440
+ return false;
589
441
  }
590
- return true;
591
442
  }
592
443
  return false;
593
444
  }
445
+ export async function detectedUnknownPanelAction(status, logger, debugMode) {
446
+ const cleanedData = removePersonalIdentifiableInformation(status);
447
+ try {
448
+ const outdated = await isPluginOutdated();
449
+ if (outdated) {
450
+ if (logger !== null) {
451
+ logger.warn('Plugin has detected unknown panel action. You are running an older plugin version, please update soon.');
452
+ }
453
+ if (debugMode) {
454
+ debugLog(logger, 'detect.ts / detectedUnknownPanelAction()', 'warn', 'Plugin has detected unknown panel action. You are running an older plugin version, please update soon');
455
+ }
456
+ return false;
457
+ }
458
+ }
459
+ catch (error) {
460
+ if (debugMode === true) {
461
+ debugLog(logger, 'detect.ts / detectedUnknownPanelAction()', 'error', 'Failed to check if plugin is outdated');
462
+ stackTracer('serialize-error', serializeError(error));
463
+ }
464
+ return false;
465
+ }
466
+ if (logger !== null) {
467
+ logger.warn('Plugin has detected unknown panel action. Notifying plugin author about this discovery ...');
468
+ }
469
+ if (debugMode) {
470
+ debugLog(logger, 'detect.ts / detectedUnknownPanelAction()', 'warn', 'Plugin has detected unknown panel action. Notifying plugin author about this discovery');
471
+ }
472
+ stackTracer('detect-content', cleanedData);
473
+ try {
474
+ await axios.post('https://fs65kt4c5xf8.ntfy.mrjackyliang.com', [
475
+ 'Please update the plugin as soon as possible.',
476
+ JSON.stringify(cleanedData, null, 2),
477
+ ].join('\n\n'), {
478
+ family: 4,
479
+ headers: {
480
+ 'User-Agent': 'homebridge-adt-pulse',
481
+ 'X-Title': 'Detected unknown panel action',
482
+ },
483
+ });
484
+ return true;
485
+ }
486
+ catch (error) {
487
+ if (debugMode === true) {
488
+ debugLog(logger, 'detect.ts / detectedUnknownPanelAction()', 'error', 'Failed to notify plugin author about the unknown panel action');
489
+ stackTracer('serialize-error', serializeError(error));
490
+ }
491
+ return false;
492
+ }
493
+ }
494
+ export async function detectedUnknownSensorAction(status, logger, debugMode) {
495
+ const cleanedData = removePersonalIdentifiableInformation(status);
496
+ try {
497
+ const outdated = await isPluginOutdated();
498
+ if (outdated) {
499
+ if (logger !== null) {
500
+ logger.warn('Plugin has detected unknown sensor action. You are running an older plugin version, please update soon.');
501
+ }
502
+ if (debugMode) {
503
+ debugLog(logger, 'detect.ts / detectedUnknownSensorAction()', 'warn', 'Plugin has detected unknown sensor action. You are running an older plugin version, please update soon');
504
+ }
505
+ return false;
506
+ }
507
+ }
508
+ catch (error) {
509
+ if (debugMode === true) {
510
+ debugLog(logger, 'detect.ts / detectedUnknownSensorAction()', 'error', 'Failed to check if plugin is outdated');
511
+ stackTracer('serialize-error', serializeError(error));
512
+ }
513
+ return false;
514
+ }
515
+ if (logger !== null) {
516
+ logger.warn('Plugin has detected unknown sensor action. Notifying plugin author about this discovery ...');
517
+ }
518
+ if (debugMode) {
519
+ debugLog(logger, 'detect.ts / detectedUnknownSensorAction()', 'warn', 'Plugin has detected unknown sensor action. Notifying plugin author about this discovery');
520
+ }
521
+ stackTracer('detect-content', cleanedData);
522
+ try {
523
+ await axios.post('https://fs65kt4c5xf8.ntfy.mrjackyliang.com', [
524
+ 'Please update the plugin as soon as possible.',
525
+ JSON.stringify(cleanedData, null, 2),
526
+ ].join('\n\n'), {
527
+ family: 4,
528
+ headers: {
529
+ 'User-Agent': 'homebridge-adt-pulse',
530
+ 'X-Title': 'Detected unknown sensor action',
531
+ },
532
+ });
533
+ return true;
534
+ }
535
+ catch (error) {
536
+ if (debugMode === true) {
537
+ debugLog(logger, 'detect.ts / detectedUnknownSensorAction()', 'error', 'Failed to notify plugin author about the unknown sensor action');
538
+ stackTracer('serialize-error', serializeError(error));
539
+ }
540
+ return false;
541
+ }
542
+ }
594
543
  //# sourceMappingURL=detect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/lib/detect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/lib/detect.ts"],"names":[],"mappings":"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"}