matterbridge 3.5.2 → 3.5.3-dev-20260202-e19e9b6

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 (280) hide show
  1. package/CHANGELOG.md +30 -1
  2. package/README-DOCKER.md +2 -2
  3. package/README.md +14 -9
  4. package/dist/broadcastServer.d.ts +0 -115
  5. package/dist/broadcastServer.js +0 -117
  6. package/dist/broadcastServerTypes.d.ts +0 -43
  7. package/dist/broadcastServerTypes.js +0 -24
  8. package/dist/checkUpdates.d.ts +0 -75
  9. package/dist/checkUpdates.js +1 -91
  10. package/dist/cli.d.ts +0 -24
  11. package/dist/cli.js +1 -97
  12. package/dist/cliEmitter.d.ts +0 -36
  13. package/dist/cliEmitter.js +0 -37
  14. package/dist/cliHistory.d.ts +0 -42
  15. package/dist/cliHistory.js +0 -38
  16. package/dist/clusters/export.d.ts +0 -1
  17. package/dist/clusters/export.js +0 -2
  18. package/dist/deviceManager.d.ts +0 -108
  19. package/dist/deviceManager.js +1 -114
  20. package/dist/devices/airConditioner.d.ts +0 -75
  21. package/dist/devices/airConditioner.js +0 -57
  22. package/dist/devices/basicVideoPlayer.d.ts +0 -58
  23. package/dist/devices/basicVideoPlayer.js +1 -56
  24. package/dist/devices/batteryStorage.d.ts +0 -43
  25. package/dist/devices/batteryStorage.js +1 -48
  26. package/dist/devices/castingVideoPlayer.d.ts +0 -63
  27. package/dist/devices/castingVideoPlayer.js +2 -65
  28. package/dist/devices/cooktop.d.ts +0 -55
  29. package/dist/devices/cooktop.js +0 -56
  30. package/dist/devices/dishwasher.d.ts +0 -55
  31. package/dist/devices/dishwasher.js +0 -57
  32. package/dist/devices/evse.d.ts +0 -57
  33. package/dist/devices/evse.js +10 -74
  34. package/dist/devices/export.d.ts +0 -1
  35. package/dist/devices/export.js +0 -5
  36. package/dist/devices/extractorHood.d.ts +0 -41
  37. package/dist/devices/extractorHood.js +0 -43
  38. package/dist/devices/heatPump.d.ts +0 -43
  39. package/dist/devices/heatPump.js +2 -50
  40. package/dist/devices/laundryDryer.d.ts +0 -58
  41. package/dist/devices/laundryDryer.js +3 -62
  42. package/dist/devices/laundryWasher.d.ts +0 -64
  43. package/dist/devices/laundryWasher.js +4 -70
  44. package/dist/devices/microwaveOven.d.ts +1 -77
  45. package/dist/devices/microwaveOven.js +5 -88
  46. package/dist/devices/oven.d.ts +0 -82
  47. package/dist/devices/oven.js +0 -85
  48. package/dist/devices/refrigerator.d.ts +0 -100
  49. package/dist/devices/refrigerator.js +0 -102
  50. package/dist/devices/roboticVacuumCleaner.d.ts +0 -83
  51. package/dist/devices/roboticVacuumCleaner.js +9 -100
  52. package/dist/devices/solarPower.d.ts +0 -36
  53. package/dist/devices/solarPower.js +0 -38
  54. package/dist/devices/speaker.d.ts +0 -79
  55. package/dist/devices/speaker.js +0 -84
  56. package/dist/devices/temperatureControl.d.ts +0 -21
  57. package/dist/devices/temperatureControl.js +3 -24
  58. package/dist/devices/waterHeater.d.ts +0 -74
  59. package/dist/devices/waterHeater.js +2 -82
  60. package/dist/dgram/export.d.ts +0 -1
  61. package/dist/dgram/export.js +0 -1
  62. package/dist/frontend.d.ts +0 -187
  63. package/dist/frontend.js +37 -498
  64. package/dist/frontendTypes.d.ts +0 -57
  65. package/dist/frontendTypes.js +0 -45
  66. package/dist/helpers.d.ts +0 -43
  67. package/dist/helpers.js +0 -54
  68. package/dist/index.d.ts +0 -23
  69. package/dist/index.js +0 -25
  70. package/dist/jestutils/export.d.ts +0 -1
  71. package/dist/jestutils/export.js +0 -1
  72. package/dist/jestutils/jestHelpers.d.ts +0 -255
  73. package/dist/jestutils/jestHelpers.js +15 -371
  74. package/dist/logger/export.d.ts +0 -1
  75. package/dist/logger/export.js +0 -1
  76. package/dist/matter/behaviors.d.ts +0 -1
  77. package/dist/matter/behaviors.js +0 -2
  78. package/dist/matter/clusters.d.ts +0 -1
  79. package/dist/matter/clusters.js +0 -2
  80. package/dist/matter/devices.d.ts +0 -1
  81. package/dist/matter/devices.js +0 -2
  82. package/dist/matter/endpoints.d.ts +0 -1
  83. package/dist/matter/endpoints.js +0 -2
  84. package/dist/matter/export.d.ts +0 -1
  85. package/dist/matter/export.js +0 -2
  86. package/dist/matter/types.d.ts +0 -1
  87. package/dist/matter/types.js +0 -2
  88. package/dist/matterNode.d.ts +0 -258
  89. package/dist/matterNode.js +8 -359
  90. package/dist/matterbridge.d.ts +0 -373
  91. package/dist/matterbridge.js +46 -854
  92. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -42
  93. package/dist/matterbridgeAccessoryPlatform.js +0 -50
  94. package/dist/matterbridgeBehaviors.d.ts +0 -24
  95. package/dist/matterbridgeBehaviors.js +5 -65
  96. package/dist/matterbridgeDeviceTypes.d.ts +0 -649
  97. package/dist/matterbridgeDeviceTypes.js +6 -673
  98. package/dist/matterbridgeDynamicPlatform.d.ts +0 -42
  99. package/dist/matterbridgeDynamicPlatform.js +0 -50
  100. package/dist/matterbridgeEndpoint.d.ts +0 -1369
  101. package/dist/matterbridgeEndpoint.js +54 -1507
  102. package/dist/matterbridgeEndpointHelpers.d.ts +0 -425
  103. package/dist/matterbridgeEndpointHelpers.js +20 -482
  104. package/dist/matterbridgeEndpointTypes.d.ts +0 -70
  105. package/dist/matterbridgeEndpointTypes.js +0 -25
  106. package/dist/matterbridgePlatform.d.ts +0 -434
  107. package/dist/matterbridgePlatform.js +1 -472
  108. package/dist/matterbridgePlatformTypes.d.ts +0 -29
  109. package/dist/matterbridgePlatformTypes.js +0 -24
  110. package/dist/matterbridgeTypes.d.ts +0 -46
  111. package/dist/matterbridgeTypes.js +0 -26
  112. package/dist/mb_coap.d.ts +0 -23
  113. package/dist/mb_coap.js +3 -41
  114. package/dist/mb_health.d.ts +0 -67
  115. package/dist/mb_health.js +0 -70
  116. package/dist/mb_mdns.d.ts +0 -23
  117. package/dist/mb_mdns.js +36 -94
  118. package/dist/pluginManager.d.ts +0 -305
  119. package/dist/pluginManager.js +5 -342
  120. package/dist/shelly.d.ts +0 -157
  121. package/dist/shelly.js +7 -178
  122. package/dist/spawn.d.ts +0 -32
  123. package/dist/spawn.js +1 -71
  124. package/dist/storage/export.d.ts +0 -1
  125. package/dist/storage/export.js +0 -1
  126. package/dist/utils/export.d.ts +0 -1
  127. package/dist/utils/export.js +0 -1
  128. package/dist/worker.d.ts +0 -61
  129. package/dist/worker.js +4 -65
  130. package/dist/workerCheckUpdates.d.ts +0 -24
  131. package/dist/workerCheckUpdates.js +5 -36
  132. package/dist/workerGlobalPrefix.d.ts +0 -24
  133. package/dist/workerGlobalPrefix.js +5 -36
  134. package/dist/workerTypes.d.ts +0 -25
  135. package/dist/workerTypes.js +0 -24
  136. package/frontend/build/assets/index.js +4 -4
  137. package/frontend/build/assets/vendor_emotion.js +1 -1
  138. package/frontend/build/assets/vendor_lodash.js +1 -1
  139. package/frontend/build/assets/vendor_mdi.js +1 -1
  140. package/frontend/build/assets/vendor_mui.js +22 -22
  141. package/frontend/build/assets/vendor_node_modules.js +20 -20
  142. package/frontend/build/assets/vendor_notistack.js +2 -2
  143. package/frontend/build/assets/vendor_qrcode.js +1 -1
  144. package/frontend/build/assets/vendor_rjsf.js +8 -8
  145. package/frontend/build/index.html +1 -1
  146. package/frontend/package.json +48 -47
  147. package/npm-shrinkwrap.json +77 -47
  148. package/package.json +7 -7
  149. package/dist/broadcastServer.d.ts.map +0 -1
  150. package/dist/broadcastServer.js.map +0 -1
  151. package/dist/broadcastServerTypes.d.ts.map +0 -1
  152. package/dist/broadcastServerTypes.js.map +0 -1
  153. package/dist/checkUpdates.d.ts.map +0 -1
  154. package/dist/checkUpdates.js.map +0 -1
  155. package/dist/cli.d.ts.map +0 -1
  156. package/dist/cli.js.map +0 -1
  157. package/dist/cliEmitter.d.ts.map +0 -1
  158. package/dist/cliEmitter.js.map +0 -1
  159. package/dist/cliHistory.d.ts.map +0 -1
  160. package/dist/cliHistory.js.map +0 -1
  161. package/dist/clusters/export.d.ts.map +0 -1
  162. package/dist/clusters/export.js.map +0 -1
  163. package/dist/deviceManager.d.ts.map +0 -1
  164. package/dist/deviceManager.js.map +0 -1
  165. package/dist/devices/airConditioner.d.ts.map +0 -1
  166. package/dist/devices/airConditioner.js.map +0 -1
  167. package/dist/devices/basicVideoPlayer.d.ts.map +0 -1
  168. package/dist/devices/basicVideoPlayer.js.map +0 -1
  169. package/dist/devices/batteryStorage.d.ts.map +0 -1
  170. package/dist/devices/batteryStorage.js.map +0 -1
  171. package/dist/devices/castingVideoPlayer.d.ts.map +0 -1
  172. package/dist/devices/castingVideoPlayer.js.map +0 -1
  173. package/dist/devices/cooktop.d.ts.map +0 -1
  174. package/dist/devices/cooktop.js.map +0 -1
  175. package/dist/devices/dishwasher.d.ts.map +0 -1
  176. package/dist/devices/dishwasher.js.map +0 -1
  177. package/dist/devices/evse.d.ts.map +0 -1
  178. package/dist/devices/evse.js.map +0 -1
  179. package/dist/devices/export.d.ts.map +0 -1
  180. package/dist/devices/export.js.map +0 -1
  181. package/dist/devices/extractorHood.d.ts.map +0 -1
  182. package/dist/devices/extractorHood.js.map +0 -1
  183. package/dist/devices/heatPump.d.ts.map +0 -1
  184. package/dist/devices/heatPump.js.map +0 -1
  185. package/dist/devices/laundryDryer.d.ts.map +0 -1
  186. package/dist/devices/laundryDryer.js.map +0 -1
  187. package/dist/devices/laundryWasher.d.ts.map +0 -1
  188. package/dist/devices/laundryWasher.js.map +0 -1
  189. package/dist/devices/microwaveOven.d.ts.map +0 -1
  190. package/dist/devices/microwaveOven.js.map +0 -1
  191. package/dist/devices/oven.d.ts.map +0 -1
  192. package/dist/devices/oven.js.map +0 -1
  193. package/dist/devices/refrigerator.d.ts.map +0 -1
  194. package/dist/devices/refrigerator.js.map +0 -1
  195. package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
  196. package/dist/devices/roboticVacuumCleaner.js.map +0 -1
  197. package/dist/devices/solarPower.d.ts.map +0 -1
  198. package/dist/devices/solarPower.js.map +0 -1
  199. package/dist/devices/speaker.d.ts.map +0 -1
  200. package/dist/devices/speaker.js.map +0 -1
  201. package/dist/devices/temperatureControl.d.ts.map +0 -1
  202. package/dist/devices/temperatureControl.js.map +0 -1
  203. package/dist/devices/waterHeater.d.ts.map +0 -1
  204. package/dist/devices/waterHeater.js.map +0 -1
  205. package/dist/dgram/export.d.ts.map +0 -1
  206. package/dist/dgram/export.js.map +0 -1
  207. package/dist/frontend.d.ts.map +0 -1
  208. package/dist/frontend.js.map +0 -1
  209. package/dist/frontendTypes.d.ts.map +0 -1
  210. package/dist/frontendTypes.js.map +0 -1
  211. package/dist/helpers.d.ts.map +0 -1
  212. package/dist/helpers.js.map +0 -1
  213. package/dist/index.d.ts.map +0 -1
  214. package/dist/index.js.map +0 -1
  215. package/dist/jestutils/export.d.ts.map +0 -1
  216. package/dist/jestutils/export.js.map +0 -1
  217. package/dist/jestutils/jestHelpers.d.ts.map +0 -1
  218. package/dist/jestutils/jestHelpers.js.map +0 -1
  219. package/dist/logger/export.d.ts.map +0 -1
  220. package/dist/logger/export.js.map +0 -1
  221. package/dist/matter/behaviors.d.ts.map +0 -1
  222. package/dist/matter/behaviors.js.map +0 -1
  223. package/dist/matter/clusters.d.ts.map +0 -1
  224. package/dist/matter/clusters.js.map +0 -1
  225. package/dist/matter/devices.d.ts.map +0 -1
  226. package/dist/matter/devices.js.map +0 -1
  227. package/dist/matter/endpoints.d.ts.map +0 -1
  228. package/dist/matter/endpoints.js.map +0 -1
  229. package/dist/matter/export.d.ts.map +0 -1
  230. package/dist/matter/export.js.map +0 -1
  231. package/dist/matter/types.d.ts.map +0 -1
  232. package/dist/matter/types.js.map +0 -1
  233. package/dist/matterNode.d.ts.map +0 -1
  234. package/dist/matterNode.js.map +0 -1
  235. package/dist/matterbridge.d.ts.map +0 -1
  236. package/dist/matterbridge.js.map +0 -1
  237. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  238. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  239. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  240. package/dist/matterbridgeBehaviors.js.map +0 -1
  241. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  242. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  243. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  244. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  245. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  246. package/dist/matterbridgeEndpoint.js.map +0 -1
  247. package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
  248. package/dist/matterbridgeEndpointHelpers.js.map +0 -1
  249. package/dist/matterbridgeEndpointTypes.d.ts.map +0 -1
  250. package/dist/matterbridgeEndpointTypes.js.map +0 -1
  251. package/dist/matterbridgePlatform.d.ts.map +0 -1
  252. package/dist/matterbridgePlatform.js.map +0 -1
  253. package/dist/matterbridgePlatformTypes.d.ts.map +0 -1
  254. package/dist/matterbridgePlatformTypes.js.map +0 -1
  255. package/dist/matterbridgeTypes.d.ts.map +0 -1
  256. package/dist/matterbridgeTypes.js.map +0 -1
  257. package/dist/mb_coap.d.ts.map +0 -1
  258. package/dist/mb_coap.js.map +0 -1
  259. package/dist/mb_health.d.ts.map +0 -1
  260. package/dist/mb_health.js.map +0 -1
  261. package/dist/mb_mdns.d.ts.map +0 -1
  262. package/dist/mb_mdns.js.map +0 -1
  263. package/dist/pluginManager.d.ts.map +0 -1
  264. package/dist/pluginManager.js.map +0 -1
  265. package/dist/shelly.d.ts.map +0 -1
  266. package/dist/shelly.js.map +0 -1
  267. package/dist/spawn.d.ts.map +0 -1
  268. package/dist/spawn.js.map +0 -1
  269. package/dist/storage/export.d.ts.map +0 -1
  270. package/dist/storage/export.js.map +0 -1
  271. package/dist/utils/export.d.ts.map +0 -1
  272. package/dist/utils/export.js.map +0 -1
  273. package/dist/worker.d.ts.map +0 -1
  274. package/dist/worker.js.map +0 -1
  275. package/dist/workerCheckUpdates.d.ts.map +0 -1
  276. package/dist/workerCheckUpdates.js.map +0 -1
  277. package/dist/workerGlobalPrefix.d.ts.map +0 -1
  278. package/dist/workerGlobalPrefix.js.map +0 -1
  279. package/dist/workerTypes.d.ts.map +0 -1
  280. package/dist/workerTypes.js.map +0 -1
