matterbridge 3.5.1-dev-20260122-6461be3 → 3.5.1-dev-20260123-4fcee18
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 +1 -0
- package/README.md +41 -7
- package/dist/frontend.js +5 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -39,6 +39,7 @@ Advantages:
|
|
|
39
39
|
- [matter.js]: Bump to matter.j v. 0.16.6.
|
|
40
40
|
- [mb_mdns]: Added --ip-filter params to filter incoming mDns messages by sender ip.
|
|
41
41
|
- [express]: Added a login check for internal express api. Now only /health and /memory are opened. Thanks Rogibaer (https://github.com/Luligu/matterbridge-hass/issues/149).
|
|
42
|
+
- [readme]: Added a section with the data structure and backup/restore guidelines.
|
|
42
43
|
|
|
43
44
|
### Changed
|
|
44
45
|
|
package/README.md
CHANGED
|
@@ -162,7 +162,13 @@ Here's how to specify a different port number:
|
|
|
162
162
|
matterbridge --frontend [port number]
|
|
163
163
|
```
|
|
164
164
|
|
|
165
|
-
|
|
165
|
+
The frontend binds, by default, to all IPv4 and IPv6 addresses. You can override this and bind to a specific address:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
matterbridge --bind [address]
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
To use the frontend with SSL, see below.
|
|
166
172
|
|
|
167
173
|
From the frontend you can do all operations in an easy way.
|
|
168
174
|
|
|
@@ -551,6 +557,37 @@ So depending on the controller you pair with, you should see 100 for fully close
|
|
|
551
557
|
|
|
552
558
|
Some controllers invert the position so you need to verify your controller.
|
|
553
559
|
|
|
560
|
+
## Data structure
|
|
561
|
+
|
|
562
|
+
Matterbridge uses three directories. These are the default locations (some advanced setups may change them, so check your configuration):
|
|
563
|
+
|
|
564
|
+
```text
|
|
565
|
+
~/.matterbridge
|
|
566
|
+
~/Matterbridge
|
|
567
|
+
~/.mattercert
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
### Backup
|
|
571
|
+
|
|
572
|
+
From the frontend (three-dots menu), select **Create backup**, then **Download backup** when it is ready.
|
|
573
|
+
The backup file is a standard `.zip` archive.
|
|
574
|
+
|
|
575
|
+
### Restore
|
|
576
|
+
|
|
577
|
+
Restore must be done manually because the archive paths depend on your setup.
|
|
578
|
+
|
|
579
|
+
Make sure Matterbridge is not running. Stop it if needed.
|
|
580
|
+
|
|
581
|
+
Extract the backup and replace the corresponding directories on your system with the ones from the backup:
|
|
582
|
+
|
|
583
|
+
```text
|
|
584
|
+
.matterbridge
|
|
585
|
+
Matterbridge
|
|
586
|
+
.mattercert
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
Ensure permissions are correct for the restored directories.
|
|
590
|
+
|
|
554
591
|
# Known general issues
|
|
555
592
|
|
|
556
593
|
## Session XYZ does not exist or Cannot find a session for ID XYZ
|
|
@@ -567,17 +604,13 @@ All issues have been solved from the version 17.5 of the HomePod/AppleTV. Now th
|
|
|
567
604
|
|
|
568
605
|
If you have more then one Apple TV or Home Pod, you can herve better results setting to disabled "Automatic Selection" in "Home Setting", "Home Hubs & Bridges". When "Automatic selection" is disabled, select your Apple Tv if you have one or any of your Home Pod. In this way you should not have anymore more then one session for fabric.
|
|
569
606
|
|
|
570
|
-
### Manufacturer Serial Number and Model
|
|
571
|
-
|
|
572
|
-
The Home app forgets about them when you restart the node.
|
|
573
|
-
|
|
574
607
|
### Appliances
|
|
575
608
|
|
|
576
609
|
As of version 18.4.x, all Appliances device types are not supported by the Home app. They don't even appear like unsupported accessories.
|
|
577
610
|
|
|
578
611
|
### Robot
|
|
579
612
|
|
|
580
|
-
As of version 18.4.x, the Robot is supported by the Home app only as a single, non-bridged device or if it is the only device in the bridge.
|
|
613
|
+
As of version 18.4.x, the Robot is supported by the Home app only as a single, non-bridged device or if it is the only device in the bridge. Furthermore the device cannot be a composed device. The only device type supported is the rvc.
|
|
581
614
|
|
|
582
615
|
If a Robot is present alongside other devices in the bridge, the entire bridge becomes unstable in the Home app.
|
|
583
616
|
|
|
@@ -591,7 +624,6 @@ So far is the only controller supporting all Matter 1.2, 1.3 and 1.4 device type
|
|
|
591
624
|
|
|
592
625
|
- If HA doesn't show all devices, reload the Matter Server Integration or reboot HA
|
|
593
626
|
- Home Assistant doesn't seem to always react when a device is removed from the bridge: they remain in HA unavailable forever. A full Home Assistant restart solves the problem.
|
|
594
|
-
- Use Apple Home when you have to choose the controller type even if you pair Matterbridge directly with HA.
|
|
595
627
|
|
|
596
628
|
## Google Home
|
|
597
629
|
|
|
@@ -601,6 +633,8 @@ If you face a problem changing the brightness check this for the explanation: ht
|
|
|
601
633
|
|
|
602
634
|
If you encounter a “Something Went Wrong” screen while commissioning MatterBridge devices in Google Home on Android, it’s due to an Android bug. Android fails to send the country code, which is mandatory under the Matter specification.
|
|
603
635
|
|
|
636
|
+
There is also a known issue with the thermostat Fahrenheit to Celsius Conversion (https://github.com/Luligu/matterbridge/issues/462).
|
|
637
|
+
|
|
604
638
|
### Workaround
|
|
605
639
|
|
|
606
640
|
Install Google Home on an iPhone and complete the commissioning there. Once set up, the devices will appear and function normally on your Android phone and other Nest devices in your home. By [Artem Kovalov](https://github.com/artemkovalyov).
|
package/dist/frontend.js
CHANGED
|
@@ -238,6 +238,8 @@ export class Frontend extends EventEmitter {
|
|
|
238
238
|
return socket.destroy();
|
|
239
239
|
}
|
|
240
240
|
this.log.debug(`WebSocket upgrade success host ${url.host} password ${password ? '[redacted]' : '(empty)'}`);
|
|
241
|
+
if (req.socket.remoteAddress)
|
|
242
|
+
this.authClients.push(req.socket.remoteAddress);
|
|
241
243
|
this.webSocketServer?.handleUpgrade(req, socket, head, (ws) => {
|
|
242
244
|
this.webSocketServer?.emit('connection', ws, req);
|
|
243
245
|
});
|
|
@@ -373,6 +375,8 @@ export class Frontend extends EventEmitter {
|
|
|
373
375
|
return socket.destroy();
|
|
374
376
|
}
|
|
375
377
|
this.log.debug(`WebSocket upgrade success host ${url.host} password ${password ? '[redacted]' : '(empty)'}`);
|
|
378
|
+
if (req.socket.remoteAddress)
|
|
379
|
+
this.authClients.push(req.socket.remoteAddress);
|
|
376
380
|
this.webSocketServer?.handleUpgrade(req, socket, head, (ws) => {
|
|
377
381
|
this.webSocketServer?.emit('connection', ws, req);
|
|
378
382
|
});
|
|
@@ -1484,7 +1488,7 @@ export class Frontend extends EventEmitter {
|
|
|
1484
1488
|
else if (data.method === '/api/create-backup') {
|
|
1485
1489
|
this.wssSendSnackbarMessage('Creating backup...', 0);
|
|
1486
1490
|
this.log.notice(`Creating the backup...`);
|
|
1487
|
-
await createZip(path.join(os.tmpdir(), `matterbridge.backup.zip`), path.join(this.matterbridge.matterbridgeDirectory), path.join(this.matterbridge.matterbridgePluginDirectory));
|
|
1491
|
+
await createZip(path.join(os.tmpdir(), `matterbridge.backup.zip`), path.join(this.matterbridge.matterbridgeDirectory), path.join(this.matterbridge.matterbridgePluginDirectory), path.join(this.matterbridge.matterbridgeCertDirectory));
|
|
1488
1492
|
this.log.notice(`Backup ready to be downloaded.`);
|
|
1489
1493
|
this.wssSendCloseSnackbarMessage('Creating backup...');
|
|
1490
1494
|
this.wssSendSnackbarMessage('Backup ready to be downloaded', 10);
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge",
|
|
3
|
-
"version": "3.5.1-dev-
|
|
3
|
+
"version": "3.5.1-dev-20260123-4fcee18",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "matterbridge",
|
|
9
|
-
"version": "3.5.1-dev-
|
|
9
|
+
"version": "3.5.1-dev-20260123-4fcee18",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@matter/main": "0.16.6",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge",
|
|
3
|
-
"version": "3.5.1-dev-
|
|
3
|
+
"version": "3.5.1-dev-20260123-4fcee18",
|
|
4
4
|
"description": "Matterbridge plugin manager for Matter",
|
|
5
5
|
"author": "https://github.com/Luligu",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -118,8 +118,8 @@
|
|
|
118
118
|
"ws": "8.19.0"
|
|
119
119
|
},
|
|
120
120
|
"build": {
|
|
121
|
-
"sha": "
|
|
122
|
-
"sha7": "
|
|
121
|
+
"sha": "4fcee18598592191a42c1f07464efd96fbf0288f",
|
|
122
|
+
"sha7": "4fcee18",
|
|
123
123
|
"event": "workflow_dispatch",
|
|
124
124
|
"workflow": "Daily Dev Publish to npm",
|
|
125
125
|
"type": "branch",
|