matterbridge 3.3.5-dev-20251028-d89f93f → 3.3.5-dev-20251031-3482891
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 +10 -0
- package/README-SERVICE-LOCAL.md +1 -54
- package/README.md +5 -1
- package/dist/matterbridgeEndpoint.js +6 -6
- package/dist/utils/colorUtils.js +2 -0
- package/npm-shrinkwrap.json +6 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,12 @@ Advantages:
|
|
|
30
30
|
|
|
31
31
|
## [3.3.5] - 2025-10-??
|
|
32
32
|
|
|
33
|
+
### Breaking Changes
|
|
34
|
+
|
|
35
|
+
- [concentrationMeasurement]: Changed the default unit of measurement to comply with the generally used (and supported by Apple Home). Is is always possible to pass a different unit of measurement.
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
|
|
33
39
|
- [thread]: Added get_log_level and set_log_level to BroadcastServer.
|
|
34
40
|
- [frontend]: Added password check to WebSocket.
|
|
35
41
|
|
|
@@ -38,6 +44,10 @@ Advantages:
|
|
|
38
44
|
- [package]: Updated dependencies.
|
|
39
45
|
- [frontend]: Bumped `frontend` version to 3.2.4.
|
|
40
46
|
|
|
47
|
+
### Fixed
|
|
48
|
+
|
|
49
|
+
- [service]: Fixed systemd configuration with local global node_modules.
|
|
50
|
+
|
|
41
51
|
<a href="https://www.buymeacoffee.com/luligugithub">
|
|
42
52
|
<img src="bmc-button.svg" alt="Buy me a coffee" width="80">
|
|
43
53
|
</a>
|
package/README-SERVICE-LOCAL.md
CHANGED
|
@@ -51,7 +51,7 @@ Create a systemctl configuration file for Matterbridge
|
|
|
51
51
|
sudo nano /etc/systemd/system/matterbridge.service
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
Add the following to this file, replacing
|
|
54
|
+
Add the following to this file, replacing 4 times (!) USER with your user name (e.g. WorkingDirectory=/home/pi/Matterbridge, User=pi and Group=pi and Environment="NPM_CONFIG_PREFIX=/home/pi/.npm-global"):
|
|
55
55
|
|
|
56
56
|
```
|
|
57
57
|
[Unit]
|
|
@@ -171,56 +171,3 @@ save it and run
|
|
|
171
171
|
```bash
|
|
172
172
|
sudo systemctl restart systemd-journald
|
|
173
173
|
```
|
|
174
|
-
|
|
175
|
-
## Verify that with your distro you can run sudo npm install -g matterbridge without the password
|
|
176
|
-
|
|
177
|
-
Run the following command to verify if you can install Matterbridge globally without being prompted for a password:
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
sudo npm install -g matterbridge --omit=dev
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
If you are not prompted for a password, no further action is required.
|
|
184
|
-
|
|
185
|
-
If that is not the case, open the sudoers file for editing using visudo
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
sudo visudo
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
verify the presence of of a line
|
|
192
|
-
|
|
193
|
-
```
|
|
194
|
-
@includedir /etc/sudoers.d
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
exit and create a configuration file for sudoers
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
sudo nano /etc/sudoers.d/matterbridge
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
add this line replacing USER with your user name (e.g. radxa ALL=(ALL) NOPASSWD: ALL)
|
|
204
|
-
|
|
205
|
-
```
|
|
206
|
-
<USER> ALL=(ALL) NOPASSWD: ALL
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
or if you prefers to only give access to npm without password try with (e.g. radxa ALL=(ALL) NOPASSWD: /usr/bin/npm)
|
|
210
|
-
|
|
211
|
-
```
|
|
212
|
-
<USER> ALL=(ALL) NOPASSWD: /usr/bin/npm
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
save the file and reload the settings with:
|
|
216
|
-
|
|
217
|
-
```bash
|
|
218
|
-
sudo chmod 0440 /etc/sudoers.d/matterbridge
|
|
219
|
-
sudo visudo -c
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
Verify if you can install Matterbridge globally without being prompted for a password:
|
|
223
|
-
|
|
224
|
-
```bash
|
|
225
|
-
sudo npm install -g matterbridge --omit=dev
|
|
226
|
-
```
|
package/README.md
CHANGED
|
@@ -82,7 +82,7 @@ Since Matter is designed as "a universal IPv6-based communication protocol for s
|
|
|
82
82
|
|
|
83
83
|
**Important:** You only need IPv6 on your local network - it doesn't matter if your internet provider doesn't provide IPv6 on the internet side (WAN).
|
|
84
84
|
|
|
85
|
-
Avoid using VLAN and firewall blocking the communications between the controllers and Matterbridge.
|
|
85
|
+
Avoid using VLAN, VM and firewall blocking the communications between the controllers and Matterbridge.
|
|
86
86
|
|
|
87
87
|
To pair matterbridge, you need a matter enabled controller (Apple Home, Smart Things, Google Home, Alexa, Home Assistant etc.).
|
|
88
88
|
|
|
@@ -172,6 +172,10 @@ Config editor:
|
|
|
172
172
|
|
|
173
173
|
[Service configurations](README-SERVICE.md)
|
|
174
174
|
|
|
175
|
+
or with local global node_modules
|
|
176
|
+
|
|
177
|
+
[Service configurations with local global node_modules](README-SERVICE-LOCAL.md)
|
|
178
|
+
|
|
175
179
|
### Run matterbridge as a system service with launchctl (macOS only)
|
|
176
180
|
|
|
177
181
|
[Launchctl configurations](README-MACOS-PLIST.md)
|
|
@@ -1177,7 +1177,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1177
1177
|
});
|
|
1178
1178
|
return this;
|
|
1179
1179
|
}
|
|
1180
|
-
createDefaultTvocMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.
|
|
1180
|
+
createDefaultTvocMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air, uncertainty) {
|
|
1181
1181
|
this.behaviors.require(TotalVolatileOrganicCompoundsConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1182
1182
|
measuredValue,
|
|
1183
1183
|
minMeasuredValue: null,
|
|
@@ -1217,7 +1217,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1217
1217
|
});
|
|
1218
1218
|
return this;
|
|
1219
1219
|
}
|
|
1220
|
-
createDefaultFormaldehydeConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.
|
|
1220
|
+
createDefaultFormaldehydeConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Mgm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1221
1221
|
this.behaviors.require(FormaldehydeConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1222
1222
|
measuredValue,
|
|
1223
1223
|
minMeasuredValue: null,
|
|
@@ -1228,7 +1228,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1228
1228
|
});
|
|
1229
1229
|
return this;
|
|
1230
1230
|
}
|
|
1231
|
-
createDefaultPm1ConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.
|
|
1231
|
+
createDefaultPm1ConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1232
1232
|
this.behaviors.require(Pm1ConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1233
1233
|
measuredValue,
|
|
1234
1234
|
minMeasuredValue: null,
|
|
@@ -1239,7 +1239,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1239
1239
|
});
|
|
1240
1240
|
return this;
|
|
1241
1241
|
}
|
|
1242
|
-
createDefaultPm25ConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.
|
|
1242
|
+
createDefaultPm25ConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1243
1243
|
this.behaviors.require(Pm25ConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1244
1244
|
measuredValue,
|
|
1245
1245
|
minMeasuredValue: null,
|
|
@@ -1250,7 +1250,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1250
1250
|
});
|
|
1251
1251
|
return this;
|
|
1252
1252
|
}
|
|
1253
|
-
createDefaultPm10ConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.
|
|
1253
|
+
createDefaultPm10ConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1254
1254
|
this.behaviors.require(Pm10ConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1255
1255
|
measuredValue,
|
|
1256
1256
|
minMeasuredValue: null,
|
|
@@ -1272,7 +1272,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1272
1272
|
});
|
|
1273
1273
|
return this;
|
|
1274
1274
|
}
|
|
1275
|
-
createDefaultRadonConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.
|
|
1275
|
+
createDefaultRadonConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Bqm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1276
1276
|
this.behaviors.require(RadonConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1277
1277
|
measuredValue,
|
|
1278
1278
|
minMeasuredValue: null,
|
package/dist/utils/colorUtils.js
CHANGED
|
@@ -146,9 +146,11 @@ export function xyToHsl(x, y) {
|
|
|
146
146
|
export function miredToKelvin(mired) {
|
|
147
147
|
return Math.round(1000000 / mired);
|
|
148
148
|
}
|
|
149
|
+
export const miredsToKelvin = miredToKelvin;
|
|
149
150
|
export function kelvinToMired(kelvin) {
|
|
150
151
|
return Math.round(1000000 / kelvin);
|
|
151
152
|
}
|
|
153
|
+
export const kelvinToMireds = kelvinToMired;
|
|
152
154
|
export function kelvinToRGB(kelvin) {
|
|
153
155
|
kelvin = Math.max(1000, Math.min(40000, kelvin)) / 100;
|
|
154
156
|
let r, g, b;
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge",
|
|
3
|
-
"version": "3.3.5-dev-
|
|
3
|
+
"version": "3.3.5-dev-20251031-3482891",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "matterbridge",
|
|
9
|
-
"version": "3.3.5-dev-
|
|
9
|
+
"version": "3.3.5-dev-20251031-3482891",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@matter/main": "0.15.6",
|
|
@@ -972,10 +972,10 @@
|
|
|
972
972
|
}
|
|
973
973
|
},
|
|
974
974
|
"node_modules/glob/node_modules/minimatch": {
|
|
975
|
-
"version": "10.
|
|
976
|
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.
|
|
977
|
-
"integrity": "sha512-
|
|
978
|
-
"license": "
|
|
975
|
+
"version": "10.1.1",
|
|
976
|
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz",
|
|
977
|
+
"integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
|
|
978
|
+
"license": "BlueOak-1.0.0",
|
|
979
979
|
"dependencies": {
|
|
980
980
|
"@isaacs/brace-expansion": "^5.0.0"
|
|
981
981
|
},
|
package/package.json
CHANGED