node-switchbot 2.5.0-beta.13 → 2.5.0-beta.15

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.
@@ -1,48 +1,23 @@
1
1
  import type * as Noble from '@stoprocent/noble';
2
2
  import type { Ad, Params } from './types/types.js';
3
3
  import { SwitchbotDevice } from './device.js';
4
- /**
5
- * SwitchBot class to interact with SwitchBot devices via BLE.
6
- */
7
4
  export declare class SwitchBot {
8
5
  private ready;
9
6
  noble: typeof Noble;
10
7
  ondiscover?: (device: SwitchbotDevice) => void;
11
8
  onadvertisement?: (ad: Ad) => void;
12
- onlog?: (message: string) => void;
9
+ onlog: ((message: string) => void) | undefined;
13
10
  DEFAULT_DISCOVERY_DURATION: number;
14
- PRIMARY_SERVICE_UUID_LIST: string[];
11
+ PRIMARY_SERVICE_UUID_LIST: never[];
15
12
  constructor(params?: Params);
16
- /**
17
- * Initializes the noble object.
18
- * @param params Optional parameters.
19
- */
20
- private init;
21
- /**
22
- * Ensures the noble object is powered on.
23
- */
24
- private ensureNobleReady;
25
- /**
26
- * Discover SwitchBot devices.
27
- * @param params Optional parameters for discovery.
28
- */
29
- discover(params?: Params): Promise<SwitchbotDevice[]>;
30
- /**
31
- * Start monitoring advertising packets from SwitchBot devices.
32
- * @param params Optional parameters for scanning.
33
- */
13
+ init(params?: Params): Promise<void>;
14
+ discover(params?: Params): Promise<unknown>;
15
+ _init(): Promise<void>;
16
+ getDeviceObject(peripheral: Noble.Peripheral, id: string, model: string): Promise<SwitchbotDevice | null | undefined>;
17
+ filterAdvertising(ad: Ad, id: string, model: string): boolean;
34
18
  startScan(params?: Params): Promise<void>;
35
- /**
36
- * Stop monitoring advertising packets from SwitchBot devices.
37
- */
38
19
  stopScan(): void;
39
- /**
40
- * Wait for the specified time.
41
- * @param msec Time in milliseconds.
42
- */
43
- wait(msec: number): Promise<void>;
44
- private getDeviceObject;
45
- private filterAdvertising;
20
+ wait(msec: number): Promise<unknown>;
46
21
  }
47
22
  export { SwitchbotDevice };
48
23
  //# sourceMappingURL=switchbot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"switchbot.d.ts","sourceRoot":"","sources":["../src/switchbot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAM/C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAmB7C;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAe;IAC5B,KAAK,EAAG,OAAO,KAAK,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;IAC9C,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAA;IAClC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,0BAA0B,SAAO;IACjC,yBAAyB,EAAE,MAAM,EAAE,CAAK;gBAE5B,MAAM,CAAC,EAAE,MAAM;IAI3B;;;OAGG;YACW,IAAI;IAIlB;;OAEG;YACW,gBAAgB;IAiB9B;;;OAGG;IACG,QAAQ,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA4C/D;;;OAGG;IACG,SAAS,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCnD;;OAEG;IACH,QAAQ,IAAI,IAAI;IAOhB;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAQnB,eAAe;IA6B7B,OAAO,CAAC,iBAAiB;CAY1B;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"switchbot.d.ts","sourceRoot":"","sources":["../src/switchbot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAmB7C,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAe;IAC5B,KAAK,EAAG,OAAO,KAAK,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;IAC9C,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAA;IAClC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAC9C,0BAA0B,SAAO;IACjC,yBAAyB,UAAK;gBAYlB,MAAM,CAAC,EAAE,MAAM;IAKrB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM;IAmD1B,QAAQ,CAAC,MAAM,GAAE,MAAW;IAmHtB,KAAK;IAuCL,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAqE7E,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAgFnD,SAAS,CAAC,MAAM,GAAE,MAAW;IA4F7B,QAAQ;IAoBR,IAAI,CAAC,IAAI,EAAE,MAAM;CAmBlB;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
