node-switchbot 2.1.2-beta.6 → 2.1.2-beta.8

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 (71) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/advertising.d.ts +23 -9
  3. package/dist/advertising.d.ts.map +1 -1
  4. package/dist/advertising.js +5 -1
  5. package/dist/advertising.js.map +1 -1
  6. package/dist/device/woblindtilt.d.ts +2 -1
  7. package/dist/device/woblindtilt.d.ts.map +1 -1
  8. package/dist/device/woblindtilt.js +2 -1
  9. package/dist/device/woblindtilt.js.map +1 -1
  10. package/dist/device/wobulb.d.ts +2 -1
  11. package/dist/device/wobulb.d.ts.map +1 -1
  12. package/dist/device/wobulb.js +2 -1
  13. package/dist/device/wobulb.js.map +1 -1
  14. package/dist/device/wocontact.d.ts +2 -1
  15. package/dist/device/wocontact.d.ts.map +1 -1
  16. package/dist/device/wocontact.js +2 -1
  17. package/dist/device/wocontact.js.map +1 -1
  18. package/dist/device/wocurtain.d.ts +2 -1
  19. package/dist/device/wocurtain.d.ts.map +1 -1
  20. package/dist/device/wocurtain.js +4 -8
  21. package/dist/device/wocurtain.js.map +1 -1
  22. package/dist/device/wohand.d.ts +2 -1
  23. package/dist/device/wohand.d.ts.map +1 -1
  24. package/dist/device/wohand.js +2 -1
  25. package/dist/device/wohand.js.map +1 -1
  26. package/dist/device/wohub2.d.ts +3 -2
  27. package/dist/device/wohub2.d.ts.map +1 -1
  28. package/dist/device/wohub2.js +9 -8
  29. package/dist/device/wohub2.js.map +1 -1
  30. package/dist/device/wohumi.d.ts +2 -1
  31. package/dist/device/wohumi.d.ts.map +1 -1
  32. package/dist/device/wohumi.js +2 -1
  33. package/dist/device/wohumi.js.map +1 -1
  34. package/dist/device/woiosensorth.d.ts +2 -1
  35. package/dist/device/woiosensorth.d.ts.map +1 -1
  36. package/dist/device/woiosensorth.js +2 -1
  37. package/dist/device/woiosensorth.js.map +1 -1
  38. package/dist/device/woplugmini.d.ts +2 -1
  39. package/dist/device/woplugmini.d.ts.map +1 -1
  40. package/dist/device/woplugmini.js +2 -1
  41. package/dist/device/woplugmini.js.map +1 -1
  42. package/dist/device/wopresence.d.ts +2 -1
  43. package/dist/device/wopresence.d.ts.map +1 -1
  44. package/dist/device/wopresence.js +2 -1
  45. package/dist/device/wopresence.js.map +1 -1
  46. package/dist/device/wosensorth.d.ts +5 -3
  47. package/dist/device/wosensorth.d.ts.map +1 -1
  48. package/dist/device/wosensorth.js +5 -3
  49. package/dist/device/wosensorth.js.map +1 -1
  50. package/dist/device/wosmartlock.d.ts +4 -1
  51. package/dist/device/wosmartlock.d.ts.map +1 -1
  52. package/dist/device/wosmartlock.js +4 -1
  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 +2 -1
  59. package/dist/device/wostrip.d.ts.map +1 -1
  60. package/dist/device/wostrip.js +2 -1
  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/switchbot.d.ts.map +1 -1
  65. package/dist/switchbot.js +10 -0
  66. package/dist/switchbot.js.map +1 -1
  67. package/dist/types.d.ts +21 -0
  68. package/dist/types.d.ts.map +1 -1
  69. package/dist/types.js +22 -0
  70. package/dist/types.js.map +1 -1
  71. package/package.json +5 -5
@@ -3,7 +3,7 @@
3
3
  * woiosensorth.ts: Switchbot BLE API registration.
4
4
  */
5
5
  import { SwitchbotDevice } from '../device.js';
