node-switchbot 2.4.0 → 2.5.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/.github/npm-version-script.cjs +81 -0
  2. package/CHANGELOG.md +1 -1
  3. package/dist/advertising.d.ts +14 -148
  4. package/dist/advertising.d.ts.map +1 -1
  5. package/dist/advertising.js +36 -92
  6. package/dist/advertising.js.map +1 -1
  7. package/dist/device/woblindtilt.d.ts +98 -13
  8. package/dist/device/woblindtilt.d.ts.map +1 -1
  9. package/dist/device/woblindtilt.js +192 -86
  10. package/dist/device/woblindtilt.js.map +1 -1
  11. package/dist/device/woblindtilt.test.d.ts +2 -0
  12. package/dist/device/woblindtilt.test.d.ts.map +1 -0
  13. package/dist/device/woblindtilt.test.js +26 -0
  14. package/dist/device/woblindtilt.test.js.map +1 -0
  15. package/dist/device/wobulb.d.ts +17 -34
  16. package/dist/device/wobulb.d.ts.map +1 -1
  17. package/dist/device/wobulb.js +53 -61
  18. package/dist/device/wobulb.js.map +1 -1
  19. package/dist/device/wobulb.test.d.ts +2 -0
  20. package/dist/device/wobulb.test.d.ts.map +1 -0
  21. package/dist/device/wobulb.test.js +52 -0
  22. package/dist/device/wobulb.test.js.map +1 -0
  23. package/dist/device/woceilinglight.d.ts +21 -51
  24. package/dist/device/woceilinglight.d.ts.map +1 -1
  25. package/dist/device/woceilinglight.js +53 -64
  26. package/dist/device/woceilinglight.js.map +1 -1
  27. package/dist/device/woceilinglight.test.d.ts +2 -0
  28. package/dist/device/woceilinglight.test.d.ts.map +1 -0
  29. package/dist/device/woceilinglight.test.js +63 -0
  30. package/dist/device/woceilinglight.test.js.map +1 -0
  31. package/dist/device/wocontact.d.ts +1 -14
  32. package/dist/device/wocontact.d.ts.map +1 -1
  33. package/dist/device/wocontact.js +13 -13
  34. package/dist/device/wocontact.js.map +1 -1
  35. package/dist/device/wocontact.test.d.ts +2 -0
  36. package/dist/device/wocontact.test.d.ts.map +1 -0
  37. package/dist/device/wocontact.test.js +34 -0
  38. package/dist/device/wocontact.test.js.map +1 -0
  39. package/dist/device/wocurtain.d.ts +5 -16
  40. package/dist/device/wocurtain.d.ts.map +1 -1
  41. package/dist/device/wocurtain.js +58 -47
  42. package/dist/device/wocurtain.js.map +1 -1
  43. package/dist/device/wocurtain.test.d.ts +2 -0
  44. package/dist/device/wocurtain.test.d.ts.map +1 -0
  45. package/dist/device/wocurtain.test.js +33 -0
  46. package/dist/device/wocurtain.test.js.map +1 -0
  47. package/dist/device/wohand.d.ts +2 -10
  48. package/dist/device/wohand.d.ts.map +1 -1
  49. package/dist/device/wohand.js +31 -33
  50. package/dist/device/wohand.js.map +1 -1
  51. package/dist/device/wohand.test.d.ts +2 -0
  52. package/dist/device/wohand.test.d.ts.map +1 -0
  53. package/dist/device/wohand.test.js +62 -0
  54. package/dist/device/wohand.test.js.map +1 -0
  55. package/dist/device/wohand2.test.d.ts +2 -0
  56. package/dist/device/wohand2.test.d.ts.map +1 -0
  57. package/dist/device/wohand2.test.js +50 -0
  58. package/dist/device/wohand2.test.js.map +1 -0
  59. package/dist/device/wohub2.d.ts +1 -19
  60. package/dist/device/wohub2.d.ts.map +1 -1
  61. package/dist/device/wohub2.js +6 -2
  62. package/dist/device/wohub2.js.map +1 -1
  63. package/dist/device/wohumi.d.ts +2 -11
  64. package/dist/device/wohumi.d.ts.map +1 -1
  65. package/dist/device/wohumi.js +31 -33
  66. package/dist/device/wohumi.js.map +1 -1
  67. package/dist/device/wohumi.test.d.ts +2 -0
  68. package/dist/device/wohumi.test.d.ts.map +1 -0
  69. package/dist/device/wohumi.test.js +61 -0
  70. package/dist/device/wohumi.test.js.map +1 -0
  71. package/dist/device/woiosensorth.d.ts +1 -19
  72. package/dist/device/woiosensorth.d.ts.map +1 -1
  73. package/dist/device/woiosensorth.js +14 -10
  74. package/dist/device/woiosensorth.js.map +1 -1
  75. package/dist/device/woiosensorth.test.d.ts +2 -0
  76. package/dist/device/woiosensorth.test.d.ts.map +1 -0
  77. package/dist/device/woiosensorth.test.js +39 -0
  78. package/dist/device/woiosensorth.test.js.map +1 -0
  79. package/dist/device/woplugmini.d.ts +12 -38
  80. package/dist/device/woplugmini.d.ts.map +1 -1
  81. package/dist/device/woplugmini.js +35 -40
  82. package/dist/device/woplugmini.js.map +1 -1
  83. package/dist/device/woplugmini.test.d.ts +2 -0
  84. package/dist/device/woplugmini.test.d.ts.map +1 -0
  85. package/dist/device/woplugmini.test.js +91 -0
  86. package/dist/device/woplugmini.test.js.map +1 -0
  87. package/dist/device/wopresence.d.ts +2 -14
  88. package/dist/device/wopresence.d.ts.map +1 -1
  89. package/dist/device/wopresence.js +11 -7
  90. package/dist/device/wopresence.js.map +1 -1
  91. package/dist/device/wopresence.test.d.ts +2 -0
  92. package/dist/device/wopresence.test.d.ts.map +1 -0
  93. package/dist/device/wopresence.test.js +42 -0
  94. package/dist/device/wopresence.test.js.map +1 -0
  95. package/dist/device/wosensorth.d.ts +3 -37
  96. package/dist/device/wosensorth.d.ts.map +1 -1
  97. package/dist/device/wosensorth.js +24 -20
  98. package/dist/device/wosensorth.js.map +1 -1
  99. package/dist/device/wosensorth.test.d.ts +2 -0
  100. package/dist/device/wosensorth.test.d.ts.map +1 -0
  101. package/dist/device/wosensorth.test.js +59 -0
  102. package/dist/device/wosensorth.test.js.map +1 -0
  103. package/dist/device/wosmartlock.d.ts +19 -33
  104. package/dist/device/wosmartlock.d.ts.map +1 -1
  105. package/dist/device/wosmartlock.js +104 -83
  106. package/dist/device/wosmartlock.js.map +1 -1
  107. package/dist/device/wosmartlock.test.d.ts +2 -0
  108. package/dist/device/wosmartlock.test.d.ts.map +1 -0
  109. package/dist/device/wosmartlock.test.js +84 -0
  110. package/dist/device/wosmartlock.test.js.map +1 -0
  111. package/dist/device/wosmartlockpro.d.ts +13 -27
  112. package/dist/device/wosmartlockpro.d.ts.map +1 -1
  113. package/dist/device/wosmartlockpro.js +90 -70
  114. package/dist/device/wosmartlockpro.js.map +1 -1
  115. package/dist/device/wosmartlockpro.test.d.ts +2 -0
  116. package/dist/device/wosmartlockpro.test.d.ts.map +1 -0
  117. package/dist/device/wosmartlockpro.test.js +124 -0
  118. package/dist/device/wosmartlockpro.test.js.map +1 -0
  119. package/dist/device/wostrip.d.ts +18 -32
  120. package/dist/device/wostrip.d.ts.map +1 -1
  121. package/dist/device/wostrip.js +58 -70
  122. package/dist/device/wostrip.js.map +1 -1
  123. package/dist/device/wostrip.test.d.ts +2 -0
  124. package/dist/device/wostrip.test.d.ts.map +1 -0
  125. package/dist/device/wostrip.test.js +115 -0
  126. package/dist/device/wostrip.test.js.map +1 -0
  127. package/dist/device.d.ts +237 -39
  128. package/dist/device.d.ts.map +1 -1
  129. package/dist/device.js +478 -366
  130. package/dist/device.js.map +1 -1
  131. package/dist/index.d.ts +1 -1
  132. package/dist/index.d.ts.map +1 -1
  133. package/dist/index.js +1 -1
  134. package/dist/index.js.map +1 -1
  135. package/dist/parameter-checker.d.ts.map +1 -1
  136. package/dist/parameter-checker.js.map +1 -1
  137. package/dist/settings.d.ts +8 -0
  138. package/dist/settings.d.ts.map +1 -0
  139. package/dist/settings.js +12 -0
  140. package/dist/settings.js.map +1 -0
  141. package/dist/switchbot.d.ts +30 -9
  142. package/dist/switchbot.d.ts.map +1 -1
  143. package/dist/switchbot.js +48 -78
  144. package/dist/switchbot.js.map +1 -1
  145. package/dist/types/bledevicestatus.d.ts +288 -0
  146. package/dist/types/bledevicestatus.d.ts.map +1 -0
  147. package/dist/types/bledevicestatus.js +2 -0
  148. package/dist/types/bledevicestatus.js.map +1 -0
  149. package/dist/types/devicelist.d.ts +89 -0
  150. package/dist/types/devicelist.d.ts.map +1 -0
  151. package/dist/types/devicelist.js +6 -0
  152. package/dist/types/devicelist.js.map +1 -0
  153. package/dist/types/deviceresponse.d.ts +13 -0
  154. package/dist/types/deviceresponse.d.ts.map +1 -0
  155. package/dist/types/deviceresponse.js +2 -0
  156. package/dist/types/deviceresponse.js.map +1 -0
  157. package/dist/types/devicestatus.d.ts +149 -0
  158. package/dist/types/devicestatus.d.ts.map +1 -0
  159. package/dist/types/devicestatus.js +3 -0
  160. package/dist/types/devicestatus.js.map +1 -0
  161. package/dist/types/devicewebhookstatus.d.ts +156 -0
  162. package/dist/types/devicewebhookstatus.d.ts.map +1 -0
  163. package/dist/types/devicewebhookstatus.js +2 -0
  164. package/dist/types/devicewebhookstatus.js.map +1 -0
  165. package/dist/types/irdevicelist.d.ts +10 -0
  166. package/dist/types/irdevicelist.d.ts.map +1 -0
  167. package/dist/types/irdevicelist.js +2 -0
  168. package/dist/types/irdevicelist.js.map +1 -0
  169. package/dist/types/pushbody.d.ts +6 -0
  170. package/dist/types/pushbody.d.ts.map +1 -0
  171. package/dist/types/pushbody.js +2 -0
  172. package/dist/types/pushbody.js.map +1 -0
  173. package/dist/{types.d.ts → types/types.d.ts} +9 -0
  174. package/dist/types/types.d.ts.map +1 -0
  175. package/dist/types/types.js.map +1 -0
  176. package/jest.config.js +3 -0
  177. package/package.json +22 -14
  178. package/dist/types.d.ts.map +0 -1
  179. package/dist/types.js.map +0 -1
  180. /package/dist/{types.js → types/types.js} +0 -0