package/dist/switchbot.js CHANGED
@@ -17,9 +17,6 @@ import { WoSmartLockPro } from './device/wosmartlockpro.js';
17
17
  import { WoStrip } from './device/wostrip.js';
18
18
  import { parameterChecker } from './parameter-checker.js';
19
19
  import { SwitchBotBLEModel } from './types/types.js';
20
- /**
21
- * SwitchBot class to interact with SwitchBot devices via BLE.
22
- */
23
20
  export class SwitchBot {
24
21
  ready;
25
22
  noble;
@@ -28,167 +25,458 @@ export class SwitchBot {
28
25
  onlog;
29
26
  DEFAULT_DISCOVERY_DURATION = 5000;
30
27
  PRIMARY_SERVICE_UUID_LIST = [];
28
+ /* ------------------------------------------------------------------
29
+ * Constructor
30
+ *
31
+ * [Arguments]
32
+ * - params | Object | Optional |
33
+ * - noble | Noble | Optional | The Noble object created by the noble module.
34
+ * | | | This parameter is optional.
35
+ * | | | If you don't specify this parameter, this
36
+ * | | | module automatically creates it.
37
+ * ---------------------------------------------------------------- */
31
38
  constructor(params) {
32
39
  this.ready = this.init(params);
33
40
  }
34
- /**
35
- * Initializes the noble object.
36
- * @param params Optional parameters.
37
- */
41
+ // Check parameters
38
42
  async init(params) {
39
- this.noble = params?.noble ?? await import('@stoprocent/noble');
40
- }
41
- /**
42
- * Ensures the noble object is powered on.
43
- */
44
- async ensureNobleReady() {
45
- await this.ready;
46
- if (this.noble._state === 'poweredOn') {
47
- return;
43
+ let noble;
44
+ if (params && params.noble) {
45
+ noble = params.noble;
48
46
  }
49
- return new Promise((resolve, reject) => {
50
- this.noble.once('stateChange', (state) => {
51
- if (state === 'poweredOn') {
52
- resolve();
53
- }
54
- else {
55
- reject(new Error(`Noble state: ${state}`));
56
- }
57
- });
58
- });
59
- }
60
- /**
61
- * Discover SwitchBot devices.
62
- * @param params Optional parameters for discovery.
63
- */
64
- async discover(params = {}) {
65
- const valid = parameterChecker.check(params, {
66
- duration: { required: false, type: 'integer', min: 1, max: 60000 },
67
- model: { required: false, type: 'string', enum: Object.values(SwitchBotBLEModel) },
68
- id: { required: false, type: 'string', min: 12, max: 17 },
69
- quick: { required: false, type: 'boolean' },
70
- }, false);
71
- if (!valid) {
72
- throw new Error(parameterChecker.error.message);
47
+ else {
48
+ noble = (await import('@stoprocent/noble')).default;
73
49
  }
74
- const { duration = this.DEFAULT_DISCOVERY_DURATION, model = '', id = '', quick = false } = params;
75
- await this.ensureNobleReady();
76
- const peripherals = {};
77
- return new Promise((resolve, reject) => {
78
- const finishDiscovery = () => {
79
- this.noble.removeAllListeners('discover');
80
- this.noble.stopScanning();
81
- resolve(Object.values(peripherals));
50
+ // Public properties
51
+ this.noble = noble;
52
+ }
53
+ /* ------------------------------------------------------------------
54
+ * discover([params])
55
+ * - Discover switchbot devices
56
+ *
57
+ * [Arguments]
58
+ * - params | Object | Optional |
59
+ * - duration | Integer | Optional | Duration for discovery process (msec).
60
+ * | | | The value must be in the range of 1 to 60000.
61
+ * | | | The default value is 5000 (msec).
62
+ * - model | String | Optional | "H", "T", "e", "s", "d", "c", "{", "u", "g", "o", "i", or "r".
63
+ * | | | If "H" is specified, this method will discover only Bots.
64
+ * | | | If "T" is specified, this method will discover only Meters.
65
+ * | | | If "e" is specified, this method will discover only Humidifiers.
66
+ * | | | If "s" is specified, this method will discover only Motion Sensors.
67
+ * | | | If "d" is specified, this method will discover only Contact Sensors.
68
+ * | | | If "c" is specified, this method will discover only Curtains.
69
+ * | | | If "{" is specified, this method will discover only Curtain 3.
70
+ * | | | If "u" is specified, this method will discover only Color Bulbs.
71
+ * | | | If "g" is specified, this method will discover only Plugs.
72
+ * | | | If "o" is specified, this method will discover only Locks.
73
+ * | | | If "$" is specified, this method will discover only Lock Pros.
74
+ * | | | If "i" is specified, this method will discover only Meter Pluses.
75
+ * | | | If "r" is specified, this method will discover only Locks.
76
+ * - id | String | Optional | If this value is set, this method will discover
77
+ * | | | only a device whose ID is as same as this value.
78
+ * | | | The ID is identical to the MAC address.
79
+ * | | | This parameter is case-insensitive, and
80
+ * | | | colons are ignored.
81
+ * - quick | Boolean | Optional | If this value is true, this method finishes
82
+ * | | | the discovery process when the first device
83
+ * | | | is found, then calls the resolve() function
84
+ * | | | without waiting the specified duration.
85
+ * | | | The default value is false.
86
+ *
87
+ * [Return value]
88
+ * - Promise object
89
+ * An array will be passed to the `resolve()`, which includes
90
+ * `SwitchbotDevice` objects representing the found devices.
91
+ * ---------------------------------------------------------------- */
92
+ discover(params = {}) {
93
+ const promise = new Promise((resolve, reject) => {
94
+ // Check the parameters
95
+ const valid = parameterChecker.check(params, {
96
+ duration: { required: false, type: 'integer', min: 1, max: 60000 },
97
+ model: {
98
+ required: false,
99
+ type: 'string',
100
+ enum: [
101
+ SwitchBotBLEModel.Bot,
102
+ SwitchBotBLEModel.Curtain,
103
+ SwitchBotBLEModel.Curtain3,
104
+ SwitchBotBLEModel.Humidifier,
105
+ SwitchBotBLEModel.Meter,
106
+ SwitchBotBLEModel.MeterPlus,
107
+ SwitchBotBLEModel.Hub2,
108
+ SwitchBotBLEModel.OutdoorMeter,
109
+ SwitchBotBLEModel.MotionSensor,
110
+ SwitchBotBLEModel.ContactSensor,
111
+ SwitchBotBLEModel.ColorBulb,
112
+ SwitchBotBLEModel.CeilingLight,
113
+ SwitchBotBLEModel.CeilingLightPro,
114
+ SwitchBotBLEModel.StripLight,
115
+ SwitchBotBLEModel.PlugMiniUS,
116
+ SwitchBotBLEModel.PlugMiniJP,
117
+ SwitchBotBLEModel.Lock,
118
+ SwitchBotBLEModel.LockPro,
119
+ SwitchBotBLEModel.BlindTilt,
120
+ ],
121
+ },
122
+ id: { required: false, type: 'string', min: 12, max: 17 },
123
+ quick: { required: false, type: 'boolean' },
124
+ }, false);
125
+ if (!valid) {
126
+ reject(new Error(parameterChecker.error.message));
127
+ return;
128
+ }
129
+ if (!params) {
130
+ params = {};
131
+ }
132
+ // Determine the values of the parameters
133
+ const p = {
134
+ duration: params.duration || this.DEFAULT_DISCOVERY_DURATION,
135
+ model: params.model || '',
136
+ id: params.id || '',
137
+ quick: !!params.quick,
82
138
  };
83
- this.noble.on('discover', async (peripheral) => {
84
- const device = await this.getDeviceObject(peripheral, id, model);
85
- if (device) {
86
- peripherals[device.id] = device;
87
- this.ondiscover?.(device);
88
- if (quick) {
139
+ // Initialize the noble object
140
+ this._init()
141
+ .then(() => {
142
+ if (this.noble === null) {
143
+ return reject(new Error('noble failed to initialize'));
144
+ }
145
+ const peripherals = {};
146
+ let timer = setTimeout(() => { }, 0);
147
+ const finishDiscovery = () => {
148
+ if (timer) {
149
+ clearTimeout(timer);
150
+ }
151
+ this.noble.removeAllListeners('discover');
152
+ this.noble.stopScanningAsync();
153
+ const device_list = [];
154
+ for (const addr in peripherals) {
155
+ device_list.push(peripherals[addr]);
156
+ }
157
+ resolve(device_list);
158
+ };
159
+ // Set a handler for the 'discover' event
160
+ this.noble.on('discover', async (peripheral) => {
161
+ const device = await this.getDeviceObject(peripheral, p.id, p.model);
162
+ if (!device) {
163
+ return;
164
+ }
165
+ const id = device.id;
166
+ peripherals[id] = device;
167
+ if (this.ondiscover && typeof this.ondiscover === 'function') {
168
+ this.ondiscover(device);
169
+ }
170
+ if (p.quick) {
89
171
  finishDiscovery();
90
172
  }
91
- }
92
- });
93
- this.noble.startScanning(this.PRIMARY_SERVICE_UUID_LIST, false, (error) => {
94
- if (error) {
95
- return reject(error);
96
- }
97
- setTimeout(finishDiscovery, duration);
173
+ });
174
+ // Start scanning
175
+ this.noble.startScanningAsync(this.PRIMARY_SERVICE_UUID_LIST, false).then(() => {
176
+ timer = setTimeout(() => {
177
+ finishDiscovery();
178
+ }, p.duration);
179
+ }).catch((error) => {
180
+ reject(error);
181
+ });
182
+ })
183
+ .catch((error) => {
184
+ reject(error);
98
185
  });
99
186
  });
187
+ return promise;
100
188
  }
101
- /**
102
- * Start monitoring advertising packets from SwitchBot devices.
103
- * @param params Optional parameters for scanning.
104
- */
105
- async startScan(params = {}) {
106
- const valid = parameterChecker.check(params, {
107
- model: { required: false, type: 'string', enum: Object.values(SwitchBotBLEModel) },
108
- id: { required: false, type: 'string', min: 12, max: 17 },
109
- }, false);
110
- if (!valid) {
111
- throw new Error(parameterChecker.error.message);
112
- }
113
- const { model = '', id = '' } = params;
114
- await this.ensureNobleReady();
115
- this.noble.on('discover', async (peripheral) => {
116
- const ad = await Advertising.parse(peripheral, this.onlog);
117
- if (ad && this.filterAdvertising(ad, id, model)) {
118
- this.onadvertisement?.(ad);
189
+ async _init() {
190
+ await this.ready;
191
+ const promise = new Promise((resolve, reject) => {
192
+ let err;
193
+ if (this.noble._state === 'poweredOn') {
194
+ resolve();
195
+ return;
119
196
  }
120
- });
121
- return new Promise((resolve, reject) => {
122
- this.noble.startScanning(this.PRIMARY_SERVICE_UUID_LIST, true, (error) => {
123
- if (error) {
124
- reject(error);
125
- }
126
- else {
127
- resolve();
197
+ this.noble.once('stateChange', (state) => {
198
+ switch (state) {
199
+ case 'unsupported':
200
+ case 'unauthorized':
201
+ case 'poweredOff':
202
+ err = new Error(`Failed to initialize the Noble object: ${this.noble._state}`);
203
+ reject(err);
204
+ return;
205
+ case 'resetting':
206
+ case 'unknown':
207
+ err = new Error(`Adapter is not ready: ${this.noble._state}`);
208
+ reject(err);
209
+ return;
210
+ case 'poweredOn':
211
+ resolve();
212
+ return;
213
+ default:
214
+ err = new Error(`Unknown state: ${this.noble._state}`);
215
+ reject(err);
128
216
  }
129
217
  });
130
218
  });
131
- }
132
- /**
133
- * Stop monitoring advertising packets from SwitchBot devices.
134
- */
135
- stopScan() {
136
- if (this.noble) {
137
- this.noble.removeAllListeners('discover');
138
- this.noble.stopScanning();
139
- }
140
- }
141
- /**
142
- * Wait for the specified time.
143
- * @param msec Time in milliseconds.
144
- */
145
- wait(msec) {
146
- const valid = parameterChecker.check({ msec }, { msec: { required: true, type: 'integer', min: 0 } }, true);
147
- if (!valid) {
148
- return Promise.reject(new Error(parameterChecker.error.message));
149
- }
150
- return new Promise(resolve => setTimeout(resolve, msec));
219
+ return promise;
151
220
  }
152
221
  async getDeviceObject(peripheral, id, model) {
153
222
  const ad = await Advertising.parse(peripheral, this.onlog);
154
223
  if (ad && this.filterAdvertising(ad, id, model)) {
155
- switch (ad.serviceData.model) {
156
- case SwitchBotBLEModel.Bot: return new WoHand(peripheral, this.noble);
157
- case SwitchBotBLEModel.Curtain:
158
- case SwitchBotBLEModel.Curtain3: return new WoCurtain(peripheral, this.noble);
159
- case SwitchBotBLEModel.Humidifier: return new WoHumi(peripheral, this.noble);
160
- case SwitchBotBLEModel.Meter:
161
- case SwitchBotBLEModel.MeterPlus: return new WoSensorTH(peripheral, this.noble);
162
- case SwitchBotBLEModel.Hub2: return new WoHub2(peripheral, this.noble);
163
- case SwitchBotBLEModel.OutdoorMeter: return new WoIOSensorTH(peripheral, this.noble);
164
- case SwitchBotBLEModel.MotionSensor: return new WoPresence(peripheral, this.noble);
165
- case SwitchBotBLEModel.ContactSensor: return new WoContact(peripheral, this.noble);
166
- case SwitchBotBLEModel.ColorBulb: return new WoBulb(peripheral, this.noble);
167
- case SwitchBotBLEModel.CeilingLight:
168
- case SwitchBotBLEModel.CeilingLightPro: return new WoCeilingLight(peripheral, this.noble);
169
- case SwitchBotBLEModel.StripLight: return new WoStrip(peripheral, this.noble);
170
- case SwitchBotBLEModel.PlugMiniUS:
171
- case SwitchBotBLEModel.PlugMiniJP: return new WoPlugMini(peripheral, this.noble);
172
- case SwitchBotBLEModel.Lock: return new WoSmartLock(peripheral, this.noble);
173
- case SwitchBotBLEModel.LockPro: return new WoSmartLockPro(peripheral, this.noble);
174
- case SwitchBotBLEModel.BlindTilt: return new WoBlindTilt(peripheral, this.noble);
175
- default: return new SwitchbotDevice(peripheral, this.noble);
224
+ let device;
225
+ if (ad && ad.serviceData && ad.serviceData.model) {
226
+ switch (ad.serviceData.model) {
227
+ case SwitchBotBLEModel.Bot:
228
+ device = new WoHand(peripheral, this.noble);
229
+ break;
230
+ case SwitchBotBLEModel.Curtain:
231
+ case SwitchBotBLEModel.Curtain3:
232
+ device = new WoCurtain(peripheral, this.noble);
233
+ break;
234
+ case SwitchBotBLEModel.Humidifier:
235
+ device = new WoHumi(peripheral, this.noble);
236
+ break;
237
+ case SwitchBotBLEModel.Meter:
238
+ device = new WoSensorTH(peripheral, this.noble);
239
+ break;
240
+ case SwitchBotBLEModel.MeterPlus:
241
+ device = new WoSensorTH(peripheral, this.noble);
242
+ break;
243
+ case SwitchBotBLEModel.Hub2:
244
+ device = new WoHub2(peripheral, this.noble);
245
+ break;
246
+ case SwitchBotBLEModel.OutdoorMeter:
247
+ device = new WoIOSensorTH(peripheral, this.noble);
248
+ break;
249
+ case SwitchBotBLEModel.MotionSensor:
250
+ device = new WoPresence(peripheral, this.noble);
251
+ break;
252
+ case SwitchBotBLEModel.ContactSensor:
253
+ device = new WoContact(peripheral, this.noble);
254
+ break;
255
+ case SwitchBotBLEModel.ColorBulb:
256
+ device = new WoBulb(peripheral, this.noble);
257
+ break;
258
+ case SwitchBotBLEModel.CeilingLight:
259
+ device = new WoCeilingLight(peripheral, this.noble);
260
+ break;
261
+ case SwitchBotBLEModel.CeilingLightPro:
262
+ device = new WoCeilingLight(peripheral, this.noble);
263
+ break;
264
+ case SwitchBotBLEModel.StripLight:
265
+ device = new WoStrip(peripheral, this.noble);
266
+ break;
267
+ case SwitchBotBLEModel.PlugMiniUS:
268
+ case SwitchBotBLEModel.PlugMiniJP:
269
+ device = new WoPlugMini(peripheral, this.noble);
270
+ break;
271
+ case SwitchBotBLEModel.Lock:
272
+ device = new WoSmartLock(peripheral, this.noble);
273
+ break;
274
+ case SwitchBotBLEModel.LockPro:
275
+ device = new WoSmartLockPro(peripheral, this.noble);
276
+ break;
277
+ case SwitchBotBLEModel.BlindTilt:
278
+ device = new WoBlindTilt(peripheral, this.noble);
279
+ break;
280
+ default: // 'resetting', 'unknown'
281
+ device = new SwitchbotDevice(peripheral, this.noble);
282
+ }
176
283
  }
284
+ return device;
285
+ }
286
+ else {
287
+ return null;
177
288
  }
178
- return null;
179
289
  }
180
290
  filterAdvertising(ad, id, model) {
181
291
  if (!ad) {
182
292
  return false;
183
293
  }
184
- if (id && ad.address.toLowerCase().replace(/[^a-z0-9]/g, '') !== id.toLowerCase().replace(/:/g, '')) {
185
- return false;
294
+ if (id) {
295
+ id = id.toLowerCase().replace(/:/g, '');
296
+ const ad_id = ad.address.toLowerCase().replace(/[^a-z0-9]/g, '');
297
+ if (ad_id !== id) {
298
+ return false;
299
+ }
186
300
  }
187
- if (model && ad.serviceData.model !== model) {
188
- return false;
301
+ if (model) {
302
+ if (ad.serviceData.model !== model) {
303
+ return false;
304
+ }
189
305
  }
190
306
  return true;
191
307
  }
308
+ /* ------------------------------------------------------------------
309
+ * startScan([params])
310
+ * - Start to monitor advertising packets coming from switchbot devices
311
+ *
312
+ * [Arguments]
313
+ * - params | Object | Optional |
314
+ * - model | String | Optional | "H", "T", "e", "s", "d", "c", "{", "u", "g", "o", "i", "x", or "r".
315
+ * | | | If "H" is specified, the `onadvertisement`
316
+ * | | | event handler will be called only when advertising
317
+ * | | | packets comes from Bots.
318
+ * | | | If "T" is specified, the `onadvertisement`
319
+ * | | | event handler will be called only when advertising
320
+ * | | | packets comes from Meters.
321
+ * | | | If "e" is specified, the `onadvertisement`
322
+ * | | | event handler will be called only when advertising
323
+ * | | | packets comes from Humidifiers.
324
+ * | | | If "s" is specified, the `onadvertisement`
325
+ * | | | event handler will be called only when advertising
326
+ * | | | packets comes from Motion Sensor.
327
+ * | | | If "d" is specified, the `onadvertisement`
328
+ * | | | event handler will be called only when advertising
329
+ * | | | packets comes from Contact Sensor.
330
+ * | | | If "c" is specified, the `onadvertisement`
331
+ * | | | event handler will be called only when advertising
332
+ * | | | packets comes from Curtains.
333
+ * | | | If "{" is specified, the `onadvertisement`
334
+ * | | | event handler will be called only when advertising
335
+ * | | | packets comes from Curtain 3.
336
+ * | | | If "x" is specified, the `onadvertisement`
337
+ * | | | event handler will be called only when advertising
338
+ * | | | packets comes from BlindTilt.
339
+ * | | | If "u" is specified, the `onadvertisement`
340
+ * | | | event handler will be called only when advertising
341
+ * | | | packets comes from Color Bulb.
342
+ * | | | If "g" is specified, the `onadvertisement`
343
+ * | | | event handler will be called only when advertising
344
+ * | | | packets comes from Plug Mini.
345
+ * | | | If "o" is specified, the `onadvertisement`
346
+ * | | | event handler will be called only when advertising
347
+ * | | | packets comes from Smart Lock.
348
+ * | | | If "$" is specified, the `onadvertisement`
349
+ * | | | event handler will be called only when advertising
350
+ * | | | packets comes from Smart Lock Pro.
351
+ * | | | If "i" is specified, the `onadvertisement`
352
+ * | | | event handler will be called only when advertising
353
+ * | | | packets comes from Meter Plus.
354
+ * | | | If "r" is specified, the `onadvertisement`
355
+ * | | | event handler will be called only when advertising
356
+ * | | | packets comes from LED Strip Light.
357
+ * - id | String | Optional | If this value is set, the `onadvertisement`
358
+ * | | | event handler will be called only when advertising
359
+ * | | | packets comes from devices whose ID is as same as
360
+ * | | | this value.
361
+ * | | | The ID is identical to the MAC address.
362
+ * | | | This parameter is case-insensitive, and
363
+ * | | | colons are ignored.
364
+ *
365
+ * [Return value]
366
+ * - Promise object
367
+ * Nothing will be passed to the `resolve()`.
368
+ * ---------------------------------------------------------------- */
369
+ startScan(params = {}) {
370
+ const promise = new Promise((resolve, reject) => {
371
+ // Check the parameters
372
+ const valid = parameterChecker.check(params, {
373
+ model: {
374
+ required: false,
375
+ type: 'string',
376
+ enum: [
377
+ SwitchBotBLEModel.Bot,
378
+ SwitchBotBLEModel.Curtain,
379
+ SwitchBotBLEModel.Curtain3,
380
+ SwitchBotBLEModel.Humidifier,
381
+ SwitchBotBLEModel.Meter,
382
+ SwitchBotBLEModel.MeterPlus,
383
+ SwitchBotBLEModel.Hub2,
384
+ SwitchBotBLEModel.OutdoorMeter,
385
+ SwitchBotBLEModel.MotionSensor,
386
+ SwitchBotBLEModel.ContactSensor,
387
+ SwitchBotBLEModel.ColorBulb,
388
+ SwitchBotBLEModel.CeilingLight,
389
+ SwitchBotBLEModel.CeilingLightPro,
390
+ SwitchBotBLEModel.StripLight,
391
+ SwitchBotBLEModel.PlugMiniUS,
392
+ SwitchBotBLEModel.PlugMiniJP,
393
+ SwitchBotBLEModel.Lock,
394
+ SwitchBotBLEModel.LockPro,
395
+ SwitchBotBLEModel.BlindTilt,
396
+ ],
397
+ },
398
+ id: { required: false, type: 'string', min: 12, max: 17 },
399
+ }, false);
400
+ if (!valid) {
401
+ reject(new Error(parameterChecker.error.message));
402
+ return;
403
+ }
404
+ // Initialize the noble object
405
+ this._init()
406
+ .then(() => {
407
+ if (this.noble === null) {
408
+ return reject(new Error('noble object failed to initialize'));
409
+ }
410
+ // Determine the values of the parameters
411
+ const p = {
412
+ model: params.model || '',
413
+ id: params.id || '',
414
+ };
415
+ // Set a handler for the 'discover' event
416
+ this.noble.on('discover', async (peripheral) => {
417
+ const ad = await Advertising.parse(peripheral, this.onlog);
418
+ if (ad && this.filterAdvertising(ad, p.id, p.model)) {
419
+ if (this.onadvertisement
420
+ && typeof this.onadvertisement === 'function') {
421
+ this.onadvertisement(ad);
422
+ }
423
+ }
424
+ });
425
+ // Start scanning
426
+ this.noble.startScanningAsync(this.PRIMARY_SERVICE_UUID_LIST, true).then(() => {
427
+ resolve();
428
+ }).catch((error) => {
429
+ reject(error);
430
+ });
431
+ })
432
+ .catch((error) => {
433
+ reject(error);
434
+ });
435
+ });
436
+ return promise;
437
+ }
438
+ /* ------------------------------------------------------------------
439
+ * stopScan()
440
+ * - Stop to monitor advertising packets coming from switchbot devices
441
+ *
442
+ * [Arguments]
443
+ * - none
444
+ *
445
+ * [Return value]
446
+ * - none
447
+ * ---------------------------------------------------------------- */
448
+ stopScan() {
449
+ if (this.noble === null) {
450
+ return;
451
+ }
452
+ this.noble.removeAllListeners('discover');
453
+ this.noble.stopScanningAsync();
454
+ }
455
+ /* ------------------------------------------------------------------
456
+ * wait(msec) {
457
+ * - Wait for the specified time (msec)
458
+ *
459
+ * [Arguments]
460
+ * - msec | Integer | Required | Msec.
461
+ *
462
+ * [Return value]
463
+ * - Promise object
464
+ * Nothing will be passed to the `resolve()`.
465
+ * ---------------------------------------------------------------- */
466
+ wait(msec) {
467
+ return new Promise((resolve, reject) => {
468
+ // Check the parameters
469
+ const valid = parameterChecker.check({ msec }, {
470
+ msec: { required: true, type: 'integer', min: 0 },
471
+ }, true);
472
+ if (!valid) {
473
+ reject(new Error(parameterChecker.error.message));
474
+ return;
475
+ }
476
+ // Set a timer
477
+ setTimeout(resolve, msec);
478
+ });
479
+ }
192
480
  }
193
481
  export { SwitchbotDevice };
194
482
  //# sourceMappingURL=switchbot.js.map
@@ -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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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "node-switchbot",
3
3
  "type": "module",
4
- "version": "2.5.0-beta.13",
4
+ "version": "2.5.0-beta.15",
5
5
  "description": "The node-switchbot is a Node.js module which allows you to control your Switchbot Devices through Bluetooth (BLE).",
6
6
  "author": "OpenWonderLabs (https://github.com/OpenWonderLabs)",
7
7
  "license": "MIT",