homebridge-adt-pulse 3.0.0-beta.9 → 3.0.1

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.
@@ -3,16 +3,61 @@ import { JSDOM } from 'jsdom';
3
3
  import latestVersion from 'latest-version';
4
4
  import _ from 'lodash';
5
5
  import { createHash } from 'node:crypto';
6
+ import { createRequire } from 'node:module';
6
7
  import os from 'node:os';
7
- import { env } from 'node:process';
8
8
  import util from 'node:util';
9
- import { characterBackslashForwardSlash, characterHtmlLineBreak, characterWhitespace, functionDoSubmit, functionGoToUrl, functionSetArmState, paramSat, textOrbSensorZone, textOrbTextSummary, textSyncCode, } from './regex.js';
9
+ import { panelStatusNoteItems, panelStatusStateItems, panelStatusStatusItems } from './items.js';
10
+ import { characterBackslashForwardSlash, characterHtmlLineBreak, characterWhitespace, functionDoSubmit, functionGoToUrl, functionSetArmState, paramSat, textOrbSensorZone, textOrbTextSummarySections, textSyncCode, } from './regex.js';
10
11
  export function clearHtmlLineBreak(data) {
11
12
  return data.replace(characterHtmlLineBreak, ' ').trim();
12
13
  }
13
14
  export function clearWhitespace(data) {
14
15
  return data.replace(characterWhitespace, ' ').trim();
15
16
  }
