matterbridge 1.2.14 → 1.2.15
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 +16 -0
- package/README.md +3 -0
- package/dist/matterbridge.d.ts.map +1 -1
- package/dist/matterbridge.js +77 -82
- package/dist/matterbridge.js.map +1 -1
- package/frontend/build/asset-manifest.json +6 -6
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/css/main.57bd18a9.css +2 -0
- package/frontend/build/static/css/main.57bd18a9.css.map +1 -0
- package/frontend/build/static/js/{main.ed3f81ca.js → main.5886e61b.js} +3 -3
- package/frontend/build/static/js/main.5886e61b.js.map +1 -0
- package/package.json +2 -1
- package/frontend/build/static/css/main.979e07d2.css +0 -2
- package/frontend/build/static/css/main.979e07d2.css.map +0 -1
- package/frontend/build/static/js/main.ed3f81ca.js.map +0 -1
- /package/frontend/build/static/js/{main.ed3f81ca.js.LICENSE.txt → main.5886e61b.js.LICENSE.txt} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.2.15] - 2024-05-14
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- [frontend]: Added sponsor link in Header.
|
|
10
|
+
- [frontend]: Added sponsor link in the plugin list.
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- [frontend]: Fixed the case when the latest version of Matterbridge or a plugin is not available.
|
|
15
|
+
|
|
16
|
+
<a href="https://www.buymeacoffee.com/luligugithub">
|
|
17
|
+
<img src="./yellow-button.png" alt="Buy me a coffee" width="120">
|
|
18
|
+
</a>
|
|
19
|
+
|
|
20
|
+
|
|
5
21
|
## [1.2.14] - 2024-05-09
|
|
6
22
|
|
|
7
23
|
### Added
|
package/README.md
CHANGED
|
@@ -107,6 +107,9 @@ Devices page:
|
|
|
107
107
|
Logs page:
|
|
108
108
|

|
|
109
109
|
|
|
110
|
+
Config editor:
|
|
111
|
+

