@switchbot/homebridge-switchbot 4.3.2-beta.9 → 5.0.0-beta.1
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/copilot-instructions.md +328 -0
- package/.github/workflows/beta-release.yml +8 -12
- package/.github/workflows/release.yml +57 -21
- package/README.md +13 -10
- package/config.schema.json +1 -12
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/clover.xml +15847 -0
- package/coverage/coverage-final.json +42 -0
- package/coverage/docs/assets/dmt/dmt-component-data.js.html +85 -0
- package/coverage/docs/assets/dmt/dmt-components.js.html +286 -0
- package/coverage/docs/assets/dmt/index.html +131 -0
- package/coverage/docs/assets/hierarchy.js.html +85 -0
- package/coverage/docs/assets/icons.js.html +136 -0
- package/coverage/docs/assets/index.html +146 -0
- package/coverage/docs/assets/main.js.html +265 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +191 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +196 -0
- package/coverage/src/device/blindtilt.ts.html +3238 -0
- package/coverage/src/device/bot.ts.html +2803 -0
- package/coverage/src/device/ceilinglight.ts.html +2338 -0
- package/coverage/src/device/colorbulb.ts.html +2824 -0
- package/coverage/src/device/contact.ts.html +1465 -0
- package/coverage/src/device/curtain.ts.html +2869 -0
- package/coverage/src/device/device.ts.html +2500 -0
- package/coverage/src/device/fan.ts.html +2242 -0
- package/coverage/src/device/hub.ts.html +1408 -0
- package/coverage/src/device/humidifier.ts.html +2116 -0
- package/coverage/src/device/index.html +416 -0
- package/coverage/src/device/iosensor.ts.html +1375 -0
- package/coverage/src/device/lightstrip.ts.html +2617 -0
- package/coverage/src/device/lock.ts.html +1963 -0
- package/coverage/src/device/meter.ts.html +1372 -0
- package/coverage/src/device/meterplus.ts.html +1384 -0
- package/coverage/src/device/meterpro.ts.html +1618 -0
- package/coverage/src/device/motion.ts.html +1264 -0
- package/coverage/src/device/plug.ts.html +1372 -0
- package/coverage/src/device/relayswitch.ts.html +2284 -0
- package/coverage/src/device/robotvacuumcleaner.ts.html +1810 -0
- package/coverage/src/device/waterdetector.ts.html +1294 -0
- package/coverage/src/homebridge-ui/index.html +116 -0
- package/coverage/src/homebridge-ui/server.ts.html +229 -0
- package/coverage/src/index.html +161 -0
- package/coverage/src/index.ts.html +124 -0
- package/coverage/src/irdevice/airconditioner.ts.html +1687 -0
- package/coverage/src/irdevice/airpurifier.ts.html +844 -0
- package/coverage/src/irdevice/camera.ts.html +475 -0
- package/coverage/src/irdevice/fan.ts.html +766 -0
- package/coverage/src/irdevice/index.html +251 -0
- package/coverage/src/irdevice/irdevice.ts.html +1117 -0
- package/coverage/src/irdevice/light.ts.html +826 -0
- package/coverage/src/irdevice/other.ts.html +2458 -0
- package/coverage/src/irdevice/tv.ts.html +1222 -0
- package/coverage/src/irdevice/vacuumcleaner.ts.html +466 -0
- package/coverage/src/irdevice/waterheater.ts.html +469 -0
- package/coverage/src/platform.ts.html +8776 -0
- package/coverage/src/settings.ts.html +934 -0
- package/coverage/src/utils.ts.html +2092 -0
- package/dist/{device → devices-hap}/airpurifier.d.ts +3 -3
- package/dist/devices-hap/airpurifier.d.ts.map +1 -0
- package/dist/devices-hap/airpurifier.js.map +1 -0
- package/dist/{device → devices-hap}/blindtilt.d.ts +3 -3
- package/dist/devices-hap/blindtilt.d.ts.map +1 -0
- package/dist/{device → devices-hap}/blindtilt.js +6 -1
- package/dist/devices-hap/blindtilt.js.map +1 -0
- package/dist/{device → devices-hap}/bot.d.ts +3 -3
- package/dist/devices-hap/bot.d.ts.map +1 -0
- package/dist/devices-hap/bot.js.map +1 -0
- package/dist/{device → devices-hap}/ceilinglight.d.ts +3 -3
- package/dist/devices-hap/ceilinglight.d.ts.map +1 -0
- package/dist/devices-hap/ceilinglight.js.map +1 -0
- package/dist/{device → devices-hap}/colorbulb.d.ts +3 -3
- package/dist/devices-hap/colorbulb.d.ts.map +1 -0
- package/dist/devices-hap/colorbulb.js.map +1 -0
- package/dist/{device → devices-hap}/contact.d.ts +3 -3
- package/dist/devices-hap/contact.d.ts.map +1 -0
- package/dist/devices-hap/contact.js.map +1 -0
- package/dist/{device → devices-hap}/curtain.d.ts +3 -3
- package/dist/devices-hap/curtain.d.ts.map +1 -0
- package/dist/{device → devices-hap}/curtain.js +32 -8
- package/dist/devices-hap/curtain.js.map +1 -0
- package/dist/{device → devices-hap}/device.d.ts +3 -3
- package/dist/devices-hap/device.d.ts.map +1 -0
- package/dist/{device → devices-hap}/device.js +10 -4
- package/dist/devices-hap/device.js.map +1 -0
- package/dist/{device → devices-hap}/fan.d.ts +3 -3
- package/dist/devices-hap/fan.d.ts.map +1 -0
- package/dist/devices-hap/fan.js.map +1 -0
- package/dist/{device → devices-hap}/hub.d.ts +5 -5
- package/dist/devices-hap/hub.d.ts.map +1 -0
- package/dist/{device → devices-hap}/hub.js +2 -1
- package/dist/devices-hap/hub.js.map +1 -0
- package/dist/{device → devices-hap}/humidifier.d.ts +3 -3
- package/dist/devices-hap/humidifier.d.ts.map +1 -0
- package/dist/devices-hap/humidifier.js.map +1 -0
- package/dist/{device → devices-hap}/iosensor.d.ts +3 -3
- package/dist/devices-hap/iosensor.d.ts.map +1 -0
- package/dist/devices-hap/iosensor.js.map +1 -0
- package/dist/{device → devices-hap}/lightstrip.d.ts +3 -3
- package/dist/devices-hap/lightstrip.d.ts.map +1 -0
- package/dist/devices-hap/lightstrip.js.map +1 -0
- package/dist/{device → devices-hap}/lock.d.ts +3 -3
- package/dist/devices-hap/lock.d.ts.map +1 -0
- package/dist/devices-hap/lock.js.map +1 -0
- package/dist/{device → devices-hap}/meter.d.ts +3 -3
- package/dist/devices-hap/meter.d.ts.map +1 -0
- package/dist/devices-hap/meter.js.map +1 -0
- package/dist/{device → devices-hap}/meterplus.d.ts +3 -3
- package/dist/devices-hap/meterplus.d.ts.map +1 -0
- package/dist/devices-hap/meterplus.js.map +1 -0
- package/dist/{device → devices-hap}/meterpro.d.ts +3 -3
- package/dist/devices-hap/meterpro.d.ts.map +1 -0
- package/dist/{device → devices-hap}/meterpro.js +16 -3
- package/dist/devices-hap/meterpro.js.map +1 -0
- package/dist/{device → devices-hap}/motion.d.ts +3 -3
- package/dist/devices-hap/motion.d.ts.map +1 -0
- package/dist/devices-hap/motion.js.map +1 -0
- package/dist/{device → devices-hap}/plug.d.ts +3 -3
- package/dist/devices-hap/plug.d.ts.map +1 -0
- package/dist/devices-hap/plug.js.map +1 -0
- package/dist/{device → devices-hap}/relayswitch.d.ts +3 -3
- package/dist/devices-hap/relayswitch.d.ts.map +1 -0
- package/dist/devices-hap/relayswitch.js.map +1 -0
- package/dist/{device → devices-hap}/robotvacuumcleaner.d.ts +3 -3
- package/dist/devices-hap/robotvacuumcleaner.d.ts.map +1 -0
- package/dist/devices-hap/robotvacuumcleaner.js.map +1 -0
- package/dist/{device → devices-hap}/waterdetector.d.ts +3 -3
- package/dist/devices-hap/waterdetector.d.ts.map +1 -0
- package/dist/devices-hap/waterdetector.js.map +1 -0
- package/dist/devices-matter/BaseMatterAccessory.d.ts +63 -0
- package/dist/devices-matter/BaseMatterAccessory.d.ts.map +1 -0
- package/dist/devices-matter/BaseMatterAccessory.js +100 -0
- package/dist/devices-matter/BaseMatterAccessory.js.map +1 -0
- package/dist/devices-matter/ColorLightAccessory.d.ts +18 -0
- package/dist/devices-matter/ColorLightAccessory.d.ts.map +1 -0
- package/dist/devices-matter/ColorLightAccessory.js +96 -0
- package/dist/devices-matter/ColorLightAccessory.js.map +1 -0
- package/dist/devices-matter/ColorTemperatureLightAccessory.d.ts +16 -0
- package/dist/devices-matter/ColorTemperatureLightAccessory.d.ts.map +1 -0
- package/dist/devices-matter/ColorTemperatureLightAccessory.js +83 -0
- package/dist/devices-matter/ColorTemperatureLightAccessory.js.map +1 -0
- package/dist/devices-matter/ContactSensorAccessory.d.ts +10 -0
- package/dist/devices-matter/ContactSensorAccessory.d.ts.map +1 -0
- package/dist/devices-matter/ContactSensorAccessory.js +31 -0
- package/dist/devices-matter/ContactSensorAccessory.js.map +1 -0
- package/dist/devices-matter/DimmableLightAccessory.d.ts +56 -0
- package/dist/devices-matter/DimmableLightAccessory.d.ts.map +1 -0
- package/dist/devices-matter/DimmableLightAccessory.js +170 -0
- package/dist/devices-matter/DimmableLightAccessory.js.map +1 -0
- package/dist/devices-matter/DoorLockAccessory.d.ts +12 -0
- package/dist/devices-matter/DoorLockAccessory.d.ts.map +1 -0
- package/dist/devices-matter/DoorLockAccessory.js +47 -0
- package/dist/devices-matter/DoorLockAccessory.js.map +1 -0
- package/dist/devices-matter/ExtendedColorLightAccessory.d.ts +19 -0
- package/dist/devices-matter/ExtendedColorLightAccessory.d.ts.map +1 -0
- package/dist/devices-matter/ExtendedColorLightAccessory.js +108 -0
- package/dist/devices-matter/ExtendedColorLightAccessory.js.map +1 -0
- package/dist/devices-matter/FanAccessory.d.ts +14 -0
- package/dist/devices-matter/FanAccessory.d.ts.map +1 -0
- package/dist/devices-matter/FanAccessory.js +73 -0
- package/dist/devices-matter/FanAccessory.js.map +1 -0
- package/dist/devices-matter/HumiditySensorAccessory.d.ts +10 -0
- package/dist/devices-matter/HumiditySensorAccessory.d.ts.map +1 -0
- package/dist/devices-matter/HumiditySensorAccessory.js +33 -0
- package/dist/devices-matter/HumiditySensorAccessory.js.map +1 -0
- package/dist/devices-matter/LeakSensorAccessory.d.ts +10 -0
- package/dist/devices-matter/LeakSensorAccessory.d.ts.map +1 -0
- package/dist/devices-matter/LeakSensorAccessory.js +30 -0
- package/dist/devices-matter/LeakSensorAccessory.js.map +1 -0
- package/dist/devices-matter/LightSensorAccessory.d.ts +10 -0
- package/dist/devices-matter/LightSensorAccessory.d.ts.map +1 -0
- package/dist/devices-matter/LightSensorAccessory.js +33 -0
- package/dist/devices-matter/LightSensorAccessory.js.map +1 -0
- package/dist/devices-matter/OccupancySensorAccessory.d.ts +10 -0
- package/dist/devices-matter/OccupancySensorAccessory.d.ts.map +1 -0
- package/dist/devices-matter/OccupancySensorAccessory.js +43 -0
- package/dist/devices-matter/OccupancySensorAccessory.js.map +1 -0
- package/dist/devices-matter/OnOffLightAccessory.d.ts +36 -0
- package/dist/devices-matter/OnOffLightAccessory.d.ts.map +1 -0
- package/dist/devices-matter/OnOffLightAccessory.js +117 -0
- package/dist/devices-matter/OnOffLightAccessory.js.map +1 -0
- package/dist/devices-matter/OnOffOutletAccessory.d.ts +12 -0
- package/dist/devices-matter/OnOffOutletAccessory.d.ts.map +1 -0
- package/dist/devices-matter/OnOffOutletAccessory.js +43 -0
- package/dist/devices-matter/OnOffOutletAccessory.js.map +1 -0
- package/dist/devices-matter/OnOffSwitchAccessory.d.ts +12 -0
- package/dist/devices-matter/OnOffSwitchAccessory.d.ts.map +1 -0
- package/dist/devices-matter/OnOffSwitchAccessory.js +43 -0
- package/dist/devices-matter/OnOffSwitchAccessory.js.map +1 -0
- package/dist/devices-matter/RoboticVacuumAccessory.d.ts +66 -0
- package/dist/devices-matter/RoboticVacuumAccessory.d.ts.map +1 -0
- package/dist/devices-matter/RoboticVacuumAccessory.js +402 -0
- package/dist/devices-matter/RoboticVacuumAccessory.js.map +1 -0
- package/dist/devices-matter/SmokeCOAlarmAccessory.d.ts +11 -0
- package/dist/devices-matter/SmokeCOAlarmAccessory.d.ts.map +1 -0
- package/dist/devices-matter/SmokeCOAlarmAccessory.js +49 -0
- package/dist/devices-matter/SmokeCOAlarmAccessory.js.map +1 -0
- package/dist/devices-matter/TemperatureSensorAccessory.d.ts +10 -0
- package/dist/devices-matter/TemperatureSensorAccessory.d.ts.map +1 -0
- package/dist/devices-matter/TemperatureSensorAccessory.js +33 -0
- package/dist/devices-matter/TemperatureSensorAccessory.js.map +1 -0
- package/dist/devices-matter/ThermostatAccessory.d.ts +17 -0
- package/dist/devices-matter/ThermostatAccessory.d.ts.map +1 -0
- package/dist/devices-matter/ThermostatAccessory.js +87 -0
- package/dist/devices-matter/ThermostatAccessory.js.map +1 -0
- package/dist/devices-matter/VenetianBlindAccessory.d.ts +17 -0
- package/dist/devices-matter/VenetianBlindAccessory.d.ts.map +1 -0
- package/dist/devices-matter/VenetianBlindAccessory.js +100 -0
- package/dist/devices-matter/VenetianBlindAccessory.js.map +1 -0
- package/dist/devices-matter/WindowBlindAccessory.d.ts +15 -0
- package/dist/devices-matter/WindowBlindAccessory.d.ts.map +1 -0
- package/dist/devices-matter/WindowBlindAccessory.js +81 -0
- package/dist/devices-matter/WindowBlindAccessory.js.map +1 -0
- package/dist/devices-matter/custom/PowerStripAccessory.d.ts +97 -0
- package/dist/devices-matter/custom/PowerStripAccessory.d.ts.map +1 -0
- package/dist/devices-matter/custom/PowerStripAccessory.js +265 -0
- package/dist/devices-matter/custom/PowerStripAccessory.js.map +1 -0
- package/dist/devices-matter/custom/index.d.ts +8 -0
- package/dist/devices-matter/custom/index.d.ts.map +1 -0
- package/dist/devices-matter/custom/index.js +8 -0
- package/dist/devices-matter/custom/index.js.map +1 -0
- package/dist/devices-matter/index.d.ts +29 -0
- package/dist/devices-matter/index.d.ts.map +1 -0
- package/dist/devices-matter/index.js +28 -0
- package/dist/devices-matter/index.js.map +1 -0
- package/dist/homebridge-ui/public/index.html +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/index.test.js +2 -2
- package/dist/index.test.js.map +1 -1
- package/dist/irdevice/airconditioner.d.ts +3 -3
- package/dist/irdevice/airconditioner.d.ts.map +1 -1
- package/dist/irdevice/airconditioner.js.map +1 -1
- package/dist/irdevice/airpurifier.d.ts +3 -3
- package/dist/irdevice/airpurifier.d.ts.map +1 -1
- package/dist/irdevice/airpurifier.js.map +1 -1
- package/dist/irdevice/camera.d.ts +3 -3
- package/dist/irdevice/camera.d.ts.map +1 -1
- package/dist/irdevice/camera.js.map +1 -1
- package/dist/irdevice/fan.d.ts +3 -3
- package/dist/irdevice/fan.d.ts.map +1 -1
- package/dist/irdevice/fan.js.map +1 -1
- package/dist/irdevice/irdevice.d.ts +3 -3
- package/dist/irdevice/irdevice.d.ts.map +1 -1
- package/dist/irdevice/irdevice.js.map +1 -1
- package/dist/irdevice/light.d.ts +3 -3
- package/dist/irdevice/light.d.ts.map +1 -1
- package/dist/irdevice/light.js.map +1 -1
- package/dist/irdevice/other.d.ts +3 -3
- package/dist/irdevice/other.d.ts.map +1 -1
- package/dist/irdevice/other.js.map +1 -1
- package/dist/irdevice/tv.d.ts +3 -3
- package/dist/irdevice/tv.d.ts.map +1 -1
- package/dist/irdevice/tv.js.map +1 -1
- package/dist/irdevice/vacuumcleaner.d.ts +3 -3
- package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
- package/dist/irdevice/vacuumcleaner.js.map +1 -1
- package/dist/irdevice/waterheater.d.ts +3 -3
- package/dist/irdevice/waterheater.d.ts.map +1 -1
- package/dist/irdevice/waterheater.js.map +1 -1
- package/dist/{platform.d.ts → platform-hap.d.ts} +2 -2
- package/dist/platform-hap.d.ts.map +1 -0
- package/dist/{platform.js → platform-hap.js} +50 -32
- package/dist/platform-hap.js.map +1 -0
- package/dist/platform-matter.d.ts +75 -0
- package/dist/platform-matter.d.ts.map +1 -0
- package/dist/platform-matter.js +379 -0
- package/dist/platform-matter.js.map +1 -0
- package/dist/utils.d.ts +5 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +43 -0
- package/dist/utils.js.map +1 -1
- package/dist/verifyconfig.test.d.ts +2 -0
- package/dist/verifyconfig.test.d.ts.map +1 -0
- package/dist/verifyconfig.test.js +167 -0
- package/dist/verifyconfig.test.js.map +1 -0
- package/docs/index.html +20 -11
- package/docs/variables/default.html +1 -1
- package/package.json +7 -7
- package/src/{device → devices-hap}/airpurifier.ts +2 -2
- package/src/{device → devices-hap}/blindtilt.ts +7 -3
- package/src/{device → devices-hap}/bot.ts +2 -2
- package/src/{device → devices-hap}/ceilinglight.ts +2 -2
- package/src/{device → devices-hap}/colorbulb.ts +2 -2
- package/src/{device → devices-hap}/contact.ts +2 -2
- package/src/{device → devices-hap}/curtain.ts +32 -10
- package/src/{device → devices-hap}/device.ts +12 -6
- package/src/{device → devices-hap}/fan.ts +2 -2
- package/src/{device → devices-hap}/hub.ts +7 -6
- package/src/{device → devices-hap}/humidifier.ts +2 -2
- package/src/{device → devices-hap}/iosensor.ts +2 -2
- package/src/{device → devices-hap}/lightstrip.ts +2 -2
- package/src/{device → devices-hap}/lock.ts +2 -2
- package/src/{device → devices-hap}/meter.ts +2 -2
- package/src/{device → devices-hap}/meterplus.ts +2 -2
- package/src/{device → devices-hap}/meterpro.ts +18 -5
- package/src/{device → devices-hap}/motion.ts +2 -2
- package/src/{device → devices-hap}/plug.ts +2 -2
- package/src/{device → devices-hap}/relayswitch.ts +2 -2
- package/src/{device → devices-hap}/robotvacuumcleaner.ts +2 -2
- package/src/{device → devices-hap}/waterdetector.ts +2 -2
- package/src/devices-matter/BaseMatterAccessory.ts +131 -0
- package/src/devices-matter/ColorLightAccessory.ts +113 -0
- package/src/devices-matter/ColorTemperatureLightAccessory.ts +98 -0
- package/src/devices-matter/ContactSensorAccessory.ts +37 -0
- package/src/devices-matter/DimmableLightAccessory.ts +196 -0
- package/src/devices-matter/DoorLockAccessory.ts +56 -0
- package/src/devices-matter/ExtendedColorLightAccessory.ts +127 -0
- package/src/devices-matter/FanAccessory.ts +87 -0
- package/src/devices-matter/HumiditySensorAccessory.ts +39 -0
- package/src/devices-matter/LeakSensorAccessory.ts +36 -0
- package/src/devices-matter/LightSensorAccessory.ts +39 -0
- package/src/devices-matter/OccupancySensorAccessory.ts +52 -0
- package/src/devices-matter/OnOffLightAccessory.ts +133 -0
- package/src/devices-matter/OnOffOutletAccessory.ts +52 -0
- package/src/devices-matter/OnOffSwitchAccessory.ts +52 -0
- package/src/devices-matter/RoboticVacuumAccessory.ts +484 -0
- package/src/devices-matter/SmokeCOAlarmAccessory.ts +59 -0
- package/src/devices-matter/TemperatureSensorAccessory.ts +39 -0
- package/src/devices-matter/ThermostatAccessory.ts +105 -0
- package/src/devices-matter/VenetianBlindAccessory.ts +118 -0
- package/src/devices-matter/WindowBlindAccessory.ts +94 -0
- package/src/devices-matter/custom/PowerStripAccessory.ts +309 -0
- package/src/devices-matter/custom/index.ts +8 -0
- package/src/devices-matter/index.ts +29 -0
- package/src/homebridge-ui/public/index.html +1 -1
- package/src/index.test.ts +2 -2
- package/src/index.ts +7 -2
- package/src/irdevice/airconditioner.ts +2 -2
- package/src/irdevice/airpurifier.ts +2 -2
- package/src/irdevice/camera.ts +2 -2
- package/src/irdevice/fan.ts +2 -2
- package/src/irdevice/irdevice.ts +2 -2
- package/src/irdevice/light.ts +2 -2
- package/src/irdevice/other.ts +2 -2
- package/src/irdevice/tv.ts +2 -2
- package/src/irdevice/vacuumcleaner.ts +2 -2
- package/src/irdevice/waterheater.ts +2 -2
- package/src/{platform.ts → platform-hap.ts} +47 -31
- package/src/platform-matter.ts +465 -0
- package/src/utils.ts +49 -0
- package/src/verifyconfig.test.ts +197 -0
- package/tsconfig.json +2 -1
- package/typedoc.json +1 -0
- package/.github/workflows/build.yml +0 -18
- package/.github/workflows/changerelease.yml +0 -11
- package/.github/workflows/labeler.yml +0 -16
- package/.github/workflows/release-drafter.yml +0 -14
- package/dist/device/airpurifier.d.ts.map +0 -1
- package/dist/device/airpurifier.js.map +0 -1
- package/dist/device/blindtilt.d.ts.map +0 -1
- package/dist/device/blindtilt.js.map +0 -1
- package/dist/device/bot.d.ts.map +0 -1
- package/dist/device/bot.js.map +0 -1
- package/dist/device/ceilinglight.d.ts.map +0 -1
- package/dist/device/ceilinglight.js.map +0 -1
- package/dist/device/colorbulb.d.ts.map +0 -1
- package/dist/device/colorbulb.js.map +0 -1
- package/dist/device/contact.d.ts.map +0 -1
- package/dist/device/contact.js.map +0 -1
- package/dist/device/curtain.d.ts.map +0 -1
- package/dist/device/curtain.js.map +0 -1
- package/dist/device/device.d.ts.map +0 -1
- package/dist/device/device.js.map +0 -1
- package/dist/device/fan.d.ts.map +0 -1
- package/dist/device/fan.js.map +0 -1
- package/dist/device/hub.d.ts.map +0 -1
- package/dist/device/hub.js.map +0 -1
- package/dist/device/humidifier.d.ts.map +0 -1
- package/dist/device/humidifier.js.map +0 -1
- package/dist/device/iosensor.d.ts.map +0 -1
- package/dist/device/iosensor.js.map +0 -1
- package/dist/device/lightstrip.d.ts.map +0 -1
- package/dist/device/lightstrip.js.map +0 -1
- package/dist/device/lock.d.ts.map +0 -1
- package/dist/device/lock.js.map +0 -1
- package/dist/device/meter.d.ts.map +0 -1
- package/dist/device/meter.js.map +0 -1
- package/dist/device/meterplus.d.ts.map +0 -1
- package/dist/device/meterplus.js.map +0 -1
- package/dist/device/meterpro.d.ts.map +0 -1
- package/dist/device/meterpro.js.map +0 -1
- package/dist/device/motion.d.ts.map +0 -1
- package/dist/device/motion.js.map +0 -1
- package/dist/device/plug.d.ts.map +0 -1
- package/dist/device/plug.js.map +0 -1
- package/dist/device/relayswitch.d.ts.map +0 -1
- package/dist/device/relayswitch.js.map +0 -1
- package/dist/device/robotvacuumcleaner.d.ts.map +0 -1
- package/dist/device/robotvacuumcleaner.js.map +0 -1
- package/dist/device/waterdetector.d.ts.map +0 -1
- package/dist/device/waterdetector.js.map +0 -1
- package/dist/platform.d.ts.map +0 -1
- package/dist/platform.js.map +0 -1
- /package/dist/{device → devices-hap}/airpurifier.js +0 -0
- /package/dist/{device → devices-hap}/bot.js +0 -0
- /package/dist/{device → devices-hap}/ceilinglight.js +0 -0
- /package/dist/{device → devices-hap}/colorbulb.js +0 -0
- /package/dist/{device → devices-hap}/contact.js +0 -0
- /package/dist/{device → devices-hap}/fan.js +0 -0
- /package/dist/{device → devices-hap}/humidifier.js +0 -0
- /package/dist/{device → devices-hap}/iosensor.js +0 -0
- /package/dist/{device → devices-hap}/lightstrip.js +0 -0
- /package/dist/{device → devices-hap}/lock.js +0 -0
- /package/dist/{device → devices-hap}/meter.js +0 -0
- /package/dist/{device → devices-hap}/meterplus.js +0 -0
- /package/dist/{device → devices-hap}/motion.js +0 -0
- /package/dist/{device → devices-hap}/plug.js +0 -0
- /package/dist/{device → devices-hap}/relayswitch.js +0 -0
- /package/dist/{device → devices-hap}/robotvacuumcleaner.js +0 -0
- /package/dist/{device → devices-hap}/waterdetector.js +0 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
// Create a minimal mock of the SwitchBotPlatform to test verifyConfig
|
|
3
|
+
class MockSwitchBotPlatform {
|
|
4
|
+
config;
|
|
5
|
+
errorLogCalls = [];
|
|
6
|
+
debugLogCalls = [];
|
|
7
|
+
constructor(config) {
|
|
8
|
+
this.config = config;
|
|
9
|
+
}
|
|
10
|
+
errorLog(message) {
|
|
11
|
+
this.errorLogCalls.push(message);
|
|
12
|
+
}
|
|
13
|
+
debugLog(message) {
|
|
14
|
+
this.debugLogCalls.push(message);
|
|
15
|
+
}
|
|
16
|
+
debugWarnLog(message) {
|
|
17
|
+
this.debugLogCalls.push(`WARN: ${message}`);
|
|
18
|
+
}
|
|
19
|
+
debugErrorLog(message) {
|
|
20
|
+
this.debugLogCalls.push(`ERROR: ${message}`);
|
|
21
|
+
}
|
|
22
|
+
// Copy the exact verifyConfig method from the actual platform
|
|
23
|
+
async verifyConfig() {
|
|
24
|
+
this.debugLog('Verifying Config');
|
|
25
|
+
this.config = this.config || {};
|
|
26
|
+
this.config.options = this.config.options || {};
|
|
27
|
+
if (this.config.options) {
|
|
28
|
+
// Device Config
|
|
29
|
+
if (this.config.options.devices) {
|
|
30
|
+
for (const deviceConfig of this.config.options.devices) {
|
|
31
|
+
if (!deviceConfig.hide_device) {
|
|
32
|
+
if (!deviceConfig.deviceId) {
|
|
33
|
+
this.errorLog('The devices config section is missing the *Device ID* in the config. Please check your config.');
|
|
34
|
+
}
|
|
35
|
+
if (!deviceConfig.configDeviceType && deviceConfig.connectionType) {
|
|
36
|
+
this.errorLog('The devices config section is missing the *Device Type* in the config. Please check your config.');
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// IR Device Config
|
|
42
|
+
if (this.config.options.irdevices) {
|
|
43
|
+
for (const irDeviceConfig of this.config.options.irdevices) {
|
|
44
|
+
if (!irDeviceConfig.hide_device) {
|
|
45
|
+
if (!irDeviceConfig.deviceId) {
|
|
46
|
+
this.errorLog('The devices config section is missing the *Device ID* in the config. Please check your config.');
|
|
47
|
+
}
|
|
48
|
+
if (!irDeviceConfig.deviceId && !irDeviceConfig.configRemoteType) {
|
|
49
|
+
this.errorLog('The devices config section is missing the *Device Type* in the config. Please check your config.');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (!this.config.credentials && !this.config.options) {
|
|
56
|
+
this.debugWarnLog('Missing Credentials');
|
|
57
|
+
}
|
|
58
|
+
else if (this.config.credentials && !this.config.credentials.notice) {
|
|
59
|
+
if (!this.config.credentials?.token) {
|
|
60
|
+
this.debugErrorLog('Missing token');
|
|
61
|
+
this.debugWarnLog('Cloud Enabled SwitchBot Devices & IR Devices will not work');
|
|
62
|
+
}
|
|
63
|
+
if (this.config.credentials?.token) {
|
|
64
|
+
if (!this.config.credentials?.secret) {
|
|
65
|
+
this.debugErrorLog('Missing secret');
|
|
66
|
+
this.debugWarnLog('Cloud Enabled SwitchBot Devices & IR Devices will not work');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
describe('verifyConfig fix for reboot loop', () => {
|
|
73
|
+
it('should log error instead of throwing when device config is missing deviceId', async () => {
|
|
74
|
+
const config = {
|
|
75
|
+
platform: 'SwitchBot',
|
|
76
|
+
name: 'SwitchBot',
|
|
77
|
+
credentials: {
|
|
78
|
+
token: 'test-token',
|
|
79
|
+
secret: 'test-secret',
|
|
80
|
+
},
|
|
81
|
+
options: {
|
|
82
|
+
devices: [
|
|
83
|
+
{
|
|
84
|
+
logging: 'standard',
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
const platform = new MockSwitchBotPlatform(config);
|
|
90
|
+
// This should NOT throw an error anymore - it should log instead
|
|
91
|
+
await expect(platform.verifyConfig()).resolves.not.toThrow();
|
|
92
|
+
// Verify that the error was logged instead of thrown
|
|
93
|
+
expect(platform.errorLogCalls).toContain('The devices config section is missing the *Device ID* in the config. Please check your config.');
|
|
94
|
+
});
|
|
95
|
+
it('should log error instead of throwing when device config is missing configDeviceType with connectionType', async () => {
|
|
96
|
+
const config = {
|
|
97
|
+
platform: 'SwitchBot',
|
|
98
|
+
name: 'SwitchBot',
|
|
99
|
+
credentials: {
|
|
100
|
+
token: 'test-token',
|
|
101
|
+
secret: 'test-secret',
|
|
102
|
+
},
|
|
103
|
+
options: {
|
|
104
|
+
devices: [
|
|
105
|
+
{
|
|
106
|
+
deviceId: 'test-device-id',
|
|
107
|
+
connectionType: 'BLE',
|
|
108
|
+
// Missing configDeviceType
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
const platform = new MockSwitchBotPlatform(config);
|
|
114
|
+
// This should NOT throw an error anymore - it should log instead
|
|
115
|
+
await expect(platform.verifyConfig()).resolves.not.toThrow();
|
|
116
|
+
// Verify that the error was logged instead of thrown
|
|
117
|
+
expect(platform.errorLogCalls).toContain('The devices config section is missing the *Device Type* in the config. Please check your config.');
|
|
118
|
+
});
|
|
119
|
+
it('should not log error when device config has hide_device set to true', async () => {
|
|
120
|
+
const config = {
|
|
121
|
+
platform: 'SwitchBot',
|
|
122
|
+
name: 'SwitchBot',
|
|
123
|
+
credentials: {
|
|
124
|
+
token: 'test-token',
|
|
125
|
+
secret: 'test-secret',
|
|
126
|
+
},
|
|
127
|
+
options: {
|
|
128
|
+
devices: [
|
|
129
|
+
{
|
|
130
|
+
hide_device: true,
|
|
131
|
+
// Missing deviceId but hidden
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
const platform = new MockSwitchBotPlatform(config);
|
|
137
|
+
// Should not throw or log errors because device is hidden
|
|
138
|
+
await expect(platform.verifyConfig()).resolves.not.toThrow();
|
|
139
|
+
expect(platform.errorLogCalls).toHaveLength(0);
|
|
140
|
+
});
|
|
141
|
+
it('should handle valid device config without errors', async () => {
|
|
142
|
+
const config = {
|
|
143
|
+
platform: 'SwitchBot',
|
|
144
|
+
name: 'SwitchBot',
|
|
145
|
+
credentials: {
|
|
146
|
+
token: 'test-token',
|
|
147
|
+
secret: 'test-secret',
|
|
148
|
+
},
|
|
149
|
+
options: {
|
|
150
|
+
devices: [
|
|
151
|
+
{
|
|
152
|
+
deviceId: 'test-device-id',
|
|
153
|
+
configDeviceType: 'Bot',
|
|
154
|
+
logging: 'standard',
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
};
|
|
159
|
+
const platform = new MockSwitchBotPlatform(config);
|
|
160
|
+
// Should not throw or log device config errors with valid config
|
|
161
|
+
await expect(platform.verifyConfig()).resolves.not.toThrow();
|
|
162
|
+
// Should not have device config errors
|
|
163
|
+
expect(platform.errorLogCalls.filter(msg => msg.includes('missing the *Device ID*') ||
|
|
164
|
+
msg.includes('missing the *Device Type*'))).toHaveLength(0);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
//# sourceMappingURL=verifyconfig.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifyconfig.test.js","sourceRoot":"","sources":["../src/verifyconfig.test.ts"],"names":[],"mappings":"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"}
|
package/docs/index.html
CHANGED
|
@@ -113,7 +113,7 @@ Without this step, then you will receive the following error when the swichbot p
|
|
|
113
113
|
<li>Supports OpenAPI & Bluetooth Low Energy (BLE) Connections</li>
|
|
114
114
|
<li>If using OpenAPI:
|
|
115
115
|
<ul>
|
|
116
|
-
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a> or <a href="https://us.switch-bot.com/products/switchbot-hub-
|
|
116
|
+
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a>, <a href="https://us.switch-bot.com/products/switchbot-hub-2">SwitchBot Hub 2</a>, or <a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a> Required</li>
|
|
117
117
|
<li>Enable Cloud Services for Device on SwitchBot App</li>
|
|
118
118
|
</ul>
|
|
119
119
|
</li>
|
|
@@ -130,7 +130,7 @@ Without this step, then you will receive the following error when the swichbot p
|
|
|
130
130
|
<li>Supports OpenAPI & Bluetooth Low Energy (BLE) Connections</li>
|
|
131
131
|
<li>If using OpenAPI:
|
|
132
132
|
<ul>
|
|
133
|
-
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a> or <a href="https://us.switch-bot.com/products/switchbot-hub-
|
|
133
|
+
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a>, <a href="https://us.switch-bot.com/products/switchbot-hub-2">SwitchBot Hub 2</a>, or <a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a> Required</li>
|
|
134
134
|
<li>Enable Cloud Services for Device on SwitchBot App</li>
|
|
135
135
|
</ul>
|
|
136
136
|
</li>
|
|
@@ -147,7 +147,7 @@ Without this step, then you will receive the following error when the swichbot p
|
|
|
147
147
|
<li>Supports OpenAPI & Bluetooth Low Energy (BLE) Connections</li>
|
|
148
148
|
<li>If using OpenAPI:
|
|
149
149
|
<ul>
|
|
150
|
-
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a> or <a href="https://us.switch-bot.com/products/switchbot-hub-
|
|
150
|
+
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a>, <a href="https://us.switch-bot.com/products/switchbot-hub-2">SwitchBot Hub 2</a>, or <a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a> Required</li>
|
|
151
151
|
<li>Enable Cloud Services for Device on SwitchBot App</li>
|
|
152
152
|
</ul>
|
|
153
153
|
</li>
|
|
@@ -165,7 +165,7 @@ Without this step, then you will receive the following error when the swichbot p
|
|
|
165
165
|
<li>Supports OpenAPI & Bluetooth Low Energy (BLE) Connections</li>
|
|
166
166
|
<li>If using OpenAPI:
|
|
167
167
|
<ul>
|
|
168
|
-
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a> or <a href="https://us.switch-bot.com/products/switchbot-hub-
|
|
168
|
+
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a>, <a href="https://us.switch-bot.com/products/switchbot-hub-2">SwitchBot Hub 2</a>, or <a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a> Required</li>
|
|
169
169
|
<li>Enable Cloud Services for Device on SwitchBot App</li>
|
|
170
170
|
</ul>
|
|
171
171
|
</li>
|
|
@@ -182,7 +182,7 @@ Without this step, then you will receive the following error when the swichbot p
|
|
|
182
182
|
<li>Supports OpenAPI & partial Bluetooth Low Energy (BLE) Connections</li>
|
|
183
183
|
<li>If using OpenAPI:
|
|
184
184
|
<ul>
|
|
185
|
-
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a> or <a href="https://us.switch-bot.com/products/switchbot-hub-
|
|
185
|
+
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a>, <a href="https://us.switch-bot.com/products/switchbot-hub-2">SwitchBot Hub 2</a>, or <a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a> Required</li>
|
|
186
186
|
<li>Enable Cloud Services for Device on SwitchBot App</li>
|
|
187
187
|
</ul>
|
|
188
188
|
</li>
|
|
@@ -196,7 +196,7 @@ Without this step, then you will receive the following error when the swichbot p
|
|
|
196
196
|
<li>Supports OpenAPI & partial Bluetooth Low Energy (BLE) Connections</li>
|
|
197
197
|
<li>If using OpenAPI:
|
|
198
198
|
<ul>
|
|
199
|
-
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a> or <a href="https://us.switch-bot.com/products/switchbot-hub-
|
|
199
|
+
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a>, <a href="https://us.switch-bot.com/products/switchbot-hub-2">SwitchBot Hub 2</a>, or <a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a> Required</li>
|
|
200
200
|
<li>Enable Cloud Services for Device on SwitchBot App</li>
|
|
201
201
|
</ul>
|
|
202
202
|
</li>
|
|
@@ -208,7 +208,7 @@ Without this step, then you will receive the following error when the swichbot p
|
|
|
208
208
|
<li>Supports OpenAPI & Bluetooth Low Energy (BLE) Connections</li>
|
|
209
209
|
<li>If using OpenAPI:
|
|
210
210
|
<ul>
|
|
211
|
-
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a> or <a href="https://us.switch-bot.com/products/switchbot-hub-
|
|
211
|
+
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a>, <a href="https://us.switch-bot.com/products/switchbot-hub-2">SwitchBot Hub 2</a>, or <a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a> Required</li>
|
|
212
212
|
<li>Enable Cloud Services for Device on SwitchBot App</li>
|
|
213
213
|
</ul>
|
|
214
214
|
</li>
|
|
@@ -229,7 +229,7 @@ Without this step, then you will receive the following error when the swichbot p
|
|
|
229
229
|
<li>Supports OpenAPI & Bluetooth Low Energy (BLE) Connections</li>
|
|
230
230
|
<li>If using OpenAPI:
|
|
231
231
|
<ul>
|
|
232
|
-
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a> or <a href="https://us.switch-bot.com/products/switchbot-hub-
|
|
232
|
+
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a>, <a href="https://us.switch-bot.com/products/switchbot-hub-2">SwitchBot Hub 2</a>, or <a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a> Required</li>
|
|
233
233
|
<li>Enable Cloud Services for Device on SwitchBot App</li>
|
|
234
234
|
</ul>
|
|
235
235
|
</li>
|
|
@@ -240,7 +240,7 @@ Without this step, then you will receive the following error when the swichbot p
|
|
|
240
240
|
<li>Supports OpenAPI & Bluetooth Low Energy (BLE) Connections</li>
|
|
241
241
|
<li>If using OpenAPI:
|
|
242
242
|
<ul>
|
|
243
|
-
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a> or <a href="https://us.switch-bot.com/products/switchbot-hub-
|
|
243
|
+
<li><a href="https://www.switch-bot.com/products/switchbot-hub-mini">SwitchBot Hub Mini</a>, <a href="https://us.switch-bot.com/products/switchbot-hub-2">SwitchBot Hub 2</a>, or <a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a> Required</li>
|
|
244
244
|
<li>Enable Cloud Services for Device on SwitchBot App</li>
|
|
245
245
|
<li>You must set your Bot's Device ID for either Press Mode or Switch Mode in Plugin Config (SwitchBot Device Settings > Bot Settings)
|
|
246
246
|
<ul>
|
|
@@ -272,6 +272,15 @@ Without this step, then you will receive the following error when the swichbot p
|
|
|
272
272
|
</li>
|
|
273
273
|
</ul>
|
|
274
274
|
</li>
|
|
275
|
+
<li><a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a>
|
|
276
|
+
<ul>
|
|
277
|
+
<li>Supports OpenAPI & Bluetooth Low Energy (BLE) Connections
|
|
278
|
+
<ul>
|
|
279
|
+
<li>Enables Humidity, Temperature, and Light Sensor</li>
|
|
280
|
+
</ul>
|
|
281
|
+
</li>
|
|
282
|
+
</ul>
|
|
283
|
+
</li>
|
|
275
284
|
<li><a href="https://us.switch-bot.com/products/switchbot-battery-circulator-fan">SwitchBot Battery Circulator Fan</a>
|
|
276
285
|
<ul>
|
|
277
286
|
<li>Supports OpenAPI Connection Only</li>
|
|
@@ -283,7 +292,7 @@ Without this step, then you will receive the following error when the swichbot p
|
|
|
283
292
|
</ul>
|
|
284
293
|
</li>
|
|
285
294
|
</ul>
|
|
286
|
-
<h2 id="supported-ir-devices" class="tsd-anchor-link">Supported IR Devices<a href="#supported-ir-devices" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><h3 id="all-ir-devices-require-switchbot-hub-2-or-hub-mini" class="tsd-anchor-link"><em>(All IR Devices require <a href="https://us.switch-bot.com/products/switchbot-hub-2">SwitchBot Hub 2</a> or <a href="https://www.switch-bot.com/products/switchbot-hub-mini">Hub Mini</a>)</em><a href="#all-ir-devices-require-switchbot-hub-2-or-hub-mini" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><ul>
|
|
295
|
+
<h2 id="supported-ir-devices" class="tsd-anchor-link">Supported IR Devices<a href="#supported-ir-devices" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><h3 id="all-ir-devices-require-switchbot-hub-2-switchbot-hub-3-or-hub-mini" class="tsd-anchor-link"><em>(All IR Devices require <a href="https://us.switch-bot.com/products/switchbot-hub-2">SwitchBot Hub 2</a>, <a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a>, or <a href="https://www.switch-bot.com/products/switchbot-hub-mini">Hub Mini</a>)</em><a href="#all-ir-devices-require-switchbot-hub-2-switchbot-hub-3-or-hub-mini" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><ul>
|
|
287
296
|
<li>TV
|
|
288
297
|
<ul>
|
|
289
298
|
<li>Allows for On/Off and Volume Controls</li>
|
|
@@ -377,4 +386,4 @@ Without this step, then you will receive the following error when the swichbot p
|
|
|
377
386
|
<li><a href="https://www.facebook.com/SwitchBotRobot/">Facebook @SwitchBotRobot</a></li>
|
|
378
387
|
<li><a href="https://twitter.com/switchbot">Twitter @SwitchBot</a></li>
|
|
379
388
|
</ul>
|
|
380
|
-
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#switchbothomebridge-switchbot"><span>@switchbot/homebridge-<wbr/>switchbot</span></a><ul><li><a href="#installation"><span>Installation</span></a></li><li><a href="#configuration"><span>Configuration</span></a></li><li><ul><li><a href="#if-using-openapi-connection"><span>If using <wbr/>Open<wbr/>API <wbr/>Connection</span></a></li><li><a href="#if-using-ble-connection"><span>If using <wbr/>BLE <wbr/>Connection</span></a></li></ul></li><li><a href="#troubleshooting"><span>Troubleshooting</span></a></li><li><ul><li><a href="#if-using-linux--raspberry-pi-os"><span>If using <wbr/>Linux / <wbr/>Raspberry <wbr/>Pi <wbr/>OS</span></a></li><li><a href="#if-using-macos"><span>If using <wbr/>Mac<wbr/>OS</span></a></li></ul></li><li><a href="#supported-switchbot-devices"><span>Supported <wbr/>Switch<wbr/>Bot <wbr/>Devices</span></a></li><li><a href="#supported-ir-devices"><span>Supported <wbr/>IR <wbr/>Devices</span></a></li><li><ul><li><a href="#all-ir-devices-require-switchbot-hub-2-or-hub-mini"><span>(<wbr/>All <wbr/>IR <wbr/>Devices require <wbr/>Switch<wbr/>Bot <wbr/>Hub 2 or <wbr/>Hub <wbr/>Mini)</span></a></li></ul></li><li><a href="#switchbot-apis"><span>Switch<wbr/>Bot <wbr/>AP<wbr/>Is</span></a></li><li><a href="#community"><span>Community</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">@switchbot/homebridge-switchbot</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
|
|
389
|
+
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#switchbothomebridge-switchbot"><span>@switchbot/homebridge-<wbr/>switchbot</span></a><ul><li><a href="#installation"><span>Installation</span></a></li><li><a href="#configuration"><span>Configuration</span></a></li><li><ul><li><a href="#if-using-openapi-connection"><span>If using <wbr/>Open<wbr/>API <wbr/>Connection</span></a></li><li><a href="#if-using-ble-connection"><span>If using <wbr/>BLE <wbr/>Connection</span></a></li></ul></li><li><a href="#troubleshooting"><span>Troubleshooting</span></a></li><li><ul><li><a href="#if-using-linux--raspberry-pi-os"><span>If using <wbr/>Linux / <wbr/>Raspberry <wbr/>Pi <wbr/>OS</span></a></li><li><a href="#if-using-macos"><span>If using <wbr/>Mac<wbr/>OS</span></a></li></ul></li><li><a href="#supported-switchbot-devices"><span>Supported <wbr/>Switch<wbr/>Bot <wbr/>Devices</span></a></li><li><a href="#supported-ir-devices"><span>Supported <wbr/>IR <wbr/>Devices</span></a></li><li><ul><li><a href="#all-ir-devices-require-switchbot-hub-2-switchbot-hub-3-or-hub-mini"><span>(<wbr/>All <wbr/>IR <wbr/>Devices require <wbr/>Switch<wbr/>Bot <wbr/>Hub 2, <wbr/>Switch<wbr/>Bot <wbr/>Hub 3, or <wbr/>Hub <wbr/>Mini)</span></a></li></ul></li><li><a href="#switchbot-apis"><span>Switch<wbr/>Bot <wbr/>AP<wbr/>Is</span></a></li><li><a href="#community"><span>Community</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">@switchbot/homebridge-switchbot</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>default | @switchbot/homebridge-switchbot</title><meta name="description" content="Documentation for @switchbot/homebridge-switchbot"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@switchbot/homebridge-switchbot</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">default</a></li></ul><h1>Variable default</h1></div><div class="tsd-signature"><span class="tsd-kind-variable">default</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">api</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">API</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span></div><div class="tsd-type-declaration"><h4>Type
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>default | @switchbot/homebridge-switchbot</title><meta name="description" content="Documentation for @switchbot/homebridge-switchbot"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@switchbot/homebridge-switchbot</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">default</a></li></ul><h1>Variable default</h1></div><div class="tsd-signature"><span class="tsd-kind-variable">default</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">api</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">API</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span></div><div class="tsd-type-declaration"><h4>Type Declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter-signature"><ul class="tsd-signatures"><li class="tsd-signature" id="__type"><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">api</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">API</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">api</span>: <span class="tsd-signature-type">API</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/OpenWonderLabs/homebridge-switchbot/blob/f4c8792e826ea905697f1a4773be292cd8e78276/src/index.ts#L12">index.ts:12</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@switchbot/homebridge-switchbot</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@switchbot/homebridge-switchbot",
|
|
3
3
|
"displayName": "SwitchBot",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "5.0.0-beta.1",
|
|
6
6
|
"description": "The SwitchBot plugin allows you to access your SwitchBot device(s) from HomeKit.",
|
|
7
7
|
"author": "SwitchBot <support@wondertechlabs.com> (https://github.com/SwitchBot)",
|
|
8
8
|
"contributors": [
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"icon": "https://raw.githubusercontent.com/OpenWonderLabs/homebridge-switchbot/latest/branding/icon.png",
|
|
56
56
|
"engineStrict": true,
|
|
57
57
|
"engines": {
|
|
58
|
-
"homebridge": "^
|
|
58
|
+
"homebridge": "^2.0.0-beta.38",
|
|
59
59
|
"node": "^20 || ^22 || ^24"
|
|
60
60
|
},
|
|
61
61
|
"scripts": {
|
|
@@ -81,8 +81,8 @@
|
|
|
81
81
|
"@homebridge/plugin-ui-utils": "^2.1.0",
|
|
82
82
|
"async-mqtt": "^2.6.3",
|
|
83
83
|
"fakegato-history": "^0.6.7",
|
|
84
|
-
"homebridge-lib": "^7.1.
|
|
85
|
-
"node-switchbot": "^3.6.0
|
|
84
|
+
"homebridge-lib": "^7.1.7",
|
|
85
|
+
"node-switchbot": "^3.6.0",
|
|
86
86
|
"rxjs": "^7.8.2"
|
|
87
87
|
},
|
|
88
88
|
"devDependencies": {
|
|
@@ -91,19 +91,19 @@
|
|
|
91
91
|
"@types/debug": "^4.1.12",
|
|
92
92
|
"@types/fs-extra": "^11.0.4",
|
|
93
93
|
"@types/mdast": "^4.0.4",
|
|
94
|
-
"@types/node": "^24.
|
|
94
|
+
"@types/node": "^24.3.0",
|
|
95
95
|
"@types/semver": "^7.7.0",
|
|
96
96
|
"@types/source-map-support": "^0.5.10",
|
|
97
97
|
"@vitest/coverage-v8": "^3.2.4",
|
|
98
98
|
"eslint": "^9.33.0",
|
|
99
99
|
"eslint-plugin-format": "^1.0.1",
|
|
100
100
|
"eslint-plugin-import": "^2.32.0",
|
|
101
|
-
"homebridge": "^
|
|
101
|
+
"homebridge": "^2.0.0-beta.38",
|
|
102
102
|
"homebridge-config-ui-x": "5.4.1",
|
|
103
103
|
"nodemon": "^3.1.10",
|
|
104
104
|
"shx": "^0.4.0",
|
|
105
105
|
"ts-node": "^10.9.2",
|
|
106
|
-
"typedoc": "^0.28.
|
|
106
|
+
"typedoc": "^0.28.11",
|
|
107
107
|
"typescript": "^5.9.2",
|
|
108
108
|
"vitest": "^3.2.4"
|
|
109
109
|
},
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
|
|
6
6
|
import type { airPurifierServiceData, airPurifierStatus, airPurifierTableServiceData, airPurifierTableStatus, airPurifierTableWebhookContext, airPurifierWebhookContext, bodyChange, device, SwitchBotBLE, SwitchbotDevice } from 'node-switchbot'
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { SwitchBotHAPPlatform } from '../platform-hap.js'
|
|
9
9
|
import type { devicesConfig } from '../settings.js'
|
|
10
10
|
|
|
11
11
|
/*
|
|
@@ -44,7 +44,7 @@ export class AirPurifier extends deviceBase {
|
|
|
44
44
|
doAirPurifierUpdate!: Subject<void>
|
|
45
45
|
|
|
46
46
|
constructor(
|
|
47
|
-
readonly platform:
|
|
47
|
+
readonly platform: SwitchBotHAPPlatform,
|
|
48
48
|
accessory: PlatformAccessory,
|
|
49
49
|
device: device & devicesConfig,
|
|
50
50
|
) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
|
|
6
6
|
import type { blindTiltServiceData, blindTiltStatus, blindTiltWebhookContext, bodyChange, device, SwitchBotBLE, SwitchbotDevice, WoBlindTilt } from 'node-switchbot'
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { SwitchBotHAPPlatform } from '../platform-hap.js'
|
|
9
9
|
import type { blindTiltConfig, devicesConfig } from '../settings.js'
|
|
10
10
|
|
|
11
11
|
/*
|
|
@@ -76,7 +76,7 @@ export class BlindTilt extends deviceBase {
|
|
|
76
76
|
doBlindTiltUpdate: Subject<void>
|
|
77
77
|
|
|
78
78
|
constructor(
|
|
79
|
-
readonly platform:
|
|
79
|
+
readonly platform: SwitchBotHAPPlatform,
|
|
80
80
|
accessory: PlatformAccessory,
|
|
81
81
|
device: device & devicesConfig,
|
|
82
82
|
) {
|
|
@@ -589,7 +589,11 @@ export class BlindTilt extends deviceBase {
|
|
|
589
589
|
return await this.retryBLE({
|
|
590
590
|
max: this.maxRetryBLE(),
|
|
591
591
|
fn: async () => {
|
|
592
|
-
|
|
592
|
+
if (deviceList && Array.isArray(deviceList) && deviceList.length > 0) {
|
|
593
|
+
return await deviceList[0].runToPos(100 - Number(this.WindowCovering.TargetPosition), setPositionMode)
|
|
594
|
+
} else {
|
|
595
|
+
throw new Error('No device found')
|
|
596
|
+
}
|
|
593
597
|
},
|
|
594
598
|
})
|
|
595
599
|
})
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
|
|
6
6
|
import type { bodyChange, botServiceData, botStatus, botWebhookContext, device, SwitchBotBLE, SwitchbotDevice, WoHand } from 'node-switchbot'
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { SwitchBotHAPPlatform } from '../platform-hap.js'
|
|
9
9
|
import type { botConfig, devicesConfig } from '../settings.js'
|
|
10
10
|
|
|
11
11
|
/*
|
|
@@ -118,7 +118,7 @@ export class Bot extends deviceBase {
|
|
|
118
118
|
* @constructor
|
|
119
119
|
*/
|
|
120
120
|
constructor(
|
|
121
|
-
readonly platform:
|
|
121
|
+
readonly platform: SwitchBotHAPPlatform,
|
|
122
122
|
accessory: PlatformAccessory,
|
|
123
123
|
device: device & devicesConfig,
|
|
124
124
|
) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { CharacteristicValue, Controller, ControllerConstructor, ControllerServiceMap, PlatformAccessory, Service } from 'homebridge'
|
|
6
6
|
import type { bodyChange, ceilingLightProServiceData, ceilingLightProStatus, ceilingLightProWebhookContext, ceilingLightServiceData, ceilingLightStatus, ceilingLightWebhookContext, device, SwitchBotBLE, SwitchbotDevice, WoCeilingLight } from 'node-switchbot'
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { SwitchBotHAPPlatform } from '../platform-hap.js'
|
|
9
9
|
import type { ceilingLightConfig, devicesConfig } from '../settings.js'
|
|
10
10
|
|
|
11
11
|
/*
|
|
@@ -54,7 +54,7 @@ export class CeilingLight extends deviceBase {
|
|
|
54
54
|
doCeilingLightUpdate!: Subject<void>
|
|
55
55
|
|
|
56
56
|
constructor(
|
|
57
|
-
readonly platform:
|
|
57
|
+
readonly platform: SwitchBotHAPPlatform,
|
|
58
58
|
accessory: PlatformAccessory,
|
|
59
59
|
device: device & devicesConfig,
|
|
60
60
|
) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { CharacteristicValue, Controller, ControllerConstructor, ControllerServiceMap, PlatformAccessory, Service } from 'homebridge'
|
|
6
6
|
import type { bodyChange, colorBulbServiceData, colorBulbStatus, colorBulbWebhookContext, device, SwitchBotBLE, SwitchbotDevice, WoBulb } from 'node-switchbot'
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { SwitchBotHAPPlatform } from '../platform-hap.js'
|
|
9
9
|
import type { colorBulbConfig, devicesConfig } from '../settings.js'
|
|
10
10
|
|
|
11
11
|
/*
|
|
@@ -54,7 +54,7 @@ export class ColorBulb extends deviceBase {
|
|
|
54
54
|
doColorBulbUpdate!: Subject<void>
|
|
55
55
|
|
|
56
56
|
constructor(
|
|
57
|
-
readonly platform:
|
|
57
|
+
readonly platform: SwitchBotHAPPlatform,
|
|
58
58
|
accessory: PlatformAccessory,
|
|
59
59
|
device: device & devicesConfig,
|
|
60
60
|
) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
|
|
6
6
|
import type { contactSensorServiceData, contactSensorStatus, contactSensorWebhookContext, device, SwitchBotBLE } from 'node-switchbot'
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { SwitchBotHAPPlatform } from '../platform-hap.js'
|
|
9
9
|
import type { contactConfig, devicesConfig } from '../settings.js'
|
|
10
10
|
|
|
11
11
|
/*
|
|
@@ -64,7 +64,7 @@ export class Contact extends deviceBase {
|
|
|
64
64
|
doContactUpdate!: Subject<void>
|
|
65
65
|
|
|
66
66
|
constructor(
|
|
67
|
-
readonly platform:
|
|
67
|
+
readonly platform: SwitchBotHAPPlatform,
|
|
68
68
|
accessory: PlatformAccessory,
|
|
69
69
|
device: device & devicesConfig,
|
|
70
70
|
) {
|