17
+ export function condensePanelStates(characteristic, panelStates) {
18
+ let condensed;
19
+ switch (true) {
20
+ case panelStates.includes('Armed Away'):
21
+ condensed = {
22
+ armValue: 'away',
23
+ characteristicValue: {
24
+ current: characteristic.SecuritySystemCurrentState.AWAY_ARM,
25
+ target: characteristic.SecuritySystemTargetState.AWAY_ARM,
26
+ },
27
+ };
28
+ break;
29
+ case panelStates.includes('Armed Night'):
30
+ condensed = {
31
+ armValue: 'night',
32
+ characteristicValue: {
33
+ current: characteristic.SecuritySystemCurrentState.NIGHT_ARM,
34
+ target: characteristic.SecuritySystemTargetState.NIGHT_ARM,
35
+ },
36
+ };
37
+ break;
38
+ case panelStates.includes('Armed Stay'):
39
+ condensed = {
40
+ armValue: 'stay',
41
+ characteristicValue: {
42
+ current: characteristic.SecuritySystemCurrentState.STAY_ARM,
43
+ target: characteristic.SecuritySystemTargetState.STAY_ARM,
44
+ },
45
+ };
46
+ break;
47
+ case panelStates.includes('Disarmed'):
48
+ condensed = {
49
+ armValue: 'off',
50
+ characteristicValue: {
51
+ current: characteristic.SecuritySystemCurrentState.DISARMED,
52
+ target: characteristic.SecuritySystemTargetState.DISARM,
53
+ },
54
+ };
55
+ break;
56
+ default:
57
+ break;
58
+ }
59
+ return condensed;
60
+ }
16
61
  export function condenseSensorType(sensorType) {
17
62
  let condensed;
18
63
  switch (sensorType) {
@@ -33,16 +78,15 @@ export function condenseSensorType(sensorType) {
33
78
  case 'Glass Break Detector':
34
79
  condensed = 'glass';
35
80
  break;
36
- case 'Keypad/Touchpad':
37
- condensed = 'keypad';
81
+ case 'Heat (Rate-of-Rise) Detector':
82
+ condensed = 'heat';
38
83
  break;
39
84
  case 'Motion Sensor':
40
85
  case 'Motion Sensor (Notable Events Only)':
41
86
  condensed = 'motion';
42
87
  break;
43
- case 'Audible Panic Button/Pendant':
44
- case 'Silent Panic Button/Pendant':
45
- condensed = 'panic';
88
+ case 'Shock Sensor':
89
+ condensed = 'shock';
46
90
  break;
47
91
  case 'Temperature Sensor':
48
92
  condensed = 'temperature';
@@ -52,6 +96,28 @@ export function condenseSensorType(sensorType) {
52
96
  }
53
97
  return condensed;
54
98
  }
99
+ export function convertPanelCharacteristicValue(mode, characteristic, value) {
100
+ switch (true) {
101
+ case mode === 'current-to-target' && value === characteristic.SecuritySystemCurrentState.AWAY_ARM:
102
+ return characteristic.SecuritySystemTargetState.AWAY_ARM;
103
+ case mode === 'current-to-target' && value === characteristic.SecuritySystemCurrentState.STAY_ARM:
104
+ return characteristic.SecuritySystemTargetState.STAY_ARM;
105
+ case mode === 'current-to-target' && value === characteristic.SecuritySystemCurrentState.NIGHT_ARM:
106
+ return characteristic.SecuritySystemTargetState.NIGHT_ARM;
107
+ case mode === 'current-to-target' && value === characteristic.SecuritySystemCurrentState.DISARMED:
108
+ return characteristic.SecuritySystemTargetState.DISARM;
109
+ case mode === 'target-to-current' && value === characteristic.SecuritySystemTargetState.AWAY_ARM:
110
+ return characteristic.SecuritySystemCurrentState.AWAY_ARM;
111
+ case mode === 'target-to-current' && value === characteristic.SecuritySystemTargetState.STAY_ARM:
112
+ return characteristic.SecuritySystemCurrentState.STAY_ARM;
113
+ case mode === 'target-to-current' && value === characteristic.SecuritySystemTargetState.NIGHT_ARM:
114
+ return characteristic.SecuritySystemCurrentState.NIGHT_ARM;
115
+ case mode === 'target-to-current' && value === characteristic.SecuritySystemTargetState.DISARM:
116
+ return characteristic.SecuritySystemCurrentState.DISARMED;
117
+ default:
118
+ return undefined;
119
+ }
120
+ }
55
121
  export function debugLog(logger, caller, type, message) {
56
122
  const logMessage = chalk.reset(chalk.underline(caller), '-', message, '...');
57
123
  switch (type) {
@@ -117,7 +183,7 @@ export function fetchMissingSatCode(response) {
117
183
  }
118
184
  return null;
119
185
  }
120
- export function fetchTableCells(nodeElements, matchList, incrementFrom, incrementTo) {
186
+ export function fetchTableCells(nodeElements, matchItems, incrementFrom, incrementTo) {
121
187
  const matched = {};
122
188
  let newIncrementFrom = incrementFrom;
123
189
  let newIncrementTo = incrementTo;
@@ -134,7 +200,7 @@ export function fetchTableCells(nodeElements, matchList, incrementFrom, incremen
134
200
  }
135
201
  const currentNodeCleaned = clearWhitespace(currentNode);
136
202
  const collectedNodes = [];
137
- if (!matchList.includes(currentNodeCleaned)) {
203
+ if (!matchItems.includes(currentNodeCleaned)) {
138
204
  return;
139
205
  }
140
206
  for (let i = newIncrementFrom; i <= newIncrementTo; i += 1) {
@@ -176,9 +242,6 @@ export function findNullKeys(properties, parentKey = '') {
176
242
  });
177
243
  return found;
178
244
  }
179
- export function generateDeviceId(id) {
180
- return `adt-device-${id}`;
181
- }
182
245
  export function generateDynatracePCHeaderValue(mode) {
183
246
  const serverId = _.sample([1, 3, 5, 6]);
184
247
  const currentMillis = Date.now().toString();
@@ -188,6 +251,107 @@ export function generateDynatracePCHeaderValue(mode) {
188
251
  const randomAlphabet = _.range(32).map(() => _.sample('ABCDEFGHIJKLMNOPQRSTUVW')).join('');
189
252
  return `${serverId}$${slicedMillis}_${randomThreeDigit}h${randomTwoDigit}v${randomAlphabet}-0e0`;
190
253
  }
254
+ export function generateFakeReadyButtons(buttons, isCleanState, options) {
255
+ const readyButtons = [];
256
+ if (buttons.length === 1 && buttons[0].buttonText === 'Disarming') {
257
+ const displayedButtons = [
258
+ {
259
+ buttonText: 'Arm Away',
260
+ loadingText: 'Arming Away',
261
+ arm: 'away',
262
+ },
263
+ {
264
+ buttonText: 'Arm Stay',
265
+ loadingText: 'Arming Stay',
266
+ arm: 'stay',
267
+ },
268
+ ];
269
+ displayedButtons.forEach((displayedButton, displayedButtonIndex) => {
270
+ readyButtons.push({
271
+ buttonId: `security_button_${displayedButtonIndex}`,
272
+ buttonDisabled: false,
273
+ buttonIndex: displayedButtonIndex,
274
+ buttonText: displayedButton.buttonText,
275
+ changeAccessCode: false,
276
+ loadingText: displayedButton.loadingText,
277
+ relativeUrl: options.relativeUrl,
278
+ totalButtons: buttons.length,
279
+ urlParams: {
280
+ arm: displayedButton.arm,
281
+ armState: (isCleanState) ? 'off' : 'disarmed',
282
+ href: options.href,
283
+ sat: options.sat,
284
+ },
285
+ });
286
+ });
287
+ return readyButtons;
288
+ }
289
+ buttons.forEach((button, buttonIndex) => {
290
+ if (!button.buttonDisabled) {
291
+ readyButtons.push(button);
292
+ return;
293
+ }
294
+ switch (button.buttonText) {
295
+ case 'Arming Away':
296
+ readyButtons.push({
297
+ buttonId: button.buttonId,
298
+ buttonDisabled: false,
299
+ buttonIndex,
300
+ buttonText: 'Disarm',
301
+ changeAccessCode: false,
302
+ loadingText: 'Disarming',
303
+ relativeUrl: options.relativeUrl,
304
+ totalButtons: buttons.length,
305
+ urlParams: {
306
+ arm: 'off',
307
+ armState: (isCleanState) ? 'away' : 'away',
308
+ href: options.href,
309
+ sat: options.sat,
310
+ },
311
+ });
312
+ break;
313
+ case 'Arming Night':
314
+ readyButtons.push({
315
+ buttonId: button.buttonId,
316
+ buttonDisabled: false,
317
+ buttonIndex,
318
+ buttonText: 'Disarm',
319
+ changeAccessCode: false,
320
+ loadingText: 'Disarming',
321
+ relativeUrl: options.relativeUrl,
322
+ totalButtons: buttons.length,
323
+ urlParams: {
324
+ arm: 'off',
325
+ armState: (isCleanState) ? 'night' : 'night+stay',
326
+ href: options.href,
327
+ sat: options.sat,
328
+ },
329
+ });
330
+ break;
331
+ case 'Arming Stay':
332
+ readyButtons.push({
333
+ buttonId: button.buttonId,
334
+ buttonDisabled: false,
335
+ buttonIndex,
336
+ buttonText: 'Disarm',
337
+ changeAccessCode: false,
338
+ loadingText: 'Disarming',
339
+ relativeUrl: options.relativeUrl,
340
+ totalButtons: buttons.length,
341
+ urlParams: {
342
+ arm: 'off',
343
+ armState: (isCleanState) ? 'stay' : 'stay',
344
+ href: options.href,
345
+ sat: options.sat,
346
+ },
347
+ });
348
+ break;
349
+ default:
350
+ break;
351
+ }
352
+ });
353
+ return readyButtons;
354
+ }
191
355
  export function generateHash(data) {
192
356
  return createHash('sha512').update(data).digest('hex');
193
357
  }
@@ -201,16 +365,38 @@ export function getAccessoryCategory(deviceCategory) {
201
365
  return 11;
202
366
  case 'SENSOR':
203
367
  return 10;
368
+ case 'SWITCH':
369
+ return 8;
204
370
  default:
205
371
  return 1;
206
372
  }
207
373
  }
374
+ export function getDetectReportUrl() {
375
+ return 'https://7usev98x5actrwn6qb2m.ntfy.mrjackyliang.com';
376
+ }
377
+ export function getPackageVersion() {
378
+ const require = createRequire(import.meta.url);
379
+ const packageJson = require('../../../package.json');
380
+ return packageJson.version;
381
+ }
208
382
  export function getPluralForm(count, singular, plural) {
209
383
  if (count === 1) {
210
384
  return singular;
211
385
  }
212
386
  return plural;
213
387
  }
388
+ export function isEmptyOrbTextSummary(input) {
389
+ const match = {
390
+ panelStates: [],
391
+ panelStatuses: [],
392
+ panelNotes: [],
393
+ rawData: {
394
+ node: '',
395
+ unknownPieces: [],
396
+ },
397
+ };
398
+ return _.isEqual(match, input);
399
+ }
214
400
  export function isForwardSlashOS() {
215
401
  const currentOS = os.platform();
216
402
  return [
@@ -225,8 +411,17 @@ export function isForwardSlashOS() {
225
411
  'netbsd',
226
412
  ].includes(currentOS);
227
413
  }
414
+ export function isPanelAlarmActive(panelStatuses) {
415
+ return (panelStatuses.includes('BURGLARY ALARM')
416
+ || panelStatuses.includes('Carbon Monoxide Alarm')
417
+ || panelStatuses.includes('FIRE ALARM')
418
+ || panelStatuses.includes('Sensor Problem')
419
+ || panelStatuses.includes('Sensor Problems')
420
+ || panelStatuses.includes('Uncleared Alarm')
421
+ || panelStatuses.includes('WATER ALARM'));
422
+ }
228
423
  export async function isPluginOutdated() {
229
- const currentVersion = env.npm_package_version;
424
+ const currentVersion = getPackageVersion();
230
425
  if (currentVersion === undefined) {
231
426
  return false;
232
427
  }
@@ -236,7 +431,7 @@ export async function isPluginOutdated() {
236
431
  return true;
237
432
  }
238
433
  }
239
- catch (error) {
434
+ catch {
240
435
  }
241
436
  return false;
242
437
  }
@@ -285,15 +480,15 @@ export function parseOrbSensors(elements) {
285
480
  const nameText = name.textContent;
286
481
  const zoneText = zone.textContent;
287
482
  const statusText = status.textContent;
288
- if (canvasIcon !== null && nameText !== null && zoneText !== null && statusText !== null) {
483
+ if (canvasIcon !== null && nameText !== null && zoneText !== null && zoneText.startsWith('Zone') && statusText !== null) {
289
484
  const cleanedIcon = clearWhitespace(canvasIcon);
290
485
  const cleanedName = clearWhitespace(nameText);
291
486
  const cleanedZone = Number(clearWhitespace(zoneText).replace(textOrbSensorZone, '$2'));
292
- const cleanedStatus = clearWhitespace(statusText);
487
+ const cleanedStatuses = clearWhitespace(statusText).split(', ');
293
488
  sensors.push({
294
489
  icon: cleanedIcon,
295
490
  name: cleanedName,
296
- status: cleanedStatus,
491
+ statuses: cleanedStatuses,
297
492
  zone: cleanedZone,
298
493
  });
299
494
  }
@@ -304,17 +499,45 @@ export function parseOrbSensors(elements) {
304
499
  export function parseOrbTextSummary(element) {
305
500
  if (element === null || element.textContent === null) {
306
501
  return {
307
- state: null,
308
- status: null,
502
+ panelStates: [],
503
+ panelStatuses: [],
504
+ panelNotes: [],
505
+ rawData: {
506
+ node: '',
507
+ unknownPieces: [],
508
+ },
309
509
  };
310
510
  }
311
511
  const cleanedNode = clearWhitespace(element.textContent);
312
- const currentState = cleanedNode.replace(textOrbTextSummary, '$1');
313
- const currentStatus = cleanedNode.replace(textOrbTextSummary, '$2');
314
- return {
315
- state: currentState,
316
- status: (currentStatus !== '') ? currentStatus : null,
512
+ const rawSections = cleanedNode.split(textOrbTextSummarySections).filter(Boolean).map((section) => section.split(', '));
513
+ const finalParsed = {
514
+ panelStates: [],
515
+ panelStatuses: [],
516
+ panelNotes: [],
517
+ rawData: {
518
+ node: cleanedNode,
519
+ unknownPieces: [],
520
+ },
317
521
  };
522
+ for (let i = 0; i < rawSections.length; i += 1) {
523
+ for (let j = 0; j < rawSections[i].length; j += 1) {
524
+ switch (true) {
525
+ case panelStatusStateItems.includes(rawSections[i][j]):
526
+ finalParsed.panelStates.push(rawSections[i][j]);
527
+ break;
528
+ case panelStatusStatusItems.includes(rawSections[i][j]):
529
+ finalParsed.panelStatuses.push(rawSections[i][j]);
530
+ break;
531
+ case panelStatusNoteItems.includes(rawSections[i][j]):
532
+ finalParsed.panelNotes.push(rawSections[i][j]);
533
+ break;
534
+ default:
535
+ finalParsed.rawData.unknownPieces.push(rawSections[i][j]);
536
+ break;
537
+ }
538
+ }
539
+ }
540
+ return finalParsed;
318
541
  }
319
542
  export function parseOrbSecurityButtons(elements) {
320
543
  const buttons = [];
@@ -366,26 +589,35 @@ export function parseOrbSecurityButtons(elements) {
366
589
  }
367
590
  export function parseSensorsTable(elements) {
368
591
  const sensors = [];
592
+ let atSensorsSection = false;
369
593
  elements.forEach((element) => {
370
- const onclick = element.getAttribute('onclick');
371
- const icon = element.querySelector('td:nth-child(1) canvas');
372
- const name = element.querySelector('td:nth-child(2) a');
373
- const zone = element.querySelector('td:nth-child(3)');
374
- const deviceType = element.querySelector('td:nth-child(5)');
375
- if (onclick !== null && icon !== null && name !== null && zone !== null && deviceType !== null) {
376
- const deviceId = onclick.replace(functionGoToUrl, '$1');
377
- const iconTitle = icon.getAttribute('title');
378
- const nameText = name.textContent;
379
- const zoneText = zone.textContent;
380
- const deviceTypeText = deviceType.textContent;
381
- if (iconTitle !== null && nameText !== null && zoneText !== null && deviceTypeText !== null) {
382
- const isSensor = clearWhitespace(zoneText) !== '';
383
- if (isSensor) {
594
+ const elementCount = element.childElementCount;
595
+ const title = element.querySelector('td.p_listRow h2.p_boldNormalText');
596
+ if (atSensorsSection) {
597
+ if (title === null && elementCount === 1) {
598
+ atSensorsSection = false;
599
+ return;
600
+ }
601
+ const onclick = element.getAttribute('onclick');
602
+ const icon = element.querySelector('td:nth-child(1) canvas');
603
+ const name = element.querySelector('td:nth-child(2) a');
604
+ const zone = element.querySelector('td:nth-child(3)');
605
+ const deviceType = element.querySelector('td:nth-child(5)');
606
+ if (onclick !== null && icon !== null && name !== null && zone !== null && deviceType !== null) {
607
+ const deviceId = onclick.replace(functionGoToUrl, '$1');
608
+ const iconTitle = icon.getAttribute('title');
609
+ const nameText = name.textContent;
610
+ const zoneText = zone.textContent;
611
+ const deviceTypeText = deviceType.textContent;
612
+ if (iconTitle !== null && nameText !== null && zoneText !== null && deviceTypeText !== null) {
384
613
  const cleanedDeviceId = Number(clearWhitespace(deviceId));
385
614
  const cleanedDeviceType = clearWhitespace(deviceTypeText);
386
615
  const cleanedName = clearWhitespace(nameText);
387
616
  const cleanedStatus = clearWhitespace(iconTitle);
388
617
  const cleanedZone = Number(clearWhitespace(zoneText));
618
+ if (['System/Supervisory'].includes(cleanedDeviceType)) {
619
+ return;
620
+ }
389
621
  sensors.push({
390
622
  deviceId: cleanedDeviceId,
391
623
  deviceType: cleanedDeviceType,
@@ -396,6 +628,17 @@ export function parseSensorsTable(elements) {
396
628
  }
397
629
  }
398
630
  }
631
+ if (!atSensorsSection) {
632
+ if (title !== null && elementCount === 1) {
633
+ const titleText = title.textContent;
634
+ if (titleText !== null) {
635
+ const cleanedTitle = clearWhitespace(titleText);
636
+ if (cleanedTitle === 'Sensors') {
637
+ atSensorsSection = true;
638
+ }
639
+ }
640
+ }
641
+ }
399
642
  });
400
643
  return sensors.sort((a, b) => a.zone - b.zone);
401
644
  }
@@ -406,6 +649,7 @@ export function removePersonalIdentifiableInformation(data) {
406
649
  'mac',
407
650
  'masterCode',
408
651
  'sat',
652
+ 'serial',
409
653
  'serialNumber',
410
654
  'wanIp',
411
655
  ];
@@ -440,6 +684,8 @@ export function stackTracer(type, error) {
440
684
  switch (type) {
441
685
  case 'api-response':
442
686
  case 'detect-content':
687
+ case 'fake-ready-buttons':
688
+ case 'log-status-changes':
443
689
  case 'serialize-error':
444
690
  stringError = util.inspect(error, {
445
691
  showHidden: false,
@@ -1 +1 @@
1
- {"version":3,"file":"utility.js","sourceRoot":"","sources":["../../../src/lib/utility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utility.js","sourceRoot":"","sources":["../../../src/lib/utility.ts"],"names":[],"mappings":"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"}
@@ -75,10 +75,13 @@ class ADTPulseRepl {
75
75
  }
76
76
  this.#api = new ADTPulse({
77
77
  platform: 'ADTPulse',
78
+ name: 'ADT Pulse',
78
79
  subdomain,
79
80
  username,
80
81
  password,
81
82
  fingerprint,
83
+ mode: 'normal',
84
+ speed: 1,
82
85
  sensors: [],
83
86
  }, {
84
87
  debug: true,
@@ -106,9 +109,9 @@ class ADTPulseRepl {
106
109
  }
107
110
  static displayHelpHeader() {
108
111
  console.info([
109
- chalk.cyanBright('########################################################'),
110
- chalk.cyanBright('#### ADT Pulse for Homebridge Plugin REPL Help Menu ####'),
111
- chalk.cyanBright('########################################################'),
112
+ chalk.cyanBright('##########################################################'),
113
+ chalk.cyanBright('#### ADT Pulse for Homebridge Plugin REPL Help Menu ####'),
114
+ chalk.cyanBright('##########################################################'),
112
115
  '',
113
116
  'This is the help menu on how to use this REPL interface. If you have questions on how',
114
117
  'to use this, please refer to the documentation using the link below:',
@@ -120,11 +123,13 @@ class ADTPulseRepl {
120
123
  console.info([
121
124
  '',
122
125
  chalk.bold('Method parameter documentation:'),
123
- ` {'portal' | 'portal-ca'} ${chalk.magentaBright('subdomain')} - Set the domain for either USA or Canada subscribers`,
124
- ` {string} ${chalk.magentaBright('username')} - The username for logging in to ADT Pulse portal`,
125
- ` {string} ${chalk.magentaBright('password')} - The password for logging in to ADT Pulse portal`,
126
- ` {string} ${chalk.magentaBright('fingerprint')} - The fingerprint for logging in to ADT Pulse portal`,
127
- ` {'arm' | 'night' | 'off' | 'stay'} ${chalk.magentaBright('armTo')} - Available methods to arm the system`,
126
+ ` {'portal' | 'portal-ca'} ${chalk.magentaBright('subdomain')} - Set the domain for either USA or Canada subscribers`,
127
+ ` {string} ${chalk.magentaBright('username')} - The username for logging in to ADT Pulse portal`,
128
+ ` {string} ${chalk.magentaBright('password')} - The password for logging in to ADT Pulse portal`,
129
+ ` {string} ${chalk.magentaBright('fingerprint')} - The fingerprint for logging in to ADT Pulse portal`,
130
+ ` {'arm' | 'night' | 'off' | 'stay'} ${chalk.magentaBright('armFrom')} - Specify the current system arm state`,
131
+ ` {'arm' | 'night' | 'off' | 'stay'} ${chalk.magentaBright('armTo')} - Specify the arm state you would like to set`,
132
+ ` {boolean} ${chalk.magentaBright('isAlarmActive')} - If the alarm system is ringing`,
128
133
  '',
129
134
  chalk.bold('Before you use the API, set the instance using this command:'),
130
135
  ` ${chalk.yellowBright(`repl.setInstance(${chalk.magentaBright('subdomain')}, ${chalk.magentaBright('username')}, ${chalk.magentaBright('password')}, ${chalk.magentaBright('fingerprint')});`)}`,
@@ -135,12 +140,13 @@ class ADTPulseRepl {
135
140
  ` ${chalk.yellowBright('await api.getGatewayInformation();')}`,
136
141
  ` ${chalk.yellowBright('await api.getPanelInformation();')}`,
137
142
  ` ${chalk.yellowBright('await api.getPanelStatus();')}`,
138
- ` ${chalk.yellowBright(`await api.setPanelStatus(${chalk.magentaBright('armTo')});`)}`,
143
+ ` ${chalk.yellowBright(`await api.setPanelStatus(${chalk.magentaBright('armFrom')}, ${chalk.magentaBright('armTo')}, ${chalk.magentaBright('isAlarmActive')});`)}`,
139
144
  ` ${chalk.yellowBright('await api.getSensorsInformation();')}`,
140
145
  ` ${chalk.yellowBright('await api.getSensorsStatus();')}`,
141
146
  ` ${chalk.yellowBright('await api.performSyncCheck();')}`,
142
147
  ` ${chalk.yellowBright('await api.performKeepAlive();')}`,
143
148
  ` ${chalk.yellowBright(' api.isAuthenticated();')}`,
149
+ ` ${chalk.yellowBright(' api.resetSession();')}`,
144
150
  '',
145
151
  chalk.bold('You may also wrap the above methods with this to see the entire response:'),
146
152
  ` ${chalk.yellowBright(`console.log(util.inspect(${chalk.magentaBright('replace me without the ending semi-colon')}, false, null, true));`)}`,
@@ -152,19 +158,19 @@ class ADTPulseRepl {
152
158
  }
153
159
  static displayStartupHeader() {
154
160
  console.info([
155
- chalk.cyanBright('##############################################################'),
156
- chalk.cyanBright('#### ADT Pulse for Homebridge Plugin REPL ####'),
157
- chalk.cyanBright('#### https://github.com/mrjackyliang/homebridge-adt-pulse ####'),
158
- chalk.cyanBright('#### ####'),
159
- chalk.cyanBright('#### Copyright (c) 2023 Jacky Liang. ISC License. ####'),
160
- chalk.cyanBright('##############################################################'),
161
+ chalk.cyanBright('################################################################'),
162
+ chalk.cyanBright('#### ADT Pulse for Homebridge Plugin REPL ####'),
163
+ chalk.cyanBright('#### https://github.com/mrjackyliang/homebridge-adt-pulse ####'),
164
+ chalk.cyanBright('#### ####'),
165
+ chalk.cyanBright('#### Copyright (c) 2024 Jacky Liang ####'),
166
+ chalk.cyanBright('################################################################'),
161
167
  '',
162
168
  'Welcome to the REPL interface for ADT Pulse for Homebridge. This interface',
163
169
  'allows you to interact with the ADT Pulse portal via the included API and is designed',
164
170
  `for advanced users only. ${chalk.redBright('PLEASE USE WITH CAUTION, NO WARRANTY IS PROVIDED.')}`,
165
171
  '',
166
- `${chalk.bold.yellowBright('NOTICE')}: The API gathers anonymous analytics to detect potential bugs or issues.`,
167
- ' All personally identifiable information redacted. You will see exactly what will be sent out.',
172
+ `${chalk.yellowBright('NOTICE')}: The API gathers anonymous analytics to detect potential bugs or issues.`,
173
+ ' All personally identifiable information will be redacted.',
168
174
  ].join('\n'));
169
175
  }
170
176
  }