node-switchbot 2.5.0-beta.2 → 2.5.0-beta.21

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 (197) hide show
  1. package/dist/advertising.d.ts +31 -20
  2. package/dist/advertising.d.ts.map +1 -1
  3. package/dist/advertising.js +72 -75
  4. package/dist/advertising.js.map +1 -1
  5. package/dist/device/woblindtilt.d.ts +19 -50
  6. package/dist/device/woblindtilt.d.ts.map +1 -1
  7. package/dist/device/woblindtilt.js +39 -98
  8. package/dist/device/woblindtilt.js.map +1 -1
  9. package/dist/device/wobulb.d.ts +41 -15
  10. package/dist/device/wobulb.d.ts.map +1 -1
  11. package/dist/device/wobulb.js +71 -127
  12. package/dist/device/wobulb.js.map +1 -1
  13. package/dist/device/woceilinglight.d.ts +47 -21
  14. package/dist/device/woceilinglight.d.ts.map +1 -1
  15. package/dist/device/woceilinglight.js +94 -169
  16. package/dist/device/woceilinglight.js.map +1 -1
  17. package/dist/device/wocontact.d.ts +11 -1
  18. package/dist/device/wocontact.d.ts.map +1 -1
  19. package/dist/device/wocontact.js +22 -21
  20. package/dist/device/wocontact.js.map +1 -1
  21. package/dist/device/wocurtain.d.ts +39 -1
  22. package/dist/device/wocurtain.d.ts.map +1 -1
  23. package/dist/device/wocurtain.js +68 -102
  24. package/dist/device/wocurtain.js.map +1 -1
  25. package/dist/device/wohand.d.ts +37 -2
  26. package/dist/device/wohand.d.ts.map +1 -1
  27. package/dist/device/wohand.js +54 -88
  28. package/dist/device/wohand.js.map +1 -1
  29. package/dist/device/wohub2.d.ts +11 -1
  30. package/dist/device/wohub2.d.ts.map +1 -1
  31. package/dist/device/wohub2.js +20 -28
  32. package/dist/device/wohub2.js.map +1 -1
  33. package/dist/device/wohumi.d.ts +37 -2
  34. package/dist/device/wohumi.d.ts.map +1 -1
  35. package/dist/device/wohumi.js +51 -82
  36. package/dist/device/wohumi.js.map +1 -1
  37. package/dist/device/woiosensorth.d.ts +12 -1
  38. package/dist/device/woiosensorth.d.ts.map +1 -1
  39. package/dist/device/woiosensorth.js +24 -28
  40. package/dist/device/woiosensorth.js.map +1 -1
  41. package/dist/device/woplugmini.d.ts +45 -12
  42. package/dist/device/woplugmini.d.ts.map +1 -1
  43. package/dist/device/woplugmini.js +69 -75
  44. package/dist/device/woplugmini.js.map +1 -1
  45. package/dist/device/wopresence.d.ts +11 -1
  46. package/dist/device/wopresence.d.ts.map +1 -1
  47. package/dist/device/wopresence.js +20 -26
  48. package/dist/device/wopresence.js.map +1 -1
  49. package/dist/device/wosensorth.d.ts +18 -2
  50. package/dist/device/wosensorth.d.ts.map +1 -1
  51. package/dist/device/wosensorth.js +32 -48
  52. package/dist/device/wosensorth.js.map +1 -1
  53. package/dist/device/wosmartlock.d.ts +56 -13
  54. package/dist/device/wosmartlock.d.ts.map +1 -1
  55. package/dist/device/wosmartlock.js +106 -194
  56. package/dist/device/wosmartlock.js.map +1 -1
  57. package/dist/device/wosmartlockpro.d.ts +61 -18
  58. package/dist/device/wosmartlockpro.d.ts.map +1 -1
  59. package/dist/device/wosmartlockpro.js +114 -203
  60. package/dist/device/wosmartlockpro.js.map +1 -1
  61. package/dist/device/wostrip.d.ts +37 -18
  62. package/dist/device/wostrip.d.ts.map +1 -1
  63. package/dist/device/wostrip.js +78 -124
  64. package/dist/device/wostrip.js.map +1 -1
  65. package/dist/device.d.ts +87 -224
  66. package/dist/device.d.ts.map +1 -1
  67. package/dist/device.js +123 -407
  68. package/dist/device.js.map +1 -1
  69. package/dist/index.d.ts +8 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +8 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/parameter-checker.d.ts +78 -18
  74. package/dist/parameter-checker.d.ts.map +1 -1
  75. package/dist/parameter-checker.js +139 -334
  76. package/dist/parameter-checker.js.map +1 -1
  77. package/dist/settings.d.ts +46 -0
  78. package/dist/settings.d.ts.map +1 -1
  79. package/dist/settings.js +46 -2
  80. package/dist/settings.js.map +1 -1
  81. package/dist/switchbot-openapi.d.ts +56 -0
  82. package/dist/switchbot-openapi.d.ts.map +1 -0
  83. package/dist/switchbot-openapi.js +241 -0
  84. package/dist/switchbot-openapi.js.map +1 -0
  85. package/dist/switchbot.d.ts +41 -17
  86. package/dist/switchbot.d.ts.map +1 -1
  87. package/dist/switchbot.js +311 -176
  88. package/dist/switchbot.js.map +1 -1
  89. package/dist/test/woblindtilt.test.d.ts.map +1 -0
  90. package/dist/test/woblindtilt.test.js +97 -0
  91. package/dist/test/woblindtilt.test.js.map +1 -0
  92. package/dist/{device → test}/wobulb.test.d.ts.map +1 -1
  93. package/dist/test/wobulb.test.js +104 -0
  94. package/dist/test/wobulb.test.js.map +1 -0
  95. package/dist/test/woceilinglight.test.d.ts.map +1 -0
  96. package/dist/test/woceilinglight.test.js +95 -0
  97. package/dist/test/woceilinglight.test.js.map +1 -0
  98. package/dist/test/wocontact.test.d.ts.map +1 -0
  99. package/dist/test/wocontact.test.js +38 -0
  100. package/dist/test/wocontact.test.js.map +1 -0
  101. package/dist/test/wocurtain.test.d.ts.map +1 -0
  102. package/dist/test/wocurtain.test.js +76 -0
  103. package/dist/test/wocurtain.test.js.map +1 -0
  104. package/dist/{device → test}/wohand.test.d.ts.map +1 -1
  105. package/dist/test/wohand.test.js +76 -0
  106. package/dist/test/wohand.test.js.map +1 -0
  107. package/dist/test/wohub2.test.d.ts +2 -0
  108. package/dist/test/wohub2.test.d.ts.map +1 -0
  109. package/dist/{device/wohand2.test.js → test/wohub2.test.js} +10 -8
  110. package/dist/test/wohub2.test.js.map +1 -0
  111. package/dist/{device → test}/wohumi.test.d.ts.map +1 -1
  112. package/dist/{device → test}/wohumi.test.js +5 -2
  113. package/dist/test/wohumi.test.js.map +1 -0
  114. package/dist/test/woiosensorth.test.d.ts.map +1 -0
  115. package/dist/{device → test}/woiosensorth.test.js +11 -9
  116. package/dist/test/woiosensorth.test.js.map +1 -0
  117. package/dist/test/woplugmini.test.d.ts.map +1 -0
  118. package/dist/{device → test}/woplugmini.test.js +10 -5
  119. package/dist/test/woplugmini.test.js.map +1 -0
  120. package/dist/test/wopresence.test.d.ts.map +1 -0
  121. package/dist/{device → test}/wopresence.test.js +5 -1
  122. package/dist/test/wopresence.test.js.map +1 -0
  123. package/dist/test/wosensorth.test.d.ts.map +1 -0
  124. package/dist/{device → test}/wosensorth.test.js +5 -14
  125. package/dist/test/wosensorth.test.js.map +1 -0
  126. package/dist/test/wosmartlock.test.d.ts.map +1 -0
  127. package/dist/test/wosmartlock.test.js +147 -0
  128. package/dist/test/wosmartlock.test.js.map +1 -0
  129. package/dist/test/wosmartlockpro.test.d.ts.map +1 -0
  130. package/dist/{device → test}/wosmartlockpro.test.js +30 -26
  131. package/dist/test/wosmartlockpro.test.js.map +1 -0
  132. package/dist/{device → test}/wostrip.test.d.ts.map +1 -1
  133. package/dist/{device → test}/wostrip.test.js +18 -19
  134. package/dist/test/wostrip.test.js.map +1 -0
  135. package/dist/types/bledevicestatus.d.ts +4 -12
  136. package/dist/types/bledevicestatus.d.ts.map +1 -1
  137. package/dist/types/devicelist.d.ts.map +1 -1
  138. package/dist/types/devicelist.js +0 -4
  139. package/dist/types/devicelist.js.map +1 -1
  140. package/dist/types/deviceresponse.d.ts.map +1 -1
  141. package/dist/types/devicestatus.d.ts.map +1 -1
  142. package/dist/types/irdevicelist.d.ts.map +1 -1
  143. package/dist/types/pushbody.d.ts +1 -1
  144. package/dist/types/pushbody.d.ts.map +1 -1
  145. package/dist/types/types.d.ts +71 -120
  146. package/dist/types/types.d.ts.map +1 -1
  147. package/dist/types/types.js +10 -0
  148. package/dist/types/types.js.map +1 -1
  149. package/package.json +6 -4
  150. package/dist/device/woblindtilt.test.d.ts.map +0 -1
  151. package/dist/device/woblindtilt.test.js +0 -26
  152. package/dist/device/woblindtilt.test.js.map +0 -1
  153. package/dist/device/wobulb.test.js +0 -52
  154. package/dist/device/wobulb.test.js.map +0 -1
  155. package/dist/device/woceilinglight.test.d.ts.map +0 -1
  156. package/dist/device/woceilinglight.test.js +0 -63
  157. package/dist/device/woceilinglight.test.js.map +0 -1
  158. package/dist/device/wocontact.test.d.ts.map +0 -1
  159. package/dist/device/wocontact.test.js +0 -34
  160. package/dist/device/wocontact.test.js.map +0 -1
  161. package/dist/device/wocurtain.test.d.ts.map +0 -1
  162. package/dist/device/wocurtain.test.js +0 -33
  163. package/dist/device/wocurtain.test.js.map +0 -1
  164. package/dist/device/wohand.test.js +0 -62
  165. package/dist/device/wohand.test.js.map +0 -1
  166. package/dist/device/wohand2.test.d.ts +0 -2
  167. package/dist/device/wohand2.test.d.ts.map +0 -1
  168. package/dist/device/wohand2.test.js.map +0 -1
  169. package/dist/device/wohumi.test.js.map +0 -1
  170. package/dist/device/woiosensorth.test.d.ts.map +0 -1
  171. package/dist/device/woiosensorth.test.js.map +0 -1
  172. package/dist/device/woplugmini.test.d.ts.map +0 -1
  173. package/dist/device/woplugmini.test.js.map +0 -1
  174. package/dist/device/wopresence.test.d.ts.map +0 -1
  175. package/dist/device/wopresence.test.js.map +0 -1
  176. package/dist/device/wosensorth.test.d.ts.map +0 -1
  177. package/dist/device/wosensorth.test.js.map +0 -1
  178. package/dist/device/wosmartlock.test.d.ts.map +0 -1
  179. package/dist/device/wosmartlock.test.js +0 -84
  180. package/dist/device/wosmartlock.test.js.map +0 -1
  181. package/dist/device/wosmartlockpro.test.d.ts.map +0 -1
  182. package/dist/device/wosmartlockpro.test.js.map +0 -1
  183. package/dist/device/wostrip.test.js.map +0 -1
  184. /package/dist/{device → test}/woblindtilt.test.d.ts +0 -0
  185. /package/dist/{device → test}/wobulb.test.d.ts +0 -0
  186. /package/dist/{device → test}/woceilinglight.test.d.ts +0 -0
  187. /package/dist/{device → test}/wocontact.test.d.ts +0 -0
  188. /package/dist/{device → test}/wocurtain.test.d.ts +0 -0
  189. /package/dist/{device → test}/wohand.test.d.ts +0 -0
  190. /package/dist/{device → test}/wohumi.test.d.ts +0 -0
  191. /package/dist/{device → test}/woiosensorth.test.d.ts +0 -0
  192. /package/dist/{device → test}/woplugmini.test.d.ts +0 -0
  193. /package/dist/{device → test}/wopresence.test.d.ts +0 -0
  194. /package/dist/{device → test}/wosensorth.test.d.ts +0 -0
  195. /package/dist/{device → test}/wosmartlock.test.d.ts +0 -0
  196. /package/dist/{device → test}/wosmartlockpro.test.d.ts +0 -0
  197. /package/dist/{device → test}/wostrip.test.d.ts +0 -0
