@switchbot/homebridge-switchbot 5.0.0-beta.1 → 5.0.0-beta.10

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.
Files changed (110) hide show
  1. package/dist/devices-matter/ColorLightAccessory.d.ts +3 -1
  2. package/dist/devices-matter/ColorLightAccessory.d.ts.map +1 -1
  3. package/dist/devices-matter/ColorLightAccessory.js +35 -36
  4. package/dist/devices-matter/ColorLightAccessory.js.map +1 -1
  5. package/dist/devices-matter/ColorTemperatureLightAccessory.d.ts +3 -1
  6. package/dist/devices-matter/ColorTemperatureLightAccessory.d.ts.map +1 -1
  7. package/dist/devices-matter/ColorTemperatureLightAccessory.js +32 -37
  8. package/dist/devices-matter/ColorTemperatureLightAccessory.js.map +1 -1
  9. package/dist/devices-matter/ContactSensorAccessory.d.ts +3 -1
  10. package/dist/devices-matter/ContactSensorAccessory.d.ts.map +1 -1
  11. package/dist/devices-matter/ContactSensorAccessory.js +16 -13
  12. package/dist/devices-matter/ContactSensorAccessory.js.map +1 -1
  13. package/dist/devices-matter/DimmableLightAccessory.d.ts +3 -1
  14. package/dist/devices-matter/DimmableLightAccessory.d.ts.map +1 -1
  15. package/dist/devices-matter/DimmableLightAccessory.js +24 -27
  16. package/dist/devices-matter/DimmableLightAccessory.js.map +1 -1
  17. package/dist/devices-matter/DoorLockAccessory.d.ts +3 -1
  18. package/dist/devices-matter/DoorLockAccessory.d.ts.map +1 -1
  19. package/dist/devices-matter/DoorLockAccessory.js +25 -22
  20. package/dist/devices-matter/DoorLockAccessory.js.map +1 -1
  21. package/dist/devices-matter/ExtendedColorLightAccessory.d.ts +3 -1
  22. package/dist/devices-matter/ExtendedColorLightAccessory.d.ts.map +1 -1
  23. package/dist/devices-matter/ExtendedColorLightAccessory.js +40 -41
  24. package/dist/devices-matter/ExtendedColorLightAccessory.js.map +1 -1
  25. package/dist/devices-matter/FanAccessory.d.ts +3 -1
  26. package/dist/devices-matter/FanAccessory.d.ts.map +1 -1
  27. package/dist/devices-matter/FanAccessory.js +31 -23
  28. package/dist/devices-matter/FanAccessory.js.map +1 -1
  29. package/dist/devices-matter/HumiditySensorAccessory.d.ts +3 -1
  30. package/dist/devices-matter/HumiditySensorAccessory.d.ts.map +1 -1
  31. package/dist/devices-matter/HumiditySensorAccessory.js +16 -15
  32. package/dist/devices-matter/HumiditySensorAccessory.js.map +1 -1
  33. package/dist/devices-matter/LeakSensorAccessory.d.ts +3 -1
  34. package/dist/devices-matter/LeakSensorAccessory.d.ts.map +1 -1
  35. package/dist/devices-matter/LeakSensorAccessory.js +16 -13
  36. package/dist/devices-matter/LeakSensorAccessory.js.map +1 -1
  37. package/dist/devices-matter/LightSensorAccessory.d.ts +3 -1
  38. package/dist/devices-matter/LightSensorAccessory.d.ts.map +1 -1
  39. package/dist/devices-matter/LightSensorAccessory.js +16 -15
  40. package/dist/devices-matter/LightSensorAccessory.js.map +1 -1
  41. package/dist/devices-matter/OccupancySensorAccessory.d.ts +3 -1
  42. package/dist/devices-matter/OccupancySensorAccessory.d.ts.map +1 -1
  43. package/dist/devices-matter/OccupancySensorAccessory.js +17 -21
  44. package/dist/devices-matter/OccupancySensorAccessory.js.map +1 -1
  45. package/dist/devices-matter/OnOffLightAccessory.d.ts +3 -1
  46. package/dist/devices-matter/OnOffLightAccessory.d.ts.map +1 -1
  47. package/dist/devices-matter/OnOffLightAccessory.js +22 -21
  48. package/dist/devices-matter/OnOffLightAccessory.js.map +1 -1
  49. package/dist/devices-matter/OnOffOutletAccessory.d.ts +3 -3
  50. package/dist/devices-matter/OnOffOutletAccessory.d.ts.map +1 -1
  51. package/dist/devices-matter/OnOffOutletAccessory.js +24 -27
  52. package/dist/devices-matter/OnOffOutletAccessory.js.map +1 -1
  53. package/dist/devices-matter/OnOffSwitchAccessory.d.ts +3 -1
  54. package/dist/devices-matter/OnOffSwitchAccessory.d.ts.map +1 -1
  55. package/dist/devices-matter/OnOffSwitchAccessory.js +18 -19
  56. package/dist/devices-matter/OnOffSwitchAccessory.js.map +1 -1
  57. package/dist/devices-matter/RoboticVacuumAccessory.d.ts +3 -1
  58. package/dist/devices-matter/RoboticVacuumAccessory.d.ts.map +1 -1
  59. package/dist/devices-matter/RoboticVacuumAccessory.js +77 -145
  60. package/dist/devices-matter/RoboticVacuumAccessory.js.map +1 -1
  61. package/dist/devices-matter/TemperatureSensorAccessory.d.ts +3 -1
  62. package/dist/devices-matter/TemperatureSensorAccessory.d.ts.map +1 -1
  63. package/dist/devices-matter/TemperatureSensorAccessory.js +18 -15
  64. package/dist/devices-matter/TemperatureSensorAccessory.js.map +1 -1
  65. package/dist/devices-matter/ThermostatAccessory.d.ts +3 -1
  66. package/dist/devices-matter/ThermostatAccessory.d.ts.map +1 -1
  67. package/dist/devices-matter/ThermostatAccessory.js +37 -29
  68. package/dist/devices-matter/ThermostatAccessory.js.map +1 -1
  69. package/dist/devices-matter/VenetianBlindAccessory.d.ts +3 -1
  70. package/dist/devices-matter/VenetianBlindAccessory.d.ts.map +1 -1
  71. package/dist/devices-matter/VenetianBlindAccessory.js +39 -40
  72. package/dist/devices-matter/VenetianBlindAccessory.js.map +1 -1
  73. package/dist/devices-matter/WindowBlindAccessory.d.ts +3 -1
  74. package/dist/devices-matter/WindowBlindAccessory.d.ts.map +1 -1
  75. package/dist/devices-matter/WindowBlindAccessory.js +36 -37
  76. package/dist/devices-matter/WindowBlindAccessory.js.map +1 -1
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +26 -1
  79. package/dist/index.js.map +1 -1
  80. package/dist/platform-hap.d.ts.map +1 -1
  81. package/dist/platform-hap.js +13 -1
  82. package/dist/platform-hap.js.map +1 -1
  83. package/dist/platform-matter.d.ts +45 -0
  84. package/dist/platform-matter.d.ts.map +1 -1
  85. package/dist/platform-matter.js +607 -2
  86. package/dist/platform-matter.js.map +1 -1
  87. package/docs/variables/default.html +1 -1
  88. package/package.json +1 -1
  89. package/src/devices-matter/ColorLightAccessory.ts +37 -40
  90. package/src/devices-matter/ColorTemperatureLightAccessory.ts +35 -41
  91. package/src/devices-matter/ContactSensorAccessory.ts +18 -14
  92. package/src/devices-matter/DimmableLightAccessory.ts +26 -30
  93. package/src/devices-matter/DoorLockAccessory.ts +28 -24
  94. package/src/devices-matter/ExtendedColorLightAccessory.ts +43 -47
  95. package/src/devices-matter/FanAccessory.ts +33 -25
  96. package/src/devices-matter/HumiditySensorAccessory.ts +18 -16
  97. package/src/devices-matter/LeakSensorAccessory.ts +18 -14
  98. package/src/devices-matter/LightSensorAccessory.ts +18 -16
  99. package/src/devices-matter/OccupancySensorAccessory.ts +18 -22
  100. package/src/devices-matter/OnOffLightAccessory.ts +23 -23
  101. package/src/devices-matter/OnOffOutletAccessory.ts +25 -31
  102. package/src/devices-matter/OnOffSwitchAccessory.ts +20 -21
  103. package/src/devices-matter/RoboticVacuumAccessory.ts +79 -156
  104. package/src/devices-matter/TemperatureSensorAccessory.ts +20 -16
  105. package/src/devices-matter/ThermostatAccessory.ts +39 -34
  106. package/src/devices-matter/VenetianBlindAccessory.ts +41 -44
  107. package/src/devices-matter/WindowBlindAccessory.ts +37 -39
  108. package/src/index.ts +27 -1
  109. package/src/platform-hap.ts +12 -1
  110. package/src/platform-matter.ts +647 -2
