@switchbot/homebridge-switchbot 5.0.0-beta.3 → 5.0.0-beta.30

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 (137) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/config.schema.json +42 -4
  3. package/dist/devices-hap/device.d.ts +1 -0
  4. package/dist/devices-hap/device.d.ts.map +1 -1
  5. package/dist/devices-hap/device.js +70 -30
  6. package/dist/devices-hap/device.js.map +1 -1
  7. package/dist/devices-matter/BaseMatterAccessory.d.ts +23 -0
  8. package/dist/devices-matter/BaseMatterAccessory.d.ts.map +1 -1
  9. package/dist/devices-matter/BaseMatterAccessory.js +167 -5
  10. package/dist/devices-matter/BaseMatterAccessory.js.map +1 -1
  11. package/dist/devices-matter/ColorLightAccessory.d.ts.map +1 -1
  12. package/dist/devices-matter/ColorLightAccessory.js +12 -12
  13. package/dist/devices-matter/ColorLightAccessory.js.map +1 -1
  14. package/dist/devices-matter/ColorTemperatureLightAccessory.d.ts.map +1 -1
  15. package/dist/devices-matter/ColorTemperatureLightAccessory.js +5 -7
  16. package/dist/devices-matter/ColorTemperatureLightAccessory.js.map +1 -1
  17. package/dist/devices-matter/DimmableLightAccessory.js +9 -9
  18. package/dist/devices-matter/DimmableLightAccessory.js.map +1 -1
  19. package/dist/devices-matter/ExtendedColorLightAccessory.d.ts.map +1 -1
  20. package/dist/devices-matter/ExtendedColorLightAccessory.js +14 -15
  21. package/dist/devices-matter/ExtendedColorLightAccessory.js.map +1 -1
  22. package/dist/devices-matter/OnOffLightAccessory.d.ts.map +1 -1
  23. package/dist/devices-matter/OnOffLightAccessory.js +8 -16
  24. package/dist/devices-matter/OnOffLightAccessory.js.map +1 -1
  25. package/dist/devices-matter/OnOffOutletAccessory.d.ts +2 -0
  26. package/dist/devices-matter/OnOffOutletAccessory.d.ts.map +1 -1
  27. package/dist/devices-matter/OnOffOutletAccessory.js +10 -7
  28. package/dist/devices-matter/OnOffOutletAccessory.js.map +1 -1
  29. package/dist/devices-matter/OnOffSwitchAccessory.js +2 -2
  30. package/dist/devices-matter/OnOffSwitchAccessory.js.map +1 -1
  31. package/dist/homebridge-ui/public/index.html +48 -1
  32. package/dist/homebridge-ui/server.js +35 -0
  33. package/dist/homebridge-ui/server.js.map +1 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +4 -5
  36. package/dist/index.js.map +1 -1
  37. package/dist/index.test.js +7 -2
  38. package/dist/index.test.js.map +1 -1
  39. package/dist/irdevice/irdevice.d.ts +11 -10
  40. package/dist/irdevice/irdevice.d.ts.map +1 -1
  41. package/dist/irdevice/irdevice.js +76 -35
  42. package/dist/irdevice/irdevice.js.map +1 -1
  43. package/dist/platform-hap.d.ts +11 -14
  44. package/dist/platform-hap.d.ts.map +1 -1
  45. package/dist/platform-hap.js +64 -64
  46. package/dist/platform-hap.js.map +1 -1
  47. package/dist/platform-matter.d.ts +85 -6
  48. package/dist/platform-matter.d.ts.map +1 -1
  49. package/dist/platform-matter.js +1736 -84
  50. package/dist/platform-matter.js.map +1 -1
  51. package/dist/settings.d.ts +9 -0
  52. package/dist/settings.d.ts.map +1 -1
  53. package/dist/settings.js.map +1 -1
  54. package/dist/test/devices-matter/baseMatterAccessory.test.d.ts +2 -0
  55. package/dist/test/devices-matter/baseMatterAccessory.test.d.ts.map +1 -0
  56. package/dist/test/devices-matter/baseMatterAccessory.test.js +71 -0
  57. package/dist/test/devices-matter/baseMatterAccessory.test.js.map +1 -0
  58. package/dist/test/helpers/platform-fixtures.d.ts +9 -0
  59. package/dist/test/helpers/platform-fixtures.d.ts.map +1 -0
  60. package/dist/test/helpers/platform-fixtures.js +30 -0
  61. package/dist/test/helpers/platform-fixtures.js.map +1 -0
  62. package/dist/test/platform-matter.additional.test.d.ts +2 -0
  63. package/dist/test/platform-matter.additional.test.d.ts.map +1 -0
  64. package/dist/test/platform-matter.additional.test.js +35 -0
  65. package/dist/test/platform-matter.additional.test.js.map +1 -0
  66. package/dist/test/platform-matter.bleparse.test.d.ts +2 -0
  67. package/dist/test/platform-matter.bleparse.test.d.ts.map +1 -0
  68. package/dist/test/platform-matter.bleparse.test.js +43 -0
  69. package/dist/test/platform-matter.bleparse.test.js.map +1 -0
  70. package/dist/test/platform-matter.cleanup.test.d.ts +2 -0
  71. package/dist/test/platform-matter.cleanup.test.d.ts.map +1 -0
  72. package/dist/test/platform-matter.cleanup.test.js +70 -0
  73. package/dist/test/platform-matter.cleanup.test.js.map +1 -0
  74. package/dist/test/platform-matter.keepstale.test.d.ts +2 -0
  75. package/dist/test/platform-matter.keepstale.test.d.ts.map +1 -0
  76. package/dist/test/platform-matter.keepstale.test.js +27 -0
  77. package/dist/test/platform-matter.keepstale.test.js.map +1 -0
  78. package/dist/test/platform-matter.mapping.test.d.ts +2 -0
  79. package/dist/test/platform-matter.mapping.test.d.ts.map +1 -0
  80. package/dist/test/platform-matter.mapping.test.js +43 -0
  81. package/dist/test/platform-matter.mapping.test.js.map +1 -0
  82. package/dist/test/platform-matter.openapi-mapping.test.d.ts +2 -0
  83. package/dist/test/platform-matter.openapi-mapping.test.d.ts.map +1 -0
  84. package/dist/test/platform-matter.openapi-mapping.test.js +84 -0
  85. package/dist/test/platform-matter.openapi-mapping.test.js.map +1 -0
  86. package/dist/test/platform-matter.test.d.ts +2 -0
  87. package/dist/test/platform-matter.test.d.ts.map +1 -0
  88. package/dist/test/platform-matter.test.js +117 -0
  89. package/dist/test/platform-matter.test.js.map +1 -0
  90. package/dist/test/platform-matter.unregister.test.d.ts +2 -0
  91. package/dist/test/platform-matter.unregister.test.d.ts.map +1 -0
  92. package/dist/test/platform-matter.unregister.test.js +30 -0
  93. package/dist/test/platform-matter.unregister.test.js.map +1 -0
  94. package/dist/utils.d.ts +127 -0
  95. package/dist/utils.d.ts.map +1 -1
  96. package/dist/utils.js +380 -0
  97. package/dist/utils.js.map +1 -1
  98. package/dist/utils.test.d.ts +2 -0
  99. package/dist/utils.test.d.ts.map +1 -0
  100. package/dist/utils.test.js +95 -0
  101. package/dist/utils.test.js.map +1 -0
  102. package/dist/verifyconfig.test.js +2 -2
  103. package/dist/verifyconfig.test.js.map +1 -1
  104. package/docs/assets/main.js +2 -2
  105. package/docs/index.html +2 -2
  106. package/docs/variables/default.html +1 -1
  107. package/package.json +14 -14
  108. package/src/devices-hap/device.ts +68 -30
  109. package/src/devices-matter/BaseMatterAccessory.ts +168 -5
  110. package/src/devices-matter/ColorLightAccessory.ts +12 -12
  111. package/src/devices-matter/ColorTemperatureLightAccessory.ts +5 -7
  112. package/src/devices-matter/DimmableLightAccessory.ts +9 -9
  113. package/src/devices-matter/ExtendedColorLightAccessory.ts +14 -15
  114. package/src/devices-matter/OnOffLightAccessory.ts +8 -16
  115. package/src/devices-matter/OnOffOutletAccessory.ts +12 -7
  116. package/src/devices-matter/OnOffSwitchAccessory.ts +2 -2
  117. package/src/homebridge-ui/public/index.html +48 -1
  118. package/src/homebridge-ui/server.ts +37 -0
  119. package/src/index.test.ts +7 -2
  120. package/src/index.ts +4 -5
  121. package/src/irdevice/irdevice.ts +74 -35
  122. package/src/platform-hap.ts +68 -73
  123. package/src/platform-matter.ts +1772 -87
  124. package/src/settings.ts +13 -0
  125. package/src/test/devices-matter/baseMatterAccessory.test.ts +88 -0
  126. package/src/test/helpers/platform-fixtures.ts +33 -0
  127. package/src/test/platform-matter.additional.test.ts +44 -0
  128. package/src/test/platform-matter.bleparse.test.ts +47 -0
  129. package/src/test/platform-matter.cleanup.test.ts +86 -0
  130. package/src/test/platform-matter.keepstale.test.ts +37 -0
  131. package/src/test/platform-matter.mapping.test.ts +57 -0
  132. package/src/test/platform-matter.openapi-mapping.test.ts +109 -0
  133. package/src/test/platform-matter.test.ts +144 -0
  134. package/src/test/platform-matter.unregister.test.ts +39 -0
  135. package/src/utils.test.ts +96 -0
  136. package/src/utils.ts +391 -3
  137. package/src/verifyconfig.test.ts +11 -10
