@switchbot/homebridge-switchbot 4.3.2-beta.8 → 5.0.0-beta.0
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} +32 -31
- package/dist/{platform.js.map → platform-hap.js.map} +1 -1
- package/dist/platform-matter.d.ts +75 -0
- package/dist/platform-matter.d.ts.map +1 -0
- package/dist/platform-matter.js +362 -0
- package/dist/platform-matter.js.map +1 -0
- 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 +10 -10
- 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} +31 -30
- package/src/platform-matter.ts +450 -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/{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,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* On/Off Light Accessory Class
|
|
3
|
+
*
|
|
4
|
+
* Example implementation of a device class that extends BaseMatterAccessory.
|
|
5
|
+
* This shows the pattern for creating device-specific classes.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
8
|
+
/**
|
|
9
|
+
* On/Off Light Device Class
|
|
10
|
+
*
|
|
11
|
+
* This class represents an on/off light accessory.
|
|
12
|
+
* It extends BaseMatterAccessory to inherit common functionality.
|
|
13
|
+
*/
|
|
14
|
+
export class OnOffLightAccessory extends BaseMatterAccessory {
|
|
15
|
+
constructor(api, log) {
|
|
16
|
+
const serialNumber = 'LIGHT-001';
|
|
17
|
+
const displayName = 'On/Off Light';
|
|
18
|
+
const manufacturer = 'Homebridge Matter';
|
|
19
|
+
const model = 'HB-MATTER-LIGHT-ON-OFF';
|
|
20
|
+
const firmwareRevision = '2.0.0';
|
|
21
|
+
const hardwareRevision = '1.0.0';
|
|
22
|
+
// Call parent constructor with device configuration
|
|
23
|
+
super(api, log, {
|
|
24
|
+
uuid: api.matter.uuid.generate(serialNumber),
|
|
25
|
+
displayName,
|
|
26
|
+
deviceType: api.matter.deviceTypes.OnOffLight,
|
|
27
|
+
serialNumber,
|
|
28
|
+
manufacturer,
|
|
29
|
+
model,
|
|
30
|
+
firmwareRevision,
|
|
31
|
+
hardwareRevision,
|
|
32
|
+
// Initial cluster states
|
|
33
|
+
clusters: {
|
|
34
|
+
onOff: {
|
|
35
|
+
onOff: true, // initial state: light is on
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
// Command handlers
|
|
39
|
+
handlers: {
|
|
40
|
+
onOff: {
|
|
41
|
+
on: async () => this.handleOnCommand(),
|
|
42
|
+
off: async () => this.handleOffCommand(),
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
this.logInfo('initialized.');
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Handle the "on" command from Matter
|
|
50
|
+
*/
|
|
51
|
+
async handleOnCommand() {
|
|
52
|
+
this.logInfo('turning on.');
|
|
53
|
+
try {
|
|
54
|
+
// TODO: Control your physical device here
|
|
55
|
+
// Examples:
|
|
56
|
+
// await fetch('https://api.mydevice.com/light/on', { method: 'POST' })
|
|
57
|
+
// await fetch('http://192.168.1.50/api/light/on')
|
|
58
|
+
// mqttClient.publish('home/light/command', JSON.stringify({ state: 'ON' }))
|
|
59
|
+
// await myLightAPI.turnOn(this.context.deviceId)
|
|
60
|
+
this.logInfo('physical device turned on.');
|
|
61
|
+
// State automatically updated by Homebridge after handler completes
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
this.logError('failed to turn on:', error);
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Handle the "off" command from Matter
|
|
70
|
+
*/
|
|
71
|
+
async handleOffCommand() {
|
|
72
|
+
this.logInfo('turning off.');
|
|
73
|
+
try {
|
|
74
|
+
// TODO: Control your physical device here
|
|
75
|
+
// await myLightAPI.turnOff(this.context.deviceId)
|
|
76
|
+
this.logInfo('physical device turned off.');
|
|
77
|
+
// State automatically updated by Homebridge after handler completes
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
this.logError('failed to turn off:', error);
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Update the on/off state from external source
|
|
86
|
+
* Call this when your physical device state changes externally
|
|
87
|
+
*/
|
|
88
|
+
updateOnOffState(isOn) {
|
|
89
|
+
this.updateState(this.api.matter.clusterNames.OnOff, { onOff: isOn });
|
|
90
|
+
this.logInfo(`state synced: ${isOn ? 'ON' : 'OFF'}.`);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Example: Start monitoring external state changes
|
|
94
|
+
* This shows how you might set up event listeners or polling
|
|
95
|
+
*/
|
|
96
|
+
startMonitoring() {
|
|
97
|
+
// Example: Event-based monitoring (recommended)
|
|
98
|
+
// mqttClient.subscribe('home/light/status')
|
|
99
|
+
// mqttClient.on('message', (topic, message) => {
|
|
100
|
+
// const { state } = JSON.parse(message.toString())
|
|
101
|
+
// const deviceIsOn = state === 'ON'
|
|
102
|
+
// this.updateOnOffState(deviceIsOn)
|
|
103
|
+
// })
|
|
104
|
+
// Example: Polling-based monitoring (fallback)
|
|
105
|
+
// setInterval(async () => {
|
|
106
|
+
// try {
|
|
107
|
+
// const response = await fetch('https://api.mydevice.com/light/state')
|
|
108
|
+
// const data = await response.json()
|
|
109
|
+
// const deviceIsOn = data.power === 'on'
|
|
110
|
+
// this.updateOnOffState(deviceIsOn)
|
|
111
|
+
// } catch (error) {
|
|
112
|
+
// this.logError('Polling error:', error)
|
|
113
|
+
// }
|
|
114
|
+
// }, 5000) // Poll every 5 seconds
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=OnOffLightAccessory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnOffLightAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OnOffLightAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* On/Off Outlet Accessory Class
|
|
3
|
+
*/
|
|
4
|
+
import type { API, Logger } from 'homebridge';
|
|
5
|
+
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
6
|
+
export declare class OnOffOutletAccessory extends BaseMatterAccessory {
|
|
7
|
+
constructor(api: API, log: Logger);
|
|
8
|
+
private handleOn;
|
|
9
|
+
private handleOff;
|
|
10
|
+
updateOnOffState(isOn: boolean): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=OnOffOutletAccessory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnOffOutletAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/OnOffOutletAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAC/C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;YA6BnB,QAAQ;YAKR,SAAS;IAKhB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;CAG7C"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* On/Off Outlet Accessory Class
|
|
3
|
+
*/
|
|
4
|
+
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
5
|
+
export class OnOffOutletAccessory extends BaseMatterAccessory {
|
|
6
|
+
constructor(api, log) {
|
|
7
|
+
const serialNumber = 'OUTLET-001';
|
|
8
|
+
super(api, log, {
|
|
9
|
+
uuid: api.matter.uuid.generate(serialNumber),
|
|
10
|
+
displayName: 'On/Off Outlet',
|
|
11
|
+
deviceType: api.matter.deviceTypes.OnOffOutlet,
|
|
12
|
+
serialNumber,
|
|
13
|
+
manufacturer: 'Homebridge Matter',
|
|
14
|
+
model: 'HB-MATTER-OUTLET-ON-OFF',
|
|
15
|
+
firmwareRevision: '2.0.0',
|
|
16
|
+
hardwareRevision: '1.0.0',
|
|
17
|
+
clusters: {
|
|
18
|
+
onOff: {
|
|
19
|
+
onOff: false,
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
handlers: {
|
|
23
|
+
onOff: {
|
|
24
|
+
on: async () => this.handleOn(),
|
|
25
|
+
off: async () => this.handleOff(),
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
this.logInfo('initialized.');
|
|
30
|
+
}
|
|
31
|
+
async handleOn() {
|
|
32
|
+
this.logInfo('turning on.');
|
|
33
|
+
// TODO: await myOutletAPI.turnOn()
|
|
34
|
+
}
|
|
35
|
+
async handleOff() {
|
|
36
|
+
this.logInfo('turning off.');
|
|
37
|
+
// TODO: await myOutletAPI.turnOff()
|
|
38
|
+
}
|
|
39
|
+
updateOnOffState(isOn) {
|
|
40
|
+
this.updateState(this.api.matter.clusterNames.OnOff, { onOff: isOn });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=OnOffOutletAccessory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnOffOutletAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OnOffOutletAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAA;QACjC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,eAAe;YAC5B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;YAC9C,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,yBAAyB;YAChC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,KAAK,EAAE,KAAK;iBACb;aACF;YAED,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAC/B,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;iBAClC;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC3B,mCAAmC;IACrC,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAC5B,oCAAoC;IACtC,CAAC;IAEM,gBAAgB,CAAC,IAAa;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* On/Off Switch Accessory Class
|
|
3
|
+
*/
|
|
4
|
+
import type { API, Logger } from 'homebridge';
|
|
5
|
+
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
6
|
+
export declare class OnOffSwitchAccessory extends BaseMatterAccessory {
|
|
7
|
+
constructor(api: API, log: Logger);
|
|
8
|
+
private handleOn;
|
|
9
|
+
private handleOff;
|
|
10
|
+
updateOnOffState(isOn: boolean): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=OnOffSwitchAccessory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnOffSwitchAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/OnOffSwitchAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAC/C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;YA6BnB,QAAQ;YAKR,SAAS;IAKhB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;CAG7C"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* On/Off Switch Accessory Class
|
|
3
|
+
*/
|
|
4
|
+
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
5
|
+
export class OnOffSwitchAccessory extends BaseMatterAccessory {
|
|
6
|
+
constructor(api, log) {
|
|
7
|
+
const serialNumber = 'SWITCH-001';
|
|
8
|
+
super(api, log, {
|
|
9
|
+
uuid: api.matter.uuid.generate(serialNumber),
|
|
10
|
+
displayName: 'On/Off Switch',
|
|
11
|
+
deviceType: api.matter.deviceTypes.OnOffSwitch,
|
|
12
|
+
serialNumber,
|
|
13
|
+
manufacturer: 'Homebridge Matter',
|
|
14
|
+
model: 'HB-MATTER-SWITCH-ON-OFF',
|
|
15
|
+
firmwareRevision: '2.0.0',
|
|
16
|
+
hardwareRevision: '1.0.0',
|
|
17
|
+
clusters: {
|
|
18
|
+
onOff: {
|
|
19
|
+
onOff: false,
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
handlers: {
|
|
23
|
+
onOff: {
|
|
24
|
+
on: async () => this.handleOn(),
|
|
25
|
+
off: async () => this.handleOff(),
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
this.logInfo('initialized.');
|
|
30
|
+
}
|
|
31
|
+
async handleOn() {
|
|
32
|
+
this.logInfo('turning on.');
|
|
33
|
+
// TODO: await mySwitchAPI.turnOn()
|
|
34
|
+
}
|
|
35
|
+
async handleOff() {
|
|
36
|
+
this.logInfo('turning off.');
|
|
37
|
+
// TODO: await mySwitchAPI.turnOff()
|
|
38
|
+
}
|
|
39
|
+
updateOnOffState(isOn) {
|
|
40
|
+
this.updateState(this.api.matter.clusterNames.OnOff, { onOff: isOn });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=OnOffSwitchAccessory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnOffSwitchAccessory.js","sourceRoot":"","sources":["../../src/devices-matter/OnOffSwitchAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAA;QACjC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,eAAe;YAC5B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;YAC9C,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,yBAAyB;YAChC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,KAAK,EAAE,KAAK;iBACb;aACF;YAED,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAC/B,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;iBAClC;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC3B,mCAAmC;IACrC,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAC5B,oCAAoC;IACtC,CAAC;IAEM,gBAAgB,CAAC,IAAa;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;CACF"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Robotic Vacuum Cleaner Accessory Class
|
|
3
|
+
*
|
|
4
|
+
* This is a comprehensive example demonstrating all available features
|
|
5
|
+
* of the RoboticVacuumCleaner device type including:
|
|
6
|
+
* - Multiple run modes (Idle, Cleaning, Mapping)
|
|
7
|
+
* - Multiple clean modes (Vacuum, Mop, Vacuum & Mop, Deep Clean)
|
|
8
|
+
* - Operational state management with realistic transitions
|
|
9
|
+
* - Service area (room) support
|
|
10
|
+
*
|
|
11
|
+
* IMPORTANT: Platform Matter accessories
|
|
12
|
+
* =======================================
|
|
13
|
+
* This vacuum is registered as a platform accessory using
|
|
14
|
+
* api.matter.registerPlatformAccessories(), which works the same as HAP.
|
|
15
|
+
* Platform accessories are registered synchronously and are immediately ready for use.
|
|
16
|
+
*
|
|
17
|
+
* Demo behavior:
|
|
18
|
+
* - Start/Resume: Sets run mode to "Cleaning", runs for 15/10 seconds, then returns to dock
|
|
19
|
+
* - Return to dock: Immediately sets "Idle" mode, then Seeking (5s) → Charging (3s) → Docked
|
|
20
|
+
* - Stop: Immediately stops and resets to "Idle" mode
|
|
21
|
+
* - Pause: Cancels automatic completion timer, keeps "Cleaning" mode
|
|
22
|
+
*/
|
|
23
|
+
import type { API, Logger } from 'homebridge';
|
|
24
|
+
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
25
|
+
export declare class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
26
|
+
private activeTimers;
|
|
27
|
+
constructor(api: API, log: Logger);
|
|
28
|
+
private handleChangeRunMode;
|
|
29
|
+
private handleChangeCleanMode;
|
|
30
|
+
private handlePause;
|
|
31
|
+
private handleStop;
|
|
32
|
+
private handleStart;
|
|
33
|
+
private handleResume;
|
|
34
|
+
private handleGoHome;
|
|
35
|
+
private handleSelectAreas;
|
|
36
|
+
private handleSkipArea;
|
|
37
|
+
/**
|
|
38
|
+
* Helper method to clear all active timers
|
|
39
|
+
*/
|
|
40
|
+
private clearTimers;
|
|
41
|
+
/**
|
|
42
|
+
* Helper method to initiate return to dock sequence
|
|
43
|
+
* Can be called synchronously from other handlers
|
|
44
|
+
*/
|
|
45
|
+
private returnToDock;
|
|
46
|
+
/**
|
|
47
|
+
* Update Methods - Use these to update the vacuum state from your API/device
|
|
48
|
+
*
|
|
49
|
+
* Since this is a platform accessory, state updates work immediately after registration.
|
|
50
|
+
*/
|
|
51
|
+
updateOperationalState(state: number): void;
|
|
52
|
+
updateRunMode(mode: number): void;
|
|
53
|
+
updateCleanMode(mode: number): void;
|
|
54
|
+
updateSelectedAreas(areaIds: number[]): void;
|
|
55
|
+
updateCurrentArea(areaId: number | null): void;
|
|
56
|
+
updateProgress(progress: Array<{
|
|
57
|
+
areaId: number;
|
|
58
|
+
status: number;
|
|
59
|
+
}>): void;
|
|
60
|
+
/**
|
|
61
|
+
* Update battery percentage
|
|
62
|
+
* @param percentage - Battery percentage (0-100)
|
|
63
|
+
*/
|
|
64
|
+
updateBatteryPercentage(percentage: number): Promise<void>;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=RoboticVacuumAccessory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoboticVacuumAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/RoboticVacuumAccessory.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAkB,MAAM,YAAY,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,OAAO,CAAC,YAAY,CAAuB;gBAE/B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;YAoKnB,mBAAmB;YAuCnB,qBAAqB;YAyBrB,WAAW;YAOX,UAAU;YAQV,WAAW;YAoBX,YAAY;YAoBZ,YAAY;YAiBZ,iBAAiB;YAUjB,cAAc;IAQ5B;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;;OAGG;IACH,OAAO,CAAC,YAAY;IA0BpB;;;;OAIG;IAEI,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAmB3C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMjC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAsBnC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ5C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAU9C,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAKhF;;;OAGG;IACU,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAexE"}
|