@switchbot/homebridge-switchbot 5.0.0-beta.99 → 5.1.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/.changeset/config.json +14 -0
- package/.github/copilot-instructions.md +39 -0
- package/.github/workflows/ci.yml +4 -1
- package/.github/workflows/manual-e2e.yml +6 -3
- package/.github/workflows/release.yml +64 -15
- package/.github/workflows/stale.yml +2 -4
- package/.husky/pre-push +15 -0
- package/CHANGELOG.md +140 -135
- package/MIGRATION.md +21 -6
- package/README.md +109 -3
- package/TODO.md +263 -0
- package/config.schema.json +240 -36
- package/dist/SwitchBotHAPPlatform.d.ts +133 -0
- package/dist/SwitchBotHAPPlatform.d.ts.map +1 -0
- package/dist/SwitchBotHAPPlatform.js +584 -0
- package/dist/SwitchBotHAPPlatform.js.map +1 -0
- package/dist/SwitchBotMatterPlatform.d.ts +142 -0
- package/dist/SwitchBotMatterPlatform.d.ts.map +1 -0
- package/dist/SwitchBotMatterPlatform.js +569 -0
- package/dist/SwitchBotMatterPlatform.js.map +1 -0
- package/dist/device-types.d.ts +31 -0
- package/dist/device-types.d.ts.map +1 -0
- package/dist/device-types.js +246 -0
- package/dist/device-types.js.map +1 -0
- package/dist/deviceCommandMapper.d.ts +10 -0
- package/dist/deviceCommandMapper.d.ts.map +1 -0
- package/dist/deviceCommandMapper.js +319 -0
- package/dist/deviceCommandMapper.js.map +1 -0
- package/dist/deviceFactory.d.ts +3 -2
- package/dist/deviceFactory.d.ts.map +1 -1
- package/dist/deviceFactory.js +107 -29
- package/dist/deviceFactory.js.map +1 -1
- package/dist/devices/genericDevice.d.ts +59 -37
- package/dist/devices/genericDevice.d.ts.map +1 -1
- package/dist/devices/genericDevice.js +376 -78
- package/dist/devices/genericDevice.js.map +1 -1
- package/dist/errors.d.ts +38 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +32 -0
- package/dist/errors.js.map +1 -0
- package/dist/homebridge-ui/device-types.js +246 -0
- package/dist/homebridge-ui/device-types.js.map +1 -0
- package/dist/homebridge-ui/deviceCommandMapper.js +319 -0
- package/dist/homebridge-ui/deviceCommandMapper.js.map +1 -0
- package/dist/homebridge-ui/endpoints/config.d.ts +3 -0
- package/dist/homebridge-ui/endpoints/config.d.ts.map +1 -0
- package/dist/homebridge-ui/endpoints/config.js +90 -0
- package/dist/homebridge-ui/endpoints/config.js.map +1 -0
- package/dist/homebridge-ui/endpoints/devices.d.ts +6 -0
- package/dist/homebridge-ui/endpoints/devices.d.ts.map +1 -0
- package/dist/homebridge-ui/endpoints/devices.js +144 -0
- package/dist/homebridge-ui/endpoints/devices.js.map +1 -0
- package/dist/homebridge-ui/endpoints/discovery.d.ts +7 -0
- package/dist/homebridge-ui/endpoints/discovery.d.ts.map +1 -0
- package/dist/homebridge-ui/endpoints/discovery.js +219 -0
- package/dist/homebridge-ui/endpoints/discovery.js.map +1 -0
- package/dist/homebridge-ui/errors.js +32 -0
- package/dist/homebridge-ui/errors.js.map +1 -0
- package/dist/homebridge-ui/homebridge-ui/endpoints/config.js +90 -0
- package/dist/homebridge-ui/homebridge-ui/endpoints/config.js.map +1 -0
- package/dist/homebridge-ui/homebridge-ui/endpoints/devices.js +144 -0
- package/dist/homebridge-ui/homebridge-ui/endpoints/devices.js.map +1 -0
- package/dist/homebridge-ui/homebridge-ui/endpoints/discovery.js +219 -0
- package/dist/homebridge-ui/homebridge-ui/endpoints/discovery.js.map +1 -0
- package/dist/homebridge-ui/homebridge-ui/server.js +11 -0
- package/dist/homebridge-ui/homebridge-ui/server.js.map +1 -0
- package/dist/homebridge-ui/homebridge-ui/utils/config-parser.js +108 -0
- package/dist/homebridge-ui/homebridge-ui/utils/config-parser.js.map +1 -0
- package/dist/homebridge-ui/homebridge-ui/utils/device-migration.js +111 -0
- package/dist/homebridge-ui/homebridge-ui/utils/device-migration.js.map +1 -0
- package/dist/homebridge-ui/homebridge-ui/utils/logger.js +17 -0
- package/dist/homebridge-ui/homebridge-ui/utils/logger.js.map +1 -0
- package/dist/homebridge-ui/public/css/styles.css +483 -0
- package/dist/homebridge-ui/public/index.html +197 -621
- package/dist/homebridge-ui/public/js/advanced-settings.d.ts +3 -0
- package/dist/homebridge-ui/public/js/advanced-settings.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/advanced-settings.js +95 -0
- package/dist/homebridge-ui/public/js/advanced-settings.js.map +1 -0
- package/dist/homebridge-ui/public/js/advanced-settings.ts +94 -0
- package/dist/homebridge-ui/public/js/api.d.ts +72 -0
- package/dist/homebridge-ui/public/js/api.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/api.js +313 -0
- package/dist/homebridge-ui/public/js/api.js.map +1 -0
- package/dist/homebridge-ui/public/js/api.ts +385 -0
- package/dist/homebridge-ui/public/js/app.d.ts +2 -0
- package/dist/homebridge-ui/public/js/app.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/app.js +3798 -0
- package/dist/homebridge-ui/public/js/app.js.map +7 -0
- package/dist/homebridge-ui/public/js/app.ts +22 -0
- package/dist/homebridge-ui/public/js/constants.d.ts +2 -0
- package/dist/homebridge-ui/public/js/constants.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/constants.js +2 -0
- package/dist/homebridge-ui/public/js/constants.js.map +1 -0
- package/dist/homebridge-ui/public/js/constants.ts +1 -0
- package/dist/homebridge-ui/public/js/credentials.d.ts +3 -0
- package/dist/homebridge-ui/public/js/credentials.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/credentials.js +99 -0
- package/dist/homebridge-ui/public/js/credentials.js.map +1 -0
- package/dist/homebridge-ui/public/js/credentials.ts +105 -0
- package/dist/homebridge-ui/public/js/devices-delete.d.ts +3 -0
- package/dist/homebridge-ui/public/js/devices-delete.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/devices-delete.js +199 -0
- package/dist/homebridge-ui/public/js/devices-delete.js.map +1 -0
- package/dist/homebridge-ui/public/js/devices-delete.ts +227 -0
- package/dist/homebridge-ui/public/js/devices.d.ts +9 -0
- package/dist/homebridge-ui/public/js/devices.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/devices.js +104 -0
- package/dist/homebridge-ui/public/js/devices.js.map +1 -0
- package/dist/homebridge-ui/public/js/devices.ts +112 -0
- package/dist/homebridge-ui/public/js/discovery.d.ts +9 -0
- package/dist/homebridge-ui/public/js/discovery.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/discovery.js +1201 -0
- package/dist/homebridge-ui/public/js/discovery.js.map +1 -0
- package/dist/homebridge-ui/public/js/discovery.ts +1335 -0
- package/dist/homebridge-ui/public/js/logger.d.ts +7 -0
- package/dist/homebridge-ui/public/js/logger.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/logger.js +17 -0
- package/dist/homebridge-ui/public/js/logger.js.map +1 -0
- package/dist/homebridge-ui/public/js/logger.ts +17 -0
- package/dist/homebridge-ui/public/js/modal.d.ts +5 -0
- package/dist/homebridge-ui/public/js/modal.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/modal.js +35 -0
- package/dist/homebridge-ui/public/js/modal.js.map +1 -0
- package/dist/homebridge-ui/public/js/modal.ts +35 -0
- package/dist/homebridge-ui/public/js/modals.d.ts +16 -0
- package/dist/homebridge-ui/public/js/modals.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/modals.js +728 -0
- package/dist/homebridge-ui/public/js/modals.js.map +1 -0
- package/dist/homebridge-ui/public/js/modals.ts +823 -0
- package/dist/homebridge-ui/public/js/render.d.ts +71 -0
- package/dist/homebridge-ui/public/js/render.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/render.js +961 -0
- package/dist/homebridge-ui/public/js/render.js.map +1 -0
- package/dist/homebridge-ui/public/js/render.ts +1085 -0
- package/dist/homebridge-ui/public/js/toast.d.ts +6 -0
- package/dist/homebridge-ui/public/js/toast.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/toast.js +38 -0
- package/dist/homebridge-ui/public/js/toast.js.map +1 -0
- package/dist/homebridge-ui/public/js/toast.ts +44 -0
- package/dist/homebridge-ui/public/js/types.d.ts +23 -0
- package/dist/homebridge-ui/public/js/types.d.ts.map +1 -0
- package/dist/homebridge-ui/public/js/types.js +2 -0
- package/dist/homebridge-ui/public/js/types.js.map +1 -0
- package/dist/homebridge-ui/public/js/types.ts +26 -0
- package/dist/homebridge-ui/server.d.ts +1 -3
- package/dist/homebridge-ui/server.d.ts.map +1 -1
- package/dist/homebridge-ui/server.js +8 -471
- package/dist/homebridge-ui/server.js.map +1 -1
- package/dist/homebridge-ui/settings.js +8 -0
- package/dist/homebridge-ui/settings.js.map +1 -0
- package/dist/homebridge-ui/switchbotClient.js +247 -0
- package/dist/homebridge-ui/switchbotClient.js.map +1 -0
- package/dist/homebridge-ui/utils/config-parser.d.ts +39 -0
- package/dist/homebridge-ui/utils/config-parser.d.ts.map +1 -0
- package/dist/homebridge-ui/utils/config-parser.js +108 -0
- package/dist/homebridge-ui/utils/config-parser.js.map +1 -0
- package/dist/homebridge-ui/utils/device-migration.d.ts +35 -0
- package/dist/homebridge-ui/utils/device-migration.d.ts.map +1 -0
- package/dist/homebridge-ui/utils/device-migration.js +111 -0
- package/dist/homebridge-ui/utils/device-migration.js.map +1 -0
- package/dist/homebridge-ui/utils/logger.d.ts +7 -0
- package/dist/homebridge-ui/utils/logger.d.ts.map +1 -0
- package/dist/homebridge-ui/utils/logger.js +17 -0
- package/dist/homebridge-ui/utils/logger.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/settings.d.ts +12 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +1 -0
- package/dist/settings.js.map +1 -1
- package/dist/switchbotClient.d.ts +12 -10
- package/dist/switchbotClient.d.ts.map +1 -1
- package/dist/switchbotClient.js +156 -103
- package/dist/switchbotClient.js.map +1 -1
- package/dist/utils.d.ts +81 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1148 -4
- package/dist/utils.js.map +1 -1
- package/docs/assets/highlight.css +29 -15
- package/docs/assets/main.js +1 -1
- package/docs/index.html +100 -6
- package/docs/variables/default.html +3 -1
- package/eslint.config.js +9 -5
- package/nodemon.json +2 -2
- package/package.json +34 -21
- package/scripts/build-ui.js +37 -0
- package/scripts/free-dev-ports.mjs +105 -0
- package/scripts/generate-matter-maps.js +34 -17
- package/scripts/sync-device-types.mjs +31 -0
- package/src/SwitchBotHAPPlatform.ts +583 -0
- package/src/SwitchBotMatterPlatform.ts +566 -0
- package/src/device-types.js +246 -0
- package/src/device-types.js.map +1 -0
- package/src/device-types.ts +261 -0
- package/src/deviceCommandMapper.js +319 -0
- package/src/deviceCommandMapper.js.map +1 -0
- package/src/deviceCommandMapper.ts +333 -0
- package/src/deviceFactory.ts +125 -45
- package/src/devices/genericDevice.ts +411 -69
- package/src/errors.js +32 -0
- package/src/errors.js.map +1 -0
- package/src/errors.ts +35 -0
- package/src/homebridge-ui/endpoints/config.ts +110 -0
- package/src/homebridge-ui/endpoints/devices.ts +153 -0
- package/src/homebridge-ui/endpoints/discovery.ts +240 -0
- package/src/homebridge-ui/public/css/styles.css +483 -0
- package/src/homebridge-ui/public/index.html +197 -621
- package/src/homebridge-ui/public/js/advanced-settings.ts +94 -0
- package/src/homebridge-ui/public/js/api.ts +385 -0
- package/src/homebridge-ui/public/js/app.ts +22 -0
- package/src/homebridge-ui/public/js/constants.ts +1 -0
- package/src/homebridge-ui/public/js/credentials.ts +105 -0
- package/src/homebridge-ui/public/js/devices-delete.ts +227 -0
- package/src/homebridge-ui/public/js/devices.ts +112 -0
- package/src/homebridge-ui/public/js/discovery.ts +1335 -0
- package/src/homebridge-ui/public/js/logger.ts +17 -0
- package/src/homebridge-ui/public/js/modal.ts +35 -0
- package/src/homebridge-ui/public/js/modals.ts +823 -0
- package/src/homebridge-ui/public/js/render.ts +1085 -0
- package/src/homebridge-ui/public/js/toast.ts +44 -0
- package/src/homebridge-ui/public/js/types.ts +26 -0
- package/src/homebridge-ui/server.ts +9 -554
- package/src/homebridge-ui/utils/config-parser.ts +125 -0
- package/src/homebridge-ui/utils/device-migration.ts +144 -0
- package/src/homebridge-ui/utils/logger.ts +17 -0
- package/src/index.ts +12 -2
- package/src/settings.js +8 -0
- package/src/settings.js.map +1 -0
- package/src/settings.ts +14 -0
- package/src/switchbotClient.js +247 -0
- package/src/switchbotClient.js.map +1 -0
- package/src/switchbotClient.ts +177 -114
- package/src/utils.ts +1164 -5
- package/test/client/switchbot-client-debounce.spec.ts +35 -0
- package/test/client/switchbot-client-openapi.spec.ts +19 -0
- package/test/client/switchbotClient.spec.ts +64 -0
- package/test/device/device-mapping.spec.ts +23 -0
- package/test/device/deviceBase.spec.ts +26 -0
- package/test/device/deviceFactory-edge.spec.ts +15 -0
- package/test/device/deviceFactory.spec.ts +33 -0
- package/test/device/fan-swing.spec.ts +34 -0
- package/test/device/genericDevice-blepoll.spec.ts +47 -0
- package/test/device/irdevice.spec.ts +9 -0
- package/test/device/lock-users.spec.ts +35 -0
- package/test/device/matter-descriptors.spec.ts +22 -0
- package/test/device/matter-device-state.spec.ts +37 -0
- package/test/e2e/run-e2e.spec.ts +18 -19
- package/test/errors/errors.spec.ts +10 -0
- package/test/helpers/matter-harness.ts +20 -9
- package/test/homebridge-ui/server.spec.ts +9 -0
- package/test/platform/accessory-restore.spec.ts +37 -0
- package/test/platform/matter-childbridge.spec.ts +34 -0
- package/test/platform/matter-integration.spec.ts +33 -0
- package/test/platform/platform-edge.spec.ts +73 -0
- package/test/platform/platform.integration.spec.ts +34 -0
- package/test/utils/utils-extra.spec.ts +10 -0
- package/test/utils/utils.spec.ts +68 -0
- package/todo/TODO.md +80 -0
- package/tsconfig.ui.json +11 -0
- package/.github/workflows/beta-release.yml +0 -52
- package/dist/platform.d.ts +0 -35
- package/dist/platform.d.ts.map +0 -1
- package/dist/platform.js +0 -945
- package/dist/platform.js.map +0 -1
- package/src/platform.ts +0 -963
- package/test/accessory-restore.spec.ts +0 -73
- package/test/device-mapping.spec.ts +0 -37
- package/test/deviceFactory.spec.ts +0 -18
- package/test/fan-swing.spec.ts +0 -29
- package/test/lock-users.spec.ts +0 -44
- package/test/matter-childbridge.spec.ts +0 -55
- package/test/matter-descriptors.spec.ts +0 -97
- package/test/matter-device-state.spec.ts +0 -101
- package/test/matter-integration.spec.ts +0 -70
- package/test/platform.integration.spec.ts +0 -55
- package/test/switchbot-client-debounce.spec.ts +0 -131
- package/test/switchbot-client-openapi.spec.ts +0 -56
- package/test/switchbotClient.spec.ts +0 -10
- package/test/utils.spec.ts +0 -20
package/dist/deviceFactory.js
CHANGED
|
@@ -1,50 +1,109 @@
|
|
|
1
|
+
import { DEVICE_TYPE_NORMALIZATION_MAP } from './device-types.js';
|
|
2
|
+
import { BlindTiltDevice, BotDevice, ContactSensorDevice, Curtain3Device, CurtainDevice, FanDevice, GenericDevice, Hub2Device, HumidifierDevice, LightDevice, LightStripDevice, LockDevice, MeterDevice, MotionSensorDevice, PlugDevice, PlugMiniDevice, RelaySwitch1PMDevice, RelaySwitchDevice, RollerShadeDevice, SmartFanDevice, StripLightDevice, TemperatureSensorDevice, VacuumDevice, WalletFinderDevice, WaterDetectorDevice, WoSweeperDevice, WoSweeperMiniDevice, WoSweeperMiniProDevice, } from './devices/genericDevice.js';
|
|
1
3
|
import { SwitchBotClient } from './switchbotClient.js';
|
|
2
|
-
import { GenericDevice, BotDevice, CurtainDevice, FanDevice, LightDevice, LightStripDevice, MotionSensorDevice, ContactSensorDevice, VacuumDevice, LockDevice, HumidifierDevice, TemperatureSensorDevice, RelaySwitchDevice, RelaySwitch1PMDevice, PlugDevice, PlugMiniDevice, BlindTiltDevice, Curtain3Device, RollerShadeDevice, Hub2Device, MeterDevice, WaterDetectorDevice, SmartFanDevice, StripLightDevice, WalletFinderDevice, WoSweeperDevice, WoSweeperMiniDevice, WoSweeperMiniProDevice, } from './devices/genericDevice.js';
|
|
3
4
|
const DEVICE_CLASS_MAP = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
'
|
|
16
|
-
'
|
|
17
|
-
|
|
5
|
+
// Primary device type keys (lowercase, simplified)
|
|
6
|
+
'bot': BotDevice,
|
|
7
|
+
'curtain': CurtainDevice,
|
|
8
|
+
'curtain3': Curtain3Device,
|
|
9
|
+
'fan': FanDevice,
|
|
10
|
+
'light': LightDevice,
|
|
11
|
+
'lightstrip': LightStripDevice,
|
|
12
|
+
'motion': MotionSensorDevice,
|
|
13
|
+
'contact': ContactSensorDevice,
|
|
14
|
+
'vacuum': VacuumDevice,
|
|
15
|
+
// Canonical, normalized device type keys (lowercase, mapped to device classes)
|
|
16
|
+
'video doorbell': GenericDevice,
|
|
17
|
+
'smart radiator thermostat': GenericDevice,
|
|
18
|
+
'woiosensor': GenericDevice,
|
|
19
|
+
'garage door opener': GenericDevice,
|
|
20
|
+
'air purifier table pm2.5': GenericDevice,
|
|
21
|
+
'air purifier voc': GenericDevice,
|
|
22
|
+
'air purifier table voc': GenericDevice,
|
|
23
|
+
'meterplus': MeterDevice,
|
|
24
|
+
'meterpro': MeterDevice,
|
|
25
|
+
'meterpro(co2)': MeterDevice,
|
|
26
|
+
'walletfinder': WalletFinderDevice,
|
|
27
|
+
'plug': PlugDevice,
|
|
28
|
+
'plug mini (eu)': PlugMiniDevice,
|
|
18
29
|
'plug mini (jp)': PlugMiniDevice,
|
|
19
30
|
'plug mini (us)': PlugMiniDevice,
|
|
31
|
+
'relay switch 1pm': RelaySwitch1PMDevice,
|
|
32
|
+
'relay switch 2pm': RelaySwitch1PMDevice,
|
|
33
|
+
'k10+ pro': WoSweeperDevice,
|
|
34
|
+
'robot vacuum cleaner k10+ pro combo': WoSweeperDevice,
|
|
35
|
+
'robot vacuum cleaner k11+': WoSweeperDevice,
|
|
36
|
+
'robot vacuum cleaner k20 plus pro': WoSweeperDevice,
|
|
37
|
+
'ai hub': GenericDevice,
|
|
38
|
+
'hub': GenericDevice,
|
|
39
|
+
'hub 2': Hub2Device,
|
|
40
|
+
'hub 3': GenericDevice,
|
|
41
|
+
'hub mini': GenericDevice,
|
|
42
|
+
'hub plus': GenericDevice,
|
|
43
|
+
'indoor cam': GenericDevice,
|
|
44
|
+
'pan/tilt cam': GenericDevice,
|
|
45
|
+
'pan/tilt cam 2k': GenericDevice,
|
|
46
|
+
'pan/tilt cam plus 2k': GenericDevice,
|
|
47
|
+
'pan/tilt cam plus 3k': GenericDevice,
|
|
48
|
+
'humidifier': HumidifierDevice, // Includes evaporative humidifier mapping
|
|
49
|
+
'roller shade': RollerShadeDevice,
|
|
50
|
+
'strip light 3': StripLightDevice,
|
|
51
|
+
'circulator fan': FanDevice,
|
|
52
|
+
'smart lock pro': LockDevice,
|
|
53
|
+
'lock lite': LockDevice,
|
|
54
|
+
'keypad': LockDevice,
|
|
55
|
+
'lock vision pro': LockDevice,
|
|
56
|
+
'floor lamp': LightDevice,
|
|
57
|
+
'rgbicww floor lamp': LightStripDevice,
|
|
58
|
+
'rgbicww strip light': LightStripDevice,
|
|
59
|
+
'home climate panel': GenericDevice, // Climate panel family
|
|
60
|
+
'lock': LockDevice,
|
|
61
|
+
'humidifier2': HumidifierDevice,
|
|
62
|
+
'temperature': TemperatureSensorDevice,
|
|
63
|
+
'relay switch 1': RelaySwitchDevice,
|
|
20
64
|
'blind tilt': BlindTiltDevice,
|
|
21
|
-
curtain3: Curtain3Device,
|
|
22
65
|
'worollershade': RollerShadeDevice,
|
|
23
66
|
'wo rollershade': RollerShadeDevice,
|
|
24
|
-
'roller shade': RollerShadeDevice,
|
|
25
67
|
'rollershade': RollerShadeDevice,
|
|
26
|
-
'
|
|
27
|
-
meter: MeterDevice,
|
|
28
|
-
'meterplus': MeterDevice,
|
|
68
|
+
'meter': MeterDevice,
|
|
29
69
|
'meter plus (jp)': MeterDevice,
|
|
30
|
-
'meterpro': MeterDevice,
|
|
31
|
-
'meterpro(co2)': MeterDevice,
|
|
32
70
|
'water detector': WaterDetectorDevice,
|
|
33
71
|
'smart fan': SmartFanDevice,
|
|
34
72
|
'strip light': StripLightDevice,
|
|
35
|
-
'walletfinder': WalletFinderDevice,
|
|
36
73
|
'wosweeper': WoSweeperDevice,
|
|
37
74
|
'wosweepermini': WoSweeperMiniDevice,
|
|
38
75
|
'wosweeperminipro': WoSweeperMiniProDevice,
|
|
39
76
|
'k10+': WoSweeperDevice,
|
|
40
|
-
'k10+ pro': WoSweeperDevice,
|
|
41
77
|
'k10+ pro (wosweeperminipro)': WoSweeperMiniProDevice,
|
|
78
|
+
'battery circulator fan': FanDevice,
|
|
79
|
+
'standing circulator fan': FanDevice,
|
|
80
|
+
'smart lock': LockDevice,
|
|
81
|
+
'smart lock ultra': LockDevice,
|
|
82
|
+
'keypad touch': LockDevice,
|
|
83
|
+
'keypad vision': LockDevice,
|
|
84
|
+
'keypad vision pro': LockDevice,
|
|
85
|
+
'color bulb': LightDevice,
|
|
86
|
+
'ceiling light': LightDevice,
|
|
87
|
+
'ceiling light pro': LightDevice,
|
|
88
|
+
'candle warmer lamp': LightDevice,
|
|
89
|
+
'rgbic neon rope light': LightStripDevice,
|
|
90
|
+
'rgbic neon wire rope light': LightStripDevice,
|
|
91
|
+
'robot vacuum cleaner s1': VacuumDevice,
|
|
92
|
+
'robot vacuum cleaner s1 plus': VacuumDevice,
|
|
93
|
+
'robot vacuum cleaner s10': VacuumDevice,
|
|
94
|
+
'robot vacuum cleaner s20': VacuumDevice,
|
|
42
95
|
};
|
|
43
96
|
function classForType(type) {
|
|
44
|
-
const
|
|
97
|
+
const rawKey = (type || '').toLowerCase();
|
|
98
|
+
const key = DEVICE_TYPE_NORMALIZATION_MAP[rawKey] ?? rawKey;
|
|
45
99
|
return DEVICE_CLASS_MAP[key] ?? GenericDevice;
|
|
46
100
|
}
|
|
47
|
-
export async function createDevice(opts, cfg, useMatter) {
|
|
101
|
+
export async function createDevice(opts, cfg, useMatter, log) {
|
|
102
|
+
// Always pass the logger to both device opts and config
|
|
103
|
+
const logger = log || cfg?.logger || cfg?.log;
|
|
104
|
+
if (opts && opts.name && logger && typeof logger.info === 'function') {
|
|
105
|
+
logger.info(`[Matter/Debug] createDevice: Passing opts for ${opts.name}:`, JSON.stringify(opts, null, 2));
|
|
106
|
+
}
|
|
48
107
|
// Reuse existing client when provided via config to avoid creating
|
|
49
108
|
// a new SwitchBotClient per device (which can be expensive).
|
|
50
109
|
let client = cfg?._client ?? null;
|
|
@@ -54,8 +113,24 @@ export async function createDevice(opts, cfg, useMatter) {
|
|
|
54
113
|
}
|
|
55
114
|
// Pass client via config so devices can access it
|
|
56
115
|
const mergedCfg = { ...cfg, _client: client };
|
|
116
|
+
// Always pass logger to mergedCfg
|
|
117
|
+
if (logger) {
|
|
118
|
+
mergedCfg.log = logger;
|
|
119
|
+
}
|
|
120
|
+
// Pass encryptionKey and keyId to device opts if present
|
|
121
|
+
const deviceOpts = { ...opts };
|
|
122
|
+
if (opts.encryptionKey) {
|
|
123
|
+
deviceOpts.encryptionKey = opts.encryptionKey;
|
|
124
|
+
}
|
|
125
|
+
if (opts.keyId) {
|
|
126
|
+
deviceOpts.keyId = opts.keyId;
|
|
127
|
+
}
|
|
128
|
+
// Always pass logger to deviceOpts
|
|
129
|
+
if (logger) {
|
|
130
|
+
deviceOpts.log = logger;
|
|
131
|
+
}
|
|
57
132
|
const DeviceCtor = classForType(opts.type);
|
|
58
|
-
const device = new DeviceCtor(
|
|
133
|
+
const device = new DeviceCtor(deviceOpts, mergedCfg);
|
|
59
134
|
await device.init();
|
|
60
135
|
// Attach a simple getState delegator to the client where appropriate
|
|
61
136
|
const originalGetState = device.getState.bind(device);
|
|
@@ -63,8 +138,9 @@ export async function createDevice(opts, cfg, useMatter) {
|
|
|
63
138
|
try {
|
|
64
139
|
// Prefer client-backed getDevice when available
|
|
65
140
|
const dev = await client.getDevice(opts.id);
|
|
66
|
-
if (dev)
|
|
141
|
+
if (dev) {
|
|
67
142
|
return dev;
|
|
143
|
+
}
|
|
68
144
|
}
|
|
69
145
|
catch (e) {
|
|
70
146
|
// ignore and fallback to device implementation
|
|
@@ -74,7 +150,9 @@ export async function createDevice(opts, cfg, useMatter) {
|
|
|
74
150
|
// Provide accessory factory based on platform selection
|
|
75
151
|
return {
|
|
76
152
|
instance: device,
|
|
77
|
-
createAccessory:
|
|
153
|
+
createAccessory: useMatter
|
|
154
|
+
? async (api) => await device.createMatterAccessory(api)
|
|
155
|
+
: (api) => device.createHAPAccessory(api),
|
|
78
156
|
protocol: useMatter ? 'matter' : 'hap',
|
|
79
157
|
};
|
|
80
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceFactory.js","sourceRoot":"","sources":["../src/deviceFactory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deviceFactory.js","sourceRoot":"","sources":["../src/deviceFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status Update Strategy for BLE and OpenAPI
|
|
3
|
+
*
|
|
4
|
+
* BLE (Bluetooth Low Energy):
|
|
5
|
+
* - Primary: Subscribes to device notifications for real-time state updates using _subscribeBLENotifications().
|
|
6
|
+
* - Fallback: (Recommended) Optionally, a low-frequency polling timer (e.g., every 5–10 minutes) can call getState() to recover from missed notifications or connection loss.
|
|
7
|
+
* - This ensures state stays in sync even if notifications are unreliable or the device reconnects.
|
|
8
|
+
* - Polling should be infrequent to avoid battery drain and BLE congestion.
|
|
9
|
+
*
|
|
10
|
+
* BLE Polling Options (config & per-device):
|
|
11
|
+
* - blePollingEnabled (boolean): Enable/disable BLE polling fallback (default: true).
|
|
12
|
+
* - blePollIntervalMs (integer): Polling interval in ms (default: 600000, min: 60000).
|
|
13
|
+
* - These can be set globally in config or overridden per device.
|
|
14
|
+
* - Setting a lower interval increases update frequency but may drain battery faster.
|
|
15
|
+
* - Setting a higher interval reduces battery impact but may delay state recovery.
|
|
16
|
+
*
|
|
17
|
+
* OpenAPI (Cloud):
|
|
18
|
+
* - Uses periodic polling to fetch device status at a configurable interval (default: 300 seconds, can be set per device or platform).
|
|
19
|
+
* - Platform supports batched refresh (matterBatchEnabled, matterBatchRefreshRate, etc.) and per-device refreshRate overrides.
|
|
20
|
+
* - Rate limiting:
|
|
21
|
+
* - Default daily limit: 10,000 OpenAPI requests (configurable via options.dailyApiLimit).
|
|
22
|
+
* - Reserve: 1,000 requests for user commands (options.dailyApiReserveForCommands).
|
|
23
|
+
* - When the remaining budget reaches the reserve, background polling/discovery pauses, but user commands and webhooks continue.
|
|
24
|
+
* - Counter resets at local or UTC midnight (options.dailyApiResetLocalMidnight).
|
|
25
|
+
*
|
|
26
|
+
* Best Practices:
|
|
27
|
+
* - BLE: Use notifications for instant updates, add periodic polling as a safety net.
|
|
28
|
+
* - OpenAPI: Tune polling intervals to balance freshness and rate limit budget.
|
|
29
|
+
* - Both: Document and expose polling intervals and rate limit settings in config.
|
|
30
|
+
*
|
|
31
|
+
* See README.md and docs for more details.
|
|
32
|
+
*/
|
|
1
33
|
import type { SwitchBotPluginConfig } from '../settings.js';
|
|
34
|
+
import { Buffer } from 'node:buffer';
|
|
2
35
|
import { DeviceBase } from './deviceBase.js';
|
|
3
36
|
export declare class GenericDevice extends DeviceBase {
|
|
37
|
+
protected log: import('homebridge').Logger;
|
|
38
|
+
private _blePollTimer;
|
|
39
|
+
private _blePollIntervalMs;
|
|
40
|
+
private _blePollingEnabled;
|
|
4
41
|
constructor(opts: any, cfg: SwitchBotPluginConfig);
|
|
42
|
+
/**
|
|
43
|
+
* Start periodic BLE polling as a fallback to notifications.
|
|
44
|
+
*/
|
|
45
|
+
private _startBlePolling;
|
|
46
|
+
/**
|
|
47
|
+
* Clean up BLE polling timer on destroy.
|
|
48
|
+
*/
|
|
49
|
+
destroy(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Subscribe to BLE notifications for this device (if supported by node-switchbot)
|
|
52
|
+
* Logs unsolicited notifications and enables per-command notification futures.
|
|
53
|
+
*/
|
|
54
|
+
private _subscribeBLENotifications;
|
|
55
|
+
/**
|
|
56
|
+
* Await a BLE notification for this device (for advanced use in subclasses)
|
|
57
|
+
* Returns the notification payload or throws on timeout.
|
|
58
|
+
*/
|
|
59
|
+
protected _awaitBLENotification(timeoutMs?: number): Promise<Buffer>;
|
|
5
60
|
getState(): Promise<any>;
|
|
6
61
|
setState(change: any): Promise<any>;
|
|
7
62
|
createHAPAccessory(api: any): any;
|
|
8
|
-
createMatterAccessory(api: any): any
|
|
63
|
+
createMatterAccessory(api: any): Promise<any>;
|
|
9
64
|
}
|
|
10
65
|
export declare class BotDevice extends GenericDevice {
|
|
11
66
|
}
|
|
@@ -24,7 +79,7 @@ export declare class CurtainDevice extends GenericDevice {
|
|
|
24
79
|
};
|
|
25
80
|
}[];
|
|
26
81
|
};
|
|
27
|
-
createMatterAccessory(api: any): any
|
|
82
|
+
createMatterAccessory(api: any): Promise<any>;
|
|
28
83
|
}
|
|
29
84
|
export declare class FanDevice extends GenericDevice {
|
|
30
85
|
createHAPAccessory(api: any): {
|
|
@@ -154,7 +209,7 @@ export declare class HumidifierDevice extends GenericDevice {
|
|
|
154
209
|
set: (v: any) => Promise<void>;
|
|
155
210
|
};
|
|
156
211
|
CurrentHumidifierDehumidifierState: {
|
|
157
|
-
get: () => Promise<
|
|
212
|
+
get: () => Promise<0 | 2>;
|
|
158
213
|
};
|
|
159
214
|
TargetHumidifierDehumidifierState: {
|
|
160
215
|
get: () => Promise<number>;
|
|
@@ -173,40 +228,7 @@ export declare class HumidifierDevice extends GenericDevice {
|
|
|
173
228
|
setState(change: any): Promise<any>;
|
|
174
229
|
}
|
|
175
230
|
export declare class HumidifierMatterDevice extends HumidifierDevice {
|
|
176
|
-
createMatterAccessory(api: any):
|
|
177
|
-
id: string;
|
|
178
|
-
name: string;
|
|
179
|
-
protocol: string;
|
|
180
|
-
clusters: ({
|
|
181
|
-
type: string;
|
|
182
|
-
clusterId: 1029;
|
|
183
|
-
attributes: {
|
|
184
|
-
currentRelativeHumidity: {
|
|
185
|
-
read: () => Promise<any>;
|
|
186
|
-
write: undefined;
|
|
187
|
-
};
|
|
188
|
-
0: {
|
|
189
|
-
read: () => Promise<any>;
|
|
190
|
-
write: undefined;
|
|
191
|
-
};
|
|
192
|
-
onOff?: undefined;
|
|
193
|
-
};
|
|
194
|
-
} | {
|
|
195
|
-
type: string;
|
|
196
|
-
clusterId: 6;
|
|
197
|
-
attributes: {
|
|
198
|
-
onOff: {
|
|
199
|
-
read: () => Promise<boolean>;
|
|
200
|
-
write: (v: any) => Promise<any>;
|
|
201
|
-
};
|
|
202
|
-
0: {
|
|
203
|
-
read: () => Promise<boolean>;
|
|
204
|
-
write: (v: any) => Promise<any>;
|
|
205
|
-
};
|
|
206
|
-
currentRelativeHumidity?: undefined;
|
|
207
|
-
};
|
|
208
|
-
})[];
|
|
209
|
-
};
|
|
231
|
+
createMatterAccessory(api: any): Promise<any>;
|
|
210
232
|
}
|
|
211
233
|
export declare class TemperatureSensorDevice extends GenericDevice {
|
|
212
234
|
createHAPAccessory(api: any): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genericDevice.d.ts","sourceRoot":"","sources":["../../src/devices/genericDevice.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"genericDevice.d.ts","sourceRoot":"","sources":["../../src/devices/genericDevice.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAgB5C,qBAAa,aAAc,SAAQ,UAAU;IAC3C,SAAS,CAAC,GAAG,EAAE,OAAO,YAAY,EAAE,MAAM,CAAA;IAC1C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,qBAAqB;IAqCjD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B;;;OAGG;YACW,0BAA0B;IA0BxC;;;OAGG;cACa,qBAAqB,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBlE,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;IA0BxB,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAyEzC,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IA0B3B,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAsKpD;AAGD,qBAAa,SAAU,SAAQ,aAAa;CAAG;AAE/C,qBAAa,aAAc,SAAQ,aAAa;IAC9C,kBAAkB,CAAC,GAAG,EAAE,GAAG;;;;;;;;;6BAiBA,GAAG;;;;;IAWxB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CA2EpD;AAED,qBAAa,SAAU,SAAQ,aAAa;IAC1C,kBAAkB,CAAC,GAAG,EAAE,GAAG;;;;;;6BAWA,GAAG;;;;6BASH,GAAG;;;;;IAUxB,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAwCzC,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;CA8BrC;AACD,qBAAa,WAAY,SAAQ,aAAa;IAC5C,kBAAkB,CAAC,GAAG,EAAE,GAAG;;;;;;6BAWA,GAAG;;;;;;;;;6BAUH,GAAG;;;;;;;;;6BAqCH,GAAG;;;;;;;;;6BAuBH,GAAG;;;;;;;;;6BAiBH,GAAG;;;;;IAUxB,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAiDzC,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;CA8CrC;AAED,qBAAa,gBAAiB,SAAQ,WAAW;CAAG;AAEpD,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,kBAAkB,CAAC,GAAG,EAAE,GAAG;;;;;;;;;;IAkBrB,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAsC1C;AAED,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,kBAAkB,CAAC,GAAG,EAAE,GAAG;;;;;;;;;;CAiB5B;AAED,qBAAa,YAAa,SAAQ,aAAa;IAE7C,kBAAkB,CAAC,GAAG,EAAE,GAAG;CAG5B;AAED,qBAAa,UAAW,SAAQ,aAAa;IAC3C,kBAAkB,CAAC,GAAG,EAAE,GAAG;;;;;;;;;6BAiBA,GAAG;;;;;IAUxB,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IA0DzC,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;CA6BrC;AAED,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,kBAAkB,CAAC,GAAG,EAAE,GAAG;;;;;;6BAWA,GAAG;;;;;;;6BAYH,GAAG;;;;;;;6BAeH,GAAG;;;;;IAUxB,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAgC1C;AAGD,qBAAa,sBAAuB,SAAQ,gBAAgB;IACpD,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CA0BpD;AAED,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,kBAAkB,CAAC,GAAG,EAAE,GAAG;;;;;;;;;;CAiB5B;AAGD,qBAAa,iBAAkB,SAAQ,aAAa;CAAG;AACvD,qBAAa,oBAAqB,SAAQ,aAAa;CAAG;AAC1D,qBAAa,UAAW,SAAQ,aAAa;IAC3C,kBAAkB,CAAC,GAAG,EAAE,GAAG;;;;;;6BAWA,GAAG;;;;;;;;CAe/B;AAED,qBAAa,cAAe,SAAQ,UAAU;CAAG;AAEjD,qBAAa,eAAgB,SAAQ,aAAa;CAAG;AACrD,qBAAa,cAAe,SAAQ,aAAa;CAAG;AACpD,qBAAa,iBAAkB,SAAQ,aAAa;CAAG;AAEvD,qBAAa,UAAW,SAAQ,aAAa;CAAG;AAEhD,qBAAa,WAAY,SAAQ,aAAa;IAC5C,kBAAkB,CAAC,GAAG,EAAE,GAAG;;;;;;;;;;;;;;;;;;;CA4B5B;AAED,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,kBAAkB,CAAC,GAAG,EAAE,GAAG;;;;;;;;;;CAiB5B;AAED,qBAAa,cAAe,SAAQ,SAAS;CAAG;AAEhD,qBAAa,gBAAiB,SAAQ,gBAAgB;CAAG;AAEzD,qBAAa,kBAAmB,SAAQ,aAAa;CAAG;AAGxD,qBAAa,eAAgB,SAAQ,YAAY;CAAG;AACpD,qBAAa,mBAAoB,SAAQ,YAAY;CAAG;AACxD,qBAAa,sBAAuB,SAAQ,YAAY;CAAG"}
|