@@ -1,57 +1,31 @@
1
1
  import { Buffer } from 'node:buffer';
2
2
  import { SwitchbotDevice } from '../device.js';
3
- import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
4
3
  /**
5
4
  * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/plugmini.md
6
5
  */
7
6
  export declare class WoPlugMini extends SwitchbotDevice {
8
- static parseServiceData_US(manufacturerData: Buffer, onlog: ((message: string) => void) | undefined): {
9
- model: SwitchBotBLEModel;
10
- modelName: SwitchBotBLEModelName;
11
- modelFriendlyName: SwitchBotBLEModelFriendlyName;
12
- state: string | null;
13
- delay: boolean;
14
- timer: boolean;
15
- syncUtcTime: boolean;
16
- wifiRssi: number;
17
- overload: boolean;
18
- currentPower: number;
19
- } | null;
20
- static parseServiceData_JP(manufacturerData: Buffer, onlog: ((message: string) => void) | undefined): {
21
- model: SwitchBotBLEModel;
22
- modelName: SwitchBotBLEModelName;
23
- modelFriendlyName: SwitchBotBLEModelFriendlyName;
24
- state: string | null;
25
- delay: boolean;
26
- timer: boolean;
27
- syncUtcTime: boolean;
28
- wifiRssi: number;
29
- overload: boolean;
30
- currentPower: number;
31
- } | null;
7
+ static parseServiceData_US(manufacturerData: Buffer, onlog: ((message: string) => void) | undefined): Promise<object | null>;
8
+ static parseServiceData_JP(manufacturerData: Buffer, onlog: ((message: string) => void) | undefined): Promise<object | null>;
32
9
  /**
33
- * @returns {Promise<boolean>} resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
10
+ * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
34
11
  */
35
- readState(): Promise<unknown>;
12
+ readState(): Promise<void>;
36
13
  /**
37
14
  * @private
38
15
  */
39
- _setState(reqByteArray: number[]): Promise<unknown>;
16
+ setState(reqByteArray: number[]): Promise<void>;
40
17
  /**
41
- * @returns {Promise<boolean>} resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
18
+ * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
42
19
  */
43
- turnOn(): Promise<unknown>;
20
+ turnOn(): Promise<void>;
44
21
  /**
45
- * @returns {Promise<boolean>} resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
22
+ * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
46
23
  */
47
- turnOff(): Promise<unknown>;
24
+ turnOff(): Promise<void>;
48
25
  /**
49
- * @returns {Promise<boolean>} resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
26
+ * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
50
27
  */
51
- toggle(): Promise<unknown>;
52
- /**
53
- * @private
54
- */
55
- _operateBot(bytes: number[]): Promise<unknown>;
28
+ toggle(): Promise<void>;
29
+ operatePlug(bytes: number[]): Promise<void>;
56
30
  }
