@switchbot/homebridge-switchbot 3.8.3-beta.23 → 3.8.3-beta.25
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/platform.d.ts +3 -2
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +29 -12
- package/dist/platform.js.map +1 -1
- package/docs/assets/highlight.css +42 -0
- package/docs/assets/main.js +1 -1
- package/docs/functions/default.html +1 -1
- package/docs/index.html +61 -50
- package/docs/media/security-privacy-bluetooth.png +0 -0
- package/package.json +5 -5
- package/src/platform.ts +31 -13
package/dist/platform.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { API, DynamicPlatformPlugin, Logging, PlatformAccessory } from 'hom
|
|
|
3
3
|
import type { MqttClient } from 'mqtt';
|
|
4
4
|
import type { devicesConfig, irDevicesConfig, SwitchBotPlatformConfig } from './settings.js';
|
|
5
5
|
import type { blindTilt, curtain, curtain3, device } from 'node-switchbot';
|
|
6
|
-
import { SwitchBotOpenAPI } from 'node-switchbot';
|
|
6
|
+
import { SwitchBotBLE, SwitchBotOpenAPI } from 'node-switchbot';
|
|
7
7
|
/**
|
|
8
8
|
* HomebridgePlatform
|
|
9
9
|
* This class is the main constructor for your plugin, this is where you should
|
|
@@ -23,6 +23,8 @@ export declare class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
23
23
|
config: SwitchBotPlatformConfig;
|
|
24
24
|
mqttClient: MqttClient | null;
|
|
25
25
|
webhookEventListener: Server | null;
|
|
26
|
+
switchBotAPI: SwitchBotOpenAPI;
|
|
27
|
+
switchBotBLE: SwitchBotBLE;
|
|
26
28
|
readonly eve: any;
|
|
27
29
|
readonly fakegatoAPI: any;
|
|
28
30
|
readonly webhookEventHandler: {
|
|
@@ -31,7 +33,6 @@ export declare class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
31
33
|
readonly bleEventHandler: {
|
|
32
34
|
[x: string]: (context: any) => void;
|
|
33
35
|
};
|
|
34
|
-
switchBotAPI: SwitchBotOpenAPI;
|
|
35
36
|
constructor(log: Logging, config: SwitchBotPlatformConfig, api: API);
|
|
36
37
|
setupMqtt(): Promise<void>;
|
|
37
38
|
setupwebhook(): Promise<void>;
|
package/dist/platform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,OAAO,KAAK,EAAE,GAAG,EAAE,qBAAqB,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAW,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAYrG,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.js
CHANGED
|
@@ -3,7 +3,7 @@ import process from 'node:process';
|
|
|
3
3
|
import asyncmqtt from 'async-mqtt';
|
|
4
4
|
import fakegato from 'fakegato-history';
|
|
5
5
|
import { EveHomeKitTypes } from 'homebridge-lib/EveHomeKitTypes';
|
|
6
|
-
import { LogLevel,
|
|
6
|
+
import { LogLevel, SwitchBotBLE, SwitchBotModel, SwitchBotOpenAPI } from 'node-switchbot';
|
|
7
7
|
import { queueScheduler } from 'rxjs';
|
|
8
8
|
import { BlindTilt } from './device/blindtilt.js';
|
|
9
9
|
import { Bot } from './device/bot.js';
|
|
@@ -56,13 +56,15 @@ export class SwitchBotPlatform {
|
|
|
56
56
|
// MQTT and Webhook properties
|
|
57
57
|
mqttClient = null;
|
|
58
58
|
webhookEventListener = null;
|
|
59
|
+
// SwitchBot APIs
|
|
60
|
+
switchBotAPI;
|
|
61
|
+
switchBotBLE;
|
|
59
62
|
// External APIs
|
|
60
63
|
eve;
|
|
61
64
|
fakegatoAPI;
|
|
62
65
|
// Event Handlers
|
|
63
66
|
webhookEventHandler = {};
|
|
64
67
|
bleEventHandler = {};
|
|
65
|
-
switchBotAPI;
|
|
66
68
|
constructor(log, config, api) {
|
|
67
69
|
this.api = api;
|
|
68
70
|
this.log = log;
|
|
@@ -217,11 +219,27 @@ export class SwitchBotPlatform {
|
|
|
217
219
|
}
|
|
218
220
|
}
|
|
219
221
|
async setupBlE() {
|
|
222
|
+
this.switchBotBLE = new SwitchBotBLE();
|
|
223
|
+
// Listen for log events
|
|
224
|
+
this.switchBotBLE.on('log', (log) => {
|
|
225
|
+
switch (log.level) {
|
|
226
|
+
case LogLevel.ERROR:
|
|
227
|
+
this.errorLog(log.message);
|
|
228
|
+
break;
|
|
229
|
+
case LogLevel.WARN:
|
|
230
|
+
this.warnLog(log.message);
|
|
231
|
+
break;
|
|
232
|
+
case LogLevel.DEBUG:
|
|
233
|
+
this.debugLog(log.message);
|
|
234
|
+
break;
|
|
235
|
+
default:
|
|
236
|
+
this.infoLog(log.message);
|
|
237
|
+
}
|
|
238
|
+
});
|
|
220
239
|
if (this.config.options?.BLE) {
|
|
221
240
|
await this.debugLog('setupBLE');
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${switchbot}`);
|
|
241
|
+
if (this.switchBotBLE === undefined) {
|
|
242
|
+
await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${this.switchBotBLE}`);
|
|
225
243
|
}
|
|
226
244
|
else {
|
|
227
245
|
// Start to monitor advertisement packets
|
|
@@ -229,13 +247,13 @@ export class SwitchBotPlatform {
|
|
|
229
247
|
// Start to monitor advertisement packets
|
|
230
248
|
await this.debugLog('Scanning for BLE SwitchBot devices...');
|
|
231
249
|
try {
|
|
232
|
-
await
|
|
250
|
+
await this.switchBotBLE.startScan();
|
|
233
251
|
}
|
|
234
252
|
catch (e) {
|
|
235
253
|
await this.errorLog(`Failed to start BLE scanning. Error:${e}`);
|
|
236
254
|
}
|
|
237
255
|
// Set an event handler to monitor advertisement packets
|
|
238
|
-
|
|
256
|
+
this.switchBotBLE.onadvertisement = async (ad) => {
|
|
239
257
|
try {
|
|
240
258
|
this.bleEventHandler[ad.address]?.(ad.serviceData);
|
|
241
259
|
}
|
|
@@ -246,7 +264,7 @@ export class SwitchBotPlatform {
|
|
|
246
264
|
})();
|
|
247
265
|
this.api.on('shutdown', async () => {
|
|
248
266
|
try {
|
|
249
|
-
|
|
267
|
+
this.switchBotBLE.stopScan();
|
|
250
268
|
await this.infoLog('Stopped BLE scanning to close listening.');
|
|
251
269
|
}
|
|
252
270
|
catch (e) {
|
|
@@ -2449,10 +2467,9 @@ export class SwitchBotPlatform {
|
|
|
2449
2467
|
// BLE Connection
|
|
2450
2468
|
async connectBLE(accessory, device) {
|
|
2451
2469
|
try {
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
return switchbot;
|
|
2470
|
+
queueScheduler.schedule(async () => this.switchBotBLE);
|
|
2471
|
+
await this.debugLog(`${device.deviceType}: ${accessory.displayName} 'node-switchbot' found: ${this.switchBotBLE}`);
|
|
2472
|
+
return this.switchBotBLE;
|
|
2456
2473
|
}
|
|
2457
2474
|
catch (e) {
|
|
2458
2475
|
await this.errorLog(`${device.deviceType}: ${accessory.displayName} 'node-switchbot' not found, Error: ${e}`);
|