@switchbot/homebridge-switchbot 3.8.3-beta.30 → 3.8.3-beta.32
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/.github/workflows/release.yml +1 -1
- package/CHANGELOG.md +2 -1
- package/config.schema.json +24 -0
- package/dist/device/blindtilt.d.ts.map +1 -1
- package/dist/device/blindtilt.js +26 -23
- package/dist/device/blindtilt.js.map +1 -1
- package/dist/device/bot.d.ts.map +1 -1
- package/dist/device/bot.js +30 -22
- package/dist/device/bot.js.map +1 -1
- package/dist/device/ceilinglight.d.ts.map +1 -1
- package/dist/device/ceilinglight.js +18 -17
- package/dist/device/ceilinglight.js.map +1 -1
- package/dist/device/colorbulb.d.ts.map +1 -1
- package/dist/device/colorbulb.js +35 -32
- package/dist/device/colorbulb.js.map +1 -1
- package/dist/device/contact.js +11 -11
- package/dist/device/contact.js.map +1 -1
- package/dist/device/curtain.d.ts.map +1 -1
- package/dist/device/curtain.js +21 -20
- package/dist/device/curtain.js.map +1 -1
- package/dist/device/device.js +8 -8
- package/dist/device/device.js.map +1 -1
- package/dist/device/fan.d.ts.map +1 -1
- package/dist/device/fan.js +18 -17
- package/dist/device/fan.js.map +1 -1
- package/dist/device/hub.js +11 -11
- package/dist/device/hub.js.map +1 -1
- package/dist/device/humidifier.d.ts.map +1 -1
- package/dist/device/humidifier.js +17 -16
- package/dist/device/humidifier.js.map +1 -1
- package/dist/device/iosensor.js +11 -11
- package/dist/device/iosensor.js.map +1 -1
- package/dist/device/lightstrip.d.ts.map +1 -1
- package/dist/device/lightstrip.js +26 -25
- package/dist/device/lightstrip.js.map +1 -1
- package/dist/device/lock.d.ts.map +1 -1
- package/dist/device/lock.js +16 -16
- package/dist/device/lock.js.map +1 -1
- package/dist/device/meter.js +11 -11
- package/dist/device/meter.js.map +1 -1
- package/dist/device/meterplus.js +11 -11
- package/dist/device/meterplus.js.map +1 -1
- package/dist/device/motion.js +11 -11
- package/dist/device/motion.js.map +1 -1
- package/dist/device/plug.d.ts.map +1 -1
- package/dist/device/plug.js +18 -17
- package/dist/device/plug.js.map +1 -1
- package/dist/device/robotvacuumcleaner.d.ts.map +1 -1
- package/dist/device/robotvacuumcleaner.js +18 -17
- package/dist/device/robotvacuumcleaner.js.map +1 -1
- package/dist/device/waterdetector.js +11 -11
- package/dist/device/waterdetector.js.map +1 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +80 -76
- package/dist/platform.js.map +1 -1
- package/dist/settings.d.ts +3 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js.map +1 -1
- package/package.json +3 -3
- package/src/device/blindtilt.ts +29 -26
- package/src/device/bot.ts +34 -26
- package/src/device/ceilinglight.ts +20 -19
- package/src/device/colorbulb.ts +40 -37
- package/src/device/contact.ts +11 -11
- package/src/device/curtain.ts +25 -23
- package/src/device/device.ts +8 -8
- package/src/device/fan.ts +20 -19
- package/src/device/hub.ts +11 -11
- package/src/device/humidifier.ts +19 -18
- package/src/device/iosensor.ts +11 -11
- package/src/device/lightstrip.ts +30 -29
- package/src/device/lock.ts +18 -18
- package/src/device/meter.ts +11 -11
- package/src/device/meterplus.ts +11 -11
- package/src/device/motion.ts +11 -11
- package/src/device/plug.ts +20 -19
- package/src/device/robotvacuumcleaner.ts +20 -19
- package/src/device/waterdetector.ts +11 -11
- package/src/platform.ts +82 -78
- package/src/settings.ts +3 -0
package/dist/settings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
|
package/dist/settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAA;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,iCAAiC,CAAA;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,yCAAyC,CAAA;AAEhE;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,sDAAsD,CAAA;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,sDAAsD,CAAA;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,uDAAuD,CAAA;AAEpF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,uDAAuD,CAAA;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAA;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,iCAAiC,CAAA;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,yCAAyC,CAAA;AAEhE;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,sDAAsD,CAAA;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,sDAAsD,CAAA;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,uDAAuD,CAAA;AAEpF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,uDAAuD,CAAA;AAgCnF,CAAC;AAoDD,CAAC;AAMD,CAAC;AASD,CAAC;AAKD,CAAC;AAaD,CAAC;AAaD,CAAC;AAOD,CAAC;AAMD,CAAC;AAKD,CAAC;AAKD,CAAC;AAKD,CAAC;AAKD,CAAC;AAOD,CAAC;AAOD,CAAC;AAmCD,CAAC;AAID,CAAC;AAWD,CAAC;AAID,CAAC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@switchbot/homebridge-switchbot",
|
|
3
3
|
"displayName": "SwitchBot",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "3.8.3-beta.
|
|
5
|
+
"version": "3.8.3-beta.32",
|
|
6
6
|
"description": "The SwitchBot plugin allows you to access your SwitchBot device(s) from HomeKit.",
|
|
7
7
|
"author": "SwitchBot <support@wondertechlabs.com> (https://github.com/SwitchBot)",
|
|
8
8
|
"contributors": [
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"plugin-ui": "rsync ./src/homebridge-ui/public/index.html ./dist/homebridge-ui/public/",
|
|
68
68
|
"build": "npm run clean && tsc && npm run plugin-ui",
|
|
69
69
|
"prepublishOnly": "npm run lint && npm run build && npm run plugin-ui ",
|
|
70
|
-
"postpublish": "npm run clean",
|
|
70
|
+
"postpublish": "npm run clean && npm ci",
|
|
71
71
|
"clean": "shx rm -rf ./dist",
|
|
72
72
|
"test": "npm run lint",
|
|
73
73
|
"docs": "typedoc",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"async-mqtt": "^2.6.3",
|
|
82
82
|
"fakegato-history": "^0.6.5",
|
|
83
83
|
"homebridge-lib": "^7.0.9",
|
|
84
|
-
"node-switchbot": "
|
|
84
|
+
"node-switchbot": "^3.0.2-beta.3",
|
|
85
85
|
"rxjs": "^7.8.1"
|
|
86
86
|
},
|
|
87
87
|
"devDependencies": {
|
package/src/device/blindtilt.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* blindtilt.ts: @switchbot/homebridge-switchbot.
|
|
4
4
|
*/
|
|
5
5
|
import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
|
|
6
|
-
import type { blindTiltServiceData, blindTiltStatus, blindTiltWebhookContext, bodyChange, device } from 'node-switchbot'
|
|
6
|
+
import type { blindTiltServiceData, blindTiltStatus, blindTiltWebhookContext, bodyChange, device, SwitchbotDevice, WoBlindTilt } from 'node-switchbot'
|
|
7
7
|
|
|
8
8
|
import type { SwitchBotPlatform } from '../platform.js'
|
|
9
9
|
import type { devicesConfig } from '../settings.js'
|
|
@@ -241,7 +241,7 @@ export class BlindTilt extends deviceBase {
|
|
|
241
241
|
this.debugLog('Retrieve initial values and update Homekit')
|
|
242
242
|
this.refreshStatus()
|
|
243
243
|
} catch (e: any) {
|
|
244
|
-
this.errorLog(`failed to retrieve initial values and update Homekit, Error: ${e}`)
|
|
244
|
+
this.errorLog(`failed to retrieve initial values and update Homekit, Error: ${e.message ?? e}`)
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
// regisiter webhook event handler if enabled
|
|
@@ -249,7 +249,7 @@ export class BlindTilt extends deviceBase {
|
|
|
249
249
|
this.debugLog('Registering Webhook Event Handler')
|
|
250
250
|
this.registerWebhook()
|
|
251
251
|
} catch (e: any) {
|
|
252
|
-
this.errorLog(`failed to registerWebhook, Error: ${e}`)
|
|
252
|
+
this.errorLog(`failed to registerWebhook, Error: ${e.message ?? e}`)
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
// regisiter platform BLE event handler if enabled
|
|
@@ -257,7 +257,7 @@ export class BlindTilt extends deviceBase {
|
|
|
257
257
|
this.debugLog('Registering Platform BLE Event Handler')
|
|
258
258
|
this.registerPlatformBLE()
|
|
259
259
|
} catch (e: any) {
|
|
260
|
-
this.errorLog(`failed to registerPlatformBLE, Error: ${e}`)
|
|
260
|
+
this.errorLog(`failed to registerPlatformBLE, Error: ${e.message ?? e}`)
|
|
261
261
|
}
|
|
262
262
|
|
|
263
263
|
// Start an update interval
|
|
@@ -351,14 +351,16 @@ export class BlindTilt extends deviceBase {
|
|
|
351
351
|
}
|
|
352
352
|
|
|
353
353
|
// BatteryLevel
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
354
|
+
if (this.serviceData?.battery) {
|
|
355
|
+
this.Battery.BatteryLevel = this.serviceData.battery
|
|
356
|
+
await this.debugLog(`BatteryLevel: ${this.Battery.BatteryLevel}`)
|
|
357
|
+
|
|
358
|
+
// StatusLowBattery
|
|
359
|
+
this.Battery.StatusLowBattery = this.Battery.BatteryLevel < 10
|
|
360
|
+
? this.hap.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW
|
|
361
|
+
: this.hap.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL
|
|
362
|
+
await this.debugLog(`StatusLowBattery: ${this.Battery.StatusLowBattery}`)
|
|
363
|
+
}
|
|
362
364
|
};
|
|
363
365
|
|
|
364
366
|
/**
|
|
@@ -454,22 +456,22 @@ export class BlindTilt extends deviceBase {
|
|
|
454
456
|
|
|
455
457
|
async BLERefreshStatus(): Promise<void> {
|
|
456
458
|
await this.debugLog('BLERefreshStatus')
|
|
457
|
-
const
|
|
458
|
-
if (
|
|
459
|
-
await this.BLERefreshConnection(
|
|
459
|
+
const switchBotBLE = await this.switchbotBLE()
|
|
460
|
+
if (switchBotBLE === undefined) {
|
|
461
|
+
await this.BLERefreshConnection(switchBotBLE)
|
|
460
462
|
} else {
|
|
461
463
|
// Start to monitor advertisement packets
|
|
462
464
|
(async () => {
|
|
463
465
|
// Start to monitor advertisement packets
|
|
464
|
-
const serviceData = await this.monitorAdvertisementPackets(
|
|
466
|
+
const serviceData = await this.monitorAdvertisementPackets(switchBotBLE) as blindTiltServiceData
|
|
465
467
|
// Update HomeKit
|
|
466
468
|
if (serviceData.model === SwitchBotBLEModel.BlindTilt && serviceData.modelName === SwitchBotBLEModelName.BlindTilt) {
|
|
467
469
|
this.serviceData = serviceData
|
|
468
470
|
await this.BLEparseStatus()
|
|
469
471
|
await this.updateHomeKitCharacteristics()
|
|
470
472
|
} else {
|
|
471
|
-
await this.errorLog(`failed to get serviceData, serviceData: ${serviceData}`)
|
|
472
|
-
await this.BLERefreshConnection(
|
|
473
|
+
await this.errorLog(`failed to get serviceData, serviceData: ${JSON.stringify(serviceData)}`)
|
|
474
|
+
await this.BLERefreshConnection(switchBotBLE)
|
|
473
475
|
}
|
|
474
476
|
})()
|
|
475
477
|
}
|
|
@@ -490,7 +492,7 @@ export class BlindTilt extends deviceBase {
|
|
|
490
492
|
await this.BLEparseStatus()
|
|
491
493
|
await this.updateHomeKitCharacteristics()
|
|
492
494
|
} catch (e: any) {
|
|
493
|
-
await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e}`)
|
|
495
|
+
await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e.message ?? e}`)
|
|
494
496
|
}
|
|
495
497
|
}
|
|
496
498
|
} catch (error) {
|
|
@@ -532,7 +534,7 @@ export class BlindTilt extends deviceBase {
|
|
|
532
534
|
await this.parseStatusWebhook()
|
|
533
535
|
await this.updateHomeKitCharacteristics()
|
|
534
536
|
} catch (e: any) {
|
|
535
|
-
await this.errorLog(`failed to handle webhook. Received: ${JSON.stringify(context)} Error: ${e}`)
|
|
537
|
+
await this.errorLog(`failed to handle webhook. Received: ${JSON.stringify(context)} Error: ${e.message ?? e}`)
|
|
536
538
|
}
|
|
537
539
|
}
|
|
538
540
|
} else {
|
|
@@ -564,21 +566,22 @@ export class BlindTilt extends deviceBase {
|
|
|
564
566
|
await this.debugLog('BLEpushChanges')
|
|
565
567
|
if (this.WindowCovering.TargetPosition !== this.WindowCovering.CurrentPosition) {
|
|
566
568
|
await this.debugLog(`BLEpushChanges On: ${this.WindowCovering.TargetPosition} OnCached: ${this.WindowCovering.CurrentPosition}`)
|
|
567
|
-
const
|
|
569
|
+
const switchBotBLE = await this.platform.connectBLE(this.accessory, this.device)
|
|
568
570
|
try {
|
|
569
571
|
const formattedDeviceId = formatDeviceIdAsMac(this.device.deviceId)
|
|
570
572
|
this.device.bleMac = formattedDeviceId
|
|
571
573
|
await this.debugLog(`bleMac: ${this.device.bleMac}`)
|
|
572
574
|
const { setPositionMode, Mode }: { setPositionMode: number, Mode: string } = await this.setPerformance()
|
|
573
575
|
await this.debugLog(`Mode: ${Mode}, setPositionMode: ${setPositionMode}`)
|
|
574
|
-
if (
|
|
575
|
-
|
|
576
|
+
if (switchBotBLE !== false) {
|
|
577
|
+
switchBotBLE
|
|
576
578
|
.discover({ model: this.device.bleModel, quick: true, id: this.device.bleMac })
|
|
577
|
-
.then(async (device_list:
|
|
579
|
+
.then(async (device_list: SwitchbotDevice[]) => {
|
|
580
|
+
const deviceList = device_list as unknown as WoBlindTilt[]
|
|
578
581
|
return await this.retryBLE({
|
|
579
582
|
max: await this.maxRetryBLE(),
|
|
580
583
|
fn: async () => {
|
|
581
|
-
return await
|
|
584
|
+
return await deviceList[0].runToPos(100 - Number(this.WindowCovering.TargetPosition), setPositionMode)
|
|
582
585
|
},
|
|
583
586
|
})
|
|
584
587
|
})
|
|
@@ -592,7 +595,7 @@ export class BlindTilt extends deviceBase {
|
|
|
592
595
|
await this.BLEPushConnection()
|
|
593
596
|
})
|
|
594
597
|
} else {
|
|
595
|
-
await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${
|
|
598
|
+
await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${JSON.stringify(switchBotBLE)}`)
|
|
596
599
|
await this.BLEPushConnection()
|
|
597
600
|
}
|
|
598
601
|
} catch (error) {
|
package/src/device/bot.ts
CHANGED
|
@@ -3,20 +3,21 @@
|
|
|
3
3
|
* bot.ts: @switchbot/homebridge-switchbot.
|
|
4
4
|
*/
|
|
5
5
|
import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
|
|
6
|
-
import type { bodyChange, botServiceData, botStatus, botWebhookContext, device } from 'node-switchbot'
|
|
6
|
+
import type { bodyChange, botServiceData, botStatus, botWebhookContext, device, SwitchbotDevice, WoHand } from 'node-switchbot'
|
|
7
7
|
|
|
8
8
|
import type { SwitchBotPlatform } from '../platform.js'
|
|
9
9
|
import type { devicesConfig } from '../settings.js'
|
|
10
10
|
|
|
11
|
+
import { debounceTime, interval, skipWhile, Subject, take, tap } from 'rxjs'
|
|
12
|
+
|
|
13
|
+
import { formatDeviceIdAsMac } from '../utils.js'
|
|
14
|
+
import { deviceBase } from './device.js'
|
|
15
|
+
|
|
11
16
|
/*
|
|
12
17
|
* For Testing Locally:
|
|
13
18
|
* import { SwitchBotBLEModel, SwitchBotBLEModelName } from '/Users/Shared/GitHub/OpenWonderLabs/node-switchbot/dist/index.js';
|
|
14
19
|
*/
|
|
15
20
|
import { SwitchBotBLEModel, SwitchBotBLEModelName } from 'node-switchbot'
|
|
16
|
-
import { debounceTime, interval, skipWhile, Subject, take, tap } from 'rxjs'
|
|
17
|
-
|
|
18
|
-
import { formatDeviceIdAsMac } from '../utils.js'
|
|
19
|
-
import { deviceBase } from './device.js'
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* Platform Accessory
|
|
@@ -391,7 +392,7 @@ export class Bot extends deviceBase {
|
|
|
391
392
|
this.debugLog('Retrieve initial values and update Homekit')
|
|
392
393
|
this.refreshStatus()
|
|
393
394
|
} catch (e: any) {
|
|
394
|
-
this.errorLog(`failed to retrieve initial values and update Homekit, Error: ${e}`)
|
|
395
|
+
this.errorLog(`failed to retrieve initial values and update Homekit, Error: ${e.message ?? e}`)
|
|
395
396
|
}
|
|
396
397
|
|
|
397
398
|
// regisiter webhook event handler if enabled
|
|
@@ -399,7 +400,7 @@ export class Bot extends deviceBase {
|
|
|
399
400
|
this.debugLog('Registering Webhook Event Handler')
|
|
400
401
|
this.registerWebhook()
|
|
401
402
|
} catch (e: any) {
|
|
402
|
-
this.errorLog(`failed to registerWebhook, Error: ${e}`)
|
|
403
|
+
this.errorLog(`failed to registerWebhook, Error: ${e.message ?? e}`)
|
|
403
404
|
}
|
|
404
405
|
|
|
405
406
|
// regisiter platform BLE event handler if enabled
|
|
@@ -407,7 +408,7 @@ export class Bot extends deviceBase {
|
|
|
407
408
|
this.debugLog('Registering Platform BLE Event Handler')
|
|
408
409
|
this.registerPlatformBLE()
|
|
409
410
|
} catch (e: any) {
|
|
410
|
-
this.errorLog(`failed to registerPlatformBLE, Error: ${e}`)
|
|
411
|
+
this.errorLog(`failed to registerPlatformBLE, Error: ${e.message ?? e}`)
|
|
411
412
|
}
|
|
412
413
|
|
|
413
414
|
// Start an update interval
|
|
@@ -548,22 +549,22 @@ export class Bot extends deviceBase {
|
|
|
548
549
|
|
|
549
550
|
async BLERefreshStatus(): Promise<void> {
|
|
550
551
|
await this.debugLog('BLERefreshStatus')
|
|
551
|
-
const
|
|
552
|
-
if (
|
|
553
|
-
await this.BLERefreshConnection(
|
|
552
|
+
const switchBotBLE = await this.switchbotBLE()
|
|
553
|
+
if (switchBotBLE === undefined) {
|
|
554
|
+
await this.BLERefreshConnection(switchBotBLE)
|
|
554
555
|
} else {
|
|
555
556
|
// Start to monitor advertisement packets
|
|
556
557
|
(async () => {
|
|
557
558
|
// Start to monitor advertisement packets
|
|
558
|
-
const serviceData = await this.monitorAdvertisementPackets(
|
|
559
|
+
const serviceData = await this.monitorAdvertisementPackets(switchBotBLE) as botServiceData
|
|
559
560
|
// Update HomeKit
|
|
560
561
|
if (serviceData.model === SwitchBotBLEModel.Bot && serviceData.modelName === SwitchBotBLEModelName.Bot) {
|
|
561
562
|
this.serviceData = serviceData
|
|
562
563
|
await this.BLEparseStatus()
|
|
563
564
|
await this.updateHomeKitCharacteristics()
|
|
564
565
|
} else {
|
|
565
|
-
await this.errorLog(`failed to get serviceData, serviceData: ${serviceData}`)
|
|
566
|
-
await this.BLERefreshConnection(
|
|
566
|
+
await this.errorLog(`failed to get serviceData, serviceData: ${JSON.stringify(serviceData)}`)
|
|
567
|
+
await this.BLERefreshConnection(switchBotBLE)
|
|
567
568
|
}
|
|
568
569
|
})()
|
|
569
570
|
}
|
|
@@ -584,7 +585,7 @@ export class Bot extends deviceBase {
|
|
|
584
585
|
await this.BLEparseStatus()
|
|
585
586
|
await this.updateHomeKitCharacteristics()
|
|
586
587
|
} catch (e: any) {
|
|
587
|
-
await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e}`)
|
|
588
|
+
await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e.message ?? e}`)
|
|
588
589
|
}
|
|
589
590
|
}
|
|
590
591
|
} catch (error) {
|
|
@@ -626,7 +627,7 @@ export class Bot extends deviceBase {
|
|
|
626
627
|
await this.parseStatusWebhook()
|
|
627
628
|
await this.updateHomeKitCharacteristics()
|
|
628
629
|
} catch (e: any) {
|
|
629
|
-
await this.errorLog(`failed to handle webhook. Received: ${JSON.stringify(context)} Error: ${e}`)
|
|
630
|
+
await this.errorLog(`failed to handle webhook. Received: ${JSON.stringify(context)} Error: ${e.message ?? e}`)
|
|
630
631
|
}
|
|
631
632
|
}
|
|
632
633
|
} else {
|
|
@@ -665,19 +666,20 @@ export class Bot extends deviceBase {
|
|
|
665
666
|
await this.debugLog('BLEpushChanges')
|
|
666
667
|
if (this.On !== this.accessory.context.On || this.allowPush) {
|
|
667
668
|
await this.debugLog(`BLEpushChanges On: ${this.On} OnCached: ${this.accessory.context.On}`)
|
|
668
|
-
const
|
|
669
|
+
const switchBotBLE = this.platform.switchBotBLE
|
|
669
670
|
try {
|
|
670
671
|
const formattedDeviceId = formatDeviceIdAsMac(this.device.deviceId)
|
|
671
672
|
this.device.bleMac = formattedDeviceId
|
|
672
673
|
await this.debugLog(`bleMac: ${this.device.bleMac}`)
|
|
673
|
-
// if (
|
|
674
|
+
// if (switchBotBLE !== false) {
|
|
674
675
|
await this.debugLog(`Bot Mode: ${this.botMode}`)
|
|
675
676
|
if (this.botMode === 'press') {
|
|
676
|
-
|
|
677
|
+
switchBotBLE
|
|
677
678
|
.discover({ model: 'H', quick: true, id: this.device.bleMac })
|
|
678
|
-
.then(async (device_list:
|
|
679
|
+
.then(async (device_list: SwitchbotDevice[]) => {
|
|
680
|
+
const deviceList = device_list as unknown as WoHand[]
|
|
679
681
|
await this.infoLog(`On: ${this.On}`)
|
|
680
|
-
return await
|
|
682
|
+
return await deviceList[0].press()
|
|
681
683
|
})
|
|
682
684
|
.then(async () => {
|
|
683
685
|
await this.successLog(`On: ${this.On} sent over SwitchBot BLE, sent successfully`)
|
|
@@ -694,17 +696,23 @@ export class Bot extends deviceBase {
|
|
|
694
696
|
await this.BLEPushConnection()
|
|
695
697
|
})
|
|
696
698
|
} else if (this.botMode === 'switch') {
|
|
697
|
-
|
|
699
|
+
switchBotBLE
|
|
698
700
|
.discover({ model: this.device.bleModel, quick: true, id: this.device.bleMac })
|
|
699
|
-
.then(async (device_list:
|
|
701
|
+
.then(async (device_list: SwitchbotDevice[]) => {
|
|
702
|
+
const deviceList = device_list as unknown as WoHand[]
|
|
700
703
|
this.infoLog(`On: ${this.On}`)
|
|
704
|
+
this.warnLog(`device_list: ${JSON.stringify(device_list)}`)
|
|
701
705
|
return await this.retryBLE({
|
|
702
706
|
max: await this.maxRetryBLE(),
|
|
703
707
|
fn: async () => {
|
|
704
|
-
if (
|
|
705
|
-
|
|
708
|
+
if (deviceList.length > 0) {
|
|
709
|
+
if (this.On) {
|
|
710
|
+
return await deviceList[0].turnOn()
|
|
711
|
+
} else {
|
|
712
|
+
return await deviceList[0].turnOff()
|
|
713
|
+
}
|
|
706
714
|
} else {
|
|
707
|
-
|
|
715
|
+
throw new Error('No device found')
|
|
708
716
|
}
|
|
709
717
|
},
|
|
710
718
|
})
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* ceilinglight.ts: @switchbot/homebridge-switchbot.
|
|
4
4
|
*/
|
|
5
5
|
import type { CharacteristicValue, Controller, ControllerConstructor, ControllerServiceMap, PlatformAccessory, Service } from 'homebridge'
|
|
6
|
-
import type { bodyChange, ceilingLightProServiceData, ceilingLightProStatus, ceilingLightProWebhookContext, ceilingLightServiceData, ceilingLightStatus, ceilingLightWebhookContext, device } from 'node-switchbot'
|
|
6
|
+
import type { bodyChange, ceilingLightProServiceData, ceilingLightProStatus, ceilingLightProWebhookContext, ceilingLightServiceData, ceilingLightStatus, ceilingLightWebhookContext, device, SwitchbotDevice, WoCeilingLight } from 'node-switchbot'
|
|
7
7
|
|
|
8
8
|
import type { SwitchBotPlatform } from '../platform.js'
|
|
9
9
|
import type { devicesConfig } from '../settings.js'
|
|
@@ -148,7 +148,7 @@ export class CeilingLight extends deviceBase {
|
|
|
148
148
|
this.debugLog('Retrieve initial values and update Homekit')
|
|
149
149
|
this.refreshStatus()
|
|
150
150
|
} catch (e: any) {
|
|
151
|
-
this.errorLog(`failed to retrieve initial values and update Homekit, Error: ${e}`)
|
|
151
|
+
this.errorLog(`failed to retrieve initial values and update Homekit, Error: ${e.message ?? e}`)
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
// regisiter webhook event handler if enabled
|
|
@@ -156,7 +156,7 @@ export class CeilingLight extends deviceBase {
|
|
|
156
156
|
this.debugLog('Registering Webhook Event Handler')
|
|
157
157
|
this.registerWebhook()
|
|
158
158
|
} catch (e: any) {
|
|
159
|
-
this.errorLog(`failed to registerWebhook, Error: ${e}`)
|
|
159
|
+
this.errorLog(`failed to registerWebhook, Error: ${e.message ?? e}`)
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
// regisiter platform BLE event handler if enabled
|
|
@@ -164,7 +164,7 @@ export class CeilingLight extends deviceBase {
|
|
|
164
164
|
this.debugLog('Registering Platform BLE Event Handler')
|
|
165
165
|
this.registerPlatformBLE()
|
|
166
166
|
} catch (e: any) {
|
|
167
|
-
this.errorLog(`failed to registerPlatformBLE, Error: ${e}`)
|
|
167
|
+
this.errorLog(`failed to registerPlatformBLE, Error: ${e.message ?? e}`)
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
// Start an update interval
|
|
@@ -283,21 +283,21 @@ export class CeilingLight extends deviceBase {
|
|
|
283
283
|
|
|
284
284
|
async BLERefreshStatus(): Promise<void> {
|
|
285
285
|
await this.debugLog('BLERefreshStatus')
|
|
286
|
-
const
|
|
287
|
-
if (
|
|
288
|
-
await this.BLERefreshConnection(
|
|
286
|
+
const switchBotBLE = await this.switchbotBLE()
|
|
287
|
+
if (switchBotBLE === undefined) {
|
|
288
|
+
await this.BLERefreshConnection(switchBotBLE)
|
|
289
289
|
} else {
|
|
290
290
|
(async () => {
|
|
291
291
|
// Start to monitor advertisement packets
|
|
292
|
-
const serviceData = await this.monitorAdvertisementPackets(
|
|
292
|
+
const serviceData = await this.monitorAdvertisementPackets(switchBotBLE) as unknown as ceilingLightServiceData
|
|
293
293
|
// Update HomeKit
|
|
294
294
|
if ((serviceData.model === SwitchBotBLEModel.CeilingLight || SwitchBotBLEModel.CeilingLightPro) && (serviceData.modelName === SwitchBotBLEModelName.CeilingLight || SwitchBotBLEModelName.CeilingLightPro)) {
|
|
295
295
|
this.serviceData = serviceData
|
|
296
296
|
await this.BLEparseStatus()
|
|
297
297
|
await this.updateHomeKitCharacteristics()
|
|
298
298
|
} else {
|
|
299
|
-
await this.errorLog(`failed to get serviceData, serviceData: ${serviceData}`)
|
|
300
|
-
await this.BLERefreshConnection(
|
|
299
|
+
await this.errorLog(`failed to get serviceData, serviceData: ${JSON.stringify(serviceData)}`)
|
|
300
|
+
await this.BLERefreshConnection(switchBotBLE)
|
|
301
301
|
}
|
|
302
302
|
})()
|
|
303
303
|
}
|
|
@@ -318,7 +318,7 @@ export class CeilingLight extends deviceBase {
|
|
|
318
318
|
await this.BLEparseStatus()
|
|
319
319
|
await this.updateHomeKitCharacteristics()
|
|
320
320
|
} catch (e: any) {
|
|
321
|
-
await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e}`)
|
|
321
|
+
await this.errorLog(`failed to handle BLE. Received: ${JSON.stringify(context)} Error: ${e.message ?? e}`)
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
324
|
} catch (error) {
|
|
@@ -360,7 +360,7 @@ export class CeilingLight extends deviceBase {
|
|
|
360
360
|
await this.parseStatusWebhook()
|
|
361
361
|
await this.updateHomeKitCharacteristics()
|
|
362
362
|
} catch (e: any) {
|
|
363
|
-
await this.errorLog(`failed to handle webhook. Received: ${JSON.stringify(context)} Error: ${e}`)
|
|
363
|
+
await this.errorLog(`failed to handle webhook. Received: ${JSON.stringify(context)} Error: ${e.message ?? e}`)
|
|
364
364
|
}
|
|
365
365
|
}
|
|
366
366
|
} else {
|
|
@@ -417,23 +417,24 @@ export class CeilingLight extends deviceBase {
|
|
|
417
417
|
await this.debugLog('BLEpushChanges')
|
|
418
418
|
if (this.LightBulb.On !== this.accessory.context.On) {
|
|
419
419
|
await this.debugLog(`BLEpushChanges On: ${this.LightBulb.On} OnCached: ${this.accessory.context.On}`)
|
|
420
|
-
const
|
|
420
|
+
const switchBotBLE = await this.platform.connectBLE(this.accessory, this.device)
|
|
421
421
|
try {
|
|
422
422
|
const formattedDeviceId = formatDeviceIdAsMac(this.device.deviceId)
|
|
423
423
|
this.device.bleMac = formattedDeviceId
|
|
424
424
|
await this.debugLog(`bleMac: ${this.device.bleMac}`)
|
|
425
|
-
if (
|
|
426
|
-
|
|
425
|
+
if (switchBotBLE !== false) {
|
|
426
|
+
switchBotBLE
|
|
427
427
|
.discover({ model: this.device.bleModel, id: this.device.bleMac })
|
|
428
|
-
.then(async (device_list:
|
|
428
|
+
.then(async (device_list: SwitchbotDevice[]) => {
|
|
429
|
+
const deviceList = device_list[0] as unknown as WoCeilingLight
|
|
429
430
|
this.infoLog(`On: ${this.LightBulb.On}`)
|
|
430
431
|
return await this.retryBLE({
|
|
431
432
|
max: await this.maxRetryBLE(),
|
|
432
433
|
fn: async () => {
|
|
433
434
|
if (this.LightBulb.On) {
|
|
434
|
-
return await
|
|
435
|
+
return await deviceList[0].turnOn()
|
|
435
436
|
} else {
|
|
436
|
-
return await
|
|
437
|
+
return await deviceList[0].turnOff()
|
|
437
438
|
}
|
|
438
439
|
},
|
|
439
440
|
})
|
|
@@ -448,7 +449,7 @@ export class CeilingLight extends deviceBase {
|
|
|
448
449
|
await this.BLEPushConnection()
|
|
449
450
|
})
|
|
450
451
|
} else {
|
|
451
|
-
await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${
|
|
452
|
+
await this.errorLog(`wasn't able to establish BLE Connection, node-switchbot: ${JSON.stringify(switchBotBLE)}`)
|
|
452
453
|
await this.BLEPushConnection()
|
|
453
454
|
}
|
|
454
455
|
} catch (error) {
|