matterbridge 1.5.10 → 1.6.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.
Files changed (47) hide show
  1. package/CHANGELOG.md +23 -3
  2. package/README-SERVICE.md +1 -1
  3. package/README.md +7 -7
  4. package/dist/cluster/export.js +1 -1
  5. package/dist/cluster/export.js.map +1 -1
  6. package/dist/defaultConfigSchema.d.ts.map +1 -1
  7. package/dist/defaultConfigSchema.js +9 -1
  8. package/dist/defaultConfigSchema.js.map +1 -1
  9. package/dist/matterbridge.d.ts +72 -47
  10. package/dist/matterbridge.d.ts.map +1 -1
  11. package/dist/matterbridge.js +144 -118
  12. package/dist/matterbridge.js.map +1 -1
  13. package/dist/matterbridgeDevice.d.ts +137 -1029
  14. package/dist/matterbridgeDevice.d.ts.map +1 -1
  15. package/dist/matterbridgeDevice.js +55 -361
  16. package/dist/matterbridgeDevice.js.map +1 -1
  17. package/dist/matterbridgeEdge.d.ts +90 -0
  18. package/dist/matterbridgeEdge.d.ts.map +1 -0
  19. package/dist/matterbridgeEdge.js +555 -0
  20. package/dist/matterbridgeEdge.js.map +1 -0
  21. package/dist/matterbridgeEndpoint.d.ts +5195 -0
  22. package/dist/matterbridgeEndpoint.d.ts.map +1 -0
  23. package/dist/matterbridgeEndpoint.js +2196 -0
  24. package/dist/matterbridgeEndpoint.js.map +1 -0
  25. package/dist/matterbridgeTypes.d.ts +5 -0
  26. package/dist/matterbridgeTypes.d.ts.map +1 -1
  27. package/dist/matterbridgeTypes.js.map +1 -1
  28. package/dist/matterbridgeWebsocket.d.ts +49 -0
  29. package/dist/matterbridgeWebsocket.d.ts.map +1 -0
  30. package/dist/matterbridgeWebsocket.js +145 -0
  31. package/dist/matterbridgeWebsocket.js.map +1 -0
  32. package/dist/pluginManager.d.ts +134 -1
  33. package/dist/pluginManager.d.ts.map +1 -1
  34. package/dist/pluginManager.js +145 -12
  35. package/dist/pluginManager.js.map +1 -1
  36. package/frontend/build/asset-manifest.json +3 -3
  37. package/frontend/build/index.html +1 -1
  38. package/frontend/build/static/js/{main.96d6324b.js → main.045d08f7.js} +3 -3
  39. package/frontend/build/static/js/main.045d08f7.js.map +1 -0
  40. package/npm-shrinkwrap.json +813 -6207
  41. package/package.json +2 -78
  42. package/dist/history/export.d.ts +0 -2
  43. package/dist/history/export.d.ts.map +0 -1
  44. package/dist/history/export.js +0 -2
  45. package/dist/history/export.js.map +0 -1
  46. package/frontend/build/static/js/main.96d6324b.js.map +0 -1
  47. /package/frontend/build/static/js/{main.96d6324b.js.LICENSE.txt → main.045d08f7.js.LICENSE.txt} +0 -0
package/CHANGELOG.md CHANGED
@@ -8,7 +8,7 @@ If you like this project and find it useful, please consider giving it a star on
8
8
 
9
9
  The Home Assistant Community Add-ons and plugins are not verified to work with Matterbridge. I strongly advise against using them. If you do use them and encounter an issue (which is likely because some do not meet the Matterbridge guidelines), please do not open an issue in the Matterbridge repository.
10
10
 
11
- If you want to run Matterbridge in Home Assistant please use the official add-on https://github.com/Luligu/matterbridge-home-assistant-addon.
11
+ If you want to run Matterbridge in Home Assistant please use the official add-on https://github.com/Luligu/matterbridge-home-assistant-addon that also has Ingress and side panel.
12
12
 
