node-switchbot 3.4.2-beta.2 → 3.4.2-beta.4
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/device/wohumi.d.ts +22 -11
- package/dist/device/wohumi.d.ts.map +1 -1
- package/dist/device/wohumi.js +45 -20
- package/dist/device/wohumi.js.map +1 -1
- package/dist/settings.d.ts +12 -28
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +24 -22
- package/dist/settings.js.map +1 -1
- package/dist/switchbot-openapi.d.ts +1 -1
- package/dist/switchbot-openapi.d.ts.map +1 -1
- package/dist/switchbot-openapi.js +11 -8
- package/dist/switchbot-openapi.js.map +1 -1
- package/dist/test/settings.test.js +6 -6
- package/dist/test/settings.test.js.map +1 -1
- package/dist/test/wohumi.test.js +25 -73
- package/dist/test/wohumi.test.js.map +1 -1
- package/package.json +1 -1
package/dist/device/wohumi.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { SwitchbotDevice } from '../device.js';
|
|
|
7
7
|
* @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/tree/latest/devicetypes
|
|
8
8
|
*/
|
|
9
9
|
export declare class WoHumi extends SwitchbotDevice {
|
|
10
|
+
constructor(peripheral: NobleTypes['peripheral'], noble: NobleTypes['noble']);
|
|
10
11
|
/**
|
|
11
12
|
* Parses the service data for WoHumi.
|
|
12
13
|
* @param {Buffer} serviceData - The service data buffer.
|
|
@@ -14,18 +15,12 @@ export declare class WoHumi extends SwitchbotDevice {
|
|
|
14
15
|
* @returns {Promise<humidifierServiceData | null>} - Parsed service data or null if invalid.
|
|
15
16
|
*/
|
|
16
17
|
static parseServiceData(serviceData: Buffer, emitLog: (level: string, message: string) => void): Promise<humidifierServiceData | null>;
|
|
17
|
-
constructor(peripheral: NobleTypes['peripheral'], noble: NobleTypes['noble']);
|
|
18
18
|
/**
|
|
19
19
|
* Sends a command to the humidifier.
|
|
20
|
-
* @param {
|
|
21
|
-
* @returns {Promise<void>}
|
|
22
|
-
*/
|
|
23
|
-
operateHumi(bytes: number[]): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Presses the humidifier button.
|
|
20
|
+
* @param {Buffer} reqBuf - The command buffer.
|
|
26
21
|
* @returns {Promise<void>}
|
|
27
22
|
*/
|
|
28
|
-
|
|
23
|
+
protected operateHumi(reqBuf: Buffer): Promise<void>;
|
|
29
24
|
/**
|
|
30
25
|
* Turns on the humidifier.
|
|
31
26
|
* @returns {Promise<void>}
|
|
@@ -36,15 +31,31 @@ export declare class WoHumi extends SwitchbotDevice {
|
|
|
36
31
|
* @returns {Promise<void>}
|
|
37
32
|
*/
|
|
38
33
|
turnOff(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Increases the humidifier setting.
|
|
36
|
+
* @returns {Promise<void>}
|
|
37
|
+
*/
|
|
38
|
+
increase(): Promise<void>;
|
|
39
39
|
/**
|
|
40
40
|
* Decreases the humidifier setting.
|
|
41
41
|
* @returns {Promise<void>}
|
|
42
42
|
*/
|
|
43
|
-
|
|
43
|
+
decrease(): Promise<void>;
|
|
44
44
|
/**
|
|
45
|
-
*
|
|
45
|
+
* Sets the humidifier to auto mode.
|
|
46
|
+
* @returns {Promise<void>}
|
|
47
|
+
*/
|
|
48
|
+
setAutoMode(): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Sets the humidifier to manual mode.
|
|
51
|
+
* @returns {Promise<void>}
|
|
52
|
+
*/
|
|
53
|
+
setManualMode(): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Sets the humidifier level.
|
|
56
|
+
* @param {number} level - The level to set (0-100).
|
|
46
57
|
* @returns {Promise<void>}
|
|
47
58
|
*/
|
|
48
|
-
|
|
59
|
+
percentage(level: number): Promise<void>;
|
|
49
60
|
}
|
|
50
61
|
//# sourceMappingURL=wohumi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wohumi.d.ts","sourceRoot":"","sources":["../../src/device/wohumi.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"wohumi.d.ts","sourceRoot":"","sources":["../../src/device/wohumi.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAW9C;;;GAGG;AACH,qBAAa,MAAO,SAAQ,eAAe;gBAC7B,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;IAI5E;;;;;OAKG;WACU,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAChD,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IA2BxC;;;;OAIG;cACa,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1D;;;OAGG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;;OAGG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC;;;OAGG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzC;;;OAGG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C;;;;OAIG;IACU,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOtD"}
|
package/dist/device/wohumi.js
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
2
|
import { SwitchbotDevice } from '../device.js';
|
|
3
3
|
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
|
|
4
|
+
const HUMIDIFIER_COMMAND_HEADER = '5701';
|
|
5
|
+
const TURN_ON_KEY = `${HUMIDIFIER_COMMAND_HEADER}0101`;
|
|
6
|
+
const TURN_OFF_KEY = `${HUMIDIFIER_COMMAND_HEADER}0102`;
|
|
7
|
+
const INCREASE_KEY = `${HUMIDIFIER_COMMAND_HEADER}0103`;
|
|
8
|
+
const DECREASE_KEY = `${HUMIDIFIER_COMMAND_HEADER}0104`;
|
|
9
|
+
const SET_AUTO_MODE_KEY = `${HUMIDIFIER_COMMAND_HEADER}0105`;
|
|
10
|
+
const SET_MANUAL_MODE_KEY = `${HUMIDIFIER_COMMAND_HEADER}0106`;
|
|
4
11
|
/**
|
|
5
12
|
* Class representing a WoHumi device.
|
|
6
13
|
* @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/tree/latest/devicetypes
|
|
7
14
|
*/
|
|
8
15
|
export class WoHumi extends SwitchbotDevice {
|
|
16
|
+
constructor(peripheral, noble) {
|
|
17
|
+
super(peripheral, noble);
|
|
18
|
+
}
|
|
9
19
|
/**
|
|
10
20
|
* Parses the service data for WoHumi.
|
|
11
21
|
* @param {Buffer} serviceData - The service data buffer.
|
|
@@ -34,56 +44,71 @@ export class WoHumi extends SwitchbotDevice {
|
|
|
34
44
|
};
|
|
35
45
|
return data;
|
|
36
46
|
}
|
|
37
|
-
constructor(peripheral, noble) {
|
|
38
|
-
super(peripheral, noble);
|
|
39
|
-
}
|
|
40
47
|
/**
|
|
41
48
|
* Sends a command to the humidifier.
|
|
42
|
-
* @param {
|
|
49
|
+
* @param {Buffer} reqBuf - The command buffer.
|
|
43
50
|
* @returns {Promise<void>}
|
|
44
51
|
*/
|
|
45
|
-
async operateHumi(
|
|
46
|
-
const reqBuf = Buffer.from(bytes);
|
|
52
|
+
async operateHumi(reqBuf) {
|
|
47
53
|
const resBuf = await this.command(reqBuf);
|
|
48
54
|
const code = resBuf.readUInt8(0);
|
|
49
55
|
if (resBuf.length !== 3 || (code !== 0x01 && code !== 0x05)) {
|
|
50
56
|
throw new Error(`The device returned an error: 0x${resBuf.toString('hex')}`);
|
|
51
57
|
}
|
|
52
58
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Presses the humidifier button.
|
|
55
|
-
* @returns {Promise<void>}
|
|
56
|
-
*/
|
|
57
|
-
async press() {
|
|
58
|
-
await this.operateHumi([0x57, 0x01, 0x00]);
|
|
59
|
-
}
|
|
60
59
|
/**
|
|
61
60
|
* Turns on the humidifier.
|
|
62
61
|
* @returns {Promise<void>}
|
|
63
62
|
*/
|
|
64
63
|
async turnOn() {
|
|
65
|
-
await this.operateHumi(
|
|
64
|
+
await this.operateHumi(Buffer.from(TURN_ON_KEY, 'hex'));
|
|
66
65
|
}
|
|
67
66
|
/**
|
|
68
67
|
* Turns off the humidifier.
|
|
69
68
|
* @returns {Promise<void>}
|
|
70
69
|
*/
|
|
71
70
|
async turnOff() {
|
|
72
|
-
await this.operateHumi(
|
|
71
|
+
await this.operateHumi(Buffer.from(TURN_OFF_KEY, 'hex'));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Increases the humidifier setting.
|
|
75
|
+
* @returns {Promise<void>}
|
|
76
|
+
*/
|
|
77
|
+
async increase() {
|
|
78
|
+
await this.operateHumi(Buffer.from(INCREASE_KEY, 'hex'));
|
|
73
79
|
}
|
|
74
80
|
/**
|
|
75
81
|
* Decreases the humidifier setting.
|
|
76
82
|
* @returns {Promise<void>}
|
|
77
83
|
*/
|
|
78
|
-
async
|
|
79
|
-
await this.operateHumi(
|
|
84
|
+
async decrease() {
|
|
85
|
+
await this.operateHumi(Buffer.from(DECREASE_KEY, 'hex'));
|
|
80
86
|
}
|
|
81
87
|
/**
|
|
82
|
-
*
|
|
88
|
+
* Sets the humidifier to auto mode.
|
|
89
|
+
* @returns {Promise<void>}
|
|
90
|
+
*/
|
|
91
|
+
async setAutoMode() {
|
|
92
|
+
await this.operateHumi(Buffer.from(SET_AUTO_MODE_KEY, 'hex'));
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Sets the humidifier to manual mode.
|
|
96
|
+
* @returns {Promise<void>}
|
|
97
|
+
*/
|
|
98
|
+
async setManualMode() {
|
|
99
|
+
await this.operateHumi(Buffer.from(SET_MANUAL_MODE_KEY, 'hex'));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Sets the humidifier level.
|
|
103
|
+
* @param {number} level - The level to set (0-100).
|
|
83
104
|
* @returns {Promise<void>}
|
|
84
105
|
*/
|
|
85
|
-
async
|
|
86
|
-
|
|
106
|
+
async percentage(level) {
|
|
107
|
+
if (level < 0 || level > 100) {
|
|
108
|
+
throw new Error('Level must be between 0 and 100');
|
|
109
|
+
}
|
|
110
|
+
const levelKey = `${HUMIDIFIER_COMMAND_HEADER}0107${level.toString(16).padStart(2, '0')}`;
|
|
111
|
+
await this.operateHumi(Buffer.from(levelKey, 'hex'));
|
|
87
112
|
}
|
|
88
113
|
}
|
|
89
114
|
//# sourceMappingURL=wohumi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wohumi.js","sourceRoot":"","sources":["../../src/device/wohumi.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G;;;GAGG;AACH,MAAM,OAAO,MAAO,SAAQ,eAAe;IACzC;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,WAAmB,EACnB,OAAiD;QAEjD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,YAAY,EAAE,6CAA6C,WAAW,CAAC,MAAM,SAAS,CAAC,CAAA;YAC/F,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAEtC,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA,CAAC,SAAS;QAChD,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA,CAAC,WAAW;QACnD,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,CAAA,CAAC,yCAAyC;QAC/E,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAA;QAEzH,MAAM,IAAI,GAA0B;YAClC,KAAK,EAAE,iBAAiB,CAAC,UAAU;YACnC,SAAS,EAAE,qBAAqB,CAAC,UAAU;YAC3C,iBAAiB,EAAE,6BAA6B,CAAC,UAAU;YAC3D,OAAO;YACP,QAAQ;YACR,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;YACrC,QAAQ;SACT,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"wohumi.js","sourceRoot":"","sources":["../../src/device/wohumi.ts"],"names":[],"mappings":"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"}
|
package/dist/settings.d.ts
CHANGED
|
@@ -1,32 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* This is the updateWebhook url used to access SwitchBot API
|
|
16
|
-
*/
|
|
17
|
-
export declare const setupWebhook = "https://api.switch-bot.com/v1.1/webhook/setupWebhook";
|
|
18
|
-
/**
|
|
19
|
-
* This is the updateWebhook url used to access SwitchBot API
|
|
20
|
-
*/
|
|
21
|
-
export declare const queryWebhook = "https://api.switch-bot.com/v1.1/webhook/queryWebhook";
|
|
22
|
-
/**
|
|
23
|
-
* This is the updateWebhook url used to access SwitchBot API
|
|
24
|
-
*/
|
|
25
|
-
export declare const updateWebhook = "https://api.switch-bot.com/v1.1/webhook/updateWebhook";
|
|
26
|
-
/**
|
|
27
|
-
* This is the deleteWebhook url used to access SwitchBot API
|
|
28
|
-
*/
|
|
29
|
-
export declare const deleteWebhook = "https://api.switch-bot.com/v1.1/webhook/deleteWebhook";
|
|
2
|
+
* Updates the base URL for the SwitchBot API endpoints.
|
|
3
|
+
* @param {string} newBaseURL - The new base URL to use.
|
|
4
|
+
*/
|
|
5
|
+
export declare function updateBaseURL(newBaseURL: string): void;
|
|
6
|
+
export declare const urls: {
|
|
7
|
+
readonly baseURL: string;
|
|
8
|
+
readonly devicesURL: string;
|
|
9
|
+
readonly setupWebhook: string;
|
|
10
|
+
readonly queryWebhook: string;
|
|
11
|
+
readonly updateWebhook: string;
|
|
12
|
+
readonly deleteWebhook: string;
|
|
13
|
+
};
|
|
30
14
|
/**
|
|
31
15
|
* constants used to access SwitchBot BLE API
|
|
32
16
|
*/
|
package/dist/settings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAOtD;AAED,eAAO,MAAM,IAAI;;;;;;;CAOhB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,qCAAqC,CAAA;AACnE,eAAO,MAAM,eAAe,qCAAqC,CAAA;AACjE,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAClE,eAAO,MAAM,gBAAgB,SAAS,CAAA;AAEtC,eAAO,MAAM,iBAAiB,OAAO,CAAA;AACrC,eAAO,MAAM,kBAAkB,OAAO,CAAA;AACtC,eAAO,MAAM,oBAAoB,OAAO,CAAA;AAExC,eAAO,MAAM,0BAA0B,OAAO,CAAA;AAC9C,eAAO,MAAM,yBAAyB,SAAK,CAAA;AAE3C,oBAAY,sBAAsB;IAChC,QAAQ,aAAa;IACrB,SAAS,eAAe;IACxB,MAAM,qBAAqB;IAC3B,iBAAiB,qBAAqB;IACtC,IAAI,qBAAqB;IACzB,oBAAoB,uBAAuB;IAC3C,qBAAqB,WAAW;CACjC;AAED,oBAAY,mBAAmB;IAC7B,QAAQ,aAAa;IACrB,SAAS,eAAe;IACxB,MAAM,mBAAmB;IACzB,iBAAiB,mBAAmB;IACpC,IAAI,mBAAmB;IACvB,oBAAoB,uBAAuB;IAC3C,qBAAqB,WAAW;CACjC"}
|
package/dist/settings.js
CHANGED
|
@@ -3,30 +3,32 @@
|
|
|
3
3
|
*
|
|
4
4
|
* © 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
|
|
5
5
|
*/
|
|
6
|
+
let baseURL = 'https://api.switch-bot.com';
|
|
7
|
+
let devicesURL = `${baseURL}/v1.1/devices`;
|
|
8
|
+
let setupWebhook = `${baseURL}/v1.1/webhook/setupWebhook`;
|
|
9
|
+
let queryWebhook = `${baseURL}/v1.1/webhook/queryWebhook`;
|
|
10
|
+
let updateWebhook = `${baseURL}/v1.1/webhook/updateWebhook`;
|
|
11
|
+
let deleteWebhook = `${baseURL}/v1.1/webhook/deleteWebhook`;
|
|
6
12
|
/**
|
|
7
|
-
*
|
|
13
|
+
* Updates the base URL for the SwitchBot API endpoints.
|
|
14
|
+
* @param {string} newBaseURL - The new base URL to use.
|
|
8
15
|
*/
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
export const updateWebhook = 'https://api.switch-bot.com/v1.1/webhook/updateWebhook';
|
|
26
|
-
/**
|
|
27
|
-
* This is the deleteWebhook url used to access SwitchBot API
|
|
28
|
-
*/
|
|
29
|
-
export const deleteWebhook = 'https://api.switch-bot.com/v1.1/webhook/deleteWebhook';
|
|
16
|
+
export function updateBaseURL(newBaseURL) {
|
|
17
|
+
baseURL = newBaseURL;
|
|
18
|
+
devicesURL = `${baseURL}/v1.1/devices`;
|
|
19
|
+
setupWebhook = `${baseURL}/v1.1/webhook/setupWebhook`;
|
|
20
|
+
queryWebhook = `${baseURL}/v1.1/webhook/queryWebhook`;
|
|
21
|
+
updateWebhook = `${baseURL}/v1.1/webhook/updateWebhook`;
|
|
22
|
+
deleteWebhook = `${baseURL}/v1.1/webhook/deleteWebhook`;
|
|
23
|
+
}
|
|
24
|
+
export const urls = {
|
|
25
|
+
get baseURL() { return baseURL; },
|
|
26
|
+
get devicesURL() { return devicesURL; },
|
|
27
|
+
get setupWebhook() { return setupWebhook; },
|
|
28
|
+
get queryWebhook() { return queryWebhook; },
|
|
29
|
+
get updateWebhook() { return updateWebhook; },
|
|
30
|
+
get deleteWebhook() { return deleteWebhook; },
|
|
31
|
+
};
|
|
30
32
|
/**
|
|
31
33
|
* constants used to access SwitchBot BLE API
|
|
32
34
|
*/
|
package/dist/settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,IAAI,OAAO,GAAG,4BAA4B,CAAA;AAE1C,IAAI,UAAU,GAAG,GAAG,OAAO,eAAe,CAAA;AAC1C,IAAI,YAAY,GAAG,GAAG,OAAO,4BAA4B,CAAA;AACzD,IAAI,YAAY,GAAG,GAAG,OAAO,4BAA4B,CAAA;AACzD,IAAI,aAAa,GAAG,GAAG,OAAO,6BAA6B,CAAA;AAC3D,IAAI,aAAa,GAAG,GAAG,OAAO,6BAA6B,CAAA;AAE3D;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,OAAO,GAAG,UAAU,CAAA;IACpB,UAAU,GAAG,GAAG,OAAO,eAAe,CAAA;IACtC,YAAY,GAAG,GAAG,OAAO,4BAA4B,CAAA;IACrD,YAAY,GAAG,GAAG,OAAO,4BAA4B,CAAA;IACrD,aAAa,GAAG,GAAG,OAAO,6BAA6B,CAAA;IACvD,aAAa,GAAG,GAAG,OAAO,6BAA6B,CAAA;AACzD,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,IAAI,OAAO,KAAK,OAAO,OAAO,CAAA,CAAC,CAAC;IAChC,IAAI,UAAU,KAAK,OAAO,UAAU,CAAA,CAAC,CAAC;IACtC,IAAI,YAAY,KAAK,OAAO,YAAY,CAAA,CAAC,CAAC;IAC1C,IAAI,YAAY,KAAK,OAAO,YAAY,CAAA,CAAC,CAAC;IAC1C,IAAI,aAAa,KAAK,OAAO,aAAa,CAAA,CAAC,CAAC;IAC5C,IAAI,aAAa,KAAK,OAAO,aAAa,CAAA,CAAC,CAAC;CAC7C,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,kCAAkC,CAAA;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,kCAAkC,CAAA;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,kCAAkC,CAAA;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAA;AACtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AAExC,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAA;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAE3C,MAAM,CAAN,IAAY,sBAQX;AARD,WAAY,sBAAsB;IAChC,+CAAqB,CAAA;IACrB,kDAAwB,CAAA;IACxB,qDAA2B,CAAA;IAC3B,gEAAsC,CAAA;IACtC,mDAAyB,CAAA;IACzB,qEAA2C,CAAA;IAC3C,0DAAgC,CAAA;AAClC,CAAC,EARW,sBAAsB,KAAtB,sBAAsB,QAQjC;AAED,MAAM,CAAN,IAAY,mBAQX;AARD,WAAY,mBAAmB;IAC7B,4CAAqB,CAAA;IACrB,+CAAwB,CAAA;IACxB,gDAAyB,CAAA;IACzB,2DAAoC,CAAA;IACpC,8CAAuB,CAAA;IACvB,kEAA2C,CAAA;IAC3C,uDAAgC,CAAA;AAClC,CAAC,EARW,mBAAmB,KAAnB,mBAAmB,QAQ9B"}
|
|
@@ -49,7 +49,7 @@ export declare class SwitchBotOpenAPI extends EventEmitter {
|
|
|
49
49
|
* @param token - The API token used for authentication.
|
|
50
50
|
* @param secret - The secret key used for signing requests.
|
|
51
51
|
*/
|
|
52
|
-
constructor(token: string, secret: string);
|
|
52
|
+
constructor(token: string, secret: string, hostname?: string);
|
|
53
53
|
/**
|
|
54
54
|
* Emits a log event with the specified log level and message.
|
|
55
55
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switchbot-openapi.d.ts","sourceRoot":"","sources":["../src/switchbot-openapi.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,MAAM,EAAkB,MAAM,WAAW,CAAA;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAKhF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAO1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;IAEvB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAO;IAE3C;;;;;OAKG;gBACS,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"switchbot-openapi.d.ts","sourceRoot":"","sources":["../src/switchbot-openapi.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,MAAM,EAAkB,MAAM,WAAW,CAAA;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAKhF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAO1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;IAEvB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAO;IAE3C;;;;;OAKG;gBACS,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAW5D;;;;;OAKG;YACW,OAAO;IAIrB;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAatE;;;;;;;;;OASG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,MAAkB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAAC,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,CAAA;KAAE,CAAC;IAqB/L;;;;;;OAMG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,YAAY,CAAC;QAAC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAA;KAAE,CAAC;IAgB3H;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe,CAiBtB;IAED;;;;;;;;;;;;;OAaG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6F9C;;;;;;;OAOG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBhD"}
|
|
@@ -3,7 +3,7 @@ import crypto, { randomUUID } from 'node:crypto';
|
|
|
3
3
|
import { EventEmitter } from 'node:events';
|
|
4
4
|
import { createServer } from 'node:http';
|
|
5
5
|
import { request } from 'undici';
|
|
6
|
-
import {
|
|
6
|
+
import { updateBaseURL, urls } from './settings.js';
|
|
7
7
|
/**
|
|
8
8
|
* The `SwitchBotOpenAPI` class provides methods to interact with the SwitchBot OpenAPI.
|
|
9
9
|
* It allows you to retrieve device information, control devices, and manage webhooks.
|
|
@@ -50,11 +50,14 @@ export class SwitchBotOpenAPI extends EventEmitter {
|
|
|
50
50
|
* @param token - The API token used for authentication.
|
|
51
51
|
* @param secret - The secret key used for signing requests.
|
|
52
52
|
*/
|
|
53
|
-
constructor(token, secret) {
|
|
53
|
+
constructor(token, secret, hostname) {
|
|
54
54
|
super();
|
|
55
55
|
this.token = token;
|
|
56
56
|
this.secret = secret;
|
|
57
|
-
this.baseURL = baseURL;
|
|
57
|
+
this.baseURL = urls.baseURL;
|
|
58
|
+
if (hostname) {
|
|
59
|
+
updateBaseURL(hostname);
|
|
60
|
+
}
|
|
58
61
|
}
|
|
59
62
|
/**
|
|
60
63
|
* Emits a log event with the specified log level and message.
|
|
@@ -73,7 +76,7 @@ export class SwitchBotOpenAPI extends EventEmitter {
|
|
|
73
76
|
*/
|
|
74
77
|
async getDevices() {
|
|
75
78
|
try {
|
|
76
|
-
const { body, statusCode } = await request(devicesURL, { headers: this.generateHeaders() });
|
|
79
|
+
const { body, statusCode } = await request(urls.devicesURL, { headers: this.generateHeaders() });
|
|
77
80
|
const response = await body.json();
|
|
78
81
|
this.emitLog('debug', `Got devices: ${JSON.stringify(response)}`);
|
|
79
82
|
this.emitLog('debug', `statusCode: ${statusCode}`);
|
|
@@ -216,7 +219,7 @@ export class SwitchBotOpenAPI extends EventEmitter {
|
|
|
216
219
|
return;
|
|
217
220
|
}
|
|
218
221
|
try {
|
|
219
|
-
const { body, statusCode } = await request(setupWebhook, {
|
|
222
|
+
const { body, statusCode } = await request(urls.setupWebhook, {
|
|
220
223
|
method: 'POST',
|
|
221
224
|
headers: this.generateHeaders(),
|
|
222
225
|
body: JSON.stringify({
|
|
@@ -235,7 +238,7 @@ export class SwitchBotOpenAPI extends EventEmitter {
|
|
|
235
238
|
await this.emitLog('error', `Failed to configure webhook, Error: ${e.message ?? e}`);
|
|
236
239
|
}
|
|
237
240
|
try {
|
|
238
|
-
const { body, statusCode } = await request(updateWebhook, {
|
|
241
|
+
const { body, statusCode } = await request(urls.updateWebhook, {
|
|
239
242
|
method: 'POST',
|
|
240
243
|
headers: this.generateHeaders(),
|
|
241
244
|
body: JSON.stringify({
|
|
@@ -256,7 +259,7 @@ export class SwitchBotOpenAPI extends EventEmitter {
|
|
|
256
259
|
await this.emitLog('error', `Failed to update webhook, Error: ${e.message ?? e}`);
|
|
257
260
|
}
|
|
258
261
|
try {
|
|
259
|
-
const { body, statusCode } = await request(queryWebhook, {
|
|
262
|
+
const { body, statusCode } = await request(urls.queryWebhook, {
|
|
260
263
|
method: 'POST',
|
|
261
264
|
headers: this.generateHeaders(),
|
|
262
265
|
body: JSON.stringify({
|
|
@@ -286,7 +289,7 @@ export class SwitchBotOpenAPI extends EventEmitter {
|
|
|
286
289
|
*/
|
|
287
290
|
async deleteWebhook(url) {
|
|
288
291
|
try {
|
|
289
|
-
const { body, statusCode } = await request(deleteWebhook, {
|
|
292
|
+
const { body, statusCode } = await request(urls.deleteWebhook, {
|
|
290
293
|
method: 'POST',
|
|
291
294
|
headers: this.generateHeaders(),
|
|
292
295
|
body: JSON.stringify({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switchbot-openapi.js","sourceRoot":"","sources":["../src/switchbot-openapi.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"switchbot-openapi.js","sourceRoot":"","sources":["../src/switchbot-openapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { CHAR_UUID_DEVICE, CHAR_UUID_NOTIFY, CHAR_UUID_WRITE, COMMAND_TIMEOUT_MSEC,
|
|
2
|
+
import { CHAR_UUID_DEVICE, CHAR_UUID_NOTIFY, CHAR_UUID_WRITE, COMMAND_TIMEOUT_MSEC, READ_TIMEOUT_MSEC, SERV_UUID_PRIMARY, urls, WoSmartLockCommands, WoSmartLockProCommands, WRITE_TIMEOUT_MSEC, } from '../settings.js';
|
|
3
3
|
describe('switchBot API Settings', () => {
|
|
4
4
|
it('should have correct Devices URL', () => {
|
|
5
|
-
expect(devicesURL).toBe('https://api.switch-bot.com/v1.1/devices');
|
|
5
|
+
expect(urls.devicesURL).toBe('https://api.switch-bot.com/v1.1/devices');
|
|
6
6
|
});
|
|
7
7
|
it('should have correct setupWebhook URL', () => {
|
|
8
|
-
expect(setupWebhook).toBe('https://api.switch-bot.com/v1.1/webhook/setupWebhook');
|
|
8
|
+
expect(urls.setupWebhook).toBe('https://api.switch-bot.com/v1.1/webhook/setupWebhook');
|
|
9
9
|
});
|
|
10
10
|
it('should have correct queryWebhook URL', () => {
|
|
11
|
-
expect(queryWebhook).toBe('https://api.switch-bot.com/v1.1/webhook/queryWebhook');
|
|
11
|
+
expect(urls.queryWebhook).toBe('https://api.switch-bot.com/v1.1/webhook/queryWebhook');
|
|
12
12
|
});
|
|
13
13
|
it('should have correct updateWebhook URL', () => {
|
|
14
|
-
expect(updateWebhook).toBe('https://api.switch-bot.com/v1.1/webhook/updateWebhook');
|
|
14
|
+
expect(urls.updateWebhook).toBe('https://api.switch-bot.com/v1.1/webhook/updateWebhook');
|
|
15
15
|
});
|
|
16
16
|
it('should have correct deleteWebhook URL', () => {
|
|
17
|
-
expect(deleteWebhook).toBe('https://api.switch-bot.com/v1.1/webhook/deleteWebhook');
|
|
17
|
+
expect(urls.deleteWebhook).toBe('https://api.switch-bot.com/v1.1/webhook/deleteWebhook');
|
|
18
18
|
});
|
|
19
19
|
it('should have correct BLE API constants', () => {
|
|
20
20
|
expect(SERV_UUID_PRIMARY).toBe('cba20d00224d11e69fb80002a5d5c51b');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.test.js","sourceRoot":"","sources":["../../src/test/settings.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"settings.test.js","sourceRoot":"","sources":["../../src/test/settings.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,IAAI,EACJ,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AAEvB,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;IACxF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;IACxF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;IAC1F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;IAC1F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;QAClE,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;QAChE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;QACjE,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACxD,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC3D,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC9D,MAAM,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QACzE,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC5D,MAAM,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QAC9E,MAAM,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACrD,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACxD,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACzD,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACpE,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACvD,MAAM,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QAC3E,MAAM,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/test/wohumi.test.js
CHANGED
|
@@ -1,81 +1,33 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
|
-
import { describe, expect, it
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
import { SwitchbotDevice } from '../device.js';
|
|
3
4
|
import { WoHumi } from '../device/wohumi.js';
|
|
4
|
-
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
|
|
5
5
|
describe('woHumi', () => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
modelFriendlyName: SwitchBotBLEModelFriendlyName.Humidifier,
|
|
15
|
-
onState: true,
|
|
16
|
-
autoMode: true,
|
|
17
|
-
percentage: 0,
|
|
18
|
-
humidity: 0,
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
it('should return null for invalid service data length', async () => {
|
|
22
|
-
const serviceData = Buffer.from([0x00, 0x80, 0x00]);
|
|
23
|
-
const result = await WoHumi.parseServiceData(serviceData, emitLog);
|
|
24
|
-
expect(result).toBeNull();
|
|
25
|
-
expect(emitLog).toHaveBeenCalledWith('error', '[parseServiceDataForWoHumi] Buffer length 3 !== 8!');
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
describe('operateHumi', () => {
|
|
29
|
-
it('should throw an error if the device returns an error', async () => {
|
|
30
|
-
const peripheral = {};
|
|
31
|
-
const wohumi = new WoHumi(peripheral, emitLog);
|
|
32
|
-
vi.spyOn(wohumi, 'command').mockResolvedValue(Buffer.from([0x00, 0x00, 0x00]));
|
|
33
|
-
await expect(wohumi.operateHumi([0x57, 0x01, 0x00])).rejects.toThrow('The device returned an error: 0x000000');
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
describe('press', () => {
|
|
37
|
-
it('should call operateHumi with correct bytes', async () => {
|
|
38
|
-
const peripheral = {};
|
|
39
|
-
const wohumi = new WoHumi(peripheral, emitLog);
|
|
40
|
-
const operateHumiSpy = vi.spyOn(wohumi, 'operateHumi').mockResolvedValue();
|
|
41
|
-
await wohumi.press();
|
|
42
|
-
expect(operateHumiSpy).toHaveBeenCalledWith([0x57, 0x01, 0x00]);
|
|
43
|
-
});
|
|
6
|
+
let wohumi;
|
|
7
|
+
let mockPeripheral;
|
|
8
|
+
let mockNoble;
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
mockPeripheral = {};
|
|
11
|
+
mockNoble = {};
|
|
12
|
+
wohumi = new WoHumi(mockPeripheral, mockNoble);
|
|
13
|
+
jest.spyOn(SwitchbotDevice.prototype, 'command').mockResolvedValue(Buffer.from([0x01, 0x00, 0x00]));
|
|
44
14
|
});
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const peripheral = {};
|
|
48
|
-
const wohumi = new WoHumi(peripheral, emitLog);
|
|
49
|
-
const operateHumiSpy = vi.spyOn(wohumi, 'operateHumi').mockResolvedValue();
|
|
50
|
-
await wohumi.turnOn();
|
|
51
|
-
expect(operateHumiSpy).toHaveBeenCalledWith([0x57, 0x01, 0x01]);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
describe('turnOff', () => {
|
|
55
|
-
it('should call operateHumi with correct bytes', async () => {
|
|
56
|
-
const peripheral = {};
|
|
57
|
-
const wohumi = new WoHumi(peripheral, emitLog);
|
|
58
|
-
const operateHumiSpy = vi.spyOn(wohumi, 'operateHumi').mockResolvedValue();
|
|
59
|
-
await wohumi.turnOff();
|
|
60
|
-
expect(operateHumiSpy).toHaveBeenCalledWith([0x57, 0x01, 0x02]);
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
describe('down', () => {
|
|
64
|
-
it('should call operateHumi with correct bytes', async () => {
|
|
65
|
-
const peripheral = {};
|
|
66
|
-
const wohumi = new WoHumi(peripheral, emitLog);
|
|
67
|
-
const operateHumiSpy = vi.spyOn(wohumi, 'operateHumi').mockResolvedValue();
|
|
68
|
-
await wohumi.down();
|
|
69
|
-
expect(operateHumiSpy).toHaveBeenCalledWith([0x57, 0x01, 0x03]);
|
|
70
|
-
});
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
jest.restoreAllMocks();
|
|
71
17
|
});
|
|
72
|
-
describe('
|
|
73
|
-
it('should
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
await wohumi.
|
|
78
|
-
|
|
18
|
+
describe('percentage', () => {
|
|
19
|
+
it('should throw an error if level is less than 0', async () => {
|
|
20
|
+
await expect(wohumi.percentage(-1)).rejects.toThrow('Level must be between 0 and 100');
|
|
21
|
+
});
|
|
22
|
+
it('should throw an error if level is greater than 100', async () => {
|
|
23
|
+
await expect(wohumi.percentage(101)).rejects.toThrow('Level must be between 0 and 100');
|
|
24
|
+
});
|
|
25
|
+
it('should send the correct command for a valid level', async () => {
|
|
26
|
+
const level = 50;
|
|
27
|
+
const expectedCommand = Buffer.from(`57010107${level.toString(16).padStart(2, '0')}`, 'hex');
|
|
28
|
+
const operateHumiSpy = jest.spyOn(wohumi, 'operateHumi');
|
|
29
|
+
await wohumi.percentage(level);
|
|
30
|
+
expect(operateHumiSpy).toHaveBeenCalledWith(expectedCommand);
|
|
79
31
|
});
|
|
80
32
|
});
|
|
81
33
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wohumi.test.js","sourceRoot":"","sources":["../../src/test/wohumi.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"wohumi.test.js","sourceRoot":"","sources":["../../src/test/wohumi.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,IAAI,MAAc,CAAA;IAClB,IAAI,cAAwC,CAAA;IAC5C,IAAI,SAA8B,CAAA;IAElC,UAAU,CAAC,GAAG,EAAE;QACd,cAAc,GAAG,EAA8B,CAAA;QAC/C,SAAS,GAAG,EAAyB,CAAA;QACrC,MAAM,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QAC9C,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IACrG,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAA;QACxF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAA;QACzF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,KAAK,GAAG,EAAE,CAAA;YAChB,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAC5F,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAa,EAAE,aAAa,CAAC,CAAA;YAE/D,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAE9B,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-switchbot",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "3.4.2-beta.
|
|
4
|
+
"version": "3.4.2-beta.4",
|
|
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",
|