homebridge-lib 6.0.2 → 6.1.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.
Files changed (41) hide show
  1. package/README.md +1 -1
  2. package/cli/hap.js +1 -1
  3. package/cli/json.js +1 -1
  4. package/cli/sysinfo.js +1 -1
  5. package/cli/upnp.js +1 -1
  6. package/index.js +1 -1
  7. package/lib/AccessoryDelegate.js +30 -27
  8. package/lib/AdaptiveLighting.js +1 -1
  9. package/lib/CharacteristicDelegate.js +22 -36
  10. package/lib/Colour.js +1 -1
  11. package/lib/CommandLineParser.js +1 -1
  12. package/lib/CommandLineTool.js +1 -1
  13. package/lib/CustomHomeKitTypes.js +1 -1
  14. package/lib/Delegate.js +31 -33
  15. package/lib/EveHomeKitTypes.js +62 -52
  16. package/lib/HttpClient.js +1 -1
  17. package/lib/JsonFormatter.js +1 -1
  18. package/lib/MyHomeKitTypes.js +88 -97
  19. package/lib/OptionParser.js +27 -2
  20. package/lib/Platform.js +3 -17
  21. package/lib/PropertyDelegate.js +8 -11
  22. package/lib/ServiceDelegate/AccessoryInformation.js +1 -1
  23. package/lib/ServiceDelegate/Battery.js +1 -1
  24. package/lib/ServiceDelegate/Dummy.js +1 -1
  25. package/lib/ServiceDelegate/History/Consumption.js +31 -49
  26. package/lib/ServiceDelegate/History/Contact.js +14 -22
  27. package/lib/ServiceDelegate/History/Light.js +15 -23
  28. package/lib/ServiceDelegate/History/LightLevel.js +113 -0
  29. package/lib/ServiceDelegate/History/Motion.js +67 -80
  30. package/lib/ServiceDelegate/History/On.js +27 -33
  31. package/lib/ServiceDelegate/History/Power.js +46 -52
  32. package/lib/ServiceDelegate/History/Room.js +28 -50
  33. package/lib/ServiceDelegate/History/Thermo.js +19 -33
  34. package/lib/ServiceDelegate/History/Weather.js +33 -56
  35. package/lib/ServiceDelegate/History/index.js +155 -182
  36. package/lib/ServiceDelegate/ServiceLabel.js +1 -1
  37. package/lib/ServiceDelegate/index.js +13 -10
  38. package/lib/SystemInfo.js +3 -2
  39. package/lib/UiServer.js +1 -1
  40. package/lib/UpnpClient.js +1 -1
  41. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
1
  // homebridge-lib/lib/MyHomeKitTypes.js
2
2
  //
3
3
  // Library for Homebridge plugins.
4
- // Copyright © 2017-2022 Erik Baauw. All rights reserved.
4
+ // Copyright © 2017-2023 Erik Baauw. All rights reserved.
5
5
  //
6
6
  // My own collection of custom HomeKit Services and Characteristics.
7
7
 
@@ -212,17 +212,17 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
212
212
 
213
213
  this.createCharacteristicClass('Resource', uuid('021'), {
214
214
  format: this.Formats.STRING,
215
- perms: [this.Perms.READ]
215
+ perms: [this.Perms.PAIRED_READ]
216
216
  })
217
217
 
218
218
  this.createCharacteristicClass('Enabled', uuid('022'), {
219
219
  format: this.Formats.BOOL,
220
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
220
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
221
221
  })
222
222
 
223
223
  this.createCharacteristicClass('LastUpdated', uuid('023'), {
224
224
  format: this.Formats.STRING,
225
- perms: [this.Perms.READ, this.Perms.NOTIFY]
225
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
226
226
  }, 'Last Updated')
227
227
 
228
228
  this.createCharacteristicClass('Heartrate', uuid('024'), {
@@ -230,18 +230,18 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
230
230
  unit: this.Units.SECONDS,
231
231
  minValue: 1,
232
232
  maxValue: 30,
233
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
233
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
234
234
  adminOnlyAccess: [this.Access.WRITE]
235
235
  })
