node-switchbot 2.3.1-beta.2 → 2.4.0-beta.0
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/CHANGELOG.md +8 -0
- package/dist/advertising.d.ts +137 -6
- package/dist/advertising.d.ts.map +1 -1
- package/dist/advertising.js +19 -17
- package/dist/advertising.js.map +1 -1
- package/dist/device/woblindtilt.d.ts +3 -25
- package/dist/device/woblindtilt.d.ts.map +1 -1
- package/dist/device/woblindtilt.js +31 -135
- package/dist/device/woblindtilt.js.map +1 -1
- package/dist/device/wobulb.d.ts +1 -0
- package/dist/device/wobulb.d.ts.map +1 -1
- package/dist/device/wobulb.js +31 -37
- package/dist/device/wobulb.js.map +1 -1
- package/dist/device/woceilinglight.d.ts +1 -0
- package/dist/device/woceilinglight.d.ts.map +1 -1
- package/dist/device/woceilinglight.js +51 -57
- package/dist/device/woceilinglight.js.map +1 -1
- package/dist/device/wocontact.d.ts +1 -0
- package/dist/device/wocontact.d.ts.map +1 -1
- package/dist/device/wocontact.js +7 -11
- package/dist/device/wocontact.js.map +1 -1
- package/dist/device/wocurtain.d.ts +13 -1
- package/dist/device/wocurtain.d.ts.map +1 -1
- package/dist/device/wocurtain.js +31 -46
- package/dist/device/wocurtain.js.map +1 -1
- package/dist/device/wohand.d.ts +1 -0
- package/dist/device/wohand.d.ts.map +1 -1
- package/dist/device/wohand.js +7 -6
- package/dist/device/wohand.js.map +1 -1
- package/dist/device/wohub2.d.ts +1 -0
- package/dist/device/wohub2.d.ts.map +1 -1
- package/dist/device/wohub2.js +1 -5
- package/dist/device/wohub2.js.map +1 -1
- package/dist/device/wohumi.d.ts +1 -0
- package/dist/device/wohumi.d.ts.map +1 -1
- package/dist/device/wohumi.js +7 -6
- package/dist/device/wohumi.js.map +1 -1
- package/dist/device/woiosensorth.d.ts +4 -1
- package/dist/device/woiosensorth.d.ts.map +1 -1
- package/dist/device/woiosensorth.js +3 -5
- package/dist/device/woiosensorth.js.map +1 -1
- package/dist/device/woplugmini.d.ts +1 -0
- package/dist/device/woplugmini.d.ts.map +1 -1
- package/dist/device/woplugmini.js +19 -19
- package/dist/device/woplugmini.js.map +1 -1
- package/dist/device/wopresence.d.ts +1 -0
- package/dist/device/wopresence.d.ts.map +1 -1
- package/dist/device/wopresence.js +10 -14
- package/dist/device/wopresence.js.map +1 -1
- package/dist/device/wosensorth.d.ts +7 -2
- package/dist/device/wosensorth.d.ts.map +1 -1
- package/dist/device/wosensorth.js +6 -6
- package/dist/device/wosensorth.js.map +1 -1
- package/dist/device/wosmartlock.d.ts +2 -1
- package/dist/device/wosmartlock.d.ts.map +1 -1
- package/dist/device/wosmartlock.js +42 -41
- package/dist/device/wosmartlock.js.map +1 -1
- package/dist/device/wosmartlockpro.d.ts +3 -2
- package/dist/device/wosmartlockpro.d.ts.map +1 -1
- package/dist/device/wosmartlockpro.js +41 -40
- package/dist/device/wosmartlockpro.js.map +1 -1
- package/dist/device/wostrip.d.ts +3 -2
- package/dist/device/wostrip.d.ts.map +1 -1
- package/dist/device/wostrip.js +29 -35
- package/dist/device/wostrip.js.map +1 -1
- package/dist/device.d.ts +12 -9
- package/dist/device.d.ts.map +1 -1
- package/dist/device.js +17 -14
- package/dist/device.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/parameter-checker.d.ts +3 -3
- package/dist/parameter-checker.d.ts.map +1 -1
- package/dist/parameter-checker.js +25 -67
- package/dist/parameter-checker.js.map +1 -1
- package/dist/switchbot.d.ts +4 -4
- package/dist/switchbot.d.ts.map +1 -1
- package/dist/switchbot.js +16 -18
- package/dist/switchbot.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/eslint.config.js +41 -76
- package/package.json +38 -38
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosensorth.d.ts","sourceRoot":"","sources":["../../src/device/wosensorth.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"wosensorth.d.ts","sourceRoot":"","sources":["../../src/device/wosensorth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAErG,qBAAa,UAAW,SAAQ,eAAe;IAC7C,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;;;IAoCnF,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;;;CAmCzF"}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/* Copyright(C) 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
|
|
2
|
-
*
|
|
3
|
-
* wosensorth.ts: Switchbot BLE API registration.
|
|
4
|
-
*/
|
|
5
1
|
import { SwitchbotDevice } from '../device.js';
|
|
6
2
|
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
|
|
7
3
|
export class WoSensorTH extends SwitchbotDevice {
|
|
@@ -27,7 +23,9 @@ export class WoSensorTH extends SwitchbotDevice {
|
|
|
27
23
|
c: temp_c,
|
|
28
24
|
f: temp_f,
|
|
29
25
|
},
|
|
30
|
-
|
|
26
|
+
celsius: temp_c,
|
|
27
|
+
fahrenheit: temp_f,
|
|
28
|
+
fahrenheit_mode: !!(byte5 & 0b10000000),
|
|
31
29
|
humidity: byte5 & 0b01111111,
|
|
32
30
|
battery: byte2 & 0b01111111,
|
|
33
31
|
};
|
|
@@ -55,7 +53,9 @@ export class WoSensorTH extends SwitchbotDevice {
|
|
|
55
53
|
c: temp_c,
|
|
56
54
|
f: temp_f,
|
|
57
55
|
},
|
|
58
|
-
|
|
56
|
+
celsius: temp_c,
|
|
57
|
+
fahrenheit: temp_f,
|
|
58
|
+
fahrenheit_mode: !!(byte5 & 0b10000000),
|
|
59
59
|
humidity: byte5 & 0b01111111,
|
|
60
60
|
battery: byte2 & 0b01111111,
|
|
61
61
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosensorth.js","sourceRoot":"","sources":["../../src/device/wosensorth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wosensorth.js","sourceRoot":"","sources":["../../src/device/wosensorth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type Noble from '@stoprocent/noble';
|
|
2
|
+
import { Buffer } from 'node:buffer';
|
|
1
3
|
import { SwitchbotDevice } from '../device.js';
|
|
2
4
|
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
|
|
3
|
-
import Noble from '@stoprocent/noble';
|
|
4
5
|
export declare class WoSmartLock extends SwitchbotDevice {
|
|
5
6
|
_iv: Buffer | null;
|
|
6
7
|
_key_id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosmartlock.d.ts","sourceRoot":"","sources":["../../src/device/wosmartlock.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"wosmartlock.d.ts","sourceRoot":"","sources":["../../src/device/wosmartlock.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAErG,qBAAa,WAAY,SAAQ,eAAe;IAC9C,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAE9B,MAAM,CAAC,iBAAiB,SAAa;IACrC,MAAM,CAAC,iBAAiB,SAAe;IACvC,MAAM,CAAC,cAAc,SAAmB;IACxC,MAAM,CAAC,yBAAyB,SAAmB;IACnD,MAAM,CAAC,YAAY,SAAmB;IACtC,MAAM,CAAC,4BAA4B,SAAuB;IAC1D,MAAM,CAAC,6BAA6B,SAAW;IAE/C,MAAM,CAAC,MAAM;;;;MAIZ;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM;IAYnC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM;IAqBjC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;gBA8CzG,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,KAAK;IAiB7D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAiB3C,MAAM;IAuBN,eAAe;IAuBf,IAAI;IAuBJ,IAAI;IAmBJ,QAAQ,CAAC,GAAG,EAAE,MAAM;IAKpB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAKf,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAQzB,iBAAiB,CAAC,GAAG,EAAE,MAAM;IAqBnC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAwBpE"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
* adapted off the work done by [pySwitchbot](https://github.com/Danielhiversen/pySwitchbot)
|
|
4
|
-
*/
|
|
1
|
+
import { Buffer } from 'node:buffer';
|
|
2
|
+
import * as Crypto from 'node:crypto';
|
|
5
3
|
import { SwitchbotDevice } from '../device.js';
|
|
6
4
|
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
|
|
7
|
-
import * as Crypto from 'crypto';
|
|
8
5
|
export class WoSmartLock extends SwitchbotDevice {
|
|
9
6
|
_iv;
|
|
10
7
|
_key_id;
|
|
@@ -46,7 +43,7 @@ export class WoSmartLock extends SwitchbotDevice {
|
|
|
46
43
|
return 'LOCKING_STOP';
|
|
47
44
|
case 0b1010000:
|
|
48
45
|
return 'UNLOCKING_STOP';
|
|
49
|
-
case 0b1100000: //Only EU lock type
|
|
46
|
+
case 0b1100000: // Only EU lock type
|
|
50
47
|
return 'NOT_FULLY_LOCKED';
|
|
51
48
|
default:
|
|
52
49
|
return 'UNKNOWN';
|
|
@@ -65,29 +62,29 @@ export class WoSmartLock extends SwitchbotDevice {
|
|
|
65
62
|
const byte15 = manufacturerData.readUInt8(9);
|
|
66
63
|
const byte16 = manufacturerData.readUInt8(10);
|
|
67
64
|
const battery = byte2 & 0b01111111; // %
|
|
68
|
-
const calibration = byte15 & 0b10000000
|
|
65
|
+
const calibration = !!(byte15 & 0b10000000);
|
|
69
66
|
const status = WoSmartLock.getLockStatus(byte15 & 0b01110000);
|
|
70
|
-
const update_from_secondary_lock = byte15 & 0b00001000
|
|
71
|
-
const door_open = byte15 & 0b00000100
|
|
72
|
-
const double_lock_mode = byte16 & 0b10000000
|
|
73
|
-
const unclosed_alarm = byte16 & 0b00100000
|
|
74
|
-
const unlocked_alarm = byte16 & 0b00010000
|
|
75
|
-
const auto_lock_paused = byte16 & 0b00000010
|
|
76
|
-
const night_latch = manufacturerData.length > 11 && manufacturerData.readUInt8(11) & 0b00000001
|
|
67
|
+
const update_from_secondary_lock = !!(byte15 & 0b00001000);
|
|
68
|
+
const door_open = !!(byte15 & 0b00000100);
|
|
69
|
+
const double_lock_mode = !!(byte16 & 0b10000000);
|
|
70
|
+
const unclosed_alarm = !!(byte16 & 0b00100000);
|
|
71
|
+
const unlocked_alarm = !!(byte16 & 0b00010000);
|
|
72
|
+
const auto_lock_paused = !!(byte16 & 0b00000010);
|
|
73
|
+
const night_latch = !!(manufacturerData.length > 11 && manufacturerData.readUInt8(11) & 0b00000001);
|
|
77
74
|
const data = {
|
|
78
75
|
model: SwitchBotBLEModel.Lock,
|
|
79
76
|
modelName: SwitchBotBLEModelName.Lock,
|
|
80
77
|
modelFriendlyName: SwitchBotBLEModelFriendlyName.Lock,
|
|
81
|
-
battery
|
|
82
|
-
calibration
|
|
83
|
-
status
|
|
84
|
-
update_from_secondary_lock
|
|
85
|
-
door_open
|
|
86
|
-
double_lock_mode
|
|
87
|
-
unclosed_alarm
|
|
88
|
-
unlocked_alarm
|
|
89
|
-
auto_lock_paused
|
|
90
|
-
night_latch
|
|
78
|
+
battery,
|
|
79
|
+
calibration,
|
|
80
|
+
status,
|
|
81
|
+
update_from_secondary_lock,
|
|
82
|
+
door_open,
|
|
83
|
+
double_lock_mode,
|
|
84
|
+
unclosed_alarm,
|
|
85
|
+
unlocked_alarm,
|
|
86
|
+
auto_lock_paused,
|
|
87
|
+
night_latch,
|
|
91
88
|
};
|
|
92
89
|
return data;
|
|
93
90
|
}
|
|
@@ -128,7 +125,8 @@ export class WoSmartLock extends SwitchbotDevice {
|
|
|
128
125
|
this._operateLock(WoSmartLock.COMMAND_UNLOCK)
|
|
129
126
|
.then((resBuf) => {
|
|
130
127
|
resolve(WoSmartLock.validateResponse(resBuf));
|
|
131
|
-
})
|
|
128
|
+
})
|
|
129
|
+
.catch((error) => {
|
|
132
130
|
reject(error);
|
|
133
131
|
});
|
|
134
132
|
});
|
|
@@ -149,7 +147,8 @@ export class WoSmartLock extends SwitchbotDevice {
|
|
|
149
147
|
this._operateLock(WoSmartLock.COMMAND_UNLOCK_NO_UNLATCH)
|
|
150
148
|
.then((resBuf) => {
|
|
151
149
|
resolve(WoSmartLock.validateResponse(resBuf));
|
|
152
|
-
})
|
|
150
|
+
})
|
|
151
|
+
.catch((error) => {
|
|
153
152
|
reject(error);
|
|
154
153
|
});
|
|
155
154
|
});
|
|
@@ -170,7 +169,8 @@ export class WoSmartLock extends SwitchbotDevice {
|
|
|
170
169
|
this._operateLock(WoSmartLock.COMMAND_LOCK)
|
|
171
170
|
.then((resBuf) => {
|
|
172
171
|
resolve(WoSmartLock.validateResponse(resBuf));
|
|
173
|
-
})
|
|
172
|
+
})
|
|
173
|
+
.catch((error) => {
|
|
174
174
|
reject(error);
|
|
175
175
|
});
|
|
176
176
|
});
|
|
@@ -189,16 +189,17 @@ export class WoSmartLock extends SwitchbotDevice {
|
|
|
189
189
|
info() {
|
|
190
190
|
return new Promise((resolve, reject) => {
|
|
191
191
|
this._operateLock(WoSmartLock.COMMAND_LOCK_INFO)
|
|
192
|
-
.then(resBuf => {
|
|
192
|
+
.then((resBuf) => {
|
|
193
193
|
const data = {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
194
|
+
calibration: Boolean(resBuf[1] & 0b10000000),
|
|
195
|
+
status: WoSmartLock.getLockStatus((resBuf[1] & 0b01110000)),
|
|
196
|
+
door_open: Boolean(resBuf[1] & 0b00000100),
|
|
197
|
+
unclosed_alarm: Boolean(resBuf[2] & 0b00100000),
|
|
198
|
+
unlocked_alarm: Boolean(resBuf[2] & 0b00010000),
|
|
199
199
|
};
|
|
200
200
|
resolve(data);
|
|
201
|
-
})
|
|
201
|
+
})
|
|
202
|
+
.catch((error) => {
|
|
202
203
|
reject(error);
|
|
203
204
|
});
|
|
204
205
|
});
|
|
@@ -228,27 +229,27 @@ export class WoSmartLock extends SwitchbotDevice {
|
|
|
228
229
|
return Buffer.concat([buf.subarray(0, 1), this._decrypt(buf.subarray(4))]);
|
|
229
230
|
}
|
|
230
231
|
else {
|
|
231
|
-
throw (new Error(
|
|
232
|
+
throw (new Error(`The device returned an error: 0x${buf.toString('hex')}`));
|
|
232
233
|
}
|
|
233
234
|
}
|
|
234
235
|
_operateLock(key, encrypt = true) {
|
|
235
|
-
//encrypted command
|
|
236
|
+
// encrypted command
|
|
236
237
|
if (encrypt) {
|
|
237
238
|
return this._encryptedCommand(key);
|
|
238
239
|
}
|
|
239
|
-
//unencypted command
|
|
240
|
+
// unencypted command
|
|
240
241
|
return new Promise((resolve, reject) => {
|
|
241
|
-
const req = Buffer.from(key.substring(0, 2)
|
|
242
|
-
this._command(req).then(bytes => {
|
|
242
|
+
const req = Buffer.from(`${key.substring(0, 2)}000000${key.substring(2)}`, 'hex');
|
|
243
|
+
this._command(req).then((bytes) => {
|
|
243
244
|
const buf = Buffer.from(bytes);
|
|
244
245
|
const code = WoSmartLock.validateResponse(buf);
|
|
245
246
|
if (code === WoSmartLock.Result.ERROR) {
|
|
246
|
-
reject(new Error(
|
|
247
|
+
reject(new Error(`The device returned an error: 0x${buf.toString('hex')}`));
|
|
247
248
|
}
|
|
248
249
|
else {
|
|
249
250
|
resolve(buf);
|
|
250
251
|
}
|
|
251
|
-
}).catch(error => {
|
|
252
|
+
}).catch((error) => {
|
|
252
253
|
reject(error);
|
|
253
254
|
});
|
|
254
255
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosmartlock.js","sourceRoot":"","sources":["../../src/device/wosmartlock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wosmartlock.js","sourceRoot":"","sources":["../../src/device/wosmartlock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type Noble from '@stoprocent/noble';
|
|
2
|
+
import { Buffer } from 'node:buffer';
|
|
1
3
|
import { SwitchbotDevice } from '../device.js';
|
|
2
|
-
import { SwitchBotBLEModel,
|
|
3
|
-
import Noble from '@stoprocent/noble';
|
|
4
|
+
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
|
|
4
5
|
export declare class WoSmartLockPro extends SwitchbotDevice {
|
|
5
6
|
_iv: Buffer | null;
|
|
6
7
|
_key_id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosmartlockpro.d.ts","sourceRoot":"","sources":["../../src/device/wosmartlockpro.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"wosmartlockpro.d.ts","sourceRoot":"","sources":["../../src/device/wosmartlockpro.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAErG,qBAAa,cAAe,SAAQ,eAAe;IACjD,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAE9B,MAAM,CAAC,iBAAiB,SAAa;IACrC,MAAM,CAAC,iBAAiB,SAAe;IACvC,MAAM,CAAC,cAAc,SAAqB;IAC1C,MAAM,CAAC,yBAAyB,SAAqB;IACrD,MAAM,CAAC,YAAY,SAAqB;IACxC,MAAM,CAAC,4BAA4B,SAAuB;IAC1D,MAAM,CAAC,6BAA6B,SAAW;IAE/C,MAAM,CAAC,MAAM;;;;MAIZ;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM;IAYnC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM;IAqBjC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;gBAkDzG,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,KAAK;IAiB7D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAiB3C,MAAM;IAuBN,eAAe;IAuBf,IAAI;IAuBJ,IAAI;IAmBJ,QAAQ,CAAC,GAAG,EAAE,MAAM;IAKpB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAKf,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAQzB,iBAAiB,CAAC,GAAG,EAAE,MAAM;IAqBnC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAwBpE"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
* adapted off the work done by [pySwitchbot](https://github.com/Danielhiversen/pySwitchbot)
|
|
4
|
-
*/
|
|
1
|
+
import { Buffer } from 'node:buffer';
|
|
2
|
+
import * as Crypto from 'node:crypto';
|
|
5
3
|
import { SwitchbotDevice } from '../device.js';
|
|
6
|
-
import { SwitchBotBLEModel,
|
|
7
|
-
import * as Crypto from 'crypto';
|
|
4
|
+
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
|
|
8
5
|
export class WoSmartLockPro extends SwitchbotDevice {
|
|
9
6
|
_iv;
|
|
10
7
|
_key_id;
|
|
@@ -46,7 +43,7 @@ export class WoSmartLockPro extends SwitchbotDevice {
|
|
|
46
43
|
return 'LOCKING_STOP';
|
|
47
44
|
case 0b1010000:
|
|
48
45
|
return 'UNLOCKING_STOP';
|
|
49
|
-
case 0b01100000: //Only EU lock type
|
|
46
|
+
case 0b01100000: // Only EU lock type
|
|
50
47
|
return 'NOT_FULLY_LOCKED';
|
|
51
48
|
default:
|
|
52
49
|
return 'UNKNOWN';
|
|
@@ -67,31 +64,31 @@ export class WoSmartLockPro extends SwitchbotDevice {
|
|
|
67
64
|
const byte9 = manufacturerData.readUInt8(9);
|
|
68
65
|
const byte11 = manufacturerData.readUInt8(11);
|
|
69
66
|
const battery = byte2 & 0b01111111; // %
|
|
70
|
-
const calibration = byte7 & 0b10000000
|
|
67
|
+
const calibration = !!(byte7 & 0b10000000);
|
|
71
68
|
const status = WoSmartLockPro.getLockStatus((byte7 & 0b00111000) >> 3);
|
|
72
|
-
const door_open = byte8 & 0b01100000
|
|
69
|
+
const door_open = !!(byte8 & 0b01100000);
|
|
73
70
|
// Double lock mode is not supported on Lock Pro
|
|
74
71
|
const update_from_secondary_lock = false; // byte7 & 0b00001000 ? true : false;
|
|
75
72
|
const double_lock_mode = false; // byte8 & 0b10000000 ? true : false;
|
|
76
|
-
const unclosed_alarm = byte11 & 0b10000000
|
|
77
|
-
const unlocked_alarm = byte11 & 0b01000000
|
|
78
|
-
const auto_lock_paused = byte8 & 0b100000
|
|
79
|
-
const night_latch = byte9 &
|
|
73
|
+
const unclosed_alarm = !!(byte11 & 0b10000000);
|
|
74
|
+
const unlocked_alarm = !!(byte11 & 0b01000000);
|
|
75
|
+
const auto_lock_paused = !!(byte8 & 0b100000);
|
|
76
|
+
const night_latch = !!(byte9 & 0b00000001);
|
|
80
77
|
// const manual = byte7 & 0b100000;
|
|
81
78
|
const data = {
|
|
82
79
|
model: SwitchBotBLEModel.LockPro,
|
|
83
80
|
modelName: SwitchBotBLEModelName.LockPro,
|
|
84
81
|
modelFriendlyName: SwitchBotBLEModelFriendlyName.LockPro,
|
|
85
|
-
battery
|
|
86
|
-
calibration
|
|
87
|
-
status
|
|
88
|
-
update_from_secondary_lock
|
|
89
|
-
door_open
|
|
90
|
-
double_lock_mode
|
|
91
|
-
unclosed_alarm
|
|
92
|
-
unlocked_alarm
|
|
93
|
-
auto_lock_paused
|
|
94
|
-
night_latch
|
|
82
|
+
battery,
|
|
83
|
+
calibration,
|
|
84
|
+
status,
|
|
85
|
+
update_from_secondary_lock,
|
|
86
|
+
door_open,
|
|
87
|
+
double_lock_mode,
|
|
88
|
+
unclosed_alarm,
|
|
89
|
+
unlocked_alarm,
|
|
90
|
+
auto_lock_paused,
|
|
91
|
+
night_latch,
|
|
95
92
|
};
|
|
96
93
|
return data;
|
|
97
94
|
}
|
|
@@ -132,7 +129,8 @@ export class WoSmartLockPro extends SwitchbotDevice {
|
|
|
132
129
|
this._operateLock(WoSmartLockPro.COMMAND_UNLOCK)
|
|
133
130
|
.then((resBuf) => {
|
|
134
131
|
resolve(WoSmartLockPro.validateResponse(resBuf));
|
|
135
|
-
})
|
|
132
|
+
})
|
|
133
|
+
.catch((error) => {
|
|
136
134
|
reject(error);
|
|
137
135
|
});
|
|
138
136
|
});
|
|
@@ -153,7 +151,8 @@ export class WoSmartLockPro extends SwitchbotDevice {
|
|
|
153
151
|
this._operateLock(WoSmartLockPro.COMMAND_UNLOCK_NO_UNLATCH)
|
|
154
152
|
.then((resBuf) => {
|
|
155
153
|
resolve(WoSmartLockPro.validateResponse(resBuf));
|
|
156
|
-
})
|
|
154
|
+
})
|
|
155
|
+
.catch((error) => {
|
|
157
156
|
reject(error);
|
|
158
157
|
});
|
|
159
158
|
});
|
|
@@ -174,7 +173,8 @@ export class WoSmartLockPro extends SwitchbotDevice {
|
|
|
174
173
|
this._operateLock(WoSmartLockPro.COMMAND_LOCK)
|
|
175
174
|
.then((resBuf) => {
|
|
176
175
|
resolve(WoSmartLockPro.validateResponse(resBuf));
|
|
177
|
-
})
|
|
176
|
+
})
|
|
177
|
+
.catch((error) => {
|
|
178
178
|
reject(error);
|
|
179
179
|
});
|
|
180
180
|
});
|
|
@@ -193,16 +193,17 @@ export class WoSmartLockPro extends SwitchbotDevice {
|
|
|
193
193
|
info() {
|
|
194
194
|
return new Promise((resolve, reject) => {
|
|
195
195
|
this._operateLock(WoSmartLockPro.COMMAND_LOCK_INFO)
|
|
196
|
-
.then(resBuf => {
|
|
196
|
+
.then((resBuf) => {
|
|
197
197
|
const data = {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
198
|
+
calibration: Boolean(resBuf[0] & 0b10000000),
|
|
199
|
+
status: WoSmartLockPro.getLockStatus((resBuf[0] & 0b01110000) >> 4),
|
|
200
|
+
door_open: Boolean(resBuf[0] & 0b00000100),
|
|
201
|
+
unclosed_alarm: Boolean(resBuf[1] & 0b00100000),
|
|
202
|
+
unlocked_alarm: Boolean(resBuf[1] & 0b00010000),
|
|
203
203
|
};
|
|
204
204
|
resolve(data);
|
|
205
|
-
})
|
|
205
|
+
})
|
|
206
|
+
.catch((error) => {
|
|
206
207
|
reject(error);
|
|
207
208
|
});
|
|
208
209
|
});
|
|
@@ -232,27 +233,27 @@ export class WoSmartLockPro extends SwitchbotDevice {
|
|
|
232
233
|
return Buffer.concat([buf.subarray(0, 1), this._decrypt(buf.subarray(4))]);
|
|
233
234
|
}
|
|
234
235
|
else {
|
|
235
|
-
throw (new Error(
|
|
236
|
+
throw (new Error(`The device returned an error: 0x${buf.toString('hex')}`));
|
|
236
237
|
}
|
|
237
238
|
}
|
|
238
239
|
_operateLock(key, encrypt = true) {
|
|
239
|
-
//encrypted command
|
|
240
|
+
// encrypted command
|
|
240
241
|
if (encrypt) {
|
|
241
242
|
return this._encryptedCommand(key);
|
|
242
243
|
}
|
|
243
|
-
//unencypted command
|
|
244
|
+
// unencypted command
|
|
244
245
|
return new Promise((resolve, reject) => {
|
|
245
|
-
const req = Buffer.from(key.substring(0, 2)
|
|
246
|
-
this._command(req).then(bytes => {
|
|
246
|
+
const req = Buffer.from(`${key.substring(0, 2)}000000${key.substring(2)}`, 'hex');
|
|
247
|
+
this._command(req).then((bytes) => {
|
|
247
248
|
const buf = Buffer.from(bytes);
|
|
248
249
|
const code = WoSmartLockPro.validateResponse(buf);
|
|
249
250
|
if (code === WoSmartLockPro.Result.ERROR) {
|
|
250
|
-
reject(new Error(
|
|
251
|
+
reject(new Error(`The device returned an error: 0x${buf.toString('hex')}`));
|
|
251
252
|
}
|
|
252
253
|
else {
|
|
253
254
|
resolve(buf);
|
|
254
255
|
}
|
|
255
|
-
}).catch(error => {
|
|
256
|
+
}).catch((error) => {
|
|
256
257
|
reject(error);
|
|
257
258
|
});
|
|
258
259
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosmartlockpro.js","sourceRoot":"","sources":["../../src/device/wosmartlockpro.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wosmartlockpro.js","sourceRoot":"","sources":["../../src/device/wosmartlockpro.ts"],"names":[],"mappings":"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"}
|
package/dist/device/wostrip.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { Buffer } from 'node:buffer';
|
|
1
2
|
import { SwitchbotDevice } from '../device.js';
|
|
2
|
-
import { SwitchBotBLEModel,
|
|
3
|
+
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
|
|
3
4
|
/**
|
|
4
5
|
* @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/colorbulb.md
|
|
5
6
|
*/
|
|
@@ -40,7 +41,7 @@ export declare class WoStrip extends SwitchbotDevice {
|
|
|
40
41
|
*/
|
|
41
42
|
setBrightness(brightness: number): Promise<unknown>;
|
|
42
43
|
/**
|
|
43
|
-
*
|
|
44
|
+
* Strip Light Doesn't Support Color temperature
|
|
44
45
|
*/
|
|
45
46
|
setColorTemperature(color_temperature: unknown): Promise<unknown> | undefined;
|
|
46
47
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wostrip.d.ts","sourceRoot":"","sources":["../../src/device/wostrip.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"wostrip.d.ts","sourceRoot":"","sources":["../../src/device/wostrip.ts"],"names":[],"mappings":"AAIA,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,aAAa,CAAA;AAErG;;GAEG;AACH,qBAAa,OAAQ,SAAQ,eAAe;IAC1C,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;IAkDnF;;OAEG;IACH,SAAS;IAIT;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE;IAKhC;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,OAAO;IAIP;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM;IAkBhC;;OAEG;IACH,mBAAmB,CAAC,iBAAiB,EAAE,OAAO;IAY9C;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IA4DnE;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;CA+B5B"}
|