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 +7 -6
- package/README-DEV.md +1 -1
- package/README-DOCKER.md +1 -1
- package/README-EDGE.md +1 -1
- package/README-NGINX.md +1 -1
- package/README-PODMAN.md +1 -1
- package/README-SERVICE.md +1 -1
- package/README.md +18 -18
- package/dist/cli.js +1 -1
- package/dist/frontend.js +13 -0
- package/dist/matterbridge.js +7 -2
- package/frontend/build/asset-manifest.json +3 -3
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/js/{main.be75f5a3.js → main.438c6c47.js} +9 -9
- package/frontend/build/static/js/main.438c6c47.js.map +1 -0
- package/npm-shrinkwrap.json +8 -8
- package/package.json +1 -1
- package/frontend/build/static/js/main.be75f5a3.js.map +0 -1
- /package/frontend/build/static/js/{main.be75f5a3.js.LICENSE.txt → main.438c6c47.js.LICENSE.txt} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# <img src="
|
|
1
|
+
# <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px"> 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-
|
|
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
|
|
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
|
|
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](
|
|
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="
|
|
1
|
+
# <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px"> Matterbridge
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/matterbridge)
|
|
4
4
|
[](https://www.npmjs.com/package/matterbridge)
|
package/README-DOCKER.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# <img src="
|
|
1
|
+
# <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px"> Matterbridge
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/matterbridge)
|
|
4
4
|
[](https://www.npmjs.com/package/matterbridge)
|
package/README-EDGE.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# <img src="
|
|
1
|
+
# <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px"> 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="
|
|
1
|
+
# <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px"> Matterbridge
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/matterbridge)
|
|
4
4
|
[](https://www.npmjs.com/package/matterbridge)
|
package/README-PODMAN.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# <img src="
|
|
1
|
+
# <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px"> Matterbridge
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/matterbridge)
|
|
4
4
|
[](https://www.npmjs.com/package/matterbridge)
|
package/README-SERVICE.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# <img src="
|
|
1
|
+
# <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px"> Matterbridge
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/matterbridge)
|
|
4
4
|
[](https://www.npmjs.com/package/matterbridge)
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# <img src="
|
|
1
|
+
# <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px"> Matterbridge
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/matterbridge)
|
|
4
4
|
[](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
|
-

|
|
125
125
|
|
|
126
126
|
Devices page:
|
|
127
|
-
[See the screenshot here](
|
|
127
|
+
[See the screenshot here](screenshot/Screenshot%20devices.jpg)
|
|
128
128
|
|
|
129
129
|
Logs page:
|
|
130
|
-
[See the screenshot here](
|
|
130
|
+
[See the screenshot here](screenshot/Screenshot%20logs.jpg)
|
|
131
131
|
|
|
132
132
|
Config editor:
|
|
133
|
-
[See the screenshot here](
|
|
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](
|
|
139
|
+
[Service configurations](README-SERVICE.md)
|
|
140
140
|
|
|
141
141
|
### Run matterbridge with docker and docker compose
|
|
142
142
|
|
|
143
|
-
[Docker configurations](
|
|
143
|
+
[Docker configurations](README-DOCKER.md)
|
|
144
144
|
|
|
145
145
|
### Run matterbridge with podman
|
|
146
146
|
|
|
147
|
-
[Podman configurations](
|
|
147
|
+
[Podman configurations](README-PODMAN.md)
|
|
148
148
|
|
|
149
149
|
### Run matterbridge with nginx
|
|
150
150
|
|
|
151
|
-
[Nginx configurations](
|
|
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](
|
|
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="
|
|
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="
|
|
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="
|
|
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
|
-

|
|
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
|
-

|
|
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
|
-

|
|
377
377
|
|
|
378
|
-

|
|
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
|
-

|
|
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;
|
package/dist/matterbridge.js
CHANGED
|
@@ -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
|
|
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(`
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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>
|