236
236
 
237
237
  this.createCharacteristicClass('Dark', uuid('025'), {
238
238
  format: this.Formats.BOOL,
239
- perms: [this.Perms.READ, this.Perms.NOTIFY]
239
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
240
240
  })
241
241
 
242
242
  this.createCharacteristicClass('Daylight', uuid('026'), {
243
243
  format: this.Formats.BOOL,
244
- perms: [this.Perms.READ, this.Perms.NOTIFY]
244
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
245
245
  })
246
246
 
247
247
  this.createCharacteristicClass('Status', uuid('027'), {
@@ -258,30 +258,30 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
258
258
  minValue: -127,
259
259
  maxValue: 127,
260
260
  // Don't specify minStep here, so plugins can select the Eve control.
261
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
261
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
262
262
  })
263
263
 
264
264
  this.createCharacteristicClass('AnyOn', uuid('028'), {
265
265
  format: this.Formats.BOOL,
266
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE
266
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE
267
267
  ]
268
268
  })
269
269
 
270
270
  this.createCharacteristicClass('LastTriggered', uuid('029'), {
271
271
  format: this.Formats.STRING,
272
- perms: [this.Perms.READ, this.Perms.NOTIFY]
272
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
273
273
  }, 'Last Triggered')
274
274
 
275
275
  this.createCharacteristicClass('TimesTriggered', uuid('02A'), {
276
276
  format: this.Formats.UINT32,
277
- perms: [this.Perms.READ, this.Perms.NOTIFY]
277
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
278
278
  }, 'Times Triggered')
279
279
 
280
280
  this.createCharacteristicClass('Sensitivity', uuid('02B'), {
281
281
  format: this.Formats.UINT8,
282
282
  minValue: 0,
283
283
  maxValue: 127,
284
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
284
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
285
285
  adminOnlyAccess: [this.Access.WRITE]
286
286
  })
287
287
 
@@ -290,18 +290,18 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
290
290
  unit: this.Units.SECONDS,
291
291
  minValue: 0,
292
292
  maxValue: 7200,
293
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
293
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
294
294
  adminOnlyAccess: [this.Access.WRITE]
295
295
  })
296
296
 
297
297
  this.createCharacteristicClass('Link', uuid('02D'), {
298
298
  format: this.Formats.BOOL,
299
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
299
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
300
300
  })
301
301
 
302
302
  this.createCharacteristicClass('Touchlink', uuid('02E'), {
303
303
  format: this.Formats.BOOL,
304
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
304
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
305
305
  })
306
306
 
307
307
  this.createCharacteristicClass('TransitionTime', uuid('02F'), {
@@ -310,7 +310,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
310
310
  minValue: 0,
311
311
  maxValue: 3600,
312
312
  minStep: 0.1,
313
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
313
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
314
314
  }, 'Transition Time')
315
315
 
316
316
  this.createCharacteristicClass('Offset', uuid('030'), {
@@ -319,33 +319,33 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
319
319
  minValue: -5,
320
320
  maxValue: 5,
321
321
  minStep: 0.1,
322
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
322
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
323
323
  adminOnlyAccess: [this.Access.WRITE]
324
324
  })
325
325
 
326
326
  this.createCharacteristicClass('Tariff', uuid('031'), {
327
327
  format: this.Formats.STRING,
328
- perms: [this.Perms.READ, this.Perms.NOTIFY]
328
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
329
329
  })
330
330
 
331
331
  this.createCharacteristicClass('Alarm', uuid('032'), {
332
332
  format: this.Formats.BOOL,
333
- perms: [this.Perms.READ, this.Perms.NOTIFY]
333
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
334
334
  })
335
335
 
336
336
  this.createCharacteristicClass('Period', uuid('033'), {
337
337
  format: this.Formats.STRING,
338
- perms: [this.Perms.READ, this.Perms.NOTIFY]
338
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
339
339
  })