57
31
  //# sourceMappingURL=woplugmini.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"woplugmini.d.ts","sourceRoot":"","sources":["../../src/device/woplugmini.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAErG;;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;;;;;;;;;;;;IAwCnG;;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;CA+B5B"}
1
+ {"version":3,"file":"woplugmini.d.ts","sourceRoot":"","sources":["../../src/device/woplugmini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAMpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAAe;WAChC,mBAAmB,CAC9B,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAC7C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;WAsCZ,mBAAmB,CAC9B,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAC7C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsCzB;;OAEG;IACG,SAAS;IAIf;;OAEG;IACG,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE;IAKrC;;OAEG;IACG,MAAM;IAIZ;;OAEG;IACG,OAAO;IAIb;;OAEG;IACG,MAAM;IAIN,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;CAqBlC"}
@@ -1,15 +1,15 @@
1
+ import { Buffer } from 'node:buffer';
1
2
  /* Copyright(C) 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
3
  *
3
4
  * woplugmini.ts: Switchbot BLE API registration.
4
5
  */
5
- import { Buffer } from 'node:buffer';
6
6
  import { SwitchbotDevice } from '../device.js';
7
- import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
7
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
8
8
  /**
9
9
  * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/plugmini.md
10
10
  */
11
11
  export class WoPlugMini extends SwitchbotDevice {
12
- static parseServiceData_US(manufacturerData, onlog) {
12
+ static async parseServiceData_US(manufacturerData, onlog) {
13
13
  if (manufacturerData.length !== 14) {
14
14
  if (onlog && typeof onlog === 'function') {
15
15
  onlog(`[parseServiceDataForWoPlugMiniUS] Buffer length ${manufacturerData.length} should be 14`);
@@ -43,7 +43,7 @@ export class WoPlugMini extends SwitchbotDevice {
43
43
  };
44
44
  return data;
45
45
  }
46
- static parseServiceData_JP(manufacturerData, onlog) {
46
+ static async parseServiceData_JP(manufacturerData, onlog) {
47
47
  if (manufacturerData.length !== 14) {
48
48
  if (onlog && typeof onlog === 'function') {
49
49
  onlog(`[parseServiceDataForWoPlugMiniJP] Buffer length ${manufacturerData.length} should be 14`);
@@ -78,62 +78,57 @@ export class WoPlugMini extends SwitchbotDevice {
78
78
  return data;
79
79
  }
80
80
  /**
81
- * @returns {Promise<boolean>} resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
81
+ * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
82
82
  */
83
- readState() {
84
- return this._operateBot([0x57, 0x0F, 0x51, 0x01]);
83
+ async readState() {
84
+ return await this.operatePlug([0x57, 0x0F, 0x51, 0x01]);
85
85
  }
86
86
  /**
87
87
  * @private
88
88
  */
89
- _setState(reqByteArray) {
89
+ async setState(reqByteArray) {
90
90
  const base = [0x57, 0x0F, 0x50, 0x01];
91
- return this._operateBot([...base, ...reqByteArray]);
91
+ return await this.operatePlug([...base, ...reqByteArray]);
92
92
  }
93
93
  /**
94
- * @returns {Promise<boolean>} resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
94
+ * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
95
95
  */
96
- turnOn() {
97
- return this._setState([0x01, 0x80]);
96
+ async turnOn() {
97
+ return await this.setState([0x01, 0x80]);
98
98
  }
99
99
  /**
100
- * @returns {Promise<boolean>} resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
100
+ * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
101
101
  */
102
- turnOff() {
103
- return this._setState([0x01, 0x00]);
102
+ async turnOff() {
103
+ return await this.setState([0x01, 0x00]);
104
104
  }
105
105
  /**
106
- * @returns {Promise<boolean>} resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
106
+ * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
107
107
  */
108
- toggle() {
109
- return this._setState([0x02, 0x80]);
108
+ async toggle() {
109
+ return await this.setState([0x02, 0x80]);
110
110
  }
111
- /**
112
- * @private
113
- */
114
- _operateBot(bytes) {
111
+ async operatePlug(bytes) {
115
112
  const req_buf = Buffer.from(bytes);
116
- return new Promise((resolve, reject) => {
117
- this._command(req_buf)
118
- .then((res_bytes) => {
119
- const res_buf = Buffer.from(res_bytes);
120
- if (res_buf.length === 2) {
121
- const code = res_buf.readUInt8(1);
122
- if (code === 0x00 || code === 0x80) {
123
- const is_on = code === 0x80;
124
- resolve(is_on);
125
- }
126
- else {
127
- reject(new Error(`The device returned an error: 0x${res_buf.toString('hex')}`));
128
- }
113
+ await this.command(req_buf)
114
+ .then((res_bytes) => {
115
+ const res_buf = Buffer.from(res_bytes);
116
+ if (res_buf.length === 2) {
117
+ const code = res_buf.readUInt8(1);
118
+ if (code === 0x00 || code === 0x80) {
119
+ const is_on = code === 0x80;
120
+ return is_on;
129
121
  }
130
122
  else {
131
- reject(new Error(`Expecting a 2-byte response, got instead: 0x${res_buf.toString('hex')}`));
123
+ throw new Error(`The device returned an error: 0x${res_buf.toString('hex')}`);
132
124
  }
133
- })
134
- .catch((error) => {
135
- reject(error);
136
- });
125
+ }
126
+ else {
127
+ throw new Error(`Expecting a 2-byte response, got instead: 0x${res_buf.toString('hex')}`);
128
+ }
129
+ })
130
+ .catch((error) => {
131
+ throw error;
137
132
  });
138
133
  }
139
134
  }
@@ -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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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=woplugmini.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"woplugmini.test.d.ts","sourceRoot":"","sources":["../../src/device/woplugmini.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,91 @@
1
+ import { Buffer } from 'node:buffer';
2
+ import * as Noble from '@stoprocent/noble';
3
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
4
+ import { WoPlugMini } from './woplugmini.js';
5
+ describe('woPlugMini', () => {
6
+ let manufacturerData;
7
+ let onlog;
8
+ beforeEach(() => {
9
+ onlog = jest.fn();
10
+ });
11
+ describe('parseServiceData_US', () => {
12
+ it('should return null if manufacturerData length is not 14', async () => {
13
+ manufacturerData = Buffer.alloc(13);
14
+ const result = await WoPlugMini.parseServiceData_US(manufacturerData, onlog);
15
+ expect(result).toBeNull();
16
+ expect(onlog).toHaveBeenCalledWith('[parseServiceDataForWoPlugMiniUS] Buffer length 13 should be 14');
17
+ });
18
+ it('should parse the service data correctly', async () => {
19
+ manufacturerData = Buffer.from([0, 0, 0, 0, 0, 0, 0, 0, 0x80, 0x07, 0x64, 0x80, 0x40, 0x01]);
20
+ const result = await WoPlugMini.parseServiceData_US(manufacturerData, onlog);
21
+ expect(result).toEqual({
22
+ model: SwitchBotBLEModel.PlugMiniUS,
23
+ modelName: SwitchBotBLEModelName.PlugMini,
24
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.PlugMini,
25
+ state: 'on',
26
+ delay: true,
27
+ timer: true,
28
+ syncUtcTime: false,
29
+ wifiRssi: 100,
30
+ overload: true,
31
+ currentPower: 32.1,
32
+ });
33
+ });
34
+ });
35
+ describe('parseServiceData_JP', () => {
36
+ it('should return null if manufacturerData length is not 14', async () => {
37
+ manufacturerData = Buffer.alloc(13);
38
+ const result = await WoPlugMini.parseServiceData_JP(manufacturerData, onlog);
39
+ expect(result).toBeNull();
40
+ expect(onlog).toHaveBeenCalledWith('[parseServiceDataForWoPlugMiniJP] Buffer length 13 should be 14');
41
+ });
42
+ it('should parse the service data correctly', async () => {
43
+ manufacturerData = Buffer.from([0, 0, 0, 0, 0, 0, 0, 0, 0x80, 0x07, 0x64, 0x80, 0x40, 0x01]);
44
+ const result = await WoPlugMini.parseServiceData_JP(manufacturerData, onlog);
45
+ expect(result).toEqual({
46
+ model: SwitchBotBLEModel.PlugMiniJP,
47
+ modelName: SwitchBotBLEModelName.PlugMini,
48
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.PlugMini,
49
+ state: 'on',
50
+ delay: true,
51
+ timer: true,
52
+ syncUtcTime: false,
53
+ wifiRssi: 100,
54
+ overload: true,
55
+ currentPower: 32.1,
56
+ });
57
+ });
58
+ });
59
+ describe('state operations', () => {
60
+ let plugMini;
61
+ beforeEach(() => {
62
+ const peripheral = {}; // Replace with the actual peripheral object (e.g. from Noble)
63
+ plugMini = new WoPlugMini(peripheral, Noble);
64
+ jest.spyOn(plugMini, 'operatePlug').mockImplementation(async (bytes) => {
65
+ if (bytes.includes(0x80)) {
66
+ return;
67
+ }
68
+ if (bytes.includes(0x00)) {
69
+ // Intentionally left empty
70
+ }
71
+ });
72
+ });
73
+ it('should read state correctly', async () => {
74
+ const result = await plugMini.readState();
75
+ expect(result).toBe(true);
76
+ });
77
+ it('should turn on correctly', async () => {
78
+ const result = await plugMini.turnOn();
79
+ expect(result).toBe(true);
80
+ });
81
+ it('should turn off correctly', async () => {
82
+ const result = await plugMini.turnOff();
83
+ expect(result).toBe(false);
84
+ });
85
+ it('should toggle correctly', async () => {
86
+ const result = await plugMini.toggle();
87
+ expect(result).toBe(true);
88
+ });
89
+ });
90
+ });
91
+ //# sourceMappingURL=woplugmini.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"woplugmini.test.js","sourceRoot":"","sources":["../../src/device/woplugmini.test.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,7 @@
1
1
  import type { Buffer } from 'node:buffer';
2
+ import type { motionSensorServiceData } from '../types/bledevicestatus.js';
2
3
  import { SwitchbotDevice } from '../device.js';
3
- import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
4
4
  export declare class WoPresence extends SwitchbotDevice {
5
- static parseServiceData(buf: Buffer, onlog: ((message: string) => void) | undefined): {
6
- model: SwitchBotBLEModel;
7
- modelName: SwitchBotBLEModelName;
8
- modelFriendlyName: SwitchBotBLEModelFriendlyName;
9
- tested: boolean;
10
- movement: boolean;
11
- battery: number;
12
- led: number;
13
- iot: number;
14
- sense_distance: number;
15
- lightLevel: string;
16
- is_light: boolean;
17
- } | null;
5
+ static parseServiceData(serviceData: Buffer, onlog: ((message: string) => void) | undefined): Promise<motionSensorServiceData | null>;
18
6
  }
19
7
  //# sourceMappingURL=wopresence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wopresence.d.ts","sourceRoot":"","sources":["../../src/device/wopresence.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAErG,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"}
1
+ {"version":3,"file":"wopresence.d.ts","sourceRoot":"","sources":["../../src/device/wopresence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAM1E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C,qBAAa,UAAW,SAAQ,eAAe;WAChC,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAC7C,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;CAqC3C"}
@@ -1,16 +1,20 @@
1
+ /* Copyright(C) 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * wopresence.ts: Switchbot BLE API registration.
4
+ */
1
5
  import { SwitchbotDevice } from '../device.js';
2
- import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
6
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
3
7
  export class WoPresence extends SwitchbotDevice {
4
- static parseServiceData(buf, onlog) {
5
- if (buf.length !== 6) {
8
+ static async parseServiceData(serviceData, onlog) {
9
+ if (serviceData.length !== 6) {
6
10
  if (onlog && typeof onlog === 'function') {
7
- onlog(`[parseServiceDataForWoPresence] Buffer length ${buf.length} !== 6!`);
11
+ onlog(`[parseServiceDataForWoPresence] Buffer length ${serviceData.length} !== 6!`);
8
12
  }
9
13
  return null;
10
14
  }
11
- const byte1 = buf.readUInt8(1);
12
- const byte2 = buf.readUInt8(2);
13
- const byte5 = buf.readUInt8(5);
15
+ const byte1 = serviceData.readUInt8(1);
16
+ const byte2 = serviceData.readUInt8(2);
17
+ const byte5 = serviceData.readUInt8(5);
14
18
  const tested = !!(byte1 & 0b10000000);
15
19
  const movement = !!(byte1 & 0b01000000);
16
20
  const battery = byte2 & 0b01111111;
@@ -1 +1 @@
1
- {"version":3,"file":"wopresence.js","sourceRoot":"","sources":["../../src/device/wopresence.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAErG,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,CAAA;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAE9B,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA;QACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,KAAK,GAAG,UAAU,CAAA;QAClC,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,cAAc,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAChD,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,CAAA;QACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA;QAEvC,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,iBAAiB,CAAC,YAAY;YACrC,SAAS,EAAE,qBAAqB,CAAC,YAAY;YAC7C,iBAAiB,EAAE,6BAA6B,CAAC,YAAY;YAC7D,MAAM;YACN,QAAQ;YACR,OAAO;YACP,GAAG;YACH,GAAG;YACH,cAAc;YACd,UAAU,EACR,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACrE,QAAQ;SACT,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"wopresence.js","sourceRoot":"","sources":["../../src/device/wopresence.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,WAAmB,EACnB,KAA8C;QAE9C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CAAC,iDAAiD,WAAW,CAAC,MAAM,SAAS,CAAC,CAAA;YACrF,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAEtC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA;QACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,KAAK,GAAG,UAAU,CAAA;QAClC,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,cAAc,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAChD,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,CAAA;QACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA;QAEvC,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,iBAAiB,CAAC,YAAY;YACrC,SAAS,EAAE,qBAAqB,CAAC,YAAY;YAC7C,iBAAiB,EAAE,6BAA6B,CAAC,YAAY;YAC7D,MAAM;YACN,QAAQ;YACR,OAAO;YACP,GAAG;YACH,GAAG;YACH,cAAc;YACd,UAAU,EAAE,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAC/E,QAAQ;SACT,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=wopresence.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wopresence.test.d.ts","sourceRoot":"","sources":["../../src/device/wopresence.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ import { Buffer } from 'node:buffer';
2
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
3
+ import { WoPresence } from './wopresence.js';
4
+ describe('woPresence', () => {
5
+ describe('parseServiceData', () => {
6
+ it('should return null if serviceData length is not 6', async () => {
7
+ const serviceData = Buffer.from([0x01, 0x02, 0x03, 0x04, 0x05]);
8
+ const onlog = jest.fn();
9
+ const result = await WoPresence.parseServiceData(serviceData, onlog);
10
+ expect(result).toBeNull();
11
+ expect(onlog).toHaveBeenCalledWith('[parseServiceDataForWoPresence] Buffer length 5 !== 6!');
12
+ });
13
+ it('should parse serviceData correctly', async () => {
14
+ const serviceData = Buffer.from([0x00, 0b11000000, 0b01111111, 0x00, 0x00, 0b00111111]);
15
+ const onlog = jest.fn();
16
+ const result = await WoPresence.parseServiceData(serviceData, onlog);
17
+ expect(result).toEqual({
18
+ model: SwitchBotBLEModel.MotionSensor,
19
+ modelName: SwitchBotBLEModelName.MotionSensor,
20
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.MotionSensor,
21
+ tested: true,
22
+ movement: true,
23
+ battery: 127,
24
+ led: 1,
25
+ iot: 1,
26
+ sense_distance: 3,
27
+ lightLevel: 'unknown',
28
+ is_light: true,
29
+ });
30
+ expect(onlog).not.toHaveBeenCalled();
31
+ });
32
+ it('should handle different light levels correctly', async () => {
33
+ const serviceDataDark = Buffer.from([0x00, 0b11000000, 0b01111111, 0x00, 0x00, 0b00111101]);
34
+ const serviceDataBright = Buffer.from([0x00, 0b11000000, 0b01111111, 0x00, 0x00, 0b00111110]);
35
+ const resultDark = await WoPresence.parseServiceData(serviceDataDark, undefined);
36
+ const resultBright = await WoPresence.parseServiceData(serviceDataBright, undefined);
37
+ expect(resultDark?.lightLevel).toBe('dark');
38
+ expect(resultBright?.lightLevel).toBe('bright');
39
+ });
40
+ });
41
+ });
42
+ //# sourceMappingURL=wopresence.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wopresence.test.js","sourceRoot":"","sources":["../../src/device/wopresence.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC3G,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAEvB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YAEpE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;YACzB,MAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,wDAAwD,CAAC,CAAA;QAC9F,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;YACvF,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAEvB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YAEpE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,KAAK,EAAE,iBAAiB,CAAC,YAAY;gBACrC,SAAS,EAAE,qBAAqB,CAAC,YAAY;gBAC7C,iBAAiB,EAAE,6BAA6B,CAAC,YAAY;gBAC7D,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,GAAG;gBACZ,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,cAAc,EAAE,CAAC;gBACjB,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAA;YACF,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QACtC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;YAC3F,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;YAE7F,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;YAChF,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;YAEpF,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC3C,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,42 +1,8 @@
1
1
  import type { Buffer } from 'node:buffer';
2
+ import type { meterPlusServiceData, meterServiceData } from '../types/bledevicestatus.js';
2
3
  import { SwitchbotDevice } from '../device.js';
3
- import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
4
4
  export declare class WoSensorTH extends SwitchbotDevice {
5
- static parseServiceData(buf: Buffer, onlog: ((message: string) => void) | undefined): {
6
- model: SwitchBotBLEModel;
7
- modelName: SwitchBotBLEModelName;
8
- modelFriendlyName: SwitchBotBLEModelFriendlyName;
9
- /**
10
- * @deprecated The `temperature` object is deprecated and will be removed in future versions.
11
- * Use the `celsius` and `fahrenheit` properties directly instead.
12
- */
13
- temperature: {
14
- c: number;
15
- f: number;
16
- };
17
- celsius: number;
18
- fahrenheit: number;
19
- fahrenheit_mode: boolean;
20
- humidity: number;
21
- battery: number;
22
- } | null;
23
- static parseServiceData_Plus(buf: Buffer, onlog: ((message: string) => void) | undefined): {
24
- model: SwitchBotBLEModel;
25
- modelName: SwitchBotBLEModelName;
26
- modelfriendlyName: SwitchBotBLEModelFriendlyName;
27
- /**
28
- * @deprecated The `temperature` object is deprecated and will be removed in future versions.
29
- * Use the `celsius` and `fahrenheit` properties directly instead.
30
- */
31
- temperature: {
32
- c: number;
33
- f: number;
34
- };
35
- celsius: number;
36
- fahrenheit: number;
37
- fahrenheit_mode: boolean;
38
- humidity: number;
39
- battery: number;
40
- } | null;
5
+ static parseServiceData(serviceData: Buffer, onlog: ((message: string) => void) | undefined): Promise<meterServiceData | null>;
6
+ static parseServiceData_Plus(serviceData: Buffer, onlog: ((message: string) => void) | undefined): Promise<meterPlusServiceData | null>;
41
7
  }
42
8
  //# sourceMappingURL=wosensorth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wosensorth.d.ts","sourceRoot":"","sources":["../../src/device/wosensorth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAErG,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;;;;QAsB/E;;;WAGG;;;;;;;;;;;IAeP,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;QAsBpF;;;WAGG;;;;;;;;;;;CAcR"}
1
+ {"version":3,"file":"wosensorth.d.ts","sourceRoot":"","sources":["../../src/device/wosensorth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAMzF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C,qBAAa,UAAW,SAAQ,eAAe;WAChC,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAC7C,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;WAsCtB,qBAAqB,CAChC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAC7C,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;CAqCxC"}
@@ -1,17 +1,21 @@
1
+ /* Copyright(C) 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * wosensorth.ts: Switchbot BLE API registration.
4
+ */
1
5
  import { SwitchbotDevice } from '../device.js';
2
- import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
6
+ import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
3
7
  export class WoSensorTH extends SwitchbotDevice {
4
- static parseServiceData(buf, onlog) {
5
- if (buf.length !== 6) {
8
+ static async parseServiceData(serviceData, onlog) {
9
+ if (serviceData.length !== 6) {
6
10
  if (onlog && typeof onlog === 'function') {
7
- onlog(`[parseServiceDataForWoSensorTH] Buffer length ${buf.length} !== 6!`);
11
+ onlog(`[parseServiceDataForWoSensorTH] Buffer length ${serviceData.length} !== 6!`);
8
12
  }
9
13
  return null;
10
14
  }
11
- const byte2 = buf.readUInt8(2);
12
- const byte3 = buf.readUInt8(3);
13
- const byte4 = buf.readUInt8(4);
14
- const byte5 = buf.readUInt8(5);
15
+ const byte2 = serviceData.readUInt8(2);
16
+ const byte3 = serviceData.readUInt8(3);
17
+ const byte4 = serviceData.readUInt8(4);
18
+ const byte5 = serviceData.readUInt8(5);
15
19
  const temp_sign = byte4 & 0b10000000 ? 1 : -1;
16
20
  const temp_c = temp_sign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
17
21
  const temp_f = Math.round(((temp_c * 9 / 5) + 32) * 10) / 10;
@@ -21,13 +25,13 @@ export class WoSensorTH extends SwitchbotDevice {
21
25
  modelFriendlyName: SwitchBotBLEModelFriendlyName.Meter,
22
26
  /**
23
27
  * @deprecated The `temperature` object is deprecated and will be removed in future versions.
24
- * Use the `celsius` and `fahrenheit` properties directly instead.
28
+ * Use the `celcius` and `fahrenheit` properties directly instead.
25
29
  */
26
30
  temperature: {
27
31
  c: temp_c,
28
32
  f: temp_f,
29
33
  },
30
- celsius: temp_c,
34
+ celcius: temp_c,
31
35
  fahrenheit: temp_f,
32
36
  fahrenheit_mode: !!(byte5 & 0b10000000),
33
37
  humidity: byte5 & 0b01111111,
@@ -35,33 +39,33 @@ export class WoSensorTH extends SwitchbotDevice {
35
39
  };
36
40
  return data;
37
41
  }
38
- static parseServiceData_Plus(buf, onlog) {
39
- if (buf.length !== 6) {
42
+ static async parseServiceData_Plus(serviceData, onlog) {
43
+ if (serviceData.length !== 6) {
40
44
  if (onlog && typeof onlog === 'function') {
41
- onlog(`[parseServiceDataForWoSensorTHPlus] Buffer length ${buf.length} !== 6!`);
45
+ onlog(`[parseServiceDataForWoSensorTHPlus] Buffer length ${serviceData.length} !== 6!`);
42
46
  }
43
47
  return null;
44
48
  }
45
- const byte2 = buf.readUInt8(2);
46
- const byte3 = buf.readUInt8(3);
47
- const byte4 = buf.readUInt8(4);
48
- const byte5 = buf.readUInt8(5);
49
+ const byte2 = serviceData.readUInt8(2);
50
+ const byte3 = serviceData.readUInt8(3);
51
+ const byte4 = serviceData.readUInt8(4);
52
+ const byte5 = serviceData.readUInt8(5);
49
53
  const temp_sign = byte4 & 0b10000000 ? 1 : -1;
50
54
  const temp_c = temp_sign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
51
55
  const temp_f = Math.round(((temp_c * 9 / 5) + 32) * 10) / 10;
52
56
  const data = {
53
57
  model: SwitchBotBLEModel.MeterPlus,
54
58
  modelName: SwitchBotBLEModelName.MeterPlus,
55
- modelfriendlyName: SwitchBotBLEModelFriendlyName.MeterPlus,
59
+ modelFriendlyName: SwitchBotBLEModelFriendlyName.MeterPlus,
56
60
  /**
57
61
  * @deprecated The `temperature` object is deprecated and will be removed in future versions.
58
- * Use the `celsius` and `fahrenheit` properties directly instead.
62
+ * Use the `celcius` and `fahrenheit` properties directly instead.
59
63
  */
60
64
  temperature: {
61
65
  c: temp_c,
62
66
  f: temp_f,
63
67
  },
64
- celsius: temp_c,
68
+ celcius: temp_c,
65
69
  fahrenheit: temp_f,
66
70
  fahrenheit_mode: !!(byte5 & 0b10000000),
67
71
  humidity: byte5 & 0b01111111,
@@ -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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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=wosensorth.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wosensorth.test.d.ts","sourceRoot":"","sources":["../../src/device/wosensorth.test.ts"],"names":[],"mappings":""}