package/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. This project uses [Semantic Versioning](https://semver.org/)
4
4
 
5
+ ## [Unreleased]
6
+
7
+ ### What's Changed
8
+ - Matter platform: register only devices discovered via the SwitchBot OpenAPI by default. Per-device config overrides (by deviceId) are correctly merged into discovered devices.
9
+ - Add `options.allowConfigOnlyDevices` (boolean) to opt-in to registering devices that exist only in config (not discovered).
10
+ - Add unit tests for per-device merging and config-only behavior.
11
+ - Matter (Matter platform): default to discovery-first registration and automatically remove previously-registered "stale" accessories that are no longer discovered or configured.
12
+ - Add `options.keepStaleAccessories` (Advanced Settings) — opt-in to preserve previously-registered accessories when set to true. Default: false (stale accessories are removed automatically).
13
+ - Implement per-device OpenAPI polling with tracked timers and proper lifecycle cleanup (timers and BLE handlers cleared on unregister/shutdown).
14
+ - Centralize OpenAPI/BLE -> Matter mapping and expand BLE/OpenAPI parsing to include PM2.5/PM10/VOC/CO2, temperature/humidity, improved color parsing, and additional sensor/robot-vacuum fields.
15
+ - Prefer accessory-specific update helpers where available; fall back to generic Matter updates otherwise.
16
+ - Add unit tests covering BLE parsing, stale-accessory behavior, mapping helpers, and lifecycle cleanup.
17
+
5
18
  ## [4.3.1](https://github.com/OpenWonderLabs/homebridge-switchbot/releases/tag/v4.3.1) (2025-03-04)
6
19
 
7
20
  # *No New Releases During Lent*
@@ -22,7 +22,8 @@
22
22
  "type": "string",
23
23
  "pattern": "^[0-9A-Fa-f]+$",
24
24
  "x-schema-form": {
25
- "type": "token"
25
+ "type": "password",
26
+ "placeholder": "Paste your Open Token here"
26
27
  }
27
28
  },