340
340
 
341
341
  this.createCharacteristicClass('LastEvent', uuid('034'), {
342
342
  format: this.Formats.STRING,
343
- perms: [this.Perms.READ, this.Perms.NOTIFY]
343
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
344
344
  }, 'Last Event')
345
345
 
346
346
  this.createCharacteristicClass('Locked', uuid('035'), {
347
347
  format: this.Formats.BOOL,
348
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
348
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
349
349
  adminOnlyAccess: [this.Access.WRITE]
350
350
  }, 'Locked')
351
351
 
@@ -355,7 +355,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
355
355
  minValue: 0,
356
356
  maxValue: 1000000,
357
357
  minStep: 0.1,
358
- perms: [this.Perms.READ, this.Perms.NOTIFY]
358
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
359
359
  }, 'Total Consumption Normal')
360
360
 
361
361
  this.createCharacteristicClass('TotalConsumptionLow', uuid('037'), {
@@ -364,12 +364,12 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
364
364
  minValue: 0,
365
365
  maxValue: 1000000,
366
366
  minStep: 0.1,
367
- perms: [this.Perms.READ, this.Perms.NOTIFY]
367
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
368
368
  }, 'Total Consumption Low')
369
369
 
370
370
  this.createCharacteristicClass('Streaming', uuid('038'), {
371
371
  format: this.Formats.BOOL,
372
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
372
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
373
373
  })
374
374
 
375
375
  this.createCharacteristicClass('Bass', uuid('041'), {
@@ -377,7 +377,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
377
377
  minValue: -10,
378
378
  maxValue: 10,
379
379
  minStep: 1,
380
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
380
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
381
381
  })
382
382
 
383
383
  this.createCharacteristicClass('Treble', uuid('042'), {
@@ -385,12 +385,12 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
385
385
  minValue: -10,
386
386
  maxValue: 10,
387
387
  minStep: 1,
388
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
388
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
389
389
  })
390
390
 
391
391
  this.createCharacteristicClass('Loudness', uuid('043'), {
392
392
  format: this.Formats.BOOL,
393
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
393
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
394
394
  })
395
395
 
396
396
  this.createCharacteristicClass('Balance', uuid('044'), {
@@ -399,17 +399,17 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
399
399
  minValue: -100,
400
400
  maxValue: 100,
401
401
  minStep: 5,
402
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
402
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
403
403
  })
404
404
 
405
405
  this.createCharacteristicClass('CurrentTrack', uuid('045'), {
406
406
  format: this.Formats.STRING,
407
- perms: [this.Perms.READ, this.Perms.NOTIFY]
407
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
408
408
  }, 'Track')
409
409
 
410
410
  this.createCharacteristicClass('SonosGroup', uuid('046'), {
411
411
  format: this.Formats.STRING,
412
- perms: [this.Perms.READ, this.Perms.NOTIFY]
412
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
413
413
  }, 'Sonos Group')
414
414
 
415
415
  this.createCharacteristicClass('ChangeTrack', uuid('047'), {
@@ -417,7 +417,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
417
417
  minValue: -1,
418
418
  maxValue: 1,
419
419
  minStep: 1, // Force Down|Up control in Eve
420
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
420
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
421
421
  }, 'Track Change')
422
422
 
423
423
  this.createCharacteristicClass('ChangeVolume', uuid('049'), {
@@ -425,7 +425,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
425
425
  minValue: -10,
426
426
  maxValue: 10,
427
427
  minStep: 1, // Force Down|Up control in Eve
428
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
428
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
429
429
  }, 'Volume Change')
430
430
 
431
431
  this.createCharacteristicClass('ChangeInput', uuid('04A'), {
@@ -433,38 +433,38 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
433
433
  minValue: -1,
434
434
  maxValue: 1,
435
435
  minStep: 1, // Force Down|Up control in Eve
436
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
436
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
437
437
  }, 'Input Change')
438
438
 