6
- import { SwitchBotBLEModel, SwitchBotBLEModelName } from '../types.js';
6
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
7
7
  export class WoIOSensorTH extends SwitchbotDevice {
8
8
  static parseServiceData(serviceDataBuf, manufacturerDataBuf, onlog) {
9
9
  if (serviceDataBuf.length !== 3) {
@@ -28,6 +28,7 @@ export class WoIOSensorTH extends SwitchbotDevice {
28
28
  const data = {
29
29
  model: SwitchBotBLEModel.OutdoorMeter,
30
30
  modelName: SwitchBotBLEModelName.OutdoorMeter,
31
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.OutdoorMeter,
31
32
  temperature: {
32
33
  c: temp_c,
33
34
  f: temp_f,
@@ -1 +1 @@
1
- {"version":3,"file":"woiosensorth.js","sourceRoot":"","sources":["../../src/device/woiosensorth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,OAAO,YAAa,SAAQ,eAAe;IAC/C,MAAM,CAAC,gBAAgB,CAAC,cAAsB,EAAE,mBAA2B,EAAE,KAA8C;QACzH,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CACH,gEAAgE,cAAc,CAAC,MAAM,SAAS,CAC/F,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,mBAAmB,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACtC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CACH,qEAAqE,mBAAmB,CAAC,MAAM,UAAU,CAC1G,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAE5C,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAE7D,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,iBAAiB,CAAC,YAAY;YACrC,SAAS,EAAE,qBAAqB,CAAC,YAAY;YAC7C,WAAW,EAAE;gBACX,CAAC,EAAE,MAAM;gBACT,CAAC,EAAE,MAAM;aACV;YACD,UAAU,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,yBAAyB;YAC3E,QAAQ,EAAE,QAAQ,GAAG,UAAU;YAC/B,OAAO,EAAE,OAAO,GAAG,UAAU;SAC9B,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"woiosensorth.js","sourceRoot":"","sources":["../../src/device/woiosensorth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEtG,MAAM,OAAO,YAAa,SAAQ,eAAe;IAC/C,MAAM,CAAC,gBAAgB,CAAC,cAAsB,EAAE,mBAA2B,EAAE,KAA8C;QACzH,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CACH,gEAAgE,cAAc,CAAC,MAAM,SAAS,CAC/F,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,mBAAmB,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACtC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CACH,qEAAqE,mBAAmB,CAAC,MAAM,UAAU,CAC1G,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAE5C,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAE7D,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,iBAAiB,CAAC,YAAY;YACrC,SAAS,EAAE,qBAAqB,CAAC,YAAY;YAC7C,iBAAiB,EAAE,6BAA6B,CAAC,YAAY;YAC7D,WAAW,EAAE;gBACX,CAAC,EAAE,MAAM;gBACT,CAAC,EAAE,MAAM;aACV;YACD,UAAU,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,yBAAyB;YAC3E,QAAQ,EAAE,QAAQ,GAAG,UAAU;YAC/B,OAAO,EAAE,OAAO,GAAG,UAAU;SAC9B,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { SwitchbotDevice } from '../device.js';
3
- import { SwitchBotBLEModel, SwitchBotBLEModelName } from '../types.js';
3
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
4
4
  /**
5
5
  * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/plugmini.md
6
6
  */
@@ -8,6 +8,7 @@ export declare class WoPlugMini extends SwitchbotDevice {
8
8
  static parseServiceData_US(manufacturerData: Buffer, onlog: ((message: string) => void) | undefined): {
9
9
  model: SwitchBotBLEModel;
10
10
  modelName: SwitchBotBLEModelName;
11
+ modelFriendlyName: SwitchBotBLEModelFriendlyName;
11
12
  state: string | null;
12
13
  delay: boolean;
13
14
  timer: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"woplugmini.d.ts","sourceRoot":"","sources":["../../src/device/woplugmini.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAAe;IAC7C,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;IAuCnG,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;IAuCnG;;OAEG;IACH,SAAS;IAIT;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE;IAKhC;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,OAAO;IAIP;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;CAgC5B"}
1
+ {"version":3,"file":"woplugmini.d.ts","sourceRoot":"","sources":["../../src/device/woplugmini.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEtG;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAAe;IAC7C,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;IAwCnG,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;IAuCnG;;OAEG;IACH,SAAS;IAIT;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE;IAKhC;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,OAAO;IAIP;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;CAgC5B"}
@@ -3,7 +3,7 @@
3
3
  * woplugmini.ts: Switchbot BLE API registration.
4
4
  */
5
5
  import { SwitchbotDevice } from '../device.js';
6
- import { SwitchBotBLEModel, SwitchBotBLEModelName } from '../types.js';
6
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
7
7
  /**
8
8
  * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/plugmini.md
9
9
  */
@@ -31,6 +31,7 @@ export class WoPlugMini extends SwitchbotDevice {
31
31
  const data = {
32
32
  model: SwitchBotBLEModel.PlugMiniUS,
33
33
  modelName: SwitchBotBLEModelName.PlugMini,
34
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.PlugMini,
34
35
  state: state,
35
36
  delay: delay,
36
37
  timer: timer,
@@ -1 +1 @@
1
- {"version":3,"file":"woplugmini.js","sourceRoot":"","sources":["../../src/device/woplugmini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"woplugmini.js","sourceRoot":"","sources":["../../src/device/woplugmini.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  import { SwitchbotDevice } from '../device.js';
3
- import { SwitchBotBLEModel, SwitchBotBLEModelName } from '../types.js';
3
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
4
4
  export declare class WoPresence extends SwitchbotDevice {
5
5
  static parseServiceData(buf: Buffer, onlog: ((message: string) => void) | undefined): {
6
6
  model: SwitchBotBLEModel;
7
7
  modelName: SwitchBotBLEModelName;
8
+ modelFriendlyName: SwitchBotBLEModelFriendlyName;
8
9
  tested: boolean;
9
10
  movement: boolean;
10
11
  battery: number;
@@ -1 +1 @@
1
- {"version":3,"file":"wopresence.d.ts","sourceRoot":"","sources":["../../src/device/wopresence.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,qBAAa,UAAW,SAAQ,eAAe;IAC7C,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;CAuCpF"}
1
+ {"version":3,"file":"wopresence.d.ts","sourceRoot":"","sources":["../../src/device/wopresence.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEtG,qBAAa,UAAW,SAAQ,eAAe;IAC7C,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;;CAwCpF"}
@@ -3,7 +3,7 @@
3
3
  * wopresence.ts: Switchbot BLE API registration.
4
4
  */
5
5
  import { SwitchbotDevice } from '../device.js';
6
- import { SwitchBotBLEModel, SwitchBotBLEModelName } from '../types.js';
6
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
7
7
  export class WoPresence extends SwitchbotDevice {
8
8
  static parseServiceData(buf, onlog) {
9
9
  if (buf.length !== 6) {
@@ -26,6 +26,7 @@ export class WoPresence extends SwitchbotDevice {
26
26
  const data = {
27
27
  model: SwitchBotBLEModel.MotionSensor,
28
28
  modelName: SwitchBotBLEModelName.MotionSensor,
29
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.MotionSensor,
29
30
  tested: tested,
30
31
  movement: movement,
31
32
  battery: battery,
@@ -1 +1 @@
1
- {"version":3,"file":"wopresence.js","sourceRoot":"","sources":["../../src/device/wopresence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C,MAAM,CAAC,gBAAgB,CAAC,GAAW,EAAE,KAA8C;QACjF,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CACH,iDAAiD,GAAG,CAAC,MAAM,SAAS,CACrE,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,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;QAE/B,MAAM,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACnD,MAAM,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC;QACnC,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,cAAc,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC;QACtC,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAEnD,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,iBAAiB,CAAC,YAAY;YACrC,SAAS,EAAE,qBAAqB,CAAC,YAAY;YAC7C,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,OAAO;YAChB,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;YACR,cAAc,EAAE,cAAc;YAC9B,UAAU,EACA,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAC7E,QAAQ,EAAE,QAAQ;SACnB,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"wopresence.js","sourceRoot":"","sources":["../../src/device/wopresence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEtG,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C,MAAM,CAAC,gBAAgB,CAAC,GAAW,EAAE,KAA8C;QACjF,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CACH,iDAAiD,GAAG,CAAC,MAAM,SAAS,CACrE,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,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;QAE/B,MAAM,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACnD,MAAM,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC;QACnC,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,cAAc,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC;QACtC,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAEnD,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,iBAAiB,CAAC,YAAY;YACrC,SAAS,EAAE,qBAAqB,CAAC,YAAY;YAC7C,iBAAiB,EAAE,6BAA6B,CAAC,YAAY;YAC7D,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,OAAO;YAChB,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;YACR,cAAc,EAAE,cAAc;YAC9B,UAAU,EACA,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAC7E,QAAQ,EAAE,QAAQ;SACnB,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,10 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  import { SwitchbotDevice } from '../device.js';
3
- import { SwitchBotBLEModel, SwitchBotBLEModelName } from '../types.js';
3
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
4
4
  export declare class WoSensorTH extends SwitchbotDevice {
5
5
  static parseServiceData(buf: Buffer, onlog: ((message: string) => void) | undefined): {
6
6
  model: SwitchBotBLEModel;
7
7
  modelName: SwitchBotBLEModelName;
8
+ modelFriendlyName: string;
8
9
  temperature: {
9
10
  c: number;
10
11
  f: number;
@@ -14,8 +15,9 @@ export declare class WoSensorTH extends SwitchbotDevice {
14
15
  battery: number;
15
16
  } | null;
16
17
  static parseServiceData_Plus(buf: Buffer, onlog: ((message: string) => void) | undefined): {
17
- model: string;
18
- modelName: string;
18
+ model: SwitchBotBLEModel;
19
+ modelName: SwitchBotBLEModelName;
20
+ modelfriendlyName: SwitchBotBLEModelFriendlyName;
19
21
  temperature: {
20
22
  c: number;
21
23
  f: number;
@@ -1 +1 @@
1
- {"version":3,"file":"wosensorth.d.ts","sourceRoot":"","sources":["../../src/device/wosensorth.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,qBAAa,UAAW,SAAQ,eAAe;IAC7C,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;IAiCnF,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;CAgCzF"}
1
+ {"version":3,"file":"wosensorth.d.ts","sourceRoot":"","sources":["../../src/device/wosensorth.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEtG,qBAAa,UAAW,SAAQ,eAAe;IAC7C,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;IAkCnF,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;CAiCzF"}
@@ -3,7 +3,7 @@
3
3
  * wosensorth.ts: Switchbot BLE API registration.
4
4
  */
5
5
  import { SwitchbotDevice } from '../device.js';
6
- import { SwitchBotBLEModel, SwitchBotBLEModelName } from '../types.js';
6
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
7
7
  export class WoSensorTH extends SwitchbotDevice {
8
8
  static parseServiceData(buf, onlog) {
9
9
  if (buf.length !== 6) {
@@ -22,6 +22,7 @@ export class WoSensorTH extends SwitchbotDevice {
22
22
  const data = {
23
23
  model: SwitchBotBLEModel.Meter,
24
24
  modelName: SwitchBotBLEModelName.Meter,
25
+ modelFriendlyName: 'Meter',
25
26
  temperature: {
26
27
  c: temp_c,
27
28
  f: temp_f,
@@ -47,8 +48,9 @@ export class WoSensorTH extends SwitchbotDevice {
47
48
  const temp_c = temp_sign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
48
49
  const temp_f = Math.round(((temp_c * 9 / 5) + 32) * 10) / 10;
49
50
  const data = {
50
- model: 'i',
51
- modelName: 'WoSensorTHPlus',
51
+ model: SwitchBotBLEModel.MeterPlus,
52
+ modelName: SwitchBotBLEModelName.Meter,
53
+ modelfriendlyName: SwitchBotBLEModelFriendlyName.Meter,
52
54
  temperature: {
53
55
  c: temp_c,
54
56
  f: temp_f,
@@ -1 +1 @@
1
- {"version":3,"file":"wosensorth.js","sourceRoot":"","sources":["../../src/device/wosensorth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wosensorth.js","sourceRoot":"","sources":["../../src/device/wosensorth.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { SwitchbotDevice } from '../device.js';
3
- import { SwitchBotBLEModel, SwitchBotBLEModelName } from '../types.js';
3
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
4
4
  import Noble from '@stoprocent/noble';
5
5
  export declare class WoSmartLock extends SwitchbotDevice {
6
6
  _iv: Buffer | null;
@@ -11,6 +11,8 @@ export declare class WoSmartLock extends SwitchbotDevice {
11
11
  static COMMAND_UNLOCK: string;
12
12
  static COMMAND_UNLOCK_NO_UNLATCH: string;
13
13
  static COMMAND_LOCK: string;
14
+ static COMMAND_ENABLE_NOTIFICATIONS: string;
15
+ static COMMAND_DISABLE_NOTIFICATIONS: string;
14
16
  static Result: {
15
17
  ERROR: number;
16
18
  SUCCESS: number;
@@ -21,6 +23,7 @@ export declare class WoSmartLock extends SwitchbotDevice {
21
23
  static parseServiceData(serviceData: Buffer, manufacturerData: Buffer, onlog: ((message: string) => void) | undefined): {
22
24
  model: SwitchBotBLEModel;
23
25
  modelName: SwitchBotBLEModelName;
26
+ modelFriendlyName: SwitchBotBLEModelFriendlyName;
24
27
  battery: number;
25
28
  calibration: boolean;
26
29
  status: string;
@@ -1 +1 @@
1
- {"version":3,"file":"wosmartlock.d.ts","sourceRoot":"","sources":["../../src/device/wosmartlock.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,MAAM,mBAAmB,CAAC;AAGtC,qBAAa,WAAY,SAAQ,eAAe;IAC9C,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;IAEvC,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;;;;;;;;;;;;;;gBA6CzG,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,EAAC,MAAM;IAKnB,QAAQ,CAAC,IAAI,EAAC,MAAM;IAKd,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"}
1
+ {"version":3,"file":"wosmartlock.d.ts","sourceRoot":"","sources":["../../src/device/wosmartlock.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACtG,OAAO,KAAK,MAAM,mBAAmB,CAAC;AAGtC,qBAAa,WAAY,SAAQ,eAAe;IAC9C,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,EAAC,MAAM;IAKnB,QAAQ,CAAC,IAAI,EAAC,MAAM;IAKd,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"}
@@ -3,7 +3,7 @@
3
3
  * adapted off the work done by [pySwitchbot](https://github.com/Danielhiversen/pySwitchbot)
4
4
  */
5
5
  import { SwitchbotDevice } from '../device.js';
6
- import { SwitchBotBLEModel, SwitchBotBLEModelName } from '../types.js';
6
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
7
7
  import * as Crypto from 'crypto';
8
8
  export class WoSmartLock extends SwitchbotDevice {
9
9
  _iv;
@@ -14,6 +14,8 @@ export class WoSmartLock extends SwitchbotDevice {
14
14
  static COMMAND_UNLOCK = '570f4e01011080';
15
15
  static COMMAND_UNLOCK_NO_UNLATCH = '570f4e010110a0';
16
16
  static COMMAND_LOCK = '570f4e01011000';
17
+ static COMMAND_ENABLE_NOTIFICATIONS = '0e01001e00008101';
18
+ static COMMAND_DISABLE_NOTIFICATIONS = '0e00';
17
19
  static Result = {
18
20
  ERROR: 0x00,
19
21
  SUCCESS: 0x01,
@@ -75,6 +77,7 @@ export class WoSmartLock extends SwitchbotDevice {
75
77
  const data = {
76
78
  model: SwitchBotBLEModel.Lock,
77
79
  modelName: SwitchBotBLEModelName.Lock,
80
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.Lock,
78
81
  battery: battery,
79
82
  calibration: calibration,
80
83
  status: status,
@@ -1 +1 @@
1
- {"version":3,"file":"wosmartlock.js","sourceRoot":"","sources":["../../src/device/wosmartlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wosmartlock.js","sourceRoot":"","sources":["../../src/device/wosmartlock.ts"],"names":[],"mappings":"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"}
@@ -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