matterbridge 3.5.2-dev-20260126-3915bc2 → 3.5.2-dev-20260129-e83daf7

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 (43) hide show
  1. package/CHANGELOG.md +14 -6
  2. package/README-DEV.md +3 -3
  3. package/README-DOCKER.md +55 -58
  4. package/README-MACOS-PLIST.md +4 -4
  5. package/README-NGINX.md +3 -3
  6. package/README-PODMAN.md +4 -4
  7. package/README-SERVICE-LOCAL.md +4 -4
  8. package/README-SERVICE-OPT.md +4 -4
  9. package/README-SERVICE.md +4 -4
  10. package/README.md +30 -18
  11. package/bin/mb_health.js +3 -0
  12. package/dist/broadcastServerTypes.d.ts +25 -3
  13. package/dist/{update.js → checkUpdates.js} +10 -5
  14. package/dist/dgram/export.d.ts +1 -0
  15. package/dist/dgram/export.js +1 -0
  16. package/dist/frontend.js +1 -1
  17. package/dist/frontendTypes.d.ts +1 -1
  18. package/dist/helpers.js +10 -1
  19. package/dist/index.d.ts +1 -0
  20. package/dist/index.js +1 -0
  21. package/dist/matterbridge.d.ts +3 -2
  22. package/dist/matterbridge.js +41 -4
  23. package/dist/matterbridgeAccessoryPlatform.d.ts +2 -1
  24. package/dist/matterbridgeDynamicPlatform.d.ts +2 -1
  25. package/dist/matterbridgePlatform.d.ts +2 -32
  26. package/dist/matterbridgePlatformTypes.d.ts +32 -0
  27. package/dist/matterbridgePlatformTypes.js +1 -0
  28. package/dist/matterbridgeTypes.d.ts +2 -1
  29. package/dist/mb_health.d.ts +10 -0
  30. package/dist/mb_health.js +77 -0
  31. package/dist/pluginManager.d.ts +2 -1
  32. package/dist/pluginManager.js +14 -0
  33. package/dist/{workers.d.ts → worker.d.ts} +0 -1
  34. package/dist/workerCheckUpdates.d.ts +1 -0
  35. package/dist/workerCheckUpdates.js +37 -0
  36. package/dist/workerGlobalPrefix.js +1 -1
  37. package/dist/workerTypes.d.ts +1 -1
  38. package/frontend/build/assets/index.js +4 -4
  39. package/frontend/package.json +1 -1
  40. package/npm-shrinkwrap.json +20 -2
  41. package/package.json +13 -8
  42. /package/dist/{update.d.ts → checkUpdates.d.ts} +0 -0
  43. /package/dist/{workers.js → worker.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,4 +1,4 @@
1
- # <img src="https://matterbridge.io/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge changelog
1
+ # <img src="https://matterbridge.io/assets/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
 
@@ -17,7 +17,7 @@ The project will evolve to a multi-threaded architecture (the CLI will become th
17
17
  - all plugins in bridge mode;
18
18
  - each plugin in childbridge mode;
19
19
 
20
- - check updates;
20
+ - check updates;
21
21
  - npm install;
22
22
  - ✅ get the global node_modules directory;
23
23
 
@@ -34,14 +34,22 @@ Advantages:
34
34
 
35
35
  - [matterbridge]: Added brand to MatterbridgeAccessoryPlatform and MatterbridgeDynamicPlatform.
36
36
  - [PluginManager]: Verify brand of MatterbridgePlatform, MatterbridgeAccessoryPlatform and MatterbridgeDynamicPlatform.
37
+ - [PluginManager]: Added frontend message when a plugin is not added cause it is in the pluginIgnoreList or for other issues.
37
38
  - [MatterbridgePlatform]: Verify brand of MatterbridgeEndpoint.
38
- - [BasicVideoPlayer]: Added Basic Video Player class (suported by SmartThings).
39
+ - [BasicVideoPlayer]: Added **Basic Video Player** class (suported by SmartThings).
40
+ - [frontend]: Added **pluginIgnoreList** to avoid to install a plugin that is only a test or a name reservation on npm.
41
+ - [docker]: Added instructions about how to disable the health check when you override the frontend port.
42
+ - [Alexa]: Added a full review of supported device types and known issues. Thanks [Tamer Salah](https://github.com/tammeryousef1006).
43
+ - [virtual]: Added outlet to mounted switch device type in virtual devices (Matter .1.4.2).
44
+ - [package]: Added @matterbridge/thread monorepo scoped package.
39
45
 
40
46
  ### Changed
41
47
 
42
48
  - [package]: Updated dependencies.
43
- - [docker]: Clarified in docker readme the content of the matterbridge docker images on Docker Hub.
44
- - [frontend]: The frontend now shows when the plugin version is from the matterbridge docker image with tag dev.
49
+ - [docker]: Clarified in [README-DOCKER.md](README-DOCKER.md) the content of the matterbridge docker images on Docker Hub.
50
+ - [frontend]: Bumped `frontend` version to v. 3.4.3.
51
+ - [frontend]: For the matterbridge docker image with tag dev, the frontend now shows the versions with the tag git.
52
+ - [worker]: Bumped worker module to v. 1.1.0.
45
53
 
46
54
  <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a>
47
55
 
@@ -58,7 +66,7 @@ Advantages:
58
66
  - [mb_mdns]: Added --ip-filter params to filter incoming mDns messages by sender ip.
59
67
  - [express]: Added a login check for internal express api. The /health and /memory api don't need a login. Thanks Rogibaer (https://github.com/Luligu/matterbridge-hass/issues/149).
60
68
  - [readme]: Added a section with the data structure and backup/restore guidelines.
61
- - [matterbridge]: Add brand to MatterbridgePlatform and MatterbridgeEndpoint.
69
+ - [matterbridge]: Added brand to MatterbridgePlatform and MatterbridgeEndpoint.
62
70
 
63
71
  ### Changed
64
72
 
package/README-DEV.md CHANGED
@@ -1,9 +1,9 @@
1
- # <img src="https://matterbridge.io/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge development
1
+ # <img src="https://matterbridge.io/assets/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge development
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)
5
- [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge?label=docker%20version&sort=semver)](https://hub.docker.com/r/luligu/matterbridge)
6
- [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge.svg)](https://hub.docker.com/r/luligu/matterbridge)
5
+ [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge/latest?label=docker%20version)](https://hub.docker.com/r/luligu/matterbridge)
6
+ [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge?label=docker%20pulls)](https://hub.docker.com/r/luligu/matterbridge)
7
7
  ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
8
8
  ![CodeQL](https://github.com/Luligu/matterbridge/actions/workflows/codeql.yml/badge.svg)
9
9
  [![codecov](https://codecov.io/gh/Luligu/matterbridge/branch/main/graph/badge.svg)](https://codecov.io/gh/Luligu/matterbridge)
package/README-DOCKER.md CHANGED
@@ -1,45 +1,41 @@
1
- # <img src="https://matterbridge.io/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge docker configuration
1
+ # <img src="https://matterbridge.io/assets/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge Docker configuration
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)
5
- [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge?label=docker%20version&sort=semver)](https://hub.docker.com/r/luligu/matterbridge)
6
- [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge.svg)](https://hub.docker.com/r/luligu/matterbridge)
5
+ [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge/latest?label=docker%20version)](https://hub.docker.com/r/luligu/matterbridge)
6
+ [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge?label=docker%20pulls)](https://hub.docker.com/r/luligu/matterbridge)
7
7
  ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
8
8
  ![CodeQL](https://github.com/Luligu/matterbridge/actions/workflows/codeql.yml/badge.svg)
9
9
  [![codecov](https://codecov.io/gh/Luligu/matterbridge/branch/main/graph/badge.svg)](https://codecov.io/gh/Luligu/matterbridge)
10
10
 
11
- [![power by](https://img.shields.io/badge/powered%20by-matter--history-blue)](https://www.npmjs.com/package/matter-history)
12
- [![power by](https://img.shields.io/badge/powered%20by-node--ansi--logger-blue)](https://www.npmjs.com/package/node-ansi-logger)
13
- [![power by](https://img.shields.io/badge/powered%20by-node--persist--manager-blue)](https://www.npmjs.com/package/node-persist-manager)
11
+ [![powered by](https://img.shields.io/badge/powered%20by-matter--history-blue)](https://www.npmjs.com/package/matter-history)
12
+ [![powered by](https://img.shields.io/badge/powered%20by-node--ansi--logger-blue)](https://www.npmjs.com/package/node-ansi-logger)
13
+ [![powered by](https://img.shields.io/badge/powered%20by-node--persist--manager-blue)](https://www.npmjs.com/package/node-persist-manager)
14
14
 
15
15
  ---
16
16
 
17
- # Advanced configuration
17
+ # Production configuration
18
18
 
19
- ## Run matterbridge with docker and docker compose
19
+ ## Run Matterbridge with Docker and Docker Compose
20
20
 
21
- The Matterbridge Docker images, which include a manifest list for the linux/amd64 and linux/arm64 architectures, are published on [**Docker Hub**](https://hub.docker.com/r/luligu/matterbridge). If you use the matterbridge docker images, please consider giving them a star on [**Docker Hub**](https://hub.docker.com/r/luligu/matterbridge).
21
+ The Matterbridge Docker images (multi-arch manifest list for **linux/amd64** and **linux/arm64**) are published on [**Docker Hub**](https://hub.docker.com/r/luligu/matterbridge). If you use them, please consider starring the project on [**Docker Hub**](https://hub.docker.com/r/luligu/matterbridge).
22
22
 
23
- The image (tag **latest**) includes matterbridge and all official plugins with the latest release as published on npm. The image is based on node:22-bookworm-slim. Since all official plugins are included, you can directly select and add a plugin without installing it.
23
+ The image (tag **latest**) includes Matterbridge and all official plugins, using the latest release published on npm. It is based on `node:22-bookworm-slim`. Since all official plugins are included, you can select and add a plugin without installing anything.
24
24
 
25
- The image (tag **dev**) includes matterbridge and all official plugins with the latest push on GitHub. The image is based on node:22-bookworm-slim. Since all official plugins are included, you can directly select and add a plugin without installing it. If you update to the latest dev from the frontend, you override the latest push on GitHub with the latest dev published on npm.
25
+ The image (tag **dev**) includes Matterbridge and all official plugins from the latest push on GitHub. It is based on `node:22-bookworm-slim`. Since all official plugins are included, you can select and add a plugin without installing anything. Note: if you update to the latest **dev** from the frontend, you will override the GitHub version with the latest **dev** published on npm.
26
26
 
27
- For development and testing see also the **ubuntu** and **alpine** [Development Images](README-DOCKER.md#development-images).
27
+ The image (tag **ubuntu**) includes only Matterbridge, using the latest release published on npm. This image (**for test and development only**) is based on `ubuntu:latest` with Node.js 24 from NodeSource. Plugins are not included in the image; they will be installed on first run. This image preinstalls `bluetooth`, `build-essential`, and `python` packages (useful for plugins that require native builds).
28
28
 
29
- ### Docker health check
30
-
31
- All images integrate the health check.
29
+ The image (tag **alpine**) includes only Matterbridge, using the latest release published on npm. This image (**for test and development only**) is based on `node:24-alpine`. Plugins are not included in the image; they will be installed on first run.
32
30
 
33
- How Health Checks Work in Different Scenarios
34
-
35
- With docker-compose:
31
+ ### Docker health check
36
32
 
37
- Docker monitors the health check and can restart the container if needed.
33
+ All images include a health check.
38
34
 
39
- With docker run:
35
+ How health checks work in different scenarios:
40
36
 
41
- The health check still runs in the background, but:
42
- The container doesn’t restart automatically if it becomes unhealthy.
37
+ - With Docker Compose: Docker monitors the health check and can restart the container (depending on your restart policy).
38
+ - With `docker run`: the health check still runs, but the container will not restart automatically when it becomes unhealthy.
43
39
 
44
40
  You can manually check the health status:
45
41
 
@@ -47,9 +43,9 @@ You can manually check the health status:
47
43
  docker exec -it matterbridge curl -v http://localhost:8283/health
48
44
  ```
49
45
 
50
- ### First create the Matterbridge directories
46
+ ### Create the Matterbridge directories first
51
47
 
52
- This will create the required directories in your home directory if they don't exist
48
+ This creates the required directories in your home directory (if they don't already exist):
53
49
 
54
50
  ```bash
55
51
  cd ~
@@ -59,9 +55,9 @@ mkdir -p ~/.mattercert
59
55
  sudo chown -R $USER:$USER ~/Matterbridge ~/.matterbridge ~/.mattercert
60
56
  ```
61
57
 
62
- You may need to adapt the script to your setup.
58
+ You may need to adapt the paths to your setup.
63
59
 
64
- ### Add your user to docker group
60
+ ### Add your user to the docker group
65
61
 
66
62
  If you don't want to use sudo with docker commands, run this command:
67
63
 
@@ -70,11 +66,11 @@ sudo groupadd docker
70
66
  sudo usermod -aG docker $USER
71
67
  ```
72
68
 
73
- 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.
69
+ After adding your user to the `docker` group, log out and log back in so your current session picks up the new group membership.
74
70
 
75
- ### Run the Docker container and start it
71
+ ### Run the container
76
72
 
77
- The container must have full access to the host network (needed for mdns and Matter protocol).
73
+ The container must have full access to the host network (needed for mDNS and the Matter protocol).
78
74
 
79
75
  ```bash
80
76
  sudo docker run --name matterbridge \
@@ -84,9 +80,9 @@ sudo docker run --name matterbridge \
84
80
  --network host --restart always -d luligu/matterbridge:latest
85
81
  ```
86
82
 
87
- You may need to adapt the script to your setup.
83
+ You may need to adapt the paths to your setup.
88
84
 
89
- ### Run the Docker container and start it adding different parameters (i.e. frontend on port 8585)
85
+ ### Run the container with extra parameters (e.g. frontend on port 8585)
90
86
 
91
87
  ```bash
92
88
  sudo docker run --name matterbridge \
@@ -97,18 +93,20 @@ sudo docker run --name matterbridge \
97
93
  matterbridge --docker --frontend 8585
98
94
  ```
99
95
 
100
- If you override, always use `matterbridge --docker` like first part of the command.
96
+ If you override the command, always start it with `matterbridge --docker`.
101
97
 
102
- ### Run with docker compose
98
+ **If you change the frontend port, overriding the default command of the images, docker will report the container unhealty unless you add the --no-healthcheck param**.
103
99
 
104
- The docker-compose.yml file is available in the docker directory of the package
100
+ ### Run with Docker Compose
101
+
102
+ The `docker-compose.yml` file is available in the `docker` directory of this repository:
105
103
 
106
104
  ```yaml
107
105
  services:
108
106
  matterbridge:
109
107
  container_name: matterbridge
110
108
  image: luligu/matterbridge:latest # Matterbridge image with the tag latest
111
- network_mode: host # Ensures the Matter mdns works
109
+ network_mode: host # Ensures the Matter mDNS works
112
110
  restart: always # Ensures the container always restarts automatically
113
111
  volumes:
114
112
  - "${HOME}/Matterbridge:/root/Matterbridge" # Mounts the Matterbridge plugin directory
@@ -116,21 +114,21 @@ services:
116
114
  - "${HOME}/.mattercert:/root/.mattercert" # Mounts the Matterbridge certificate directory
117
115
  ```
118
116
 
119
- Copy it in the home directory or edit the existing one to add the matterbridge service.
117
+ Copy it to your home directory or edit your existing compose file to add the Matterbridge service.
120
118
 
121
- Then start docker compose with:
119
+ Then start Docker Compose with:
122
120
 
123
121
  ```bash
124
122
  docker compose up -d
125
123
  ```
126
124
 
127
- or start only the matterbridge container with:
125
+ Or start only the Matterbridge container with:
128
126
 
129
127
  ```bash
130
128
  docker compose up -d matterbridge
131
129
  ```
132
130
 
133
- If you need to start matterbridge adding different parameters (i.e. frontend on port 8585), you can override the default command adding the line command to the service:
131
+ If you need to start Matterbridge with extra parameters (e.g. frontend on port 8585), override the default command by adding a `command` line to the service:
134
132
 
135
133
  ```yaml
136
134
  services:
@@ -139,17 +137,24 @@ services:
139
137
  command: ["matterbridge", "--docker", "--frontend", "8585"]
140
138
  ```
141
139
 
142
- If you override, always use `["matterbridge", "--docker"]` like first part of the command.
140
+ If you override the command, always start it with `["matterbridge", "--docker"]`.
143
141
 
144
- ### Stop with docker compose
142
+ **If you change the frontend port, overriding the default command of the images, docker will report the container unhealty unless you add:**.
143
+
144
+ ```yaml
145
+ healthcheck:
146
+ disable: true
147
+ ```
148
+
149
+ ### Stop with Docker Compose
145
150
 
146
151
  ```bash
147
152
  docker compose down
148
153
  ```
149
154
 
150
- ### Update with docker compose
155
+ ### Update with Docker Compose
151
156
 
152
- This will pull the new matterbridge image and restart only the matterbridge container.
157
+ This pulls the new Matterbridge image and restarts only the Matterbridge container:
153
158
 
154
159
  ```bash
155
160
  docker compose pull matterbridge
@@ -180,13 +185,13 @@ docker stop matterbridge
180
185
  docker restart matterbridge
181
186
  ```
182
187
 
183
- ### Shows the logs
188
+ ### Show the logs
184
189
 
185
190
  ```bash
186
191
  docker logs matterbridge
187
192
  ```
188
193
 
189
- ### Shows the logs for a time interval
194
+ ### Show the logs for a time interval
190
195
 
191
196
  ```bash
192
197
  docker logs \
@@ -195,15 +200,15 @@ docker logs \
195
200
  matterbridge
196
201
  ```
197
202
 
198
- ### Shows the logs real time (tail)
203
+ ### Show the logs in real time (tail)
199
204
 
200
205
  ```bash
201
206
  docker logs --tail 1000 -f matterbridge
202
207
  ```
203
208
 
204
- ### Prevent the logs to grow
209
+ ### Prevent log growth
205
210
 
206
- If you want to prevent the docker logs to grow too much, you can configure Docker's logging options globally.
211
+ If you want to prevent Docker logs from growing too much, you can configure Docker's logging options globally.
207
212
 
208
213
  **Warning**: This will restart Docker and affect all running containers.
209
214
 
@@ -211,7 +216,7 @@ If you want to prevent the docker logs to grow too much, you can configure Docke
211
216
  sudo nano /etc/docker/daemon.json
212
217
  ```
213
218
 
214
- Add or update the logging configuration in the daemon.json file:
219
+ Add or update the logging configuration in `daemon.json`:
215
220
 
216
221
  ```json
217
222
  {
@@ -234,12 +239,4 @@ Save the file and restart Docker:
234
239
  sudo systemctl restart docker
235
240
  ```
236
241
 
237
- **Note**: This configuration applies to new containers. Existing containers will need to be recreated to use the new logging settings.
238
-
239
- ## Development images
240
-
241
- On [**Docker Hub**](https://hub.docker.com/r/luligu/matterbridge) are also published **for test and development** the Matterbridge ubuntu and alpine images, which include a manifest list for the linux/amd64, linux/arm64 architectures and are based on node 24.x.
242
-
243
- The image (tag **ubuntu**) includes only matterbridge with the latest release (as published on npm). The plugins are not included in the image but they will be reinstalled on the first run. This image has preinstalled bluetooth essentials and python (it can be used with plugins that require bluetooth, build-essential and python).
244
-
245
- The image (tag **alpine**) includes only matterbridge with the latest release (as published on npm). The plugins are not included in the image but they will be reinstalled on the first run.
242
+ **Note**: This configuration applies to new containers. Existing containers must be recreated to use the new logging settings.
@@ -1,9 +1,9 @@
1
- # <img src="https://matterbridge.io/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge launchctl configuration (macOS)
1
+ # <img src="https://matterbridge.io/assets/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge launchctl configuration (macOS)
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)
5
- [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge?label=docker%20version&sort=semver)](https://hub.docker.com/r/luligu/matterbridge)
6
- [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge.svg)](https://hub.docker.com/r/luligu/matterbridge)
5
+ [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge/latest?label=docker%20version)](https://hub.docker.com/r/luligu/matterbridge)
6
+ [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge?label=docker%20pulls)](https://hub.docker.com/r/luligu/matterbridge)
7
7
  ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
8
8
  ![CodeQL](https://github.com/Luligu/matterbridge/actions/workflows/codeql.yml/badge.svg)
9
9
  [![codecov](https://codecov.io/gh/Luligu/matterbridge/branch/main/graph/badge.svg)](https://codecov.io/gh/Luligu/matterbridge)
@@ -14,7 +14,7 @@
14
14
 
15
15
  ---
16
16
 
17
- # Advanced configuration
17
+ # Production configuration
18
18
 
19
19
  ## Run matterbridge as system service with launchctl (macOS) and its own global node_modules directory
20
20
 
package/README-NGINX.md CHANGED
@@ -1,9 +1,9 @@
1
- # <img src="https://matterbridge.io/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge NGINX configuration
1
+ # <img src="https://matterbridge.io/assets/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge NGINX configuration
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)
5
- [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge?label=docker%20version&sort=semver)](https://hub.docker.com/r/luligu/matterbridge)
6
- [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge.svg)](https://hub.docker.com/r/luligu/matterbridge)
5
+ [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge/latest?label=docker%20version)](https://hub.docker.com/r/luligu/matterbridge)
6
+ [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge?label=docker%20pulls)](https://hub.docker.com/r/luligu/matterbridge)
7
7
  ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
8
8
  ![CodeQL](https://github.com/Luligu/matterbridge/actions/workflows/codeql.yml/badge.svg)
9
9
  [![codecov](https://codecov.io/gh/Luligu/matterbridge/branch/main/graph/badge.svg)](https://codecov.io/gh/Luligu/matterbridge)
package/README-PODMAN.md CHANGED
@@ -1,9 +1,9 @@
1
- # <img src="https://matterbridge.io/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge Podman configuration
1
+ # <img src="https://matterbridge.io/assets/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge Podman configuration
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)
5
- [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge?label=docker%20version&sort=semver)](https://hub.docker.com/r/luligu/matterbridge)
6
- [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge.svg)](https://hub.docker.com/r/luligu/matterbridge)
5
+ [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge/latest?label=docker%20version)](https://hub.docker.com/r/luligu/matterbridge)
6
+ [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge?label=docker%20pulls)](https://hub.docker.com/r/luligu/matterbridge)
7
7
  ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
8
8
  ![CodeQL](https://github.com/Luligu/matterbridge/actions/workflows/codeql.yml/badge.svg)
9
9
  [![codecov](https://codecov.io/gh/Luligu/matterbridge/branch/main/graph/badge.svg)](https://codecov.io/gh/Luligu/matterbridge)
@@ -14,7 +14,7 @@
14
14
 
15
15
  ---
16
16
 
17
- # Advanced configuration
17
+ # Production configuration
18
18
 
19
19
  ## Install Podman if it is not already installed
20
20
 
@@ -1,9 +1,9 @@
1
- # <img src="https://matterbridge.io/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge systemd configuration with local global node_modules
1
+ # <img src="https://matterbridge.io/assets/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge systemd configuration with local global node_modules
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)
5
- [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge?label=docker%20version&sort=semver)](https://hub.docker.com/r/luligu/matterbridge)
6
- [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge.svg)](https://hub.docker.com/r/luligu/matterbridge)
5
+ [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge/latest?label=docker%20version)](https://hub.docker.com/r/luligu/matterbridge)
6
+ [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge?label=docker%20pulls)](https://hub.docker.com/r/luligu/matterbridge)
7
7
  ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
8
8
  ![CodeQL](https://github.com/Luligu/matterbridge/actions/workflows/codeql.yml/badge.svg)
9
9
  [![codecov](https://codecov.io/gh/Luligu/matterbridge/branch/main/graph/badge.svg)](https://codecov.io/gh/Luligu/matterbridge)
@@ -14,7 +14,7 @@
14
14
 
15
15
  ---
16
16
 
17
- # Advanced configuration
17
+ # Production advanced configuration
18
18
 
19
19
  ## Run matterbridge as a daemon with systemctl (Linux only) with local global node_modules
20
20
 
@@ -1,9 +1,9 @@
1
- # <img src="https://matterbridge.io/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge systemd configuration with private global node_modules
1
+ # <img src="https://matterbridge.io/assets/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge systemd configuration with private global node_modules
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)
5
- [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge?label=docker%20version&sort=semver)](https://hub.docker.com/r/luligu/matterbridge)
6
- [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge.svg)](https://hub.docker.com/r/luligu/matterbridge)
5
+ [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge/latest?label=docker%20version)](https://hub.docker.com/r/luligu/matterbridge)
6
+ [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge?label=docker%20pulls)](https://hub.docker.com/r/luligu/matterbridge)
7
7
  ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
8
8
  ![CodeQL](https://github.com/Luligu/matterbridge/actions/workflows/codeql.yml/badge.svg)
9
9
  [![codecov](https://codecov.io/gh/Luligu/matterbridge/branch/main/graph/badge.svg)](https://codecov.io/gh/Luligu/matterbridge)
@@ -14,7 +14,7 @@
14
14
 
15
15
  ---
16
16
 
17
- # Advanced configuration
17
+ # Production advanced configuration
18
18
 
19
19
  ## Run matterbridge as a daemon with systemctl (Linux only) with user matterbridge and private global node_modules
20
20
 
package/README-SERVICE.md CHANGED
@@ -1,9 +1,9 @@
1
- # <img src="https://matterbridge.io/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge systemd configuration
1
+ # <img src="https://matterbridge.io/assets/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge systemd configuration
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)
5
- [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge?label=docker%20version&sort=semver)](https://hub.docker.com/r/luligu/matterbridge)
6
- [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge.svg)](https://hub.docker.com/r/luligu/matterbridge)
5
+ [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge/latest?label=docker%20version)](https://hub.docker.com/r/luligu/matterbridge)
6
+ [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge?label=docker%20pulls)](https://hub.docker.com/r/luligu/matterbridge)
7
7
  ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
8
8
  ![CodeQL](https://github.com/Luligu/matterbridge/actions/workflows/codeql.yml/badge.svg)
9
9
  [![codecov](https://codecov.io/gh/Luligu/matterbridge/branch/main/graph/badge.svg)](https://codecov.io/gh/Luligu/matterbridge)
@@ -14,7 +14,7 @@
14
14
 
15
15
  ---
16
16
 
17
- # Advanced configuration
17
+ # Production configuration
18
18
 
19
19
  ## Run matterbridge as a daemon with systemctl (Linux only)
20
20
 
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
- # <img src="https://matterbridge.io/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
1
+ # <img src="https://matterbridge.io/assets/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)
5
- [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge?label=docker%20version&sort=semver)](https://hub.docker.com/r/luligu/matterbridge)
6
- [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge.svg)](https://hub.docker.com/r/luligu/matterbridge)
5
+ [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge/latest?label=docker%20version)](https://hub.docker.com/r/luligu/matterbridge)
6
+ [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge?label=docker%20pulls)](https://hub.docker.com/r/luligu/matterbridge)
7
7
  ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
8
8
  ![CodeQL](https://github.com/Luligu/matterbridge/actions/workflows/codeql.yml/badge.svg)
9
9
  [![codecov](https://codecov.io/gh/Luligu/matterbridge/branch/main/graph/badge.svg)](https://codecov.io/gh/Luligu/matterbridge)
@@ -39,7 +39,7 @@ It runs perfectly on Linux, macOS and Windows.
39
39
 
40
40
  If you like this project and find it useful, please consider giving it a star on [GitHub](https://github.com/Luligu/matterbridge) and sponsoring it.
41
41
 
42
- <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/bmc-button.svg" alt="Buy me a coffee" width="120"></a>
42
+ <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="120"></a>
43
43
 
44
44
  ## Acknowledgements
45
45
 
@@ -282,7 +282,7 @@ It is the ideal companion of the official [Matterbridge Home Assistant Add-on](h
282
282
  ### Webhooks
283
283
 
284
284
  <a href="https://github.com/Luligu/matterbridge-webhooks">
285
- <img src="https://matterbridge.io/matterbridge.svg" alt="Matterbridge logo" width="100" />
285
+ <img src="https://matterbridge.io/assets/matterbridge.svg" alt="Matterbridge logo" width="100" />
286
286
  </a>
287
287
 
288
288
  Matterbridge Webhooks plugin allows you to expose any webhooks to Matter.
@@ -290,7 +290,7 @@ Matterbridge Webhooks plugin allows you to expose any webhooks to Matter.
290
290
  ### BTHome
291
291
 
292
292
  <a href="https://github.com/Luligu/matterbridge-webhooks">
293
- <img src="https://matterbridge.io/matterbridge.svg" alt="Matterbridge logo" width="100" />
293
+ <img src="https://matterbridge.io/assets/matterbridge.svg" alt="Matterbridge logo" width="100" />
294
294
  </a>
295
295
 
296
296
  Matterbridge BTHome allows you to expose any BTHome device to Matter using the native bluetooth of the host machine.
@@ -553,11 +553,15 @@ In Matter spec the Window Covering cluster uses:
553
553
  - 10000 = fully closed
554
554
  - 0 = fully opened
555
555
 
556
- So depending on the controller you pair with, you should see 100 for fully closed and 0 for fully open.
556
+ So you should see 100% for fully closed and 0% for fully open.
557
557
 
558
- Some controllers invert the position so you need to verify your controller.
558
+ Some controllers interpret the position the other way around (they show “open” as “closed” and vice versa). If the percentages look reversed, it’s a controller-specific UI behavior. Alexa is a common example.
559
559
 
560
- ## Data structure
560
+ ## How to disable Restart matterbridge and update matterbridge
561
+
562
+ In the settings page of the frontend, set virtual devices to Disabled.
563
+
564
+ ## Data structure for backup and restore
561
565
 
562
566
  Matterbridge uses three directories. These are the default locations (some advanced setups may change them, so check your configuration):
563
567
 
@@ -641,14 +645,22 @@ Install Google Home on an iPhone and complete the commissioning there. Once set
641
645
 
642
646
  ## Alexa
643
647
 
644
- Tested by Tamer Salah
645
-
646
- Alexa needs the standard port 5540 to pair (from matter.js readme).
647
-
648
- There is no support for these Matter device types:
649
-
650
- - pressure sensor
651
- - flow sensor
648
+ Tested by [Tamer Salah](https://github.com/tammeryousef1006).
649
+
650
+ Alexa integrates with Matterbridge to locally control non-native devices by acting as a Matter Controller. While Amazon has expanded support to include core categories like lighting, plugs, thermostats, locks, and sensors, many advanced or specialized device types defined in the latest Matter specifications are not yet recognized by the Alexa ecosystem.
651
+ Alexa Support vs. Matterbridge Test Results
652
+ During testing, Alexa successfully managed most standard smart home categories but failed to recognize or fully support the following types exposed via Matterbridge:
653
+ Appliances & Kitchen: Cooktop, Microwave Oven, Oven, Refrigerator, Laundry Washer/Dryer, and Extractor Hood.
654
+ Energy & Utilities: Battery Storage, EVSE (Electric Vehicle Supply Equipment), and Solar Power.
655
+ Water & Infrastructure: Water Valve, Water Heater, Water Leak/Freeze sensors, Pump, and Rain Sensor.
656
+ Media & Controls: Basic Video Player and Speaker.
657
+ Specialized Sensors/Inputs: Heat Pump, Latching Switch, Flow, and Pressure.
658
+ Limited Support: Cover Lift and Tilt devices only functioned for lift operations, with tilt functionality unsupported.
659
+ Integration Limitations
660
+ Even when a device is recognized, Alexa may face specific bridge-related limitations:
661
+ Device Caps: Alexa currently supports a maximum of 50 bridged devices per connection; exceeding this limit may cause devices to disappear from the Alexa App.
662
+ Latency: While Matter is designed for local control, status updates in the Alexa app may occasionally lag if the app remains open during external state changes.
663
+ Feature Gaps: Advanced features for certain types, such as unlocking specific smart locks, may be disabled by default for security and require manual activation within the app
652
664
 
653
665
  Known issues:
654
666
 
@@ -687,7 +699,7 @@ On my side I sponsor the packages that I use in this project and single develope
687
699
  Click on the badge below to get started:
688
700
 
689
701
  <a href="https://www.buymeacoffee.com/luligugithub">
690
- <img src="https://matterbridge.io/bmc-button.svg" alt="Buy me a coffee" width="120">
702
+ <img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="120">
691
703
  </a>
692
704
 
693
705
  Thank you for your support!
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ const { mbHealthMain } = await import('../dist/mb_health.js');
3
+ await mbHealthMain();
@@ -1,8 +1,8 @@
1
1
  import { LogLevel } from 'node-ansi-logger';
2
2
  import { EndpointNumber } from '@matter/types/datatype';
3
- import { RefreshRequiredChanged, WsMessageBroadcast } from './frontendTypes.js';
4
- import type { PlatformConfig, PlatformSchema } from './matterbridgePlatform.js';
5
- import type { ApiMatter, ApiPlugin, BaseDevice, Plugin, StoragePlugin } from './matterbridgeTypes.js';
3
+ import type { RefreshRequiredChanged, WsMessageBroadcast } from './frontendTypes.js';
4
+ import type { PlatformConfig, PlatformMatterbridge, PlatformSchema } from './matterbridgePlatformTypes.js';
5
+ import type { ApiMatter, ApiPlugin, BaseDevice, Plugin, SharedMatterbridge, StoragePlugin } from './matterbridgeTypes.js';
6
6
  export type WorkerSrcType = 'manager' | 'matterbridge' | 'plugins' | 'devices' | 'frontend' | 'matter' | 'platform' | 'spawn' | 'updates';
7
7
  export type WorkerDstType = 'manager' | 'matterbridge' | 'plugins' | 'devices' | 'frontend' | 'matter' | 'platform' | 'spawn' | 'updates' | 'all';
8
8
  type NormalizeRequest<T> = T extends {
@@ -184,6 +184,28 @@ export type WorkerMessageTypes = {
184
184
  };
185
185
  };
186
186
  };
187
+ 'matterbridge_platform': {
188
+ request: {
189
+ params: undefined;
190
+ };
191
+ response: {
192
+ result: {
193
+ data: PlatformMatterbridge;
194
+ success: true;
195
+ };
196
+ };
197
+ };
198
+ 'matterbridge_shared': {
199
+ request: {
200
+ params: undefined;
201
+ };
202
+ response: {
203
+ result: {
204
+ data: SharedMatterbridge;
205
+ success: true;
206
+ };
207
+ };
208
+ };
187
209
  'matter_start': {
188
210
  request: {
189
211
  params: {