matterbridge 2.1.6-dev.5 → 2.1.6-dev.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,4 @@
1
- # <img src="https://github.com/Luligu/matterbridge/blob/main/frontend/public/matterbridge%2064x64.png" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge changelog
1
+ # <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge changelog
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
@@ -33,16 +33,17 @@ matterbridge-zigbee2mqtt v. 2.4.4
33
33
  matterbridge-somfy-tahoma v. 1.2.3
34
34
  matterbridge-hass v. 0.0.8
35
35
 
36
- ## [2.1.6] - 2025-02-15
36
+ ## [2.1.6] - 2025-02-18
37
37
 
38
38
  ### Added
39
39
 
40
- - [docker]: Added health check directly in the docker image. No need to change configuration.
40
+ - [docker]: Added health check directly in the docker image. No need to change configuration of docker compose.
41
41
  - [platform]: Saving in the storage the selects for faster loading of plugins.
42
42
  - [icon]: Added matterbridge svg icon (thanks: https://github.com/robvanoostenrijk https://github.com/stuntguy3000).
43
43
  - [frontend]: Added processUptime.
44
44
  - [frontend]: Frontend v.2.4.2.
45
45
  - [PluginManager]: Refactor PluginManager to optimize memory and load time.
46
+ - [frontend]: Added Share fabrics and Stop sharing to the menu. This allows to pair other controllers without the need to share from the first controller.
46
47
 
47
48
  ### Changed
48
49
 
@@ -260,7 +261,7 @@ matterbridge-hass v. 0.0.8
260
261
 
261
262
  ### Added
262
263
 
263
- - [edge]: Added guide https://github.com/Luligu/matterbridge/blob/dev/README-EDGE.md.
264
+ - [edge]: Added guide [README-EDGE.md](README-EDGE.md).
264
265
  - [storage]: Added conversion from old matter storage to the new api format with fabrics, resumptionRecords, network, commissioning, operationalCredentials, acl and parts number. The conversion is triggered every time you shutdown or restart matterbridge till the new storage has been used with matterbridge edge.
265
266
  - [storage]: Added conversion for child endpoint numbers.
266
267
  - [storage]: Added conversion for childbridge mode.
@@ -397,7 +398,7 @@ It is possible that some controllers see them as new devices or need time to rea
397
398
  ### Added
398
399
 
399
400
  - [matter.js]: Almost completed the phase 2 of migration to edge (matter.js new API).
400
- - [nginx]: Added the route /matterbridge/ to be used with nginx proxy server https://github.com/Luligu/matterbridge/blob/dev/README-NGINX.md.
401
+ - [nginx]: Added the route /matterbridge/ to be used with nginx proxy server [README-NGINX.md](README-NGINX.md).
401
402
  - [config]: Config and schema are loaded before loading the plugin to allow to configure the plugin even when it throws error on load.
402
403
  - [config]: Added version to the config.
403
404
  - [frontend]: Added badge "edge" when running in edge mode.
@@ -601,7 +602,7 @@ It is possible that some controllers see them as new devices or need time to rea
601
602
 
602
603
  ### Breaking Changes for developers
603
604
 
604
- - please read this [Development guide lines](https://github.com/Luligu/matterbridge/blob/main/README-DEV.md)
605
+ - please read this [Development guide lines](README-DEV.md)
605
606
 
606
607
  ### Added
607
608
 
package/README-DEV.md CHANGED
@@ -1,4 +1,4 @@
1
- # <img src="https://github.com/Luligu/matterbridge/blob/main/frontend/public/matterbridge%2064x64.png" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
1
+ # <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
4
4
  [![npm downloads](https://img.shields.io/npm/dt/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
package/README-DOCKER.md CHANGED
@@ -1,4 +1,4 @@
1
- # <img src="https://github.com/Luligu/matterbridge/blob/main/frontend/public/matterbridge%2064x64.png" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
1
+ # <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
4
4
  [![npm downloads](https://img.shields.io/npm/dt/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
package/README-EDGE.md CHANGED
@@ -1,4 +1,4 @@
1
- # <img src="https://github.com/Luligu/matterbridge/blob/main/frontend/public/matterbridge%2064x64.png" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge edge
1
+ # <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge edge
2
2
 
3
3
  Matterbridge Edge is the version of Matterbridge running with the new Matter.js API.
4
4
 
package/README-NGINX.md CHANGED
@@ -1,4 +1,4 @@
1
- # <img src="https://github.com/Luligu/matterbridge/blob/main/frontend/public/matterbridge%2064x64.png" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
1
+ # <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
4
4
  [![npm downloads](https://img.shields.io/npm/dt/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
package/README-PODMAN.md CHANGED
@@ -1,4 +1,4 @@
1
- # <img src="https://github.com/Luligu/matterbridge/blob/main/frontend/public/matterbridge%2064x64.png" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
1
+ # <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
4
4
  [![npm downloads](https://img.shields.io/npm/dt/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
package/README-SERVICE.md CHANGED
@@ -1,4 +1,4 @@
1
- # <img src="https://github.com/Luligu/matterbridge/blob/main/frontend/public/matterbridge%2064x64.png" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
1
+ # <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
4
4
  [![npm downloads](https://img.shields.io/npm/dt/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # <img src="https://github.com/Luligu/matterbridge/blob/main/frontend/public/matterbridge%2064x64.png" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
1
+ # <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
4
4
  [![npm downloads](https://img.shields.io/npm/dt/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
@@ -121,34 +121,34 @@ To use the frontend with ssl place the certificates in the .matterbridge/certs d
121
121
  From the frontend you can do all operations in an easy way.
122
122
 
123
123
  Home page:
124
- ![See the screenshot here](https://github.com/Luligu/matterbridge/blob/main/screenshot/Screenshot%20home.jpg)
124
+ ![See the screenshot here](screenshot/Screenshot%20home.jpg)
125
125
 
126
126
  Devices page:
127
- [See the screenshot here](https://github.com/Luligu/matterbridge/blob/main/screenshot/Screenshot%20devices.jpg)
127
+ [See the screenshot here](screenshot/Screenshot%20devices.jpg)
128
128
 
129
129
  Logs page:
130
- [See the screenshot here](https://github.com/Luligu/matterbridge/blob/main/screenshot/Screenshot%20logs.jpg)
130
+ [See the screenshot here](screenshot/Screenshot%20logs.jpg)
131
131
 
132
132
  Config editor:
133
- [See the screenshot here](https://github.com/Luligu/matterbridge/blob/main/screenshot/Screenshot%20config%20editor.jpg)
133
+ [See the screenshot here](screenshot/Screenshot%20config%20editor.jpg)
134
134
 
135
135
  ## Advanced configurations
136
136
 
137
137
  ### Run matterbridge as a daemon with systemctl (Linux only)
138
138
 
139
- [Service configurations](https://github.com/Luligu/matterbridge/blob/main/README-SERVICE.md)
139
+ [Service configurations](README-SERVICE.md)
140
140
 
141
141
  ### Run matterbridge with docker and docker compose
142
142
 
143
- [Docker configurations](https://github.com/Luligu/matterbridge/blob/main/README-DOCKER.md)
143
+ [Docker configurations](README-DOCKER.md)
144
144
 
145
145
  ### Run matterbridge with podman
146
146
 
147
- [Podman configurations](https://github.com/Luligu/matterbridge/blob/main/README-PODMAN.md)
147
+ [Podman configurations](README-PODMAN.md)
148
148
 
149
149
  ### Run matterbridge with nginx
150
150
 
151
- [Nginx configurations](https://github.com/Luligu/matterbridge/blob/main/README-NGINX.md)
151
+ [Nginx configurations](README-NGINX.md)
152
152
 
153
153
  ### Run matterbridge as an home assistant add-on with the official add-on
154
154
 
@@ -160,14 +160,14 @@ The other Home Assistant Community Add-ons and plugins are not verified to work
160
160
 
161
161
  ## Development
162
162
 
163
- [Development](https://github.com/Luligu/matterbridge/blob/main/README-DEV.md)
163
+ [Development](README-DEV.md)
164
164
 
165
165
  ## Plugins
166
166
 
167
167
  ### Shelly
168
168
 
169
169
  <a href="https://github.com/Luligu/matterbridge-shelly">
170
- <img src="https://github.com/Luligu/matterbridge/blob/dev/screenshot/Shelly.png" alt="Shelly plugin logo" width="100" />
170
+ <img src="screenshot/Shelly.svg" alt="Shelly plugin logo" width="100" />
171
171
  </a>
172
172
 
173
173
  Matterbridge shelly plugin allows you to expose all Shelly Gen 1, Gen 2, Gen 3 and BLU devices to Matter.
@@ -196,7 +196,7 @@ Features:
196
196
  ### Zigbee2MQTT
197
197
 
198
198
  <a href="https://github.com/Luligu/matterbridge-zigbee2mqtt">
199
- <img src="https://github.com/Luligu/matterbridge/blob/dev/screenshot/Zigbee2MQTT.png" alt="Zigbee2MQTT plugin logo" width="100" />
199
+ <img src="screenshot/Zigbee2MQTT.svg" alt="Zigbee2MQTT plugin logo" width="100" />
200
200
  </a>
201
201
 
202
202
  Matterbridge zigbee2mqtt is a matterbridge production-level plugin that expose all zigbee2mqtt devices and groups to Matter.
@@ -206,7 +206,7 @@ No hub or dedicated hardware needed.
206
206
  ### Somfy tahoma
207
207
 
208
208
  <a href="https://github.com/Luligu/matterbridge-somfy-tahoma">
209
- <img src="https://github.com/Luligu/matterbridge/blob/dev/screenshot/Somfy.png" alt="Somfy plugin logo" width="100" />
209
+ <img src="screenshot/Somfy.svg" alt="Somfy plugin logo" width="100" />
210
210
  </a>
211
211
 
212
212
  Matterbridge Somfy Tahoma is a matterbridge production-level plugin that expose the Somfy Tahoma screen devices to Matter.
@@ -351,7 +351,7 @@ Place your own certificates in the `.matterbridge/cert` directory:
351
351
  - `key.pem`
352
352
  - `ca.pem` (optional)
353
353
 
354
- ![image](https://github.com/user-attachments/assets/846785ca-6f5c-458b-b786-a6417a4da319)
354
+ ![image](screenshot/Screenshot%20Certificates.png)
355
355
 
356
356
  ### Change the command line
357
357
 
@@ -365,7 +365,7 @@ matterbridge -ssl -frontend 443
365
365
 
366
366
  If the certificate are correctly configured, you will be able to connect with https to the frontend.
367
367
 
368
- ![image](https://github.com/user-attachments/assets/9c38776d-064f-4d91-9359-a2cd3319b1ff)
368
+ ![image](screenshot/Screenshot%20Browser%20Secured.png)
369
369
 
370
370
  ## How to send the debug log files
371
371
 
@@ -373,9 +373,9 @@ If the certificate are correctly configured, you will be able to connect with ht
373
373
 
374
374
  In the frontend, go to settings and enable debug mode as shown below:
375
375
 
376
- ![Debug Matterbridge Settings](https://github.com/user-attachments/assets/83181dc2-969a-4b71-aff4-f1498fa1d665)
376
+ ![Debug Matterbridge Settings](screenshot/Screenshot%20Matterbridge%20Logger%20Debug.png)
377
377
 
378
- ![Debug Matter Settings](https://github.com/user-attachments/assets/617961a9-7cb0-46cf-9878-981f61738f8c)
378
+ ![Debug Matter Settings](screenshot/Screenshot%20Matter%20Logger%20Debug.png)
379
379
 
380
380
  ### Restart
381
381
 
@@ -383,7 +383,7 @@ Wait a few minutes to allow the logs to to accumulate.
383
383
 
384
384
  Then, from the dots menu in the frontend, download the `matterbridge.log` and `matter.log` files.
385
385
 
386
- ![image](https://github.com/user-attachments/assets/04ba65f6-594a-4ff8-9732-3df049f5a33e)
386
+ ![image](screenshot/Screenshot%20Debug%20Download%20Logs.png)
387
387
 
388
388
  # Known general issues
389
389
 
package/dist/cli.js CHANGED
@@ -177,7 +177,7 @@ async function main() {
177
177
  log.debug(`***Matterbridge.loadInstance(true) called`);
178
178
  instance = await Matterbridge.loadInstance(true);
179
179
  log.debug(`***Matterbridge.loadInstance(true) exited`);
180
- if (instance.shutdown) {
180
+ if (!instance || instance.shutdown) {
181
181
  shutdown();
182
182
  }
183
183
  else {
package/dist/frontend.js CHANGED
@@ -1087,9 +1087,22 @@ export class Frontend {
1087
1087
  }
1088
1088
  else if (data.method === '/api/advertise') {
1089
1089
  const pairingCodes = await this.matterbridge.advertiseServerNode(this.matterbridge.serverNode);
1090
+ this.matterbridge.matterbridgeInformation.matterbridgeAdvertise = true;
1091
+ this.matterbridge.matterbridgeQrPairingCode = pairingCodes?.qrPairingCode;
1092
+ this.matterbridge.matterbridgeManualPairingCode = pairingCodes?.manualPairingCode;
1093
+ this.wssSendRefreshRequired();
1094
+ this.wssSendSnackbarMessage(`Started fabrics share`, 0);
1090
1095
  client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, response: pairingCodes }));
1091
1096
  return;
1092
1097
  }
1098
+ else if (data.method === '/api/stopadvertise') {
1099
+ await this.matterbridge.stopAdvertiseServerNode(this.matterbridge.serverNode);
1100
+ this.matterbridge.matterbridgeInformation.matterbridgeAdvertise = false;
1101
+ this.wssSendRefreshRequired();
1102
+ this.wssSendSnackbarMessage(`Stopped fabrics share`, 0);
1103
+ client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src }));
1104
+ return;
1105
+ }
1093
1106
  else if (data.method === '/api/settings') {
1094
1107
  client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, response: await this.getApiSettings() }));
1095
1108
  return;
@@ -52,6 +52,7 @@ export class Matterbridge extends EventEmitter {
52
52
  matterbridgeFabricInformations: [],
53
53
  matterbridgeSessionInformations: [],
54
54
  matterbridgePaired: false,
55
+ matterbridgeAdvertise: false,
55
56
  bridgeMode: '',
56
57
  restartMode: '',
57
58
  readOnly: hasParameter('readonly'),
@@ -251,7 +252,7 @@ export class Matterbridge extends EventEmitter {
251
252
  this.port = getIntParameter('port') ?? (await this.nodeContext.get('matterport', 5540)) ?? 5540;
252
253
  this.passcode = getIntParameter('passcode') ?? (await this.nodeContext.get('matterpasscode')) ?? PaseClient.generateRandomPasscode();
253
254
  this.discriminator = getIntParameter('discriminator') ?? (await this.nodeContext.get('matterdiscriminator')) ?? PaseClient.generateRandomDiscriminator();
254
- this.log.debug(`Initializing commissioning server for Matterbridge... on port ${this.port} with passcode ${this.passcode} and discriminator ${this.discriminator}`);
255
+ this.log.debug(`Initializing server node for Matterbridge... on port ${this.port} with passcode ${this.passcode} and discriminator ${this.discriminator}`);
255
256
  if (hasParameter('logger')) {
256
257
  const level = getParameter('logger');
257
258
  if (level === 'debug') {
@@ -289,6 +290,8 @@ export class Matterbridge extends EventEmitter {
289
290
  }
290
291
  this.log.notice('Matterbridge is starting...');
291
292
  this.log.debug(`Matterbridge logLevel: ${this.log.logLevel} fileLoger: ${this.matterbridgeInformation.fileLogger}.`);
293
+ if (this.profile !== undefined)
294
+ this.log.debug(`Matterbridge profile: ${this.profile}.`);
292
295
  if (hasParameter('matterlogger')) {
293
296
  const level = getParameter('matterlogger');
294
297
  if (level === 'debug') {
@@ -517,6 +520,7 @@ export class Matterbridge extends EventEmitter {
517
520
  return;
518
521
  }
519
522
  if (hasParameter('factoryreset')) {
523
+ this.initialized = true;
520
524
  await this.shutdownProcessAndFactoryReset();
521
525
  this.shutdown = true;
522
526
  return;
@@ -529,6 +533,7 @@ export class Matterbridge extends EventEmitter {
529
533
  throw new Error(`Fatal error creating matter storage: ${error instanceof Error ? error.message : error}`);
530
534
  }
531
535
  if (hasParameter('reset') && getParameter('reset') === undefined) {
536
+ this.initialized = true;
532
537
  await this.shutdownProcessAndReset();
533
538
  this.shutdown = true;
534
539
  return;
@@ -1552,7 +1557,7 @@ export class Matterbridge extends EventEmitter {
1552
1557
  if (matterServerNode) {
1553
1558
  await matterServerNode.env.get(DeviceCommissioner)?.allowBasicCommissioning();
1554
1559
  const { qrPairingCode, manualPairingCode } = matterServerNode.state.commissioning.pairingCodes;
1555
- this.log.notice(`Advertising for ${matterServerNode.id} is now started with the following pairing codes: qrPairingCode ${qrPairingCode}, manualPairingCode ${manualPairingCode}`);
1560
+ this.log.notice(`Started advertising for ${matterServerNode.id} with the following pairing codes: qrPairingCode ${qrPairingCode}, manualPairingCode ${manualPairingCode}`);
1556
1561
  return { qrPairingCode, manualPairingCode };
1557
1562
  }
1558
1563
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "files": {
3
3
  "main.css": "./static/css/main.cf25d33e.css",
4
- "main.js": "./static/js/main.be75f5a3.js",
4
+ "main.js": "./static/js/main.438c6c47.js",
5
5
  "static/js/453.abd36b29.chunk.js": "./static/js/453.abd36b29.chunk.js",
6
6
  "static/media/roboto-latin-700-normal.woff2": "./static/media/roboto-latin-700-normal.4535474e1cf8598695ad.woff2",
7
7
  "static/media/roboto-latin-500-normal.woff2": "./static/media/roboto-latin-500-normal.7077203b1982951ecf76.woff2",
@@ -61,11 +61,11 @@
61
61
  "static/media/roboto-greek-ext-400-normal.woff": "./static/media/roboto-greek-ext-400-normal.16eb83b4a3b1ea994243.woff",
62
62
  "index.html": "./index.html",
63
63
  "main.cf25d33e.css.map": "./static/css/main.cf25d33e.css.map",
64
- "main.be75f5a3.js.map": "./static/js/main.be75f5a3.js.map",
64
+ "main.438c6c47.js.map": "./static/js/main.438c6c47.js.map",
65
65
  "453.abd36b29.chunk.js.map": "./static/js/453.abd36b29.chunk.js.map"
66
66
  },
67
67
  "entrypoints": [
68
68
  "static/css/main.cf25d33e.css",
69
- "static/js/main.be75f5a3.js"
69
+ "static/js/main.438c6c47.js"
70
70
  ]
71
71
  }
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><base href="./"><link rel="icon" href="./matterbridge 32x32.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><title>Matterbridge</title><link rel="manifest" href="./manifest.json"/><script defer="defer" src="./static/js/main.be75f5a3.js"></script><link href="./static/css/main.cf25d33e.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><base href="./"><link rel="icon" href="./matterbridge 32x32.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><title>Matterbridge</title><link rel="manifest" href="./manifest.json"/><script defer="defer" src="./static/js/main.438c6c47.js"></script><link href="./static/css/main.cf25d33e.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>