@@ -1,26 +1,3 @@
1
- /**
2
- * This file contains the class Matterbridge.
3
- *
4
- * @file matterbridge.ts
5
- * @author Luca Liguori
6
- * @created 2023-12-29
7
- * @version 1.6.2
8
- * @license Apache-2.0
9
- *
10
- * Copyright 2023, 2024, 2025 Luca Liguori.
11
- *
12
- * Licensed under the Apache License, Version 2.0 (the "License");
13
- * you may not use this file except in compliance with the License.
14
- * You may obtain a copy of the License at
15
- *
16
- * http://www.apache.org/licenses/LICENSE-2.0
17
- *
18
- * Unless required by applicable law or agreed to in writing, software
19
- * distributed under the License is distributed on an "AS IS" BASIS,
20
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
- * See the License for the specific language governing permissions and
22
- * limitations under the License.
23
- */
24
1
  import EventEmitter from 'node:events';
25
2
  import { AnsiLogger, LogLevel } from 'node-ansi-logger';
26
3
  import { NodeStorageManager, NodeStorage } from 'node-persist-manager';
@@ -36,9 +13,6 @@ import { DeviceManager } from './deviceManager.js';
36
13
  import { MatterbridgeEndpoint } from './matterbridgeEndpoint.js';
37
14
  import { Frontend } from './frontend.js';
