node-switchbot 3.0.2-beta.1 → 3.0.2-beta.3
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.
- package/dist/advertising.js +1 -1
- package/dist/advertising.js.map +1 -1
- package/dist/device/woblindtilt.d.ts +5 -2
- package/dist/device/woblindtilt.d.ts.map +1 -1
- package/dist/device/woblindtilt.js +6 -6
- package/dist/device/woblindtilt.js.map +1 -1
- package/dist/device/wobulb.d.ts +5 -2
- package/dist/device/wobulb.d.ts.map +1 -1
- package/dist/device/wobulb.js +14 -12
- package/dist/device/wobulb.js.map +1 -1
- package/dist/device/woceilinglight.d.ts +7 -4
- package/dist/device/woceilinglight.d.ts.map +1 -1
- package/dist/device/woceilinglight.js +15 -14
- package/dist/device/woceilinglight.js.map +1 -1
- package/dist/device/wocontact.d.ts +5 -2
- package/dist/device/wocontact.d.ts.map +1 -1
- package/dist/device/wocontact.js +6 -2
- package/dist/device/wocontact.js.map +1 -1
- package/dist/device/wocurtain.d.ts +5 -2
- package/dist/device/wocurtain.d.ts.map +1 -1
- package/dist/device/wocurtain.js +34 -20
- package/dist/device/wocurtain.js.map +1 -1
- package/dist/device/wohand.d.ts +6 -3
- package/dist/device/wohand.d.ts.map +1 -1
- package/dist/device/wohand.js +13 -14
- package/dist/device/wohand.js.map +1 -1
- package/dist/device/wohub2.d.ts +5 -2
- package/dist/device/wohub2.d.ts.map +1 -1
- package/dist/device/wohub2.js +6 -2
- package/dist/device/wohub2.js.map +1 -1
- package/dist/device/wohumi.d.ts +5 -2
- package/dist/device/wohumi.d.ts.map +1 -1
- package/dist/device/wohumi.js +6 -6
- package/dist/device/wohumi.js.map +1 -1
- package/dist/device/woiosensorth.d.ts +5 -2
- package/dist/device/woiosensorth.d.ts.map +1 -1
- package/dist/device/woiosensorth.js +6 -2
- package/dist/device/woiosensorth.js.map +1 -1
- package/dist/device/woplugmini.d.ts +8 -5
- package/dist/device/woplugmini.d.ts.map +1 -1
- package/dist/device/woplugmini.js +10 -10
- package/dist/device/woplugmini.js.map +1 -1
- package/dist/device/wopresence.d.ts +2 -0
- package/dist/device/wopresence.d.ts.map +1 -1
- package/dist/device/wopresence.js +3 -0
- package/dist/device/wopresence.js.map +1 -1
- package/dist/device/wosensorth.d.ts +2 -0
- package/dist/device/wosensorth.d.ts.map +1 -1
- package/dist/device/wosensorth.js +3 -0
- package/dist/device/wosensorth.js.map +1 -1
- package/dist/device/wostrip.d.ts +2 -0
- package/dist/device/wostrip.d.ts.map +1 -1
- package/dist/device/wostrip.js +3 -0
- package/dist/device/wostrip.js.map +1 -1
- package/dist/device.d.ts +33 -31
- package/dist/device.d.ts.map +1 -1
- package/dist/device.js +94 -90
- package/dist/device.js.map +1 -1
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/parameter-checker.d.ts.map +1 -1
- package/dist/parameter-checker.js +1 -9
- package/dist/parameter-checker.js.map +1 -1
- package/dist/switchbot-ble.d.ts +19 -51
- package/dist/switchbot-ble.d.ts.map +1 -1
- package/dist/switchbot-ble.js +132 -276
- package/dist/switchbot-ble.js.map +1 -1
- package/dist/test/advertising.test.js +3 -3
- package/dist/test/advertising.test.js.map +1 -1
- package/dist/test/switchbot-ble.test.d.ts +2 -0
- package/dist/test/switchbot-ble.test.d.ts.map +1 -0
- package/dist/test/switchbot-ble.test.js +45 -0
- package/dist/test/switchbot-ble.test.js.map +1 -0
- package/dist/test/switchbot-openapi.test.js +10 -64
- package/dist/test/switchbot-openapi.test.js.map +1 -1
- package/dist/types/bledevicestatus.d.ts +5 -3
- package/dist/types/bledevicestatus.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/test/switchbot.test.d.ts +0 -2
- package/dist/test/switchbot.test.d.ts.map +0 -1
- package/dist/test/switchbot.test.js +0 -106
- package/dist/test/switchbot.test.js.map +0 -1
package/dist/switchbot-ble.js
CHANGED
|
@@ -21,7 +21,7 @@ import { parameterChecker } from './parameter-checker.js';
|
|
|
21
21
|
import { DEFAULT_DISCOVERY_DURATION, PRIMARY_SERVICE_UUID_LIST } from './settings.js';
|
|
22
22
|
import { SwitchBotBLEModel } from './types/types.js';
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
24
|
+
* SwitchBotBLE class to interact with SwitchBot devices.
|
|
25
25
|
*/
|
|
26
26
|
export class SwitchBotBLE extends EventEmitter {
|
|
27
27
|
ready;
|
|
@@ -35,7 +35,7 @@ export class SwitchBotBLE extends EventEmitter {
|
|
|
35
35
|
*/
|
|
36
36
|
constructor(params) {
|
|
37
37
|
super();
|
|
38
|
-
this.ready = this.
|
|
38
|
+
this.ready = this.initialize(params);
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Emits a log event with the specified log level and message.
|
|
@@ -43,7 +43,7 @@ export class SwitchBotBLE extends EventEmitter {
|
|
|
43
43
|
* @param level - The severity level of the log (e.g., 'info', 'warn', 'error').
|
|
44
44
|
* @param message - The log message to be emitted.
|
|
45
45
|
*/
|
|
46
|
-
async
|
|
46
|
+
async log(level, message) {
|
|
47
47
|
this.emit('log', { level, message });
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
@@ -52,91 +52,29 @@ export class SwitchBotBLE extends EventEmitter {
|
|
|
52
52
|
* @param {Params} [params] - Optional parameters
|
|
53
53
|
* @returns {Promise<void>} - Resolves when initialization is complete
|
|
54
54
|
*/
|
|
55
|
-
async
|
|
56
|
-
this.noble = params
|
|
55
|
+
async initialize(params) {
|
|
56
|
+
this.noble = params?.noble ?? Noble.default;
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
|
-
*
|
|
59
|
+
* Validates the parameters.
|
|
60
60
|
*
|
|
61
|
-
* @param {Params} params - The parameters
|
|
62
|
-
* @
|
|
61
|
+
* @param {Params} params - The parameters to validate.
|
|
62
|
+
* @param {Record<string, unknown>} schema - The schema to validate against.
|
|
63
|
+
* @returns {Promise<void>} - Resolves if parameters are valid, otherwise throws an error.
|
|
63
64
|
*/
|
|
64
|
-
async
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
duration: params.duration ?? DEFAULT_DISCOVERY_DURATION,
|
|
70
|
-
model: params.model ?? '',
|
|
71
|
-
id: params.id ?? '',
|
|
72
|
-
quick: !!params.quick,
|
|
73
|
-
};
|
|
74
|
-
await this.initNoble();
|
|
75
|
-
if (this.noble === null) {
|
|
76
|
-
throw new Error('noble failed to initialize');
|
|
77
|
-
}
|
|
78
|
-
const peripherals = {};
|
|
79
|
-
let timer;
|
|
80
|
-
const finishDiscovery = () => {
|
|
81
|
-
if (timer) {
|
|
82
|
-
clearTimeout(timer);
|
|
83
|
-
}
|
|
84
|
-
this.noble.removeAllListeners('discover');
|
|
85
|
-
this.noble.stopScanningAsync();
|
|
86
|
-
const deviceList = Object.values(peripherals);
|
|
87
|
-
return deviceList;
|
|
88
|
-
};
|
|
89
|
-
this.noble.on('discover', async (peripheral) => {
|
|
90
|
-
const device = await this.getDeviceObject(peripheral, p.id, p.model);
|
|
91
|
-
if (!device) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
const id = device.id;
|
|
95
|
-
peripherals[id] = device;
|
|
96
|
-
if (this.ondiscover && typeof this.ondiscover === 'function') {
|
|
97
|
-
this.ondiscover(device);
|
|
98
|
-
}
|
|
99
|
-
if (p.quick) {
|
|
100
|
-
return finishDiscovery();
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
await this.noble.startScanningAsync(PRIMARY_SERVICE_UUID_LIST, false);
|
|
104
|
-
timer = setTimeout(() => {
|
|
105
|
-
return finishDiscovery();
|
|
106
|
-
}, p.duration);
|
|
107
|
-
await new Promise((resolve, reject) => {
|
|
108
|
-
this.noble.once('stateChange', (state) => {
|
|
109
|
-
switch (state) {
|
|
110
|
-
case 'unsupported':
|
|
111
|
-
case 'unauthorized':
|
|
112
|
-
case 'poweredOff':
|
|
113
|
-
reject(new Error(`Failed to initialize the Noble object: ${state}`));
|
|
114
|
-
break;
|
|
115
|
-
case 'resetting':
|
|
116
|
-
case 'unknown':
|
|
117
|
-
reject(new Error(`Adapter is not ready: ${state}`));
|
|
118
|
-
break;
|
|
119
|
-
case 'poweredOn':
|
|
120
|
-
resolve();
|
|
121
|
-
break;
|
|
122
|
-
default:
|
|
123
|
-
reject(new Error(`Unknown state: ${state}`));
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
return finishDiscovery();
|
|
128
|
-
}
|
|
129
|
-
catch (e) {
|
|
130
|
-
this.emitLog('error', e.message ?? e);
|
|
131
|
-
throw e;
|
|
65
|
+
async validate(params, schema) {
|
|
66
|
+
const valid = parameterChecker.check(params, schema, false);
|
|
67
|
+
if (!valid) {
|
|
68
|
+
this.log('error', `parameterChecker: ${JSON.stringify(parameterChecker.error.message)}`);
|
|
69
|
+
throw new Error(parameterChecker.error.message);
|
|
132
70
|
}
|
|
133
71
|
}
|
|
134
72
|
/**
|
|
135
|
-
*
|
|
73
|
+
* Waits for the noble object to be powered on.
|
|
136
74
|
*
|
|
137
75
|
* @returns {Promise<void>} - Resolves when the noble object is powered on.
|
|
138
76
|
*/
|
|
139
|
-
async
|
|
77
|
+
async waitForPowerOn() {
|
|
140
78
|
await this.ready;
|
|
141
79
|
if (this.noble._state === 'poweredOn') {
|
|
142
80
|
return;
|
|
@@ -163,113 +101,101 @@ export class SwitchBotBLE extends EventEmitter {
|
|
|
163
101
|
});
|
|
164
102
|
}
|
|
165
103
|
/**
|
|
166
|
-
*
|
|
104
|
+
* Discover SwitchBot devices based on the provided parameters.
|
|
167
105
|
*
|
|
168
|
-
* @
|
|
106
|
+
* @param {Params} params - The parameters for discovery.
|
|
107
|
+
* @returns {Promise<SwitchbotDevice[]>} - A promise that resolves with a list of discovered devices.
|
|
169
108
|
*/
|
|
170
|
-
async
|
|
109
|
+
async discover(params = {}) {
|
|
171
110
|
await this.ready;
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
111
|
+
await this.validate(params, {
|
|
112
|
+
duration: { required: false, type: 'integer', min: 1, max: 60000 },
|
|
113
|
+
model: { required: false, type: 'string', enum: Object.values(SwitchBotBLEModel) },
|
|
114
|
+
id: { required: false, type: 'string', min: 12, max: 17 },
|
|
115
|
+
quick: { required: false, type: 'boolean' },
|
|
116
|
+
});
|
|
117
|
+
await this.waitForPowerOn();
|
|
118
|
+
if (!this.noble) {
|
|
119
|
+
throw new Error('noble failed to initialize');
|
|
120
|
+
}
|
|
121
|
+
const p = {
|
|
122
|
+
duration: params.duration ?? DEFAULT_DISCOVERY_DURATION,
|
|
123
|
+
model: params.model ?? '',
|
|
124
|
+
id: params.id ?? '',
|
|
125
|
+
quick: !!params.quick,
|
|
126
|
+
};
|
|
127
|
+
const peripherals = {};
|
|
128
|
+
let timer;
|
|
129
|
+
const finishDiscovery = async () => {
|
|
130
|
+
if (timer) {
|
|
131
|
+
clearTimeout(timer);
|
|
176
132
|
}
|
|
177
|
-
this.noble.
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
133
|
+
this.noble.removeAllListeners('discover');
|
|
134
|
+
try {
|
|
135
|
+
await this.noble.stopScanningAsync();
|
|
136
|
+
this.log('info', 'Stopped Scanning for SwitchBot BLE devices.');
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
this.log('error', `discover stopScanningAsync error: ${JSON.stringify(e.message ?? e)}`);
|
|
140
|
+
}
|
|
141
|
+
return Object.values(peripherals);
|
|
142
|
+
};
|
|
143
|
+
return new Promise((resolve, reject) => {
|
|
144
|
+
this.noble.on('discover', async (peripheral) => {
|
|
145
|
+
const device = await this.createDevice(peripheral, p.id, p.model);
|
|
146
|
+
if (!device) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
peripherals[device.id] = device;
|
|
150
|
+
if (this.ondiscover) {
|
|
151
|
+
this.ondiscover(device);
|
|
152
|
+
}
|
|
153
|
+
if (p.quick) {
|
|
154
|
+
resolve(await finishDiscovery());
|
|
192
155
|
}
|
|
193
156
|
});
|
|
157
|
+
this.noble.startScanningAsync(PRIMARY_SERVICE_UUID_LIST, false)
|
|
158
|
+
.then(() => {
|
|
159
|
+
timer = setTimeout(async () => resolve(await finishDiscovery()), p.duration);
|
|
160
|
+
})
|
|
161
|
+
.catch(reject);
|
|
194
162
|
});
|
|
195
|
-
return promise;
|
|
196
163
|
}
|
|
197
164
|
/**
|
|
198
|
-
*
|
|
165
|
+
* Creates a device object based on the peripheral, id, and model.
|
|
199
166
|
*
|
|
200
167
|
* @param {Noble.Peripheral} peripheral - The peripheral object.
|
|
201
168
|
* @param {string} id - The device id.
|
|
202
169
|
* @param {string} model - The device model.
|
|
203
170
|
* @returns {Promise<SwitchbotDevice | null>} - The device object or null.
|
|
204
171
|
*/
|
|
205
|
-
async
|
|
206
|
-
const ad = await Advertising.parse(peripheral, this.
|
|
207
|
-
if (ad && await this.
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
break;
|
|
230
|
-
case SwitchBotBLEModel.OutdoorMeter:
|
|
231
|
-
device = new WoIOSensorTH(peripheral, this.noble);
|
|
232
|
-
break;
|
|
233
|
-
case SwitchBotBLEModel.MotionSensor:
|
|
234
|
-
device = new WoPresence(peripheral, this.noble);
|
|
235
|
-
break;
|
|
236
|
-
case SwitchBotBLEModel.ContactSensor:
|
|
237
|
-
device = new WoContact(peripheral, this.noble);
|
|
238
|
-
break;
|
|
239
|
-
case SwitchBotBLEModel.ColorBulb:
|
|
240
|
-
device = new WoBulb(peripheral, this.noble);
|
|
241
|
-
break;
|
|
242
|
-
case SwitchBotBLEModel.CeilingLight:
|
|
243
|
-
device = new WoCeilingLight(peripheral, this.noble);
|
|
244
|
-
break;
|
|
245
|
-
case SwitchBotBLEModel.CeilingLightPro:
|
|
246
|
-
device = new WoCeilingLight(peripheral, this.noble);
|
|
247
|
-
break;
|
|
248
|
-
case SwitchBotBLEModel.StripLight:
|
|
249
|
-
device = new WoStrip(peripheral, this.noble);
|
|
250
|
-
break;
|
|
251
|
-
case SwitchBotBLEModel.PlugMiniUS:
|
|
252
|
-
case SwitchBotBLEModel.PlugMiniJP:
|
|
253
|
-
device = new WoPlugMini(peripheral, this.noble);
|
|
254
|
-
break;
|
|
255
|
-
case SwitchBotBLEModel.Lock:
|
|
256
|
-
device = new WoSmartLock(peripheral, this.noble);
|
|
257
|
-
break;
|
|
258
|
-
case SwitchBotBLEModel.LockPro:
|
|
259
|
-
device = new WoSmartLockPro(peripheral, this.noble);
|
|
260
|
-
break;
|
|
261
|
-
case SwitchBotBLEModel.BlindTilt:
|
|
262
|
-
device = new WoBlindTilt(peripheral, this.noble);
|
|
263
|
-
break;
|
|
264
|
-
default: // 'resetting', 'unknown'
|
|
265
|
-
device = new SwitchbotDevice(peripheral, this.noble);
|
|
266
|
-
}
|
|
172
|
+
async createDevice(peripheral, id, model) {
|
|
173
|
+
const ad = await Advertising.parse(peripheral, this.log.bind(this));
|
|
174
|
+
if (ad && await this.filterAd(ad, id, model)) {
|
|
175
|
+
switch (ad.serviceData.model) {
|
|
176
|
+
case SwitchBotBLEModel.Bot: return new WoHand(peripheral, this.noble);
|
|
177
|
+
case SwitchBotBLEModel.Curtain:
|
|
178
|
+
case SwitchBotBLEModel.Curtain3: return new WoCurtain(peripheral, this.noble);
|
|
179
|
+
case SwitchBotBLEModel.Humidifier: return new WoHumi(peripheral, this.noble);
|
|
180
|
+
case SwitchBotBLEModel.Meter:
|
|
181
|
+
case SwitchBotBLEModel.MeterPlus: return new WoSensorTH(peripheral, this.noble);
|
|
182
|
+
case SwitchBotBLEModel.Hub2: return new WoHub2(peripheral, this.noble);
|
|
183
|
+
case SwitchBotBLEModel.OutdoorMeter: return new WoIOSensorTH(peripheral, this.noble);
|
|
184
|
+
case SwitchBotBLEModel.MotionSensor: return new WoPresence(peripheral, this.noble);
|
|
185
|
+
case SwitchBotBLEModel.ContactSensor: return new WoContact(peripheral, this.noble);
|
|
186
|
+
case SwitchBotBLEModel.ColorBulb: return new WoBulb(peripheral, this.noble);
|
|
187
|
+
case SwitchBotBLEModel.CeilingLight:
|
|
188
|
+
case SwitchBotBLEModel.CeilingLightPro: return new WoCeilingLight(peripheral, this.noble);
|
|
189
|
+
case SwitchBotBLEModel.StripLight: return new WoStrip(peripheral, this.noble);
|
|
190
|
+
case SwitchBotBLEModel.PlugMiniUS:
|
|
191
|
+
case SwitchBotBLEModel.PlugMiniJP: return new WoPlugMini(peripheral, this.noble);
|
|
192
|
+
case SwitchBotBLEModel.Lock: return new WoSmartLock(peripheral, this.noble);
|
|
193
|
+
case SwitchBotBLEModel.LockPro: return new WoSmartLockPro(peripheral, this.noble);
|
|
194
|
+
case SwitchBotBLEModel.BlindTilt: return new WoBlindTilt(peripheral, this.noble);
|
|
195
|
+
default: return new SwitchbotDevice(peripheral, this.noble);
|
|
267
196
|
}
|
|
268
|
-
return device || null;
|
|
269
|
-
}
|
|
270
|
-
else {
|
|
271
|
-
return null;
|
|
272
197
|
}
|
|
198
|
+
return null;
|
|
273
199
|
}
|
|
274
200
|
/**
|
|
275
201
|
* Filters advertising data based on id and model.
|
|
@@ -277,95 +203,20 @@ export class SwitchBotBLE extends EventEmitter {
|
|
|
277
203
|
* @param {Ad} ad - The advertising data.
|
|
278
204
|
* @param {string} id - The device id.
|
|
279
205
|
* @param {string} model - The device model.
|
|
280
|
-
* @returns {boolean} - True if the advertising data matches the id and model, false otherwise.
|
|
206
|
+
* @returns {Promise<boolean>} - True if the advertising data matches the id and model, false otherwise.
|
|
281
207
|
*/
|
|
282
|
-
async
|
|
208
|
+
async filterAd(ad, id, model) {
|
|
283
209
|
if (!ad) {
|
|
284
210
|
return false;
|
|
285
211
|
}
|
|
286
|
-
if (id) {
|
|
287
|
-
|
|
288
|
-
const ad_id = ad.address.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
289
|
-
if (ad_id !== id) {
|
|
290
|
-
return false;
|
|
291
|
-
}
|
|
212
|
+
if (id && ad.address.toLowerCase().replace(/[^a-z0-9]/g, '') !== id.toLowerCase().replace(/:/g, '')) {
|
|
213
|
+
return false;
|
|
292
214
|
}
|
|
293
|
-
if (model) {
|
|
294
|
-
|
|
295
|
-
return false;
|
|
296
|
-
}
|
|
215
|
+
if (model && ad.serviceData.model !== model) {
|
|
216
|
+
return false;
|
|
297
217
|
}
|
|
298
218
|
return true;
|
|
299
219
|
}
|
|
300
|
-
/**
|
|
301
|
-
* Validates the provided parameters against a predefined schema.
|
|
302
|
-
*
|
|
303
|
-
* @param params - The parameters to validate.
|
|
304
|
-
* @returns A promise that resolves if the parameters are valid, otherwise it throws an error.
|
|
305
|
-
*
|
|
306
|
-
* @throws {Error} If the parameters do not conform to the expected schema.
|
|
307
|
-
*
|
|
308
|
-
* The expected schema for `params` is:
|
|
309
|
-
* - `duration` (optional): An integer between 1 and 60000.
|
|
310
|
-
* - `model` (optional): A string that must be one of the following values:
|
|
311
|
-
* - `SwitchBotBLEModel.Bot`
|
|
312
|
-
* - `SwitchBotBLEModel.Curtain`
|
|
313
|
-
* - `SwitchBotBLEModel.Curtain3`
|
|
314
|
-
* - `SwitchBotBLEModel.Humidifier`
|
|
315
|
-
* - `SwitchBotBLEModel.Meter`
|
|
316
|
-
* - `SwitchBotBLEModel.MeterPlus`
|
|
317
|
-
* - `SwitchBotBLEModel.Hub2`
|
|
318
|
-
* - `SwitchBotBLEModel.OutdoorMeter`
|
|
319
|
-
* - `SwitchBotBLEModel.MotionSensor`
|
|
320
|
-
* - `SwitchBotBLEModel.ContactSensor`
|
|
321
|
-
* - `SwitchBotBLEModel.ColorBulb`
|
|
322
|
-
* - `SwitchBotBLEModel.CeilingLight`
|
|
323
|
-
* - `SwitchBotBLEModel.CeilingLightPro`
|
|
324
|
-
* - `SwitchBotBLEModel.StripLight`
|
|
325
|
-
* - `SwitchBotBLEModel.PlugMiniUS`
|
|
326
|
-
* - `SwitchBotBLEModel.PlugMiniJP`
|
|
327
|
-
* - `SwitchBotBLEModel.Lock`
|
|
328
|
-
* - `SwitchBotBLEModel.LockPro`
|
|
329
|
-
* - `SwitchBotBLEModel.BlindTilt`
|
|
330
|
-
* - `id` (optional): A string with a length between 12 and 17 characters.
|
|
331
|
-
* - `quick` (optional): A boolean value.
|
|
332
|
-
*/
|
|
333
|
-
async validateParams(params) {
|
|
334
|
-
const valid = parameterChecker.check(params, {
|
|
335
|
-
duration: { required: false, type: 'integer', min: 1, max: 60000 },
|
|
336
|
-
model: {
|
|
337
|
-
required: false,
|
|
338
|
-
type: 'string',
|
|
339
|
-
enum: [
|
|
340
|
-
SwitchBotBLEModel.Bot,
|
|
341
|
-
SwitchBotBLEModel.Curtain,
|
|
342
|
-
SwitchBotBLEModel.Curtain3,
|
|
343
|
-
SwitchBotBLEModel.Humidifier,
|
|
344
|
-
SwitchBotBLEModel.Meter,
|
|
345
|
-
SwitchBotBLEModel.MeterPlus,
|
|
346
|
-
SwitchBotBLEModel.Hub2,
|
|
347
|
-
SwitchBotBLEModel.OutdoorMeter,
|
|
348
|
-
SwitchBotBLEModel.MotionSensor,
|
|
349
|
-
SwitchBotBLEModel.ContactSensor,
|
|
350
|
-
SwitchBotBLEModel.ColorBulb,
|
|
351
|
-
SwitchBotBLEModel.CeilingLight,
|
|
352
|
-
SwitchBotBLEModel.CeilingLightPro,
|
|
353
|
-
SwitchBotBLEModel.StripLight,
|
|
354
|
-
SwitchBotBLEModel.PlugMiniUS,
|
|
355
|
-
SwitchBotBLEModel.PlugMiniJP,
|
|
356
|
-
SwitchBotBLEModel.Lock,
|
|
357
|
-
SwitchBotBLEModel.LockPro,
|
|
358
|
-
SwitchBotBLEModel.BlindTilt,
|
|
359
|
-
],
|
|
360
|
-
},
|
|
361
|
-
id: { required: false, type: 'string', min: 12, max: 17 },
|
|
362
|
-
quick: { required: false, type: 'boolean' },
|
|
363
|
-
}, false);
|
|
364
|
-
if (!valid) {
|
|
365
|
-
this.emitLog('error', `parameterChecker: ${JSON.stringify(parameterChecker.error.message)}`);
|
|
366
|
-
throw new Error(parameterChecker.error.message);
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
220
|
/**
|
|
370
221
|
* Starts scanning for SwitchBot devices.
|
|
371
222
|
*
|
|
@@ -373,20 +224,31 @@ export class SwitchBotBLE extends EventEmitter {
|
|
|
373
224
|
* @returns {Promise<void>} - Resolves when scanning starts successfully.
|
|
374
225
|
*/
|
|
375
226
|
async startScan(params = {}) {
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
227
|
+
await this.ready;
|
|
228
|
+
await this.validate(params, {
|
|
229
|
+
model: { required: false, type: 'string', enum: Object.values(SwitchBotBLEModel) },
|
|
230
|
+
id: { required: false, type: 'string', min: 12, max: 17 },
|
|
231
|
+
});
|
|
232
|
+
await this.waitForPowerOn();
|
|
233
|
+
if (!this.noble) {
|
|
234
|
+
throw new Error('noble object failed to initialize');
|
|
235
|
+
}
|
|
236
|
+
const p = { model: params.model || '', id: params.id || '' };
|
|
380
237
|
this.noble.on('discover', async (peripheral) => {
|
|
381
|
-
const ad = await Advertising.parse(peripheral, this.
|
|
382
|
-
if (ad && await this.
|
|
383
|
-
if (this.onadvertisement
|
|
238
|
+
const ad = await Advertising.parse(peripheral, this.log.bind(this));
|
|
239
|
+
if (ad && await this.filterAd(ad, p.id, p.model)) {
|
|
240
|
+
if (this.onadvertisement) {
|
|
384
241
|
this.onadvertisement(ad);
|
|
385
242
|
}
|
|
386
243
|
}
|
|
387
244
|
});
|
|
388
|
-
|
|
389
|
-
|
|
245
|
+
try {
|
|
246
|
+
await this.noble.startScanningAsync(PRIMARY_SERVICE_UUID_LIST, true);
|
|
247
|
+
this.log('info', 'Started Scanning for SwitchBot BLE devices.');
|
|
248
|
+
}
|
|
249
|
+
catch (e) {
|
|
250
|
+
this.log('error', `startScanningAsync error: ${JSON.stringify(e.message ?? e)}`);
|
|
251
|
+
}
|
|
390
252
|
}
|
|
391
253
|
/**
|
|
392
254
|
* Stops scanning for SwitchBot devices.
|
|
@@ -394,12 +256,17 @@ export class SwitchBotBLE extends EventEmitter {
|
|
|
394
256
|
* @returns {Promise<void>} - Resolves when scanning stops successfully.
|
|
395
257
|
*/
|
|
396
258
|
async stopScan() {
|
|
397
|
-
if (this.noble
|
|
259
|
+
if (!this.noble) {
|
|
398
260
|
return;
|
|
399
261
|
}
|
|
400
262
|
this.noble.removeAllListeners('discover');
|
|
401
|
-
|
|
402
|
-
|
|
263
|
+
try {
|
|
264
|
+
await this.noble.stopScanningAsync();
|
|
265
|
+
this.log('info', 'Stopped Scanning for SwitchBot BLE devices.');
|
|
266
|
+
}
|
|
267
|
+
catch (e) {
|
|
268
|
+
this.log('error', `stopScanningAsync error: ${JSON.stringify(e.message ?? e)}`);
|
|
269
|
+
}
|
|
403
270
|
}
|
|
404
271
|
/**
|
|
405
272
|
* Waits for the specified time.
|
|
@@ -408,21 +275,10 @@ export class SwitchBotBLE extends EventEmitter {
|
|
|
408
275
|
* @returns {Promise<void>} - Resolves after the specified time.
|
|
409
276
|
*/
|
|
410
277
|
async wait(msec) {
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
}, {
|
|
416
|
-
msec: { required: true, type: 'integer', min: 0 },
|
|
417
|
-
}, true);
|
|
418
|
-
if (!valid) {
|
|
419
|
-
this.emitLog('error', `parameterChecker: ${JSON.stringify(parameterChecker.error.message)}`);
|
|
420
|
-
reject(new Error(parameterChecker.error.message));
|
|
421
|
-
return;
|
|
422
|
-
}
|
|
423
|
-
// Set a timer
|
|
424
|
-
setTimeout(resolve, msec);
|
|
425
|
-
});
|
|
278
|
+
if (typeof msec !== 'number' || msec < 0) {
|
|
279
|
+
throw new Error('Invalid parameter: msec must be a non-negative integer.');
|
|
280
|
+
}
|
|
281
|
+
return new Promise(resolve => setTimeout(resolve, msec));
|
|
426
282
|
}
|
|
427
283
|
}
|
|
428
284
|
export { SwitchbotDevice };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switchbot-ble.js","sourceRoot":"","sources":["../src/switchbot-ble.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"switchbot-ble.js","sourceRoot":"","sources":["../src/switchbot-ble.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,7 @@ describe('advertising', () => {
|
|
|
61
61
|
vi.spyOn(Advertising, 'parseServiceData').mockResolvedValue(null);
|
|
62
62
|
const result = await Advertising.parse(peripheral, mockLog);
|
|
63
63
|
expect(result).toBeNull();
|
|
64
|
-
expect(mockLog).toHaveBeenCalledWith('
|
|
64
|
+
expect(mockLog).toHaveBeenCalledWith('[parseAdvertising.test-id.\x01] return null, parsed serviceData empty!');
|
|
65
65
|
});
|
|
66
66
|
});
|
|
67
67
|
describe('validateBuffer', () => {
|
|
@@ -70,10 +70,10 @@ describe('advertising', () => {
|
|
|
70
70
|
const result = Advertising.validateBuffer(buffer);
|
|
71
71
|
expect(result).toBe(true);
|
|
72
72
|
});
|
|
73
|
-
it('should return
|
|
73
|
+
it('should return false for invalid buffer', () => {
|
|
74
74
|
const buffer = null;
|
|
75
75
|
const result = Advertising.validateBuffer(buffer);
|
|
76
|
-
expect(result).toBe(
|
|
76
|
+
expect(result).toBe(false);
|
|
77
77
|
});
|
|
78
78
|
});
|
|
79
79
|
describe('formatAddress', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advertising.test.js","sourceRoot":"","sources":["../../src/test/advertising.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"advertising.test.js","sourceRoot":"","sources":["../../src/test/advertising.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switchbot-ble.test.d.ts","sourceRoot":"","sources":["../../src/test/switchbot-ble.test.ts"],"names":[],"mappings":""}
|