28
29
  "secret": {
@@ -30,7 +31,8 @@
30
31
  "type": "string",
31
32
  "pattern": "^[0-9A-Fa-f]+$",
32
33
  "x-schema-form": {
33
- "type": "secret"
34
+ "type": "password",
35
+ "placeholder": "Paste your Open Secret here"
34
36
  }
35
37
  }
36
38
  }
@@ -38,6 +40,18 @@
38
40
  "options": {
39
41
  "type": "object",
40
42
  "properties": {
43
+ "matterBatchRefreshRate": {
44
+ "title": "Matter Batch Refresh Interval (seconds)",
45
+ "type": "number",
46
+ "placeholder": 300,
47
+ "description": "Platform-level interval for batched Matter device status refreshes. Devices with a per-device refreshRate will use their own timer and be excluded from the batch."
48
+ },
49
+ "matterBatchConcurrency": {
50
+ "title": "Matter Batch Concurrency",
51
+ "type": "number",
52
+ "placeholder": 5,
53
+ "description": "Maximum number of parallel OpenAPI status calls during a batch refresh."
54
+ },
41
55
  "devices": {
42
56
  "type": "array",
43
57
  "items": {
@@ -13077,6 +13091,16 @@
13077
13091
  }
13078
13092
  ]
13079
13093
  },
13094
+ "allowConfigOnlyDevices": {
13095
+ "title": "Allow Config-only Devices",
13096
+ "type": "boolean",
13097
+ "description": "If true, devices declared in options.devices that are not discovered by the SwitchBot OpenAPI will still be included (config-only devices). Default: false."
13098
+ },
13099
+ "keepStaleAccessories": {
13100
+ "title": "Keep Stale Accessories",
13101
+ "type": "boolean",
13102
+ "description": "If true, accessories that are no longer found via the SwitchBot OpenAPI will be kept in HomeKit. Default: false."
13103
+ },
13080
13104
  "allowInvalidCharacters": {
13081
13105
  "title": "Allow Invalid Characters",
13082
13106
  "type": "boolean",
@@ -14822,8 +14846,22 @@
14822
14846
  "key": "options.pushRate",
14823
14847
  "description": "<em class='primary-text'>Specifies the interval, in seconds, between pushes to the SwitchBot API.</em>"
14824
14848
  },
14825
- "options.logging",
14826
- "options.allowInvalidCharacters"
14849
+ {
14850
+ "key": "options.logging",
14851
+ "description": "<em class='primary-text'>Specifies the logging level for the plugin. Default: info.</em>"
14852
+ },
14853
+ {
14854
+ "key": "options.allowConfigOnlyDevices",
14855
+ "description": "<em class='primary-text'>If true, devices declared in options.devices that are not discovered by the SwitchBot OpenAPI will still be included (config-only devices). Default: false.</em>"
14856
+ },
14857
+ {
14858
+ "key": "options.keepStaleAccessories",
14859
+ "description": "<em class='primary-text'>If true, previously-registered accessories for devices that are no longer discovered or configured will be kept on the bridge. Default: false (stale accessories are removed automatically).</em>"
14860
+ },
14861
+ {
14862
+ "key": "options.allowInvalidCharacters",
14863
+ "description": "<em class='primary-text'>Allows device names with characters that are normally invalid in HomeKit. Use with caution, as this may lead to unexpected behavior.</em>"
14864
+ }
14827
14865
  ]