package/dist/switchbot.js CHANGED
@@ -1,4 +1,3 @@
1
- import * as Noble from '@stoprocent/noble';
2
1
  import { Advertising } from './advertising.js';
3
2
  import { SwitchbotDevice } from './device.js';
4
3
  import { WoBlindTilt } from './device/woblindtilt.js';
@@ -18,6 +17,9 @@ import { WoSmartLockPro } from './device/wosmartlockpro.js';
18
17
  import { WoStrip } from './device/wostrip.js';
19
18
  import { parameterChecker } from './parameter-checker.js';
20
19
  import { SwitchBotBLEModel } from './types/types.js';
20
+ /**
21
+ * SwitchBot class to interact with SwitchBot devices.
22
+ */
21
23
  export class SwitchBot {
22
24
  ready;
23
25
  noble;
@@ -26,16 +28,12 @@ export class SwitchBot {
26
28
  onlog;
27
29
  DEFAULT_DISCOVERY_DURATION = 5000;
28
30
  PRIMARY_SERVICE_UUID_LIST = [];
29
- /* ------------------------------------------------------------------
30
- * Constructor
31
- *
32
- * [Arguments]
33
- * - params | Object | Optional |
34
- * - noble | Noble | Optional | The Noble object created by the noble module.
35
- * | | | This parameter is optional.
36
- * | | | If you don't specify this parameter, this
37
- * | | | module automatically creates it.
38
- * ---------------------------------------------------------------- */
31
+ /**
32
+ * Constructor
33
+ *
34
+ * @param {Params} [params] - Optional parameters
35
+ * @param {typeof Noble} [params.noble] - Optional noble instance
36
+ */
39
37
  constructor(params) {
40
38
  this.ready = this.init(params);
41
39
  }
@@ -47,7 +45,15 @@ export class SwitchBot {
47
45
  * @returns {Promise<void>} - Resolves when initialization is complete
48
46
  */
49
47
  async init(params) {
50
- this.noble = params?.noble ?? Noble;
48
+ let noble;
49
+ if (params && params.noble) {
50
+ noble = params.noble;
51
+ }
52
+ else {
53
+ noble = (await import('@stoprocent/noble')).default;
54
+ }
55
+ // Public properties
56
+ this.noble = noble;
51
57
  }
52
58
  /**
53
59
  * Discover SwitchBot devices based on the provided parameters.
@@ -56,221 +62,350 @@ export class SwitchBot {
56
62
  * @returns {Promise<SwitchbotDevice[]>} - A promise that resolves with a list of discovered devices.
57
63
  */
58
64
  async discover(params = {}) {
59
- // Validate parameters
60
- const valid = parameterChecker.check(params, {
61
- duration: { required: false, type: 'integer', min: 1, max: 60000 },
62
- model: { required: false, type: 'string', enum: Object.values(SwitchBotBLEModel) },
63
- id: { required: false, type: 'string', min: 12, max: 17 },
64
- quick: { required: false, type: 'boolean' },
65
- }, false);
66
- if (!valid) {
67
- throw new Error(parameterChecker.error.message);
68
- }
69
- const { duration = this.DEFAULT_DISCOVERY_DURATION, model = '', id = '', quick = false } = params;
70
- // Initialize the noble object
71
- await this._init();
72
- if (!this.noble) {
73
- throw new Error('noble failed to initialize');
74
- }
75
- const peripherals = {};
76
- let timer;
77
- const finishDiscovery = () => {
78
- clearTimeout(timer);
79
- this.noble.removeAllListeners('discover');
80
- this.noble.stopScanning();
81
- return Object.values(peripherals);
82
- };
83
- return new Promise((resolve, reject) => {
84
- try {
65
+ const promise = new Promise((resolve, reject) => {
66
+ // Check the parameters
67
+ const valid = parameterChecker.check(params, {
68
+ duration: { required: false, type: 'integer', min: 1, max: 60000 },
69
+ model: {
70
+ required: false,
71
+ type: 'string',
72
+ enum: [
73
+ SwitchBotBLEModel.Bot,
74
+ SwitchBotBLEModel.Curtain,
75
+ SwitchBotBLEModel.Curtain3,
76
+ SwitchBotBLEModel.Humidifier,
77
+ SwitchBotBLEModel.Meter,
78
+ SwitchBotBLEModel.MeterPlus,
79
+ SwitchBotBLEModel.Hub2,
80
+ SwitchBotBLEModel.OutdoorMeter,
81
+ SwitchBotBLEModel.MotionSensor,
82
+ SwitchBotBLEModel.ContactSensor,
83
+ SwitchBotBLEModel.ColorBulb,
84
+ SwitchBotBLEModel.CeilingLight,
85
+ SwitchBotBLEModel.CeilingLightPro,
86
+ SwitchBotBLEModel.StripLight,
87
+ SwitchBotBLEModel.PlugMiniUS,
88
+ SwitchBotBLEModel.PlugMiniJP,
89
+ SwitchBotBLEModel.Lock,
90
+ SwitchBotBLEModel.LockPro,
91
+ SwitchBotBLEModel.BlindTilt,
92
+ ],
93
+ },
94
+ id: { required: false, type: 'string', min: 12, max: 17 },
95
+ quick: { required: false, type: 'boolean' },
96
+ }, false);
97
+ if (!valid) {
98
+ reject(new Error(parameterChecker.error.message));
99
+ return;
100
+ }
101
+ if (!params) {
102
+ params = {};
103
+ }
104
+ // Determine the values of the parameters
105
+ const p = {
106
+ duration: params.duration || this.DEFAULT_DISCOVERY_DURATION,
107
+ model: params.model || '',
108
+ id: params.id || '',
109
+ quick: !!params.quick,
110
+ };
111
+ // Initialize the noble object
112
+ this._init()
113
+ .then(() => {
114
+ if (this.noble === null) {
115
+ return reject(new Error('noble failed to initialize'));
116
+ }
117
+ const peripherals = {};
118
+ let timer = setTimeout(() => { }, 0);
119
+ const finishDiscovery = () => {
120
+ if (timer) {
121
+ clearTimeout(timer);
122
+ }
123
+ this.noble.removeAllListeners('discover');
124
+ this.noble.stopScanningAsync();
125
+ const device_list = [];
126
+ for (const addr in peripherals) {
127
+ device_list.push(peripherals[addr]);
128
+ }
129
+ resolve(device_list);
130
+ };
85
131
  // Set a handler for the 'discover' event
86
132
  this.noble.on('discover', async (peripheral) => {
87
- const device = await this.getDeviceObject(peripheral, id, model);
88
- if (device) {
89
- peripherals[device.id] = device;
90
- if (this.ondiscover) {
91
- this.ondiscover(device);
92
- }
93
- if (quick) {
94
- resolve(finishDiscovery());
95
- }
133
+ const device = await this.getDeviceObject(peripheral, p.id, p.model);
134
+ if (!device) {
135
+ return;
136
+ }
137
+ const id = device.id;
138
+ peripherals[id] = device;
139
+ if (this.ondiscover && typeof this.ondiscover === 'function') {
140
+ this.ondiscover(device);
141
+ }
142
+ if (p.quick) {
143
+ finishDiscovery();
96
144
  }
97
145
  });
98
146
  // Start scanning
99
- this.noble.startScanningAsync(this.PRIMARY_SERVICE_UUID_LIST, false)
100
- .then(() => {
147
+ this.noble.startScanningAsync(this.PRIMARY_SERVICE_UUID_LIST, false).then(() => {
101
148
  timer = setTimeout(() => {
102
- resolve(finishDiscovery());
103
- }, duration);
104
- })
105
- .catch((error) => {
106
- reject(new Error(error.message));
149
+ finishDiscovery();
150
+ }, p.duration);
151
+ }).catch((error) => {
152
+ reject(error);
107
153
  });
108
- }
109
- catch (error) {
110
- reject(new Error(String(error)));
111
- }
154
+ })
155
+ .catch((error) => {
156
+ reject(error);
157
+ });
112
158
  });
159
+ return promise;
113
160
  }
161
+ /**
162
+ * Initializes the noble object and waits for it to be powered on.
163
+ *
164
+ * @returns {Promise<void>} - Resolves when the noble object is powered on.
165
+ */
114
166
  async _init() {
115
167
  await this.ready;
116
- if (this.noble._state === 'poweredOn') {
117
- return;
118
- }
119
- return new Promise((resolve, reject) => {
168
+ const promise = new Promise((resolve, reject) => {
169
+ let err;
170
+ if (this.noble._state === 'poweredOn') {
171
+ resolve();
172
+ return;
173
+ }
120
174
  this.noble.once('stateChange', (state) => {
121
- if (state === 'poweredOn') {
122
- resolve();
123
- }
124
- else if (['unsupported', 'unauthorized', 'poweredOff'].includes(state)) {
125
- reject(new Error(`Failed to initialize the Noble object: ${state}`));
126
- }
127
- else if (['resetting', 'unknown'].includes(state)) {
128
- reject(new Error(`Adapter is not ready: ${state}`));
129
- }
130
- else {
131
- reject(new Error(`Unknown state: ${state}`));
175
+ switch (state) {
176
+ case 'unsupported':
177
+ case 'unauthorized':
178
+ case 'poweredOff':
179
+ err = new Error(`Failed to initialize the Noble object: ${this.noble._state}`);
180
+ reject(err);
181
+ return;
182
+ case 'resetting':
183
+ case 'unknown':
184
+ err = new Error(`Adapter is not ready: ${this.noble._state}`);
185
+ reject(err);
186
+ return;
187
+ case 'poweredOn':
188
+ resolve();
189
+ return;
190
+ default:
191
+ err = new Error(`Unknown state: ${this.noble._state}`);
192
+ reject(err);
132
193
  }
133
194
  });
134
195
  });
196
+ return promise;
135
197
  }
198
+ /**
199
+ * Gets the device object based on the peripheral, id, and model.
200
+ *
201
+ * @param {Noble.Peripheral} peripheral - The peripheral object.
202
+ * @param {string} id - The device id.
203
+ * @param {string} model - The device model.
204
+ * @returns {Promise<SwitchbotDevice | null>} - The device object or null.
205
+ */
136
206
  async getDeviceObject(peripheral, id, model) {
137
207
  const ad = await Advertising.parse(peripheral, this.onlog);
138
- if (!ad) {
139
- return null;
208
+ if (ad && await this.filterAdvertising(ad, id, model)) {
209
+ let device;
210
+ if (ad && ad.serviceData && ad.serviceData.model) {
211
+ switch (ad.serviceData.model) {
212
+ case SwitchBotBLEModel.Bot:
213
+ device = new WoHand(peripheral, this.noble);
214
+ break;
215
+ case SwitchBotBLEModel.Curtain:
216
+ case SwitchBotBLEModel.Curtain3:
217
+ device = new WoCurtain(peripheral, this.noble);
218
+ break;
219
+ case SwitchBotBLEModel.Humidifier:
220
+ device = new WoHumi(peripheral, this.noble);
221
+ break;
222
+ case SwitchBotBLEModel.Meter:
223
+ device = new WoSensorTH(peripheral, this.noble);
224
+ break;
225
+ case SwitchBotBLEModel.MeterPlus:
226
+ device = new WoSensorTH(peripheral, this.noble);
227
+ break;
228
+ case SwitchBotBLEModel.Hub2:
229
+ device = new WoHub2(peripheral, this.noble);
230
+ break;
231
+ case SwitchBotBLEModel.OutdoorMeter:
232
+ device = new WoIOSensorTH(peripheral, this.noble);
233
+ break;
234
+ case SwitchBotBLEModel.MotionSensor:
235
+ device = new WoPresence(peripheral, this.noble);
236
+ break;
237
+ case SwitchBotBLEModel.ContactSensor:
238
+ device = new WoContact(peripheral, this.noble);
239
+ break;
240
+ case SwitchBotBLEModel.ColorBulb:
241
+ device = new WoBulb(peripheral, this.noble);
242
+ break;
243
+ case SwitchBotBLEModel.CeilingLight:
244
+ device = new WoCeilingLight(peripheral, this.noble);
245
+ break;
246
+ case SwitchBotBLEModel.CeilingLightPro:
247
+ device = new WoCeilingLight(peripheral, this.noble);
248
+ break;
249
+ case SwitchBotBLEModel.StripLight:
250
+ device = new WoStrip(peripheral, this.noble);
251
+ break;
252
+ case SwitchBotBLEModel.PlugMiniUS:
253
+ case SwitchBotBLEModel.PlugMiniJP:
254
+ device = new WoPlugMini(peripheral, this.noble);
255
+ break;
256
+ case SwitchBotBLEModel.Lock:
257
+ device = new WoSmartLock(peripheral, this.noble);
258
+ break;
259
+ case SwitchBotBLEModel.LockPro:
260
+ device = new WoSmartLockPro(peripheral, this.noble);
261
+ break;
262
+ case SwitchBotBLEModel.BlindTilt:
263
+ device = new WoBlindTilt(peripheral, this.noble);
264
+ break;
265
+ default: // 'resetting', 'unknown'
266
+ device = new SwitchbotDevice(peripheral, this.noble);
267
+ }
268
+ }
269
+ return device || null;
140
270
  }
141
- if (!this.filterAdvertising(ad, id, model)) {
271
+ else {
142
272
  return null;
143
273
  }
144
- const modelMapping = {
145
- [SwitchBotBLEModel.Bot]: WoHand,
146
- [SwitchBotBLEModel.Curtain]: WoCurtain,
147
- [SwitchBotBLEModel.Curtain3]: WoCurtain,
148
- [SwitchBotBLEModel.Humidifier]: WoHumi,
149
- [SwitchBotBLEModel.Meter]: WoSensorTH,
150
- [SwitchBotBLEModel.MeterPlus]: WoSensorTH,
151
- [SwitchBotBLEModel.Hub2]: WoHub2,
152
- [SwitchBotBLEModel.OutdoorMeter]: WoIOSensorTH,
153
- [SwitchBotBLEModel.MotionSensor]: WoPresence,
154
- [SwitchBotBLEModel.ContactSensor]: WoContact,
155
- [SwitchBotBLEModel.ColorBulb]: WoBulb,
156
- [SwitchBotBLEModel.CeilingLight]: WoCeilingLight,
157
- [SwitchBotBLEModel.CeilingLightPro]: WoCeilingLight,
158
- [SwitchBotBLEModel.StripLight]: WoStrip,
159
- [SwitchBotBLEModel.PlugMiniUS]: WoPlugMini,
160
- [SwitchBotBLEModel.PlugMiniJP]: WoPlugMini,
161
- [SwitchBotBLEModel.Lock]: WoSmartLock,
162
- [SwitchBotBLEModel.LockPro]: WoSmartLockPro,
163
- [SwitchBotBLEModel.BlindTilt]: WoBlindTilt,
164
- };
165
- const DeviceClass = ad?.serviceData?.model ? modelMapping[ad.serviceData.model] : SwitchbotDevice;
166
- return new DeviceClass(peripheral, this.noble);
167
274
  }
168
- filterAdvertising(ad, id, model) {
275
+ /**
276
+ * Filters advertising data based on id and model.
277
+ *
278
+ * @param {Ad} ad - The advertising data.
279
+ * @param {string} id - The device id.
280
+ * @param {string} model - The device model.
281
+ * @returns {boolean} - True if the advertising data matches the id and model, false otherwise.
282
+ */
283
+ async filterAdvertising(ad, id, model) {
169
284
  if (!ad) {
170
285
  return false;
171
286
  }
172
287
  if (id) {
173
- const normalizedId = id.toLowerCase().replace(/:/g, '');
174
- const adId = ad.address.toLowerCase().replace(/[^a-z0-9]/g, '');
175
- if (adId !== normalizedId) {
288
+ id = id.toLowerCase().replace(/:/g, '');
289
+ const ad_id = ad.address.toLowerCase().replace(/[^a-z0-9]/g, '');
290
+ if (ad_id !== id) {
176
291
  return false;
177
292
  }
178
293
  }
179
- if (model && ad.serviceData.model !== model) {
180
- return false;
294
+ if (model) {
295
+ if (ad.serviceData.model !== model) {
296
+ return false;
297
+ }
181
298
  }
182
299
  return true;
183
300
  }
184
301
  /**
185
- * startScan([params])
186
- * - Start to monitor advertising packets coming from switchbot devices
302
+ * Starts scanning for SwitchBot devices.
187
303
  *
188
- * @param {object} params - Optional parameters
189
- * @param {string} [params.model] - Optional model filter ("H", "T", "e", "s", "d", "c", "{", "u", "g", "o", "i", "x", "r")
190
- * @param {string} [params.id] - Optional ID filter (MAC address, case-insensitive, colons ignored)
191
- * @returns {Promise<void>} - Resolves when scanning starts successfully
304
+ * @param {Params} [params] - Optional parameters.
305
+ * @returns {Promise<void>} - Resolves when scanning starts successfully.
192
306
  */
193
307
  async startScan(params = {}) {
194
- // Validate parameters
195
- const valid = parameterChecker.check(params, {
196
- model: {
197
- required: false,
198
- type: 'string',
199
- enum: [
200
- SwitchBotBLEModel.Bot,
201
- SwitchBotBLEModel.Curtain,
202
- SwitchBotBLEModel.Curtain3,
203
- SwitchBotBLEModel.Humidifier,
204
- SwitchBotBLEModel.Meter,
205
- SwitchBotBLEModel.MeterPlus,
206
- SwitchBotBLEModel.Hub2,
207
- SwitchBotBLEModel.OutdoorMeter,
208
- SwitchBotBLEModel.MotionSensor,
209
- SwitchBotBLEModel.ContactSensor,
210
- SwitchBotBLEModel.ColorBulb,
211
- SwitchBotBLEModel.CeilingLight,
212
- SwitchBotBLEModel.CeilingLightPro,
213
- SwitchBotBLEModel.StripLight,
214
- SwitchBotBLEModel.PlugMiniUS,
215
- SwitchBotBLEModel.PlugMiniJP,
216
- SwitchBotBLEModel.Lock,
217
- SwitchBotBLEModel.LockPro,
218
- SwitchBotBLEModel.BlindTilt,
219
- ],
220
- },
221
- id: { required: false, type: 'string', min: 12, max: 17 },
222
- }, false);
223
- if (!valid) {
224
- throw new Error(parameterChecker.error.message);
225
- }
226
- // Initialize the noble object
227
- await this._init();
228
- if (this.noble === null) {
229
- throw new Error('noble object failed to initialize');
230
- }
231
- const { model = '', id = '' } = params;
232
- // Set a handler for the 'discover' event
233
- this.noble.on('discover', async (peripheral) => {
234
- const ad = await Advertising.parse(peripheral, this.onlog);
235
- if (ad && this.filterAdvertising(ad, id, model)) {
236
- if (this.onadvertisement && typeof this.onadvertisement === 'function') {
237
- this.onadvertisement(ad);
238
- }
308
+ const promise = new Promise((resolve, reject) => {
309
+ // Check the parameters
310
+ const valid = parameterChecker.check(params, {
311
+ model: {
312
+ required: false,
313
+ type: 'string',
314
+ enum: [
315
+ SwitchBotBLEModel.Bot,
316
+ SwitchBotBLEModel.Curtain,
317
+ SwitchBotBLEModel.Curtain3,
318
+ SwitchBotBLEModel.Humidifier,
319
+ SwitchBotBLEModel.Meter,
320
+ SwitchBotBLEModel.MeterPlus,
321
+ SwitchBotBLEModel.Hub2,
322
+ SwitchBotBLEModel.OutdoorMeter,
323
+ SwitchBotBLEModel.MotionSensor,
324
+ SwitchBotBLEModel.ContactSensor,
325
+ SwitchBotBLEModel.ColorBulb,
326
+ SwitchBotBLEModel.CeilingLight,
327
+ SwitchBotBLEModel.CeilingLightPro,
328
+ SwitchBotBLEModel.StripLight,
329
+ SwitchBotBLEModel.PlugMiniUS,
330
+ SwitchBotBLEModel.PlugMiniJP,
331
+ SwitchBotBLEModel.Lock,
332
+ SwitchBotBLEModel.LockPro,
333
+ SwitchBotBLEModel.BlindTilt,
334
+ ],
335
+ },
336
+ id: { required: false, type: 'string', min: 12, max: 17 },
337
+ }, false);
338
+ if (!valid) {
339
+ reject(new Error(parameterChecker.error.message));
340
+ return;
239
341
  }
342
+ // Initialize the noble object
343
+ this._init()
344
+ .then(() => {
345
+ if (this.noble === null) {
346
+ return reject(new Error('noble object failed to initialize'));
347
+ }
348
+ // Determine the values of the parameters
349
+ const p = {
350
+ model: params.model || '',
351
+ id: params.id || '',
352
+ };
353
+ // Set a handler for the 'discover' event
354
+ this.noble.on('discover', async (peripheral) => {
355
+ const ad = await Advertising.parse(peripheral, this.onlog);
356
+ if (ad && await this.filterAdvertising(ad, p.id, p.model)) {
357
+ if (this.onadvertisement
358
+ && typeof this.onadvertisement === 'function') {
359
+ this.onadvertisement(ad);
360
+ }
361
+ }
362
+ });
363
+ // Start scanning
364
+ this.noble.startScanningAsync(this.PRIMARY_SERVICE_UUID_LIST, true).then(() => {
365
+ resolve();
366
+ }).catch((error) => {
367
+ reject(error);
368
+ });
369
+ })
370
+ .catch((error) => {
371
+ reject(error);
372
+ });
240
373
  });
241
- // Start scanning
242
- await this.noble.startScanningAsync(this.PRIMARY_SERVICE_UUID_LIST, true);
374
+ return promise;
243
375
  }
244
376
  /**
245
- * stopScan()
246
- * - Stop monitoring advertising packets from SwitchBot devices
377
+ * Stops scanning for SwitchBot devices.
247
378
  *
248
- * @returns {Promise<void>} - Resolves when scanning stops successfully
379
+ * @returns {Promise<void>} - Resolves when scanning stops successfully.
249
380
  */
250
381
  async stopScan() {
251
- if (!this.noble) {
382
+ if (this.noble === null) {
252
383
  return;
253
384
  }
254
385
  this.noble.removeAllListeners('discover');
255
- await this.noble.stopScanningAsync();
386
+ this.noble.stopScanningAsync();
256
387
  }
257
388
  /**
258
- * wait
259
- * - Wait for the specified time (msec)
389
+ * Waits for the specified time.
260
390
  *
261
- * @param {number} msec - The time to wait in milliseconds
262
- * @returns {Promise<void>} - Resolves after the specified time
391
+ * @param {number} msec - The time to wait in milliseconds.
392
+ * @returns {Promise<void>} - Resolves after the specified time.
263
393
  */
264
394
  async wait(msec) {
265
- // Validate parameters
266
- const valid = parameterChecker.check({ msec }, {
267
- msec: { required: true, type: 'integer', min: 0 },
268
- }, true);
269
- if (!valid) {
270
- throw new Error(parameterChecker.error.message);
271
- }
272
- // Return a promise that resolves after the specified time
273
- return new Promise(resolve => setTimeout(resolve, msec));
395
+ return new Promise((resolve, reject) => {
396
+ // Check the parameters
397
+ const valid = parameterChecker.check({
398
+ msec,
399
+ }, {
400
+ msec: { required: true, type: 'integer', min: 0 },
401
+ }, true);
402
+ if (!valid) {
403
+ reject(new Error(parameterChecker.error.message));
404
+ return;
405
+ }
406
+ // Set a timer
407
+ setTimeout(resolve, msec);
408
+ });
274
409
  }
275
410
  }
276
411
  export { SwitchbotDevice };
@@ -1 +1 @@
1
- {"version":3,"file":"switchbot.js","sourceRoot":"","sources":["../src/switchbot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"switchbot.js","sourceRoot":"","sources":["../src/switchbot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"woblindtilt.test.d.ts","sourceRoot":"","sources":["../../src/test/woblindtilt.test.ts"],"names":[],"mappings":""}