439
439
  this.createCharacteristicClass('NightSound', uuid('04B'), {
440
440
  format: this.Formats.BOOL,
441
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
441
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
442
442
  }, 'Night Sound')
443
443
 
444
444
  this.createCharacteristicClass('SpeechEnhancement', uuid('04C'), {
445
445
  format: this.Formats.BOOL,
446
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
446
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
447
447
  }, 'Speech Enhancement')
448
448
 
449
449
  this.createCharacteristicClass('SonosCoordinator', uuid('04D'), {
450
450
  format: this.Formats.BOOL,
451
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
451
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
452
452
  }, 'Sonos Coordinator')
453
453
 
454
454
  this.createCharacteristicClass('Tv', uuid('04E'), {
455
455
  format: this.Formats.BOOL,
456
- perms: [this.Perms.READ, this.Perms.NOTIFY]
456
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
457
457
  }, 'TV')
458
458
 
459
459
  this.createCharacteristicClass('Time', uuid('04F'), {
460
460
  format: this.Formats.STRING,
461
- perms: [this.Perms.READ, this.Perms.NOTIFY]
461
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
462
462
  }, 'Time')
463
463
 
464
464
  this.createCharacteristicClass('CpuFrequency', uuid('050'), {
465
465
  format: this.Formats.INT,
466
466
  unit: 'MHz',
467
- perms: [this.Perms.READ, this.Perms.NOTIFY]
467
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
468
468
  }, 'Frequency')
469
469
 
470
470
  this.createCharacteristicClass('CpuLoad', uuid('051'), {
@@ -472,45 +472,45 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
472
472
  minValue: 0,
473
473
  maxValue: 100,
474
474
  minStep: 0.01,
475
- perms: [this.Perms.READ, this.Perms.NOTIFY]
475
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
476
476
  }, 'Load')
477
477
 
478
478
  this.createCharacteristicClass('CpuThrottled', uuid('052'), {
479
479
  format: this.Formats.BOOL,
480
- perms: [this.Perms.READ, this.Perms.NOTIFY]
480
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
481
481
  }, 'Throttled')
482
482
 
483
483
  this.createCharacteristicClass('CpuUnderVoltage', uuid('053'), {
484
484
  format: this.Formats.BOOL,
485
- perms: [this.Perms.READ, this.Perms.NOTIFY]
485
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
486
486
  }, 'Under Voltage')
487
487
 
488
488
  this.createCharacteristicClass('Sunrise', uuid('055'), {
489
489
  format: this.Formats.STRING,
490
- perms: [this.Perms.READ, this.Perms.NOTIFY]
490
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
491
491
  })
492
492
 
493
493
  this.createCharacteristicClass('Sunset', uuid('056'), {
494
494
  format: this.Formats.STRING,
495
- perms: [this.Perms.READ, this.Perms.NOTIFY]
495
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
496
496
  })
497
497
 
498
498
  this.createCharacteristicClass('BrightnessChange', uuid('057'), {
499
499
  format: this.Formats.INT,
500
500
  minValue: -20,
501
501
  maxValue: 20,
502
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
502
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
503
503
  }, 'Brightness Change')
504
504
 
505
505
  this.createCharacteristicClass('Restart', uuid('058'), {
506
506
  format: this.Formats.BOOL,
507
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
507
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
508
508
  adminOnlyAccess: [this.Access.WRITE]
509
509
  })
510
510
 
511
511
  this.createCharacteristicClass('ColorLoop', uuid('059'), {
512
512
  format: this.Formats.BOOL,
513
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
513
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
514
514
  }, 'Color Loop')
515
515
 
516
516
  this.createCharacteristicClass('ReturnWaterTemperature', uuid('05A'), {
@@ -519,7 +519,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
519
519
  minValue: 0,
520
520
  maxValue: 100,
521
521
  minStep: 0.1,
522
- perms: [this.Perms.READ, this.Perms.NOTIFY]
522
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
523
523
  }, 'Return Water Temperature')
524
524
 
