node-switchbot 2.1.2-beta.1 → 2.1.2-beta.10

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 (73) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/dist/advertising.d.ts +77 -44
  3. package/dist/advertising.d.ts.map +1 -1
  4. package/dist/advertising.js +59 -48
  5. package/dist/advertising.js.map +1 -1
  6. package/dist/device/woblindtilt.d.ts +4 -2
  7. package/dist/device/woblindtilt.d.ts.map +1 -1
  8. package/dist/device/woblindtilt.js +4 -2
  9. package/dist/device/woblindtilt.js.map +1 -1
  10. package/dist/device/wobulb.d.ts +4 -2
  11. package/dist/device/wobulb.d.ts.map +1 -1
  12. package/dist/device/wobulb.js +4 -2
  13. package/dist/device/wobulb.js.map +1 -1
  14. package/dist/device/wocontact.d.ts +4 -2
  15. package/dist/device/wocontact.d.ts.map +1 -1
  16. package/dist/device/wocontact.js +4 -2
  17. package/dist/device/wocontact.js.map +1 -1
  18. package/dist/device/wocurtain.d.ts +3 -1
  19. package/dist/device/wocurtain.d.ts.map +1 -1
  20. package/dist/device/wocurtain.js +6 -2
  21. package/dist/device/wocurtain.js.map +1 -1
  22. package/dist/device/wohand.d.ts +4 -2
  23. package/dist/device/wohand.d.ts.map +1 -1
  24. package/dist/device/wohand.js +4 -2
  25. package/dist/device/wohand.js.map +1 -1
  26. package/dist/device/wohub2.d.ts +6 -4
  27. package/dist/device/wohub2.d.ts.map +1 -1
  28. package/dist/device/wohub2.js +17 -14
  29. package/dist/device/wohub2.js.map +1 -1
  30. package/dist/device/wohumi.d.ts +4 -2
  31. package/dist/device/wohumi.d.ts.map +1 -1
  32. package/dist/device/wohumi.js +4 -2
  33. package/dist/device/wohumi.js.map +1 -1
  34. package/dist/device/woiosensorth.d.ts +4 -2
  35. package/dist/device/woiosensorth.d.ts.map +1 -1
  36. package/dist/device/woiosensorth.js +4 -2
  37. package/dist/device/woiosensorth.js.map +1 -1
  38. package/dist/device/woplugmini.d.ts +7 -4
  39. package/dist/device/woplugmini.d.ts.map +1 -1
  40. package/dist/device/woplugmini.js +7 -4
  41. package/dist/device/woplugmini.js.map +1 -1
  42. package/dist/device/wopresence.d.ts +4 -2
  43. package/dist/device/wopresence.d.ts.map +1 -1
  44. package/dist/device/wopresence.js +4 -2
  45. package/dist/device/wopresence.js.map +1 -1
  46. package/dist/device/wosensorth.d.ts +7 -4
  47. package/dist/device/wosensorth.d.ts.map +1 -1
  48. package/dist/device/wosensorth.js +7 -4
  49. package/dist/device/wosensorth.js.map +1 -1
  50. package/dist/device/wosmartlock.d.ts +6 -2
  51. package/dist/device/wosmartlock.d.ts.map +1 -1
  52. package/dist/device/wosmartlock.js +6 -2
  53. package/dist/device/wosmartlock.js.map +1 -1
  54. package/dist/device/wosmartlockpro.d.ts +50 -0
  55. package/dist/device/wosmartlockpro.d.ts.map +1 -0
  56. package/dist/device/wosmartlockpro.js +257 -0
  57. package/dist/device/wosmartlockpro.js.map +1 -0
  58. package/dist/device/wostrip.d.ts +4 -2
  59. package/dist/device/wostrip.d.ts.map +1 -1
  60. package/dist/device/wostrip.js +4 -2
  61. package/dist/device/wostrip.js.map +1 -1
  62. package/dist/device.d.ts +2 -2
  63. package/dist/device.d.ts.map +1 -1
  64. package/dist/index.d.ts +1 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/switchbot.d.ts.map +1 -1
  67. package/dist/switchbot.js +71 -54
  68. package/dist/switchbot.js.map +1 -1
  69. package/dist/types.d.ts +228 -0
  70. package/dist/types.d.ts.map +1 -0
  71. package/dist/types.js +110 -0
  72. package/dist/types.js.map +1 -0
  73. package/package.json +8 -8