14828
14866
  }
14829
14867
  ]
@@ -92,6 +92,7 @@ export declare abstract class deviceBase {
92
92
  errorLog(...log: any[]): void;
93
93
  debugErrorLog(...log: any[]): void;
94
94
  debugLog(...log: any[]): void;
95
+ protected logWith(level: string, message: string, platformMethodName?: string, payload?: string): void;
95
96
  loggingIsDebug(): boolean;
96
97
  enablingDeviceLogging(): boolean;
97
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/devices-hap/device.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACtC,OAAO,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE3H,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAiG,aAAa,EAAyK,uBAAuB,EAAuB,MAAM,gBAAgB,CAAA;AAIvW,OAAO,EAAE,iBAAiB,EAAwD,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIxH,8BAAsB,UAAU;IAqC5B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB;IACjD,SAAS,CAAC,SAAS,EAAE,iBAAiB;IACtC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAtC1C,SAAgB,GAAG,EAAE,GAAG,CAAA;IACxB,SAAgB,GAAG,EAAE,OAAO,CAAA;IAC5B,SAAgB,MAAM,EAAG,uBAAuB,CAAA;IAChD,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IAG3B,SAAS,CAAC,aAAa,EAAG,MAAM,CAAA;IAChC,SAAS,CAAC,iBAAiB,EAAG,MAAM,CAAA;IACpC,SAAS,CAAC,gBAAgB,EAAG,MAAM,CAAA;IACnC,SAAS,CAAC,cAAc,EAAG,MAAM,CAAA;IACjC,SAAS,CAAC,gBAAgB,EAAG,MAAM,CAAA;IACnC,SAAS,CAAC,yBAAyB,EAAG,MAAM,CAAA;IAG5C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IAC/B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IAGnC,SAAS,CAAC,WAAW,EAAG,cAAc,CAAA;IACtC,SAAS,CAAC,cAAc,EAAG,iBAAiB,CAAA;IAG5C,SAAS,CAAC,aAAa,EAAG,MAAM,CAAA;IAChC,SAAS,CAAC,iBAAiB,EAAG,GAAG,CAAA;IACjC,SAAS,CAAC,oBAAoB,EAAG,GAAG,CAAA;IAGpC,SAAS,CAAC,YAAY,EAAG,MAAM,CAAA;IAG/B,SAAS,CAAC,cAAc,CAAC,EAAE,GAAG,CAAO;IAGrC,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAO;gBAGzB,QAAQ,EAAE,oBAAoB,EACvC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM,GAAG,aAAa;IA6BpC,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnE,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCpE,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE;YAAE,IAAI,GAAG,CAAC;YAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;SAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9F,WAAW,IAAI,MAAM;IAIf,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA4F5E;;;;;;;OAOG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM;IAgBvG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAY3C,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9D,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhG,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC;IAc5B,2BAA2B,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IA6BhF,mBAAmB,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB3D,iBAAiB,CAAC,CAAC,SAAS,YAAY,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,CAAA;KAAE,CAAC;IAKvI,mBAAmB,CAAC,CAAC,SAAS,YAAY,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAA;KAAE,CAAC;IAKlH,qBAAqB,CAAC,CAAC,SAAS;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,YAAY,EAAE,CAAC;IAI7E;;;;;;;;;;OAUG;IACG,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,mBAAmB,EAAE,mBAAmB,GAAG,SAAS,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9K,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB;IAMzE,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyS7F,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BnD;;OAEG;IACH,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,UAAU,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM/B,eAAe,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAQpC,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,YAAY,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAQjC,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7B,aAAa,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAQlC,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAU7B,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,OAAO;CAGjC"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/devices-hap/device.ts"],"names":[],"mappings":"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"}
@@ -237,11 +237,7 @@ export class deviceBase {
237
237
  this.device.bleMac = formattedDeviceId;
238
238
  this.debugLog(`bleMac: ${this.device.bleMac}`);
239
239
  this.historyService = device.history
240
- ? new this.platform.fakegatoAPI('room', accessory, {
241
- log: this.platform.log,
242
- storage: 'fs',
243
- filename: `${hostname().split('.')[0]}_${this.device.bleMac}_persist.json`,
244
- })
240
+ ? new this.platform.fakegatoAPI('room', accessory, { log: this.platform.log, storage: 'fs', filename: `${hostname().split('.')[0]}_${this.device.bleMac}_persist.json` })
245
241
  : null;
246
242
  }