525
525
  this.createCharacteristicClass('WaterPressure', uuid('05B'), {
@@ -528,39 +528,39 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
528
528
  minValue: 0,
529
529
  maxValue: 5,
530
530
  minStep: 0.1,
531
- perms: [this.Perms.READ, this.Perms.NOTIFY]
531
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
532
532
  }, 'Water Pressure')
533
533
 
534
534
  this.createCharacteristicClass('BurnerStarts', uuid('05C'), {
535
535
  format: this.Formats.UINT32,
536
- perms: [this.Perms.READ, this.Perms.NOTIFY]
536
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
537
537
  }, 'Burner Starts')
538
538
 
539
539
  this.createCharacteristicClass('PumpStarts', uuid('05D'), {
540
540
  format: this.Formats.UINT32,
541
- perms: [this.Perms.READ, this.Perms.NOTIFY]
541
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
542
542
  }, 'Pump Starts')
543
543
 
544
544
  this.createCharacteristicClass('BurnerHours', uuid('05E'), {
545
545
  format: this.Formats.UINT32,
546
546
  unit: 'h',
547
- perms: [this.Perms.READ, this.Perms.NOTIFY]
547
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
548
548
  }, 'Burner Hours')
549
549
 
550
550
  this.createCharacteristicClass('PumpHours', uuid('05F'), {
551
551
  format: this.Formats.UINT32,
552
552
  unit: 'h',
553
- perms: [this.Perms.READ, this.Perms.NOTIFY]
553
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
554
554
  }, 'Pump Hours')
555
555
 
556
556
  this.createCharacteristicClass('LastBoot', uuid('060'), {
557
557
  format: this.Formats.STRING,
558
- perms: [this.Perms.READ, this.Perms.NOTIFY]
558
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
559
559
  }, 'Last Boot')
560
560
 
561
561
  this.createCharacteristicClass('LastSeen', uuid('061'), {
562
562
  format: this.Formats.STRING,
563
- perms: [this.Perms.READ, this.Perms.NOTIFY]
563
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
564
564
  }, 'Last Seen')
565
565
 
566
566
  this.createCharacteristicClass('ApparentTemperature', uuid('062'), {
@@ -569,7 +569,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
569
569
  minValue: -40,
570
570
  maxValue: 100,
571
571
  minStep: 0.1,
572
- perms: [this.Perms.READ, this.Perms.NOTIFY]
572
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
573
573
  }, 'Apparent Temperature')
574
574
 
575
575
  this.createCharacteristicClass('TemperatureMin', uuid('063'), {
@@ -578,7 +578,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
578
578
  minValue: -40,
579
579
  maxValue: 100,
580
580
  minStep: 0.1,
581
- perms: [this.Perms.READ, this.Perms.NOTIFY]
581
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
582
582
  }, 'Minimum Temperature')
583
583
 
584
584
  this.createCharacteristicClass('TemperatureMax', uuid('064'), {
@@ -587,7 +587,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
587
587
  minValue: -40,
588
588
  maxValue: 100,
589
589
  minStep: 0.1,
590
- perms: [this.Perms.READ, this.Perms.NOTIFY]
590
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
591
591
  }, 'Maximum Temperature')
592
592
 
593
593
  this.createCharacteristicClass('LogLevel', uuid('065'), {
@@ -595,7 +595,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
595
595
  minValue: 0,
596
596
  maxValue: 3, // 4 for homebridge-zp
597
597
  minStep: 1, // Force Down|Up control in Eve
598
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
598
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
599
599
  adminOnlyAccess: [this.Access.WRITE]
600
600
  }, 'Log Level')
601
601
  this.Characteristics.LogLevel.NONE = 0
@@ -609,7 +609,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
609
609
  minValue: 0,
610
610
  maxValue: 2,
611
611
  minStep: 1, // Force Down|Up control in Eve
612
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
612
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
613
613
  })
614
614
  this.Characteristics.Repeat.NONE = 0
615
615
  this.Characteristics.Repeat.ONE = 1
@@ -617,22 +617,22 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
617
617
 