13
13
  ### New Apple firmware v. 18.0
14
14
 
@@ -16,9 +16,29 @@ Please read this: https://github.com/Luligu/matterbridge/discussions/135
16
16
 
17
17
  ### Discord
18
18
 
19
- Tamer (https://github.com/tammeryousef1006) has created the Matterbridge Discord group: https://discord.gg/raWywpD4.
19
+ Tamer (https://github.com/tammeryousef1006) has created the Matterbridge Discord group: https://discord.gg/QX58CDe6hd.
20
20
 
21
- Feel free to join!
21
+ Feel free to join (the link is now permanent)!
22
+
23
+ ## [1.6.0] - 2024-10-28
24
+
25
+ ### Added
26
+
27
+ - [matterbridge]: Added WebSocket for the Matetrbridge cockpit dashboard (Shelly gateway).
28
+
29
+ ### Changed
30
+
31
+ - [discord]: Discord group link: https://discord.gg/QX58CDe6hd.
32
+ - [matterbridge]: Completed phase 1 of transition to edge (matter.js new API).
33
+ - [matterbridgeDevice]: Refactor Thermostat cluster method to accept minHeatSetpointLimit, maxHeatSetpointLimit, minCoolSetpointLimit and maxCoolSetpointLimit.
34
+ - [config]: The plugins config is rewritten only after onStart and no more after onConfigure (after the plugin starts is possible to change the plugins config and it will not be rewritten after the plugin configuration).
35
+ - [matterbridgeDevice]: Removed deprecated methods of ColorControl cluster.
36
+ - [package]: Removed EveHistory (it will be used only by single plugins).
37
+ - [package]: Update dependencies.
38
+
39
+ <a href="https://www.buymeacoffee.com/luligugithub">
40
+ <img src="./yellow-button.png" alt="Buy me a coffee" width="120">
41
+ </a>
22
42
 
23
43
  ## [1.5.10] - 2024-10-01
24
44
 
package/README-SERVICE.md CHANGED
@@ -100,7 +100,7 @@ sudo systemctl disable matterbridge.service
100
100
  ### View the log of Matterbridge in real time (this will show the log with colors)
101
101
 
102
102
  ```
103
- sudo journalctl -u matterbridge.service -f --output cat
103
+ sudo journalctl -u matterbridge.service -n 1000 -f --output cat
104
104
  ```
105
105
 
106
106
  ### Delete the logs older then 3 days (all of them not only the ones of Matterbridge!)
package/README.md CHANGED
@@ -51,13 +51,13 @@ To run Matterbridge, you need either a [Node.js](https://nodejs.org/en/download/
51
51
  Follow these steps to install Matterbridge:
52
52
 
53
53
  ```
54
- npm install -g matterbridge
54
+ npm install -g matterbridge --omit=dev
55
55
  ```
56
56
 
57
57
  on Linux you may need the necessary permissions:
58
58
 
59
59
  ```
60
- sudo npm install -g matterbridge
60
+ sudo npm install -g matterbridge --omit=dev
61
61
  ```
62
62
 
63
63
  Test the installation with:
@@ -68,7 +68,7 @@ matterbridge
68
68
 
69
69
  Now it is possible to open the frontend at the link provided in the log (e.g. http://MATTERBIDGE-IPV4-ADDRESS:8283).
70
70
 
71
- You can then change the bridge mode from the frontend.
71
+ You can then change the bridge mode and other parameters from the frontend.
72
72
 
73
73
  ## Usage
74
74
 
@@ -128,19 +128,19 @@ Config editor:
128
128
 
129
129
  ### Run matterbridge as a daemon with systemctl (Linux only)
130
130
 
131
- [Advanced configurations](https://github.com/Luligu/matterbridge/blob/main/README-SERVICE.md)
131
+ [Service configurations](https://github.com/Luligu/matterbridge/blob/main/README-SERVICE.md)
132
132
 
133
133
  ### Run matterbridge with docker and docker compose
134
134
 
135
- [Advanced configurations](https://github.com/Luligu/matterbridge/blob/main/README-DOCKER.md)
135
+ [Docker configurations](https://github.com/Luligu/matterbridge/blob/main/README-DOCKER.md)
136
136
 
137
137
  ### Run matterbridge with podman
138
138
 
139
- [Advanced configurations](https://github.com/Luligu/matterbridge/blob/main/README-PODMAN.md)
139
+ [Podman configurations](https://github.com/Luligu/matterbridge/blob/main/README-PODMAN.md)
140
140
 
141
141
  ### Run matterbridge as an home assistant add-on with the official add-on
142
142
 
143
- [Advanced configurations](https://github.com/Luligu/matterbridge-home-assistant-addon)
143
+ [Home assistant add-on configurations](https://github.com/Luligu/matterbridge-home-assistant-addon)
144
144
 
145
145
  ### Other Home Assistant Community Add-ons
146
146
 
@@ -1,3 +1,3 @@
1
1
  export {};
2
- // Nothing to export
2
+ // Nothing to export right now
3
3
  //# sourceMappingURL=export.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/cluster/export.ts"],"names":[],"mappings":";AAAA,oBAAoB"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/cluster/export.ts"],"names":[],"mappings":";AAAA,8BAA8B"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaultConfigSchema.d.ts","sourceRoot":"","sources":["../src/defaultConfigSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,eAAO,MAAM,kBAAkB,EAAE,cAiBhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,cAWhC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cAwB3B,CAAC"}
1
+ {"version":3,"file":"defaultConfigSchema.d.ts","sourceRoot":"","sources":["../src/defaultConfigSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,eAAO,MAAM,kBAAkB,EAAE,cAiBhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,cAWhC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cAgC3B,CAAC"}
@@ -56,11 +56,19 @@ export const shelly_config = {
56
56
  username: '',
57
57
  password: '',
58
58
  exposeSwitch: 'switch',
59
+ switchList: [],
60
+ lightList: [],
61
+ outletList: [],
59
62
  exposeInput: 'momentary',
63
+ inputContactList: [],
64
+ inputMomentaryList: [],
65
+ inputLatchingList: [],
60
66
  exposeInputEvent: 'momentary',
61
- exposePowerMeter: 'disabled',
67
+ inputEventList: [],
68
+ exposePowerMeter: 'matter13',
62
69
  blackList: [],
63
70
  whiteList: [],
71
+ nocacheList: [],
64
72
  deviceIp: {},
65
73
  enableMdnsDiscover: true,
66
74
  enableStorageDiscover: true,
@@ -1 +1 @@
1
- {"version":3,"file":"defaultConfigSchema.js","sourceRoot":"","sources":["../src/defaultConfigSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,aAAa;IACpB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,gBAAgB,EAAE,EAAE;IACpB,sBAAsB,EAAE,EAAE;IAC1B,KAAK,EAAE,KAAK;IACZ,oBAAoB,EAAE,KAAK;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,gBAAgB,EAAE,EAAE;IACpB,KAAK,EAAE,KAAK;IACZ,oBAAoB,EAAE,KAAK;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,QAAQ;IACtB,WAAW,EAAE,WAAW;IACxB,gBAAgB,EAAE,WAAW;IAC7B,gBAAgB,EAAE,UAAU;IAC5B,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;IACZ,kBAAkB,EAAE,IAAI;IACxB,qBAAqB,EAAE,IAAI;IAC3B,oBAAoB,EAAE,KAAK;IAC3B,oBAAoB,EAAE,KAAK;IAC3B,iBAAiB,EAAE,IAAI;IACvB,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,KAAK;IACd,oBAAoB,EAAE,KAAK;CAC5B,CAAC"}
1
+ {"version":3,"file":"defaultConfigSchema.js","sourceRoot":"","sources":["../src/defaultConfigSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,aAAa;IACpB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,gBAAgB,EAAE,EAAE;IACpB,sBAAsB,EAAE,EAAE;IAC1B,KAAK,EAAE,KAAK;IACZ,oBAAoB,EAAE,KAAK;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,gBAAgB,EAAE,EAAE;IACpB,KAAK,EAAE,KAAK;IACZ,oBAAoB,EAAE,KAAK;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,QAAQ;IACtB,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,WAAW;IACxB,gBAAgB,EAAE,EAAE;IACpB,kBAAkB,EAAE,EAAE;IACtB,iBAAiB,EAAE,EAAE;IACrB,gBAAgB,EAAE,WAAW;IAC7B,cAAc,EAAE,EAAE;IAClB,gBAAgB,EAAE,UAAU;IAC5B,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,EAAE;IACf,QAAQ,EAAE,EAAE;IACZ,kBAAkB,EAAE,IAAI;IACxB,qBAAqB,EAAE,IAAI;IAC3B,oBAAoB,EAAE,KAAK;IAC3B,oBAAoB,EAAE,KAAK;IAC3B,iBAAiB,EAAE,IAAI;IACvB,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,KAAK;IACd,oBAAoB,EAAE,KAAK;CAC5B,CAAC"}
@@ -21,9 +21,17 @@
21
21
  * limitations under the License. *
22
22
  */
23
23
  import EventEmitter from 'events';
24
+ import WebSocket from 'ws';
25
+ import { NodeStorageManager, NodeStorage } from 'node-persist-manager';
24
26
  import { AnsiLogger } from 'node-ansi-logger';
25
27
  import { MatterbridgeDevice } from './matterbridgeDevice.js';
26
- import { MatterbridgeInformation, SanitizedExposedFabricInformation, SanitizedSessionInformation, SystemInformation } from './matterbridgeTypes.js';
28
+ import { BaseRegisteredPlugin, MatterbridgeInformation, SanitizedExposedFabricInformation, SanitizedSessionInformation, SystemInformation } from './matterbridgeTypes.js';
29
+ import { PluginManager } from './pluginManager.js';
30
+ import { DeviceManager } from './deviceManager.js';
31
+ import { CommissioningController, CommissioningServer, MatterServer } from '@project-chip/matter-node.js';
32
+ import { DeviceTypeId } from '@project-chip/matter-node.js/datatype';
33
+ import { Aggregator } from '@project-chip/matter-node.js/device';
34
+ import { StorageContext, StorageManager } from '@project-chip/matter-node.js/storage';
27
35
  /**
28
36
  * Represents the Matterbridge application.
29
37
  */
@@ -47,20 +55,18 @@ export declare class Matterbridge extends EventEmitter {
47
55
  restartMode: 'service' | 'docker' | '';
48
56
  profile: string | undefined;
49
57
  log: AnsiLogger;
50
- private matterbrideLoggerFile;
51
- private matterLoggerFile;
52
- private plugins;
53
- private devices;
54
- private nodeStorage;
55
- private nodeContext;
56
- private matterStorageName;
57
- private nodeStorageName;
58
+ protected matterbrideLoggerFile: string;
59
+ protected matterLoggerFile: string;
60
+ protected plugins: PluginManager;
61
+ protected devices: DeviceManager;
62
+ protected nodeStorage: NodeStorageManager | undefined;
63
+ protected nodeContext: NodeStorage | undefined;
64
+ protected matterStorageName: string;
65
+ protected nodeStorageName: string;
58
66
  private hasCleanupStarted;
59
67
  private initialized;
60
68
  private execRunningCount;
61
69
  private startMatterInterval;
62
- private cleanupTimeout1;
63
- private cleanupTimeout2;
64
70
  private checkUpdateInterval;
65
71
  private configureTimeout;
66
72
  private reachabilityTimeout;
@@ -70,21 +76,22 @@ export declare class Matterbridge extends EventEmitter {
70
76
  private httpServer;
71
77
  private httpsServer;
72
78
  private webSocketServer;
73
- private mdnsInterface;
74
- private ipv4address;
75
- private ipv6address;
76
- private port;
77
- private passcode?;
78
- private discriminator?;
79
- private storageManager;
80
- private matterbridgeContext;
81
- private mattercontrollerContext;
82
- private matterServer;
83
- private matterAggregator;
84
- private commissioningServer;
85
- private commissioningController;
86
- private static instance;
87
- private constructor();
79
+ protected mdnsInterface: string | undefined;
80
+ protected ipv4address: string | undefined;
81
+ protected ipv6address: string | undefined;
82
+ protected port: number;
83
+ protected passcode?: number;
84
+ protected discriminator?: number;
85
+ protected storageManager: StorageManager | undefined;
86
+ protected matterbridgeContext: StorageContext | undefined;
87
+ protected mattercontrollerContext: StorageContext | undefined;
88
+ protected matterServer: MatterServer | undefined;
89
+ protected matterAggregator: Aggregator | undefined;
90
+ protected commissioningServer: CommissioningServer | undefined;
91
+ protected commissioningController: CommissioningController | undefined;
92
+ protected static instance: Matterbridge | undefined;
93
+ protected constructor();
94
+ matterbridgeMessageHandler: (client: WebSocket, message: WebSocket.RawData) => Promise<void>;
88
95
  /** ***********************************************************************************************************************************/
89
96
  /** loadInstance() and cleanup() methods */
90
97
  /** ***********************************************************************************************************************************/
@@ -119,6 +126,15 @@ export declare class Matterbridge extends EventEmitter {
119
126
  * @returns {Promise<void>} A promise that resolves when the command line arguments have been processed, or the process exits.
120
127
  */
121
128
  private parseCommandLine;
129
+ /**
130
+ * Asynchronously loads and starts the registered plugins.
131
+ *
132
+ * This method is responsible for initializing and staarting all enabled plugins.
133
+ * It ensures that each plugin is properly loaded and started before the ridge starts.
134
+ *
135
+ * @returns {Promise<void>} A promise that resolves when all plugins have been loaded and started.
136
+ */
137
+ private startPlugins;
122
138
  /**
123
139
  * Registers the signal handlers for SIGINT and SIGTERM.
124
140
  * When either of these signals are received, the cleanup method is called with an appropriate message.
@@ -204,7 +220,7 @@ export declare class Matterbridge extends EventEmitter {
204
220
  * @param restart - Indicates whether to restart the instance after cleanup. Default is `false`.
205
221
  * @returns A promise that resolves when the cleanup is completed.
206
222
  */
207
- private cleanup;
223
+ protected cleanup(message: string, restart?: boolean): Promise<void>;
208
224
  /**
209
225
  * Adds a bridged device to the Matterbridge.
210
226
  * @param pluginName - The name of the plugin.
@@ -226,25 +242,24 @@ export declare class Matterbridge extends EventEmitter {
226
242
  * @returns A promise that resolves when all devices have been removed.
227
243
  */
228
244
  removeAllBridgedDevices(pluginName: string): Promise<void>;
229
- private startTest;
230
245
  /**
231
246
  * Starts the Matterbridge in bridge mode.
232
247
  * @private
233
248
  * @returns {Promise<void>} A promise that resolves when the Matterbridge is started.
234
249
  */
235
- private startBridge;
250
+ protected startBridge(): Promise<void>;
236
251
  /**
237
252
  * Starts the Matterbridge in childbridge mode.
238
253
  * @private
239
254
  * @returns {Promise<void>} A promise that resolves when the Matterbridge is started.
240
255
  */
241
- private startChildbridge;
256
+ protected startChildbridge(): Promise<void>;
242
257
  /**
243
258
  * Starts the Matterbridge controller.
244
259
  * @private
245
260
  * @returns {Promise<void>} A promise that resolves when the Matterbridge is started.
246
261
  */
247
- private startController;
262
+ protected startController(): Promise<void>;
248
263
  /** ***********************************************************************************************************************************/
249
264
  /** Matter.js methods */
250
265
  /** ***********************************************************************************************************************************/
@@ -254,40 +269,40 @@ export declare class Matterbridge extends EventEmitter {
254
269
  * @param {string} storageName - The name of the storage file.
255
270
  * @returns {Promise<void>} - A promise that resolves when the storage process is started.
256
271
  */
257
- private startMatterStorage;
272
+ protected startMatterStorage(storageType: string, storageName: string): Promise<void>;
258
273
  /**
259
274
  * Makes a backup copy of the specified matter JSON storage file.
260
275
  *
261
276
  * @param storageName - The name of the JSON storage file to be backed up.
262
277
  * @param backupName - The name of the backup file to be created.
263
278
  */
264
- private backupJsonMatterStorage;
279
+ protected backupMatterStorage(storageName: string, backupName: string): Promise<void>;
265
280
  /**
266
281
  * Stops the matter storage.
267
282
  * @returns {Promise<void>} A promise that resolves when the storage is stopped.
268
283
  */
269
- private stopMatterStorage;
284
+ protected stopMatterStorage(): Promise<void>;
270
285
  /**
271
286
  * Creates a Matter server using the provided storage manager and the provided mdnsInterface.
272
287
  * @param storageManager The storage manager to be used by the Matter server.
273
288
  *
274
289
  */
275
- private createMatterServer;
290
+ protected createMatterServer(storageManager: StorageManager): MatterServer;
276
291
  /**
277
292
  * Starts the Matter server.
278
293
  * If the Matter server is not initialized, it logs an error and performs cleanup.
279
294
  */
280
- private startMatterServer;
295
+ protected startMatterServer(): Promise<void>;
281
296
  /**
282
297
  * Stops the Matter server, commissioningServer and commissioningController.
283
298
  */
284
- private stopMatterServer;
299
+ protected stopMatterServer(): Promise<void>;
285
300
  /**
286
301
  * Creates a Matter Aggregator.
287
302
  * @param {StorageContext} context - The storage context.
288
303
  * @returns {Aggregator} - The created Matter Aggregator.
289
304
  */
290
- private createMatterAggregator;
305
+ protected createMatterAggregator(context: StorageContext, pluginName: string): Promise<Aggregator>;
291
306
  /**
292
307
  * Creates a matter commissioning server.
293
308
  *
@@ -295,7 +310,7 @@ export declare class Matterbridge extends EventEmitter {
295
310
  * @param {string} pluginName - The name of the commissioning server.
296
311
  * @returns {CommissioningServer} The created commissioning server.
297
312
  */
298
- private createCommisioningServer;
313
+ protected createCommisioningServer(context: StorageContext, pluginName: string): Promise<CommissioningServer>;
299
314
  /**
300
315
  * Creates a commissioning server storage context.
301
316
  *
@@ -314,7 +329,7 @@ export declare class Matterbridge extends EventEmitter {
314
329
  * @param hardwareVersionString - The hardware version string of the device (optional).
315
330
  * @returns The storage context for the commissioning server.
316
331
  */
317
- private createCommissioningServerContext;
332
+ protected createCommissioningServerContext(pluginName: string, deviceName: string, deviceType: DeviceTypeId, vendorId: number, vendorName: string, productId: number, productName: string): Promise<StorageContext>;
318
333
  /**
319
334
  * Imports the commissioning server context for a specific plugin and device.
320
335
  * @param pluginName - The name of the plugin.
@@ -322,7 +337,7 @@ export declare class Matterbridge extends EventEmitter {
322
337
  * @returns The commissioning server context.
323
338
  * @throws Error if the BasicInformationCluster is not found.
324
339
  */
325
- private importCommissioningServerContext;
340
+ protected importCommissioningServerContext(pluginName: string, device: MatterbridgeDevice): Promise<StorageContext>;
326
341
  /**
327
342
  * Shows the commissioning server QR code for a given plugin.
328
343
  * @param {CommissioningServer} commissioningServer - The commissioning server instance.
@@ -331,7 +346,7 @@ export declare class Matterbridge extends EventEmitter {
331
346
  * @param {string} pluginName - The name of the plugin of Matterbridge in bridge mode.
332
347
  * @returns {Promise<void>} - A promise that resolves when the QR code is shown.
333
348
  */
334
- private showCommissioningQRCode;
349
+ protected showCommissioningQRCode(commissioningServer: CommissioningServer | undefined, storageContext: StorageContext | undefined, nodeContext: NodeStorage | undefined, pluginName: string): Promise<void>;
335
350
  /**
336
351
  * Sanitizes the fabric information by converting bigint properties to string cause res.json doesn't know bigint.
337
352
  *
@@ -352,26 +367,26 @@ export declare class Matterbridge extends EventEmitter {
352
367
  * @param {CommissioningServer} commissioningServer - The commissioning server to set the reachability for.
353
368
  * @param {boolean} reachable - The new reachability status.
354
369
  */
355
- private setCommissioningServerReachability;
370
+ protected setCommissioningServerReachability(commissioningServer: CommissioningServer, reachable: boolean): void;
356
371
  /**
357
372
  * Sets the reachability of the specified matter aggregator and its bridged devices and trigger.
358
373
  * @param {Aggregator} matterAggregator - The matter aggregator to set the reachability for.
359
374
  * @param {boolean} reachable - A boolean indicating the reachability status to set.
360
375
  */
361
- private setAggregatorReachability;
376
+ protected setAggregatorReachability(matterAggregator: Aggregator, reachable: boolean): void;
362
377
  /**
363
378
  * Sets the reachability of a device and trigger.
364
379
  *
365
380
  * @param {MatterbridgeDevice} device - The device to set the reachability for.
366
381
  * @param {boolean} reachable - The new reachability status of the device.
367
382
  */
368
- private setDeviceReachability;
383
+ protected setDeviceReachability(device: MatterbridgeDevice, reachable: boolean): void;
369
384
  private getVendorIdName;
370
385
  /**
371
386
  * Retrieves the base registered plugins sanitized for res.json().
372
387
  * @returns {BaseRegisteredPlugin[]} A promise that resolves to an array of BaseRegisteredPlugin objects.
373
388
  */
374
- private getBaseRegisteredPlugins;
389
+ protected getBaseRegisteredPlugins(): Promise<BaseRegisteredPlugin[]>;
375
390
  /**
376
391
  * Spawns a child process with the given command and arguments.
377
392
  * @param {string} command - The command to execute.
@@ -388,6 +403,16 @@ export declare class Matterbridge extends EventEmitter {
388
403
  * @param {string} message - The content of the message.
389
404
  */
390
405
  private wssSendMessage;
406
+ /**
407
+ * Sends a need to refresh WebSocket message to all connected clients.
408
+ *
409
+ */
410
+ private wssSendRefreshRequired;
411
+ /**
412
+ * Sends a need to restart WebSocket message to all connected clients.
413
+ *
414
+ */
415
+ private wssSendRestartRequired;
391
416
  /**
392
417
  * Initializes the frontend of Matterbridge.
393
418
  *
@@ -399,7 +424,7 @@ export declare class Matterbridge extends EventEmitter {
399
424
  * @param {MatterbridgeDevice} device - The MatterbridgeDevice object.
400
425
  * @returns {string} The attributes description of the cluster servers in the device.
401
426
  */
402
- private getClusterTextFromDevice;
427
+ protected getClusterTextFromDevice(device: MatterbridgeDevice): string;
403
428
  /**
404
429
  * Initializes the Matterbridge instance as extension for zigbee2mqtt.
405
430
  * @deprecated This method is deprecated and will be removed in a future version.
@@ -1 +1 @@
1
- {"version":3,"file":"matterbridge.d.ts","sourceRoot":"","sources":["../src/matterbridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matterbridge.d.ts","sourceRoot":"","sources":["../src/matterbridge.ts"],"names":[],"mappings":"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"}