node-switchbot 2.5.0-beta.3 → 2.5.0-beta.31
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 +32 -21
- package/dist/advertising.d.ts.map +1 -1
- package/dist/advertising.js +72 -76
- package/dist/advertising.js.map +1 -1
- package/dist/device/woblindtilt.d.ts +21 -51
- package/dist/device/woblindtilt.d.ts.map +1 -1
- package/dist/device/woblindtilt.js +40 -103
- package/dist/device/woblindtilt.js.map +1 -1
- package/dist/device/wobulb.d.ts +42 -15
- package/dist/device/wobulb.d.ts.map +1 -1
- package/dist/device/wobulb.js +71 -131
- 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 -174
- package/dist/device/woceilinglight.js.map +1 -1
- package/dist/device/wocontact.d.ts +12 -1
- package/dist/device/wocontact.d.ts.map +1 -1
- package/dist/device/wocontact.js +23 -22
- package/dist/device/wocontact.js.map +1 -1
- package/dist/device/wocurtain.d.ts +40 -1
- package/dist/device/wocurtain.d.ts.map +1 -1
- package/dist/device/wocurtain.js +68 -106
- package/dist/device/wocurtain.js.map +1 -1
- package/dist/device/wohand.d.ts +38 -2
- package/dist/device/wohand.d.ts.map +1 -1
- package/dist/device/wohand.js +54 -92
- package/dist/device/wohand.js.map +1 -1
- package/dist/device/wohub2.d.ts +12 -1
- package/dist/device/wohub2.d.ts.map +1 -1
- package/dist/device/wohub2.js +21 -29
- package/dist/device/wohub2.js.map +1 -1
- package/dist/device/wohumi.d.ts +38 -2
- package/dist/device/wohumi.d.ts.map +1 -1
- package/dist/device/wohumi.js +51 -86
- package/dist/device/wohumi.js.map +1 -1
- package/dist/device/woiosensorth.d.ts +13 -1
- package/dist/device/woiosensorth.d.ts.map +1 -1
- package/dist/device/woiosensorth.js +25 -29
- package/dist/device/woiosensorth.js.map +1 -1
- package/dist/device/woplugmini.d.ts +44 -12
- package/dist/device/woplugmini.d.ts.map +1 -1
- package/dist/device/woplugmini.js +68 -80
- package/dist/device/woplugmini.js.map +1 -1
- package/dist/device/wopresence.d.ts +12 -1
- package/dist/device/wopresence.d.ts.map +1 -1
- package/dist/device/wopresence.js +21 -27
- 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 +33 -50
- package/dist/device/wosensorth.js.map +1 -1
- package/dist/device/wosmartlock.d.ts +58 -13
- package/dist/device/wosmartlock.d.ts.map +1 -1
- package/dist/device/wosmartlock.js +108 -195
- package/dist/device/wosmartlock.js.map +1 -1
- package/dist/device/wosmartlockpro.d.ts +63 -18
- package/dist/device/wosmartlockpro.d.ts.map +1 -1
- package/dist/device/wosmartlockpro.js +116 -204
- package/dist/device/wosmartlockpro.js.map +1 -1
- package/dist/device/wostrip.d.ts +38 -18
- package/dist/device/wostrip.d.ts.map +1 -1
- package/dist/device/wostrip.js +79 -125
- 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} +14 -8
- package/dist/switchbot-ble.d.ts.map +1 -0
- package/dist/switchbot-ble.js +428 -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 +38 -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 +35 -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 +49 -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 +96 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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/test/wohub2.test.js +2 -0
- package/dist/test/wohub2.test.js.map +1 -0
- package/dist/{device → test}/wohumi.test.d.ts.map +1 -1
- package/dist/test/wohumi.test.js +2 -0
- package/dist/test/wohumi.test.js.map +1 -0
- package/dist/test/woiosensorth.test.d.ts.map +1 -0
- package/dist/test/woiosensorth.test.js +2 -0
- package/dist/test/woiosensorth.test.js.map +1 -0
- package/dist/test/woplugmini.test.d.ts.map +1 -0
- package/dist/test/woplugmini.test.js +2 -0
- package/dist/test/woplugmini.test.js.map +1 -0
- package/dist/test/wopresence.test.d.ts.map +1 -0
- package/dist/test/wopresence.test.js +2 -0
- package/dist/test/wopresence.test.js.map +1 -0
- package/dist/test/wosensorth.test.d.ts.map +1 -0
- package/dist/test/wosensorth.test.js +2 -0
- 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 +2 -0
- package/dist/test/wosmartlock.test.js.map +1 -0
- package/dist/test/wosmartlockpro.test.d.ts.map +1 -0
- package/dist/test/wosmartlockpro.test.js +2 -0
- package/dist/test/wosmartlockpro.test.js.map +1 -0
- package/dist/{device → test}/wostrip.test.d.ts.map +1 -1
- package/dist/test/wostrip.test.js +2 -0
- 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 +12 -10
- 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 +0 -50
- package/dist/device/wohand2.test.js.map +0 -1
- package/dist/device/wohumi.test.js +0 -61
- 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 +0 -39
- 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 +0 -91
- 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 +0 -42
- 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 +0 -59
- 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 +0 -124
- package/dist/device/wosmartlockpro.test.js.map +0 -1
- package/dist/device/wostrip.test.js +0 -115
- 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
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!-- Generated by Pixelmator Pro 3.6.9 -->
|
|
3
|
+
<svg width="600" height="450" viewBox="0 0 600 450" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
4
|
+
<g id="Switchbot">
|
|
5
|
+
<image id="image1" x="149" y="25" width="302" height="301" xlink:href="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAS4AAAEtCAYAAAC21I3tAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABLqADAAQAAAABAAABLQAAAAAxPDuQAAA5aUlEQVR4Ae19CXxV1bX3PudOJISEME8Coig0EGZIAtaIAs5Va1uHKvW19b1q26/f+2r7rK0+basdfe3ztXawn3WoQ9VSp6pANWpICDIG4gQyySxDEpKQ3OGc91+HJOQmd77nnHuGtX9s7rnn7GHt/z73n73XXnttSXBgBGIgUFNentc/Ehmh+nz5kqpKPZP0/t7zWSbXqiSpPfPRd4+qtst+/8GSqqqWns/4mhEgBKJeSIbEXQhsKi3tLxcUjIhIUj9ZUWRVVX0gjaF4KSYDiRlCkiaoijJAkiS517tCREPvThTh4Hsmofc7SGVSbEXcibhBkuUGEQ4fFLIcVGRZkSXpRPDEiQOz161rw3MOLkSg90vjQgic3+Q3Kiu9A9vbx0geT38pEgmosjwERFUCEpiF0dMEINAfkcjJixeiCKwx0mKoHIQ8xxDDiArkawHLbgfJrkN8V1KUw6rH06FGIq2N/frtOa+qitJxcDACTFwO7NyGysqCUDg8SoRCwzBamoSRyjyhqmejqUWIfsRCxFGITgj70IhmxCBiE0aJHwhFqcPo8X3h8x3yeb37eLrphG6ObgMTVzQetvymTfny88diyjcWHVqKRsxApJHUUMSxiF5ENwUace1G/ARxO+IGjNLqMeXc6W1s3FHS0EAkx8HGCDBx2bDzaOpXHA5P8IRC40BWUzGqmoUf5kTM9cZYcJpnFYRpZPYxXvgGRYg1ILF3Md3cd9jv38VTS6t0UepyMHGljlVOU66dNSvf5/NNwlSIlOZlmPqVQCAaTY3OqWD2rBzcJXYh7gOW7wHL1YgbQqHQ+6zwt0eHMnFZuJ92VFb2a+roKMWIajZ+WGXQ29D1pyCyz8Ji21G0ELB9F9jWg8hWQ0e2TrS1bZlWX08rmxwsiAATl8U6paGkxB8qLCxBx8zEj2m+RlpCTLWYmE4XpwGrrRuw+lqLPlhbFAjUn15V1e70RtupfUxcFugt6KXkLfPmTYnI8mx0SAVEmolIU0FaAeSQWwQ2E3nhD8gq9NP6cDC4BdPJUG5F4tqZuHL4Drw3d+7gkMezELZI52EqOAei0MgqkEORuOr4CNBKZAOmkuswGnsj6PW+Mfvtt/fHT85PjESAictIdGOUDSU7dOy+qVjVmgWr9IX4ISxEsmExkvIt6yJwFD+cN/EHpwr9t6bQ59vIU0lzO4uJyyS8aXSFv9KLUN35GF3NxucURLfZV5mEtqnVbMGPaA1IbIU/HF4xec2aI6bW7tLKmLgM7vjO6eAS6Ecuwcu9GNOMIQZXycXnAAH07WH07XLEf0Cpv2JaTc2hHIjhmiqZuAzq6k0VFcOwh24RXuhLUMVixMEGVcXFWguBo/gjtZIILOTzLWc9mDGdw8SlM65rzzlnpC8UWgzCuhjgXoDiB+lcBRdnDwSaIOYKENjLQZ/vNSYwfTuNiUsnPImw/KHQks4RFumyaEMzB0aACcyAd4CJK0tQaUoIS+uLsLp0KYpiwsoSTwdn1wgMCzMvYY/kq1Pr6shVD4cMEWDiyhA4mDUM8ft8S6CIvQwv4xIUMzDDojibuxBoxB+516D/fDEYCr0GY9bD7mq+Pq1l4koTx/oFC4rhsO5CZKMRFhEWK93TxJCTawiQ2cRriC/BweOrpdXV5CiRQ4oIMHGlCBQl21hRsRjTwmvgmO8yKF3ZrCEN7DhpbATIjALv1Ivwsf8kpo8rYqfiu70RYOLqjUiM7xhlTYDP86vhC+U67FmbFiMJ32IEskVgAwp4QlHVZ2esXr0z28Kcnp+JK0EP07RQUZRLocO6CskuA1ieBMn5ESOQLQJhvGMvKpL0N9Xvf2lGVVVjtgU6NT8TV5yexWrhQkwHr4cx4WeQhPVYcXDi2/ojQNNH/DD/Dl3qI9Pr6qr1r8H+JTJx9erD9fPnj/Ioyudw+4uItKeQAyOQGwQkqRr6r0e8GIGV1NYezY0Q1qyViatHv9SXlZGl+1L8xfssPvN6POJLRiBXCBzDj3QZjpJ7fPqqVW/kSgir1cvEhR7RtumEw5/HJY+yrPaGsjxdCKyBQ8PHfZHIMyXvvHOg66ZbP11PXPUVFZ/GC/FlvAA0PeRRllt/CfZoN53c/Qz8uD3kdt2Xa4lLMyQNhz8LK+Yv4WWYb4/3lqVkBDQEXsd7+1u4znnOrXi4krg2zZ9Px3t9GZF0WcVu7Xxut60ReB/v72NQ3j85bc2aHbZuSQbCu464SAEP5fu3gRVt1+HACNgZARXk9TTcgD9YWlPzlp0bkq7sriKujeXlV6LB/wcgnZsuUJyeEbAsAji8A3+MH5heW7vMsjLqLJgriKthwYKxkXD4GnTujcCPjv3iwAg4CgH8kN/FlrTHYHX/5Myaml2OalyMxjieuDbOm7dAeDz/Biv4L6D9fDhFjJeAbzkDAezyiOAH/TRWHR90+qqjo4lLMyiVpNvQoeTznQMj4AoE8KNeDt3Xz0tXr17p1AY7lrhgn/UZdN63QFqVTu08bhcjEA8B/LDpzMdfQWn/fLw0dr7vOOLaVFraX+Tn34hOuxkdM93OncOyMwJZIlAPve6j+AP+FBT3e7Msy1LZHUVcm8vKJkM5eRMQJiX8cEshzcIwArlBIIhqn4afr9/Dz9eq3Iigf62OIa7OrTvfAERX6w8Tl8gI2BsB/NCXQ23ys2m1tf+0d0tOSu8I4tpUXn4+hsTfxcohnbLDgRFgBGIjQKR1nxPIy/bERaSFzrgdkT45MAKMQGIEHEFetiYuJq3Ebyg/ZQTiIGB78rItcTFpxXkl+TYjkBoCtiYvWxIXk1ZqbyanYgSSIGBb8rIdcTFpJXkV+TEjkB4CtiQvWxEXk1Z6bySnZgRSRMB25GUb4mLSSvEV5GSMQGYI2Iq8bEFcTFqZvYmcixFIEwHbkJfliYtJK81Xj5MzAtkhYAvysjRxMWll9wZybkYgQwQsT15yhg0zPBs5AASrfgcVsUW84WhzBYxAFALn028Ph8qcE3XXQl8sSVzrKyrG4QCAr7EDQAu9KSyKqxDQfnuqeuvmioozrNhwSxKXrKrXAqxrrAgYy8QIuAYBuDuPqOp1Vmyv5YhrY1nZVRDqBoBlOdms2IEsEyNgJALwuPLF+vJyOuXdUsFS5LB53rxFkiR9E8PUT1kKJRaGEXArApJ0Fn6PX6ffppUgsMyq4qaKioVwMUvuaS6wEkAsSxoISJKAblLgVKWTn3Tdec8zYIDwDhkivIMGCTkQ0KJEn36/kHw+LY8IhYQaiQiVPhGVcFgoLS0i0twsIl2fra04ywZpVPycFBzIhc/ua3zXrukZB70RsNRKoyWIC6sXZXgJ7wTSF+mNNpdnDAKS1yv6nX666HfmmVr0jx4tPIWFQs7L06IHn1K/fqeICQSmV1BBaGowKJSOjpOfuO76rpw4IcLHjonQwYPdsWPPHhHct09Lo5cMbiwHPbgcOq97rOACWr+3KcOebJgzZ0TI47kXU8SbMiyCsxmIgNy/vwiAlPxjxoh+Z5wh8s4+WwTGjhX+kSOhhbSUpiExChiNhY8eFUEQWvDAARFCDO7dK8JHjogQIj2jSCM9DgkReAzj2dtzffhGzg9IDXu914A96bBWDhZAgKZtNGoqOvdcMejKKzWisoBY2YsAktWmqpiu5pfEPswcB6mKjp07Rcv69aJ13TrRtnmzUNrbT05fMcrTpqbZS2L3Er6A6f8mNOKXuWxITkdcm8rKLgd734PR1rRcguD2umna13/WLFG8ZInod9ZZ2mhKxjTP9QFEFjl+XIRJx9bUJDo+/li0bdkiWuvrRceOHZp+zaUY1eM3e2cuz2zMGXFtKCubL0vS3eh4tozPwdsvQYFOJDWgokIUX3TRyalfDuSwa5WkS2vftk2c+PBD0VxdLVrWrLFrUzKV+5848uyuXOm7ckJcWFodrsjyT4HY0kxR43yZIUAregVz5oiRt94q/NBVcdAHga1Ll2pEpk9ptinlEVlRvju1ru6g2RLnRMeleDxfwLq15YzazAbfzPpIdzX0hhtE8YUXCv+oUZqZgpn1O70uWlWlEZjLwucikrQObX7A7HabTlwby8svBWnRSCvf7Ma6sT7f8OGi6PzzxdBrr9VsqNyIgRltdqlOMB92e0vhxWUrzmp81Qycu+owlbhw2nQ5TAa/CeKa2SUAfxqDAI2wBi5aJEbddptmS2VMLVxqFwJkSOvKoKqzsMr4NWwL2ltaW7vZLAxMM8TZUFk5EMvNN/Fp08Z3LemwzvzTn8SY229n0jIebq0G2gXg2qCqZB1w49pZs7AFwpxg2ohLCgYvAzNfZU6z3FkLTQuHf/Wronjx4pNbaNwJQ05a7dKp4ims4UnC7/dvwI0nTt007sqUEVdDefmZWL68Gs0YbFxTXFwyttMUzJ4tJj37rGbaQHsFOZiLgJzvcpWtJJ2GUddNGyoq5piBvCnEFVbVz0OvdbkZDXJbHRJ0K2O+9z0x7mc/s9cWHId1lOuJ62R/XoA/mTdgymg4ixtOXPCgeAmmiOQYkIPOCNDewTMefFAUX3yx5m1B5+K5uDQQoE3lHGgzgfpZr893mdFYGEpc5IIZu8lvRCOmGN0Qt5UfgGeGCb/5jcibNMltTbdke2kzOgcNgVHYDnR1w4IFhlo3G0pcHkwRodtihbzOb3ThOeeIM373O0E+rjhYAwEPE1fPjrg8Eg5/tucNva8NI65Oj4nkr9q0lUu9wbFieYOuuEKM+8lPhKegwIriuVYmHnFFdb1fleXrO48XjHqg1xdDiKt+wYJibAUgvdZ0vQR1fTlYOSxauFCMhkEpB+shwCOuXn0Cw1TMtq4jLuj1RJevhhCXCIehLZYNV9DpgoBNCimYMUNbPbSJuK4Tk0fAfbtckaTLFUW5pO+T7O/oTlyb5s0bo0rSFbCQH5K9eFwCIdAfpDX+/vs1B3+MiDURkHnq3qdjiAMQrzRCUa87ccH4kZTxl/ZpBd/ICAGyDzrtzjtPHiiRUQmcyQwEyHJeO/TDjMrsVccl4UhE9wU6XYmLTuqBHccXgSu7z9Th5SLj0vEwLPUNG6ZDaVyE0Qh4Bw40ugo7lk+bOK/FJuxz9RReN+KiTdQYFl4PhZwpJv96gmDJsqCMH3rddaL/dF7fsGT/xBCKjl7jEBOBudgOdE1DZaVuS+G6EZfc0XERhGOFfMx+S/9mwdy52oZp7DpIPzPnyAkCTFzxYcdb/JlQe/vF8VOk90QX4npv7lzaPE16raHpVc+pYyKAE2lG3nJLzEd807oI+HCCEIfYCGBQMxKWBpd3ckXsRGnc1YW4cC7iEtRJkUO2CGCERaRFB61ysBcCdPwZh4QILOnkioSJUnmYNXERg4JNyVaDXdakgniSNKSIH/SZzyRJxY+tiIBvKE84EvULmUcQV+gx6sqauHi0lair0nyG0dbYu+4S7CIlTdwskpxXf1PqCF1GXVkRF4+2UuqolBORM8D8aXw2bsqAWSyhp7CQT09K3ifaDC3bUVdWxMWjreS9lE6KIZ//fDrJOa3FEKAzK+mgXQ5JEch61JUxcfFoK2nnpJWARlsF8+allYcTWwsBOjCDiSulPsl61JUxcXXI8vkQcVFKYnKihAjQyz70xhv5pU+IkvUf0oiL/f2n1k/Yz7w46PVmzB8ZEVdDSYkfBmUXQEReRkmtnxKmIt1I3llnJUzDD62PAE8VU+8jWmGEn+cLiEtSz3UqZUbEFSkqokMgy08Vw1fZIDDossvYm2k2AFokL08V0+6IOcrAgaVp50KGjIhLKEoZ8k7JpELOE40Aec4cesMN0Tf5my0R0EZcOEGcQ8oITFEikYz2NqdNXBvLy0djfnpuyqJxwoQI5E+ezHZbCRGy0UPY4XlxKC+HlBGQMXM7D15l0nZ/kjZxUUUQi4kr5b5JnJCcBHJwDgKBMWOc0xhzWrIQ+i7Sl6cV0iIuckvRWQk7HkoL5viJB5TRrJuDUxAInHaaU5piVjvINGJxui5v0iKucEcHGRotMKtFTq/HO3gwn4vosE5m4sqoQxdE2tvT+gue1tFhYMb5MIM4IyPROFMfBAorKvrc4xuxEVBDIRE5frw7Km1tmqtkUojLOEWaFjk0tzJwCZTLwMSVEfpn4GAN+jGsTDV3ysSFY4YmiEhkPsiLg04IsKV8LyAVRXTs2iVOfPihCO7dKzp27z4ZP/5YEFElDVCOk00cuVAmp37+ESOEb+RIzfW1D6NbH7778Z2IzqjgZx1XZtBK0gLimNLq6u2pFJAyceGYIRptse1WKqimkIYOVgiMG5dCSmcnUcNhEWlqEo0rVojDzz4rQvv3Z95gVdXKovKIAFvjlBQ4/XShbbGaM0fkn322kGjERodd6LDPkDx7UEyJaOPI58bb0J2XqZEIqaH0I661s2b5QFqfRqF85rtObxVNcbxFRTqVZs9ijtfUiIMPPSTad+wQajBoWiM6UB/FI888I+hAEm2EhlFaXkmJKDznHI3UsiExz4ABTFzp9+YAcMy5Wy+66OmJr7zSkSx7SiMur98/Beb5s5IVxs9TR4BGXG70u0UjrOa33hKH//pX0bZ5c+qAGZSSCDN06JAWaYp6dNkyQWckFuCQEjJVyYOdXR5GZTQiSzXQH6TQwYOpJud0nQhADTWntbGR/DqtSQZKSsQFJpyJgkqSFcbPU0dAm54YqGtJXRLzUkZaWsSeH/5QNFdXm1dpBjUpkJNk7JKTFP+DL79cDLrqKuEtLk6qI9P8cmVQL2cRUyVJmg0ckhJX0iWYzk2QpNvKaDMkd0ZsBPJc5lO+fetWsXXp0m4yiI2KNe8qra3ikyefFB9ee63Yiu1Zu++4Q7Rt2RJXWDeOpOOCke4D6LqgmspPli3piCtUWFjSOeJKVhY/TwOBflAQuyW0rF0rdn3ve4IIwM6BprlBLB5QbKqq0g40KVq4UJARMR1uQnoxMtvowCooh8wQwIHSpT6fbxJyr09UQlLi4mliIvgyf+aW6USksVF8fPfdtietWD3dvm2boHjwD38QgQkTNAJrev11ETpwIFZyvpcCApgqfgrJaB9cQuJKOFXkaWIKSGeYhFaenB5o9LHjtttE+OhRpzdVdGzfLg4/8QSTVvY9Te41ypP56UpIXDRNRCGkmOegMwJuGHGdoBEJVuo4MAJpIjCzk3viZktIXDxNjItb1g/SWV7PurIcFXAYCm3SC3FgBNJEIKlePS5x8TQxTajTTK60t6eZw17JNXutt9+2l9AsrVUQIAuGhNPFuMQVLCrqUpJZpTGOksPpW0JIKW+mNbyjXg5uDCGQcLoYl7g8ijIdmYm8OBiAgN1NA5JBgn1nyZLwc0YgEQIJp4sxiQum9xLcM5PvrdT3OSQSgZ/1QSDo8CVz2v/HgRHIAgE/vC2XvVFZGdNkKyZxbSwrI7cFPNrKAvVkWclli5MDnXjjYfJychcb3zZVnTw4HB4bq6KYxIWEozHqGhUrA9/TBwE3WFcXVVbqAxaX4lYERkbC4ZGxGh+TuHBzMkwhxsfKwPf0QYB8RikdSb136FNZjkoZdOmlOAAv5iuWI4m4WpshMJa4KJbMfd4qbU4py6Tfijm3jFUI30sfAVpxI1fETg7+0aM1X1dObiO3zVAEvPjDNy+WnqsPcQ1qa6NjSmiTIwcDEVBcQFy0O2DghRcaiCIX7XgE4ui5+hCX7PMNhtPAIY4HJMcNpH18oX37ciyF8dWP+OpXtQ3IxtfENTgUgRGx9Fx9iEtVlDEAYKhDQbBUs7oc1VlKKJ2FIdfII26+WedSuTgXITBWlqQ+M8A+xKUIUQpQBrsImJw1tYm2xOBkG6cH8uM+BE74YJfj9KZy+/RHgM67mAMrhyiuivqC44GKkYh8PnMwAYHIsWPaUVwmVJXzKoZ/5Ssi76yzci4HC2A/BEBakzZUVEQdER5FXPjbPxSJohLYr5n2krh51Sp7CZyhtOQNY/wvfiHoaDAOjECaCBRjuljQM08UccmhEB0R5HwPdz0RyPF1yzvv5FgC86qnQ1rH/ud/aqdOm1cr1+QABAIeIaJO8Y0iLkWWyUp1kAMaapsmnHjvPe1oLNsInKWg5Jt9wgMPMHlliaPLshdHFGVEzzZHERdGW1PxcFjPBHxtLALkt2r/f/+3gAmKsRVZqHQ6p3DcffcJGoFxYARSQGBYJzd1J+0mrq3z5hXip0OubDiYjEDLmjUidPiwybXmtrqCWbPEaThEg84s5MAIpIDADBxb1n30ezdxBWWZWG1cCgVwEp0RiLS1aac761ys5YsrmDlTnPGb3wg3HBxi+c6wvoBj8/z+bvvSbuIKSxL53sq3vvwOlBDTxIN//KMIHzniwMYlblK/iRPFhN/+VvTD8V4cGIEECOR3cpSWpJu4YAhJfp55Y3UC5Ix8RBuujzz3nJFVWLZsIq3Tf/1rERg/no1ULdtLORfM28lRmiDdxKXKMu1P7J5D5lxMFwpw9IUXhOrwQzTidSsp6s/4/e/FgHnkmIQDI9AHgaJOjtIedBOXrCh0hiI7D+yDl3k3wrCk33XXXa490stTUCDG//znYuj115sHOtdkFwRGdXKUJq9GXNDW58OGa5ZdWuBkOVtWrxZk2+XaAMeDI265RYz5wQ+EG86edG0/Z9Bw4ijiKsqqEVcgEBgpqeqEDMriLDojQHZdu2Fd7vRTgJLBVrxkiZiAFUe29UqGlHueE0cRV1GLNeKKnFxRZIMai7wDIZwAtB8rba4O8CSRN2mSprTPnzLF1VBw47sR6N/JVSeJC0wGE65otxHdSfkiJwgcff55cbyuLid1W6nSrhXHgjlz8IZqf2etJB7LYi4CcidXRRGXuSJwbYkRgG3Xx5gyOv38xcQgnHza5VmCXONwYAQIAf4TZuH3INLcLHZ///uCjrN3e5C8XjFs6VIx9p572NLexS9D1IgL80YP5opMYhZ8IWiFcR+MM93gKTUV+IvOP19M/POfhf80dhuXCl5OSkMcRVxFbTpJVorSHxusacsPBwsi0LRypTjwu9+5yoNEom7wjRghzoSxKrmE5uAeBMBRAa+qnjKHAJPRydV8so9F3wEcYCIOP/20OPryyxaV0HyxPEVFmneJoZg+0oEcHFyBwEDwlOZ2SxtxwS1qCcir0BVNt2kjyb5rL3xYNdMBGxw0BORAQDtBaMz3vic87B7HDW/FYLiX1078kemADLAYG8rYpNv3/OhHrjlgI9UuGbhokbbP0TuYD6dKFTO7psMAq3RTaWl/ORIK0RRxtF0b4ja5Iy0tYsc3viHatmxxW9MTtpcO4Zj4yCOicMGChOn4oe0RGB8pKBgiyx5PAE2JckRv+6Y5vAFEXttBXifef9/hLU2ved7iYjHuJz8Rg6++WkgebfEpvQI4tR0Q6C/LcqDLBKLr0w6Cs4xAQA0Gxc7bbhMdu3czHj0RwFahkd/8phj7wx8K0oFxcBwCmC12mUM4rm3uaFD46FHx0de+JtrefdcdDU6xlTTaKjz3XDH+/vtFgO29UkTNNsmYuGzTVQkEJav67SCv1o0bE6Ry56P+06drSvt+dII2RmIcnIMATxEd0JdkKrHzO98RbjkVO50uI3uvMx58UAy+8sp0snFaCyOghkKq52unnUYGXVcjaoZdFpaXRUuAADpTNL/5piCTADq3kMMpBGif44CyMuEdOFC0rF8vRCRy6iFf2Q2BQ6qqPs0jLrt1WwJ5SWG/F6tqnzz+OO9t7I0TXOLQauP4n/1MeArZ1ro3PHb7zsRltx5LQV466mzPvfe61nd9IojIrxd5VvVg9MXBvggwcdm37+JKTjqvY6++Kvb8+MeCXONwiEaAnBOeCXIP8FmO0cDY5JtfllUmLpt0VtpiwhFh4/LlYtcddzB5xQDPP2qUmPjwwyK/hA634mAnBIKKIjFx2anHMpC1FcrobfAcGjp0KIPczs5CSvvxv/ylyJ82zdkNdWDrmLgc2Km9mxTcu1d8dPPNomXdut6PXP/dM2CAGP/Tn4qCuXNdj4WdAGDislNvZSFr6JNPxC7YetG5jexNNRpIIq/T/+u/mLyiYbH0ty7igmcbDk5HQGlvFzv/4z/EkWXLnN7UjNo3DosZBfPmZZSXM5mHgOTzdeu4eD+EebjntCYyVN2HPXwHYE0uoMDncAoBOT9fjL37btGfdV6nQLHoVdeIy6LisVhGIUBGqrvvvFPQKIzDKQRo2jjhf/6HVxtPQWK1K+2vbRdx8Z9eq3WPCfI0vfGG2PGtbwmltdWE2mxUBazsycLeP5r9a1qx1+iIMlmV8KGqcOXMwXUIYKrYtnmz2PHv/y5CBw+6rvmJGkyW9aSwZ3fQiVDKybOIEg4rMg7KOCFJUktOROBKLYEAuYHe+uUvi45duywhj1WEoBGXtj2I9zZapUtIjiZME0/IA7zeffjykZUkY1nMRyBy7Jj46F//VZDBKodTCJAjwjFYieVgGQS2hcLhg55f79wZ/trYsWMh1kWWEY0FyQkC5F2iuaZG+IYOFbSfj53vneyGwPjxwlNQIFrXruWV2Jy8macqhfnDwzPWrFmtKeclRSHfv3tPPeYrtyIQaWrSNmcfe+UVobLfqu7XgFziFMCnF4ecIrAXJjzaCTEacSmSdATisBuBnPaJdSon7xJ7cPjsQRxzz+EkAuTHfhzOtMybPJkhyR0CzTB/OErVa8SF/8K4ZreQuesQ69WsKOKTJ57Q/HqxrdfJ7pH8fjH6298WZKjKIScIRLCQGKKaNeIik4iciMGVWhsBmEsce/llsZtc4xw/bm1ZTZIub9IkMRrHwgnYenEwH4EurmL0zcfedjUex8bs7TirUDlxwnayGyFw0cKFvC3ICGDTKLPniIuNUNMAzm1J2z/8UGxdulS079jhtqb3aS/58RoHHaBvxIg+z/iGoQgoUSMuj6q2ozre92Eo5vYvnPx6bYOhalt9vf0bk2ULaE/jMBA5B1MROE4G81SjNuLq6OjYDybbbqoIXJktEVA7OrQtQs3Y5+j2UHzJJWJAebnbYTCz/dtbIpH9VKFGXLPXrWuTFYXdY5rZBTaui3Rdu++5Rxx55hlXG2SSicSIW24RciBg4960lejrK2prT424SHTsWmzAB23/4cAIJEWArOz3/epX4uBDD7n6GDTaYVBYWZkUL06QNQL7MCskQ3ktaCMuuoL1/GF8sBGqBgv/lyoChx59VOz+wQ8EOSh0axj93e9qp2S7tf0mtbupk6O06rqJC3YpQdyhyIERSB0BGKo2v/222P3974vwUc2oOfW8DklJU8WBixc7pDWWbUa4k6M0AbuJCxc0d+SVRcv2m4UFg6Fqc3W12HX77a4lr+JLL2WjVGNf0TbvSesHrZZu4lJaWg7wyqKxyDu9dPLrte2rX3XlGY6k6xrAB20Y9opja88uv6J0Hw7aTVzT6utbeWXRMNxdU3DowAHtDEciMVcFSRJDrrlG0EojB/0RgDubjRPr6rp18N3ERVXxyqL+gLuxRO0MRzjf69i501XNzzv7bCH37++qNpvU2EMYcW3uWVcUccHXzSdgtsaeCfiaEcgEgTA8qm7/+tdFcL9mL5hJEbbLQ9b0+VOn2k5uGwh8BLPBqBcpirh8QhzHwRndwzEbNIhFtDACRF47sDk7uGePhaXUV7QhcDjIQV8EMNo6hil41IAqirhEIHAA7np36Fstl+ZmBIL79om9v/iFa+y8CubOFZ6iIjd3ue5txyxwa4HfH+WhOYq4Sqqq6LSfDbrXzAW6GoEW+Gqn07PdEvKh6+KgHwIgrrWnV1WRI4juEEVcdBenLNJy0IHuFHzBCGSLAOy8GpcvFye2bs22JFvk9/FBsvr1k6p+3HOrT1fBfYgL/ucPgOHcaQLdhQp/6o4AuX/ee++9rpgyBsaM0R0/1xYoSU0eWaYzMaJCH+KSIpFGMBwTVxRM/EUPBE7AGSFtD3J6CIwb5/Qmmtm+Y5FgsM+CYR/iOpqf/zGk0o4AMlM6rssdCNCU0ekhoB1T6vRWmtQ+Sfqgk5OiKuxDXOdVVYWFotQhlXu3+0dBxF/0RKAFJ2U7/bxGb3GxnpC5uawQbEtXa5zUC4U+xEXPMVWspyXIXmn5KyOQNQJKa6s40UCu35wb5Lw8PgVcn+79QJblTbGKiklcgUjkIyT+IFYGvscIZItAq9N91mPfIm/9yfYtwQBKiHc72ttjDqBiEtfkNWuO4MgftufKHnsuIQYCoUPdm/xjPHXGLS+2/3DIDgFZVdfBrXxTrFJiEhclhD3XRnw4/w2LhQrfMxSBSAvZOTs7aNNFZzfR0NZBVUUH+NTHqyQuceHBNmTaGS8j32cEMkXAO3Bgplltk0+BT34OmSOAPdO74PE07vbDuMTVEQptw77FuIyXuUguygldB+1bowNEOZxCIO+ss059cegVGdxyyAIBWd5y1OcjXXvMEJe4MLfUliKRi80iYkKX/ObQ664TZz/5pJj42GOi6LzzkmdwQwpZFgPmz3d8S2n1lEPGCATjmUF0lZh4KKCqG0izL0nStK4M/Jk6AnTSMa0u0ahr7I9+pLl3aXrzTdH4yiuuPcp+wJw5gvxWOTnQaIvOnuSQMQIN4J31iXLHHXFRplAo9D5Ii6eLiRBM8Ezy+6Oe+rGHbej112sjsHE/+YnmdM5TUBCVxulfBl1xhdObKMgPGYesEFjva25OaOyXkLjohGvouVZnJYKLM5ML45gBuq/Cc84RE37zG3HWU0+J0bfdJtxgba0dWb9gQUxInHQzfJiOKOWQIQK0qlFb0tCQcHUjIXFRxdDur8VHlL9nus8hOQJxiaszKx2sQIRFo5BJf/+7OP2BB8QQ6MV8w4cnL9xmKfrPmCFGfetbQoKOy+nBTR5fDejLpNNEqjOxjgsJigKB+qb29rWYMrIz7TR7KR1DS1p5LJg5U4sjb71VtKxbJ46CzE68/74gArTtSdE0usQoaxxc2mB5O00E7Zm8w0Wuqg3ooaTTRKozKXGR58FN5eWrkPZ6xGilDZXAIS4CyUZccTPiQcGsWVokJS+dEH0MCv0jzz0nIs19PHwkKianz+iE5zE4JLawstI1pEWAB/dGeRnOaR/YrPKUponUpqTERYlIww9LVlKWzaDvHFJDIHykj/+z1DL2SEUW2H541Bz+la+I4f/yL6J9505Bfq1oo3Lrpk2i/aO4pi49SjH30jt4sBh02WVa9I0YYW7lFqitY/duC0hhSxFSmiZSy1IirnAwuMUXCKyDwouJK433IdIUc5tVGiX0SoqpFp2YTLH4wgu1hxGsYB1fs0aLHSCxMOqkqHZ09Mps4FcytC0sFAEQ7MCLLxaDLrlE9F5RNbB2SxVNLns6PiaXdhzSRkCS1oU7Osh1fNKQEnGRMerGioq3MOr6Akp0thFOUshST0AEYnTwQLk/cMkSLdKPRiUbIpBWEH/1W+CFoQ2xFadKK8eP6y6Kd+hQUfTpT4uBixYJ8vop5+e7fpdA64YNQmlr0x1rFxR4HDO7tzTD9xQamxJxUTnwi7NKRCK1KHxxCuVyEiBgtj6KViklGLyS0at30CCRP336yX7AYRXhxkZNyU+jQCJU7ROjNZKRDCZV7K0jwqNPmMBoBEQLBkRGnk4jWloB9WCfoW/YMOHHyqdmwoG0HE4hQHpIDukjgA3VqzWOSTFrysRVWl29fSOU9HhNmbhSBNds4oorFsiFSEYjmriJ+EG2CNBIi/SOHDJAQFWriWNSzZnW+jRIi1YXracNTrW1JqezDHGZ3G63Vhfcv5+niZl1/ked3JJy7rSIyxsIkC/66pRLd3nCCOmVFLhk5OAKBI5XV9vX3i63PVTdyS0pS5EWcdFJ15iLrkTpxmudU26CdROSsjzE2z+s20E6SkYGwkeWLdOxRNcURcchriRuSafFaREXFewJhd7Eh/MPx0sHxQRpeftHAnAc9Oh4ba22+OGgJpnTFEl6C2ZWb6RbWdrENfWdd8hI5a10K3JretJ7cHA+Am44L9KIXpQUpWp6bW3aWw3SJi5NeFkmjxF8aGwKPcnbP1IAyeZJyIc+GQFzSBuBLbCzysj7TEbEFWpvXwevEbVpi+nCDMF9+1zYanc1ee9PfyrY42kGfQ4O8TQ1rcsgp8iIuMhPF7xFrIBSjR0PJUGdiSsJQDZ/TKoA0m9xSBuBQzBmX5nM71a8UjMiLirMH4ksxxFmy+MVzPdPIhCkMwRhuc7BmQgce/FFdtOcWdeuDCjKPzPLip08mWakQ2NhNPYy8mfvAiFTIeyQLxxm2x479FMGMpJnjk8efzyDnK7PonEHcUimSGRMXFShLxJ5DR8UOcRBgGy5aA8gB+chcOjRRwX1L4e0EXitkzvSztiVISvi4lFXF4wJPsljAx8OmgAgez4irxvNb6RtfmTPxuorddajLRInK+KiAnjURSjEDyq2/PCpxvHxseMT2oO66/vf59FWZp2X9WiLqs2auLpGXbzCGLsXNR9ZPOKKDY5N7x7CAb/kTptDeggQR5BePBvdVleNWRMXFcSjri44Y3zyiCsGKPa91YwDfQ8/8QSvFGfWhbqMtqhqXYiLGFRW1edRHltb9upQHnH1AsTGX2kj9d7777dxC3InOkZa8PmjvKDHaItaoQtxUUFqa+s/YK/0d7rm0AMB2HCxK98eeNj0krb1bL/lFsGHvWbWgbBkfN7Xr98/MsvdN5duxDWtvr5VeDxPgbwy2nvUVzTn3AnpcNqPc9CwX0topHXgwQdF27vv2k94a0i8BiOup9J1XZNIdN2IiyqZtmrV29g0+SQu2xNV6rZnEVbk2rrLDz70kHY4r60bkTvhyYjxydLa2jf1FEFX4iLB5FBoGUZdZFHPoROBEBOXLd8FMmU59PDD4vBTT9lSfosI/bLX4/mb3rLoTlzkrwvDwmVsHnGqq3jp/BQWdrmiRZVjL7ygEZeKbVsc0keAOABxWUl19e70cyfOoTtxadV5vf/AKuMLiat2z9MwjgHjYC8EDmF6uPeXv2Qj0yy6jTgAR44ZMvsyhLhwzNAxMO1f0Oa1WbTbMVl5xGWfrqQzJvf+/Ofik7/g9eWDTrLpuLXEAcQF2RQSL68hxEWVTaupeR0ftHXe9Yp6HnHRG2H9QKYOu3/wA00Rz5uns+ov+s0/3skBWRUUL7NhxKVVqCjPwX7D9VNGJq54r5917pOL7W033yyO19RYRyj7SrIMv/tnjRTfUOKaVle3B55Sn0EDdhvZCMuXTdt+WlstL6YbBSTF+6FHHhFbb7xRhA4edCMEere5QZLlxzM5ACMdQQwlLhLE29T0AsjLUPZNp8G5Shth4soV9LHrxY6Gjp07xc5vf1sc/MMfBOm2OOiAgKo+WbpqlW4W8vEkMpy4yKc0XK09BhMJQ1YX4jXMavdpywgHayBA9ln7YQm/9aabRMs771hDKGdI8SxWEU0xejOcuKg/ZtTUbMSpQL/H5WZn9E/6rWDiSh8z3XOAsJpef11s+9KXxGGsGrKDR10R3iJL0p+n1tR8pGupcQrzxrmv++1pq1e/uKm8fBIK/jGiT/cKLF6gwiOu3PUQpoXt27dr/uEbV6xglzT694QCZfxfQFqmzapMIy7CSg6Hn1K83hm4vFZ/7KxdIo+4ctM/ZOKw6447xIkPPuBDS4zrgqcVSaI9yqYFU4mLtgPVl5X9fximTUQLZ5vWSgtUFDxwwAJSuEQEjLBaN24UR559VjTDvIGnhIb2e60qy3+cuWrVLkNr6VW4qcRFdZeuXr1yY1nZZKw0fgpf83vJ49ivR59/XhRMny58w4YJz8CBQu7Xz7FtzUnDQFZhuA8i1zNH/vY30bIWmzZwj4OhCDTid/xneIV5w9BaYhRuOnGRDB5V/SuGlrNwuTSGTI68FcKI66NbbxWyzyckRP+YMWJAWZkYUF4u8qdMcWSbzWpUcPdubZWQVgg1swYmLLOgfw6/5ZyYOsFKITdhQ1nZfKxC3I3az8+NBNaplYjMN2KE8A8fLnyIgdNOE4HTTxf9EP0jR0I5aMrir3UASSIJnVPZun69ZsrQummTaN+6lTdDJ8HMgMevYbR1d2lNTa0BZSctMmfERZLVV1R8BmYS9+CyNKmkLk1AU8p+Z50l8idNEv0mThT+UaOEZ8CA7ijn5TkbGYyeaGEj9Mknon3bNtFUVaVtyyGvpBxygwAm4DUCpDW9pmZ5biQQIqfERY3eWFHx/yRVvReX/lyBYKt6JUlIHo+QvJjl49NbWCjyp04VeZMni7yzzxZ5IDm7kxltw2nbvFk0V1drJBXCyiARFZOVJd7UQxhp/QdGWg/nUpqc6LiiGqyqZGk7DfGGqPv8JTYCGIHQD7vLuV0QW4mC+/eLxuWn/vjRiMyLBQBaBPAWFwsPyM07aJDwDRmiRe/QocKHSGlommp6QBtIkd6Bjc20uZki7ROke7T6SpFXAk3vlZQqxGjrGa/fT/uPcxpyPuKi1pO+yyNJdwKUxTlFw22VY/QmFxQI3+DBJ4mNPimC6Oi+pzNKmK5qIzzo2vDXVtO5dX3Syh1toSHfVZorGPqkCHKNNDVpp+LQYSFESjRy0j4PHeK9gTZ819DzL6Of7yqtq1uXa/EtQVwEAqzqSUl/O6LrlfWEh+UCERZFBI20egkIXeXJO/TZdd0rDX+1NQIr0fH3GeljKx10LENcJPTmefMWKbJ8By7PTacRnJYRYAQMReBNWVF+PLWuDvulrBEstc5OwODv9a8BTYM14GEpGAHXI9BAv0krkRb1iKWIiwSCA7JlWGV8FJd8tAoBwoERyB0CYfot0m8ydyLErtlyxEVierzep7Cf8enYIvNdRoARMAMB+g3Sb9GMutKtw5LEpZ3DFon8Dgq4U2v86baM0zMCjEDGCGi/PfwGjTgTMWOhemS0JHGRfNPr6qoxt/4ZLv/ZQ16+ZAQYAeMR+Cf99ug3aHxVmdVgqVXFWE1gM4lYqPA9RsAwBGigcN+02lpLDxgsT1zUPUxehr2kXDAj0BMBW5AWCWwL4iJBmbwIBQ6MgGEI2Ia0CAHbEBcJy+RFKHBgBHRHwFakRa23FXGRwExehAIHRkA3BGxHWtRy2xEXCc3kRShwYASyRsCWpEWttiVxkeBMXoQCB0YgYwRsS1rUYtsSFwnP5EUocGAE0kbA1qRFrbU1cVEDmLwIBQ6MQMoI2J60qKWWtZxPtRs6DeXuw74qy7jcSFV2TscImIlA52/E8salqWBi+xFXVyNx8Man4czu6/j+ua57/MkIMALdCDwLB5APwFf8W913bHzhGOKiPtg0f/7Z8L55A+L1+Dqe7nFgBFyOwEG0/1FZVR+eunr1e07BwlHERZ2CzaHypoqK6+BH6BZ8LXdKR3E7GIEMENiIP+J/EG1tj06rr2/NIL9lsziOuLqQri8ruwhz+m/j+8Kue/zJCLgFAfywq+Aj/leYGj7vxDY7lrios0BeF8CH/Xcw+lrkxM7jNjECcRB4De/8L0pXr14Z57ntbzuauKh36svLz8XhWd9CQ6+wfW9xAxiBxAi04fEzMBX4w9Ta2prESe391PHERd0DndcUzPVvRLwGw+fT7N1lLD0jEBOBDXi3/+wNhf5a8s47B2KmcNBNVxAX9dfaWbN8fp/v86os/xsIbIGD+pCb4nYEVPUN6HPvx6EWL7kFCtcQV1eHdp7d+H/x/aKue/zJCNgYAcfrs2L1jeuIi0DYUFExB3qAm2A68TkoMYfEAobvMQIWR+AYpobPIf5p2qpVqy0uq+7iuZK4CMWt8+YVnvB4Pgtr+5vw9RzdkeUCGQGjEJCkaqEoj0he73Ol1dXHjKrGyuW6lri6OqVzq9CX8Z22CuV13edPRsCCCGijLDUSecTKJ/CYgZvriYtAbpgzZ0QYinso7W/A19lmAM91MAJpIvA23s9H3TzK6okXE1cPNGA2sRA6r+uh+7oSt4t7POJLRiBXCPAoKwbyTFy9QGkoLx8UVtWrhCwvZbOJXuDwV3MRIF2Wqv5ZCQSem1FV1Whu5daujYkrTv9snDdvgeTxLMXo6wpeeYwDEt82BAHYZB3GD/PvrMuKDy8TV3xsxIbKyoFSMHgpiIumjpci+hMk50eMQLYIBFHASyCuZarf/xKPsuLDycQVH5vuJw0LFowNRyJXYfR1HQCb0/2ALxgBnRDAu/UO3q0nvB7P30qqq3frVKxji2HiSqNrN5eVVWLD9nUw+rsc2YankZWTMgLxEDgIPdYLMIh+Ao7+quIl4vvRCDBxReOR9BsZrrZK0kVwg3s5hvSLWf+VFDJOEAMBTY+lqsthAP1Cf1V9ZWJdXXOMZHwrDgJMXHGASXb7vblzB4c8niUY4l+CtEsQByfLw88ZASBwBPE1/PBe9kUir01es4a+c0gTASauNAHrnZwJrDci/D0OAo1QMbwmKcqLwVDotdnr1h2Ok45vp4AAE1cKIKWSBG5zhsBtzhK4zbkMOgsagQ1MJR+ncTwCTWjhCrwTL+HAilen1tXR4RUcskSAiStLAHtnh9uc4XAXrU0hAe4FeD6odxr+7goEjkKNsBI60H+EfL7ls99+e78rWm1SI5m4DAIa24eGYVqwCErYi1EF68AMwtmCxZ7UYYGwMPpeMa2m5pAFZbS9SExcBndhTx0Yr0IaDHZui/8E1a/AD4qV7ib0AxOXCSBTFURgQa93EfwoLYSSljxQTEH00TMOtkWALN23YEq4Fjqs1wOKspJXCc3pSyYuc3DuroV833v9/inQfczCzfMxnbiAbcG64bHLxV6MnqugCqiCPnNto9+/5byqqrBdhHeCnExcOexFWon0BQKkwD8ff7GJyEoQeT9kDvskQdUnMLLagOd1siS9Ce8hb7nV+2gCjEx7xMRlGtTxK+oehQkxE6nKEemTSSw+ZGY9oalgA+J6jIqr4e5ozcy6unfNqpzriY8AE1d8bHLypKGkxB8qLCxBxzCJ5aQHRDdZofpajLLW+5qbG0oaGug+B4sgwMRlkY6IJQaTWCxUDLnHZGUIrMYVysRlHLa6lhxFYpJUBp0YTSXHIo7WtSL3FLYXTd2NFd4GYLmaR1b26ngmLnv1lybtG5WV3uJweAJMK8YjToGniln44U1EZ45EgjE2bJIZIu8BRvuB0VZ4ZFgH5foWxJ3HvN7tvCJoBvz61sHEpS+eOSmtobKyINLRMQYjhzFYpi+BInk2fqRnYjQxDALRqMybE8FyVyntBzyK2AgsPgIma/HZADz2eAKBPSVVVS25E41r1gMBJi49ULRYGVilzPd4vaPRucMxGpuEkcU8kNrZELMIkYxeByA6YWRGtlN7EFvQvha0cxdsq9YLj2cL/LUfkGW5qaOjYz88MbQhDQcHIcDE5aDOjNcUmloObG8fg8M/+mNq6UenD0KchPQzaYqJqVMhCA5OOAW9Dx5EIrhRiFYItJWGRk+hTmHghFY0YfT0AdpSB5L6AGTVCKFPeGT54KRVq453puMPByPAxOXgzk3WNFL4BwcMGAXiyvd4PDKmU/in+uB+ZTAswmnKOUuRpAl4SQpQFhFbVwDfaSRHn9mG3u8gEdMJxI8xitqIz3rZ49mvKkoHpnyQEDESaW3s128P66ayhd6++Xu/NPZtCUuuOwI05QwEAiMjktSPKKNnBb2/93yWzjURUe/0SiTSEQmHD2GKR76sODACfRD4XzaujFinfShuAAAAAElFTkSuQmCC"/>
|
|
6
|
+
</g>
|
|
7
|
+
<text id="Node-SwitchBot" xml:space="preserve" x="10.70752" y="402" font-family="Kefa" font-size="75" font-weight="700" fill="#d13939">Node-SwitchBot</text>
|
|
8
|
+
<text id="Text" xml:space="preserve" x="304" y="244" font-family="Kefa" font-size="75" font-weight="700" fill="#d13939">T</text>
|
|
9
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
package/dist/advertising.d.ts
CHANGED
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
import type * as Noble from '@stoprocent/noble';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export interface Ad {
|
|
8
|
-
id: string;
|
|
9
|
-
address: string;
|
|
10
|
-
rssi: number;
|
|
11
|
-
serviceData: ServiceData;
|
|
12
|
-
[key: string]: unknown;
|
|
13
|
-
}
|
|
14
|
-
export interface AdvertisementData {
|
|
15
|
-
serviceData: Buffer | null;
|
|
16
|
-
manufacturerData: Buffer | null;
|
|
17
|
-
}
|
|
2
|
+
import type { SwitchBotBLE } from './switchbot-ble.js';
|
|
3
|
+
import type { Ad } from './types/types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Represents the advertising data parser for SwitchBot devices.
|
|
6
|
+
*/
|
|
18
7
|
export declare class Advertising {
|
|
8
|
+
static switchBotBLE: SwitchBotBLE;
|
|
19
9
|
constructor();
|
|
20
10
|
/**
|
|
21
11
|
* Parses the advertisement data coming from SwitchBot device.
|
|
@@ -23,11 +13,32 @@ export declare class Advertising {
|
|
|
23
13
|
* This function processes advertising packets received from SwitchBot devices
|
|
24
14
|
* and extracts relevant information based on the device type.
|
|
25
15
|
*
|
|
26
|
-
* @param peripheral - The peripheral device object from noble.
|
|
27
|
-
* @
|
|
28
|
-
|
|
16
|
+
* @param {Noble.Peripheral} peripheral - The peripheral device object from noble.
|
|
17
|
+
* @returns {Promise<Ad | null>} - An object containing parsed data specific to the SwitchBot device type, or `null` if the device is not recognized.
|
|
18
|
+
*/
|
|
19
|
+
static parse(peripheral: Noble.Peripheral): Promise<Ad | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Validates if the buffer is a valid Buffer object with a minimum length.
|
|
22
|
+
*
|
|
23
|
+
* @param {any} buffer - The buffer to validate.
|
|
24
|
+
* @returns {boolean} - True if the buffer is valid, false otherwise.
|
|
25
|
+
*/
|
|
26
|
+
private static validateBuffer;
|
|
27
|
+
/**
|
|
28
|
+
* Parses the service data based on the device model.
|
|
29
|
+
*
|
|
30
|
+
* @param {string} model - The device model.
|
|
31
|
+
* @param {Buffer} serviceData - The service data buffer.
|
|
32
|
+
* @param {Buffer} manufacturerData - The manufacturer data buffer.
|
|
33
|
+
* @returns {Promise<any>} - The parsed service data.
|
|
34
|
+
*/
|
|
35
|
+
private static parseServiceData;
|
|
36
|
+
/**
|
|
37
|
+
* Formats the address of the peripheral.
|
|
38
|
+
*
|
|
39
|
+
* @param {Noble.Peripheral} peripheral - The peripheral device object from noble.
|
|
40
|
+
* @returns {string} - The formatted address.
|
|
29
41
|
*/
|
|
30
|
-
static
|
|
42
|
+
private static formatAddress;
|
|
31
43
|
}
|
|
32
|
-
export {};
|
|
33
44
|
//# sourceMappingURL=advertising.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advertising.d.ts","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAE/C,OAAO,
|
|
1
|
+
{"version":3,"file":"advertising.d.ts","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,EAAE,EAAe,MAAM,kBAAkB,CAAA;AAqBvD;;GAEG;AACH,qBAAa,WAAW;IACtB,MAAM,CAAC,YAAY,EAAE,YAAY,CAAA;;IAGjC;;;;;;;;OAQG;WACU,KAAK,CAChB,UAAU,EAAE,KAAK,CAAC,UAAU,GAC3B,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC;IAgCrB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B;;;;;;;OAOG;mBACkB,gBAAgB;IAiDrC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;CAY7B"}
|
package/dist/advertising.js
CHANGED
|
@@ -15,7 +15,11 @@ import { WoSmartLock } from './device/wosmartlock.js';
|
|
|
15
15
|
import { WoSmartLockPro } from './device/wosmartlockpro.js';
|
|
16
16
|
import { WoStrip } from './device/wostrip.js';
|
|
17
17
|
import { SwitchBotBLEModel } from './types/types.js';
|
|
18
|
+
/**
|
|
19
|
+
* Represents the advertising data parser for SwitchBot devices.
|
|
20
|
+
*/
|
|
18
21
|
export class Advertising {
|
|
22
|
+
static switchBotBLE;
|
|
19
23
|
constructor() { }
|
|
20
24
|
/**
|
|
21
25
|
* Parses the advertisement data coming from SwitchBot device.
|
|
@@ -23,122 +27,114 @@ export class Advertising {
|
|
|
23
27
|
* This function processes advertising packets received from SwitchBot devices
|
|
24
28
|
* and extracts relevant information based on the device type.
|
|
25
29
|
*
|
|
26
|
-
* @param peripheral - The peripheral device object from noble.
|
|
27
|
-
* @
|
|
28
|
-
* @returns An object containing parsed data specific to the SwitchBot device type, or `null` if the device is not recognized.
|
|
30
|
+
* @param {Noble.Peripheral} peripheral - The peripheral device object from noble.
|
|
31
|
+
* @returns {Promise<Ad | null>} - An object containing parsed data specific to the SwitchBot device type, or `null` if the device is not recognized.
|
|
29
32
|
*/
|
|
30
|
-
static async parse(peripheral
|
|
33
|
+
static async parse(peripheral) {
|
|
31
34
|
const ad = peripheral.advertisement;
|
|
32
35
|
if (!ad || !ad.serviceData) {
|
|
33
36
|
return null;
|
|
34
37
|
}
|
|
35
|
-
const
|
|
38
|
+
const serviceData = ad.serviceData[0]?.data;
|
|
36
39
|
const manufacturerData = ad.manufacturerData;
|
|
37
|
-
|
|
38
|
-
function validateBuffer(buffer) {
|
|
39
|
-
return buffer && Buffer.isBuffer(buffer) && buffer.length >= 3;
|
|
40
|
-
}
|
|
41
|
-
if (!validateBuffer(serviceData) || !validateBuffer(manufacturerData)) {
|
|
40
|
+
if (!Advertising.validateBuffer(serviceData) || !Advertising.validateBuffer(manufacturerData)) {
|
|
42
41
|
return null;
|
|
43
42
|
}
|
|
44
43
|
const model = serviceData.subarray(0, 1).toString('utf8');
|
|
45
|
-
|
|
44
|
+
const sd = await Advertising.parseServiceData(model, serviceData, manufacturerData);
|
|
45
|
+
if (!sd) {
|
|
46
|
+
this.switchBotBLE.emitLog('error', `[parseAdvertising.${peripheral.id}.${model}] return null, parsed serviceData empty!`);
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const address = Advertising.formatAddress(peripheral);
|
|
50
|
+
const data = {
|
|
51
|
+
id: peripheral.id,
|
|
52
|
+
address,
|
|
53
|
+
rssi: peripheral.rssi,
|
|
54
|
+
serviceData: { model, ...sd },
|
|
55
|
+
};
|
|
56
|
+
this.switchBotBLE.emitLog('debug', `[parseAdvertising.${peripheral.id}.${model}] return ${JSON.stringify(data)}`);
|
|
57
|
+
return data;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Validates if the buffer is a valid Buffer object with a minimum length.
|
|
61
|
+
*
|
|
62
|
+
* @param {any} buffer - The buffer to validate.
|
|
63
|
+
* @returns {boolean} - True if the buffer is valid, false otherwise.
|
|
64
|
+
*/
|
|
65
|
+
static validateBuffer(buffer) {
|
|
66
|
+
return buffer && Buffer.isBuffer(buffer) && buffer.length >= 3;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Parses the service data based on the device model.
|
|
70
|
+
*
|
|
71
|
+
* @param {string} model - The device model.
|
|
72
|
+
* @param {Buffer} serviceData - The service data buffer.
|
|
73
|
+
* @param {Buffer} manufacturerData - The manufacturer data buffer.
|
|
74
|
+
* @returns {Promise<any>} - The parsed service data.
|
|
75
|
+
*/
|
|
76
|
+
static async parseServiceData(model, serviceData, manufacturerData) {
|
|
46
77
|
switch (model) {
|
|
47
78
|
case SwitchBotBLEModel.Bot:
|
|
48
|
-
|
|
49
|
-
break;
|
|
79
|
+
return WoHand.parseServiceData(serviceData);
|
|
50
80
|
case SwitchBotBLEModel.Curtain:
|
|
51
81
|
case SwitchBotBLEModel.Curtain3:
|
|
52
|
-
|
|
53
|
-
break;
|
|
82
|
+
return WoCurtain.parseServiceData(serviceData, manufacturerData);
|
|
54
83
|
case SwitchBotBLEModel.Humidifier:
|
|
55
|
-
|
|
56
|
-
break;
|
|
84
|
+
return WoHumi.parseServiceData(serviceData);
|
|
57
85
|
case SwitchBotBLEModel.Meter:
|
|
58
|
-
|
|
59
|
-
break;
|
|
86
|
+
return WoSensorTH.parseServiceData(serviceData);
|
|
60
87
|
case SwitchBotBLEModel.MeterPlus:
|
|
61
|
-
|
|
62
|
-
break;
|
|
88
|
+
return WoSensorTH.parseServiceData_Plus(serviceData);
|
|
63
89
|
case SwitchBotBLEModel.Hub2:
|
|
64
|
-
|
|
65
|
-
break;
|
|
90
|
+
return WoHub2.parseServiceData(manufacturerData);
|
|
66
91
|
case SwitchBotBLEModel.OutdoorMeter:
|
|
67
|
-
|
|
68
|
-
break;
|
|
92
|
+
return WoIOSensorTH.parseServiceData(serviceData, manufacturerData);
|
|
69
93
|
case SwitchBotBLEModel.MotionSensor:
|
|
70
|
-
|
|
71
|
-
break;
|
|
94
|
+
return WoPresence.parseServiceData(serviceData);
|
|
72
95
|
case SwitchBotBLEModel.ContactSensor:
|
|
73
|
-
|
|
74
|
-
break;
|
|
96
|
+
return WoContact.parseServiceData(serviceData);
|
|
75
97
|
case SwitchBotBLEModel.ColorBulb:
|
|
76
|
-
|
|
77
|
-
break;
|
|
98
|
+
return WoBulb.parseServiceData(serviceData, manufacturerData);
|
|
78
99
|
case SwitchBotBLEModel.CeilingLight:
|
|
79
|
-
|
|
80
|
-
break;
|
|
100
|
+
return WoCeilingLight.parseServiceData(manufacturerData);
|
|
81
101
|
case SwitchBotBLEModel.CeilingLightPro:
|
|
82
|
-
|
|
83
|
-
break;
|
|
102
|
+
return WoCeilingLight.parseServiceData_Pro(manufacturerData);
|
|
84
103
|
case SwitchBotBLEModel.StripLight:
|
|
85
|
-
|
|
86
|
-
break;
|
|
104
|
+
return WoStrip.parseServiceData(serviceData);
|
|
87
105
|
case SwitchBotBLEModel.PlugMiniUS:
|
|
88
|
-
|
|
89
|
-
break;
|
|
106
|
+
return WoPlugMini.parseServiceData_US(manufacturerData);
|
|
90
107
|
case SwitchBotBLEModel.PlugMiniJP:
|
|
91
|
-
|
|
92
|
-
break;
|
|
108
|
+
return WoPlugMini.parseServiceData_JP(manufacturerData);
|
|
93
109
|
case SwitchBotBLEModel.Lock:
|
|
94
|
-
|
|
95
|
-
break;
|
|
110
|
+
return WoSmartLock.parseServiceData(serviceData, manufacturerData);
|
|
96
111
|
case SwitchBotBLEModel.LockPro:
|
|
97
|
-
|
|
98
|
-
break;
|
|
112
|
+
return WoSmartLockPro.parseServiceData(serviceData, manufacturerData);
|
|
99
113
|
case SwitchBotBLEModel.BlindTilt:
|
|
100
|
-
|
|
101
|
-
break;
|
|
114
|
+
return WoBlindTilt.parseServiceData(serviceData, manufacturerData);
|
|
102
115
|
default:
|
|
103
|
-
|
|
104
|
-
onlog(`[parseAdvertising.${peripheral.id}] return null, model "${model}" not available!`);
|
|
105
|
-
}
|
|
116
|
+
this.switchBotBLE.emitLog('debug', `[parseAdvertising.${model}] return null, model "${model}" not available!`);
|
|
106
117
|
return null;
|
|
107
118
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Formats the address of the peripheral.
|
|
122
|
+
*
|
|
123
|
+
* @param {Noble.Peripheral} peripheral - The peripheral device object from noble.
|
|
124
|
+
* @returns {string} - The formatted address.
|
|
125
|
+
*/
|
|
126
|
+
static formatAddress(peripheral) {
|
|
114
127
|
let address = peripheral.address || '';
|
|
115
128
|
if (address === '') {
|
|
116
|
-
const str = peripheral.advertisement.manufacturerData
|
|
117
|
-
.toString('hex')
|
|
118
|
-
.slice(4, 16);
|
|
129
|
+
const str = peripheral.advertisement.manufacturerData?.toString('hex').slice(4, 16) || '';
|
|
119
130
|
if (str !== '') {
|
|
120
|
-
address = str.
|
|
121
|
-
for (let i = 2; i < str.length; i += 2) {
|
|
122
|
-
address = `${address}:${str.substring(i, i + 2)}`;
|
|
123
|
-
}
|
|
131
|
+
address = str.match(/.{1,2}/g)?.join(':') || '';
|
|
124
132
|
}
|
|
125
133
|
}
|
|
126
134
|
else {
|
|
127
135
|
address = address.replace(/-/g, ':');
|
|
128
136
|
}
|
|
129
|
-
|
|
130
|
-
id: peripheral.id,
|
|
131
|
-
address,
|
|
132
|
-
rssi: peripheral.rssi,
|
|
133
|
-
serviceData: {
|
|
134
|
-
model,
|
|
135
|
-
...sd,
|
|
136
|
-
},
|
|
137
|
-
};
|
|
138
|
-
if (onlog && typeof onlog === 'function') {
|
|
139
|
-
onlog(`[parseAdvertising.${peripheral.id}.${model}] return ${JSON.stringify(data)}`);
|
|
140
|
-
}
|
|
141
|
-
return data;
|
|
137
|
+
return address;
|
|
142
138
|
}
|
|
143
139
|
}
|
|
144
140
|
//# sourceMappingURL=advertising.js.map
|
package/dist/advertising.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advertising.js","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"advertising.js","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,106 +1,76 @@
|
|
|
1
|
+
import type { SwitchBotBLE } from '../switchbot-ble.js';
|
|
1
2
|
import { Buffer } from 'node:buffer';
|
|
2
3
|
import { SwitchbotDevice } from '../device.js';
|
|
4
|
+
/**
|
|
5
|
+
* Class representing a WoBlindTilt device.
|
|
6
|
+
* @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/curtain.md
|
|
7
|
+
*/
|
|
3
8
|
export declare class WoBlindTilt extends SwitchbotDevice {
|
|
4
9
|
private _reverse;
|
|
10
|
+
static switchBotBLE: SwitchBotBLE;
|
|
5
11
|
/**
|
|
6
12
|
* Parses the service data and manufacturer data for the WoBlindTilt device.
|
|
7
|
-
*
|
|
8
13
|
* @param {Buffer} serviceData - The service data buffer.
|
|
9
14
|
* @param {Buffer} manufacturerData - The manufacturer data buffer.
|
|
10
|
-
* @param {(message: string) => void} [onlog] - Optional logging function.
|
|
11
15
|
* @param {boolean} [reverse] - Whether to reverse the tilt percentage.
|
|
12
|
-
* @returns {object | null} The parsed data object or null if the data is invalid.
|
|
16
|
+
* @returns {Promise<object | null>} - The parsed data object or null if the data is invalid.
|
|
13
17
|
*/
|
|
14
|
-
static parseServiceData(serviceData: Buffer, manufacturerData: Buffer,
|
|
18
|
+
static parseServiceData(serviceData: Buffer, manufacturerData: Buffer, reverse?: boolean): Promise<object | null>;
|
|
15
19
|
/**
|
|
16
|
-
* open
|
|
17
|
-
*
|
|
18
20
|
* Opens the blind tilt to the fully open position.
|
|
19
|
-
*
|
|
20
|
-
* @returns {Promise<void>} - A promise that resolves when the operation is complete. Nothing will be passed to the `resolve()`.
|
|
21
|
+
* @returns {Promise<void>}
|
|
21
22
|
*/
|
|
22
23
|
open(): Promise<void>;
|
|
23
24
|
/**
|
|
24
|
-
* closeUp
|
|
25
|
-
*
|
|
26
25
|
* Closes the blind tilt up to the nearest endpoint.
|
|
27
|
-
*
|
|
28
|
-
* @returns {Promise<void>} - A promise that resolves when the operation is complete. Nothing will be passed to the `resolve()`.
|
|
26
|
+
* @returns {Promise<void>}
|
|
29
27
|
*/
|
|
30
28
|
closeUp(): Promise<void>;
|
|
31
29
|
/**
|
|
32
|
-
* closeDown
|
|
33
|
-
*
|
|
34
30
|
* Closes the blind tilt down to the nearest endpoint.
|
|
35
|
-
*
|
|
36
|
-
* @returns {Promise<void>} - A promise that resolves when the operation is complete. Nothing will be passed to the `resolve()`.
|
|
31
|
+
* @returns {Promise<void>}
|
|
37
32
|
*/
|
|
38
33
|
closeDown(): Promise<void>;
|
|
39
34
|
/**
|
|
40
|
-
* close
|
|
41
|
-
*
|
|
42
35
|
* Closes the blind tilt to the nearest endpoint.
|
|
43
|
-
*
|
|
44
|
-
* @returns {Promise<void>} - A promise that resolves when the operation is complete. Nothing will be passed to the `resolve()`.
|
|
36
|
+
* @returns {Promise<void>}
|
|
45
37
|
*/
|
|
46
38
|
close(): Promise<void>;
|
|
47
39
|
/**
|
|
48
|
-
* getPosition
|
|
49
|
-
*
|
|
50
40
|
* Retrieves the current position of the blind tilt.
|
|
51
|
-
*
|
|
52
|
-
* @returns {number} - The current position of the blind tilt (0-100).
|
|
41
|
+
* @returns {Promise<number>} - The current position of the blind tilt (0-100).
|
|
53
42
|
*/
|
|
54
43
|
getPosition(): Promise<number>;
|
|
55
44
|
/**
|
|
56
|
-
* _getAdvValue
|
|
57
|
-
*
|
|
58
45
|
* Retrieves the advertised value for a given key.
|
|
59
|
-
*
|
|
60
46
|
* @param {string} key - The key for the advertised value.
|
|
61
47
|
* @returns {Promise<number>} - The advertised value.
|
|
48
|
+
* @private
|
|
62
49
|
*/
|
|
63
50
|
private _getAdvValue;
|
|
64
51
|
/**
|
|
65
|
-
* getBasicInfo
|
|
66
|
-
*
|
|
67
52
|
* Retrieves the basic information of the blind tilt.
|
|
68
|
-
*
|
|
69
|
-
* @returns {Promise<object>} - A promise that resolves to an object containing the basic information of the blind tilt.
|
|
53
|
+
* @returns {Promise<object | null>} - A promise that resolves to an object containing the basic information of the blind tilt.
|
|
70
54
|
*/
|
|
71
55
|
getBasicInfo(): Promise<object | null>;
|
|
72
56
|
/**
|
|
73
57
|
* Pauses the blind tilt operation.
|
|
74
|
-
*
|
|
75
|
-
* This method sends a command to pause the current operation of the blind tilt.
|
|
76
|
-
*
|
|
77
|
-
* @returns {Promise<void>} A promise that resolves when the operation is complete.
|
|
78
|
-
* No value is passed to the `resolve()` function.
|
|
58
|
+
* @returns {Promise<void>}
|
|
79
59
|
*/
|
|
80
60
|
pause(): Promise<void>;
|
|
81
61
|
/**
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
* This method sends a command to run the blind tilt to the specified position.
|
|
85
|
-
*
|
|
62
|
+
* Runs the blind tilt to the specified position.
|
|
86
63
|
* @param {number} percent - The target position percentage (0-100).
|
|
87
64
|
* @param {number} mode - The running mode (0 or 1).
|
|
88
|
-
* @returns {Promise<void>}
|
|
65
|
+
* @returns {Promise<void>}
|
|
89
66
|
*/
|
|
90
67
|
runToPos(percent: number, mode: number): Promise<void>;
|
|
91
68
|
/**
|
|
92
69
|
* Sends a command to operate the blind tilt and handles the response.
|
|
93
|
-
*
|
|
94
|
-
* This method constructs a buffer from the provided byte array and sends it as a command to the device.
|
|
95
|
-
* It returns a promise that resolves if the device responds with a success code (0x01) and rejects if the device
|
|
96
|
-
* returns an error or if the command fails.
|
|
97
|
-
*
|
|
98
70
|
* @param {number[]} bytes - The byte array representing the command to be sent to the device.
|
|
99
|
-
* @returns {Promise<void>}
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
* @throws {Error} Throws an error if the device returns an error code or if the command fails.
|
|
71
|
+
* @returns {Promise<void>}
|
|
72
|
+
* @private
|
|
103
73
|
*/
|
|
104
|
-
operateBlindTilt
|
|
74
|
+
private operateBlindTilt;
|
|
105
75
|
}
|
|
106
76
|
//# sourceMappingURL=woblindtilt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"woblindtilt.d.ts","sourceRoot":"","sources":["../../src/device/woblindtilt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"woblindtilt.d.ts","sourceRoot":"","sources":["../../src/device/woblindtilt.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C;;;GAGG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,QAAQ,CAAiB;IACjC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAA;IAEjC;;;;;;OAMG;WACU,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA6BzB;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAKpC;;;;;OAKG;YACW,YAAY;IAO1B;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA2C5C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D;;;;;OAKG;YACW,gBAAgB;CAO/B"}
|