618
618
  this.createCharacteristicClass('Shuffle', uuid('067'), {
619
619
  format: this.Formats.BOOL,
620
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
620
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
621
621
  })
622
622
 
623
623
  this.createCharacteristicClass('Crossfade', uuid('068'), {
624
624
  format: this.Formats.BOOL,
625
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
625
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
626
626
  })
627
627
 
628
628
  this.createCharacteristicClass('RingToOpen', uuid('069'), {
629
629
  format: this.Formats.BOOL,
630
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
630
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
631
631
  }, 'Ring to Open')
632
632
 
633
633
  this.createCharacteristicClass('ContinuousMode', uuid('06A'), {
634
634
  format: this.Formats.BOOL,
635
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
635
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
636
636
  }, 'Continuous Mode')
637
637
 
638
638
  this.createCharacteristicClass('EffectSpeed', uuid('06B'), {
@@ -640,7 +640,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
640
640
  unit: this.Units.PERCENTAGE,
641
641
  minValue: 0,
642
642
  maxValue: 100,
643
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
643
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
644
644
  }, 'Effect Speed')
645
645
 
646
646
  this.createCharacteristicClass('ColorLoopSpeed', uuid('06C'), {
@@ -648,12 +648,12 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
648
648
  unit: this.Units.SECONDS,
649
649
  minValue: 1,
650
650
  maxValue: 0xFFFE,
651
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
651
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
652
652
  }, 'Color Loop Speed')
653
653
 
654
654
  this.createCharacteristicClass('SubEnabled', uuid('06D'), {
655
655
  format: this.Formats.BOOL,
656
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
656
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
657
657
  }, 'Sub Enabled')
658
658
 
659
659
  this.createCharacteristicClass('CpuVoltage', uuid('06E'), {
@@ -661,22 +661,22 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
661
661
  minValue: 800,
662
662
  maxValue: 1400,
663
663
  unit: 'mV',
664
- perms: [this.Perms.READ, this.Perms.NOTIFY]
664
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY]
665
665
  }, 'Voltage')
666
666
 
667
667
  this.createCharacteristicClass('CloseUpwards', uuid('06F'), {
668
668
  format: this.Formats.BOOL,
669
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
669
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
670
670
  }, 'Close Upwards')
671
671
 
672
672
  this.createCharacteristicClass('Unlatch', uuid('070'), {
673
673
  format: this.Formats.BOOL,
674
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
674
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
675
675
  }, 'Unlatch')
676
676
 
677
677
  this.createCharacteristicClass('MorningMode', uuid('071'), {
678
678
  format: this.Formats.BOOL,
679
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
679
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
680
680
  }, 'Morning Mode')
681
681
 
682
682
  this.createCharacteristicClass('MotorSpeed', uuid('072'), {
@@ -684,18 +684,18 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
684
684
  unit: this.Units.PERCENTAGE,
685
685
  minValue: 0,
686
686
  maxValue: 100,
687
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
687
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
688
688
  }, 'Motor Speed')
689
689
 
690
690
  this.createCharacteristicClass('Search', uuid('073'), {
691
691
  format: this.Formats.BOOL,
692
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
692
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
693
693
  adminOnlyAccess: [this.Access.WRITE]
694
694
  })
695
695
 
696
696
  this.createCharacteristicClass('Recall', uuid('074'), {
697
697
  format: this.Formats.BOOL,
698
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
698
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
699
699
  })
700
700
 
701
701
  this.createCharacteristicClass('LowBatteryThreshold', uuid('075'), {
@@ -704,7 +704,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
704
704
  minValue: 0,
705
705
  maxValue: 100,
706
706
  minStep: 5,
707
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
707
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
708
708
  }, 'Low Battery Threshold')
709
709
 
710
710
  this.createCharacteristicClass('PositionChange', uuid('076'), {
@@ -712,42 +712,42 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
712
712
  minValue: -1,
713
713
  maxValue: 1,
714
714
  minStep: 1, // Force Down|Up control in Eve
715
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
715
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
716
716
  }, 'Position Change')