247
243
  catch (error) {
@@ -689,53 +685,97 @@ export class deviceBase {
689
685
  * Logging for Device
690
686
  */
691
687
  infoLog(...log) {
692
- if (this.enablingDeviceLogging()) {
693
- this.log.info(`${this.device.deviceType}: ${this.accessory.displayName}`, String(...log));
688
+ if (!this.enablingDeviceLogging()) {
689
+ return;
694
690
  }
691
+ this.logWith('info', `${this.device.deviceType}: ${this.accessory.displayName}`, undefined, String(...log));
695
692
  }
696
693
  successLog(...log) {
697
- if (this.enablingDeviceLogging()) {
698
- this.log.success(`${this.device.deviceType}: ${this.accessory.displayName}`, String(...log));
694
+ if (!this.enablingDeviceLogging()) {
695
+ return;
699
696
  }
697
+ this.logWith('success', `${this.device.deviceType}: ${this.accessory.displayName}`, undefined, String(...log));
700
698
  }
701
699
  debugSuccessLog(...log) {
702
- if (this.enablingDeviceLogging()) {
703
- if (this.loggingIsDebug()) {
704
- this.log.success(`[DEBUG] ${this.device.deviceType}: ${this.accessory.displayName}`, String(...log));
705
- }
700
+ if (!this.enablingDeviceLogging()) {
701
+ return;
702
+ }
703
+ if (!this.loggingIsDebug()) {
704
+ return;
706
705
  }
706
+ this.logWith('success', `[DEBUG] ${this.device.deviceType}: ${this.accessory.displayName}`, 'debugSuccessLog', String(...log));
707
707
  }
708
708
  warnLog(...log) {
709
- if (this.enablingDeviceLogging()) {
710
- this.log.warn(`${this.device.deviceType}: ${this.accessory.displayName}`, String(...log));
709
+ if (!this.enablingDeviceLogging()) {
710
+ return;
711
711
  }
712
+ this.logWith('warn', `${this.device.deviceType}: ${this.accessory.displayName}`, undefined, String(...log));
712
713
  }
713
714
  debugWarnLog(...log) {
714
- if (this.enablingDeviceLogging()) {
715
- if (this.loggingIsDebug()) {
716
- this.log.warn(`[DEBUG] ${this.device.deviceType}: ${this.accessory.displayName}`, String(...log));
717
- }
715
+ if (!this.enablingDeviceLogging() || !this.loggingIsDebug()) {
716
+ return;
718
717
  }
718
+ this.logWith('warn', `[DEBUG] ${this.device.deviceType}: ${this.accessory.displayName}`, 'debugWarnLog', String(...log));
719
719
  }
720
720
  errorLog(...log) {
721
- if (this.enablingDeviceLogging()) {
722
- this.log.error(`${this.device.deviceType}: ${this.accessory.displayName}`, String(...log));
721
+ if (!this.enablingDeviceLogging()) {
722
+ return;
723
723
  }
724
+ this.logWith('error', `${this.device.deviceType}: ${this.accessory.displayName}`, undefined, String(...log));
724
725
  }
725
726
  debugErrorLog(...log) {
726
- if (this.enablingDeviceLogging()) {
727
- if (this.loggingIsDebug()) {
728
- this.log.error(`[DEBUG] ${this.device.deviceType}: ${this.accessory.displayName}`, String(...log));
729
- }
727
+ if (!this.enablingDeviceLogging() || !this.loggingIsDebug()) {
728
+ return;
730
729
  }
730
+ this.logWith('error', `[DEBUG] ${this.device.deviceType}: ${this.accessory.displayName}`, 'debugErrorLog', String(...log));
731
731
  }
732
732
  debugLog(...log) {
733
- if (this.enablingDeviceLogging()) {
734
- if (this.deviceLogging === 'debug') {
735
- this.log.info(`[DEBUG] ${this.device.deviceType}: ${this.accessory.displayName}`, String(...log));
733
+ if (!this.enablingDeviceLogging()) {
734
+ return;
735
+ }
736
+ // debug behaves differently depending on debug vs debugMode
737
+ if (this.deviceLogging === 'debug') {
738
+ this.logWith('debug', `[DEBUG] ${this.device.deviceType}: ${this.accessory.displayName}`, 'debugLog', String(...log));
739
+ }
740
+ else if (this.deviceLogging === 'debugMode') {
741
+ this.logWith('debug', `${this.device.deviceType}: ${this.accessory.displayName}`, 'debugLog', String(...log));
742
+ }
743
+ }
744
+ // Generic logger used by device log helpers. Attempts to call a platform
745
+ // helper method first (if present), then falls back to the local logger.
746
+ logWith(level, message, platformMethodName, payload) {
747
+ const method = platformMethodName ?? `${level}Log`;
748
+ const pFn = this.platform?.[method];
749
+ if (typeof pFn === 'function') {
750
+ try {
751
+ // Forward both a short message (title) and optional payload to the
752
+ // platform logger so it can format/attach metadata consistently.
753
+ if (payload !== undefined) {
754
+ pFn(message, payload);
755
+ }
756
+ else {
757
+ pFn(message);
758
+ }
759
+ return;
760
+ }
761
+ catch (_err) {
762
+ // fallthrough to local logger
763
+ }
764
+ }
765
+ const map = {
766
+ info: 'info',
767
+ success: 'success',
768
+ debug: 'debug',
769
+ warn: 'warn',
770
+ error: 'error',
771
+ };
772
+ const local = this.log[map[level] ?? level];
773
+ if (typeof local === 'function') {
774
+ if (payload !== undefined) {
775
+ local.call(this.log, message, payload);
736
776
  }
737
- else if (this.deviceLogging === 'debugMode') {
738
- this.log.debug(`${this.device.deviceType}: ${this.accessory.displayName}`, String(...log));
777
+ else {
778
+ local.call(this.log, message);
739
779
  }
740
780
  }
741
781
  }
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/devices-hap/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/devices-hap/device.ts"],"names":[],"mappings":"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"}
@@ -50,10 +50,33 @@ export declare abstract class BaseMatterAccessory implements MatterAccessory {
50
50
  /**
51
51
  * Log helper methods
52
52
  */
53
+ protected logWith(level: 'info' | 'error' | 'debug' | 'warn', message: string, ...args: unknown[]): void;
53
54
  protected logInfo(message: string, ...args: unknown[]): void;
54
55
  protected logError(message: string, ...args: unknown[]): void;
55
56
  protected logDebug(message: string, ...args: unknown[]): void;
56
57
  protected logWarn(message: string, ...args: unknown[]): void;
58
+ /**
59
+ * Logging helpers parity: allow Matter accessories to ask whether device-level
60
+ * logging is enabled or in debug mode. These mirror the helpers used by the
61
+ * HAP/IR device bases so behavior is consistent across platforms.
62
+ */
63
+ loggingIsDebug(): Promise<boolean>;
64
+ enablingDeviceLogging(): Promise<boolean>;
65
+ /**
66
+ * Convenience helpers that delegate OpenAPI/BLE commands to platform-provided
67
+ * functions that are injected into the accessory `context` by
68
+ * `platform-matter` when the accessory is created from a discovered device.
69
+ *
70
+ * These methods are intentionally thin wrappers — the platform controls
71
+ * retries, discovery and client lifecycle via the helper functions.
72
+ */
73
+ protected sendOpenAPICommand(command: string, parameter?: string): Promise<any>;
74
+ protected sendBLECommand(methodName: string, ...args: any[]): Promise<any>;
75
+ sendOnCommand(deviceId?: string): Promise<void>;
76
+ sendOffCommand(deviceId?: string): Promise<void>;
77
+ sendSetBrightness(percent: number, deviceId?: string): Promise<void>;
78
+ sendSetColor(r: number, g: number, b: number, deviceId?: string): Promise<void>;
79
+ sendSetColorTemperature(kelvin: number, deviceId?: string): Promise<void>;
57
80
  /**
58
81
  * Convert this class instance to a plain MatterAccessory object
59
82
  * This is what gets registered with Homebridge
@@ -1 +1 @@
1
- {"version":3,"file":"BaseMatterAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/BaseMatterAccessory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5E,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,YAAY,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,QAAQ,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;IACtC,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;CACjC;AAED;;;GAGG;AACH,8BAAsB,mBAAoB,YAAW,eAAe;IAElE,SAAgB,IAAI,EAAE,MAAM,CAAA;IAC5B,SAAgB,WAAW,EAAE,MAAM,CAAA;IACnC,SAAgB,UAAU,EAAE,YAAY,CAAA;IACxC,SAAgB,YAAY,EAAE,MAAM,CAAA;IACpC,SAAgB,YAAY,EAAE,MAAM,CAAA;IACpC,SAAgB,KAAK,EAAE,MAAM,CAAA;IAC7B,SAAgB,gBAAgB,EAAE,MAAM,CAAA;IACxC,SAAgB,gBAAgB,EAAE,MAAM,CAAA;IACxC,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChD,SAAgB,QAAQ,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;IACtD,SAAgB,QAAQ,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;IACtD,SAAgB,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IAGhD,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IAC3B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;gBAG5B,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,yBAAyB;IA6BnC;;;OAGG;cACa,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhG;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI5D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI7D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI7D,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI5D;;;OAGG;IACI,WAAW,IAAI,eAAe;CAgBtC"}
1
+ {"version":3,"file":"BaseMatterAccessory.d.ts","sourceRoot":"","sources":["../../src/devices-matter/BaseMatterAccessory.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  * Individual device types should extend this class and call super() with
8
8
  * the required configuration.
9
9
  */
10
+ import { rgb2hs } from '../utils.js';
10
11
  /**
11
12
  * Base class for all Matter accessories
12
13
  * Implements the MatterAccessory interface and provides common methods
@@ -59,22 +60,183 @@ export class BaseMatterAccessory {
59
60
  */
60
61
  async updateState(cluster, attributes) {
61
62
  await this.api.matter.updateAccessoryState(this.uuid, cluster, attributes);
62
- this.log.debug(`[${this.displayName}] Updated ${cluster} state:`, attributes);
63
+ this.logDebug(`Updated ${cluster} state:`, attributes);
63
64
  }
64
65
  /**
65
66
  * Log helper methods
66
67
  */
68
+ // Generic logging delegation: prefer platform-provided log helpers in
69
+ // `this.context` (infoLog/debugLog/warnLog/errorLog) and fall back to the
70
+ // local `this.log` methods when not available.
71
+ logWith(level, message, ...args) {
72
+ const ctx = this.context;
73
+ const map = {
74
+ info: 'infoLog',
75
+ error: 'errorLog',
76
+ debug: 'debugLog',
77
+ warn: 'warnLog',
78
+ };
79
+ const fn = ctx?.[map[level]];
80
+ if (typeof fn === 'function') {
81
+ fn(`[${this.displayName}] ${message}`, ...args);
82
+ return;
83
+ }
84
+ const local = this.log[level];
85
+ if (typeof local === 'function') {
86
+ local.call(this.log, `[${this.displayName}] ${message}`, ...args);
87
+ }
88
+ }
67
89
  logInfo(message, ...args) {
68
- this.log.info(`[${this.displayName}] ${message}`, ...args);
90
+ this.logWith('info', message, ...args);
69
91
  }
70
92
  logError(message, ...args) {
71
- this.log.error(`[${this.displayName}] ${message}`, ...args);
93
+ this.logWith('error', message, ...args);
72
94
  }
73
95
  logDebug(message, ...args) {
74
- this.log.debug(`[${this.displayName}] ${message}`, ...args);
96
+ this.logWith('debug', message, ...args);
75
97
  }
76
98
  logWarn(message, ...args) {
77
- this.log.warn(`[${this.displayName}] ${message}`, ...args);
99
+ this.logWith('warn', message, ...args);
100
+ }
101
+ /**
102
+ * Logging helpers parity: allow Matter accessories to ask whether device-level
103
+ * logging is enabled or in debug mode. These mirror the helpers used by the
104
+ * HAP/IR device bases so behavior is consistent across platforms.
105
+ */
106
+ async loggingIsDebug() {
107
+ const ctx = this.context;
108
+ const deviceLogging = ctx?.deviceLogging;
109
+ // deviceLogging may be a string ('debug', 'debugMode', 'standard') or undefined
110
+ return deviceLogging === 'debugMode' || deviceLogging === 'debug';
111
+ }
112
+ async enablingDeviceLogging() {
113
+ const ctx = this.context;
114
+ const deviceLogging = ctx?.deviceLogging;
115
+ // If deviceLogging isn't provided, fall back to the platform-wide flag
116
+ // that indicates whether platform logging is enabled.
117
+ if (deviceLogging === undefined) {
118
+ return Boolean(ctx?.platformLogging);
119
+ }
120
+ return deviceLogging === 'debugMode' || deviceLogging === 'debug' || deviceLogging === 'standard';
121
+ }
122
+ /**
123
+ * Convenience helpers that delegate OpenAPI/BLE commands to platform-provided
124
+ * functions that are injected into the accessory `context` by
125
+ * `platform-matter` when the accessory is created from a discovered device.
126
+ *
127
+ * These methods are intentionally thin wrappers — the platform controls
128
+ * retries, discovery and client lifecycle via the helper functions.
129
+ */
130
+ async sendOpenAPICommand(command, parameter = 'default') {
131
+ const ctx = this.context;
132
+ const fn = ctx?.sendOpenAPI;
133
+ if (typeof fn === 'function') {
134
+ return fn(command, parameter);
135
+ }
136
+ throw new Error('OpenAPI helper not available');
137
+ }
138
+ async sendBLECommand(methodName, ...args) {
139
+ const ctx = this.context;
140
+ const fn = ctx?.sendBLE;
141
+ if (typeof fn === 'function') {
142
+ return fn(methodName, ...args);
143
+ }
144
+ throw new Error('BLE helper not available');
145
+ }
146
+ async sendOnCommand(deviceId) {
147
+ const ctx = this.context;
148
+ const id = deviceId ?? ctx?.deviceId;
149
+ try {
150
+ if (ctx?.connectionType === 'BLE') {
151
+ await this.sendBLECommand('turnOn');
152
+ }
153
+ else {
154
+ await this.sendOpenAPICommand('turnOn');
155
+ }
156
+ // update our matter state
157
+ await this.updateState(this.api.matter.clusterNames.OnOff, { onOff: true });
158
+ this.logInfo(`sendOnCommand successful for ${id}`);
159
+ }
160
+ catch (e) {
161
+ this.logError(`sendOnCommand failed for ${id}: ${String(e?.message ?? e)}`);
162
+ throw e;
163
+ }
164
+ }
165
+ async sendOffCommand(deviceId) {
166
+ const ctx = this.context;
167
+ const id = deviceId ?? ctx?.deviceId;
168
+ try {
169
+ if (ctx?.connectionType === 'BLE') {
170
+ await this.sendBLECommand('turnOff');
171
+ }
172
+ else {
173
+ await this.sendOpenAPICommand('turnOff');
174
+ }
175
+ await this.updateState(this.api.matter.clusterNames.OnOff, { onOff: false });
176
+ this.logInfo(`sendOffCommand successful for ${id}`);
177
+ }
178
+ catch (e) {
179
+ this.logError(`sendOffCommand failed for ${id}: ${String(e?.message ?? e)}`);
180
+ throw e;
181
+ }
182
+ }
183
+ async sendSetBrightness(percent, deviceId) {
184
+ const ctx = this.context;
185
+ const id = deviceId ?? ctx?.deviceId;
186
+ try {
187
+ if (ctx?.connectionType === 'BLE') {
188
+ await this.sendBLECommand('setBrightness', percent);
189
+ }
190
+ else {
191
+ await this.sendOpenAPICommand('setBrightness', String(percent));
192
+ }
193
+ const level = Math.round((percent / 100) * 254);
194
+ await this.updateState(this.api.matter.clusterNames.LevelControl, { currentLevel: level });
195
+ this.logInfo(`sendSetBrightness successful for ${id}: ${percent}%`);
196
+ }
197
+ catch (e) {
198
+ this.logError(`sendSetBrightness failed for ${id}: ${String(e?.message ?? e)}`);
199
+ throw e;
200
+ }
201
+ }
202
+ async sendSetColor(r, g, b, deviceId) {
203
+ const ctx = this.context;
204
+ const id = deviceId ?? ctx?.deviceId;
205
+ try {
206
+ if (ctx?.connectionType === 'BLE') {
207
+ await this.sendBLECommand('setRGB', r, g, b);
208
+ }
209
+ else {
210
+ await this.sendOpenAPICommand('setColor', `${r}:${g}:${b}`);
211
+ }
212
+ // Convert to hue/sat for matter state update
213
+ const [h, s] = rgb2hs(r, g, b);
214
+ await this.updateState(this.api.matter.clusterNames.ColorControl, { currentHue: Math.round((h / 360) * 254), currentSaturation: Math.round((s / 100) * 254) });
215
+ this.logInfo(`sendSetColor successful for ${id}: ${r},${g},${b}`);
216
+ }
217
+ catch (e) {
218
+ this.logError(`sendSetColor failed for ${id}: ${String(e?.message ?? e)}`);
219
+ throw e;
220
+ }
221
+ }
222
+ async sendSetColorTemperature(kelvin, deviceId) {
223
+ const ctx = this.context;
224
+ const id = deviceId ?? ctx?.deviceId;
225
+ try {
226
+ if (ctx?.connectionType === 'BLE') {
227
+ await this.sendBLECommand('setColorTemperature', kelvin);
228
+ }
229
+ else {
230
+ await this.sendOpenAPICommand('setColorTemperature', `${kelvin}`);
231
+ }
232
+ const mireds = Math.round(1000000 / kelvin);
233
+ await this.updateState(this.api.matter.clusterNames.ColorControl, { colorTemperatureMireds: mireds });
234
+ this.logInfo(`sendSetColorTemperature successful for ${id}: ${kelvin}K`);
235
+ }
236
+ catch (e) {
237
+ this.logError(`sendSetColorTemperature failed for ${id}: ${String(e?.message ?? e)}`);
238
+ throw e;
239
+ }
78
240
  }
79
241
  /**
80
242
  * Convert this class instance to a plain MatterAccessory object