@@ -1,4 +1,5 @@
1
1
  import type { API, DynamicPlatformPlugin, Logging, SerializedMatterAccessory } from 'homebridge';
2
+ import type { bodyChange, device } from 'node-switchbot';
2
3
  import type { SwitchBotPlatformConfig } from './settings.js';
3
4
  /**
4
5
  * MatterPlatform
@@ -11,7 +12,51 @@ export declare class SwitchBotMatterPlatform implements DynamicPlatformPlugin {
11
12
  readonly config: SwitchBotPlatformConfig;
12
13
  readonly api: API;
13
14
  readonly matterAccessories: Map<string, SerializedMatterAccessory>;
15
+ private switchBotAPI?;
16
+ private switchBotBLE?;
17
+ private discoveredDevices;
18
+ private bleEventHandler;
14
19
  constructor(log: Logging, config: SwitchBotPlatformConfig, api: API);
20
+ /**
21
+ * Normalize a deviceId for matching (uppercase alphanumerics only)
22
+ */
23
+ private normalizeDeviceId;
24
+ /**
25
+ * Merge two arrays by deviceId. For each item in a1 (user-provided devices list),
26
+ * find matching item in a2 (discovered devices) and merge them with user overrides last.
27
+ */
28
+ private mergeByDeviceId;
29
+ /**
30
+ * Merge discovered devices with deviceConfig (per deviceType) and per-device overrides
31
+ * from `config.options.devices`, matching the behavior used in platform-hap.
32
+ */
33
+ private mergeDiscoveredDevices;
34
+ /**
35
+ * Select effective connection type for a device: prefer explicit device.connectionType,
36
+ * otherwise prefer BLE when platform BLE is enabled and device provides a BLE model/id.
37
+ */
38
+ private chooseConnectionType;
39
+ /**
40
+ * Map a SwitchBot device object to a MatterAccessory using the device-specific
41
+ * Matter accessory classes in `src/devices-matter`.
42
+ */
43
+ private createAccessoryFromDevice;
44
+ /**
45
+ * Discover devices via SwitchBot OpenAPI and cache them for later use
46
+ */
47
+ private discoverDevices;
48
+ /**
49
+ * Retry wrapper for control commands using SwitchBot OpenAPI
50
+ */
51
+ retryCommand(deviceObj: device, bodyChange: bodyChange, maxRetries?: number, delayBetweenRetries?: number): Promise<{
52
+ response: any;
53
+ statusCode: number;
54
+ }>;
55
+ /**
56
+ * Parse BLE advertisement/serviceData into normalized fields for a given device.
57
+ * Returns null when serviceData is falsy or parsing fails.
58
+ */
59
+ private parseAdvertisementForDevice;
15
60
  /**
16
61
  * Required for DynamicPlatformPlugin
17
62
  * Called when homebridge restores cached accessories from disk at startup
@@ -1 +1 @@
1
- {"version":3,"file":"platform-matter.d.ts","sourceRoot":"","sources":["../src/platform-matter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,qBAAqB,EACrB,OAAO,EAEP,yBAAyB,EAC1B,MAAM,YAAY,CAAA;AAEnB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AA4B5D;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,qBAAqB;aASjD,GAAG,EAAE,OAAO;aACZ,MAAM,EAAE,uBAAuB;aAC/B,GAAG,EAAE,GAAG;IAL1B,SAAgB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAY;gBAGnE,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,uBAAuB,EAC/B,GAAG,EAAE,GAAG;IAwC1B;;;OAGG;IACH,kBAAkB;IAMlB;;;;;OAKG;IACH,wBAAwB,CAAC,SAAS,EAAE,yBAAyB;IAK7D;;OAEG;YACW,yBAAyB;IAuBvC;;OAEG;YACW,yBAAyB;IAqCvC;;OAEG;YACW,wBAAwB;IA8CtC;;OAEG;YACW,0BAA0B;IAsBxC;;OAEG;YACW,wBAAwB;IAsBtC;;OAEG;YACW,uBAAuB;IA0DrC;;OAEG;YACW,uBAAuB;IAkCrC;;OAEG;YACW,oBAAoB;IA4BlC;;;;;OAKG;YACW,wBAAwB;IAsBtC;;;;;;OAMG;YACW,qBAAqB;CAqBpC"}
1
+ {"version":3,"file":"platform-matter.d.ts","sourceRoot":"","sources":["../src/platform-matter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,qBAAqB,EACrB,OAAO,EAEP,yBAAyB,EAC1B,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAExD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AA8B5D;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,qBAAqB;aAgBjD,GAAG,EAAE,OAAO;aACZ,MAAM,EAAE,uBAAuB;aAC/B,GAAG,EAAE,GAAG;IAZ1B,SAAgB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAY;IAErF,OAAO,CAAC,YAAY,CAAC,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAC,CAAc;IAEnC,OAAO,CAAC,iBAAiB,CAAe;IAExC,OAAO,CAAC,eAAe,CAA8C;gBAGnD,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,uBAAuB,EAC/B,GAAG,EAAE,GAAG;IA4F1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAOvB;;;OAGG;YACW,sBAAsB;IAsCpC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;OAGG;YACW,yBAAyB;IAuWvC;;OAEG;YACW,eAAe;IAwB7B;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,SAAI,EAAE,mBAAmB,SAAO,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,GAAG,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IA0BzJ;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAwDnC;;;OAGG;IACH,kBAAkB;IAMlB;;;;;OAKG;IACH,wBAAwB,CAAC,SAAS,EAAE,yBAAyB;IAK7D;;OAEG;YACW,yBAAyB;IAoDvC;;OAEG;YACW,yBAAyB;IAqCvC;;OAEG;YACW,wBAAwB;IA8CtC;;OAEG;YACW,0BAA0B;IAsBxC;;OAEG;YACW,wBAAwB;IAsBtC;;OAEG;YACW,uBAAuB;IA0DrC;;OAEG;YACW,uBAAuB;IAkCrC;;OAEG;YACW,oBAAoB;IA4BlC;;;;;OAKG;YACW,wBAAwB;IAsBtC;;;;;;OAMG;YACW,qBAAqB;CAqBpC"}