717
717
 
718
718
  this.createCharacteristicClass('Unlock', uuid('077'), {
719
719
  format: this.Formats.BOOL,
720
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
720
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
721
721
  adminOnlyAccess: [this.Access.WRITE]
722
722
  })
723
723
 
724
724
  this.createCharacteristicClass('Expose', uuid('078'), {
725
725
  format: this.Formats.BOOL,
726
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
726
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
727
727
  adminOnlyAccess: [this.Access.WRITE]
728
728
  })
729
729
 
730
730
  this.createCharacteristicClass('ExposeLights', uuid('079'), {
731
731
  format: this.Formats.BOOL,
732
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
732
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
733
733
  adminOnlyAccess: [this.Access.WRITE]
734
734
  }, 'Expose Lights')
735
735
 
736
736
  this.createCharacteristicClass('ExposeSensors', uuid('07A'), {
737
737
  format: this.Formats.BOOL,
738
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
738
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
739
739
  adminOnlyAccess: [this.Access.WRITE]
740
740
  }, 'Expose Sensors')
741
741
 
742
742
  this.createCharacteristicClass('ExposeGroups', uuid('07B'), {
743
743
  format: this.Formats.BOOL,
744
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
744
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
745
745
  adminOnlyAccess: [this.Access.WRITE]
746
746
  }, 'Expose Groups')
747
747
 
748
748
  this.createCharacteristicClass('ExposeSchedules', uuid('07C'), {
749
749
  format: this.Formats.BOOL,
750
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE],
750
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE],
751
751
  adminOnlyAccess: [this.Access.WRITE]
752
752
  }, 'Expose Schedules')
753
753
 
@@ -756,7 +756,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
756
756
  minValue: -15,
757
757
  maxValue: 15,
758
758
  minStep: 1,
759
- perms: [this.Perms.READ, this.Perms.NOTIFY, this.Perms.WRITE]
759
+ perms: [this.Perms.PAIRED_READ, this.Perms.NOTIFY, this.Perms.PAIRED_WRITE]
760
760
  }, 'Sub Level')
761
761
 
762
762
  // Characteristic for Unique ID, used by homebridge-hue.
@@ -767,7 +767,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
767
767
  this.createCharacteristicClass(
768
768
  'UniqueID', 'D8B76298-42E7-5FFD-B1D6-1782D9A1F936', {
769
769
  format: this.Formats.STRING,
770
- perms: [this.Perms.READ]
770
+ perms: [this.Perms.PAIRED_READ]
771
771
  }, 'Unique ID'
772
772
  )
773
773
 
@@ -778,7 +778,7 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
778
778
  this.createCharacteristicClass(
779
779
  'ClipID', '23B88013-D5E2-5300-9DF1-D51D90CADED9', {
780
780
  format: this.Formats.STRING,
781
- perms: [this.Perms.READ]
781
+ perms: [this.Perms.PAIRED_READ]
782
782
  }
783
783
  )
784
784
 
@@ -827,18 +827,9 @@ class MyHomeKitTypes extends homebridgeLib.CustomHomeKitTypes {
827
827
  ])
828
828
 
829
829
  this.createServiceClass('DeconzGateway', uuid('014'), [
830
- this.Characteristics.Heartrate,
831
830
  this.Characteristics.LastUpdated,
832
- this.Characteristics.TransitionTime,
833
- this.Characteristics.Expose,
834
- this.Characteristics.ExposeLights,
835
- this.Characteristics.ExposeSensors,
836
- this.Characteristics.ExposeGroups,
837
- this.Characteristics.ExposeSchedules,
838
- this.Characteristics.LogLevel,
839
- this.Characteristics.Restart,
840
- this.Characteristics.Search,
841
- this.Characteristics.Unlock
831
+ this.hapCharacteristics.StatusActive,
832
+ this.Characteristics.TransitionTime
842
833
  ])
843
834
 
844
835
  this.createServiceClass('DeconzDevice', uuid('015'), [