|
|
112
|
+
|
|
110
113
|
## Plugins
|
|
111
114
|
|
|
112
115
|
### Accessory platform example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matterbridge.d.ts","sourceRoot":"","sources":["../src/matterbridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;AAEH,OAAO,EAAE,kBAAkB,EAAgC,MAAM,yBAAyB,CAAC;AAS3F,OAAO,YAAY,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"matterbridge.d.ts","sourceRoot":"","sources":["../src/matterbridge.ts"],"names":[],"mappings":"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"}
|
package/dist/matterbridge.js
CHANGED
|
@@ -34,7 +34,7 @@ import path from 'path';
|
|
|
34
34
|
import WebSocket, { WebSocketServer } from 'ws';
|
|
35
35
|
import { BridgedDeviceBasicInformation, BridgedDeviceBasicInformationCluster } from './BridgedDeviceBasicInformationCluster.js';
|
|
36
36
|
import { CommissioningController, CommissioningServer, MatterServer } from '@project-chip/matter-node.js';
|
|
37
|
-
import { BasicInformationCluster,
|
|
37
|
+
import { BasicInformationCluster, ClusterServer, FixedLabelCluster, GeneralCommissioning, GeneralDiagnostics, GeneralDiagnosticsCluster, PowerSourceCluster, ThreadNetworkDiagnosticsCluster, getClusterNameById, } from '@project-chip/matter-node.js/cluster';
|
|
38
38
|
import { DeviceTypeId, VendorId } from '@project-chip/matter-node.js/datatype';
|
|
39
39
|
import { Aggregator, DeviceTypes, NodeStateInformation } from '@project-chip/matter-node.js/device';
|
|
40
40
|
import { Format, Level, Logger } from '@project-chip/matter-node.js/log';
|
|
@@ -181,7 +181,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
181
181
|
this.log.debug(`Creating commissioning server for ${plg}Matterbridge${db}`);
|
|
182
182
|
this.commissioningServer = await this.createCommisioningServer(this.matterbridgeContext, 'Matterbridge');
|
|
183
183
|
this.log.debug(`Creating matter aggregator for ${plg}Matterbridge${db}`);
|
|
184
|
-
this.matterAggregator = await this.createMatterAggregator(this.matterbridgeContext);
|
|
184
|
+
this.matterAggregator = await this.createMatterAggregator(this.matterbridgeContext, 'Matterbridge');
|
|
185
185
|
this.log.debug('Adding matterbridge aggregator to commissioning server');
|
|
186
186
|
this.commissioningServer.addDevice(this.matterAggregator);
|
|
187
187
|
this.log.debug('Adding matterbridge commissioning server to matter server');
|
|
@@ -1038,93 +1038,85 @@ export class Matterbridge extends EventEmitter {
|
|
|
1038
1038
|
this.mattercontrollerContext = undefined;
|
|
1039
1039
|
}
|
|
1040
1040
|
async testStartMatterBridge() {
|
|
1041
|
-
|
|
1042
|
-
// Plugins are started and configured by callback when Matterbridge is commissioned
|
|
1041
|
+
/*
|
|
1043
1042
|
if (!this.storageManager) {
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1043
|
+
this.log.error('No storage manager initialized');
|
|
1044
|
+
await this.cleanup('No storage manager initialized');
|
|
1045
|
+
return;
|
|
1047
1046
|
}
|
|
1048
1047
|
this.log.debug('Starting matterbridge in mode', this.bridgeMode);
|
|
1049
1048
|
this.matterServer = this.createMatterServer(this.storageManager);
|
|
1049
|
+
|
|
1050
1050
|
this.log.debug('***Starting startMatterbridge interval for Matterbridge');
|
|
1051
1051
|
let failCount = 0;
|
|
1052
1052
|
const startInterval = setInterval(async () => {
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
}
|
|
1063
|
-
else {
|
|
1064
|
-
return;
|
|
1065
|
-
}
|
|
1066
|
-
}
|
|
1067
|
-
}
|
|
1068
|
-
clearInterval(startInterval);
|
|
1069
|
-
this.log.debug('***Cleared startMatterbridge interval for Matterbridge');
|
|
1070
|
-
this.log.debug(`Creating commissioning server context for ${plg}Matterbridge${db}`);
|
|
1071
|
-
this.matterbridgeContext = await this.createCommissioningServerContext('Matterbridge', 'Matterbridge', DeviceTypes.AGGREGATOR.code, 0xfff1, 'Matterbridge', 0x8000, 'Matterbridge Aggregator');
|
|
1072
|
-
if (!this.matterbridgeContext) {
|
|
1073
|
-
this.log.error(`Error creating storage context for ${plg}Matterbridge${er}`);
|
|
1074
|
-
return;
|
|
1075
|
-
}
|
|
1076
|
-
if (!this.nodeContext) {
|
|
1077
|
-
this.log.error(`Node storage context undefined for ${plg}Matterbridge${er}`);
|
|
1053
|
+
for (const plugin of this.registeredPlugins) {
|
|
1054
|
+
if (!plugin.enabled) continue;
|
|
1055
|
+
if (!plugin.loaded) {
|
|
1056
|
+
this.log.info(`***Waiting (failSafeCount=${failCount}/30) in startMatterbridge interval for plugin ${plg}${plugin.name}${db} loaded: ${plugin.loaded}...`);
|
|
1057
|
+
failCount++;
|
|
1058
|
+
if (failCount > 30) {
|
|
1059
|
+
this.log.error(`***Failed to load plugin ${plg}${plugin.name}${er}`);
|
|
1060
|
+
plugin.error = true;
|
|
1061
|
+
} else {
|
|
1078
1062
|
return;
|
|
1063
|
+
}
|
|
1079
1064
|
}
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
this.
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1065
|
+
}
|
|
1066
|
+
clearInterval(startInterval);
|
|
1067
|
+
this.log.debug('***Cleared startMatterbridge interval for Matterbridge');
|
|
1068
|
+
|
|
1069
|
+
this.log.debug(`Creating commissioning server context for ${plg}Matterbridge${db}`);
|
|
1070
|
+
this.matterbridgeContext = await this.createCommissioningServerContext('Matterbridge', 'Matterbridge', DeviceTypes.AGGREGATOR.code, 0xfff1, 'Matterbridge', 0x8000, 'Matterbridge Aggregator');
|
|
1071
|
+
if (!this.matterbridgeContext) {
|
|
1072
|
+
this.log.error(`Error creating storage context for ${plg}Matterbridge${er}`);
|
|
1073
|
+
return;
|
|
1074
|
+
}
|
|
1075
|
+
if (!this.nodeContext) {
|
|
1076
|
+
this.log.error(`Node storage context undefined for ${plg}Matterbridge${er}`);
|
|
1077
|
+
return;
|
|
1078
|
+
}
|
|
1079
|
+
await this.matterbridgeContext.set('softwareVersion', 1);
|
|
1080
|
+
await this.matterbridgeContext.set('softwareVersionString', this.matterbridgeVersion);
|
|
1081
|
+
this.log.debug(`Creating commissioning server for ${plg}Matterbridge${db}`);
|
|
1082
|
+
this.commissioningServer = await this.createCommisioningServer(this.matterbridgeContext, 'Matterbridge');
|
|
1083
|
+
|
|
1084
|
+
this.log.debug(`Creating matter aggregator for ${plg}Matterbridge${db}`);
|
|
1085
|
+
this.matterAggregator = await this.createMatterAggregator(this.matterbridgeContext, 'Matterbridge');
|
|
1086
|
+
this.log.debug('Adding matterbridge aggregator to commissioning server');
|
|
1087
|
+
this.commissioningServer.addDevice(this.matterAggregator);
|
|
1088
|
+
|
|
1089
|
+
const device = new MatterbridgeDevice(DeviceTypes.CONTACT_SENSOR);
|
|
1090
|
+
device.createDefaultIdentifyClusterServer();
|
|
1091
|
+
device.createDefaultBridgedDeviceBasicInformationClusterServer('Boolean test', '0x89930475', 0x8000, 'Matterbridge', 'Boolean');
|
|
1092
|
+
device.createDefaultBooleanStateClusterServer(true);
|
|
1093
|
+
device.createDefaultPowerSourceReplaceableBatteryClusterServer(75);
|
|
1094
|
+
device.createDefaultPowerSourceConfigurationClusterServer(1);
|
|
1095
|
+
|
|
1096
|
+
this.log.debug('Adding matterbridge commissioning server to matter server');
|
|
1097
|
+
await this.matterServer?.addCommissioningServer(this.commissioningServer, { uniqueStorageKey: 'Matterbridge' });
|
|
1098
|
+
this.log.debug(`Setting reachability to true for ${plg}Matterbridge${db}`);
|
|
1099
|
+
this.commissioningServer.setReachability(true);
|
|
1100
|
+
this.log.debug('Starting matter server...');
|
|
1101
|
+
await this.startMatterServer();
|
|
1102
|
+
this.log.info('Matter server started');
|
|
1103
|
+
await this.showCommissioningQRCode(this.commissioningServer, this.matterbridgeContext, this.nodeContext, 'Matterbridge');
|
|
1104
|
+
|
|
1105
|
+
setTimeout(() => {
|
|
1106
|
+
this.matterAggregator?.addBridgedDevice(device);
|
|
1107
|
+
this.log.info('Added device to aggregator');
|
|
1108
|
+
}, 30 * 1000);
|
|
1109
|
+
|
|
1110
|
+
setInterval(() => {
|
|
1111
|
+
const cluster = device.getClusterServer(BooleanStateCluster);
|
|
1112
|
+
if (!cluster) return;
|
|
1113
|
+
const contact = cluster.getStateValueAttribute();
|
|
1114
|
+
cluster.setStateValueAttribute(!contact);
|
|
1115
|
+
if (cluster.isEventSupportedByName('stateChange')) cluster.triggerStateChangeEvent!({ stateValue: !contact });
|
|
1116
|
+
this.log.info('Set attribute and event for BooleanStateCluster to', !contact);
|
|
1117
|
+
}, 60 * 1000);
|
|
1127
1118
|
}, 1000);
|
|
1119
|
+
*/
|
|
1128
1120
|
}
|
|
1129
1121
|
/**
|
|
1130
1122
|
* Loads the schema for a plugin.
|
|
@@ -1675,7 +1667,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
1675
1667
|
this.log.debug(`Creating commissioning server for ${plg}Matterbridge${db}`);
|
|
1676
1668
|
this.commissioningServer = await this.createCommisioningServer(this.matterbridgeContext, 'Matterbridge');
|
|
1677
1669
|
this.log.debug(`Creating matter aggregator for ${plg}Matterbridge${db}`);
|
|
1678
|
-
this.matterAggregator = await this.createMatterAggregator(this.matterbridgeContext);
|
|
1670
|
+
this.matterAggregator = await this.createMatterAggregator(this.matterbridgeContext, 'Matterbridge');
|
|
1679
1671
|
this.log.debug('Adding matterbridge aggregator to commissioning server');
|
|
1680
1672
|
this.commissioningServer.addDevice(this.matterAggregator);
|
|
1681
1673
|
this.log.debug('Adding matterbridge commissioning server to matter server');
|
|
@@ -1739,7 +1731,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
1739
1731
|
this.log.debug(`Creating commissioning server for ${plg}${plugin.name}${db}`);
|
|
1740
1732
|
plugin.commissioningServer = await this.createCommisioningServer(plugin.storageContext, plugin.name);
|
|
1741
1733
|
this.log.debug(`Creating aggregator for plugin ${plg}${plugin.name}${db}`);
|
|
1742
|
-
plugin.aggregator = await this.createMatterAggregator(plugin.storageContext); // Generate serialNumber and uniqueId
|
|
1734
|
+
plugin.aggregator = await this.createMatterAggregator(plugin.storageContext, plugin.name); // Generate serialNumber and uniqueId
|
|
1743
1735
|
this.log.debug(`Adding matter aggregator to commissioning server for plugin ${plg}${plugin.name}${db}`);
|
|
1744
1736
|
plugin.commissioningServer.addDevice(plugin.aggregator);
|
|
1745
1737
|
this.log.debug(`Adding commissioning server to matter server for plugin ${plg}${plugin.name}${db}`);
|
|
@@ -2228,10 +2220,13 @@ export class Matterbridge extends EventEmitter {
|
|
|
2228
2220
|
* @param {StorageContext} context - The storage context.
|
|
2229
2221
|
* @returns {Aggregator} - The created Matter Aggregator.
|
|
2230
2222
|
*/
|
|
2231
|
-
async createMatterAggregator(context) {
|
|
2223
|
+
async createMatterAggregator(context, pluginName) {
|
|
2232
2224
|
const random = 'AG' + CryptoNode.getRandomData(8).toHex();
|
|
2233
2225
|
await context.set('aggregatorSerialNumber', await context.get('aggregatorSerialNumber', random));
|
|
2234
2226
|
await context.set('aggregatorUniqueId', await context.get('aggregatorUniqueId', random));
|
|
2227
|
+
this.log.debug(`Creating matter aggregator for plugin ${plg}${pluginName}${db} with uniqueId ${await context.get('aggregatorUniqueId')} serialNumber ${await context.get('aggregatorSerialNumber')}`);
|
|
2228
|
+
this.log.debug(`Creating matter aggregator for plugin ${plg}${pluginName}${db} with softwareVersion ${await context.get('softwareVersion', 1)} softwareVersionString ${await context.get('softwareVersionString', '1.0.0')}`);
|
|
2229
|
+
this.log.debug(`Creating matter aggregator for plugin ${plg}${pluginName}${db} with hardwareVersion ${await context.get('hardwareVersion', 1)} hardwareVersionString ${await context.get('hardwareVersionString', '1.0.0')}`);
|
|
2235
2230
|
const matterAggregator = new Aggregator();
|
|
2236
2231
|
matterAggregator.addClusterServer(ClusterServer(BasicInformationCluster, {
|
|
2237
2232
|
dataModelRevision: 1,
|