@@ -0,0 +1,50 @@
1
+ /// <reference types="node" />
2
+ import { SwitchbotDevice } from '../device.js';
3
+ import { SwitchBotBLEModel, SwitchBotBLEModelName, SwitchBotBLEModelFriendlyName } from '../types.js';
4
+ import Noble from '@stoprocent/noble';
5
+ export declare class WoSmartLockPro extends SwitchbotDevice {
6
+ _iv: Buffer | null;
7
+ _key_id: string;
8
+ _encryption_key: Buffer | null;
9
+ static COMMAND_GET_CK_IV: string;
10
+ static COMMAND_LOCK_INFO: string;
11
+ static COMMAND_UNLOCK: string;
12
+ static COMMAND_UNLOCK_NO_UNLATCH: string;
13
+ static COMMAND_LOCK: string;
14
+ static COMMAND_ENABLE_NOTIFICATIONS: string;
15
+ static COMMAND_DISABLE_NOTIFICATIONS: string;
16
+ static Result: {
17
+ ERROR: number;
18
+ SUCCESS: number;
19
+ SUCCESS_LOW_BATTERY: number;
20
+ };
21
+ static validateResponse(res: Buffer): number;
22
+ static getLockStatus(code: number): "LOCKED" | "UNLOCKED" | "LOCKING" | "UNLOCKING" | "LOCKING_STOP" | "UNLOCKING_STOP" | "NOT_FULLY_LOCKED" | "UNKNOWN";
23
+ static parseServiceData(serviceData: Buffer, manufacturerData: Buffer, onlog: ((message: string) => void) | undefined): {
24
+ model: SwitchBotBLEModel;
25
+ modelName: SwitchBotBLEModelName;
26
+ modelFriendlyName: SwitchBotBLEModelFriendlyName;
27
+ battery: number;
28
+ calibration: boolean;
29
+ status: string;
30
+ update_from_secondary_lock: boolean;
31
+ door_open: boolean;
32
+ double_lock_mode: boolean;
33
+ unclosed_alarm: boolean;
34
+ unlocked_alarm: boolean;
35
+ auto_lock_paused: boolean;
36
+ night_latch: boolean;
37
+ } | null;
38
+ constructor(peripheral: Noble.Peripheral, noble: typeof Noble);
39
+ setKey(keyId: string, encryptionKey: string): void;
40
+ unlock(): Promise<number>;
41
+ unlockNoUnlatch(): Promise<number>;
42
+ lock(): Promise<number>;
43
+ info(): Promise<unknown>;
44
+ _encrypt(str: string): string;
45
+ _decrypt(data: Buffer): Buffer;
46
+ _getIv(): Promise<Buffer>;
47
+ _encryptedCommand(key: string): Promise<Buffer>;
48
+ _operateLock(key: string, encrypt?: boolean): Promise<Buffer>;
49
+ }
50
+ //# sourceMappingURL=wosmartlockpro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wosmartlockpro.d.ts","sourceRoot":"","sources":["../../src/device/wosmartlockpro.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AACtG,OAAO,KAAK,MAAM,mBAAmB,CAAC;AAGtC,qBAAa,cAAe,SAAQ,eAAe;IACjD,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B,MAAM,CAAC,iBAAiB,SAAc;IACtC,MAAM,CAAC,iBAAiB,SAAgB;IACxC,MAAM,CAAC,cAAc,SAAoB;IACzC,MAAM,CAAC,yBAAyB,SAAoB;IACpD,MAAM,CAAC,YAAY,SAAoB;IACvC,MAAM,CAAC,4BAA4B,SAAsB;IACzD,MAAM,CAAC,6BAA6B,SAAU;IAE9C,MAAM,CAAC,MAAM;;;;MAIX;IAEF,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM;IAYnC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM;IAqBjC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;gBA8CzG,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,KAAK;IAiB7D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAiB3C,MAAM;IAsBN,eAAe;IAsBf,IAAI;IAsBJ,IAAI;IAkBJ,QAAQ,CAAC,GAAG,EAAE,MAAM;IAKpB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAKf,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAQzB,iBAAiB,CAAC,GAAG,EAAE,MAAM;IAoBnC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAwBpE"}
@@ -0,0 +1,257 @@
1
+ /*
2
+ * wosmartlock.ts: Switchbot BLE API registration.
3
+ * adapted off the work done by [pySwitchbot](https://github.com/Danielhiversen/pySwitchbot)
4
+ */
5
+ import { SwitchbotDevice } from '../device.js';
6
+ import { SwitchBotBLEModel, SwitchBotBLEModelName, SwitchBotBLEModelFriendlyName } from '../types.js';
7
+ import * as Crypto from 'crypto';
8
+ export class WoSmartLockPro extends SwitchbotDevice {
9
+ _iv;
10
+ _key_id;
11
+ _encryption_key;
12
+ static COMMAND_GET_CK_IV = '570f2103';
13
+ static COMMAND_LOCK_INFO = '570f4f8102';
14
+ static COMMAND_UNLOCK = '0f4e0101000180';
15
+ static COMMAND_UNLOCK_NO_UNLATCH = '570f4e010110a0';
16
+ static COMMAND_LOCK = '0f4e0101000100';
17
+ static COMMAND_ENABLE_NOTIFICATIONS = '0e01001e00008101';
18
+ static COMMAND_DISABLE_NOTIFICATIONS = '0e00';
19
+ static Result = {
20
+ ERROR: 0x00,
21
+ SUCCESS: 0x01,
22
+ SUCCESS_LOW_BATTERY: 0x06,
23
+ };
24
+ static validateResponse(res) {
25
+ if (res.length >= 3) {
26
+ switch (res.readUInt8(0)) {
27
+ case WoSmartLockPro.Result.SUCCESS:
28
+ return WoSmartLockPro.Result.SUCCESS;
29
+ case WoSmartLockPro.Result.SUCCESS_LOW_BATTERY:
30
+ return WoSmartLockPro.Result.SUCCESS_LOW_BATTERY;
31
+ }
32
+ }
33
+ return WoSmartLockPro.Result.ERROR;
34
+ }
35
+ static getLockStatus(code) {
36
+ switch (code) {
37
+ case 0b0000000:
38
+ return 'LOCKED';
39
+ case 0b0010000:
40
+ return 'UNLOCKED';
41
+ case 0b0100000:
42
+ return 'LOCKING';
43
+ case 0b0110000:
44
+ return 'UNLOCKING';
45
+ case 0b1000000:
46
+ return 'LOCKING_STOP';
47
+ case 0b1010000:
48
+ return 'UNLOCKING_STOP';
49
+ case 0b1100000: //Only EU lock type
50
+ return 'NOT_FULLY_LOCKED';
51
+ default:
52
+ return 'UNKNOWN';
53
+ }
54
+ }
55
+ static parseServiceData(serviceData, manufacturerData, onlog) {
56
+ if (manufacturerData.length < 11) {
57
+ if (onlog && typeof onlog === 'function') {
58
+ onlog(`[parseServiceDataForWoSmartLockPro] Buffer length ${manufacturerData.length} is too short!`);
59
+ }
60
+ return null;
61
+ }
62
+ // adv data needs both service data and manufacturer data
63
+ // byte var names based on documentation
64
+ const byte2 = serviceData.readUInt8(2);
65
+ const byte15 = manufacturerData.readUInt8(9);
66
+ const byte16 = manufacturerData.readUInt8(10);
67
+ const battery = byte2 & 0b01111111; // %
68
+ const calibration = byte15 & 0b10000000 ? true : false;
69
+ const status = WoSmartLockPro.getLockStatus(byte15 & 0b01110000);
70
+ const update_from_secondary_lock = byte15 & 0b00001000 ? true : false;
71
+ const door_open = byte15 & 0b00000100 ? true : false;
72
+ const double_lock_mode = byte16 & 0b10000000 ? true : false;
73
+ const unclosed_alarm = byte16 & 0b00100000 ? true : false;
74
+ const unlocked_alarm = byte16 & 0b00010000 ? true : false;
75
+ const auto_lock_paused = byte16 & 0b00000010 ? true : false;
76
+ const night_latch = manufacturerData.length > 11 && manufacturerData.readUInt8(11) & 0b00000001 ? true : false;
77
+ const data = {
78
+ model: SwitchBotBLEModel.LockPro,
79
+ modelName: SwitchBotBLEModelName.LockPro,
80
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.LockPro,
81
+ battery: battery,
82
+ calibration: calibration,
83
+ status: status,
84
+ update_from_secondary_lock: update_from_secondary_lock,
85
+ door_open: door_open,
86
+ double_lock_mode: double_lock_mode,
87
+ unclosed_alarm: unclosed_alarm,
88
+ unlocked_alarm: unlocked_alarm,
89
+ auto_lock_paused: auto_lock_paused,
90
+ night_latch: night_latch,
91
+ };
92
+ return data;
93
+ }
94
+ constructor(peripheral, noble) {
95
+ super(peripheral, noble);
96
+ this._iv = null;
97
+ this._key_id = '';
98
+ this._encryption_key = null;
99
+ }
100
+ /* ------------------------------------------------------------------
101
+ * setKey()
102
+ * - initialise the encryption key info for valid lock communication, this currently must be retrived externally
103
+ *
104
+ * [Arguments]
105
+ * - keyId, encryptionKey
106
+ *
107
+ * [Return value]
108
+ * - void
109
+ * ---------------------------------------------------------------- */
110
+ setKey(keyId, encryptionKey) {
111
+ this._iv = null;
112
+ this._key_id = keyId;
113
+ this._encryption_key = Buffer.from(encryptionKey, 'hex');
114
+ }
115
+ /* ------------------------------------------------------------------
116
+ * unlock()
117
+ * - Unlock the Smart Lock
118
+ *
119
+ * [Arguments]
120
+ * - none
121
+ *
122
+ * [Return value]
123
+ * - Promise object
124
+ * WoSmartLockPro.LockResult will be passed to the `resolve()`.
125
+ * ---------------------------------------------------------------- */
126
+ unlock() {
127
+ return new Promise((resolve, reject) => {
128
+ this._operateLock(WoSmartLockPro.COMMAND_UNLOCK)
129
+ .then((resBuf) => {
130
+ resolve(WoSmartLockPro.validateResponse(resBuf));
131
+ }).catch((error) => {
132
+ reject(error);
133
+ });
134
+ });
135
+ }
136
+ /* ------------------------------------------------------------------
137
+ * unlockNoUnlatch()
138
+ * - Unlock the Smart Lock without unlatching door
139
+ *
140
+ * [Arguments]
141
+ * - none
142
+ *
143
+ * [Return value]
144
+ * - Promise object
145
+ * WoSmartLockPro.LockResult will be passed to the `resolve()`.
146
+ * ---------------------------------------------------------------- */
147
+ unlockNoUnlatch() {
148
+ return new Promise((resolve, reject) => {
149
+ this._operateLock(WoSmartLockPro.COMMAND_UNLOCK_NO_UNLATCH)
150
+ .then((resBuf) => {
151
+ resolve(WoSmartLockPro.validateResponse(resBuf));
152
+ }).catch((error) => {
153
+ reject(error);
154
+ });
155
+ });
156
+ }
157
+ /* ------------------------------------------------------------------
158
+ * lock()
159
+ * - Lock the Smart Lock
160
+ *
161
+ * [Arguments]
162
+ * - none
163
+ *
164
+ * [Return value]
165
+ * - Promise object
166
+ * WoSmartLockPro.LockResult will be passed to the `resolve()`.
167
+ * ---------------------------------------------------------------- */
168
+ lock() {
169
+ return new Promise((resolve, reject) => {
170
+ this._operateLock(WoSmartLockPro.COMMAND_LOCK)
171
+ .then((resBuf) => {
172
+ resolve(WoSmartLockPro.validateResponse(resBuf));
173
+ }).catch((error) => {
174
+ reject(error);
175
+ });
176
+ });
177
+ }
178
+ /* ------------------------------------------------------------------
179
+ * info()
180
+ * - Get general state info from the Smart Lock
181
+ *
182
+ * [Arguments]
183
+ * - none
184
+ *
185
+ * [Return value]
186
+ * - Promise object
187
+ * state object will be passed to the `resolve()`
188
+ * ---------------------------------------------------------------- */
189
+ info() {
190
+ return new Promise((resolve, reject) => {
191
+ this._operateLock(WoSmartLockPro.COMMAND_LOCK_INFO)
192
+ .then(resBuf => {
193
+ const data = {
194
+ 'calibration': Boolean(resBuf[1] & 0b10000000),
195
+ 'status': WoSmartLockPro.getLockStatus((resBuf[1] & 0b01110000)),
196
+ 'door_open': Boolean(resBuf[1] & 0b00000100),
197
+ 'unclosed_alarm': Boolean(resBuf[2] & 0b00100000),
198
+ 'unlocked_alarm': Boolean(resBuf[2] & 0b00010000),
199
+ };
200
+ resolve(data);
201
+ }).catch((error) => {
202
+ reject(error);
203
+ });
204
+ });
205
+ }
206
+ _encrypt(str) {
207
+ const cipher = Crypto.createCipheriv('aes-128-ctr', this._encryption_key, this._iv);
208
+ return Buffer.concat([cipher.update(str, 'hex'), cipher.final()]).toString('hex');
209
+ }
210
+ _decrypt(data) {
211
+ const decipher = Crypto.createDecipheriv('aes-128-ctr', this._encryption_key, this._iv);
212
+ return Buffer.concat([decipher.update(data), decipher.final()]);
213
+ }
214
+ async _getIv() {
215
+ if (this._iv === null) {
216
+ const res = await this._operateLock(WoSmartLockPro.COMMAND_GET_CK_IV + this._key_id, false);
217
+ this._iv = res.subarray(4);
218
+ }
219
+ return this._iv;
220
+ }
221
+ async _encryptedCommand(key) {
222
+ const iv = await this._getIv();
223
+ const req = Buffer.from(key.substring(0, 2) + this._key_id + Buffer.from(iv.subarray(0, 2)).toString('hex') + this._encrypt(key.substring(2)), 'hex');
224
+ const bytes = await this._command(req);
225
+ const buf = Buffer.from(bytes);
226
+ const code = WoSmartLockPro.validateResponse(buf);
227
+ if (code !== WoSmartLockPro.Result.ERROR) {
228
+ return Buffer.concat([buf.subarray(0, 1), this._decrypt(buf.subarray(4))]);
229
+ }
230
+ else {
231
+ throw (new Error('The device returned an error: 0x' + buf.toString('hex')));
232
+ }
233
+ }
234
+ _operateLock(key, encrypt = true) {
235
+ //encrypted command
236
+ if (encrypt) {
237
+ return this._encryptedCommand(key);
238
+ }
239
+ //unencypted command
240
+ return new Promise((resolve, reject) => {
241
+ const req = Buffer.from(key.substring(0, 2) + '000000' + key.substring(2), 'hex');
242
+ this._command(req).then(bytes => {
243
+ const buf = Buffer.from(bytes);
244
+ const code = WoSmartLockPro.validateResponse(buf);
245
+ if (code === WoSmartLockPro.Result.ERROR) {
246
+ reject(new Error('The device returned an error: 0x' + buf.toString('hex')));
247
+ }
248
+ else {
249
+ resolve(buf);
250
+ }
251
+ }).catch(error => {
252
+ reject(error);
253
+ });
254
+ });
255
+ }
256
+ }
257
+ //# sourceMappingURL=wosmartlockpro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wosmartlockpro.js","sourceRoot":"","sources":["../../src/device/wosmartlockpro.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAEtG,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,MAAM,OAAO,cAAe,SAAQ,eAAe;IACjD,GAAG,CAAgB;IACnB,OAAO,CAAS;IAChB,eAAe,CAAgB;IAE/B,MAAM,CAAC,iBAAiB,GAAG,UAAU,CAAC;IACtC,MAAM,CAAC,iBAAiB,GAAG,YAAY,CAAC;IACxC,MAAM,CAAC,cAAc,GAAG,gBAAgB,CAAC;IACzC,MAAM,CAAC,yBAAyB,GAAG,gBAAgB,CAAC;IACpD,MAAM,CAAC,YAAY,GAAG,gBAAgB,CAAC;IACvC,MAAM,CAAC,4BAA4B,GAAG,kBAAkB,CAAC;IACzD,MAAM,CAAC,6BAA6B,GAAG,MAAM,CAAC;IAE9C,MAAM,CAAC,MAAM,GAAG;QACd,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;QACb,mBAAmB,EAAE,IAAI;KAC1B,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,GAAW;QACjC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACpB,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,KAAK,cAAc,CAAC,MAAM,CAAC,OAAO;oBAChC,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;gBACvC,KAAK,cAAc,CAAC,MAAM,CAAC,mBAAmB;oBAC5C,OAAO,cAAc,CAAC,MAAM,CAAC,mBAAmB,CAAC;YACrD,CAAC;QACH,CAAC;QACD,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAY;QAC/B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,SAAS;gBACZ,OAAO,QAAQ,CAAC;YAClB,KAAK,SAAS;gBACZ,OAAO,UAAU,CAAC;YACpB,KAAK,SAAS;gBACZ,OAAO,SAAS,CAAC;YACnB,KAAK,SAAS;gBACZ,OAAO,WAAW,CAAC;YACrB,KAAK,SAAS;gBACZ,OAAO,cAAc,CAAC;YACxB,KAAK,SAAS;gBACZ,OAAO,gBAAgB,CAAC;YAC1B,KAAK,SAAS,EAAE,mBAAmB;gBACjC,OAAO,kBAAkB,CAAC;YAC5B;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,WAAmB,EAAE,gBAAwB,EAAE,KAA8C;QACnH,IAAI,gBAAgB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACjC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CACH,qDAAqD,gBAAgB,CAAC,MAAM,gBAAgB,CAC7F,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,yDAAyD;QACzD,wCAAwC;QACxC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE9C,MAAM,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,IAAI;QACxC,MAAM,WAAW,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACvD,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;QACjE,MAAM,0BAA0B,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACtE,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACrD,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5D,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1D,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1D,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5D,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,GAAG,EAAE,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAE/G,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,iBAAiB,CAAC,OAAO;YAChC,SAAS,EAAE,qBAAqB,CAAC,OAAO;YACxC,iBAAiB,EAAE,6BAA6B,CAAC,OAAO;YACxD,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,MAAM;YACd,0BAA0B,EAAE,0BAA0B;YACtD,SAAS,EAAE,SAAS;YACpB,gBAAgB,EAAE,gBAAgB;YAClC,cAAc,EAAE,cAAc;YAC9B,cAAc,EAAE,cAAc;YAC9B,gBAAgB,EAAE,gBAAgB;YAClC,WAAW,EAAE,WAAW;SACzB,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,UAA4B,EAAE,KAAmB;QAC3D,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED;;;;;;;;;0EASsE;IACtE,MAAM,CAAC,KAAa,EAAE,aAAqB;QACzC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;0EAUsE;IACtE,MAAM;QACJ,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,cAAc,CAAC;iBAC7C,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjB,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;0EAUsE;IACtE,eAAe;QACb,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,yBAAyB,CAAC;iBACxD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjB,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;0EAUsE;IACtE,IAAI;QACF,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC;iBAC3C,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjB,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;0EAUsE;IACtE,IAAI;QACF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,iBAAiB,CAAC;iBAChD,IAAI,CAAC,MAAM,CAAC,EAAE;gBACb,MAAM,IAAI,GAAG;oBACX,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;oBAC9C,QAAQ,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;oBAChE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;oBAC5C,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;oBACjD,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;iBAClD,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjB,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,eAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACrF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpF,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,eAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACzF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5F,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,GAAW;QACjC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CACrB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACnH,KAAK,CAAC,CAAC;QAEX,MAAM,KAAK,GAAY,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAmB,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,IAAI,KAAK,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,MAAM,CACJ,IAAI,KAAK,CAAC,kCAAkC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CACjE,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,UAAmB,IAAI;QAC/C,mBAAmB;QACnB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAED,oBAAoB;QACpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAElF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAmB,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAElD,IAAI,IAAI,KAAK,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACzC,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC"}
@@ -1,12 +1,14 @@
1
1
  /// <reference types="node" />
