Skip to content

Commit bce574e

Browse files
authored
Merge pull request #198 from Luligu/dev
Release 1.7.0
2 parents ee4a821 + 2ad82b4 commit bce574e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+4035
-1624
lines changed

.github/workflows/build.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@ jobs:
2424
- name: Clean cache
2525
run: npm cache clean --force
2626

27-
- name: Install latest npm
28-
run: npm install -g npm@latest
29-
3027
- name: Verify Node.js version
3128
run: node -v
3229

.github/workflows/publish.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ jobs:
2121
- name: Clean cache
2222
run: npm cache clean --force
2323

24-
- name: Install latest npm
25-
run: npm install -g npm@latest
26-
2724
- name: Verify Node.js version
2825
run: node -v
2926

CHANGELOG.md

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ If you like this project and find it useful, please consider giving it a star on
66

77
### Home Assistant
88

9-
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.
9+
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.
1010
It is also available the official Matterbridge Home Assistant plugin https://github.com/Luligu/matterbridge-hass.
1111

1212
### Discord
@@ -15,11 +15,51 @@ Tamer (https://github.com/tammeryousef1006) has created the Matterbridge Discord
1515

1616
### Breaking Changes
1717

18-
In this release some device types and the OnOff, LevelControl and ColorControl have been updated to be fully compliant with Matter 1.3 specifications.
19-
It is possible that some controllers see them as new devices or need time to read the new clusters. It can be useful after the upgrade to power off the controller, wait a few minutes and power it on again.
18+
Matterbridge edge is now released. The default mode is still the normal mode to allow the storage conversion. See https://github.com/Luligu/matterbridge/blob/dev/README-EDGE.md to manually switch to edge mode after the conversion is done.
19+
20+
The frontend has a new dark and light mode. The dark mode is now the default mode.
21+
It is possible to change the mode (Classic, Dark or Light) in Settings, Matterbridge settings.
22+
23+
## [1.7.0] - 2025-01-03
24+
25+
### Added
26+
27+
- [edge]: Added guide https://github.com/Luligu/matterbridge/blob/dev/README-EDGE.md.
28+
- [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.
29+
- [storage]: Added conversion for child endpoint numbers.
30+
- [storage]: Added conversion for childbridge mode.
31+
- [package]: Update README.md and README-SERVICE.md to include instructions for using SSL on port 443.
32+
- [platform]: Added checkEndpointNumbers() to detect endpoint numbers changes.
33+
- [frontend]: Frontend v.2.3.0
34+
- [frontend]: Added dark and light mode to the frontend. Dark mode is now the default mode. It is possible to change the mode in Settings, Matterbridge settings.
35+
- [frontend]: Custom rfjsreact-jsonschema-form for the config editor.
36+
- [frontend]: Added columns configuration to Devices.
37+
- [frontend]: Added clear logs button in Logs.
38+
- [unregister]: Added unregister for Matterbridge edge.
39+
- [reset]: Added reset for Matterbridge edge.
40+
- [factoryreset]: Added factoryreset for Matterbridge edge.
41+
- [websocket]: Added /api/clusters and removed all fetch calls from frontend.
42+
43+
### Changed
44+
45+
- [edge]: Fixes to edge mode.
46+
- [package]: Update dependencies.
47+
48+
### Fixed
49+
50+
- [frontend]: Fixed device/cluster api that was not working in Ingress.
51+
52+
<a href="https://www.buymeacoffee.com/luligugithub">
53+
<img src="./yellow-button.png" alt="Buy me a coffee" width="120">
54+
</a>
2055

2156
## [1.6.7] - 2024-12-15
2257

58+
### Breaking Changes
59+
60+
In this release some device types and the OnOff, LevelControl and ColorControl have been updated to be fully compliant with Matter 1.3 specifications.
61+
It is possible that some controllers see them as new devices or need time to read the new clusters. It can be useful after the upgrade to power off the controller, wait a few minutes and power it on again.
62+
2363
### Added
2464

2565
- [readme]: Update README to clarify Node.js installation instructions and emphasize LTS version.

README-DOCKER.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,14 @@ sudo groupadd docker
4040
sudo usermod -aG docker $USER
4141
```
4242

43+
After adding your user to the docker group, you need to log out and log back in for the changes to take effect. This ensures that your current session recognizes the group membership change.
44+
4345
### Run the Docker container and start it
4446

4547
The container must have full access to the host network (needed for mdns).
4648

4749
```
48-
docker run --name matterbridge \
50+
sudo docker run --name matterbridge \
4951
-v ${HOME}/Matterbridge:/root/Matterbridge \
5052
-v ${HOME}/.matterbridge:/root/.matterbridge \
5153
--network host --restart always -d luligu/matterbridge:latest
@@ -61,12 +63,12 @@ The docker-compose.yml file is available in the docker directory of the package
6163
services:
6264
matterbridge:
6365
container_name: matterbridge
64-
image: luligu/matterbridge:latest # Matterbridge image with the latest tag
65-
network_mode: host # Ensures the Matter mdns works
66-
restart: always # Ensures the container always restarts automatically
66+
image: luligu/matterbridge:latest # Matterbridge image with the latest tag
67+
network_mode: host # Ensures the Matter mdns works
68+
restart: always # Ensures the container always restarts automatically
6769
volumes:
68-
- "${HOME}/Matterbridge:/root/Matterbridge" # Mounts the Matterbridge plugin directory
69-
- "${HOME}/.matterbridge:/root/.matterbridge" # Mounts the Matterbridge storage directory
70+
- "${HOME}/Matterbridge:/root/Matterbridge" # Mounts the Matterbridge plugin directory
71+
- "${HOME}/.matterbridge:/root/.matterbridge" # Mounts the Matterbridge storage directory
7072
```
7173

7274
copy it in the home directory or edit the existing one to add the matterbridge service.

README-EDGE.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
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
2+
3+
# Matterbridge edge
4+
5+
Matterbridge Edge is the version of Matterbridge running with the new Matter.js API.
6+
7+
After months of work, the migration of Matterbridge from the old API to the new API is now complete. This includes the conversion of the entire old storage format to the new API storage format, encompassing fabrics, resumption records, network, commissioning, operational credentials, ACL, and part numbers.
8+
9+
A special thanks goes to Apollon for answering my countless questions and helping to resolve the many small issues that arose during this process.
10+
11+
I also want to express my gratitude to Tamer, who continues to test everything daily to ensure we reach a level of confidence needed to release the update with the latest tag.
12+
13+
## Storage conversion
14+
15+
Starting from version 1.7.0 (1.6.8-dev.11 before it is published as 1.7.0 with tag latest), the conversion process is automatic and is triggered each time you shut down, restart, or update Matterbridge using the frontend.
16+
17+
A message is displayed to inform the user when the conversion is complete.
18+
19+
Once the user run Matterbridge in Edge mode for the first time, the conversion will no longer be triggered.
20+
21+
The conversion only creates a new storage directory in the new format. It does not modify the old storage in any way, so there is no risk in trying Edge mode before its official release. You can also revert to normal mode by simply removing the -edge parameter. After the conversion is complete, the two storages will be identical. However, once you start using Edge mode, any changes made to one storage will not be reflected in the other. Therefore, it is recommended to let the conversion complete, switch to Edge mode, and continue using it exclusively.
22+
There is no conversion back to the old storage.
23+
24+
## When it will be released
25+
26+
Matterbridge Edge will be officially released as version 2.0.0, as it represents a major update.
27+
28+
## How to run matterbridge in edge mode
29+
30+
To start Matterbridge in Edge mode before its official release, you need to add the -edge parameter to the command line or Docker command.
31+
32+
### When you run matterbridge from a terminal
33+
34+
```
35+
matterbridge -edge
36+
```
37+
38+
### When you run matterbridge with systemctl
39+
40+
Modify your /etc/systemd/system/matterbridge.service
41+
42+
```
43+
ExecStart=matterbridge -service -edge
44+
```
45+
46+
Then run:
47+
48+
```
49+
sudo systemctl daemon-reload
50+
sudo systemctl restart matterbridge
51+
```
52+
53+
### When you run matterbridge with docker
54+
55+
```
56+
sudo docker run --name matterbridge \
57+
-v ${HOME}/Matterbridge:/root/Matterbridge \
58+
-v ${HOME}/.matterbridge:/root/.matterbridge \
59+
--network host --restart always -d luligu/matterbridge:latest \
60+
matterbridge -docker -edge
61+
```
62+
63+
### When you run matterbridge with docker compose
64+
65+
```
66+
services:
67+
matterbridge:
68+
container_name: matterbridge
69+
image: luligu/matterbridge:latest # Matterbridge image with the latest tag
70+
network_mode: host # Ensures the Matter mdns works
71+
restart: always # Ensures the container always restarts automatically
72+
volumes:
73+
- "${HOME}/Matterbridge:/root/Matterbridge" # Mounts the Matterbridge plugin directory
74+
- "${HOME}/.matterbridge:/root/.matterbridge" # Mounts the Matterbridge storage directory
75+
command: [ "matterbridge", "-docker", "-edge" ] # Override the image command adding -edge
76+
```

README-SERVICE.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Create a systemctl configuration file for Matterbridge
3535
sudo nano /etc/systemd/system/matterbridge.service
3636
```
3737

38-
Add the following to this file, replacing twice (!) USER with your user name (e.g. WorkingDirectory=/home/pi/Matterbridge and User=pi):
38+
Add the following to this file, replacing 3 times (!) USER with your user name (e.g. WorkingDirectory=/home/pi/Matterbridge, User=pi and Group=pi):
3939

4040
You may need to adapt the configuration to your setup:
4141

@@ -49,18 +49,27 @@ After=network-online.target
4949
[Service]
5050
Type=simple
5151
ExecStart=matterbridge -service
52-
WorkingDirectory=/home/<USER>/Matterbridge
52+
WorkingDirectory=/home/<USER>/Matterbridge
5353
StandardOutput=inherit
5454
StandardError=inherit
5555
Restart=always
5656
RestartSec=10s
5757
TimeoutStopSec=30s
58-
User=<USER>
58+
User=<USER>
59+
Group=<USER>
5960
6061
[Install]
6162
WantedBy=multi-user.target
6263
```
6364

65+
If you use the frontend with -ssl -frontend 443 and get an error message: "Port 443 requires elevated privileges",
66+
add this:
67+
68+
```
69+
[Service]
70+
AmbientCapabilities=CAP_NET_BIND_SERVICE
71+
```
72+
6473
If you modify it after, then run:
6574

6675
```

README.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ A special thank to Apollon77 for his incredible work.
4646

4747
To run Matterbridge, you need either a [Node.js](https://nodejs.org/en) environment or [Docker](https://docs.docker.com/get-started/get-docker/) installed on your system.
4848

49-
If you don't have Node.js already install, please use this method to install it on a debian device: https://github.com/nodesource/distributions.
49+
If you don't have Node.js already install, please use this method to install it on a debian device: https://github.com/nodesource/distributions.
5050
The supported versions of node are 18, 20 and 22. Please install node 22 LTS.
5151
Nvm is not a good choice and should not be used for production.
5252

@@ -116,6 +116,8 @@ Here's how to specify a different port number:
116116
matterbridge -frontend [port number]
117117
```
118118

119+
To use the frontend with ssl place the certificates in the .matterbridge/certs directory: cert.pem, key.pem and ca.pem (optional).
120+
119121
From the frontend you can do all operations in an easy way.
120122

121123
Home page:
@@ -177,15 +179,18 @@ Features:
177179
- Shelly wifi battery-powered devices with sleep_mode are supported.
178180
- Shelly BLU devices are supported through local devices configured as ble gateway.
179181
- Discovered shellies are stored in local storage for quick loading on startup.
180-
- The components exposed are Light (with brightness and RGB color), Switch, Relay, Roller, Cover, PowerMeter, Temperature, Humidity and Input.
181-
- All components expose the electrical measurements with the EveHistory cluster (displayed on HA), waiting for the controllers to upgrade to the Matter 1.3 specs.
182+
- The components exposed are Light (with brightness and RGB color), Switch, Relay, Roller, Cover, PowerMeter, Temperature, Humidity, Illuminance, Thermostat, Button and Input.
183+
- PowerMeters expose the electrical measurements with the electricalSensor device type (suppoerted by Home Assistant and partially by SmartThings), waiting for the controllers to upgrade to the Matter 1.3 specs.
182184
- Shellies are controlled locally, eliminating the need for cloud or MQTT (which can both be disabled).
183-
- Shelly Gen 1 devices are controlled using the CoIoT protocol (see the note below).
185+
- Shelly Gen 1 devices are controlled using the CoIoT protocol.
184186
- Shelly Gen 2 and Gen 3 devices are controlled using WebSocket.
185187
- The Matter device takes the name configured in the Shelly device's web page.
188+
- Each device can be blacklisted or whitelisted using its name, id or mac address.
189+
- Device components can be blacklisted globally or on a per-device basis.
186190
- If the device has a firmware update available, a message is displayed.
187191
- If the device's CoIoT protocol is not correctly configured, a message is displayed.
188192
- If the device cover/roller component is not calibrated, a message is displayed.
193+
- If a device changes its ip address on the network, a message is displayed and the new address is stored.
189194
- A 10-minute timer checks if the device has reported within that time frame, and fetch un update.
190195

191196
### Zigbee2MQTT

frontend/build/asset-manifest.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"files": {
3-
"main.css": "./static/css/main.823e08b6.css",
4-
"main.js": "./static/js/main.4dd7e165.js",
3+
"main.css": "./static/css/main.f1fce054.css",
4+
"main.js": "./static/js/main.5caad8c7.js",
55
"static/js/453.abd36b29.chunk.js": "./static/js/453.abd36b29.chunk.js",
66
"static/media/roboto-latin-700-normal.woff2": "./static/media/roboto-latin-700-normal.4535474e1cf8598695ad.woff2",
77
"static/media/roboto-latin-500-normal.woff2": "./static/media/roboto-latin-500-normal.7077203b1982951ecf76.woff2",
@@ -60,12 +60,12 @@
6060
"static/media/roboto-greek-ext-300-normal.woff": "./static/media/roboto-greek-ext-300-normal.b590dbe5c639944366d1.woff",
6161
"static/media/roboto-greek-ext-400-normal.woff": "./static/media/roboto-greek-ext-400-normal.16eb83b4a3b1ea994243.woff",
6262
"index.html": "./index.html",
63-
"main.823e08b6.css.map": "./static/css/main.823e08b6.css.map",
64-
"main.4dd7e165.js.map": "./static/js/main.4dd7e165.js.map",
63+
"main.f1fce054.css.map": "./static/css/main.f1fce054.css.map",
64+
"main.5caad8c7.js.map": "./static/js/main.5caad8c7.js.map",
6565
"453.abd36b29.chunk.js.map": "./static/js/453.abd36b29.chunk.js.map"
6666
},
6767
"entrypoints": [
68-
"static/css/main.823e08b6.css",
69-
"static/js/main.4dd7e165.js"
68+
"static/css/main.f1fce054.css",
69+
"static/js/main.5caad8c7.js"
7070
]
7171
}

frontend/build/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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.4dd7e165.js"></script><link href="./static/css/main.823e08b6.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.5caad8c7.js"></script><link href="./static/css/main.f1fce054.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>

frontend/build/static/css/main.823e08b6.css.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)