node-switchbot 2.5.0-beta.1 → 2.5.0-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.d.ts +10 -4
- package/dist/advertising.d.ts.map +1 -1
- package/dist/advertising.js +4 -1
- package/dist/advertising.js.map +1 -1
- package/dist/switchbot.d.ts +66 -33
- package/dist/switchbot.d.ts.map +1 -1
- package/dist/switchbot.js +182 -380
- package/dist/switchbot.js.map +1 -1
- package/package.json +1 -1
package/dist/advertising.d.ts
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import type * as Noble from '@stoprocent/noble';
|
|
2
2
|
import { Buffer } from 'node:buffer';
|
|
3
|
-
|
|
3
|
+
interface ServiceData {
|
|
4
|
+
model: string;
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
export interface Ad {
|
|
4
8
|
id: string;
|
|
5
9
|
address: string;
|
|
6
10
|
rssi: number;
|
|
7
|
-
serviceData:
|
|
8
|
-
|
|
11
|
+
serviceData: ServiceData;
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
}
|
|
9
14
|
export interface AdvertisementData {
|
|
10
15
|
serviceData: Buffer | null;
|
|
11
16
|
manufacturerData: Buffer | null;
|
|
@@ -22,6 +27,7 @@ export declare class Advertising {
|
|
|
22
27
|
* @param onlog - A logging function for debugging purposes.
|
|
23
28
|
* @returns An object containing parsed data specific to the SwitchBot device type, or `null` if the device is not recognized.
|
|
24
29
|
*/
|
|
25
|
-
static parse(peripheral: Noble.Peripheral, onlog?: (message: string) => void): Promise<Ad>;
|
|
30
|
+
static parse(peripheral: Noble.Peripheral, onlog?: (message: string) => void): Promise<Ad | null>;
|
|
26
31
|
}
|
|
32
|
+
export {};
|
|
27
33
|
//# sourceMappingURL=advertising.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advertising.d.ts","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAmBpC,
|
|
1
|
+
{"version":3,"file":"advertising.d.ts","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAmBpC,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AACD,MAAM,WAAW,EAAE;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,WAAW,CAAA;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED,qBAAa,WAAW;;IAGtB;;;;;;;;;OASG;WACU,KAAK,CAChB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC;CAoHtB"}
|
package/dist/advertising.js
CHANGED
|
@@ -130,7 +130,10 @@ export class Advertising {
|
|
|
130
130
|
id: peripheral.id,
|
|
131
131
|
address,
|
|
132
132
|
rssi: peripheral.rssi,
|
|
133
|
-
serviceData:
|
|
133
|
+
serviceData: {
|
|
134
|
+
model,
|
|
135
|
+
...sd,
|
|
136
|
+
},
|
|
134
137
|
};
|
|
135
138
|
if (onlog && typeof onlog === 'function') {
|
|
136
139
|
onlog(`[parseAdvertising.${peripheral.id}.${model}] return ${JSON.stringify(data)}`);
|
package/dist/advertising.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advertising.js","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"advertising.js","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"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"}
|
package/dist/switchbot.d.ts
CHANGED
|
@@ -1,51 +1,84 @@
|
|
|
1
|
-
import type * as Noble from '@stoprocent/noble';
|
|
2
1
|
import type { Ad } from './advertising.js';
|
|
3
2
|
import type { Params } from './types/types.js';
|
|
3
|
+
import * as Noble from '@stoprocent/noble';
|
|
4
4
|
import { SwitchbotDevice } from './device.js';
|
|
5
|
+
/**
|
|
6
|
+
* SwitchBot class to interact with SwitchBot devices.
|
|
7
|
+
*/
|
|
5
8
|
export declare class SwitchBot {
|
|
6
9
|
private ready;
|
|
7
10
|
noble: typeof Noble;
|
|
8
11
|
ondiscover?: (device: SwitchbotDevice) => void;
|
|
9
12
|
onadvertisement?: (ad: Ad) => void;
|
|
10
|
-
onlog
|
|
13
|
+
onlog?: (message: string) => void;
|
|
11
14
|
DEFAULT_DISCOVERY_DURATION: number;
|
|
12
|
-
PRIMARY_SERVICE_UUID_LIST:
|
|
15
|
+
PRIMARY_SERVICE_UUID_LIST: string[];
|
|
16
|
+
/**
|
|
17
|
+
* Constructor
|
|
18
|
+
*
|
|
19
|
+
* @param {Params} [params] - Optional parameters
|
|
20
|
+
* @param {typeof Noble} [params.noble] - Optional noble instance
|
|
21
|
+
*/
|
|
13
22
|
constructor(params?: Params);
|
|
23
|
+
/**
|
|
24
|
+
* Initializes the noble object.
|
|
25
|
+
*
|
|
26
|
+
* @param {Params} [params] - Optional parameters
|
|
27
|
+
* @param {typeof Noble} [params.noble] - Optional noble instance
|
|
28
|
+
* @returns {Promise<void>} - Resolves when initialization is complete
|
|
29
|
+
*/
|
|
14
30
|
init(params?: Params): Promise<void>;
|
|
15
31
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* @
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* -
|
|
26
|
-
|
|
27
|
-
* - "c": Curtains
|
|
28
|
-
* - "{": Curtain 3
|
|
29
|
-
* - "u": Color Bulbs
|
|
30
|
-
* - "g": Plugs
|
|
31
|
-
* - "o": Locks
|
|
32
|
-
* - "$": Lock Pros
|
|
33
|
-
* - "i": Meter Pluses
|
|
34
|
-
* - "r": Locks (Duplicate, possibly an error)
|
|
35
|
-
* - id: Optional device ID (MAC address) to discover, case-insensitive, ignores colons.
|
|
36
|
-
* - quick: If true, stops discovery upon first match, not waiting full duration. Defaults to false.
|
|
37
|
-
*
|
|
38
|
-
* @returns Promise resolving to an array of `SwitchbotDevice` objects for discovered devices.
|
|
39
|
-
*
|
|
40
|
-
* @deprecated since version 2.4.0. Will be removed in version 3.0.0. Use getDeviceObjectAsync() instead.
|
|
41
|
-
*/
|
|
42
|
-
discover(params?: Params): Promise<unknown>;
|
|
32
|
+
* Discover SwitchBot devices based on the provided parameters.
|
|
33
|
+
*
|
|
34
|
+
* @param {Params} params - The parameters for discovery.
|
|
35
|
+
* @returns {Promise<SwitchbotDevice[]>} - A promise that resolves with a list of discovered devices.
|
|
36
|
+
*/
|
|
37
|
+
discover(params?: Params): Promise<SwitchbotDevice[]>;
|
|
38
|
+
/**
|
|
39
|
+
* Initializes the noble object and waits for it to be powered on.
|
|
40
|
+
*
|
|
41
|
+
* @returns {Promise<void>} - Resolves when the noble object is powered on.
|
|
42
|
+
*/
|
|
43
43
|
_init(): Promise<void>;
|
|
44
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Gets the device object based on the peripheral, id, and model.
|
|
46
|
+
*
|
|
47
|
+
* @param {Noble.Peripheral} peripheral - The peripheral object.
|
|
48
|
+
* @param {string} id - The device id.
|
|
49
|
+
* @param {string} model - The device model.
|
|
50
|
+
* @returns {Promise<SwitchbotDevice | null>} - The device object or null.
|
|
51
|
+
*/
|
|
52
|
+
getDeviceObject(peripheral: Noble.Peripheral, id: string, model: string): Promise<SwitchbotDevice | null>;
|
|
53
|
+
/**
|
|
54
|
+
* Filters advertising data based on id and model.
|
|
55
|
+
*
|
|
56
|
+
* @param {Ad} ad - The advertising data.
|
|
57
|
+
* @param {string} id - The device id.
|
|
58
|
+
* @param {string} model - The device model.
|
|
59
|
+
* @returns {boolean} - True if the advertising data matches the id and model, false otherwise.
|
|
60
|
+
*/
|
|
45
61
|
filterAdvertising(ad: Ad, id: string, model: string): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Starts scanning for SwitchBot devices.
|
|
64
|
+
*
|
|
65
|
+
* @param {Params} [params] - Optional parameters.
|
|
66
|
+
* @returns {Promise<void>} - Resolves when scanning starts successfully.
|
|
67
|
+
*/
|
|
46
68
|
startScan(params?: Params): Promise<void>;
|
|
47
|
-
|
|
48
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Stops scanning for SwitchBot devices.
|
|
71
|
+
*
|
|
72
|
+
* @returns {Promise<void>} - Resolves when scanning stops successfully.
|
|
73
|
+
*/
|
|
74
|
+
stopScan(): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Waits for the specified time.
|
|
77
|
+
*
|
|
78
|
+
* @param {number} msec - The time to wait in milliseconds.
|
|
79
|
+
* @returns {Promise<void>} - Resolves after the specified time.
|
|
80
|
+
*/
|
|
81
|
+
wait(msec: number): Promise<void>;
|
|
49
82
|
}
|
|
50
83
|
export { SwitchbotDevice };
|
|
51
84
|
//# sourceMappingURL=switchbot.d.ts.map
|
package/dist/switchbot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switchbot.d.ts","sourceRoot":"","sources":["../src/switchbot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"switchbot.d.ts","sourceRoot":"","sources":["../src/switchbot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAG1C,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;IAExC;;;;;OAKG;gBACS,MAAM,CAAC,EAAE,MAAM;IAI3B;;;;;;OAMG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C;;;;;OAKG;IACG,QAAQ,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA2D/D;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB5B;;;;;;;OAOG;IACG,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAgC/G;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAoB7D;;;;;OAKG;IACG,SAAS,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCnD;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B;;;;;OAKG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAexC;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
package/dist/switchbot.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Noble from '@stoprocent/noble';
|
|
1
2
|
import { Advertising } from './advertising.js';
|
|
2
3
|
import { SwitchbotDevice } from './device.js';
|
|
3
4
|
import { WoBlindTilt } from './device/woblindtilt.js';
|
|
@@ -17,6 +18,9 @@ import { WoSmartLockPro } from './device/wosmartlockpro.js';
|
|
|
17
18
|
import { WoStrip } from './device/wostrip.js';
|
|
18
19
|
import { parameterChecker } from './parameter-checker.js';
|
|
19
20
|
import { SwitchBotBLEModel } from './types/types.js';
|
|
21
|
+
/**
|
|
22
|
+
* SwitchBot class to interact with SwitchBot devices.
|
|
23
|
+
*/
|
|
20
24
|
export class SwitchBot {
|
|
21
25
|
ready;
|
|
22
26
|
noble;
|
|
@@ -25,432 +29,230 @@ export class SwitchBot {
|
|
|
25
29
|
onlog;
|
|
26
30
|
DEFAULT_DISCOVERY_DURATION = 5000;
|
|
27
31
|
PRIMARY_SERVICE_UUID_LIST = [];
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
* | | | This parameter is optional.
|
|
35
|
-
* | | | If you don't specify this parameter, this
|
|
36
|
-
* | | | module automatically creates it.
|
|
37
|
-
* ---------------------------------------------------------------- */
|
|
32
|
+
/**
|
|
33
|
+
* Constructor
|
|
34
|
+
*
|
|
35
|
+
* @param {Params} [params] - Optional parameters
|
|
36
|
+
* @param {typeof Noble} [params.noble] - Optional noble instance
|
|
37
|
+
*/
|
|
38
38
|
constructor(params) {
|
|
39
39
|
this.ready = this.init(params);
|
|
40
40
|
}
|
|
41
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Initializes the noble object.
|
|
43
|
+
*
|
|
44
|
+
* @param {Params} [params] - Optional parameters
|
|
45
|
+
* @param {typeof Noble} [params.noble] - Optional noble instance
|
|
46
|
+
* @returns {Promise<void>} - Resolves when initialization is complete
|
|
47
|
+
*/
|
|
42
48
|
async init(params) {
|
|
43
|
-
|
|
44
|
-
if (params && params.noble) {
|
|
45
|
-
noble = params.noble;
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
noble = (await import('@stoprocent/noble')).default;
|
|
49
|
-
}
|
|
50
|
-
// Public properties
|
|
51
|
-
this.noble = noble;
|
|
49
|
+
this.noble = params?.noble ?? Noble;
|
|
52
50
|
}
|
|
53
51
|
/**
|
|
54
|
-
*
|
|
55
|
-
* This async operation looks for devices by model or ID within a set duration.
|
|
56
|
-
*
|
|
57
|
-
* @param params An optional object with properties:
|
|
58
|
-
* - duration: Discovery time in milliseconds (1 to 60000, default 5000).
|
|
59
|
-
* - model: String specifying device type to discover, with each character representing a model:
|
|
60
|
-
* - "H": Bots
|
|
61
|
-
* - "T": Meters
|
|
62
|
-
* - "e": Humidifiers
|
|
63
|
-
* - "s": Motion Sensors
|
|
64
|
-
* - "d": Contact Sensors
|
|
65
|
-
* - "c": Curtains
|
|
66
|
-
* - "{": Curtain 3
|
|
67
|
-
* - "u": Color Bulbs
|
|
68
|
-
* - "g": Plugs
|
|
69
|
-
* - "o": Locks
|
|
70
|
-
* - "$": Lock Pros
|
|
71
|
-
* - "i": Meter Pluses
|
|
72
|
-
* - "r": Locks (Duplicate, possibly an error)
|
|
73
|
-
* - id: Optional device ID (MAC address) to discover, case-insensitive, ignores colons.
|
|
74
|
-
* - quick: If true, stops discovery upon first match, not waiting full duration. Defaults to false.
|
|
75
|
-
*
|
|
76
|
-
* @returns Promise resolving to an array of `SwitchbotDevice` objects for discovered devices.
|
|
52
|
+
* Discover SwitchBot devices based on the provided parameters.
|
|
77
53
|
*
|
|
78
|
-
* @
|
|
54
|
+
* @param {Params} params - The parameters for discovery.
|
|
55
|
+
* @returns {Promise<SwitchbotDevice[]>} - A promise that resolves with a list of discovered devices.
|
|
79
56
|
*/
|
|
80
|
-
discover(params = {}) {
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
quick: !!params.quick,
|
|
106
|
-
};
|
|
107
|
-
// Initialize the noble object
|
|
108
|
-
this._init()
|
|
109
|
-
.then(() => {
|
|
110
|
-
if (this.noble === null) {
|
|
111
|
-
return reject(new Error('noble failed to initialize'));
|
|
112
|
-
}
|
|
113
|
-
const peripherals = {};
|
|
114
|
-
let timer = setTimeout(() => { }, 0);
|
|
115
|
-
const finishDiscovery = () => {
|
|
116
|
-
if (timer) {
|
|
117
|
-
clearTimeout(timer);
|
|
118
|
-
}
|
|
119
|
-
this.noble.removeAllListeners('discover');
|
|
120
|
-
this.noble.stopScanning();
|
|
121
|
-
const device_list = [];
|
|
122
|
-
for (const addr in peripherals) {
|
|
123
|
-
device_list.push(peripherals[addr]);
|
|
124
|
-
}
|
|
125
|
-
resolve(device_list);
|
|
126
|
-
};
|
|
127
|
-
// Set a handler for the 'discover' event
|
|
57
|
+
async discover(params = {}) {
|
|
58
|
+
const valid = parameterChecker.check(params, {
|
|
59
|
+
duration: { required: false, type: 'integer', min: 1, max: 60000 },
|
|
60
|
+
model: { required: false, type: 'string', enum: Object.values(SwitchBotBLEModel) },
|
|
61
|
+
id: { required: false, type: 'string', min: 12, max: 17 },
|
|
62
|
+
quick: { required: false, type: 'boolean' },
|
|
63
|
+
}, false);
|
|
64
|
+
if (!valid) {
|
|
65
|
+
throw new Error(parameterChecker.error.message);
|
|
66
|
+
}
|
|
67
|
+
const { duration = this.DEFAULT_DISCOVERY_DURATION, model = '', id = '', quick = false } = params;
|
|
68
|
+
await this._init();
|
|
69
|
+
if (!this.noble) {
|
|
70
|
+
throw new Error('noble failed to initialize');
|
|
71
|
+
}
|
|
72
|
+
const peripherals = {};
|
|
73
|
+
let timer;
|
|
74
|
+
const finishDiscovery = () => {
|
|
75
|
+
clearTimeout(timer);
|
|
76
|
+
this.noble.removeAllListeners('discover');
|
|
77
|
+
this.noble.stopScanning();
|
|
78
|
+
return Object.values(peripherals);
|
|
79
|
+
};
|
|
80
|
+
return new Promise((resolve, reject) => {
|
|
81
|
+
try {
|
|
128
82
|
this.noble.on('discover', async (peripheral) => {
|
|
129
|
-
const device = await this.getDeviceObject(peripheral,
|
|
130
|
-
if (!device) {
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
const id = device.id;
|
|
83
|
+
const device = await this.getDeviceObject(peripheral, id, model);
|
|
134
84
|
if (device) {
|
|
135
|
-
peripherals[id] = device;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
85
|
+
peripherals[device.id] = device;
|
|
86
|
+
if (this.ondiscover) {
|
|
87
|
+
this.ondiscover(device);
|
|
88
|
+
}
|
|
89
|
+
if (quick) {
|
|
90
|
+
resolve(finishDiscovery());
|
|
91
|
+
}
|
|
142
92
|
}
|
|
143
93
|
});
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
if (error) {
|
|
147
|
-
reject(error);
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
94
|
+
this.noble.startScanningAsync(this.PRIMARY_SERVICE_UUID_LIST, false)
|
|
95
|
+
.then(() => {
|
|
150
96
|
timer = setTimeout(() => {
|
|
151
|
-
finishDiscovery();
|
|
152
|
-
},
|
|
97
|
+
resolve(finishDiscovery());
|
|
98
|
+
}, duration);
|
|
99
|
+
})
|
|
100
|
+
.catch((error) => {
|
|
101
|
+
reject(new Error(error.message));
|
|
153
102
|
});
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
reject(error);
|
|
157
|
-
}
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
reject(new Error(String(error)));
|
|
106
|
+
}
|
|
158
107
|
});
|
|
159
|
-
return promise;
|
|
160
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Initializes the noble object and waits for it to be powered on.
|
|
111
|
+
*
|
|
112
|
+
* @returns {Promise<void>} - Resolves when the noble object is powered on.
|
|
113
|
+
*/
|
|
161
114
|
async _init() {
|
|
162
115
|
await this.ready;
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
116
|
+
if (this.noble._state === 'poweredOn') {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
return new Promise((resolve, reject) => {
|
|
169
120
|
this.noble.once('stateChange', (state) => {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
return;
|
|
182
|
-
case 'poweredOn':
|
|
183
|
-
resolve();
|
|
184
|
-
return;
|
|
185
|
-
default:
|
|
186
|
-
err = new Error(`Unknown state: ${this.noble._state}`);
|
|
187
|
-
reject(err);
|
|
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}`));
|
|
188
132
|
}
|
|
189
133
|
});
|
|
190
134
|
});
|
|
191
|
-
return promise;
|
|
192
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Gets the device object based on the peripheral, id, and model.
|
|
138
|
+
*
|
|
139
|
+
* @param {Noble.Peripheral} peripheral - The peripheral object.
|
|
140
|
+
* @param {string} id - The device id.
|
|
141
|
+
* @param {string} model - The device model.
|
|
142
|
+
* @returns {Promise<SwitchbotDevice | null>} - The device object or null.
|
|
143
|
+
*/
|
|
193
144
|
async getDeviceObject(peripheral, id, model) {
|
|
194
145
|
const ad = await Advertising.parse(peripheral, this.onlog);
|
|
195
|
-
if (this.filterAdvertising(ad, id, model)) {
|
|
196
|
-
let device;
|
|
197
|
-
if (ad && ad.serviceData && ad.serviceData.model) {
|
|
198
|
-
switch (ad.serviceData.model) {
|
|
199
|
-
case SwitchBotBLEModel.Bot:
|
|
200
|
-
device = new WoHand(peripheral, this.noble);
|
|
201
|
-
break;
|
|
202
|
-
case SwitchBotBLEModel.Curtain:
|
|
203
|
-
case SwitchBotBLEModel.Curtain3:
|
|
204
|
-
device = new WoCurtain(peripheral, this.noble);
|
|
205
|
-
break;
|
|
206
|
-
case SwitchBotBLEModel.Humidifier:
|
|
207
|
-
device = new WoHumi(peripheral, this.noble);
|
|
208
|
-
break;
|
|
209
|
-
case SwitchBotBLEModel.Meter:
|
|
210
|
-
device = new WoSensorTH(peripheral, this.noble);
|
|
211
|
-
break;
|
|
212
|
-
case SwitchBotBLEModel.MeterPlus:
|
|
213
|
-
device = new WoSensorTH(peripheral, this.noble);
|
|
214
|
-
break;
|
|
215
|
-
case SwitchBotBLEModel.Hub2:
|
|
216
|
-
device = new WoHub2(peripheral, this.noble);
|
|
217
|
-
break;
|
|
218
|
-
case SwitchBotBLEModel.OutdoorMeter:
|
|
219
|
-
device = new WoIOSensorTH(peripheral, this.noble);
|
|
220
|
-
break;
|
|
221
|
-
case SwitchBotBLEModel.MotionSensor:
|
|
222
|
-
device = new WoPresence(peripheral, this.noble);
|
|
223
|
-
break;
|
|
224
|
-
case SwitchBotBLEModel.ContactSensor:
|
|
225
|
-
device = new WoContact(peripheral, this.noble);
|
|
226
|
-
break;
|
|
227
|
-
case SwitchBotBLEModel.ColorBulb:
|
|
228
|
-
device = new WoBulb(peripheral, this.noble);
|
|
229
|
-
break;
|
|
230
|
-
case SwitchBotBLEModel.CeilingLight:
|
|
231
|
-
device = new WoCeilingLight(peripheral, this.noble);
|
|
232
|
-
break;
|
|
233
|
-
case SwitchBotBLEModel.CeilingLightPro:
|
|
234
|
-
device = new WoCeilingLight(peripheral, this.noble);
|
|
235
|
-
break;
|
|
236
|
-
case SwitchBotBLEModel.StripLight:
|
|
237
|
-
device = new WoStrip(peripheral, this.noble);
|
|
238
|
-
break;
|
|
239
|
-
case SwitchBotBLEModel.PlugMiniUS:
|
|
240
|
-
case SwitchBotBLEModel.PlugMiniJP:
|
|
241
|
-
device = new WoPlugMini(peripheral, this.noble);
|
|
242
|
-
break;
|
|
243
|
-
case SwitchBotBLEModel.Lock:
|
|
244
|
-
device = new WoSmartLock(peripheral, this.noble);
|
|
245
|
-
break;
|
|
246
|
-
case SwitchBotBLEModel.LockPro:
|
|
247
|
-
device = new WoSmartLockPro(peripheral, this.noble);
|
|
248
|
-
break;
|
|
249
|
-
case SwitchBotBLEModel.BlindTilt:
|
|
250
|
-
device = new WoBlindTilt(peripheral, this.noble);
|
|
251
|
-
break;
|
|
252
|
-
default: // 'resetting', 'unknown'
|
|
253
|
-
device = new SwitchbotDevice(peripheral, this.noble);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
return device;
|
|
257
|
-
}
|
|
258
|
-
else {
|
|
146
|
+
if (!ad || !this.filterAdvertising(ad, id, model)) {
|
|
259
147
|
return null;
|
|
260
148
|
}
|
|
149
|
+
const modelMapping = {
|
|
150
|
+
[SwitchBotBLEModel.Bot]: WoHand,
|
|
151
|
+
[SwitchBotBLEModel.Curtain]: WoCurtain,
|
|
152
|
+
[SwitchBotBLEModel.Curtain3]: WoCurtain,
|
|
153
|
+
[SwitchBotBLEModel.Humidifier]: WoHumi,
|
|
154
|
+
[SwitchBotBLEModel.Meter]: WoSensorTH,
|
|
155
|
+
[SwitchBotBLEModel.MeterPlus]: WoSensorTH,
|
|
156
|
+
[SwitchBotBLEModel.Hub2]: WoHub2,
|
|
157
|
+
[SwitchBotBLEModel.OutdoorMeter]: WoIOSensorTH,
|
|
158
|
+
[SwitchBotBLEModel.MotionSensor]: WoPresence,
|
|
159
|
+
[SwitchBotBLEModel.ContactSensor]: WoContact,
|
|
160
|
+
[SwitchBotBLEModel.ColorBulb]: WoBulb,
|
|
161
|
+
[SwitchBotBLEModel.CeilingLight]: WoCeilingLight,
|
|
162
|
+
[SwitchBotBLEModel.CeilingLightPro]: WoCeilingLight,
|
|
163
|
+
[SwitchBotBLEModel.StripLight]: WoStrip,
|
|
164
|
+
[SwitchBotBLEModel.PlugMiniUS]: WoPlugMini,
|
|
165
|
+
[SwitchBotBLEModel.PlugMiniJP]: WoPlugMini,
|
|
166
|
+
[SwitchBotBLEModel.Lock]: WoSmartLock,
|
|
167
|
+
[SwitchBotBLEModel.LockPro]: WoSmartLockPro,
|
|
168
|
+
[SwitchBotBLEModel.BlindTilt]: WoBlindTilt,
|
|
169
|
+
};
|
|
170
|
+
const DeviceClass = ad?.serviceData?.model ? modelMapping[ad.serviceData.model] : SwitchbotDevice;
|
|
171
|
+
return new DeviceClass(peripheral, this.noble);
|
|
261
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Filters advertising data based on id and model.
|
|
175
|
+
*
|
|
176
|
+
* @param {Ad} ad - The advertising data.
|
|
177
|
+
* @param {string} id - The device id.
|
|
178
|
+
* @param {string} model - The device model.
|
|
179
|
+
* @returns {boolean} - True if the advertising data matches the id and model, false otherwise.
|
|
180
|
+
*/
|
|
262
181
|
filterAdvertising(ad, id, model) {
|
|
263
182
|
if (!ad) {
|
|
264
183
|
return false;
|
|
265
184
|
}
|
|
266
185
|
if (id) {
|
|
267
|
-
|
|
268
|
-
const
|
|
269
|
-
if (
|
|
186
|
+
const normalizedId = id.toLowerCase().replace(/:/g, '');
|
|
187
|
+
const adId = ad.address.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
188
|
+
if (adId !== normalizedId) {
|
|
270
189
|
return false;
|
|
271
190
|
}
|
|
272
191
|
}
|
|
273
|
-
if (model) {
|
|
274
|
-
|
|
275
|
-
return false;
|
|
276
|
-
}
|
|
192
|
+
if (model && ad.serviceData.model !== model) {
|
|
193
|
+
return false;
|
|
277
194
|
}
|
|
278
195
|
return true;
|
|
279
196
|
}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
* | | | If "x" is specified, the `onadvertisement`
|
|
309
|
-
* | | | event handler will be called only when advertising
|
|
310
|
-
* | | | packets comes from BlindTilt.
|
|
311
|
-
* | | | If "u" is specified, the `onadvertisement`
|
|
312
|
-
* | | | event handler will be called only when advertising
|
|
313
|
-
* | | | packets comes from Color Bulb.
|
|
314
|
-
* | | | If "g" is specified, the `onadvertisement`
|
|
315
|
-
* | | | event handler will be called only when advertising
|
|
316
|
-
* | | | packets comes from Plug Mini.
|
|
317
|
-
* | | | If "o" is specified, the `onadvertisement`
|
|
318
|
-
* | | | event handler will be called only when advertising
|
|
319
|
-
* | | | packets comes from Smart Lock.
|
|
320
|
-
* | | | If "$" is specified, the `onadvertisement`
|
|
321
|
-
* | | | event handler will be called only when advertising
|
|
322
|
-
* | | | packets comes from Smart Lock Pro.
|
|
323
|
-
* | | | If "i" is specified, the `onadvertisement`
|
|
324
|
-
* | | | event handler will be called only when advertising
|
|
325
|
-
* | | | packets comes from Meter Plus.
|
|
326
|
-
* | | | If "r" is specified, the `onadvertisement`
|
|
327
|
-
* | | | event handler will be called only when advertising
|
|
328
|
-
* | | | packets comes from LED Strip Light.
|
|
329
|
-
* - id | String | Optional | If this value is set, the `onadvertisement`
|
|
330
|
-
* | | | event handler will be called only when advertising
|
|
331
|
-
* | | | packets comes from devices whose ID is as same as
|
|
332
|
-
* | | | this value.
|
|
333
|
-
* | | | The ID is identical to the MAC address.
|
|
334
|
-
* | | | This parameter is case-insensitive, and
|
|
335
|
-
* | | | colons are ignored.
|
|
336
|
-
*
|
|
337
|
-
* [Return value]
|
|
338
|
-
* - Promise object
|
|
339
|
-
* Nothing will be passed to the `resolve()`.
|
|
340
|
-
* ---------------------------------------------------------------- */
|
|
341
|
-
startScan(params = {}) {
|
|
342
|
-
const promise = new Promise((resolve, reject) => {
|
|
343
|
-
// Check the parameters
|
|
344
|
-
const valid = parameterChecker.check(params, {
|
|
345
|
-
model: {
|
|
346
|
-
required: false,
|
|
347
|
-
type: 'string',
|
|
348
|
-
enum: [
|
|
349
|
-
SwitchBotBLEModel.Bot,
|
|
350
|
-
SwitchBotBLEModel.Curtain,
|
|
351
|
-
SwitchBotBLEModel.Curtain3,
|
|
352
|
-
SwitchBotBLEModel.Humidifier,
|
|
353
|
-
SwitchBotBLEModel.Meter,
|
|
354
|
-
SwitchBotBLEModel.MeterPlus,
|
|
355
|
-
SwitchBotBLEModel.Hub2,
|
|
356
|
-
SwitchBotBLEModel.OutdoorMeter,
|
|
357
|
-
SwitchBotBLEModel.MotionSensor,
|
|
358
|
-
SwitchBotBLEModel.ContactSensor,
|
|
359
|
-
SwitchBotBLEModel.ColorBulb,
|
|
360
|
-
SwitchBotBLEModel.CeilingLight,
|
|
361
|
-
SwitchBotBLEModel.CeilingLightPro,
|
|
362
|
-
SwitchBotBLEModel.StripLight,
|
|
363
|
-
SwitchBotBLEModel.PlugMiniUS,
|
|
364
|
-
SwitchBotBLEModel.PlugMiniJP,
|
|
365
|
-
SwitchBotBLEModel.Lock,
|
|
366
|
-
SwitchBotBLEModel.LockPro,
|
|
367
|
-
SwitchBotBLEModel.BlindTilt,
|
|
368
|
-
],
|
|
369
|
-
},
|
|
370
|
-
id: { required: false, type: 'string', min: 12, max: 17 },
|
|
371
|
-
}, false);
|
|
372
|
-
if (!valid) {
|
|
373
|
-
reject(new Error(parameterChecker.error.message));
|
|
374
|
-
return;
|
|
375
|
-
}
|
|
376
|
-
// Initialize the noble object
|
|
377
|
-
this._init()
|
|
378
|
-
.then(() => {
|
|
379
|
-
if (this.noble === null) {
|
|
380
|
-
return reject(new Error('noble object failed to initialize'));
|
|
197
|
+
/**
|
|
198
|
+
* Starts scanning for SwitchBot devices.
|
|
199
|
+
*
|
|
200
|
+
* @param {Params} [params] - Optional parameters.
|
|
201
|
+
* @returns {Promise<void>} - Resolves when scanning starts successfully.
|
|
202
|
+
*/
|
|
203
|
+
async startScan(params = {}) {
|
|
204
|
+
const valid = parameterChecker.check(params, {
|
|
205
|
+
model: {
|
|
206
|
+
required: false,
|
|
207
|
+
type: 'string',
|
|
208
|
+
enum: Object.values(SwitchBotBLEModel),
|
|
209
|
+
},
|
|
210
|
+
id: { required: false, type: 'string', min: 12, max: 17 },
|
|
211
|
+
}, false);
|
|
212
|
+
if (!valid) {
|
|
213
|
+
throw new Error(parameterChecker.error.message);
|
|
214
|
+
}
|
|
215
|
+
await this._init();
|
|
216
|
+
if (!this.noble) {
|
|
217
|
+
throw new Error('noble object failed to initialize');
|
|
218
|
+
}
|
|
219
|
+
const { model = '', id = '' } = params;
|
|
220
|
+
this.noble.on('discover', async (peripheral) => {
|
|
221
|
+
const ad = await Advertising.parse(peripheral, this.onlog);
|
|
222
|
+
if (ad && this.filterAdvertising(ad, id, model)) {
|
|
223
|
+
if (this.onadvertisement && typeof this.onadvertisement === 'function') {
|
|
224
|
+
this.onadvertisement(ad);
|
|
381
225
|
}
|
|
382
|
-
|
|
383
|
-
const p = {
|
|
384
|
-
model: params.model || '',
|
|
385
|
-
id: params.id || '',
|
|
386
|
-
};
|
|
387
|
-
// Set a handler for the 'discover' event
|
|
388
|
-
this.noble.on('discover', async (peripheral) => {
|
|
389
|
-
const ad = await Advertising.parse(peripheral, this.onlog);
|
|
390
|
-
if (this.filterAdvertising(ad, p.id, p.model)) {
|
|
391
|
-
if (this.onadvertisement
|
|
392
|
-
&& typeof this.onadvertisement === 'function') {
|
|
393
|
-
this.onadvertisement(ad);
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
});
|
|
397
|
-
// Start scanning
|
|
398
|
-
this.noble.startScanning(this.PRIMARY_SERVICE_UUID_LIST, true, (error) => {
|
|
399
|
-
if (error) {
|
|
400
|
-
reject(error);
|
|
401
|
-
}
|
|
402
|
-
else {
|
|
403
|
-
resolve();
|
|
404
|
-
}
|
|
405
|
-
});
|
|
406
|
-
})
|
|
407
|
-
.catch((error) => {
|
|
408
|
-
throw new Error(error);
|
|
409
|
-
});
|
|
226
|
+
}
|
|
410
227
|
});
|
|
411
|
-
|
|
228
|
+
await this.noble.startScanningAsync(this.PRIMARY_SERVICE_UUID_LIST, true);
|
|
412
229
|
}
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
* [Return value]
|
|
421
|
-
* - none
|
|
422
|
-
* ---------------------------------------------------------------- */
|
|
423
|
-
stopScan() {
|
|
424
|
-
if (this.noble === null) {
|
|
230
|
+
/**
|
|
231
|
+
* Stops scanning for SwitchBot devices.
|
|
232
|
+
*
|
|
233
|
+
* @returns {Promise<void>} - Resolves when scanning stops successfully.
|
|
234
|
+
*/
|
|
235
|
+
async stopScan() {
|
|
236
|
+
if (!this.noble) {
|
|
425
237
|
return;
|
|
426
238
|
}
|
|
427
239
|
this.noble.removeAllListeners('discover');
|
|
428
|
-
this.noble.
|
|
240
|
+
await this.noble.stopScanningAsync();
|
|
429
241
|
}
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
const valid = parameterChecker.check({ msec }, {
|
|
445
|
-
msec: { required: true, type: 'integer', min: 0 },
|
|
446
|
-
}, true);
|
|
447
|
-
if (!valid) {
|
|
448
|
-
reject(new Error(parameterChecker.error.message));
|
|
449
|
-
return;
|
|
450
|
-
}
|
|
451
|
-
// Set a timer
|
|
452
|
-
setTimeout(resolve, msec);
|
|
453
|
-
});
|
|
242
|
+
/**
|
|
243
|
+
* Waits for the specified time.
|
|
244
|
+
*
|
|
245
|
+
* @param {number} msec - The time to wait in milliseconds.
|
|
246
|
+
* @returns {Promise<void>} - Resolves after the specified time.
|
|
247
|
+
*/
|
|
248
|
+
async wait(msec) {
|
|
249
|
+
const valid = parameterChecker.check({ msec }, {
|
|
250
|
+
msec: { required: true, type: 'integer', min: 0 },
|
|
251
|
+
}, true);
|
|
252
|
+
if (!valid) {
|
|
253
|
+
throw new Error(parameterChecker.error.message);
|
|
254
|
+
}
|
|
255
|
+
return new Promise(resolve => setTimeout(resolve, msec));
|
|
454
256
|
}
|
|
455
257
|
}
|
|
456
258
|
export { SwitchbotDevice };
|
package/dist/switchbot.js.map
CHANGED
|
@@ -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.
|
|
4
|
+
"version": "2.5.0-beta.3",
|
|
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",
|