2
2
  import { SwitchbotDevice } from '../device.js';
3
+ import { SwitchBotBLEModel, SwitchBotBLEModelName, SwitchBotBLEModelFriendlyName } from '../types.js';
3
4
  /**
4
5
  * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/colorbulb.md
5
6
  */
6
7
  export declare class WoStrip extends SwitchbotDevice {
7
8
  static parseServiceData(buf: Buffer, onlog: ((message: string) => void) | undefined): {
8
- model: string;
9
- modelName: string;
9
+ model: SwitchBotBLEModel;
10
+ modelName: SwitchBotBLEModelName;
11
+ modelFriendlyName: SwitchBotBLEModelFriendlyName;
10
12
  state: boolean;
11
13
  brightness: number;
12
14
  red: number;
@@ -1 +1 @@
1
- {"version":3,"file":"wostrip.d.ts","sourceRoot":"","sources":["../../src/device/wostrip.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C;;GAEG;AACH,qBAAa,OAAQ,SAAQ,eAAe;IAC1C,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;;;IAiDnF;;OAEG;IACH,SAAS;IAIT;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE;IAKhC;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,OAAO;IAIP;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM;IAmBhC;;OAEG;IACH,mBAAmB,CAAC,iBAAiB,EAAE,OAAO;IAa9C;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAgEnE;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;CAgC5B"}
1
+ {"version":3,"file":"wostrip.d.ts","sourceRoot":"","sources":["../../src/device/wostrip.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAEtG;;GAEG;AACH,qBAAa,OAAQ,SAAQ,eAAe;IAC1C,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;IAkDnF;;OAEG;IACH,SAAS;IAIT;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE;IAKhC;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,OAAO;IAIP;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM;IAmBhC;;OAEG;IACH,mBAAmB,CAAC,iBAAiB,EAAE,OAAO;IAa9C;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAgEnE;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;CAgC5B"}
@@ -3,6 +3,7 @@
3
3
  * wostrip.ts: Switchbot BLE API registration.
4
4
  */
5
5
  import { SwitchbotDevice } from '../device.js';
6
+ import { SwitchBotBLEModel, SwitchBotBLEModelName, SwitchBotBLEModelFriendlyName } from '../types.js';
6
7
  /**
7
8
  * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/colorbulb.md
8
9
  */
@@ -34,8 +35,9 @@ export class WoStrip extends SwitchbotDevice {
34
35
  const speed = byte9 & 0b01111111;
35
36
  const loop_index = byte10 & 0b11111110;
36
37
  const data = {
37
- model: 'r',
38
- modelName: 'WoStrip',
38
+ model: SwitchBotBLEModel.StripLight,
39
+ modelName: SwitchBotBLEModelName.StripLight,
40
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.StripLight,
39
41
  state: state,
40
42
  brightness: brightness,
41
43
  red: red,
@@ -1 +1 @@
1
- {"version":3,"file":"wostrip.js","sourceRoot":"","sources":["../../src/device/wostrip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wostrip.js","sourceRoot":"","sources":["../../src/device/wostrip.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAEtG;;GAEG;AACH,MAAM,OAAO,OAAQ,SAAQ,eAAe;IAC1C,MAAM,CAAC,gBAAgB,CAAC,GAAW,EAAE,KAA8C;QACjF,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACtB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CACH,8CAA8C,GAAG,CAAC,MAAM,UAAU,CACnE,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,yDAAyD;QACzD,kDAAkD;QAClD,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA,QAAQ;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA,QAAQ;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA,QAAQ;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEjC,MAAM,KAAK,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAChD,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC;QAClB,MAAM,KAAK,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,MAAM,KAAK,GAAG,KAAK,GAAG,UAAU,CAAC;QACjC,MAAM,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;QAClC,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,GAAG,UAAU,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;QAEvC,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,iBAAiB,CAAC,UAAU;YACnC,SAAS,EAAE,qBAAqB,CAAC,UAAU;YAC3C,iBAAiB,EAAE,6BAA6B,CAAC,UAAU;YAC3D,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,UAAU;YACtB,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,UAAU;YACtB,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,UAAU;SACvB,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,YAAsB;QAC9B,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,UAAkB;QAC9B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,CACJ,IAAI,KAAK,CACP,yDAAyD;oBACzD,OAAO,UAAU,CAClB,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YACrB,UAAU,GAAG,GAAG,CAAC;QACnB,CAAC;aAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAC1B,UAAU,GAAG,CAAC,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,iBAA0B;QAC5C,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,CACJ,IAAI,KAAK,CACP,kDAAkD;oBAClD,OAAO,iBAAiB,CACzB,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAkB,EAAE,GAAW,EAAE,KAAa,EAAE,IAAY;QACjE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,CACJ,IAAI,KAAK,CACP,yDAAyD;oBACzD,OAAO,UAAU,CAClB,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,CACJ,IAAI,KAAK,CACP,uCAAuC;oBACvC,OAAO,GAAG,CACX,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,CACJ,IAAI,KAAK,CACP,yCAAyC;oBACzC,OAAO,KAAK,CACb,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,CACJ,IAAI,KAAK,CACP,wCAAwC;oBACxC,OAAO,IAAI,CACZ,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YACrB,UAAU,GAAG,GAAG,CAAC;QACnB,CAAC;aAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAC1B,UAAU,GAAG,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;YACd,GAAG,GAAG,GAAG,CAAC;QACZ,CAAC;aAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACnB,GAAG,GAAG,CAAC,CAAC;QACV,CAAC;QACD,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YAChB,KAAK,GAAG,GAAG,CAAC;QACd,CAAC;aAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;YACf,IAAI,GAAG,GAAG,CAAC;QACb,CAAC;aAAM,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAe;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;iBACnB,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBAClB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAClC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBACnC,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;wBAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,MAAM,CACJ,IAAI,KAAK,CACP,kCAAkC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC7D,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CACJ,IAAI,KAAK,CACP,8CAA8C;wBAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CACxB,CACF,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
package/dist/device.d.ts CHANGED
@@ -19,7 +19,7 @@ export declare class SwitchbotDevice {
19
19
  _id: string | null;
20
20
  _address: string | null;
21
21
  _model: string | null;
22
- _modelName: string | null;
22
+ _modelName: import("./types.js").SwitchBotBLEModelName | null;
23
23
  _was_connected_explicitly: boolean;
24
24
  _connected: boolean;
25
25
  _onconnect: () => void;
@@ -30,7 +30,7 @@ export declare class SwitchbotDevice {
30
30
  get id(): string | null;
31
31
  get address(): string | null;
32
32
  get model(): string | null;
33
- get modelName(): string | null;
33
+ get modelName(): import("./types.js").SwitchBotBLEModelName | null;
34
34
  get connectionState(): "error" | "connected" | "connecting" | "disconnected" | "disconnecting";
35
35
  set onconnect(func: () => void);
36
36
  set ondisconnect(func: () => void);
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,MAAM,mBAAmB,CAAC;AAItC,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;IACpC,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;CACrC,GAAG,IAAI,CAAC;AAET,qBAAa,eAAe;IAC1B,WAAW,mBAAC;IACZ,MAAM,eAAC;IACP,MAAM,EAAE,KAAK,CAAC;IACd,kBAAkB,SAAsC;IACxD,gBAAgB,SAAsC;IACtD,iBAAiB,SAAsC;IACvD,iBAAiB,SAAU;IAC3B,kBAAkB,SAAQ;IAC1B,mBAAmB,SAAQ;IAC3B,qBAAqB,SAAQ;IAC7B,GAAG,gBAAC;IACJ,QAAQ,gBAAC;IACT,MAAM,gBAAC;IACP,UAAU,gBAAC;IACX,yBAAyB,UAAC;IAC1B,UAAU,UAAC;IACX,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,sBAAsB,EAAE,MAAM,IAAI,CAAC;IACnC,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;gBAS9B,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,KAAK;IAuB7D,IAAI,EAAE,kBAEL;IAED,IAAI,OAAO,kBAEV;IAED,IAAI,KAAK,kBAER;IAED,IAAI,SAAS,kBAEZ;IAED,IAAI,eAAe,4EAMlB;IAGD,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,IAAI,EAK7B;IAED,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,EAKhC;IAaD,OAAO;IAKP,QAAQ;IA4DR,mBAAmB,IAAI,OAAO,CAAC,KAAK,CAAC;IAsErC,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAwB7C,wBAAwB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;IAYjF,UAAU;IAoBV,YAAY;IAyBZ,UAAU;IAyBV,WAAW;IAmBX,aAAa;IAwCb,aAAa,CAAC,IAAI,EAAE,MAAM;IA4C1B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgC1C,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAoBvC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBlD,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;CAqBxE"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,MAAM,mBAAmB,CAAC;AAItC,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;IACpC,MAAM,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;CACrC,GAAG,IAAI,CAAC;AAET,qBAAa,eAAe;IAC1B,WAAW,mBAAC;IACZ,MAAM,eAAC;IACP,MAAM,EAAE,KAAK,CAAC;IACd,kBAAkB,SAAsC;IACxD,gBAAgB,SAAsC;IACtD,iBAAiB,SAAsC;IACvD,iBAAiB,SAAU;IAC3B,kBAAkB,SAAQ;IAC1B,mBAAmB,SAAQ;IAC3B,qBAAqB,SAAQ;IAC7B,GAAG,gBAAC;IACJ,QAAQ,gBAAC;IACT,MAAM,gBAAC;IACP,UAAU,oDAAC;IACX,yBAAyB,UAAC;IAC1B,UAAU,UAAC;IACX,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,sBAAsB,EAAE,MAAM,IAAI,CAAC;IACnC,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;gBAS9B,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,KAAK;IAuB7D,IAAI,EAAE,kBAEL;IAED,IAAI,OAAO,kBAEV;IAED,IAAI,KAAK,kBAER;IAED,IAAI,SAAS,sDAEZ;IAED,IAAI,eAAe,4EAMlB;IAGD,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,IAAI,EAK7B;IAED,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,EAKhC;IAaD,OAAO;IAKP,QAAQ;IA4DR,mBAAmB,IAAI,OAAO,CAAC,KAAK,CAAC;IAsErC,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAwB7C,wBAAwB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;IAYjF,UAAU;IAoBV,YAAY;IAyBZ,UAAU;IAyBV,WAAW;IAmBX,aAAa;IAwCb,aAAa,CAAC,IAAI,EAAE,MAAM;IA4C1B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgC1C,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAoBvC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBlD,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;CAqBxE"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './switchbot.js';
2
+ export { SwitchBotBLEDevice } from './types.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"switchbot.d.ts","sourceRoot":"","sources":["../src/switchbot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,mBAAmB,CAAC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAc9C,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,KAAK,MAAM,GAAG;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,CAAA;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAgB;IAC7B,KAAK,EAAG,OAAO,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/C,0BAA0B,SAAQ;IAClC,yBAAyB,UAAM;gBAanB,MAAM,CAAC,EAAE,MAAM;IAKrB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM;IAkD1B,QAAQ,CAAC,MAAM,GAAE,MAAW;IAmHtB,KAAK;IAwCX,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAyDvE,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IA6EnD,SAAS,CAAC,MAAM,GAAE,MAAW;IA2F7B,QAAQ;IAoBR,IAAI,CAAC,IAAI,EAAE,MAAM;CAmBlB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"switchbot.d.ts","sourceRoot":"","sources":["../src/switchbot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,mBAAmB,CAAC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAgB9C,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAGtC,KAAK,MAAM,GAAG;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,CAAA;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAgB;IAC7B,KAAK,EAAG,OAAO,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/C,0BAA0B,SAAQ;IAClC,yBAAyB,UAAM;gBAanB,MAAM,CAAC,EAAE,MAAM;IAKrB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM;IAmD1B,QAAQ,CAAC,MAAM,GAAE,MAAW;IAqHtB,KAAK;IAwCX,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IA+DvE,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAgFnD,SAAS,CAAC,MAAM,GAAE,MAAW;IA6F7B,QAAQ;IAoBR,IAAI,CAAC,IAAI,EAAE,MAAM;CAmBlB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
package/dist/switchbot.js CHANGED
@@ -8,11 +8,14 @@ import { WoPresence } from './device/wopresence.js';
8
8
  import { WoContact } from './device/wocontact.js';
9
9
  import { WoSensorTH } from './device/wosensorth.js';
10
10
  import { WoIOSensorTH } from './device/woiosensorth.js';
11
+ import { WoHub2 } from './device/wohub2.js';
11
12
  import { WoHumi } from './device/wohumi.js';
12
13
  import { WoPlugMini } from './device/woplugmini.js';
13
14
  import { WoBulb } from './device/wobulb.js';
14
15
  import { WoStrip } from './device/wostrip.js';
15
16
  import { WoSmartLock } from './device/wosmartlock.js';
17
+ import { WoSmartLockPro } from './device/wosmartlockpro.js';
18
+ import { SwitchBotBLEModel } from './types.js';
16
19
  export class SwitchBot {
17
20
  ready;
18
21
  noble;
@@ -66,6 +69,7 @@ export class SwitchBot {
66
69
  * | | | If "u" is specified, this method will discover only Color Bulbs.
67
70
  * | | | If "g" is specified, this method will discover only Plugs.
68
71
  * | | | If "o" is specified, this method will discover only Locks.
72
+ * | | | If "$" is specified, this method will discover only Lock Pros.
69
73
  * | | | If "i" is specified, this method will discover only Meter Pluses.
70
74
  * | | | If "r" is specified, this method will discover only Locks.
71
75
  * - id | String | Optional | If this value is set, this method will discover
@@ -93,21 +97,23 @@ export class SwitchBot {
93
97
  required: false,
94
98
  type: 'string',
95
99
  enum: [
96
- 'H',
97
- 'T',
98
- 'e',
99
- 's',
100
- 'd',
101
- 'c',
102
- '{',
103
- 'u',
104
- 'g',
105
- 'j',
106
- 'o',
107
- 'i',
108
- 'r',
109
- 'x',
110
- 'w',
100
+ SwitchBotBLEModel.Bot,
101
+ SwitchBotBLEModel.Curtain,
102
+ SwitchBotBLEModel.Curtain3,
103
+ SwitchBotBLEModel.Humidifier,
104
+ SwitchBotBLEModel.Meter,
105
+ SwitchBotBLEModel.MeterPlus,
106
+ SwitchBotBLEModel.Hub2,
107
+ SwitchBotBLEModel.OutdoorMeter,
108
+ SwitchBotBLEModel.MotionSensor,
109
+ SwitchBotBLEModel.ContactSensor,
110
+ SwitchBotBLEModel.ColorBulb,
111
+ SwitchBotBLEModel.StripLight,
112
+ SwitchBotBLEModel.PlugMiniUS,
113
+ SwitchBotBLEModel.PlugMiniJP,
114
+ SwitchBotBLEModel.Lock,
115
+ SwitchBotBLEModel.LockPro,
116
+ SwitchBotBLEModel.BlindTilt,
111
117
  ],
112
118
  },
113
119
  id: { required: false, type: 'string', min: 12, max: 17 },
@@ -219,46 +225,52 @@ export class SwitchBot {
219
225
  let device;
220
226
  if (ad && ad.serviceData && ad.serviceData.model) {
221
227
  switch (ad.serviceData.model) {
222
- case 'H':
228
+ case SwitchBotBLEModel.Bot:
223
229
  device = new WoHand(peripheral, this.noble);
224
230
  break;
225
- case 'T':
226
- device = new WoSensorTH(peripheral, this.noble);
231
+ case SwitchBotBLEModel.Curtain:
232
+ case SwitchBotBLEModel.Curtain3:
233
+ device = new WoCurtain(peripheral, this.noble);
227
234
  break;
228
- case 'e':
235
+ case SwitchBotBLEModel.Humidifier:
229
236
  device = new WoHumi(peripheral, this.noble);
230
237
  break;
231
- case 's':
232
- device = new WoPresence(peripheral, this.noble);
238
+ case SwitchBotBLEModel.Meter:
239
+ device = new WoSensorTH(peripheral, this.noble);
233
240
  break;
234
- case 'd':
235
- device = new WoContact(peripheral, this.noble);
241
+ case SwitchBotBLEModel.MeterPlus:
242
+ device = new WoSensorTH(peripheral, this.noble);
236
243
  break;
237
- case 'c':
238
- case '{':
239
- device = new WoCurtain(peripheral, this.noble);
244
+ case SwitchBotBLEModel.Hub2:
245
+ device = new WoHub2(peripheral, this.noble);
240
246
  break;
241
- case 'x':
242
- device = new WoBlindTilt(peripheral, this.noble);
247
+ case SwitchBotBLEModel.OutdoorMeter:
248
+ device = new WoIOSensorTH(peripheral, this.noble);
249
+ break;
250
+ case SwitchBotBLEModel.MotionSensor:
251
+ device = new WoPresence(peripheral, this.noble);
243
252
  break;
244
- case 'u':
253
+ case SwitchBotBLEModel.ContactSensor:
254
+ device = new WoContact(peripheral, this.noble);
255
+ break;
256
+ case SwitchBotBLEModel.ColorBulb:
245
257
  device = new WoBulb(peripheral, this.noble);
246
258
  break;
247
- case 'g':
248
- case 'j':
259
+ case SwitchBotBLEModel.StripLight:
260
+ device = new WoStrip(peripheral, this.noble);
261
+ break;
262
+ case SwitchBotBLEModel.PlugMiniUS:
263
+ case SwitchBotBLEModel.PlugMiniJP:
249
264
  device = new WoPlugMini(peripheral, this.noble);
250
265
  break;
251
- case 'o':
266
+ case SwitchBotBLEModel.Lock:
252
267
  device = new WoSmartLock(peripheral, this.noble);
253
268
  break;
254
- case 'i':
255
- device = new WoSensorTH(peripheral, this.noble);
256
- break;
257
- case 'w':
258
- device = new WoIOSensorTH(peripheral, this.noble);
269
+ case SwitchBotBLEModel.LockPro:
270
+ device = new WoSmartLockPro(peripheral, this.noble);
259
271
  break;
260
- case 'r':
261
- device = new WoStrip(peripheral, this.noble);
272
+ case SwitchBotBLEModel.BlindTilt:
273
+ device = new WoBlindTilt(peripheral, this.noble);
262
274
  break;
263
275
  default: // 'resetting', 'unknown'
264
276
  device = new SwitchbotDevice(peripheral, this.noble);
@@ -328,6 +340,9 @@ export class SwitchBot {
328
340
  * | | | If "o" is specified, the `onadvertisement`
329
341
  * | | | event handler will be called only when advertising
330
342
  * | | | packets comes from Smart Lock.
343
+ * | | | If "$" is specified, the `onadvertisement`
344
+ * | | | event handler will be called only when advertising
345
+ * | | | packets comes from Smart Lock Pro.
331
346
  * | | | If "i" is specified, the `onadvertisement`
332
347
  * | | | event handler will be called only when advertising
333
348
  * | | | packets comes from Meter Plus.
@@ -354,21 +369,23 @@ export class SwitchBot {
354
369
  required: false,
355
370
  type: 'string',
356
371
  enum: [
357
- 'H',
358
- 'T',
359
- 'e',
360
- 's',
361
- 'd',
362
- 'c',
363
- '{',
364
- 'u',
365
- 'g',
366
- 'j',
367
- 'o',
368
- 'i',
369
- 'r',
370
- 'x',
371
- 'w',
372
+ SwitchBotBLEModel.Bot,
373
+ SwitchBotBLEModel.Curtain,
374
+ SwitchBotBLEModel.Curtain3,
375
+ SwitchBotBLEModel.Humidifier,
376
+ SwitchBotBLEModel.Meter,
377
+ SwitchBotBLEModel.MeterPlus,
378
+ SwitchBotBLEModel.Hub2,
379
+ SwitchBotBLEModel.OutdoorMeter,
380
+ SwitchBotBLEModel.MotionSensor,
381
+ SwitchBotBLEModel.ContactSensor,
382
+ SwitchBotBLEModel.ColorBulb,
383
+ SwitchBotBLEModel.StripLight,
384
+ SwitchBotBLEModel.PlugMiniUS,
385
+ SwitchBotBLEModel.PlugMiniJP,
386
+ SwitchBotBLEModel.Lock,
387
+ SwitchBotBLEModel.LockPro,
388
+ SwitchBotBLEModel.BlindTilt,
372
389
  ],
373
390
  },
374
391
  id: { required: false, type: 'string', min: 12, max: 17 },