node-switchbot 2.5.0-beta.3 → 2.5.0-beta.30
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/beta-release.yml +25 -2
- package/.github/workflows/release.yml +13 -0
- package/BLE.md +1109 -0
- package/CHANGELOG.md +14 -0
- package/OpenAPI.md +172 -0
- package/README.md +20 -1189
- package/branding/Node_x_SwitchBot.svg +9 -0
- package/branding/icon.png +0 -0
- package/branding/switchbot.png +0 -0
- package/dist/advertising.d.ts +31 -20
- package/dist/advertising.d.ts.map +1 -1
- package/dist/advertising.js +72 -75
- package/dist/advertising.js.map +1 -1
- package/dist/device/woblindtilt.d.ts +19 -50
- package/dist/device/woblindtilt.d.ts.map +1 -1
- package/dist/device/woblindtilt.js +39 -98
- package/dist/device/woblindtilt.js.map +1 -1
- package/dist/device/wobulb.d.ts +41 -15
- package/dist/device/wobulb.d.ts.map +1 -1
- package/dist/device/wobulb.js +71 -127
- package/dist/device/wobulb.js.map +1 -1
- package/dist/device/woceilinglight.d.ts +47 -21
- package/dist/device/woceilinglight.d.ts.map +1 -1
- package/dist/device/woceilinglight.js +94 -169
- package/dist/device/woceilinglight.js.map +1 -1
- package/dist/device/wocontact.d.ts +11 -1
- package/dist/device/wocontact.d.ts.map +1 -1
- package/dist/device/wocontact.js +22 -21
- package/dist/device/wocontact.js.map +1 -1
- package/dist/device/wocurtain.d.ts +39 -1
- package/dist/device/wocurtain.d.ts.map +1 -1
- package/dist/device/wocurtain.js +68 -102
- package/dist/device/wocurtain.js.map +1 -1
- package/dist/device/wohand.d.ts +37 -2
- package/dist/device/wohand.d.ts.map +1 -1
- package/dist/device/wohand.js +54 -88
- package/dist/device/wohand.js.map +1 -1
- package/dist/device/wohub2.d.ts +11 -1
- package/dist/device/wohub2.d.ts.map +1 -1
- package/dist/device/wohub2.js +20 -28
- package/dist/device/wohub2.js.map +1 -1
- package/dist/device/wohumi.d.ts +37 -2
- package/dist/device/wohumi.d.ts.map +1 -1
- package/dist/device/wohumi.js +51 -82
- package/dist/device/wohumi.js.map +1 -1
- package/dist/device/woiosensorth.d.ts +12 -1
- package/dist/device/woiosensorth.d.ts.map +1 -1
- package/dist/device/woiosensorth.js +24 -28
- package/dist/device/woiosensorth.js.map +1 -1
- package/dist/device/woplugmini.d.ts +45 -12
- package/dist/device/woplugmini.d.ts.map +1 -1
- package/dist/device/woplugmini.js +69 -75
- package/dist/device/woplugmini.js.map +1 -1
- package/dist/device/wopresence.d.ts +11 -1
- package/dist/device/wopresence.d.ts.map +1 -1
- package/dist/device/wopresence.js +20 -26
- package/dist/device/wopresence.js.map +1 -1
- package/dist/device/wosensorth.d.ts +18 -2
- package/dist/device/wosensorth.d.ts.map +1 -1
- package/dist/device/wosensorth.js +32 -48
- package/dist/device/wosensorth.js.map +1 -1
- package/dist/device/wosmartlock.d.ts +56 -13
- package/dist/device/wosmartlock.d.ts.map +1 -1
- package/dist/device/wosmartlock.js +106 -194
- package/dist/device/wosmartlock.js.map +1 -1
- package/dist/device/wosmartlockpro.d.ts +61 -18
- package/dist/device/wosmartlockpro.d.ts.map +1 -1
- package/dist/device/wosmartlockpro.js +114 -203
- package/dist/device/wosmartlockpro.js.map +1 -1
- package/dist/device/wostrip.d.ts +37 -18
- package/dist/device/wostrip.d.ts.map +1 -1
- package/dist/device/wostrip.js +78 -124
- package/dist/device/wostrip.js.map +1 -1
- package/dist/device.d.ts +85 -222
- package/dist/device.d.ts.map +1 -1
- package/dist/device.js +123 -407
- package/dist/device.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/parameter-checker.d.ts +79 -19
- package/dist/parameter-checker.d.ts.map +1 -1
- package/dist/parameter-checker.js +140 -335
- package/dist/parameter-checker.js.map +1 -1
- package/dist/settings.d.ts +46 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +46 -2
- package/dist/settings.js.map +1 -1
- package/dist/{switchbot.d.ts → switchbot-ble.d.ts} +7 -8
- package/dist/switchbot-ble.d.ts.map +1 -0
- package/dist/switchbot-ble.js +412 -0
- package/dist/switchbot-ble.js.map +1 -0
- package/dist/switchbot-openapi.d.ts +131 -0
- package/dist/switchbot-openapi.d.ts.map +1 -0
- package/dist/switchbot-openapi.js +311 -0
- package/dist/switchbot-openapi.js.map +1 -0
- package/dist/test/advertising.test.d.ts +2 -0
- package/dist/test/advertising.test.d.ts.map +1 -0
- package/dist/test/advertising.test.js +96 -0
- package/dist/test/advertising.test.js.map +1 -0
- package/dist/test/device.test.d.ts +2 -0
- package/dist/test/device.test.d.ts.map +1 -0
- package/dist/test/device.test.js +60 -0
- package/dist/test/device.test.js.map +1 -0
- package/dist/test/index.test.d.ts +2 -0
- package/dist/test/index.test.d.ts.map +1 -0
- package/dist/test/index.test.js +34 -0
- package/dist/test/index.test.js.map +1 -0
- package/dist/test/parameter-checker.test.d.ts +2 -0
- package/dist/test/parameter-checker.test.d.ts.map +1 -0
- package/dist/test/parameter-checker.test.js +108 -0
- package/dist/test/parameter-checker.test.js.map +1 -0
- package/dist/test/settings.test.d.ts +2 -0
- package/dist/test/settings.test.d.ts.map +1 -0
- package/dist/test/settings.test.js +48 -0
- package/dist/test/settings.test.js.map +1 -0
- package/dist/test/switchbot-openapi.test.d.ts +2 -0
- package/dist/test/switchbot-openapi.test.d.ts.map +1 -0
- package/dist/test/switchbot-openapi.test.js +95 -0
- package/dist/test/switchbot-openapi.test.js.map +1 -0
- package/dist/test/switchbot.test.d.ts +2 -0
- package/dist/test/switchbot.test.d.ts.map +1 -0
- package/dist/test/switchbot.test.js +106 -0
- package/dist/test/switchbot.test.js.map +1 -0
- package/dist/test/woblindtilt.test.d.ts.map +1 -0
- package/dist/test/woblindtilt.test.js +97 -0
- package/dist/test/woblindtilt.test.js.map +1 -0
- package/dist/{device → test}/wobulb.test.d.ts.map +1 -1
- package/dist/test/wobulb.test.js +104 -0
- package/dist/test/wobulb.test.js.map +1 -0
- package/dist/test/woceilinglight.test.d.ts.map +1 -0
- package/dist/test/woceilinglight.test.js +95 -0
- package/dist/test/woceilinglight.test.js.map +1 -0
- package/dist/test/wocontact.test.d.ts.map +1 -0
- package/dist/test/wocontact.test.js +38 -0
- package/dist/test/wocontact.test.js.map +1 -0
- package/dist/test/wocurtain.test.d.ts.map +1 -0
- package/dist/test/wocurtain.test.js +76 -0
- package/dist/test/wocurtain.test.js.map +1 -0
- package/dist/{device → test}/wohand.test.d.ts.map +1 -1
- package/dist/test/wohand.test.js +76 -0
- package/dist/test/wohand.test.js.map +1 -0
- package/dist/test/wohub2.test.d.ts +2 -0
- package/dist/test/wohub2.test.d.ts.map +1 -0
- package/dist/{device/wohand2.test.js → test/wohub2.test.js} +10 -8
- package/dist/test/wohub2.test.js.map +1 -0
- package/dist/{device → test}/wohumi.test.d.ts.map +1 -1
- package/dist/{device → test}/wohumi.test.js +5 -2
- package/dist/test/wohumi.test.js.map +1 -0
- package/dist/test/woiosensorth.test.d.ts.map +1 -0
- package/dist/{device → test}/woiosensorth.test.js +11 -9
- package/dist/test/woiosensorth.test.js.map +1 -0
- package/dist/test/woplugmini.test.d.ts.map +1 -0
- package/dist/{device → test}/woplugmini.test.js +10 -5
- package/dist/test/woplugmini.test.js.map +1 -0
- package/dist/test/wopresence.test.d.ts.map +1 -0
- package/dist/{device → test}/wopresence.test.js +5 -1
- package/dist/test/wopresence.test.js.map +1 -0
- package/dist/test/wosensorth.test.d.ts.map +1 -0
- package/dist/{device → test}/wosensorth.test.js +5 -14
- package/dist/test/wosensorth.test.js.map +1 -0
- package/dist/test/wosmartlock.test.d.ts.map +1 -0
- package/dist/test/wosmartlock.test.js +147 -0
- package/dist/test/wosmartlock.test.js.map +1 -0
- package/dist/test/wosmartlockpro.test.d.ts.map +1 -0
- package/dist/{device → test}/wosmartlockpro.test.js +30 -26
- package/dist/test/wosmartlockpro.test.js.map +1 -0
- package/dist/{device → test}/wostrip.test.d.ts.map +1 -1
- package/dist/{device → test}/wostrip.test.js +18 -19
- package/dist/test/wostrip.test.js.map +1 -0
- package/dist/types/bledevicestatus.d.ts +4 -12
- package/dist/types/bledevicestatus.d.ts.map +1 -1
- package/dist/types/devicelist.d.ts.map +1 -1
- package/dist/types/devicelist.js +0 -4
- package/dist/types/devicelist.js.map +1 -1
- package/dist/types/devicepush.d.ts +13 -0
- package/dist/types/devicepush.d.ts.map +1 -0
- package/dist/types/devicepush.js +2 -0
- package/dist/types/devicepush.js.map +1 -0
- package/dist/types/deviceresponse.d.ts +2 -3
- package/dist/types/deviceresponse.d.ts.map +1 -1
- package/dist/types/devicestatus.d.ts.map +1 -1
- package/dist/types/devicewebhookstatus.d.ts +32 -0
- package/dist/types/devicewebhookstatus.d.ts.map +1 -1
- package/dist/types/irdevicelist.d.ts.map +1 -1
- package/dist/types/types.d.ts +61 -120
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +10 -0
- package/dist/types/types.js.map +1 -1
- package/docs/assets/highlight.css +12 -47
- package/docs/assets/main.js +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/SwitchBotBLE.html +61 -0
- package/docs/classes/SwitchBotOpenAPI.html +47 -0
- package/docs/classes/SwitchbotDevice.html +28 -33
- package/docs/enums/LogLevel.html +6 -0
- package/docs/enums/SwitchBotBLEModel.html +2 -2
- package/docs/enums/SwitchBotBLEModelFriendlyName.html +2 -2
- package/docs/enums/SwitchBotBLEModelName.html +2 -2
- package/docs/enums/SwitchBotModel.html +2 -2
- package/docs/hierarchy.html +1 -0
- package/docs/index.html +16 -993
- package/docs/interfaces/Ad-1.html +5 -0
- package/docs/interfaces/AdvertisementData.html +3 -0
- package/docs/interfaces/Chars.html +4 -0
- package/docs/interfaces/ErrorObject.html +3 -0
- package/docs/interfaces/Params.html +6 -0
- package/docs/interfaces/ServiceData.html +2 -0
- package/docs/interfaces/SwitchBotBLEDevice.html +21 -0
- package/docs/interfaces/WebhookDetail.html +6 -0
- package/docs/interfaces/ad.html +5 -0
- package/docs/interfaces/body.html +3 -0
- package/docs/interfaces/bodyChange.html +4 -0
- package/docs/interfaces/deleteWebhookResponse.html +4 -0
- package/docs/interfaces/device.html +7 -0
- package/docs/interfaces/deviceList.html +2 -0
- package/docs/interfaces/deviceStatus.html +7 -0
- package/docs/interfaces/deviceStatusRequest.html +4 -0
- package/docs/interfaces/deviceWebhook.html +4 -0
- package/docs/interfaces/deviceWebhookContext.html +4 -0
- package/docs/interfaces/devices.html +4 -0
- package/docs/interfaces/infraredRemoteList.html +2 -0
- package/docs/interfaces/irdevice.html +5 -0
- package/docs/interfaces/pushResponse.html +4 -0
- package/docs/interfaces/queryWebhookResponse.html +4 -0
- package/docs/interfaces/setupWebhookResponse.html +4 -0
- package/docs/interfaces/switchbot.html +3 -0
- package/docs/interfaces/updateWebhookResponse.html +4 -0
- package/docs/interfaces/webhookRequest.html +4 -0
- package/docs/media/BLE.md +1109 -0
- package/docs/media/OpenAPI.md +172 -0
- package/docs/modules.html +136 -3
- package/docs/types/MacAddress.html +1 -0
- package/docs/types/batteryCirculatorFan.html +1 -0
- package/docs/types/batteryCirculatorFanServiceData.html +1 -0
- package/docs/types/batteryCirculatorFanStatus.html +1 -0
- package/docs/types/batteryCirculatorFanWebhookContext.html +1 -0
- package/docs/types/blindTilt.html +1 -0
- package/docs/types/blindTiltServiceData.html +1 -0
- package/docs/types/blindTiltStatus.html +1 -0
- package/docs/types/blindTiltWebhookContext.html +1 -0
- package/docs/types/bot.html +1 -0
- package/docs/types/botServiceData.html +1 -0
- package/docs/types/botStatus.html +1 -0
- package/docs/types/botWebhookContext.html +1 -0
- package/docs/types/ceilingLight.html +1 -0
- package/docs/types/ceilingLightPro.html +1 -0
- package/docs/types/ceilingLightProServiceData.html +1 -0
- package/docs/types/ceilingLightProStatus.html +1 -0
- package/docs/types/ceilingLightProWebhookContext.html +1 -0
- package/docs/types/ceilingLightServiceData.html +1 -0
- package/docs/types/ceilingLightStatus.html +1 -0
- package/docs/types/ceilingLightWebhookContext.html +1 -0
- package/docs/types/colorBulb.html +1 -0
- package/docs/types/colorBulbServiceData.html +1 -0
- package/docs/types/colorBulbStatus.html +1 -0
- package/docs/types/colorBulbWebhookContext.html +1 -0
- package/docs/types/contactSensor.html +1 -0
- package/docs/types/contactSensorServiceData.html +1 -0
- package/docs/types/contactSensorStatus.html +1 -0
- package/docs/types/contactSensorWebhookContext.html +1 -0
- package/docs/types/curtain.html +1 -0
- package/docs/types/curtain3.html +1 -0
- package/docs/types/curtain3ServiceData.html +1 -0
- package/docs/types/curtain3WebhookContext.html +1 -0
- package/docs/types/curtainServiceData.html +1 -0
- package/docs/types/curtainStatus.html +1 -0
- package/docs/types/curtainWebhookContext.html +1 -0
- package/docs/types/floorCleaningRobotS10.html +1 -0
- package/docs/types/floorCleaningRobotS10Status.html +1 -0
- package/docs/types/floorCleaningRobotS10WebhookContext.html +1 -0
- package/docs/types/hub2.html +1 -0
- package/docs/types/hub2ServiceData.html +1 -0
- package/docs/types/hub2Status.html +1 -0
- package/docs/types/hub2WebhookContext.html +1 -0
- package/docs/types/humidifier.html +1 -0
- package/docs/types/humidifierServiceData.html +1 -0
- package/docs/types/humidifierStatus.html +1 -0
- package/docs/types/humidifierWebhookContext.html +1 -0
- package/docs/types/indoorCam.html +1 -0
- package/docs/types/indoorCameraWebhookContext.html +1 -0
- package/docs/types/keypad.html +1 -0
- package/docs/types/keypadTouch.html +1 -0
- package/docs/types/keypadTouchWebhookContext.html +1 -0
- package/docs/types/keypadWebhookContext.html +1 -0
- package/docs/types/lock.html +1 -0
- package/docs/types/lockPro.html +1 -0
- package/docs/types/lockProServiceData.html +1 -0
- package/docs/types/lockProStatus.html +1 -0
- package/docs/types/lockProWebhookContext.html +1 -0
- package/docs/types/lockServiceData.html +1 -0
- package/docs/types/lockStatus.html +1 -0
- package/docs/types/lockWebhookContext.html +1 -0
- package/docs/types/meter.html +1 -0
- package/docs/types/meterPlus.html +1 -0
- package/docs/types/meterPlusServiceData.html +1 -0
- package/docs/types/meterPlusStatus.html +1 -0
- package/docs/types/meterPlusWebhookContext.html +1 -0
- package/docs/types/meterServiceData.html +1 -0
- package/docs/types/meterStatus.html +1 -0
- package/docs/types/meterWebhookContext.html +1 -0
- package/docs/types/motionSensor.html +1 -0
- package/docs/types/motionSensorServiceData.html +1 -0
- package/docs/types/motionSensorStatus.html +1 -0
- package/docs/types/motionSensorWebhookContext.html +1 -0
- package/docs/types/outdoorMeter.html +1 -0
- package/docs/types/outdoorMeterServiceData.html +1 -0
- package/docs/types/outdoorMeterStatus.html +1 -0
- package/docs/types/outdoorMeterWebhookContext.html +1 -0
- package/docs/types/panTiltCamWebhookContext.html +1 -0
- package/docs/types/pantiltCam.html +1 -0
- package/docs/types/pantiltCam2k.html +1 -0
- package/docs/types/plug.html +1 -0
- package/docs/types/plugMini.html +1 -0
- package/docs/types/plugMiniJPServiceData.html +1 -0
- package/docs/types/plugMiniJPWebhookContext.html +1 -0
- package/docs/types/plugMiniStatus.html +1 -0
- package/docs/types/plugMiniUSServiceData.html +1 -0
- package/docs/types/plugMiniUSWebhookContext.html +1 -0
- package/docs/types/plugStatus.html +1 -0
- package/docs/types/plugWebhookContext.html +1 -0
- package/docs/types/remote.html +1 -0
- package/docs/types/robotVacuumCleanerS1.html +1 -0
- package/docs/types/robotVacuumCleanerS1Plus.html +1 -0
- package/docs/types/robotVacuumCleanerS1PlusStatus.html +1 -0
- package/docs/types/robotVacuumCleanerS1PlusWebhookContext.html +1 -0
- package/docs/types/robotVacuumCleanerS1Status.html +1 -0
- package/docs/types/robotVacuumCleanerS1WebhookContext.html +1 -0
- package/docs/types/robotVacuumCleanerServiceData.html +1 -0
- package/docs/types/stripLight.html +1 -0
- package/docs/types/stripLightServiceData.html +1 -0
- package/docs/types/stripLightStatus.html +1 -0
- package/docs/types/stripLightWebhookContext.html +1 -0
- package/docs/types/waterLeakDetector.html +1 -0
- package/docs/types/waterLeakDetectorServiceData.html +1 -0
- package/docs/types/waterLeakDetectorStatus.html +1 -0
- package/docs/types/waterLeakDetectorWebhookContext.html +1 -0
- package/package.json +8 -6
- package/dist/device/woblindtilt.test.d.ts.map +0 -1
- package/dist/device/woblindtilt.test.js +0 -26
- package/dist/device/woblindtilt.test.js.map +0 -1
- package/dist/device/wobulb.test.js +0 -52
- package/dist/device/wobulb.test.js.map +0 -1
- package/dist/device/woceilinglight.test.d.ts.map +0 -1
- package/dist/device/woceilinglight.test.js +0 -63
- package/dist/device/woceilinglight.test.js.map +0 -1
- package/dist/device/wocontact.test.d.ts.map +0 -1
- package/dist/device/wocontact.test.js +0 -34
- package/dist/device/wocontact.test.js.map +0 -1
- package/dist/device/wocurtain.test.d.ts.map +0 -1
- package/dist/device/wocurtain.test.js +0 -33
- package/dist/device/wocurtain.test.js.map +0 -1
- package/dist/device/wohand.test.js +0 -62
- package/dist/device/wohand.test.js.map +0 -1
- package/dist/device/wohand2.test.d.ts +0 -2
- package/dist/device/wohand2.test.d.ts.map +0 -1
- package/dist/device/wohand2.test.js.map +0 -1
- package/dist/device/wohumi.test.js.map +0 -1
- package/dist/device/woiosensorth.test.d.ts.map +0 -1
- package/dist/device/woiosensorth.test.js.map +0 -1
- package/dist/device/woplugmini.test.d.ts.map +0 -1
- package/dist/device/woplugmini.test.js.map +0 -1
- package/dist/device/wopresence.test.d.ts.map +0 -1
- package/dist/device/wopresence.test.js.map +0 -1
- package/dist/device/wosensorth.test.d.ts.map +0 -1
- package/dist/device/wosensorth.test.js.map +0 -1
- package/dist/device/wosmartlock.test.d.ts.map +0 -1
- package/dist/device/wosmartlock.test.js +0 -84
- package/dist/device/wosmartlock.test.js.map +0 -1
- package/dist/device/wosmartlockpro.test.d.ts.map +0 -1
- package/dist/device/wosmartlockpro.test.js.map +0 -1
- package/dist/device/wostrip.test.js.map +0 -1
- package/dist/switchbot.d.ts.map +0 -1
- package/dist/switchbot.js +0 -259
- package/dist/switchbot.js.map +0 -1
- package/dist/types/pushbody.d.ts +0 -6
- package/dist/types/pushbody.d.ts.map +0 -1
- package/dist/types/pushbody.js +0 -2
- package/dist/types/pushbody.js.map +0 -1
- package/docs/classes/SwitchBot.html +0 -16
- package/docs/types/SwitchBotBLEDevice.html +0 -1
- /package/dist/{device → test}/woblindtilt.test.d.ts +0 -0
- /package/dist/{device → test}/wobulb.test.d.ts +0 -0
- /package/dist/{device → test}/woceilinglight.test.d.ts +0 -0
- /package/dist/{device → test}/wocontact.test.d.ts +0 -0
- /package/dist/{device → test}/wocurtain.test.d.ts +0 -0
- /package/dist/{device → test}/wohand.test.d.ts +0 -0
- /package/dist/{device → test}/wohumi.test.d.ts +0 -0
- /package/dist/{device → test}/woiosensorth.test.d.ts +0 -0
- /package/dist/{device → test}/woplugmini.test.d.ts +0 -0
- /package/dist/{device → test}/wopresence.test.d.ts +0 -0
- /package/dist/{device → test}/wosensorth.test.d.ts +0 -0
- /package/dist/{device → test}/wosmartlock.test.d.ts +0 -0
- /package/dist/{device → test}/wosmartlockpro.test.d.ts +0 -0
- /package/dist/{device → test}/wostrip.test.d.ts +0 -0
|
@@ -1,60 +1,52 @@
|
|
|
1
|
-
import { Buffer } from 'node:buffer';
|
|
2
1
|
/* Copyright(C) 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
|
|
3
2
|
*
|
|
4
3
|
* woplugmini.ts: Switchbot BLE API registration.
|
|
5
4
|
*/
|
|
5
|
+
import { Buffer } from 'node:buffer';
|
|
6
6
|
import { SwitchbotDevice } from '../device.js';
|
|
7
7
|
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
|
|
8
8
|
/**
|
|
9
|
+
* Class representing a WoPlugMini device.
|
|
9
10
|
* @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/plugmini.md
|
|
10
11
|
*/
|
|
11
12
|
export class WoPlugMini extends SwitchbotDevice {
|
|
13
|
+
/**
|
|
14
|
+
* Parses the service data for WoPlugMini US.
|
|
15
|
+
* @param {Buffer} manufacturerData - The manufacturer data buffer.
|
|
16
|
+
* @param {Function} [onlog] - Optional logging function.
|
|
17
|
+
* @returns {Promise<object | null>} - Parsed service data or null if invalid.
|
|
18
|
+
*/
|
|
12
19
|
static async parseServiceData_US(manufacturerData, onlog) {
|
|
13
|
-
|
|
14
|
-
if (onlog && typeof onlog === 'function') {
|
|
15
|
-
onlog(`[parseServiceDataForWoPlugMiniUS] Buffer length ${manufacturerData.length} should be 14`);
|
|
16
|
-
}
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
const byte9 = manufacturerData.readUInt8(9); // byte9: plug mini state; 0x00=off, 0x80=on
|
|
20
|
-
const byte10 = manufacturerData.readUInt8(10); // byte10: bit0: 0=no delay,1=delay, bit1:0=no timer, 1=timer; bit2:0=no sync time, 1=sync'ed time
|
|
21
|
-
const byte11 = manufacturerData.readUInt8(11); // byte11: wifi rssi
|
|
22
|
-
const byte12 = manufacturerData.readUInt8(12); // byte12: bit7: overload?
|
|
23
|
-
const byte13 = manufacturerData.readUInt8(13); // byte12[bit0~6] + byte13: current power value
|
|
24
|
-
const state = byte9 === 0x00 ? 'off' : byte9 === 0x80 ? 'on' : null;
|
|
25
|
-
const delay = !!(byte10 & 0b00000001);
|
|
26
|
-
const timer = !!(byte10 & 0b00000010);
|
|
27
|
-
const syncUtcTime = !!(byte10 & 0b00000100);
|
|
28
|
-
const wifiRssi = byte11;
|
|
29
|
-
const overload = !!(byte12 & 0b10000000);
|
|
30
|
-
const currentPower = (((byte12 & 0b01111111) << 8) + byte13) / 10; // in watt
|
|
31
|
-
// TODO: voltage ???
|
|
32
|
-
const data = {
|
|
33
|
-
model: SwitchBotBLEModel.PlugMiniUS,
|
|
34
|
-
modelName: SwitchBotBLEModelName.PlugMini,
|
|
35
|
-
modelFriendlyName: SwitchBotBLEModelFriendlyName.PlugMini,
|
|
36
|
-
state,
|
|
37
|
-
delay,
|
|
38
|
-
timer,
|
|
39
|
-
syncUtcTime,
|
|
40
|
-
wifiRssi,
|
|
41
|
-
overload,
|
|
42
|
-
currentPower,
|
|
43
|
-
};
|
|
44
|
-
return data;
|
|
20
|
+
return this.parseServiceData(manufacturerData, SwitchBotBLEModel.PlugMiniUS, onlog);
|
|
45
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Parses the service data for WoPlugMini JP.
|
|
24
|
+
* @param {Buffer} manufacturerData - The manufacturer data buffer.
|
|
25
|
+
* @param {Function} [onlog] - Optional logging function.
|
|
26
|
+
* @returns {Promise<object | null>} - Parsed service data or null if invalid.
|
|
27
|
+
*/
|
|
46
28
|
static async parseServiceData_JP(manufacturerData, onlog) {
|
|
29
|
+
return this.parseServiceData(manufacturerData, SwitchBotBLEModel.PlugMiniJP, onlog);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Parses the service data for WoPlugMini.
|
|
33
|
+
* @param {Buffer} manufacturerData - The manufacturer data buffer.
|
|
34
|
+
* @param {SwitchBotBLEModel} model - The model of the plug mini.
|
|
35
|
+
* @param {Function} [onlog] - Optional logging function.
|
|
36
|
+
* @returns {Promise<object | null>} - Parsed service data or null if invalid.
|
|
37
|
+
*/
|
|
38
|
+
static async parseServiceData(manufacturerData, model, onlog) {
|
|
47
39
|
if (manufacturerData.length !== 14) {
|
|
48
|
-
|
|
49
|
-
onlog(`[parseServiceDataForWoPlugMiniJP] Buffer length ${manufacturerData.length} should be 14`);
|
|
50
|
-
}
|
|
40
|
+
onlog?.(`[parseServiceDataForWoPlugMini] Buffer length ${manufacturerData.length} should be 14`);
|
|
51
41
|
return null;
|
|
52
42
|
}
|
|
53
|
-
const byte9
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
43
|
+
const [byte9, byte10, byte11, byte12, byte13] = [
|
|
44
|
+
manufacturerData.readUInt8(9),
|
|
45
|
+
manufacturerData.readUInt8(10),
|
|
46
|
+
manufacturerData.readUInt8(11),
|
|
47
|
+
manufacturerData.readUInt8(12),
|
|
48
|
+
manufacturerData.readUInt8(13),
|
|
49
|
+
];
|
|
58
50
|
const state = byte9 === 0x00 ? 'off' : byte9 === 0x80 ? 'on' : null;
|
|
59
51
|
const delay = !!(byte10 & 0b00000001);
|
|
60
52
|
const timer = !!(byte10 & 0b00000010);
|
|
@@ -62,9 +54,8 @@ export class WoPlugMini extends SwitchbotDevice {
|
|
|
62
54
|
const wifiRssi = byte11;
|
|
63
55
|
const overload = !!(byte12 & 0b10000000);
|
|
64
56
|
const currentPower = (((byte12 & 0b01111111) << 8) + byte13) / 10; // in watt
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
model: SwitchBotBLEModel.PlugMiniJP,
|
|
57
|
+
return {
|
|
58
|
+
model,
|
|
68
59
|
modelName: SwitchBotBLEModelName.PlugMini,
|
|
69
60
|
modelFriendlyName: SwitchBotBLEModelFriendlyName.PlugMini,
|
|
70
61
|
state,
|
|
@@ -75,61 +66,64 @@ export class WoPlugMini extends SwitchbotDevice {
|
|
|
75
66
|
overload,
|
|
76
67
|
currentPower,
|
|
77
68
|
};
|
|
78
|
-
return data;
|
|
79
69
|
}
|
|
80
70
|
/**
|
|
81
|
-
*
|
|
71
|
+
* Reads the state of the plug.
|
|
72
|
+
* @returns {Promise<boolean>} - Resolves with a boolean that tells whether the plug is ON (true) or OFF (false).
|
|
82
73
|
*/
|
|
83
74
|
async readState() {
|
|
84
|
-
return
|
|
75
|
+
return this.operatePlug([0x57, 0x0F, 0x51, 0x01]);
|
|
85
76
|
}
|
|
86
77
|
/**
|
|
78
|
+
* Sets the state of the plug.
|
|
87
79
|
* @private
|
|
80
|
+
* @param {number[]} reqByteArray - The request byte array.
|
|
81
|
+
* @returns {Promise<boolean>} - Resolves with a boolean that tells whether the plug is ON (true) or OFF (false).
|
|
88
82
|
*/
|
|
89
83
|
async setState(reqByteArray) {
|
|
90
84
|
const base = [0x57, 0x0F, 0x50, 0x01];
|
|
91
|
-
return
|
|
85
|
+
return this.operatePlug([...base, ...reqByteArray]);
|
|
92
86
|
}
|
|
93
87
|
/**
|
|
94
|
-
*
|
|
88
|
+
* Turns on the plug.
|
|
89
|
+
* @returns {Promise<boolean>} - Resolves with a boolean that tells whether the plug is ON (true) or OFF (false).
|
|
95
90
|
*/
|
|
96
91
|
async turnOn() {
|
|
97
|
-
return
|
|
92
|
+
return this.setState([0x01, 0x80]);
|
|
98
93
|
}
|
|
99
94
|
/**
|
|
100
|
-
*
|
|
95
|
+
* Turns off the plug.
|
|
96
|
+
* @returns {Promise<boolean>} - Resolves with a boolean that tells whether the plug is ON (true) or OFF (false).
|
|
101
97
|
*/
|
|
102
98
|
async turnOff() {
|
|
103
|
-
return
|
|
99
|
+
return this.setState([0x01, 0x00]);
|
|
104
100
|
}
|
|
105
101
|
/**
|
|
106
|
-
*
|
|
102
|
+
* Toggles the state of the plug.
|
|
103
|
+
* @returns {Promise<boolean>} - Resolves with a boolean that tells whether the plug is ON (true) or OFF (false).
|
|
107
104
|
*/
|
|
108
105
|
async toggle() {
|
|
109
|
-
return
|
|
106
|
+
return this.setState([0x02, 0x80]);
|
|
110
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Operates the plug with the given bytes.
|
|
110
|
+
* @param {number[]} bytes - The byte array to send to the plug.
|
|
111
|
+
* @returns {Promise<boolean>} - Resolves with a boolean that tells whether the plug is ON (true) or OFF (false).
|
|
112
|
+
*/
|
|
111
113
|
async operatePlug(bytes) {
|
|
112
|
-
const
|
|
113
|
-
await this.command(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
throw new Error(`Expecting a 2-byte response, got instead: 0x${res_buf.toString('hex')}`);
|
|
128
|
-
}
|
|
129
|
-
})
|
|
130
|
-
.catch((error) => {
|
|
131
|
-
throw error;
|
|
132
|
-
});
|
|
114
|
+
const reqBuf = Buffer.from(bytes);
|
|
115
|
+
const resBytes = await this.command(reqBuf);
|
|
116
|
+
const resBuf = Buffer.from(resBytes);
|
|
117
|
+
if (resBuf.length !== 2) {
|
|
118
|
+
throw new Error(`Expecting a 2-byte response, got instead: 0x${resBuf.toString('hex')}`);
|
|
119
|
+
}
|
|
120
|
+
const code = resBuf.readUInt8(1);
|
|
121
|
+
if (code === 0x00 || code === 0x80) {
|
|
122
|
+
return code === 0x80;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
throw new Error(`The device returned an error: 0x${resBuf.toString('hex')}`);
|
|
126
|
+
}
|
|
133
127
|
}
|
|
134
128
|
}
|
|
135
129
|
//# sourceMappingURL=woplugmini.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"woplugmini.js","sourceRoot":"","sources":["../../src/device/woplugmini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC
|
|
1
|
+
{"version":3,"file":"woplugmini.js","sourceRoot":"","sources":["../../src/device/woplugmini.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import type { Buffer } from 'node:buffer';
|
|
2
2
|
import type { motionSensorServiceData } from '../types/bledevicestatus.js';
|
|
3
3
|
import { SwitchbotDevice } from '../device.js';
|
|
4
|
+
/**
|
|
5
|
+
* Class representing a WoPresence device.
|
|
6
|
+
* @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/meter.md
|
|
7
|
+
*/
|
|
4
8
|
export declare class WoPresence extends SwitchbotDevice {
|
|
5
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Parses the service data for WoPresence.
|
|
11
|
+
* @param {Buffer} serviceData - The service data buffer.
|
|
12
|
+
* @param {Function} [onlog] - Optional logging function.
|
|
13
|
+
* @returns {Promise<motionSensorServiceData | null>} - Parsed service data or null if invalid.
|
|
14
|
+
*/
|
|
15
|
+
static parseServiceData(serviceData: Buffer, onlog?: (message: string) => void): Promise<motionSensorServiceData | null>;
|
|
6
16
|
}
|
|
7
17
|
//# sourceMappingURL=wopresence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wopresence.d.ts","sourceRoot":"","sources":["../../src/device/wopresence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wopresence.d.ts","sourceRoot":"","sources":["../../src/device/wopresence.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C;;;GAGG;AACH,qBAAa,UAAW,SAAQ,eAAe;IAC7C;;;;;OAKG;WACU,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;CAwB3C"}
|
|
@@ -1,40 +1,34 @@
|
|
|
1
|
-
/* Copyright(C) 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
|
|
2
|
-
*
|
|
3
|
-
* wopresence.ts: Switchbot BLE API registration.
|
|
4
|
-
*/
|
|
5
1
|
import { SwitchbotDevice } from '../device.js';
|
|
6
2
|
import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Class representing a WoPresence device.
|
|
5
|
+
* @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/meter.md
|
|
6
|
+
*/
|
|
7
7
|
export class WoPresence extends SwitchbotDevice {
|
|
8
|
+
/**
|
|
9
|
+
* Parses the service data for WoPresence.
|
|
10
|
+
* @param {Buffer} serviceData - The service data buffer.
|
|
11
|
+
* @param {Function} [onlog] - Optional logging function.
|
|
12
|
+
* @returns {Promise<motionSensorServiceData | null>} - Parsed service data or null if invalid.
|
|
13
|
+
*/
|
|
8
14
|
static async parseServiceData(serviceData, onlog) {
|
|
9
15
|
if (serviceData.length !== 6) {
|
|
10
|
-
|
|
11
|
-
onlog(`[parseServiceDataForWoPresence] Buffer length ${serviceData.length} !== 6!`);
|
|
12
|
-
}
|
|
16
|
+
onlog?.(`[parseServiceDataForWoPresence] Buffer length ${serviceData.length} !== 6!`);
|
|
13
17
|
return null;
|
|
14
18
|
}
|
|
15
|
-
const byte1 = serviceData
|
|
16
|
-
const byte2 = serviceData.readUInt8(2);
|
|
17
|
-
const byte5 = serviceData.readUInt8(5);
|
|
18
|
-
const tested = !!(byte1 & 0b10000000);
|
|
19
|
-
const movement = !!(byte1 & 0b01000000);
|
|
20
|
-
const battery = byte2 & 0b01111111;
|
|
21
|
-
const led = (byte5 & 0b00100000) >> 5;
|
|
22
|
-
const iot = (byte5 & 0b00010000) >> 4;
|
|
23
|
-
const sense_distance = (byte5 & 0b00001100) >> 2;
|
|
24
|
-
const lightLevel = byte5 & 0b00000011;
|
|
25
|
-
const is_light = !!(byte5 & 0b00000010);
|
|
19
|
+
const [byte1, byte2, , , , byte5] = serviceData;
|
|
26
20
|
const data = {
|
|
27
21
|
model: SwitchBotBLEModel.MotionSensor,
|
|
28
22
|
modelName: SwitchBotBLEModelName.MotionSensor,
|
|
29
23
|
modelFriendlyName: SwitchBotBLEModelFriendlyName.MotionSensor,
|
|
30
|
-
tested,
|
|
31
|
-
movement,
|
|
32
|
-
battery,
|
|
33
|
-
led,
|
|
34
|
-
iot,
|
|
35
|
-
sense_distance,
|
|
36
|
-
lightLevel:
|
|
37
|
-
is_light,
|
|
24
|
+
tested: !!(byte1 & 0b10000000),
|
|
25
|
+
movement: !!(byte1 & 0b01000000),
|
|
26
|
+
battery: byte2 & 0b01111111,
|
|
27
|
+
led: (byte5 & 0b00100000) >> 5,
|
|
28
|
+
iot: (byte5 & 0b00010000) >> 4,
|
|
29
|
+
sense_distance: (byte5 & 0b00001100) >> 2,
|
|
30
|
+
lightLevel: (byte5 & 0b00000011) === 1 ? 'dark' : (byte5 & 0b00000011) === 2 ? 'bright' : 'unknown',
|
|
31
|
+
is_light: !!(byte5 & 0b00000010),
|
|
38
32
|
};
|
|
39
33
|
return data;
|
|
40
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wopresence.js","sourceRoot":"","sources":["../../src/device/wopresence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wopresence.js","sourceRoot":"","sources":["../../src/device/wopresence.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,WAAmB,EACnB,KAAiC;QAEjC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,KAAK,EAAE,CAAC,iDAAiD,WAAW,CAAC,MAAM,SAAS,CAAC,CAAA;YACrF,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,AAAD,EAAG,AAAD,EAAG,AAAD,EAAG,KAAK,CAAC,GAAG,WAAW,CAAA;QAE/C,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,iBAAiB,CAAC,YAAY;YACrC,SAAS,EAAE,qBAAqB,CAAC,YAAY;YAC7C,iBAAiB,EAAE,6BAA6B,CAAC,YAAY;YAC7D,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC;YAC9B,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC;YAChC,OAAO,EAAE,KAAK,GAAG,UAAU;YAC3B,GAAG,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;YAC9B,GAAG,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;YAC9B,cAAc,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;YACzC,UAAU,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACnG,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC;SACjC,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
import type { Buffer } from 'node:buffer';
|
|
2
2
|
import type { meterPlusServiceData, meterServiceData } from '../types/bledevicestatus.js';
|
|
3
3
|
import { SwitchbotDevice } from '../device.js';
|
|
4
|
+
/**
|
|
5
|
+
* Class representing a WoSensorTH device.
|
|
6
|
+
* @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/meter.md
|
|
7
|
+
*/
|
|
4
8
|
export declare class WoSensorTH extends SwitchbotDevice {
|
|
5
|
-
|
|
6
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Parses the service data for WoSensorTH.
|
|
11
|
+
* @param {Buffer} serviceData - The service data buffer.
|
|
12
|
+
* @param {Function} [onlog] - Optional logging function.
|
|
13
|
+
* @returns {Promise<meterServiceData | null>} - Parsed service data or null if invalid.
|
|
14
|
+
*/
|
|
15
|
+
static parseServiceData(serviceData: Buffer, onlog?: (message: string) => void): Promise<meterServiceData | null>;
|
|
16
|
+
/**
|
|
17
|
+
* Parses the service data for WoSensorTH Plus.
|
|
18
|
+
* @param {Buffer} serviceData - The service data buffer.
|
|
19
|
+
* @param {Function} [onlog] - Optional logging function.
|
|
20
|
+
* @returns {Promise<meterPlusServiceData | null>} - Parsed service data or null if invalid.
|
|
21
|
+
*/
|
|
22
|
+
static parseServiceData_Plus(serviceData: Buffer, onlog?: (message: string) => void): Promise<meterPlusServiceData | null>;
|
|
7
23
|
}
|
|
8
24
|
//# sourceMappingURL=wosensorth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosensorth.d.ts","sourceRoot":"","sources":["../../src/device/wosensorth.ts"],"names":[],"mappings":"
|
|
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,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C;;;GAGG;AACH,qBAAa,UAAW,SAAQ,eAAe;IAC7C;;;;;OAKG;WACU,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAuBnC;;;;;OAKG;WACU,qBAAqB,CAChC,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;CAsBxC"}
|
|
@@ -1,77 +1,61 @@
|
|
|
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/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Class representing a WoSensorTH device.
|
|
5
|
+
* @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/meter.md
|
|
6
|
+
*/
|
|
7
7
|
export class WoSensorTH extends SwitchbotDevice {
|
|
8
|
+
/**
|
|
9
|
+
* Parses the service data for WoSensorTH.
|
|
10
|
+
* @param {Buffer} serviceData - The service data buffer.
|
|
11
|
+
* @param {Function} [onlog] - Optional logging function.
|
|
12
|
+
* @returns {Promise<meterServiceData | null>} - Parsed service data or null if invalid.
|
|
13
|
+
*/
|
|
8
14
|
static async parseServiceData(serviceData, onlog) {
|
|
9
15
|
if (serviceData.length !== 6) {
|
|
10
|
-
|
|
11
|
-
onlog(`[parseServiceDataForWoSensorTH] Buffer length ${serviceData.length} !== 6!`);
|
|
12
|
-
}
|
|
16
|
+
onlog?.(`[parseServiceDataForWoSensorTH] Buffer length ${serviceData.length} !== 6!`);
|
|
13
17
|
return null;
|
|
14
18
|
}
|
|
15
|
-
const byte2 = serviceData.readUInt8(2);
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
const temp_c = temp_sign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
|
|
21
|
-
const temp_f = Math.round(((temp_c * 9 / 5) + 32) * 10) / 10;
|
|
22
|
-
const data = {
|
|
19
|
+
const [byte2, byte3, byte4, byte5] = [serviceData.readUInt8(2), serviceData.readUInt8(3), serviceData.readUInt8(4), serviceData.readUInt8(5)];
|
|
20
|
+
const tempSign = byte4 & 0b10000000 ? 1 : -1;
|
|
21
|
+
const tempC = tempSign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
|
|
22
|
+
const tempF = Math.round(((tempC * 9 / 5) + 32) * 10) / 10;
|
|
23
|
+
return {
|
|
23
24
|
model: SwitchBotBLEModel.Meter,
|
|
24
25
|
modelName: SwitchBotBLEModelName.Meter,
|
|
25
26
|
modelFriendlyName: SwitchBotBLEModelFriendlyName.Meter,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
* Use the `celcius` and `fahrenheit` properties directly instead.
|
|
29
|
-
*/
|
|
30
|
-
temperature: {
|
|
31
|
-
c: temp_c,
|
|
32
|
-
f: temp_f,
|
|
33
|
-
},
|
|
34
|
-
celcius: temp_c,
|
|
35
|
-
fahrenheit: temp_f,
|
|
27
|
+
celsius: tempC,
|
|
28
|
+
fahrenheit: tempF,
|
|
36
29
|
fahrenheit_mode: !!(byte5 & 0b10000000),
|
|
37
30
|
humidity: byte5 & 0b01111111,
|
|
38
31
|
battery: byte2 & 0b01111111,
|
|
39
32
|
};
|
|
40
|
-
return data;
|
|
41
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Parses the service data for WoSensorTH Plus.
|
|
36
|
+
* @param {Buffer} serviceData - The service data buffer.
|
|
37
|
+
* @param {Function} [onlog] - Optional logging function.
|
|
38
|
+
* @returns {Promise<meterPlusServiceData | null>} - Parsed service data or null if invalid.
|
|
39
|
+
*/
|
|
42
40
|
static async parseServiceData_Plus(serviceData, onlog) {
|
|
43
41
|
if (serviceData.length !== 6) {
|
|
44
|
-
|
|
45
|
-
onlog(`[parseServiceDataForWoSensorTHPlus] Buffer length ${serviceData.length} !== 6!`);
|
|
46
|
-
}
|
|
42
|
+
onlog?.(`[parseServiceDataForWoSensorTHPlus] Buffer length ${serviceData.length} !== 6!`);
|
|
47
43
|
return null;
|
|
48
44
|
}
|
|
49
|
-
const byte2 = serviceData.readUInt8(2);
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
const temp_c = temp_sign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
|
|
55
|
-
const temp_f = Math.round(((temp_c * 9 / 5) + 32) * 10) / 10;
|
|
56
|
-
const data = {
|
|
45
|
+
const [byte2, byte3, byte4, byte5] = [serviceData.readUInt8(2), serviceData.readUInt8(3), serviceData.readUInt8(4), serviceData.readUInt8(5)];
|
|
46
|
+
const tempSign = byte4 & 0b10000000 ? 1 : -1;
|
|
47
|
+
const tempC = tempSign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
|
|
48
|
+
const tempF = Math.round(((tempC * 9 / 5) + 32) * 10) / 10;
|
|
49
|
+
return {
|
|
57
50
|
model: SwitchBotBLEModel.MeterPlus,
|
|
58
51
|
modelName: SwitchBotBLEModelName.MeterPlus,
|
|
59
52
|
modelFriendlyName: SwitchBotBLEModelFriendlyName.MeterPlus,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
* Use the `celcius` and `fahrenheit` properties directly instead.
|
|
63
|
-
*/
|
|
64
|
-
temperature: {
|
|
65
|
-
c: temp_c,
|
|
66
|
-
f: temp_f,
|
|
67
|
-
},
|
|
68
|
-
celcius: temp_c,
|
|
69
|
-
fahrenheit: temp_f,
|
|
53
|
+
celsius: tempC,
|
|
54
|
+
fahrenheit: tempF,
|
|
70
55
|
fahrenheit_mode: !!(byte5 & 0b10000000),
|
|
71
56
|
humidity: byte5 & 0b01111111,
|
|
72
57
|
battery: byte2 & 0b01111111,
|
|
73
58
|
};
|
|
74
|
-
return data;
|
|
75
59
|
}
|
|
76
60
|
}
|
|
77
61
|
//# sourceMappingURL=wosensorth.js.map
|
|
@@ -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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"}
|
|
@@ -2,17 +2,14 @@ import type * as Noble from '@stoprocent/noble';
|
|
|
2
2
|
import type { lockServiceData } from '../types/bledevicestatus.js';
|
|
3
3
|
import { Buffer } from 'node:buffer';
|
|
4
4
|
import { SwitchbotDevice } from '../device.js';
|
|
5
|
+
/**
|
|
6
|
+
* Class representing a WoSmartLock device.
|
|
7
|
+
* @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/lock.md
|
|
8
|
+
*/
|
|
5
9
|
export declare class WoSmartLock extends SwitchbotDevice {
|
|
6
10
|
iv: Buffer | null;
|
|
7
11
|
key_id: string;
|
|
8
12
|
encryption_key: Buffer | null;
|
|
9
|
-
static COMMAND_GET_CKiv: string;
|
|
10
|
-
static COMMAND_LOCK_INFO: string;
|
|
11
|
-
static COMMAND_UNLOCK: string;
|
|
12
|
-
static COMMAND_UNLOCK_NO_UNLATCH: string;
|
|
13
|
-
static COMMAND_LOCK: string;
|
|
14
|
-
static COMMAND_ENABLE_NOTIFICATIONS: string;
|
|
15
|
-
static COMMAND_DISABLE_NOTIFICATIONS: string;
|
|
16
13
|
static Result: {
|
|
17
14
|
ERROR: number;
|
|
18
15
|
SUCCESS: number;
|
|
@@ -20,17 +17,63 @@ export declare class WoSmartLock extends SwitchbotDevice {
|
|
|
20
17
|
};
|
|
21
18
|
static validateResponse(res: Buffer): Promise<number>;
|
|
22
19
|
static getLockStatus(code: number): string;
|
|
23
|
-
static parseServiceData(serviceData: Buffer, manufacturerData: Buffer, onlog
|
|
20
|
+
static parseServiceData(serviceData: Buffer, manufacturerData: Buffer, onlog?: (message: string) => void): Promise<lockServiceData | null>;
|
|
24
21
|
constructor(peripheral: Noble.Peripheral, noble: typeof Noble);
|
|
22
|
+
/**
|
|
23
|
+
* Initializes the encryption key info for valid lock communication.
|
|
24
|
+
* @param {string} keyId - The key ID.
|
|
25
|
+
* @param {string} encryptionKey - The encryption key.
|
|
26
|
+
*/
|
|
25
27
|
setKey(keyId: string, encryptionKey: string): Promise<void>;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Unlocks the Smart Lock.
|
|
30
|
+
* @returns {Promise<number>} - The result of the unlock operation.
|
|
31
|
+
*/
|
|
32
|
+
unlock(): Promise<number>;
|
|
33
|
+
/**
|
|
34
|
+
* Unlocks the Smart Lock without unlatching the door.
|
|
35
|
+
* @returns {Promise<number>} - The result of the unlock operation.
|
|
36
|
+
*/
|
|
37
|
+
unlockNoUnlatch(): Promise<number>;
|
|
38
|
+
/**
|
|
39
|
+
* Locks the Smart Lock.
|
|
40
|
+
* @returns {Promise<number>} - The result of the lock operation.
|
|
41
|
+
*/
|
|
42
|
+
lock(): Promise<number>;
|
|
43
|
+
/**
|
|
44
|
+
* Gets general state info from the Smart Lock.
|
|
45
|
+
* @returns {Promise<object | null>} - The state object or null if an error occurred.
|
|
46
|
+
*/
|
|
47
|
+
info(): Promise<object | null>;
|
|
48
|
+
/**
|
|
49
|
+
* Encrypts a string using AES-128-CTR.
|
|
50
|
+
* @param {string} str - The string to encrypt.
|
|
51
|
+
* @returns {Promise<string>} - The encrypted string in hex format.
|
|
52
|
+
*/
|
|
30
53
|
encrypt(str: string): Promise<string>;
|
|
54
|
+
/**
|
|
55
|
+
* Decrypts a buffer using AES-128-CTR.
|
|
56
|
+
* @param {Buffer} data - The data to decrypt.
|
|
57
|
+
* @returns {Promise<Buffer>} - The decrypted data.
|
|
58
|
+
*/
|
|
31
59
|
decrypt(data: Buffer): Promise<Buffer>;
|
|
60
|
+
/**
|
|
61
|
+
* Retrieves the IV from the device.
|
|
62
|
+
* @returns {Promise<Buffer>} - The IV buffer.
|
|
63
|
+
*/
|
|
32
64
|
getIv(): Promise<Buffer>;
|
|
65
|
+
/**
|
|
66
|
+
* Sends an encrypted command to the device.
|
|
67
|
+
* @param {string} key - The command key.
|
|
68
|
+
* @returns {Promise<Buffer>} - The response buffer.
|
|
69
|
+
*/
|
|
33
70
|
encryptedCommand(key: string): Promise<Buffer>;
|
|
34
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Operates the lock with the given command.
|
|
73
|
+
* @param {string} key - The command key.
|
|
74
|
+
* @param {boolean} [encrypt] - Whether to encrypt the command.
|
|
75
|
+
* @returns {Promise<Buffer>} - The response buffer.
|
|
76
|
+
*/
|
|
77
|
+
operateLock(key: string, encrypt?: boolean): Promise<Buffer>;
|
|
35
78
|
}
|
|
36
79
|
//# sourceMappingURL=wosmartlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wosmartlock.d.ts","sourceRoot":"","sources":["../../src/device/wosmartlock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wosmartlock.d.ts","sourceRoot":"","sources":["../../src/device/wosmartlock.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAI9C;;;GAGG;AACH,qBAAa,WAAY,SAAQ,eAAe;IACvC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAO;IACxB,MAAM,EAAE,MAAM,CAAK;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAO;IAE3C,MAAM,CAAC,MAAM;;;;MAIZ;WAEY,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU3D,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAa7B,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;gBA6BtB,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,KAAK;IAI7D;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjE;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAK/B;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAKxC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAK7B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAcpC;;;;OAIG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3C;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAY9B;;;;OAIG;IACG,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBpD;;;;;OAKG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAczE"}
|