homebridge-virtual-accessories 3.11.3 → 3.11.5
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/README.md +19 -8
- package/config.schema.json +18 -2
- package/dist/accessories/accessory.d.ts +1 -1
- package/dist/accessories/accessory.js.map +1 -1
- package/dist/accessories/virtualAccessoryLock.d.ts +20 -1
- package/dist/accessories/virtualAccessoryLock.js +208 -3
- package/dist/accessories/virtualAccessoryLock.js.map +1 -1
- package/dist/configuration/accessories/configurationLock.d.ts +1 -0
- package/dist/configuration/accessories/configurationLock.js +14 -2
- package/dist/configuration/accessories/configurationLock.js.map +1 -1
- package/dist/configuration/schema.d.ts +10 -0
- package/dist/configuration/schema.js +10 -0
- package/dist/configuration/schema.js.map +1 -1
- package/dist/utils/tlv.d.ts +95 -0
- package/dist/utils/tlv.js +303 -0
- package/dist/utils/tlv.js.map +1 -0
- package/dist/utils/utils.d.ts +3 -0
- package/dist/utils/utils.js +11 -0
- package/dist/utils/utils.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,6 +29,11 @@
|
|
|
29
29
|
|
|
30
30
|
</summary>
|
|
31
31
|
|
|
32
|
+
- [Virtual Accessories For Homebridge](#virtual-accessories-for-homebridge)
|
|
33
|
+
- [Virtual Accessories For Homebridge is a plugin for Homebridge that provides the ability to create virtual HomeKit accessories.](#virtual-accessories-for-homebridge-is-a-plugin-for-homebridge-that-provides-the-ability-to-create-virtual-homekit-accessories)
|
|
34
|
+
- [](#)
|
|
35
|
+
- [📝 Table Of Contents](#-table-of-contents)
|
|
36
|
+
- [](#-1)
|
|
32
37
|
- [About Virtual Accessories For Homebridge](#about-virtual-accessories-for-homebridge)
|
|
33
38
|
- [Installation](#installation)
|
|
34
39
|
- [Docker](#docker)
|
|
@@ -54,17 +59,18 @@
|
|
|
54
59
|
- [Speaker](#speaker)
|
|
55
60
|
- [Television](#television)
|
|
56
61
|
- [Valve](#valve)
|
|
57
|
-
- [Window](#window)
|
|
58
62
|
- [Window Covering - Blinds, Shades](#window-covering---blinds-shades)
|
|
63
|
+
- [Window](#window)
|
|
59
64
|
- [Switch](#switch)
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
- [Switch with reset timer](#switch-with-reset-timer)
|
|
66
|
+
- [Switch with random reset timer](#switch-with-random-reset-timer)
|
|
67
|
+
- [Switch with companion sensor (sensor triggered on \& off by switch state)](#switch-with-companion-sensor-sensor-triggered-on--off-by-switch-state)
|
|
63
68
|
- [Sensor with ping trigger](#sensor-with-ping-trigger)
|
|
64
69
|
- [Sensor with cron trigger](#sensor-with-cron-trigger)
|
|
65
70
|
- [Sensor with cron trigger with start and end datetimes](#sensor-with-cron-trigger-with-start-and-end-datetimes)
|
|
66
71
|
- [Sensor with sun events trigger](#sensor-with-sun-events-trigger)
|
|
67
72
|
- [Sensor with webhook trigger](#sensor-with-webhook-trigger)
|
|
73
|
+
- [](#-2)
|
|
68
74
|
- [Adding an external accessory in the Home app](#adding-an-external-accessory-in-the-home-app)
|
|
69
75
|
- [Webhook Service Configuration](#webhook-service-configuration)
|
|
70
76
|
- [Enable webhook service](#enable-webhook-service)
|
|
@@ -74,12 +80,16 @@
|
|
|
74
80
|
- [Update Heater/Cooler temperature sensor](#update-heatercooler-temperature-sensor)
|
|
75
81
|
- [Update Humidifier/Dehumidifier humidity sensor](#update-humidifierdehumidifier-humidity-sensor)
|
|
76
82
|
- [Update Security System triggered state](#update-security-system-triggered-state)
|
|
83
|
+
- [Update Sensor with webhook state](#update-sensor-with-webhook-state)
|
|
77
84
|
- [Creative Uses](#creative-uses)
|
|
85
|
+
- [](#-3)
|
|
78
86
|
- [Mentions](#mentions)
|
|
87
|
+
- [Make Smart Matter](#make-smart-matter)
|
|
88
|
+
- [Edgar’s Home Tech](#edgars-home-tech)
|
|
79
89
|
- [Known Issues](#known-issues)
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
90
|
+
- [Issues with Homebridge UI:](#issues-with-homebridge-ui)
|
|
91
|
+
- [Issues with underlying frameworks:](#issues-with-underlying-frameworks)
|
|
92
|
+
- [Issues with HomeKit:](#issues-with-homekit)
|
|
83
93
|
- [What if I run into a problem?](#what-if-i-run-into-a-problem)
|
|
84
94
|
</details>
|
|
85
95
|
|
|
@@ -493,7 +503,8 @@ These are example configurations of the virtual accessories and provided for ref
|
|
|
493
503
|
"accessoryIsStateful": false,
|
|
494
504
|
"lock": {
|
|
495
505
|
"defaultState": "locked",
|
|
496
|
-
"autoSecurityTimeout": 5
|
|
506
|
+
"autoSecurityTimeout": 5,
|
|
507
|
+
"walletKeyColor": "tan"
|
|
497
508
|
}
|
|
498
509
|
}
|
|
499
510
|
],
|
package/config.schema.json
CHANGED
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"properties": {
|
|
91
91
|
"enabled": {
|
|
92
92
|
"title": "Enabled",
|
|
93
|
-
"description": "
|
|
93
|
+
"description": "Update sensors via web calls",
|
|
94
94
|
"type": "boolean"
|
|
95
95
|
},
|
|
96
96
|
"port": {
|
|
@@ -632,6 +632,22 @@
|
|
|
632
632
|
"description": "Lock auto-lock time in seconds (0 = off)",
|
|
633
633
|
"type": "integer",
|
|
634
634
|
"minimum": 0
|
|
635
|
+
},
|
|
636
|
+
"walletKeyColor": {
|
|
637
|
+
"title": "HomeKey Color",
|
|
638
|
+
"description": "HomeKey card color in Wallet app (default: Tan)",
|
|
639
|
+
"type": "string",
|
|
640
|
+
"oneOf": [
|
|
641
|
+
{ "title": "Tan", "enum": ["tan"] },
|
|
642
|
+
{ "title": "Gold", "enum": ["gold"] },
|
|
643
|
+
{ "title": "Silver", "enum": ["silver"] },
|
|
644
|
+
{ "title": "Black", "enum": ["black"] }
|
|
645
|
+
]
|
|
646
|
+
},
|
|
647
|
+
"": {
|
|
648
|
+
"description": "Note: HomeKey appears to currently be brokem. If you are experiencing issues, set HomeKey Color to None.",
|
|
649
|
+
"type": "object",
|
|
650
|
+
"properties": {}
|
|
635
651
|
}
|
|
636
652
|
},
|
|
637
653
|
"condition": {
|
|
@@ -735,7 +751,7 @@
|
|
|
735
751
|
},
|
|
736
752
|
"muteLogging" : {
|
|
737
753
|
"title": "Mute Logging",
|
|
738
|
-
"description": "Log information will only be visible when
|
|
754
|
+
"description": "Log information will only be visible when running in debug mode",
|
|
739
755
|
"type": "boolean"
|
|
740
756
|
}
|
|
741
757
|
},
|
|
@@ -14,7 +14,7 @@ export declare abstract class Accessory {
|
|
|
14
14
|
protected accessoryName: string;
|
|
15
15
|
protected defaultState: any;
|
|
16
16
|
protected storagePath: string;
|
|
17
|
-
|
|
17
|
+
protected accessoryInformationService?: Service;
|
|
18
18
|
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
|
|
19
19
|
isExternalAccessory(): boolean;
|
|
20
20
|
updateConfiguredName(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessory.js","sourceRoot":"","sources":["../../src/accessories/accessory.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAUvD,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB;;GAEG;AACH,MAAM,OAAgB,SAAS;IAC7B,OAAO,CAAW;IAET,QAAQ,CAA6B;IACrC,SAAS,CAAoB;IAE7B,sBAAsB,CAAyB;IAC/C,GAAG,CAAgB;IAElB,aAAa,GAAW,EAAE,CAAC;IAE3B,YAAY,CAAC;IAEb,WAAW,CAAS;
|
|
1
|
+
{"version":3,"file":"accessory.js","sourceRoot":"","sources":["../../src/accessories/accessory.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAUvD,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB;;GAEG;AACH,MAAM,OAAgB,SAAS;IAC7B,OAAO,CAAW;IAET,QAAQ,CAA6B;IACrC,SAAS,CAAoB;IAE7B,sBAAsB,CAAyB;IAC/C,GAAG,CAAgB;IAElB,aAAa,GAAW,EAAE,CAAC;IAE3B,YAAY,CAAC;IAEb,WAAW,CAAS;IAEpB,2BAA2B,CAAW;IAEhD,YACE,QAAoC,EACpC,SAA4B,EAC5B,sBAA8C;QAE9C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,qGAAqG;QACrG,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC;QAC/D,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAE7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,wBAAwB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAElG,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC;QAEjD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,CAAC;YACrD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACzG,IAAI,CAAC,2BAA4B;aAC9B,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,oCAAoC,CAAC;aAClG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,uBAAuB,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;aAC3G,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aACjF,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC;aAC/F,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9G,CAAC;IAED,mBAAmB;QACjB,OAAO,6DAA2C,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvF,CAAC;IAED,oBAAoB;QAClB,MAAM,cAAc,GAAG,IAAI,CAAC,2BAA4B,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACxH,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,2BAA4B,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAEgB,qBAAqB,GAAG,IAAI,CAAC;IAEpC,qBAAqB,CAAC,IAAS;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,CAAC;IAC7D,CAAC;IAES,kBAAkB,CAC1B,WAAmB;QAEnB,IAAI,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAElC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,kBAAkB,CACxB,WAAmB,EACnB,SAAiB;QAEjB,0CAA0C;QAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,mBAAmB,SAAS,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CACd,WAAW,EACX,SAAS,EACT,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAChC,CAAC;YAEF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,kBAAkB,SAAS,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,yBAAyB,KAAK,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAES,oBAAoB,CAC5B,WAAmB;QAEnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,yBAAyB,WAAW,EAAE,CAAC,CAAC;QAC7E,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,+BAA+B,WAAW,EAAE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;IACH,CAAC;IAED,iCAAiC;IACvB,UAAU;QAClB,IAAI,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,CAAC;YACpD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CAKF"}
|
|
@@ -16,7 +16,15 @@ export declare class Lock extends Accessory {
|
|
|
16
16
|
static readonly SECURED_BY_AUTO_SECURE_TIMEOUT: number;
|
|
17
17
|
private readonly stateStorageKey;
|
|
18
18
|
private readonly securityTimeoutStorageKey;
|
|
19
|
-
private readonly
|
|
19
|
+
private readonly lastKnownActionStorageKey;
|
|
20
|
+
private readonly deviceCredentialPublicKeysStorageKey;
|
|
21
|
+
private readonly readerPrivateKeysStorageKey;
|
|
22
|
+
private readonly deviceCredentialPublicKeysCount;
|
|
23
|
+
private readonly readerPrivateKeysCount;
|
|
24
|
+
private readonly nfcAccessSupportedConfiguration;
|
|
25
|
+
private deviceCredentialPublicKeys;
|
|
26
|
+
private readerPrivateKeys;
|
|
27
|
+
private readonly lockHardwareFinish;
|
|
20
28
|
private securityTimerId;
|
|
21
29
|
private states;
|
|
22
30
|
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
|
|
@@ -28,8 +36,19 @@ export declare class Lock extends Accessory {
|
|
|
28
36
|
setLockManagementAutoSecurityTimeout(value: CharacteristicValue): Promise<void>;
|
|
29
37
|
getLockManagementAutoSecurityTimeout(): Promise<CharacteristicValue>;
|
|
30
38
|
getLockLastKnownAction(): Promise<CharacteristicValue>;
|
|
39
|
+
getConfigurationState(): Promise<CharacteristicValue>;
|
|
40
|
+
setNFCAccessControlPoint(value: CharacteristicValue): Promise<string>;
|
|
41
|
+
getNFCAccessControlPoint(): Promise<CharacteristicValue>;
|
|
42
|
+
getNFCAccessSupportedConfiguration(): Promise<CharacteristicValue>;
|
|
31
43
|
protected getJsonState(): string;
|
|
32
44
|
protected getAccessoryTypeName(): string;
|
|
33
45
|
static getStateName(state: number): string;
|
|
34
46
|
private startAutoSecurityTimeout;
|
|
47
|
+
private readonly GET_DEVICE_CREDENTIAL_REQUEST;
|
|
48
|
+
private readonly GET_READER_KEY_REQUEST;
|
|
49
|
+
private readonly ADD_DEVICE_CREDENTIAL_REQUEST;
|
|
50
|
+
private readonly ADD_GET_READER_KEY_REQUEST;
|
|
51
|
+
private readonly RFEMOVE_DEVICE_CREDENTIAL_REQUEST;
|
|
52
|
+
private readonly REMOVE_GET_READER_KEY_REQUEST;
|
|
53
|
+
private processAccessControlPointRequest;
|
|
35
54
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* eslint-disable brace-style */
|
|
2
2
|
import { Accessory } from './accessory.js';
|
|
3
3
|
import { Utils } from '../utils/utils.js';
|
|
4
|
+
import { TLVDeviceCredentialResponse, TLVReaderKeyResponse, TLVRequest, TLVUtils } from '../utils/tlv.js';
|
|
4
5
|
/**
|
|
5
6
|
* Lock - Accessory implementation
|
|
6
7
|
*/
|
|
@@ -15,7 +16,23 @@ export class Lock extends Accessory {
|
|
|
15
16
|
static SECURED_BY_AUTO_SECURE_TIMEOUT = 8; // Characteristic.LockLastKnownAction.SECURED_BY_AUTO_SECURE_TIMEOUT
|
|
16
17
|
stateStorageKey = 'LockState';
|
|
17
18
|
securityTimeoutStorageKey = 'LockAutoSecurityTimeout';
|
|
18
|
-
|
|
19
|
+
lastKnownActionStorageKey = 'LockLastKnownAction';
|
|
20
|
+
deviceCredentialPublicKeysStorageKey = 'DeviceCredentialPublicKeys';
|
|
21
|
+
readerPrivateKeysStorageKey = 'readerPrivateKeys';
|
|
22
|
+
// base64 encoded hex "010110020110"; 16 keys each
|
|
23
|
+
deviceCredentialPublicKeysCount = 16;
|
|
24
|
+
readerPrivateKeysCount = 16;
|
|
25
|
+
nfcAccessSupportedConfiguration = 'AQEQAgEQ';
|
|
26
|
+
deviceCredentialPublicKeys = new Map(); // Issuer Key Identifier - Device Credential Public Key
|
|
27
|
+
readerPrivateKeys = new Map(); // Key Identifier - Reader Private Key
|
|
28
|
+
// base64 encoded hex
|
|
29
|
+
lockHardwareFinish = {
|
|
30
|
+
'default': 'AQT///8A', // 0104FFFFFF00
|
|
31
|
+
'tan': 'AQTO1doA', // 0104CED5DA00
|
|
32
|
+
'gold': 'AQSq1uwA', // 0104AAD6EC00
|
|
33
|
+
'silver': 'AQTj4+MA', // 0104E3E3E300
|
|
34
|
+
'black': 'AQQAAAAA', // 010400000000
|
|
35
|
+
};
|
|
19
36
|
securityTimerId;
|
|
20
37
|
states = {
|
|
21
38
|
LockCurrentState: Lock.SECURED,
|
|
@@ -28,6 +45,9 @@ export class Lock extends Accessory {
|
|
|
28
45
|
// First configure the device based on the accessory details
|
|
29
46
|
this.defaultState = this.accessoryConfiguration.lock.defaultState === 'unlocked' ? Lock.UNSECURED : Lock.SECURED;
|
|
30
47
|
const autoSecurityTimeout = this.accessoryConfiguration.lock.autoSecurityTimeout;
|
|
48
|
+
// const walletKeyColor = this.accessoryConfiguration.lock.walletKeyColor || 'default';
|
|
49
|
+
// HomeKey appears to be broken right now, so temporarily leaving NFC out if no HomeKey card color is selected
|
|
50
|
+
const walletKeyColor = (this.accessoryConfiguration.lock.walletKeyColor !== undefined) ? this.accessoryConfiguration.lock.walletKeyColor : undefined;
|
|
31
51
|
this.states.LockCurrentState = this.defaultState;
|
|
32
52
|
this.states.LockManagementAutoSecurityTimeout = autoSecurityTimeout;
|
|
33
53
|
this.states.LockLastKnownAction = Lock.UNSECURED_REMOTELY; // There is no "unknown" value
|
|
@@ -36,7 +56,12 @@ export class Lock extends Accessory {
|
|
|
36
56
|
const accessoryState = this.loadAccessoryState(this.storagePath);
|
|
37
57
|
const cachedState = accessoryState[this.stateStorageKey];
|
|
38
58
|
const cachedSecurityTimeout = accessoryState[this.securityTimeoutStorageKey];
|
|
39
|
-
const cachedLastKnownAction = accessoryState[this.
|
|
59
|
+
const cachedLastKnownAction = accessoryState[this.lastKnownActionStorageKey];
|
|
60
|
+
const jsonDeviceCredentialPublicKeys = accessoryState[this.deviceCredentialPublicKeysStorageKey];
|
|
61
|
+
// eslint-disable-next-line max-len
|
|
62
|
+
const cachedDeviceCredentialPublicKeys = (jsonDeviceCredentialPublicKeys !== undefined) ? new Map(JSON.parse(jsonDeviceCredentialPublicKeys)) : undefined;
|
|
63
|
+
const jsonReaderPrivateKeys = accessoryState[this.readerPrivateKeysStorageKey];
|
|
64
|
+
const cachedReaderPrivateKeys = (jsonReaderPrivateKeys !== undefined) ? new Map(JSON.parse(jsonReaderPrivateKeys)) : undefined;
|
|
40
65
|
if (cachedState !== undefined) {
|
|
41
66
|
this.states.LockCurrentState = cachedState;
|
|
42
67
|
}
|
|
@@ -46,8 +71,17 @@ export class Lock extends Accessory {
|
|
|
46
71
|
if (cachedLastKnownAction !== undefined) {
|
|
47
72
|
this.states.LockLastKnownAction = cachedLastKnownAction;
|
|
48
73
|
}
|
|
74
|
+
if (cachedDeviceCredentialPublicKeys !== undefined) {
|
|
75
|
+
this.deviceCredentialPublicKeys = cachedDeviceCredentialPublicKeys;
|
|
76
|
+
}
|
|
77
|
+
if (cachedReaderPrivateKeys !== undefined) {
|
|
78
|
+
this.readerPrivateKeys = cachedReaderPrivateKeys;
|
|
79
|
+
}
|
|
49
80
|
}
|
|
50
81
|
this.states.LockTargetState = this.states.LockCurrentState;
|
|
82
|
+
if (walletKeyColor !== undefined) {
|
|
83
|
+
this.accessoryInformationService.setCharacteristic(this.platform.Characteristic.HardwareFinish, this.lockHardwareFinish[walletKeyColor]);
|
|
84
|
+
}
|
|
51
85
|
this.service = this.accessory.getService(this.platform.Service.LockMechanism) || this.accessory.addService(this.platform.Service.LockMechanism);
|
|
52
86
|
this.service.setCharacteristic(this.platform.Characteristic.Name, this.accessoryConfiguration.accessoryName);
|
|
53
87
|
// Update the initial state of the accessory
|
|
@@ -89,6 +123,19 @@ export class Lock extends Accessory {
|
|
|
89
123
|
});
|
|
90
124
|
lockManagementService.getCharacteristic(this.platform.Characteristic.LockLastKnownAction)
|
|
91
125
|
.onGet(this.getLockLastKnownAction.bind(this));
|
|
126
|
+
if (walletKeyColor !== undefined) {
|
|
127
|
+
// Creating Nfc Access service
|
|
128
|
+
const nfcAccessServiceName = `${this.accessoryConfiguration.accessoryName} Nfc Access`;
|
|
129
|
+
const nfcAccessService = this.accessory.getService(nfcAccessServiceName)
|
|
130
|
+
|| this.accessory.addService(this.platform.Service.NFCAccess, nfcAccessServiceName, this.accessory.UUID + '-NFC');
|
|
131
|
+
nfcAccessService.getCharacteristic(this.platform.Characteristic.ConfigurationState)
|
|
132
|
+
.onGet(this.getConfigurationState.bind(this));
|
|
133
|
+
nfcAccessService.getCharacteristic(this.platform.Characteristic.NFCAccessControlPoint)
|
|
134
|
+
.onSet(this.setNFCAccessControlPoint.bind(this))
|
|
135
|
+
.onGet(this.getNFCAccessControlPoint.bind(this));
|
|
136
|
+
nfcAccessService.getCharacteristic(this.platform.Characteristic.NFCAccessSupportedConfiguration)
|
|
137
|
+
.onGet(this.getNFCAccessSupportedConfiguration.bind(this));
|
|
138
|
+
}
|
|
92
139
|
}
|
|
93
140
|
// Handlers
|
|
94
141
|
async getLockCurrentState() {
|
|
@@ -139,11 +186,46 @@ export class Lock extends Accessory {
|
|
|
139
186
|
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Getting Lock Last Known Action: ${lockLastKnownAction}`);
|
|
140
187
|
return lockLastKnownAction;
|
|
141
188
|
}
|
|
189
|
+
// NFC Service handlers
|
|
190
|
+
async getConfigurationState() {
|
|
191
|
+
const configurationState = 0; // Successful
|
|
192
|
+
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Getting NFC Access Configuration State: ${configurationState}`);
|
|
193
|
+
return configurationState;
|
|
194
|
+
}
|
|
195
|
+
async setNFCAccessControlPoint(value) {
|
|
196
|
+
const nfcAccessControlPoint = value;
|
|
197
|
+
try {
|
|
198
|
+
const response = this.processAccessControlPointRequest(nfcAccessControlPoint);
|
|
199
|
+
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Setting NFC Access Control Point: ${nfcAccessControlPoint}`);
|
|
200
|
+
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] NFC Access Control Point Response: "${response}"`);
|
|
201
|
+
return response;
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
this.log.error(`Caught error ${error}`);
|
|
205
|
+
if (error instanceof Error) {
|
|
206
|
+
this.log.error(`Error message: ${error.message}`);
|
|
207
|
+
this.log.error(`Error stack: ${error.stack}`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return '';
|
|
211
|
+
}
|
|
212
|
+
async getNFCAccessControlPoint() {
|
|
213
|
+
const nfcAccessControlPoint = '';
|
|
214
|
+
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Getting NFC Access Control Point: ${nfcAccessControlPoint}`);
|
|
215
|
+
return nfcAccessControlPoint;
|
|
216
|
+
}
|
|
217
|
+
async getNFCAccessSupportedConfiguration() {
|
|
218
|
+
const nfcAccessSupportedConfiguration = this.nfcAccessSupportedConfiguration;
|
|
219
|
+
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Getting NFC Access Supported Configuration: ${nfcAccessSupportedConfiguration}`);
|
|
220
|
+
return nfcAccessSupportedConfiguration;
|
|
221
|
+
}
|
|
142
222
|
getJsonState() {
|
|
143
223
|
const json = JSON.stringify({
|
|
144
224
|
[this.stateStorageKey]: this.states.LockCurrentState,
|
|
145
225
|
[this.securityTimeoutStorageKey]: this.states.LockManagementAutoSecurityTimeout,
|
|
146
|
-
[this.
|
|
226
|
+
[this.lastKnownActionStorageKey]: this.states.LockLastKnownAction,
|
|
227
|
+
[this.deviceCredentialPublicKeysStorageKey]: JSON.stringify(this.deviceCredentialPublicKeys),
|
|
228
|
+
[this.readerPrivateKeysStorageKey]: JSON.stringify(this.readerPrivateKeys),
|
|
147
229
|
});
|
|
148
230
|
return json;
|
|
149
231
|
}
|
|
@@ -195,5 +277,128 @@ export class Lock extends Accessory {
|
|
|
195
277
|
this.log.info(`[${this.accessoryConfiguration.accessoryName}] No Security Timeout defined`);
|
|
196
278
|
}
|
|
197
279
|
}
|
|
280
|
+
GET_DEVICE_CREDENTIAL_REQUEST = Utils.concatenate(TLVUtils.OPERATION_GET, TLVUtils.DEVICE_CREDENTIAL_REQUEST);
|
|
281
|
+
GET_READER_KEY_REQUEST = Utils.concatenate(TLVUtils.OPERATION_GET, TLVUtils.READER_KEY_REQUEST);
|
|
282
|
+
ADD_DEVICE_CREDENTIAL_REQUEST = Utils.concatenate(TLVUtils.OPERATION_ADD, TLVUtils.DEVICE_CREDENTIAL_REQUEST);
|
|
283
|
+
ADD_GET_READER_KEY_REQUEST = Utils.concatenate(TLVUtils.OPERATION_ADD, TLVUtils.READER_KEY_REQUEST);
|
|
284
|
+
RFEMOVE_DEVICE_CREDENTIAL_REQUEST = Utils.concatenate(TLVUtils.OPERATION_REMOVE, TLVUtils.DEVICE_CREDENTIAL_REQUEST);
|
|
285
|
+
REMOVE_GET_READER_KEY_REQUEST = Utils.concatenate(TLVUtils.OPERATION_REMOVE, TLVUtils.READER_KEY_REQUEST);
|
|
286
|
+
processAccessControlPointRequest(base64TlvRequest) {
|
|
287
|
+
const hexTlvRequest = Utils.base64DecodeToHexString(base64TlvRequest);
|
|
288
|
+
const tlvRequest = new TLVRequest(hexTlvRequest);
|
|
289
|
+
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] hexTlvRequest: "${hexTlvRequest}"`);
|
|
290
|
+
let hexTlvResponse = '';
|
|
291
|
+
const controlPointRequest = Utils.concatenate(tlvRequest.operation.value, tlvRequest.request.type);
|
|
292
|
+
switch (controlPointRequest) {
|
|
293
|
+
// Not called
|
|
294
|
+
case this.GET_DEVICE_CREDENTIAL_REQUEST: {
|
|
295
|
+
this.log.info(`[${this.accessoryConfiguration.accessoryName}] Access Control Point: GET Device Credential`);
|
|
296
|
+
if (this.deviceCredentialPublicKeys.size > 0) {
|
|
297
|
+
const issuerKeyIdentifier = this.deviceCredentialPublicKeys.keys().next().value;
|
|
298
|
+
if (issuerKeyIdentifier !== undefined) {
|
|
299
|
+
const response = TLVDeviceCredentialResponse.getResponseForGetOperation(issuerKeyIdentifier);
|
|
300
|
+
hexTlvResponse = response.toHexString();
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
break;
|
|
304
|
+
}
|
|
305
|
+
case this.GET_READER_KEY_REQUEST: {
|
|
306
|
+
this.log.info(`[${this.accessoryConfiguration.accessoryName}] Access Control Point: GET Reader Key`);
|
|
307
|
+
if (this.readerPrivateKeys.size > 0) {
|
|
308
|
+
const readerKeyIdentifier = this.readerPrivateKeys.keys().next().value;
|
|
309
|
+
if (readerKeyIdentifier !== undefined) {
|
|
310
|
+
const response = TLVReaderKeyResponse.getResponseForGetOperation(readerKeyIdentifier);
|
|
311
|
+
hexTlvResponse = response.toHexString();
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
break;
|
|
315
|
+
}
|
|
316
|
+
case this.ADD_DEVICE_CREDENTIAL_REQUEST: {
|
|
317
|
+
this.log.info(`[${this.accessoryConfiguration.accessoryName}] Access Control Point: ADD Device Credential`);
|
|
318
|
+
const request = tlvRequest.requestPayload;
|
|
319
|
+
const issuerKeyIdentifier = request.issuerKeyIdentifier.value;
|
|
320
|
+
const deviceCredentialPublicKey = request.deviceCredentialPublicKey.value;
|
|
321
|
+
// const keyState: number = request.keyState!.value as number;
|
|
322
|
+
// const keyType: number = request.keyType!.value as number;
|
|
323
|
+
let status = TLVUtils.STATUS_SUCCESS;
|
|
324
|
+
if (this.deviceCredentialPublicKeys.size >= this.deviceCredentialPublicKeysCount) {
|
|
325
|
+
status = TLVUtils.STATUS_OUT_OF_RESOURCES;
|
|
326
|
+
}
|
|
327
|
+
else if (this.deviceCredentialPublicKeys.get(issuerKeyIdentifier) !== undefined) {
|
|
328
|
+
status = TLVUtils.STATUS_DUPLICATE;
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
this.deviceCredentialPublicKeys.set(issuerKeyIdentifier, deviceCredentialPublicKey);
|
|
332
|
+
}
|
|
333
|
+
const response = TLVDeviceCredentialResponse.getResponseForAddOperation(issuerKeyIdentifier, status);
|
|
334
|
+
hexTlvResponse = response.toHexString();
|
|
335
|
+
break;
|
|
336
|
+
}
|
|
337
|
+
case this.ADD_GET_READER_KEY_REQUEST: {
|
|
338
|
+
this.log.info(`[${this.accessoryConfiguration.accessoryName}] Access Control Point: ADD Reader Key`);
|
|
339
|
+
const request = tlvRequest.requestPayload;
|
|
340
|
+
const readerPrivateKey = request.readerPrivateKey.value;
|
|
341
|
+
// const keyType: number = request.keyType!.value as number;
|
|
342
|
+
// const unknown: string = request.unknown!.value as string;
|
|
343
|
+
const readerKeyIdentifier = TLVUtils.getReaderIdentifier(readerPrivateKey);
|
|
344
|
+
let status = TLVUtils.STATUS_SUCCESS;
|
|
345
|
+
if (this.readerPrivateKeys.size >= this.readerPrivateKeysCount) {
|
|
346
|
+
status = TLVUtils.STATUS_OUT_OF_RESOURCES;
|
|
347
|
+
}
|
|
348
|
+
else if (this.readerPrivateKeys.get(readerKeyIdentifier) !== undefined) {
|
|
349
|
+
status = TLVUtils.STATUS_DUPLICATE;
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
this.readerPrivateKeys.set(readerKeyIdentifier, readerPrivateKey);
|
|
353
|
+
}
|
|
354
|
+
const response = TLVReaderKeyResponse.getResponseForAddOperation(status);
|
|
355
|
+
hexTlvResponse = response.toHexString();
|
|
356
|
+
break;
|
|
357
|
+
}
|
|
358
|
+
// Not called
|
|
359
|
+
case this.RFEMOVE_DEVICE_CREDENTIAL_REQUEST: {
|
|
360
|
+
this.log.info(`[${this.accessoryConfiguration.accessoryName}] Access Control Point: REMOVE Device Credential`);
|
|
361
|
+
const request = tlvRequest.requestPayload;
|
|
362
|
+
const issuerKeyIdentifier = request.issuerKeyIdentifier.value;
|
|
363
|
+
//const keyIdentifier: number = request.keyIdentifier!.value as number;
|
|
364
|
+
let status = TLVUtils.STATUS_SUCCESS;
|
|
365
|
+
if (this.deviceCredentialPublicKeys.get(issuerKeyIdentifier) === undefined) {
|
|
366
|
+
status = TLVUtils.STATUS_DOES_NOT_EXIST;
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
this.deviceCredentialPublicKeys.delete(issuerKeyIdentifier);
|
|
370
|
+
}
|
|
371
|
+
const response = TLVDeviceCredentialResponse.getResponseForRemoveOperation(status);
|
|
372
|
+
hexTlvResponse = response.toHexString();
|
|
373
|
+
break;
|
|
374
|
+
}
|
|
375
|
+
case this.REMOVE_GET_READER_KEY_REQUEST: {
|
|
376
|
+
this.log.info(`[${this.accessoryConfiguration.accessoryName}] Access Control Point: REMOVE Reader Key`);
|
|
377
|
+
const request = tlvRequest.requestPayload;
|
|
378
|
+
const keyIdentifier = request.keyIdentifier.value;
|
|
379
|
+
let status = TLVUtils.STATUS_SUCCESS;
|
|
380
|
+
if (this.readerPrivateKeys.get(keyIdentifier) === undefined) {
|
|
381
|
+
status = TLVUtils.STATUS_DOES_NOT_EXIST;
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
this.readerPrivateKeys.delete(keyIdentifier);
|
|
385
|
+
}
|
|
386
|
+
const response = TLVReaderKeyResponse.getResponseForRemoveOperation(status);
|
|
387
|
+
hexTlvResponse = response.toHexString();
|
|
388
|
+
break;
|
|
389
|
+
}
|
|
390
|
+
default: {
|
|
391
|
+
if (!TLVUtils.OPERATIONS.includes(tlvRequest.operation.type)) {
|
|
392
|
+
this.log.error(`[${this.accessoryConfiguration.accessoryName}] Invalid operation: "${tlvRequest.operation.value}"`);
|
|
393
|
+
}
|
|
394
|
+
if (!TLVUtils.REQUESTS.includes(tlvRequest.request.type)) {
|
|
395
|
+
this.log.error(`[${this.accessoryConfiguration.accessoryName}] Invalid request: "${tlvRequest.request.type}"`);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] hexTlvResponse: "${hexTlvResponse}"`);
|
|
400
|
+
const base64TlvResponse = Utils.hexStringEncodeToBase64(hexTlvResponse);
|
|
401
|
+
return base64TlvResponse;
|
|
402
|
+
}
|
|
198
403
|
}
|
|
199
404
|
//# sourceMappingURL=virtualAccessoryLock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualAccessoryLock.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryLock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"virtualAccessoryLock.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryLock.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { Validatable } from '../validatable.js';
|
|
|
5
5
|
export declare class LockConfiguration implements Validatable {
|
|
6
6
|
defaultState: string;
|
|
7
7
|
autoSecurityTimeout: number;
|
|
8
|
+
walletKeyColor: string;
|
|
8
9
|
private errorFields;
|
|
9
10
|
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
|
10
11
|
isValid(prefix: string): [boolean, string[]];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable curly */
|
|
2
|
-
import { LockState } from '../schema.js';
|
|
2
|
+
import { LockState, WalletKeyColor } from '../schema.js';
|
|
3
3
|
import { Utils } from '../../utils/utils.js';
|
|
4
4
|
/**
|
|
5
5
|
*
|
|
@@ -7,6 +7,8 @@ import { Utils } from '../../utils/utils.js';
|
|
|
7
7
|
export class LockConfiguration {
|
|
8
8
|
defaultState;
|
|
9
9
|
autoSecurityTimeout;
|
|
10
|
+
// walletKeyColor: string = 'tan';
|
|
11
|
+
walletKeyColor;
|
|
10
12
|
errorFields = [];
|
|
11
13
|
fieldNames = Utils.proxiedPropertiesOf(this);
|
|
12
14
|
isValid(prefix) {
|
|
@@ -14,14 +16,24 @@ export class LockConfiguration {
|
|
|
14
16
|
LockState.States.includes(this.defaultState));
|
|
15
17
|
const isValidAutoSecurityTimeout = (Utils.required(this.autoSecurityTimeout) &&
|
|
16
18
|
Utils.isValidTimeout(this.autoSecurityTimeout));
|
|
19
|
+
// const isValidWalletKeyColor: boolean = (
|
|
20
|
+
// Utils.required(this.walletKeyColor) &&
|
|
21
|
+
// WalletKeyColor.Colors.includes(this.walletKeyColor)
|
|
22
|
+
// );
|
|
23
|
+
const isValidWalletKeyColor = (this.walletKeyColor !== undefined ?
|
|
24
|
+
WalletKeyColor.Colors.includes(this.walletKeyColor) :
|
|
25
|
+
true);
|
|
17
26
|
// Store fields failing validation
|
|
18
27
|
if (!isValidDefaultState)
|
|
19
28
|
this.errorFields.push(prefix + '.' + this.fieldNames.defaultState);
|
|
20
29
|
if (!isValidAutoSecurityTimeout)
|
|
21
30
|
this.errorFields.push(prefix + '.' + this.fieldNames.autoSecurityTimeout);
|
|
31
|
+
if (!isValidWalletKeyColor)
|
|
32
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.walletKeyColor);
|
|
22
33
|
return [
|
|
23
34
|
(isValidDefaultState &&
|
|
24
|
-
isValidAutoSecurityTimeout
|
|
35
|
+
isValidAutoSecurityTimeout &&
|
|
36
|
+
isValidWalletKeyColor),
|
|
25
37
|
this.errorFields,
|
|
26
38
|
];
|
|
27
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configurationLock.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationLock.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAG1B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"configurationLock.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationLock.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAG1B,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAC5B,YAAY,CAAU;IACtB,mBAAmB,CAAU;IAC7B,kCAAkC;IAClC,cAAc,CAAU;IAEhB,WAAW,GAAa,EAAE,CAAC;IAE1B,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEtD,OAAO,CAAC,MAAc;QACpB,MAAM,mBAAmB,GAAY,CACnC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAC7C,CAAC;QAEF,MAAM,0BAA0B,GAAY,CAC1C,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACxC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAC/C,CAAC;QAEF,2CAA2C;QAC3C,2CAA2C;QAC3C,wDAAwD;QACxD,KAAK;QACL,MAAM,qBAAqB,GAAY,CACrC,IAAI,CAAC,cAAc,KAAK,SAAS,CAAA,CAAC;YAChC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACrD,IAAI,CACP,CAAC;QAEF,kCAAkC;QAClC,IAAI,CAAC,mBAAmB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC7F,IAAI,CAAC,0BAA0B;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAC3G,IAAI,CAAC,qBAAqB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAEjG,OAAO;YACL,CAAC,mBAAmB;gBAClB,0BAA0B;gBAC1B,qBAAqB,CAAC;YACxB,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -180,3 +180,13 @@ export declare class ValveDuration {
|
|
|
180
180
|
static DurationMin: number;
|
|
181
181
|
static DurationMax: number;
|
|
182
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
*
|
|
185
|
+
*/
|
|
186
|
+
export declare class WalletKeyColor {
|
|
187
|
+
static Tan: string;
|
|
188
|
+
static Gold: string;
|
|
189
|
+
static Silver: string;
|
|
190
|
+
static Black: string;
|
|
191
|
+
static Colors: string[];
|
|
192
|
+
}
|
|
@@ -200,4 +200,14 @@ export class ValveDuration {
|
|
|
200
200
|
static DurationMin = 0;
|
|
201
201
|
static DurationMax = 3600;
|
|
202
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
*
|
|
205
|
+
*/
|
|
206
|
+
export class WalletKeyColor {
|
|
207
|
+
static Tan = 'tan';
|
|
208
|
+
static Gold = 'gold';
|
|
209
|
+
static Silver = 'silver';
|
|
210
|
+
static Black = 'black';
|
|
211
|
+
static Colors = [WalletKeyColor.Black, WalletKeyColor.Gold, WalletKeyColor.Silver, WalletKeyColor.Tan];
|
|
212
|
+
}
|
|
203
213
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/configuration/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/configuration/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TLV8
|
|
3
|
+
*
|
|
4
|
+
* https://github.com/kupa22/apple-homekey
|
|
5
|
+
*/
|
|
6
|
+
export declare class TLVUtils {
|
|
7
|
+
static readonly OPERATION: number;
|
|
8
|
+
static readonly DEVICE_CREDENTIAL_REQUEST: number;
|
|
9
|
+
static readonly DEVICE_CREDENTIAL_RESPONSE: number;
|
|
10
|
+
static readonly READER_KEY_REQUEST: number;
|
|
11
|
+
static readonly READER_KEY_RESPONSE: number;
|
|
12
|
+
static readonly REQUESTS: number[];
|
|
13
|
+
static readonly OPERATION_GET: number;
|
|
14
|
+
static readonly OPERATION_ADD: number;
|
|
15
|
+
static readonly OPERATION_REMOVE: number;
|
|
16
|
+
static readonly OPERATIONS: number[];
|
|
17
|
+
static readonly DEVICE_CREDENTIAL_REQUEST_KEY_TYPE: number;
|
|
18
|
+
static readonly DEVICE_CREDENTIAL_REQUEST_DEVICE_CREDENTIAL_PUBLIC_KEY: number;
|
|
19
|
+
static readonly DEVICE_CREDENTIAL_REQUEST_ISSUER_KEY_IDENTIFIER: number;
|
|
20
|
+
static readonly DEVICE_CREDENTIAL_REQUEST_KEY_STATE: number;
|
|
21
|
+
static readonly DEVICE_CREDENTIAL_REQUEST_KEY_IDENTIFIER: number;
|
|
22
|
+
static readonly DEVICE_CREDENTIAL_RESPONSE_KEY_IDENTIFIER: number;
|
|
23
|
+
static readonly DEVICE_CREDENTIAL_RESPONSE_ISSUER_KEY_IDENTIFIER: number;
|
|
24
|
+
static readonly DEVICE_CREDENTIAL_RESPONSE_STATUS: number;
|
|
25
|
+
static readonly READER_KEY_REQUEST_KEY_TYPE: number;
|
|
26
|
+
static readonly READER_KEY_REQUEST_READER_PRIVATE_KEY: number;
|
|
27
|
+
static readonly READER_KEY_REQUEST_UNKNOWN: number;
|
|
28
|
+
static readonly READER_KEY_REQUEST_KEY_IDENTIFIER: number;
|
|
29
|
+
static readonly READER_KEY_RESPONSE_KEY_IDENTIFIER: number;
|
|
30
|
+
static readonly READER_KEY_RESPONSE_STATUS: number;
|
|
31
|
+
static readonly KEY_TYPE_CURVE25519: number;
|
|
32
|
+
static readonly KEY_TYPE_SECP256R1: number;
|
|
33
|
+
static readonly STATUS_SUCCESS: number;
|
|
34
|
+
static readonly STATUS_OUT_OF_RESOURCES: number;
|
|
35
|
+
static readonly STATUS_DUPLICATE: number;
|
|
36
|
+
static readonly STATUS_DOES_NOT_EXIST: number;
|
|
37
|
+
static readonly STATUS_NOT_SUPPORTED: number;
|
|
38
|
+
static readonly KEY_STATE_INACTIVE: number;
|
|
39
|
+
static readonly KEY_STATE_ACTIVE: number;
|
|
40
|
+
static parseTLVs(tlvString: string): Set<TLV>;
|
|
41
|
+
static toHexString(number: number): string;
|
|
42
|
+
static getReaderIdentifier(readerPrivateKey: string): string;
|
|
43
|
+
}
|
|
44
|
+
export declare class TLV {
|
|
45
|
+
type: number;
|
|
46
|
+
length: number;
|
|
47
|
+
value: number | string;
|
|
48
|
+
static new(type: number, length: number, value: number | string): TLV;
|
|
49
|
+
static fromHexString(tlvHexString: string): TLV;
|
|
50
|
+
private constructor();
|
|
51
|
+
toHexString(): string;
|
|
52
|
+
toFormattedHexString(): string;
|
|
53
|
+
}
|
|
54
|
+
export declare class TLVRequest {
|
|
55
|
+
operation: TLV;
|
|
56
|
+
request: TLV;
|
|
57
|
+
requestPayload?: TLVDeviceCredentialRequest | TLVReaderKeyRequest;
|
|
58
|
+
constructor(tlvString: string);
|
|
59
|
+
}
|
|
60
|
+
export declare class TLVDeviceCredentialRequest {
|
|
61
|
+
keyType?: TLV;
|
|
62
|
+
deviceCredentialPublicKey?: TLV;
|
|
63
|
+
issuerKeyIdentifier?: TLV;
|
|
64
|
+
keyState?: TLV;
|
|
65
|
+
keyIdentifier?: TLV;
|
|
66
|
+
constructor(tlvString: string);
|
|
67
|
+
}
|
|
68
|
+
export declare class TLVDeviceCredentialResponse {
|
|
69
|
+
private operation;
|
|
70
|
+
private keyIdentifier?;
|
|
71
|
+
private issuerKeyIdentifier?;
|
|
72
|
+
private status?;
|
|
73
|
+
private constructor();
|
|
74
|
+
toHexString(): string;
|
|
75
|
+
static getResponseForGetOperation(keyIdentifier: string): TLVDeviceCredentialResponse;
|
|
76
|
+
static getResponseForAddOperation(issuerKeyIdentifier: string, status: number): TLVDeviceCredentialResponse;
|
|
77
|
+
static getResponseForRemoveOperation(status: number): TLVDeviceCredentialResponse;
|
|
78
|
+
}
|
|
79
|
+
export declare class TLVReaderKeyRequest {
|
|
80
|
+
keyType?: TLV;
|
|
81
|
+
readerPrivateKey?: TLV;
|
|
82
|
+
unknown?: TLV;
|
|
83
|
+
keyIdentifier?: TLV;
|
|
84
|
+
constructor(tlvString: string);
|
|
85
|
+
}
|
|
86
|
+
export declare class TLVReaderKeyResponse {
|
|
87
|
+
private operation;
|
|
88
|
+
private keyIdentifier?;
|
|
89
|
+
private status?;
|
|
90
|
+
private constructor();
|
|
91
|
+
toHexString(): string;
|
|
92
|
+
static getResponseForGetOperation(keyIdentifier: string): TLVReaderKeyResponse;
|
|
93
|
+
static getResponseForAddOperation(status: number): TLVReaderKeyResponse;
|
|
94
|
+
static getResponseForRemoveOperation(status: number): TLVReaderKeyResponse;
|
|
95
|
+
}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/* eslint-disable brace-style */
|
|
2
|
+
import { createHash } from 'crypto';
|
|
3
|
+
/**
|
|
4
|
+
* TLV8
|
|
5
|
+
*
|
|
6
|
+
* https://github.com/kupa22/apple-homekey
|
|
7
|
+
*/
|
|
8
|
+
export class TLVUtils {
|
|
9
|
+
// Request
|
|
10
|
+
static OPERATION = 1;
|
|
11
|
+
static DEVICE_CREDENTIAL_REQUEST = 4;
|
|
12
|
+
static DEVICE_CREDENTIAL_RESPONSE = 5;
|
|
13
|
+
static READER_KEY_REQUEST = 6;
|
|
14
|
+
static READER_KEY_RESPONSE = 7;
|
|
15
|
+
static REQUESTS = [TLVUtils.DEVICE_CREDENTIAL_REQUEST, TLVUtils.READER_KEY_REQUEST];
|
|
16
|
+
// Operation value
|
|
17
|
+
static OPERATION_GET = 1;
|
|
18
|
+
static OPERATION_ADD = 2;
|
|
19
|
+
static OPERATION_REMOVE = 3;
|
|
20
|
+
static OPERATIONS = [TLVUtils.OPERATION_GET, TLVUtils.OPERATION_ADD, TLVUtils.OPERATION_REMOVE];
|
|
21
|
+
// Device Credential Request
|
|
22
|
+
static DEVICE_CREDENTIAL_REQUEST_KEY_TYPE = 1; // Add
|
|
23
|
+
static DEVICE_CREDENTIAL_REQUEST_DEVICE_CREDENTIAL_PUBLIC_KEY = 2; // Add
|
|
24
|
+
static DEVICE_CREDENTIAL_REQUEST_ISSUER_KEY_IDENTIFIER = 3; // Add
|
|
25
|
+
static DEVICE_CREDENTIAL_REQUEST_KEY_STATE = 4; // Add
|
|
26
|
+
static DEVICE_CREDENTIAL_REQUEST_KEY_IDENTIFIER = 5; // Remove? (not seen yet)
|
|
27
|
+
// Device Credential Response
|
|
28
|
+
static DEVICE_CREDENTIAL_RESPONSE_KEY_IDENTIFIER = 1; // Get? (not seen yet)
|
|
29
|
+
static DEVICE_CREDENTIAL_RESPONSE_ISSUER_KEY_IDENTIFIER = 2; // Add
|
|
30
|
+
static DEVICE_CREDENTIAL_RESPONSE_STATUS = 3; // Add, Remove
|
|
31
|
+
// Reader Key Request
|
|
32
|
+
static READER_KEY_REQUEST_KEY_TYPE = 1; // Add
|
|
33
|
+
static READER_KEY_REQUEST_READER_PRIVATE_KEY = 2; // Add
|
|
34
|
+
static READER_KEY_REQUEST_UNKNOWN = 3; // Add
|
|
35
|
+
static READER_KEY_REQUEST_KEY_IDENTIFIER = 4; // Remove
|
|
36
|
+
// Reader Key Response
|
|
37
|
+
static READER_KEY_RESPONSE_KEY_IDENTIFIER = 1; // Get? (not seen yet)
|
|
38
|
+
static READER_KEY_RESPONSE_STATUS = 2; // Add, Remove
|
|
39
|
+
// Key Types values
|
|
40
|
+
static KEY_TYPE_CURVE25519 = 1;
|
|
41
|
+
static KEY_TYPE_SECP256R1 = 2;
|
|
42
|
+
// Status values
|
|
43
|
+
static STATUS_SUCCESS = 0; // Add, Remove
|
|
44
|
+
static STATUS_OUT_OF_RESOURCES = 1; // Add, Remove
|
|
45
|
+
static STATUS_DUPLICATE = 2; // Add, Remove
|
|
46
|
+
static STATUS_DOES_NOT_EXIST = 3; // Add, Remove
|
|
47
|
+
static STATUS_NOT_SUPPORTED = 4; // Add, Remove
|
|
48
|
+
// Key State values
|
|
49
|
+
static KEY_STATE_INACTIVE = 0; // (not seen yet)
|
|
50
|
+
static KEY_STATE_ACTIVE = 1;
|
|
51
|
+
static parseTLVs(tlvString) {
|
|
52
|
+
let hexString = tlvString;
|
|
53
|
+
const tlvs = new Set();
|
|
54
|
+
while (hexString.length > 0) {
|
|
55
|
+
const valueLength = parseInt(hexString.substring(2, 4), 16);
|
|
56
|
+
const splitIndex = 4 + (valueLength * 2); // hex values are two characters
|
|
57
|
+
const tlvHexObject = hexString.substring(0, splitIndex);
|
|
58
|
+
const tlv = TLV.fromHexString(tlvHexObject);
|
|
59
|
+
tlvs.add(tlv);
|
|
60
|
+
hexString = hexString.substring(splitIndex);
|
|
61
|
+
}
|
|
62
|
+
return tlvs;
|
|
63
|
+
}
|
|
64
|
+
static toHexString(number) {
|
|
65
|
+
return number.toString(16).padStart(2, '0');
|
|
66
|
+
}
|
|
67
|
+
static getReaderIdentifier(readerPrivateKey) {
|
|
68
|
+
const KEY_IDENTIFIER = '6B65792D6964656E746966696572'; // hex encoding of "key-identifier"
|
|
69
|
+
const prefixBuffer = Buffer.from(KEY_IDENTIFIER, 'hex');
|
|
70
|
+
const readerPrivateKeyBuffer = Buffer.from(readerPrivateKey, 'hex');
|
|
71
|
+
const valueBuffer = Buffer.concat([prefixBuffer, readerPrivateKeyBuffer]);
|
|
72
|
+
const sha256hash = createHash('sha256').update(valueBuffer).digest();
|
|
73
|
+
const first8Bytes = sha256hash.subarray(0, 8);
|
|
74
|
+
return first8Bytes.toString('hex');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export class TLV {
|
|
78
|
+
type = 0;
|
|
79
|
+
length = 0;
|
|
80
|
+
value = 0;
|
|
81
|
+
static new(type, length, value) {
|
|
82
|
+
const tlv = new TLV();
|
|
83
|
+
tlv.type = type;
|
|
84
|
+
tlv.length = length;
|
|
85
|
+
tlv.value = value;
|
|
86
|
+
return tlv;
|
|
87
|
+
}
|
|
88
|
+
static fromHexString(tlvHexString) {
|
|
89
|
+
const type = tlvHexString.substring(0, 2);
|
|
90
|
+
const length = tlvHexString.substring(2, 4);
|
|
91
|
+
const value = tlvHexString.substring(4);
|
|
92
|
+
const tlv = new TLV();
|
|
93
|
+
tlv.type = parseInt(type, 16);
|
|
94
|
+
tlv.length = parseInt(length, 16);
|
|
95
|
+
if (value.length === 2) {
|
|
96
|
+
tlv.value = parseInt(value, 16);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
tlv.value = value;
|
|
100
|
+
}
|
|
101
|
+
return tlv;
|
|
102
|
+
}
|
|
103
|
+
constructor() { }
|
|
104
|
+
toHexString() {
|
|
105
|
+
const type = TLVUtils.toHexString(this.type);
|
|
106
|
+
const length = TLVUtils.toHexString(this.length);
|
|
107
|
+
let value = '';
|
|
108
|
+
if (typeof this.value === 'string') {
|
|
109
|
+
value = this.value;
|
|
110
|
+
}
|
|
111
|
+
else if (typeof this.value === 'number') {
|
|
112
|
+
value = TLVUtils.toHexString(this.value);
|
|
113
|
+
}
|
|
114
|
+
return `${type}${length}${value}`;
|
|
115
|
+
}
|
|
116
|
+
toFormattedHexString() {
|
|
117
|
+
const type = TLVUtils.toHexString(this.type);
|
|
118
|
+
const length = TLVUtils.toHexString(this.length);
|
|
119
|
+
let value = '';
|
|
120
|
+
if (typeof this.value === 'string') {
|
|
121
|
+
value = this.value;
|
|
122
|
+
}
|
|
123
|
+
else if (typeof this.value === 'number') {
|
|
124
|
+
value = TLVUtils.toHexString(this.value);
|
|
125
|
+
}
|
|
126
|
+
return `${type} ${length} ${value}`;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
export class TLVRequest {
|
|
130
|
+
operation;
|
|
131
|
+
request;
|
|
132
|
+
requestPayload;
|
|
133
|
+
constructor(tlvString) {
|
|
134
|
+
const tlvs = TLVUtils.parseTLVs(tlvString);
|
|
135
|
+
tlvs.forEach(tlv => {
|
|
136
|
+
switch (tlv.type) {
|
|
137
|
+
case TLVUtils.OPERATION: {
|
|
138
|
+
this.operation = tlv;
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
default: {
|
|
142
|
+
this.request = tlv;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
if (this.request.type === TLVUtils.DEVICE_CREDENTIAL_REQUEST) {
|
|
147
|
+
this.requestPayload = new TLVDeviceCredentialRequest(this.request.value);
|
|
148
|
+
}
|
|
149
|
+
else if (this.request.type === TLVUtils.READER_KEY_REQUEST) {
|
|
150
|
+
this.requestPayload = new TLVReaderKeyRequest(this.request.value);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
console.log(`Invalid request type: ${this.request.type}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
export class TLVDeviceCredentialRequest {
|
|
158
|
+
keyType; // Add
|
|
159
|
+
deviceCredentialPublicKey; // Add
|
|
160
|
+
issuerKeyIdentifier; // Add
|
|
161
|
+
keyState; // Add
|
|
162
|
+
keyIdentifier; // Remove? (not seen yet)
|
|
163
|
+
constructor(tlvString) {
|
|
164
|
+
const tlvs = TLVUtils.parseTLVs(tlvString);
|
|
165
|
+
tlvs.forEach(tlv => {
|
|
166
|
+
switch (tlv.type) {
|
|
167
|
+
case TLVUtils.DEVICE_CREDENTIAL_REQUEST_KEY_TYPE: {
|
|
168
|
+
this.keyType = tlv;
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
case TLVUtils.DEVICE_CREDENTIAL_REQUEST_DEVICE_CREDENTIAL_PUBLIC_KEY: {
|
|
172
|
+
this.deviceCredentialPublicKey = tlv;
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
case TLVUtils.DEVICE_CREDENTIAL_REQUEST_ISSUER_KEY_IDENTIFIER: {
|
|
176
|
+
this.issuerKeyIdentifier = tlv;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
case TLVUtils.DEVICE_CREDENTIAL_REQUEST_KEY_STATE: {
|
|
180
|
+
this.keyState = tlv;
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
case TLVUtils.DEVICE_CREDENTIAL_REQUEST_KEY_IDENTIFIER: {
|
|
184
|
+
this.keyIdentifier = tlv;
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
default: {
|
|
188
|
+
console.log(`Invalid TLVDeviceCredentialRequest sub tlv: ${tlv.type}`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
export class TLVDeviceCredentialResponse {
|
|
195
|
+
operation;
|
|
196
|
+
keyIdentifier; // Get? (not seen yet)
|
|
197
|
+
issuerKeyIdentifier; // Add
|
|
198
|
+
status; // Add, Remove
|
|
199
|
+
constructor() { }
|
|
200
|
+
toHexString() {
|
|
201
|
+
let responseValue = '';
|
|
202
|
+
if (this.operation === TLVUtils.OPERATION_GET) {
|
|
203
|
+
responseValue = this.keyIdentifier.toHexString();
|
|
204
|
+
}
|
|
205
|
+
else if (this.operation === TLVUtils.OPERATION_ADD) {
|
|
206
|
+
responseValue = this.issuerKeyIdentifier.toHexString() + this.status.toHexString();
|
|
207
|
+
}
|
|
208
|
+
else if (this.operation === TLVUtils.OPERATION_REMOVE) {
|
|
209
|
+
responseValue = this.status.toHexString();
|
|
210
|
+
}
|
|
211
|
+
const responseType = TLVUtils.toHexString(TLVUtils.READER_KEY_RESPONSE);
|
|
212
|
+
const responseLength = TLVUtils.toHexString(responseValue.length / 2); // hex values are two characters
|
|
213
|
+
return `${responseType}${responseLength}${responseValue}`;
|
|
214
|
+
}
|
|
215
|
+
static getResponseForGetOperation(keyIdentifier) {
|
|
216
|
+
const response = new TLVDeviceCredentialResponse();
|
|
217
|
+
response.keyIdentifier = TLV.new(TLVUtils.DEVICE_CREDENTIAL_RESPONSE_KEY_IDENTIFIER, keyIdentifier.length / 2, keyIdentifier);
|
|
218
|
+
response.operation = TLVUtils.OPERATION_GET;
|
|
219
|
+
return response;
|
|
220
|
+
}
|
|
221
|
+
static getResponseForAddOperation(issuerKeyIdentifier, status) {
|
|
222
|
+
const response = new TLVDeviceCredentialResponse();
|
|
223
|
+
response.issuerKeyIdentifier = TLV.new(TLVUtils.DEVICE_CREDENTIAL_RESPONSE_ISSUER_KEY_IDENTIFIER, issuerKeyIdentifier.length / 2, issuerKeyIdentifier);
|
|
224
|
+
response.status = TLV.new(TLVUtils.DEVICE_CREDENTIAL_RESPONSE_STATUS, 1, status);
|
|
225
|
+
response.operation = TLVUtils.OPERATION_ADD;
|
|
226
|
+
return response;
|
|
227
|
+
}
|
|
228
|
+
static getResponseForRemoveOperation(status) {
|
|
229
|
+
const response = new TLVDeviceCredentialResponse();
|
|
230
|
+
response.status = TLV.new(TLVUtils.DEVICE_CREDENTIAL_RESPONSE_STATUS, 1, status);
|
|
231
|
+
response.operation = TLVUtils.OPERATION_REMOVE;
|
|
232
|
+
return response;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
export class TLVReaderKeyRequest {
|
|
236
|
+
keyType; // Add
|
|
237
|
+
readerPrivateKey; // Add
|
|
238
|
+
unknown; // Add
|
|
239
|
+
keyIdentifier; // Remove
|
|
240
|
+
constructor(tlvString) {
|
|
241
|
+
const tlvs = TLVUtils.parseTLVs(tlvString);
|
|
242
|
+
tlvs.forEach(tlv => {
|
|
243
|
+
switch (tlv.type) {
|
|
244
|
+
case TLVUtils.READER_KEY_REQUEST_KEY_TYPE: {
|
|
245
|
+
this.keyType = tlv;
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
case TLVUtils.READER_KEY_REQUEST_READER_PRIVATE_KEY: {
|
|
249
|
+
this.readerPrivateKey = tlv;
|
|
250
|
+
break;
|
|
251
|
+
}
|
|
252
|
+
case TLVUtils.READER_KEY_REQUEST_UNKNOWN: {
|
|
253
|
+
this.unknown = tlv;
|
|
254
|
+
break;
|
|
255
|
+
}
|
|
256
|
+
case TLVUtils.READER_KEY_REQUEST_KEY_IDENTIFIER: {
|
|
257
|
+
this.keyIdentifier = tlv;
|
|
258
|
+
break;
|
|
259
|
+
}
|
|
260
|
+
default: {
|
|
261
|
+
console.log(`Invalid TLVReaderKeyRequest sub tlv: ${tlv.type}`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
export class TLVReaderKeyResponse {
|
|
268
|
+
operation;
|
|
269
|
+
keyIdentifier; // Get
|
|
270
|
+
status; // Add, Remove
|
|
271
|
+
constructor() { }
|
|
272
|
+
toHexString() {
|
|
273
|
+
let responseValue = '';
|
|
274
|
+
if (this.operation === TLVUtils.OPERATION_GET) {
|
|
275
|
+
responseValue = this.keyIdentifier.toHexString();
|
|
276
|
+
}
|
|
277
|
+
else if (this.operation === TLVUtils.OPERATION_ADD || this.operation === TLVUtils.OPERATION_REMOVE) {
|
|
278
|
+
responseValue = this.status.toHexString();
|
|
279
|
+
}
|
|
280
|
+
const responseType = TLVUtils.toHexString(TLVUtils.READER_KEY_RESPONSE);
|
|
281
|
+
const responseLength = TLVUtils.toHexString(responseValue.length / 2); // hex values are two characters
|
|
282
|
+
return `${responseType}${responseLength}${responseValue}`;
|
|
283
|
+
}
|
|
284
|
+
static getResponseForGetOperation(keyIdentifier) {
|
|
285
|
+
const response = new TLVReaderKeyResponse();
|
|
286
|
+
response.keyIdentifier = TLV.new(TLVUtils.READER_KEY_RESPONSE_KEY_IDENTIFIER, keyIdentifier.length / 2, keyIdentifier);
|
|
287
|
+
response.operation = TLVUtils.OPERATION_GET;
|
|
288
|
+
return response;
|
|
289
|
+
}
|
|
290
|
+
static getResponseForAddOperation(status) {
|
|
291
|
+
const response = new TLVReaderKeyResponse();
|
|
292
|
+
response.status = TLV.new(TLVUtils.READER_KEY_RESPONSE_STATUS, 1, status);
|
|
293
|
+
response.operation = TLVUtils.OPERATION_ADD;
|
|
294
|
+
return response;
|
|
295
|
+
}
|
|
296
|
+
static getResponseForRemoveOperation(status) {
|
|
297
|
+
const response = new TLVReaderKeyResponse();
|
|
298
|
+
response.status = TLV.new(TLVUtils.READER_KEY_RESPONSE_STATUS, 1, status);
|
|
299
|
+
response.operation = TLVUtils.OPERATION_REMOVE;
|
|
300
|
+
return response;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
//# sourceMappingURL=tlv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tlv.js","sourceRoot":"","sources":["../../src/utils/tlv.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/utils.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ import '@js-joda/timezone';
|
|
|
6
6
|
* Utils
|
|
7
7
|
*/
|
|
8
8
|
export declare class Utils {
|
|
9
|
+
static base64DecodeToHexString(base64String: string): string;
|
|
10
|
+
static hexStringEncodeToBase64(hexString: string): string;
|
|
11
|
+
static concatenate(num1: number, num2: number): number;
|
|
9
12
|
static now(): ZonedDateTime;
|
|
10
13
|
static zonedDateTime(datetime: string): ZonedDateTime;
|
|
11
14
|
static secondsToHHmmss(seconds: number): string;
|
package/dist/utils/utils.js
CHANGED
|
@@ -5,6 +5,17 @@ import '@js-joda/timezone';
|
|
|
5
5
|
* Utils
|
|
6
6
|
*/
|
|
7
7
|
export class Utils {
|
|
8
|
+
static base64DecodeToHexString(base64String) {
|
|
9
|
+
const hexString = Buffer.from(base64String, 'base64').toString('hex');
|
|
10
|
+
return hexString;
|
|
11
|
+
}
|
|
12
|
+
static hexStringEncodeToBase64(hexString) {
|
|
13
|
+
const base64String = Buffer.from(hexString, 'hex').toString('base64');
|
|
14
|
+
return base64String;
|
|
15
|
+
}
|
|
16
|
+
static concatenate(num1, num2) {
|
|
17
|
+
return (num1 * 100) + num2;
|
|
18
|
+
}
|
|
8
19
|
static now() {
|
|
9
20
|
const now = ZonedDateTime.ofInstant(Instant.now(), ZoneId.SYSTEM);
|
|
10
21
|
return now;
|
package/dist/utils/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "homebridge-virtual-accessories",
|
|
3
3
|
"displayName": "Virtual Accessories for Homebridge",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "3.11.
|
|
5
|
+
"version": "3.11.5",
|
|
6
6
|
"description": "Virtual HomeKit accessories for Homebridge.",
|
|
7
7
|
"author": "justjam2013",
|
|
8
8
|
"license": "MIT",
|