@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
package/src/irdevice/irdevice.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { API, CharacteristicValue, HAP, Logging, PlatformAccessory, Service } from 'homebridge'
|
|
6
6
|
import type { bodyChange, irdevice } from 'node-switchbot'
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { SwitchBotHAPPlatform } from '../platform-hap.js'
|
|
9
9
|
import type { irAirConfig, irDevicesConfig, irFanConfig, irLightConfig, irOtherConfig, SwitchBotPlatformConfig } from '../settings.js'
|
|
10
10
|
|
|
11
11
|
export abstract class irdeviceBase {
|
|
@@ -26,7 +26,7 @@ export abstract class irdeviceBase {
|
|
|
26
26
|
protected deviceDisablePushDetail?: boolean
|
|
27
27
|
|
|
28
28
|
constructor(
|
|
29
|
-
protected readonly platform:
|
|
29
|
+
protected readonly platform: SwitchBotHAPPlatform,
|
|
30
30
|
protected accessory: PlatformAccessory,
|
|
31
31
|
protected device: irdevice & irDevicesConfig,
|
|
32
32
|
) {
|
package/src/irdevice/light.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
|
|
6
6
|
import type { bodyChange, irdevice } from 'node-switchbot'
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { SwitchBotHAPPlatform } from '../platform-hap.js'
|
|
9
9
|
import type { irDevicesConfig, irLightConfig } from '../settings.js'
|
|
10
10
|
|
|
11
11
|
import { irdeviceBase } from './irdevice.js'
|
|
@@ -38,7 +38,7 @@ export class Light extends irdeviceBase {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
constructor(
|
|
41
|
-
readonly platform:
|
|
41
|
+
readonly platform: SwitchBotHAPPlatform,
|
|
42
42
|
accessory: PlatformAccessory,
|
|
43
43
|
device: irdevice & irDevicesConfig,
|
|
44
44
|
) {
|
package/src/irdevice/other.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
|
|
6
6
|
import type { bodyChange, irdevice } from 'node-switchbot'
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { SwitchBotHAPPlatform } from '../platform-hap.js'
|
|
9
9
|
import type { irDevicesConfig, irOtherConfig } from '../settings.js'
|
|
10
10
|
|
|
11
11
|
import { irdeviceBase } from './irdevice.js'
|
|
@@ -73,7 +73,7 @@ export class Others extends irdeviceBase {
|
|
|
73
73
|
otherDeviceType?: string
|
|
74
74
|
|
|
75
75
|
constructor(
|
|
76
|
-
readonly platform:
|
|
76
|
+
readonly platform: SwitchBotHAPPlatform,
|
|
77
77
|
accessory: PlatformAccessory,
|
|
78
78
|
device: irdevice & irDevicesConfig,
|
|
79
79
|
) {
|
package/src/irdevice/tv.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
|
|
6
6
|
import type { bodyChange, irdevice } from 'node-switchbot'
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { SwitchBotHAPPlatform } from '../platform-hap.js'
|
|
9
9
|
import type { irDevicesConfig } from '../settings.js'
|
|
10
10
|
|
|
11
11
|
import { irdeviceBase } from './irdevice.js'
|
|
@@ -38,7 +38,7 @@ export class TV extends irdeviceBase {
|
|
|
38
38
|
// Characteristic Values
|
|
39
39
|
|
|
40
40
|
constructor(
|
|
41
|
-
readonly platform:
|
|
41
|
+
readonly platform: SwitchBotHAPPlatform,
|
|
42
42
|
accessory: PlatformAccessory,
|
|
43
43
|
device: irdevice & irDevicesConfig,
|
|
44
44
|
) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
|
|
6
6
|
import type { bodyChange, irdevice } from 'node-switchbot'
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { SwitchBotHAPPlatform } from '../platform-hap.js'
|
|
9
9
|
import type { irDevicesConfig } from '../settings.js'
|
|
10
10
|
|
|
11
11
|
import { irdeviceBase } from './irdevice.js'
|
|
@@ -24,7 +24,7 @@ export class VacuumCleaner extends irdeviceBase {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
constructor(
|
|
27
|
-
readonly platform:
|
|
27
|
+
readonly platform: SwitchBotHAPPlatform,
|
|
28
28
|
accessory: PlatformAccessory,
|
|
29
29
|
device: irdevice & irDevicesConfig,
|
|
30
30
|
) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
|
|
6
6
|
import type { bodyChange, irdevice } from 'node-switchbot'
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { SwitchBotHAPPlatform } from '../platform-hap.js'
|
|
9
9
|
import type { irDevicesConfig } from '../settings.js'
|
|
10
10
|
|
|
11
11
|
import { irdeviceBase } from './irdevice.js'
|
|
@@ -24,7 +24,7 @@ export class WaterHeater extends irdeviceBase {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
constructor(
|
|
27
|
-
readonly platform:
|
|
27
|
+
readonly platform: SwitchBotHAPPlatform,
|
|
28
28
|
accessory: PlatformAccessory,
|
|
29
29
|
device: irdevice & irDevicesConfig,
|
|
30
30
|
) {
|
|
@@ -24,27 +24,27 @@ import { EveHomeKitTypes } from 'homebridge-lib/EveHomeKitTypes'
|
|
|
24
24
|
import { LogLevel, SwitchBotBLE, SwitchBotModel, SwitchBotOpenAPI } from 'node-switchbot'
|
|
25
25
|
import { queueScheduler } from 'rxjs'
|
|
26
26
|
|
|
27
|
-
import { AirPurifier } from './
|
|
28
|
-
import { BlindTilt } from './
|
|
29
|
-
import { Bot } from './
|
|
30
|
-
import { CeilingLight } from './
|
|
31
|
-
import { ColorBulb } from './
|
|
32
|
-
import { Contact } from './
|
|
33
|
-
import { Curtain } from './
|
|
34
|
-
import { Fan } from './
|
|
35
|
-
import { Hub } from './
|
|
36
|
-
import { Humidifier } from './
|
|
37
|
-
import { IOSensor } from './
|
|
38
|
-
import { StripLight } from './
|
|
39
|
-
import { Lock } from './
|
|
40
|
-
import { Meter } from './
|
|
41
|
-
import { MeterPlus } from './
|
|
42
|
-
import { MeterPro } from './
|
|
43
|
-
import { Motion } from './
|
|
44
|
-
import { Plug } from './
|
|
45
|
-
import { RelaySwitch } from './
|
|
46
|
-
import { RobotVacuumCleaner } from './
|
|
47
|
-
import { WaterDetector } from './
|
|
27
|
+
import { AirPurifier } from './devices-hap/airpurifier.js'
|
|
28
|
+
import { BlindTilt } from './devices-hap/blindtilt.js'
|
|
29
|
+
import { Bot } from './devices-hap/bot.js'
|
|
30
|
+
import { CeilingLight } from './devices-hap/ceilinglight.js'
|
|
31
|
+
import { ColorBulb } from './devices-hap/colorbulb.js'
|
|
32
|
+
import { Contact } from './devices-hap/contact.js'
|
|
33
|
+
import { Curtain } from './devices-hap/curtain.js'
|
|
34
|
+
import { Fan } from './devices-hap/fan.js'
|
|
35
|
+
import { Hub } from './devices-hap/hub.js'
|
|
36
|
+
import { Humidifier } from './devices-hap/humidifier.js'
|
|
37
|
+
import { IOSensor } from './devices-hap/iosensor.js'
|
|
38
|
+
import { StripLight } from './devices-hap/lightstrip.js'
|
|
39
|
+
import { Lock } from './devices-hap/lock.js'
|
|
40
|
+
import { Meter } from './devices-hap/meter.js'
|
|
41
|
+
import { MeterPlus } from './devices-hap/meterplus.js'
|
|
42
|
+
import { MeterPro } from './devices-hap/meterpro.js'
|
|
43
|
+
import { Motion } from './devices-hap/motion.js'
|
|
44
|
+
import { Plug } from './devices-hap/plug.js'
|
|
45
|
+
import { RelaySwitch } from './devices-hap/relayswitch.js'
|
|
46
|
+
import { RobotVacuumCleaner } from './devices-hap/robotvacuumcleaner.js'
|
|
47
|
+
import { WaterDetector } from './devices-hap/waterdetector.js'
|
|
48
48
|
import { AirConditioner } from './irdevice/airconditioner.js'
|
|
49
49
|
import { AirPurifierIR } from './irdevice/airpurifier.js'
|
|
50
50
|
import { Camera } from './irdevice/camera.js'
|
|
@@ -55,14 +55,14 @@ import { TV } from './irdevice/tv.js'
|
|
|
55
55
|
import { VacuumCleaner } from './irdevice/vacuumcleaner.js'
|
|
56
56
|
import { WaterHeater } from './irdevice/waterheater.js'
|
|
57
57
|
import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js'
|
|
58
|
-
import { formatDeviceIdAsMac, isBlindTiltDevice, isCurtainDevice, safeStringify, sleep } from './utils.js'
|
|
58
|
+
import { cleanDeviceConfig, formatDeviceIdAsMac, isBlindTiltDevice, isCurtainDevice, safeStringify, sleep } from './utils.js'
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
61
|
* HomebridgePlatform
|
|
62
62
|
* This class is the main constructor for your plugin, this is where you should
|
|
63
63
|
* parse the user config and discover/register accessories with Homebridge.
|
|
64
64
|
*/
|
|
65
|
-
export class
|
|
65
|
+
export class SwitchBotHAPPlatform implements DynamicPlatformPlugin {
|
|
66
66
|
// Platform properties
|
|
67
67
|
public accessories: PlatformAccessory[] = []
|
|
68
68
|
public readonly api: API
|
|
@@ -119,6 +119,21 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
119
119
|
devices: config.devices as { deviceId: string }[],
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
// Normalize deviceConfig to remove UI-inserted defaults (lots of false/empty values)
|
|
123
|
+
try {
|
|
124
|
+
if ((this.config as any).options) {
|
|
125
|
+
const cleaned = cleanDeviceConfig((this.config as any).options.deviceConfig)
|
|
126
|
+
if (cleaned) {
|
|
127
|
+
;(this.config as any).options.deviceConfig = cleaned
|
|
128
|
+
} else {
|
|
129
|
+
// remove the empty deviceConfig so downstream checks treat it as absent
|
|
130
|
+
delete (this.config as any).options.deviceConfig
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
} catch (e) {
|
|
134
|
+
this.debugErrorLog(`Failed to clean deviceConfig: ${e}`)
|
|
135
|
+
}
|
|
136
|
+
|
|
122
137
|
// Plugin Configuration
|
|
123
138
|
this.getPlatformLogSettings()
|
|
124
139
|
this.getPlatformRateSettings()
|
|
@@ -233,7 +248,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
233
248
|
const context = JSON.parse(message.toString())
|
|
234
249
|
this.webhookEventHandler[context.deviceMac]?.(context)
|
|
235
250
|
} catch (e: any) {
|
|
236
|
-
this.errorLog(`Failed to handle webhook event. Error
|
|
251
|
+
this.errorLog(`Failed to handle webhook event. Error: ${e.message ?? e}`)
|
|
237
252
|
}
|
|
238
253
|
})
|
|
239
254
|
}
|
|
@@ -260,14 +275,14 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
260
275
|
this.webhookEventHandler[body.context.deviceMac]?.(body.context)
|
|
261
276
|
})
|
|
262
277
|
} catch (e: any) {
|
|
263
|
-
this.errorLog(`Failed to setup webhook. Error
|
|
278
|
+
this.errorLog(`Failed to setup webhook. Error: ${e.message ?? e}`)
|
|
264
279
|
}
|
|
265
280
|
|
|
266
281
|
this.api.on('shutdown', async () => {
|
|
267
282
|
try {
|
|
268
283
|
this.switchBotAPI.deleteWebhook(url)
|
|
269
284
|
} catch (e: any) {
|
|
270
|
-
this.errorLog(`Failed to delete webhook. Error
|
|
285
|
+
this.errorLog(`Failed to delete webhook. Error: ${e.message ?? e}`)
|
|
271
286
|
}
|
|
272
287
|
})
|
|
273
288
|
}
|
|
@@ -318,14 +333,14 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
318
333
|
try {
|
|
319
334
|
await this.switchBotBLE.startScan()
|
|
320
335
|
} catch (e: any) {
|
|
321
|
-
this.errorLog(`Failed to start BLE scanning. Error
|
|
336
|
+
this.errorLog(`Failed to start BLE scanning. Error: ${e.message ?? e}`)
|
|
322
337
|
}
|
|
323
338
|
// Set an event handler to monitor advertisement packets
|
|
324
339
|
this.switchBotBLE.onadvertisement = async (ad: any) => {
|
|
325
340
|
try {
|
|
326
341
|
this.bleEventHandler[ad.address]?.(ad.serviceData)
|
|
327
342
|
} catch (e: any) {
|
|
328
|
-
this.errorLog(`Failed to handle BLE event. Error
|
|
343
|
+
this.errorLog(`Failed to handle BLE event. Error: ${e.message ?? e}`)
|
|
329
344
|
}
|
|
330
345
|
}
|
|
331
346
|
})()
|
|
@@ -335,7 +350,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
335
350
|
// this.switchBotBLE.stopScan()
|
|
336
351
|
this.infoLog('Stopped BLE scanning to close listening.')
|
|
337
352
|
} catch (e: any) {
|
|
338
|
-
this.errorLog(`Failed to stop Platform BLE scanning. Error
|
|
353
|
+
this.errorLog(`Failed to stop Platform BLE scanning. Error: ${e.message ?? e}`)
|
|
339
354
|
}
|
|
340
355
|
})
|
|
341
356
|
}
|
|
@@ -370,10 +385,10 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
370
385
|
for (const deviceConfig of this.config.options.devices) {
|
|
371
386
|
if (!deviceConfig.hide_device) {
|
|
372
387
|
if (!deviceConfig.deviceId) {
|
|
373
|
-
|
|
388
|
+
this.errorLog('The devices config section is missing the *Device ID* in the config. Please check your config.')
|
|
374
389
|
}
|
|
375
390
|
if (!deviceConfig.configDeviceType && (deviceConfig as devicesConfig).connectionType) {
|
|
376
|
-
|
|
391
|
+
this.errorLog('The devices config section is missing the *Device Type* in the config. Please check your config.')
|
|
377
392
|
}
|
|
378
393
|
}
|
|
379
394
|
}
|
|
@@ -583,6 +598,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
|
|
|
583
598
|
'Humidifier': this.createHumidifier.bind(this),
|
|
584
599
|
'Humidifier2': this.createHumidifier.bind(this),
|
|
585
600
|
'Hub 2': this.createHub2.bind(this),
|
|
601
|
+
'Hub 3': this.createHub2.bind(this),
|
|
586
602
|
'Bot': this.createBot.bind(this),
|
|
587
603
|
'Relay Switch 1': this.createRelaySwitch.bind(this),
|
|
588
604
|
'Relay Switch 1PM': this.createRelaySwitch.bind(this),
|