38
15
  import { PlatformMatterbridge } from './matterbridgePlatformTypes.js';
39
- /**
40
- * Represents the Matterbridge events.
41
- */
42
16
  interface MatterbridgeEvents {
43
17
  shutdown: [];
44
18
  restart: [];
@@ -58,66 +32,40 @@ interface MatterbridgeEvents {
58
32
  takeheapsnapshot: [];
59
33
  triggergarbagecollection: [];
60
34
  }
61
- /**
62
- * Represents the Matterbridge application.
63
- */
64
35
  export declare class Matterbridge extends EventEmitter<MatterbridgeEvents> {
65
- /** Matterbridge system information */
66
36
  systemInformation: SystemInformation;
67
- /** It indicates the home directory of the Matterbridge application. The home directory is the base directory where Matterbridge creates the matterbridge directories (os.homedir() if not overridden). */
68
37
  homeDirectory: string;
69
- /** It indicates the root directory of the Matterbridge application. The root directory is the directory where Matterbridge is executed. */
70
38
  rootDirectory: string;
71
- /** It indicates where the directory .matterbridge is located. */
72
39
  matterbridgeDirectory: string;
73
- /** It indicates where the directory Matterbridge is located. */
74
40
  matterbridgePluginDirectory: string;
75
- /** It indicates where the directory .mattercert is located. */
76
41
  matterbridgeCertDirectory: string;
77
- /** It indicates the global modules directory for npm. */
78
42
  globalModulesDirectory: string;
79
43
  matterbridgeVersion: string;
80
44
  matterbridgeLatestVersion: string;
81
45
  matterbridgeDevVersion: string;
82
46
  frontendVersion: string;
83
- /** It indicates the mode of the Matterbridge instance. It can be 'bridge', 'childbridge', 'controller' or ''. */
84
47
  bridgeMode: 'bridge' | 'childbridge' | 'controller' | '';
85
- /** It indicates the restart mode of the Matterbridge instance. It can be 'service', 'docker' or ''. */
86
48
  restartMode: 'service' | 'docker' | '';
87
- /** It indicates whether virtual mode is enabled and its type. The virtual mode control the creation of "Update matterbridge" and "Restart matterbridge" endpoints. */
88
49
  virtualMode: 'disabled' | 'outlet' | 'light' | 'switch' | 'mounted_switch';
89
- /** It indicates the Matterbridge profile in use. */
90
50
  readonly profile: string | undefined;
91
- /** Matterbridge logger */
92
51
  readonly log: AnsiLogger;
93
- /** Matterbridge logger level */
94
52
  logLevel: LogLevel;
95
- /** Whether to log to a file */
96
53
  fileLogger: boolean;
97
- /** Matter logger */
98
54
  readonly matterLog: AnsiLogger;
99
- /** Matter logger level */
100
55
  matterLogLevel: LogLevel;
101
- /** Whether to log Matter to a file */
102
56
  matterFileLogger: boolean;
103
57
  readonly readOnly: boolean;
104
58
  readonly shellyBoard: boolean;
105
59
  shellySysUpdate: boolean;
106
60
  shellyMainUpdate: boolean;
107
- /** It indicates whether a restart is required. It can be unset in childbridge mode by restarting the plugin that triggered the restart. */
108
61
  restartRequired: boolean;
109
- /** It indicates whether a fixed restart is required. It cannot be unset once set. */
110
62
  fixedRestartRequired: boolean;
111
- /** It indicates whether an update is available. */
112
63
  updateRequired: boolean;
113
64
  readonly plugins: PluginManager;
114
65
  readonly devices: DeviceManager;
115
66
  readonly frontend: Frontend;
116
- /** Matterbridge node storage manager created in the directory 'storage' in matterbridgeDirectory */
117
67
  nodeStorage: NodeStorageManager | undefined;
118
- /** Matterbridge node context created with name 'matterbridge' */
119
68
  nodeContext: NodeStorage | undefined;
120
- /** The main instance of the Matterbridge class (singleton) */
121
69
  protected static instance: Matterbridge | undefined;
122
70
  shutdown: boolean;
123
71
  private readonly failCountLimit;
@@ -133,32 +81,19 @@ export declare class Matterbridge extends EventEmitter<MatterbridgeEvents> {
133
81
  private sigtermHandler;
134
82
  private exceptionHandler;
135
83
  private rejectionHandler;
136
- /** Matter environment default */
137
84
  private readonly environment;
138
- /** Matter storage service from environment default */
139
85
  matterStorageService: StorageService | undefined;
140
- /** Matter storage manager created with name 'Matterbridge' */
141
86
  matterStorageManager: StorageManager | undefined;
142
- /** Matter matterbridge storage context created in the storage manager with name 'persist' */
143
87
  matterbridgeContext: StorageContext | undefined;
144
88
  controllerContext: StorageContext | undefined;
145
- /** Matter mdns interface e.g. 'eth0' or 'wlan0' or 'Wi-Fi' */
146
89
  mdnsInterface: string | undefined;
147
- /** Matter listeningAddressIpv4 address */
148
90
  ipv4Address: string | undefined;
149
- /** Matter listeningAddressIpv6 address */
150
91
  ipv6Address: string | undefined;
151
- /** Matter commissioning port */
152
92
  port: number | undefined;
153
- /** Matter commissioning passcode */
154
93
  passcode: number | undefined;
155
- /** Matter commissioning discriminator */
156
94
  discriminator: number | undefined;
157
- /** Matter device certification */
158
95
  certification: DeviceCertification.Configuration | undefined;
159
- /** Matter server node in bridge mode */
160
96
  serverNode: ServerNode<ServerNode.RootEndpoint> | undefined;
161
- /** Matter aggregator node in bridge mode */
162
97
  aggregatorNode: Endpoint<AggregatorEndpoint> | undefined;
163
98
  aggregatorVendorId: VendorId;
164
99
  aggregatorVendorName: string;
@@ -167,362 +102,54 @@ export declare class Matterbridge extends EventEmitter<MatterbridgeEvents> {
167
102
  aggregatorDeviceType: DeviceTypeId;
168
103
  aggregatorSerialNumber: string | undefined;
169
104
  aggregatorUniqueId: string | undefined;
170
- /** Advertising nodes map: time advertising started keyed by storeId */
171
105
  advertisingNodes: Map<string, number>;
172
- /** Broadcast server */
173
106
  private readonly server;
174
107
  private readonly verbose;
175
- /** We load asyncronously so is private */
176
108
  private constructor();
177
- /** Close the broadcast server */
178
109
  destroy(): void;
179
- /**
180
- * Get a platform matterbridge object
181
- *
182
- * @returns {PlatformMatterbridge} The platform matterbridge object.
183
- */
184
110
  getPlatformMatterbridge(): PlatformMatterbridge;
185
- /**
186
- * Get a shared matterbridge object
187
- *
188
- * @returns {SharedMatterbridge} The shared matterbridge object.
189
- */
190
111
  getSharedMatterbridge(): SharedMatterbridge;
191
112
  private msgHandler;
192
- /**
193
- * Loads an instance of the Matterbridge class.
194
- * If an instance already exists, return that instance.
195
- *
196
- * @param {boolean} initialize - Whether to initialize the Matterbridge instance after loading. Defaults to false.
197
- * @returns {Matterbridge} A promise that resolves to the Matterbridge instance.
198
- */
199
113
  static loadInstance(initialize?: boolean): Promise<Matterbridge>;
200
- /**
201
- * Initializes the Matterbridge application.
202
- *
203
- * @remarks
204
- * This method performs the necessary setup and initialization steps for the Matterbridge application.
205
- * It displays the help information if the 'help' parameter is provided, sets up the logger, checks the
206
- * node version, registers signal handlers, initializes storage, and parses the command line.
207
- *
208
- * @returns {Promise<void>} A Promise that resolves when the initialization is complete.
209
- */
210
114
  private initialize;
211
- /**
212
- * Parses the command line arguments and performs the corresponding actions.
213
- *
214
- * @private
215
- * @returns {Promise<void>} A promise that resolves when the command line arguments have been processed, or the process exits.
216
- */
217
115
  private parseCommandLine;
218
- /**
219
- * Asynchronously loads and starts the registered plugins.
220
- *
221
- * This method is responsible for initializing and starting all enabled plugins.
222
- * It ensures that each plugin is properly loaded and started before the bridge starts.
223
- *
224
- * @param {boolean} [wait] - If true, the method will wait for all plugins to be fully loaded and started before resolving. Defaults to false.
225
- * @param {boolean} [start] - If true, the method will start the plugins after loading them. Defaults to true.
226
- * @returns {Promise<void>} A promise that resolves when all plugins have been loaded and started.
227
- */
228
116
  private startPlugins;
229
- /**
230
- * Registers the process handlers for uncaughtException, unhandledRejection, SIGINT and SIGTERM.
231
- * - When an uncaught exception occurs, the exceptionHandler logs the error message and stack trace.
232
- * - When an unhandled promise rejection occurs, the rejectionHandler logs the reason and stack trace.
233
- * - When either of SIGINT and SIGTERM signals are received, the cleanup method is called with an appropriate message.
234
- */
235
117
  private registerProcessHandlers;
236
- /**
237
- * Deregisters the process uncaughtException, unhandledRejection, SIGINT and SIGTERM signal handlers.
238
- */
239
118
  private deregisterProcessHandlers;
240
- /**
241
- * Logs the node and system information.
242
- *
243
- * @remarks
244
- * This method retrieves and logs various details about the host system, including:
245
- * - IP address information (IPv4, IPv6, MAC address)
246
- * - Node.js version
247
- * - Hostname and user information
248
- * - Operating system details (type, release, platform, architecture)
249
- * - Memory usage statistics
250
- * - Uptime information for both the system and the process
251
- */
252
119
  private logNodeAndSystemInfo;
253
- /**
254
- * Set the logger logLevel for the Matterbridge classes and call onChangeLoggerLevel() for each plugin.
255
- *
256
- * @param {LogLevel} logLevel The logger logLevel to set.
257
- * @returns {Promise<LogLevel>} A promise that resolves when the logLevel has been set.
258
- */
259
120
  setLogLevel(logLevel: LogLevel): Promise<LogLevel>;
260
- /**
261
- * Get the current logger logLevel.
262
- *
263
- * @returns {LogLevel} The current logger logLevel.
264
- */
265
121
  getLogLevel(): MaybePromise<LogLevel>;
266
- /**
267
- * Creates a MatterLogger function to show the matter.js log messages in AnsiLogger (for the frontend).
268
- * It also logs to file (matter.log) if fileLogger is true.
269
- *
270
- * @param {boolean} fileLogger - Whether to log to file or not.
271
- * @returns {Function} The MatterLogger function. \x1b[35m for violet \x1b[34m is blue
272
- */
273
122
  private createDestinationMatterLogger;
274
- /**
275
- * Restarts the process by exiting the current instance and loading a new instance (/api/restart).
276
- *
277
- * @returns {Promise<void>} A promise that resolves when the restart is completed.
278
- */
279
123
  restartProcess(): Promise<void>;
280
- /**
281
- * Shut down the process (/api/shutdown).
282
- *
283
- * @returns {Promise<void>} A promise that resolves when the shutdown is completed.
284
- */
285
124
  shutdownProcess(): Promise<void>;
286
- /**
287
- * Update matterbridge and shut down the process (virtual device 'Update Matterbridge').
288
- *
289
- * @returns {Promise<void>} A promise that resolves when the update is completed.
290
- */
291
125
  updateProcess(): Promise<void>;
292
- /**
293
- * Unregister all devices and shut down the process (/api/unregister).
294
- *
295
- * @param {number} [timeout] - The timeout duration to wait for the message exchange to complete in milliseconds. Default is 1000.
296
- *
297
- * @returns {Promise<void>} A promise that resolves when the cleanup is completed.
298
- */
299
126
  unregisterAndShutdownProcess(timeout?: number): Promise<void>;
300
- /**
301
- * Reset commissioning and shut down the process (/api/reset).
302
- *
303
- * @returns {Promise<void>} A promise that resolves when the cleanup is completed.
304
- */
305
127
  shutdownProcessAndReset(): Promise<void>;
306
- /**
307
- * Factory reset and shut down the process (/api/factory-reset).
308
- *
309
- * @returns {Promise<void>} A promise that resolves when the cleanup is completed.
310
- */
311
128
  shutdownProcessAndFactoryReset(): Promise<void>;
312
- /**
313
- * Cleans up the Matterbridge instance.
314
- *
315
- * @param {string} message - The cleanup message.
316
- * @param {boolean} [restart] - Indicates whether to restart the instance after cleanup. Default is `false`.
317
- * @param {number} [pause] - The pause in ms to wait for the message exchange to complete in milliseconds. Default is 1000.
318
- *
319
- * @returns {Promise<void>} A promise that resolves when the cleanup is completed.
320
- */
321
129
  private cleanup;
322
- /**
323
- * Starts the Matterbridge in bridge mode.
324
- *
325
- * @private
326
- * @returns {Promise<void>} A promise that resolves when the Matterbridge is started.
327
- */
328
130
  private startBridge;
329
- /**
330
- * Starts the Matterbridge in childbridge mode.
331
- *
332
- * @param {number} [delay] - The delay before starting the childbridge. Default is 1000 milliseconds.
333
- *
334
- * @returns {Promise<void>} A promise that resolves when the Matterbridge is started.
335
- */
336
131
  private startChildbridge;
337
- /**
338
- * Starts the Matterbridge controller.
339
- *
340
- * @private
341
- * @returns {Promise<void>} A promise that resolves when the Matterbridge is started.
342
- */
343
132
  private startController;
344
- /** */
345
- /** Matter.js methods */
346
- /** */
347
- /**
348
- * Starts the matter storage with name Matterbridge, create the matterbridge context and performs a backup.
349
- *
350
- * @returns {Promise<void>} - A promise that resolves when the storage is started.
351
- */
352
133
  private startMatterStorage;
353
- /**
354
- * Makes a backup copy of the specified matter storage directory.
355
- *
356
- * @param {string} storageName - The name of the storage directory to be backed up.
357
- * @param {string} backupName - The name of the backup directory to be created.
358
- * @private
359
- * @returns {Promise<void>} A promise that resolves when the has been done.
360
- */
361
134
  private backupMatterStorage;
362
- /**
363
- * Stops the matter storage.
364
- *
365
- * @returns {Promise<void>} A promise that resolves when the storage is stopped.
366
- */
367
135
  private stopMatterStorage;
368
- /**
369
- * Creates a server node storage context.
370
- *
371
- * @param {string} storeId - The storeId.
372
- * @param {string} deviceName - The name of the device.
373
- * @param {DeviceTypeId} deviceType - The device type of the device.
374
- * @param {number} vendorId - The vendor ID.
375
- * @param {string} vendorName - The vendor name.
376
- * @param {number} productId - The product ID.
377
- * @param {string} productName - The product name.
378
- * @param {string} [serialNumber] - The serial number of the device (optional).
379
- * @param {string} [uniqueId] - The unique ID of the device (optional).
380
- * @returns {Promise<StorageContext>} The storage context for the commissioning server.
381
- */
382
136
  private createServerNodeContext;
383
- /**
384
- * Creates a server node.
385
- *
386
- * @param {StorageContext} storageContext - The storage context for the server node.
387
- * @param {number} [port] - The port number for the server node. Defaults to 5540.
388
- * @param {number} [passcode] - The passcode for the server node. Defaults to 20242025.
389
- * @param {number} [discriminator] - The discriminator for the server node. Defaults to 3850.
390
- * @returns {Promise<ServerNode<ServerNode.RootEndpoint>>} A promise that resolves to the created server node.
391
- */
392
137
  private createServerNode;
393
- /**
394
- * Gets the matter sanitized data of the specified server node.
395
- *
396
- * @param {ServerNode} [serverNode] - The server node to start.
397
- * @returns {ApiMatter} The sanitized data of the server node.
398
- */
399
138
  getServerNodeData(serverNode: ServerNode<ServerNode.RootEndpoint>): ApiMatter;
400
- /**
401
- * Starts the specified server node.
402
- *
403
- * @param {ServerNode} [matterServerNode] - The server node to start.
404
- * @returns {Promise<void>} A promise that resolves when the server node has started.
405
- */
406
139
  private startServerNode;
407
- /**
408
- * Stops the specified server node.
409
- *
410
- * @param {ServerNode} matterServerNode - The server node to stop.
411
- * @param {number} [timeout] - The timeout in milliseconds for stopping the server node. Defaults to 10 seconds.
412
- * @returns {Promise<void>} A promise that resolves when the server node has stopped.
413
- */
414
140
  private stopServerNode;
415
- /**
416
- * Creates an aggregator node with the specified storage context.
417
- *
418
- * @param {StorageContext} storageContext - The storage context for the aggregator node.
419
- * @returns {Promise<Endpoint<AggregatorEndpoint>>} A promise that resolves to the created aggregator node.
420
- */
421
141
  private createAggregatorNode;
422
- /**
423
- * Creates and configures the server node for an accessory plugin for a given device.
424
- *
425
- * @param {Plugin} plugin - The plugin to configure.
426
- * @param {MatterbridgeEndpoint} device - The device to associate with the plugin.
427
- * @returns {Promise<void>} A promise that resolves when the server node for the accessory plugin is created and configured.
428
- */
429
142
  private createAccessoryPlugin;
430
- /**
431
- * Creates and configures the server node and the aggregator node for a dynamic plugin.
432
- *
433
- * @param {Plugin} plugin - The plugin to configure.
434
- * @returns {Promise<void>} A promise that resolves when the server node and the aggregator node for the dynamic plugin is created and configured.
435
- */
436
143
  private createDynamicPlugin;
437
- /**
438
- * Creates and configures the server node for a single not bridged device.
439
- *
440
- * @param {Plugin} plugin - The plugin to configure.
441
- * @param {MatterbridgeEndpoint} device - The device to associate with the plugin.
442
- * @returns {Promise<void>} A promise that resolves when the server node for the accessory plugin is created and configured.
443
- */
444
144
  private createDeviceServerNode;
445
- /**
446
- * Adds a MatterbridgeEndpoint to the specified plugin.
447
- *
448
- * @param {string} pluginName - The name of the plugin.
449
- * @param {MatterbridgeEndpoint} device - The device to add as a bridged endpoint.
450
- * @returns {Promise<void>} A promise that resolves when the bridged endpoint has been added.
451
- */
452
145
  addBridgedEndpoint(pluginName: string, device: MatterbridgeEndpoint): Promise<void>;
453
- /**
454
- * Removes a MatterbridgeEndpoint from the specified plugin.
455
- *
456
- * @param {string} pluginName - The name of the plugin.
457
- * @param {MatterbridgeEndpoint} device - The device to remove as a bridged endpoint.
458
- * @returns {Promise<void>} A promise that resolves when the bridged endpoint has been removed.
459
- */
460
146
  removeBridgedEndpoint(pluginName: string, device: MatterbridgeEndpoint): Promise<void>;
461
- /**
462
- * Removes all bridged endpoints from the specified plugin.
463
- *
464
- * @param {string} pluginName - The name of the plugin.
465
- * @param {number} [delay] - The delay in milliseconds between removing each bridged endpoint (default: 0).
466
- * @returns {Promise<void>} A promise that resolves when all bridged endpoints have been removed.
467
- *
468
- * @remarks
469
- * This method iterates through all devices in the DeviceManager and removes each bridged endpoint associated with the specified plugin.
470
- * It also applies a delay between each removal if specified.
471
- * The delay is useful to allow the controllers to receive a single subscription for each device removed.
472
- */
473
147
  removeAllBridgedEndpoints(pluginName: string, delay?: number): Promise<void>;
474
- /**
475
- * Registers a virtual device.
476
- * Virtual devices are only supported in bridge mode and childbridge mode with a DynamicPlatform.
477
- *
478
- * The virtual device is created as an instance of `Endpoint` with the provided device type.
479
- * When the virtual device is turned on, the provided callback function is executed.
480
- * The onOff state of the virtual device always reverts to false when the device is turned on.
481
- *
482
- * @param { string } pluginName - The name of the plugin to register the virtual device under.
483
- * @param { string } name - The name of the virtual device.
484
- * @param { 'light' | 'outlet' | 'switch' | 'mounted_switch' } type - The type of the virtual device.
485
- * @param { () => Promise<void> } callback - The callback to call when the virtual device is turned on.
486
- *
487
- * @returns {Promise<boolean>} A promise that resolves to true if the virtual device was successfully registered, false otherwise.
488
- *
489
- * @remarks
490
- * The virtual devices don't show up in the device list of the frontend.
491
- * Type 'switch' is not supported by Alexa and 'mounted_switch' is not supported by Apple Home.
492
- */
493
148
  addVirtualEndpoint(pluginName: string, name: string, type: 'light' | 'outlet' | 'switch' | 'mounted_switch', callback: () => Promise<void>): Promise<boolean>;
494
- /**
495
- * Subscribes to the attribute change event for the given device and plugin.
496
- * Specifically, it listens for changes in the 'reachable' attribute of the
497
- * BridgedDeviceBasicInformationServer cluster server of the bridged device or BasicInformationServer cluster server of server node.
498
- *
499
- * @param {Plugin} plugin - The plugin associated with the device.
500
- * @param {MatterbridgeEndpoint} device - The device to subscribe to attribute changes for.
501
- * @returns {Promise<void>} A promise that resolves when the subscription is set up.
502
- */
503
149
  private subscribeAttributeChanged;
504
- /**
505
- * Sanitizes the fabric information by converting bigint properties to strings because `res.json` doesn't support bigint.
506
- *
507
- * @param {ExposedFabricInformation[]} fabricInfo - The array of exposed fabric information objects.
508
- * @returns {SanitizedExposedFabricInformation[]} An array of sanitized exposed fabric information objects.
509
- */
510
150
  private sanitizeFabricInformations;
511
- /**
512
- * Sanitizes the session information by converting bigint properties to strings because `res.json` doesn't support bigint.
513
- *
514
- * @param {SessionsBehavior.Session[]} sessions - The array of session information objects.
515
- * @returns {SanitizedSession[]} An array of sanitized session information objects.
516
- */
517
151
  private sanitizeSessionInformation;
518
- /**
519
- * Sets the reachability of the specified aggregator node bridged devices and trigger.
520
- *
521
- * @param {Endpoint<AggregatorEndpoint>} aggregatorNode - The aggregator node to set the reachability for.
522
- * @param {boolean} reachable - A boolean indicating the reachability status to set.
523
- */
524
152
  private setAggregatorReachability;
525
153
  private getVendorIdName;
526
154
  }
527
155
  export {};
528
- //# sourceMappingURL=matterbridge.d.ts.map