matterbridge 3.0.0-edge.14 → 3.0.0-edge.16
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 -1
- package/README.md +20 -0
- package/dist/frontend.js +15 -0
- package/dist/matterbridgeEndpointHelpers.js +14 -0
- package/dist/update.js +3 -2
- package/frontend/build/asset-manifest.json +3 -3
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/js/{main.13560e6f.js → main.32273640.js} +12 -12
- package/frontend/build/static/js/{main.13560e6f.js.map → main.32273640.js.map} +1 -1
- package/npm-shrinkwrap.json +48 -48
- package/package.json +3 -3
- /package/frontend/build/static/js/{main.13560e6f.js.LICENSE.txt → main.32273640.js.LICENSE.txt} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -51,12 +51,17 @@ Modified clusters:
|
|
|
51
51
|
- [deviceTypes]: Added Robotic device type.
|
|
52
52
|
- [deviceTypes]: Added Appliances device types.
|
|
53
53
|
- [frontend]: Added the matterbridge aggregator serialNumber in the QRDiv.
|
|
54
|
+
- [frontend]: Added Power column in the Devices panel of the Home page.
|
|
55
|
+
- [frontend]: Added support for appliances and robot in IconView.
|
|
56
|
+
- [parameter]: Added getIntArrayParameter and getStringArrayParameter.
|
|
54
57
|
|
|
55
58
|
### Changed
|
|
56
59
|
|
|
57
60
|
- [package]: Updated package.
|
|
58
61
|
- [package]: Updated express to v5.1.0.
|
|
59
62
|
- [package]: Updated dependencies.
|
|
63
|
+
- [frontend]: Frontend v.2.6.3.
|
|
64
|
+
- [frontend]: Changed icons with mdiIcons in IconView.
|
|
60
65
|
- [package]: Added tsconfig.jest.json with "isolatedModules": true for ts-jest.
|
|
61
66
|
- [deviceTypes]: Updated device types to Matter 1.4.
|
|
62
67
|
- [clusters]: Updated cluster helpers to Matter 1.4.
|
|
@@ -71,9 +76,10 @@ Modified clusters:
|
|
|
71
76
|
- [matter.js]: Update to 0.13.0-alpha.0-20250423-8917d1d1d.
|
|
72
77
|
- [matter.js]: Update to 0.13.0-alpha.0-20250424-4760af1f3.
|
|
73
78
|
- [matter.js]: Update to 0.13.0-alpha.0-20250425-94b33ff98.
|
|
79
|
+
- [matter.js]: Update to 0.13.0-alpha.0-20250427-e7df8aa45.
|
|
80
|
+
- [matter.js]: Update to 0.13.0.
|
|
74
81
|
- [help]: Updated cli help screen.
|
|
75
82
|
- [logger]: Improved frontend logger cleaning.
|
|
76
|
-
- [parameter]: Added getIntArrayParameter and getStringArrayParameter.
|
|
77
83
|
|
|
78
84
|
### Fixed
|
|
79
85
|
|
package/README.md
CHANGED
|
@@ -250,6 +250,20 @@ It is the ideal companion of the official [Matterbridge Home Assistant Add-on](h
|
|
|
250
250
|
|
|
251
251
|
Matterbridge Webhooks plugin allows you to expose any webhooks to Matter..
|
|
252
252
|
|
|
253
|
+
### BTHome
|
|
254
|
+
|
|
255
|
+
<a href="https://github.com/Luligu/matterbridge-webhooks">
|
|
256
|
+
<img src="frontend/public/matterbridge.svg" alt="Matterbridge logo" width="100" />
|
|
257
|
+
</a>
|
|
258
|
+
|
|
259
|
+
Matterbridge BTHome allows you to expose any BTHome device to Matter using the native bluetooth of the host machine.
|
|
260
|
+
|
|
261
|
+
Features:
|
|
262
|
+
|
|
263
|
+
- The bluetooth works correctly on all platforms and is based on the @stoprocent fork of noble.
|
|
264
|
+
- The discovered BTHome devices are stored with all attributes to easily restart the plugin.
|
|
265
|
+
- The plugin has also a command line to test and verify the bluetooth adapter and the ble network.
|
|
266
|
+
|
|
253
267
|
### Accessory platform example
|
|
254
268
|
|
|
255
269
|
This is an example of an accessory platform plugin.
|
|
@@ -310,6 +324,12 @@ The history works in both bridge and childbridge mode.
|
|
|
310
324
|
|
|
311
325
|
The Eve app only shows the history when the plugins run like an AccessoryPlatform in childbridge mode (this means the plugin is paired directly).
|
|
312
326
|
|
|
327
|
+
## Third-party plugins
|
|
328
|
+
|
|
329
|
+
### [Loxone](https://github.com/andrasg/matterbridge-loxone)
|
|
330
|
+
|
|
331
|
+
A matterbridge plugin that allows connecting Loxone devices to Matter.
|
|
332
|
+
|
|
313
333
|
## How to install and add a plugin with the frontend (best option)
|
|
314
334
|
|
|
315
335
|
Just open the frontend on the link provided in the log, select a plugin and click install.
|
package/dist/frontend.js
CHANGED
|
@@ -979,6 +979,7 @@ export class Frontend {
|
|
|
979
979
|
return '';
|
|
980
980
|
};
|
|
981
981
|
let attributes = '';
|
|
982
|
+
let supportedModes = [];
|
|
982
983
|
device.forEachAttribute((clusterName, clusterId, attributeName, attributeId, attributeValue) => {
|
|
983
984
|
if (typeof attributeValue === 'undefined')
|
|
984
985
|
return;
|
|
@@ -996,6 +997,20 @@ export class Frontend {
|
|
|
996
997
|
attributes += `Heat to: ${attributeValue / 100}°C `;
|
|
997
998
|
if (clusterName === 'thermostat' && attributeName === 'occupiedCoolingSetpoint' && isValidNumber(attributeValue))
|
|
998
999
|
attributes += `Cool to: ${attributeValue / 100}°C `;
|
|
1000
|
+
const modeClusters = ['modeSelect', 'rvcRunMode', 'rvcCleanMode', 'laundryWasherMode', 'ovenMode', 'microwaveOvenMode'];
|
|
1001
|
+
if (modeClusters.includes(clusterName) && attributeName === 'supportedModes') {
|
|
1002
|
+
supportedModes = attributeValue;
|
|
1003
|
+
}
|
|
1004
|
+
if (modeClusters.includes(clusterName) && attributeName === 'currentMode') {
|
|
1005
|
+
const supportedMode = supportedModes.find((mode) => mode.mode === attributeValue);
|
|
1006
|
+
if (supportedMode)
|
|
1007
|
+
attributes += `Mode: ${supportedMode.label} `;
|
|
1008
|
+
else
|
|
1009
|
+
attributes += `Mode: ${attributeValue} `;
|
|
1010
|
+
}
|
|
1011
|
+
const operationalStateClusters = ['operationalState', 'rvcOperationalState'];
|
|
1012
|
+
if (operationalStateClusters.includes(clusterName) && attributeName === 'operationalState')
|
|
1013
|
+
attributes += `OpState: ${attributeValue} `;
|
|
999
1014
|
if (clusterName === 'pumpConfigurationAndControl' && attributeName === 'operationMode')
|
|
1000
1015
|
attributes += `Mode: ${attributeValue} `;
|
|
1001
1016
|
if (clusterName === 'valveConfigurationAndControl' && attributeName === 'currentState')
|
|
@@ -399,6 +399,20 @@ export function getAttributeId(endpoint, cluster, attribute) {
|
|
|
399
399
|
else if (attribute === 'levelValue')
|
|
400
400
|
return 0xa;
|
|
401
401
|
}
|
|
402
|
+
if (endpoint.behaviors.supported[lowercaseFirstLetter(cluster)]?.schema?.type === 'OperationalState') {
|
|
403
|
+
if (attribute === 'phaseList')
|
|
404
|
+
return 0x0;
|
|
405
|
+
else if (attribute === 'currentPhase')
|
|
406
|
+
return 0x1;
|
|
407
|
+
else if (attribute === 'countdownTime')
|
|
408
|
+
return 0x2;
|
|
409
|
+
else if (attribute === 'operationalStateList')
|
|
410
|
+
return 0x3;
|
|
411
|
+
else if (attribute === 'operationalState')
|
|
412
|
+
return 0x4;
|
|
413
|
+
else if (attribute === 'operationalError')
|
|
414
|
+
return 0x5;
|
|
415
|
+
}
|
|
402
416
|
return endpoint.behaviors.supported[lowercaseFirstLetter(cluster)]?.schema?.children?.find((child) => child.name === capitalizeFirstLetter(attribute))?.id;
|
|
403
417
|
}
|
|
404
418
|
}
|
package/dist/update.js
CHANGED
|
@@ -35,14 +35,15 @@ async function getMatterbridgeLatestVersion(matterbridge) {
|
|
|
35
35
|
}
|
|
36
36
|
async function getMatterbridgeDevVersion(matterbridge) {
|
|
37
37
|
const { getNpmPackageVersion } = await import('./utils/network.js');
|
|
38
|
-
getNpmPackageVersion('matterbridge', '
|
|
38
|
+
getNpmPackageVersion('matterbridge', 'dev')
|
|
39
39
|
.then(async (version) => {
|
|
40
40
|
matterbridge.matterbridgeDevVersion = version;
|
|
41
41
|
matterbridge.matterbridgeInformation.matterbridgeDevVersion = version;
|
|
42
42
|
await matterbridge.nodeContext?.set('matterbridgeDevVersion', version);
|
|
43
|
-
if (matterbridge.matterbridgeVersion.includes('-
|
|
43
|
+
if (matterbridge.matterbridgeVersion.includes('-dev.') && matterbridge.matterbridgeVersion !== version) {
|
|
44
44
|
matterbridge.log.notice(`Matterbridge@dev is out of date. Current version: ${matterbridge.matterbridgeVersion}. Latest dev version: ${matterbridge.matterbridgeDevVersion}.`);
|
|
45
45
|
matterbridge.frontend.wssSendRefreshRequired('matterbridgeDevVersion');
|
|
46
|
+
matterbridge.frontend.wssSendUpdateRequired();
|
|
46
47
|
}
|
|
47
48
|
})
|
|
48
49
|
.catch((error) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
3
|
"main.css": "./static/css/main.944b63c3.css",
|
|
4
|
-
"main.js": "./static/js/main.
|
|
4
|
+
"main.js": "./static/js/main.32273640.js",
|
|
5
5
|
"static/js/453.d855a71b.chunk.js": "./static/js/453.d855a71b.chunk.js",
|
|
6
6
|
"static/media/roboto-latin-700-normal.woff2": "./static/media/roboto-latin-700-normal.c4d6cab43bec89049809.woff2",
|
|
7
7
|
"static/media/roboto-latin-500-normal.woff2": "./static/media/roboto-latin-500-normal.599f66a60bdf974e578e.woff2",
|
|
@@ -77,11 +77,11 @@
|
|
|
77
77
|
"static/media/roboto-greek-ext-300-normal.woff": "./static/media/roboto-greek-ext-300-normal.60729cafbded24073dfb.woff",
|
|
78
78
|
"index.html": "./index.html",
|
|
79
79
|
"main.944b63c3.css.map": "./static/css/main.944b63c3.css.map",
|
|
80
|
-
"main.
|
|
80
|
+
"main.32273640.js.map": "./static/js/main.32273640.js.map",
|
|
81
81
|
"453.d855a71b.chunk.js.map": "./static/js/453.d855a71b.chunk.js.map"
|
|
82
82
|
},
|
|
83
83
|
"entrypoints": [
|
|
84
84
|
"static/css/main.944b63c3.css",
|
|
85
|
-
"static/js/main.
|
|
85
|
+
"static/js/main.32273640.js"
|
|
86
86
|
]
|
|
87
87
|
}
|
|
@@ -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.32273640.js"></script><link href="./static/css/main.944b63c3.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|