matterbridge 1.7.2 → 2.0.0-edge1

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 (76) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/dist/cli.js +3 -13
  3. package/dist/cli.js.map +1 -1
  4. package/dist/deviceManager.d.ts +7 -7
  5. package/dist/deviceManager.d.ts.map +1 -1
  6. package/dist/deviceManager.js +2 -2
  7. package/dist/deviceManager.js.map +1 -1
  8. package/dist/frontend.d.ts +98 -0
  9. package/dist/frontend.d.ts.map +1 -0
  10. package/dist/frontend.js +1377 -0
  11. package/dist/frontend.js.map +1 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -6
  14. package/dist/index.js.map +1 -1
  15. package/dist/matter/export.d.ts.map +1 -1
  16. package/dist/matter/export.js +0 -1
  17. package/dist/matter/export.js.map +1 -1
  18. package/dist/matterbridge.d.ts +82 -208
  19. package/dist/matterbridge.d.ts.map +1 -1
  20. package/dist/matterbridge.js +777 -2310
  21. package/dist/matterbridge.js.map +1 -1
  22. package/dist/matterbridgeBehaviors.d.ts +32 -851
  23. package/dist/matterbridgeBehaviors.d.ts.map +1 -1
  24. package/dist/matterbridgeBehaviors.js +22 -2
  25. package/dist/matterbridgeBehaviors.js.map +1 -1
  26. package/dist/matterbridgeEndpoint.d.ts +100 -9089
  27. package/dist/matterbridgeEndpoint.d.ts.map +1 -1
  28. package/dist/matterbridgeEndpoint.js +59 -31
  29. package/dist/matterbridgeEndpoint.js.map +1 -1
  30. package/dist/matterbridgePlatform.d.ts +14 -28
  31. package/dist/matterbridgePlatform.d.ts.map +1 -1
  32. package/dist/matterbridgePlatform.js +7 -23
  33. package/dist/matterbridgePlatform.js.map +1 -1
  34. package/dist/matterbridgeTypes.d.ts.map +1 -1
  35. package/dist/matterbridgeTypes.js +4 -0
  36. package/dist/matterbridgeTypes.js.map +1 -1
  37. package/dist/pluginManager.d.ts +1 -1
  38. package/dist/pluginManager.d.ts.map +1 -1
  39. package/dist/pluginManager.js +5 -11
  40. package/dist/pluginManager.js.map +1 -1
  41. package/dist/utils/utils.d.ts +1 -1
  42. package/dist/utils/utils.d.ts.map +1 -1
  43. package/dist/utils/utils.js +6 -6
  44. package/dist/utils/utils.js.map +1 -1
  45. package/frontend/build/asset-manifest.json +3 -3
  46. package/frontend/build/index.html +1 -1
  47. package/frontend/build/static/js/{main.08241820.js → main.ea28015b.js} +3 -3
  48. package/frontend/build/static/js/main.ea28015b.js.map +1 -0
  49. package/npm-shrinkwrap.json +9 -9
  50. package/package.json +2 -3
  51. package/dist/cli.d.ts +0 -25
  52. package/dist/cluster/export.d.ts +0 -2
  53. package/dist/defaultConfigSchema.d.ts +0 -27
  54. package/dist/index.d.ts +0 -40
  55. package/dist/logger/export.d.ts +0 -2
  56. package/dist/matter/export.d.ts +0 -11
  57. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -39
  58. package/dist/matterbridgeDevice.d.ts +0 -7077
  59. package/dist/matterbridgeDevice.d.ts.map +0 -1
  60. package/dist/matterbridgeDevice.js +0 -2736
  61. package/dist/matterbridgeDevice.js.map +0 -1
  62. package/dist/matterbridgeDynamicPlatform.d.ts +0 -39
  63. package/dist/matterbridgeEdge.d.ts +0 -91
  64. package/dist/matterbridgeEdge.d.ts.map +0 -1
  65. package/dist/matterbridgeEdge.js +0 -1077
  66. package/dist/matterbridgeEdge.js.map +0 -1
  67. package/dist/matterbridgeTypes.d.ts +0 -172
  68. package/dist/matterbridgeWebsocket.d.ts +0 -49
  69. package/dist/matterbridgeWebsocket.d.ts.map +0 -1
  70. package/dist/matterbridgeWebsocket.js +0 -325
  71. package/dist/matterbridgeWebsocket.js.map +0 -1
  72. package/dist/storage/export.d.ts +0 -2
  73. package/dist/utils/colorUtils.d.ts +0 -61
  74. package/dist/utils/export.d.ts +0 -3
  75. package/frontend/build/static/js/main.08241820.js.map +0 -1
  76. /package/frontend/build/static/js/{main.08241820.js.LICENSE.txt → main.ea28015b.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"matterbridgeEdge.js","sourceRoot":"","sources":["../src/matterbridgeEdge.ts"],"names":[],"mappings":"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"}
@@ -1,172 +0,0 @@
1
- /**
2
- * This file contains the types for Matterbridge.
3
- *
4
- * @file matterbridgeTypes.ts
5
- * @author Luca Liguori
6
- * @date 2024-07-12
7
- * @version 1.0.2
8
- *
9
- * Copyright 2023, 2024, 2025 Luca Liguori.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License. *
22
- */
23
- import { NodeStorage } from 'node-persist-manager';
24
- import { LogLevel } from 'node-ansi-logger';
25
- import { MatterbridgePlatform, PlatformConfig, PlatformSchema } from './matterbridgePlatform.js';
26
- import { MatterbridgeDevice } from './matterbridgeDevice.js';
27
- import { FabricIndex, NodeId, VendorId, StorageContext, ServerNode, EndpointNumber, Endpoint as EndpointNode } from '@matter/main';
28
- import { ExposedFabricInformation } from '@matter/main/protocol';
29
- import { AggregatorEndpoint } from '@matter/node/endpoints/aggregator';
30
- import { CommissioningServer } from '@project-chip/matter.js';
31
- import { Aggregator } from '@project-chip/matter.js/device';
32
- export declare const plg = "\u001B[38;5;33m";
33
- export declare const dev = "\u001B[38;5;79m";
34
- export declare const typ = "\u001B[38;5;207m";
35
- export interface RegisteredPlugin extends BaseRegisteredPlugin {
36
- nodeContext?: NodeStorage;
37
- storageContext?: StorageContext;
38
- commissioningServer?: CommissioningServer;
39
- aggregator?: Aggregator;
40
- device?: MatterbridgeDevice;
41
- platform?: MatterbridgePlatform;
42
- reachabilityTimeout?: NodeJS.Timeout;
43
- serverNode?: ServerNode<ServerNode.RootEndpoint>;
44
- aggregatorNode?: EndpointNode<AggregatorEndpoint>;
45
- }
46
- export interface BaseRegisteredPlugin {
47
- name: string;
48
- version: string;
49
- description: string;
50
- author: string;
51
- path: string;
52
- type: string;
53
- latestVersion?: string;
54
- locked?: boolean;
55
- error?: boolean;
56
- enabled?: boolean;
57
- loaded?: boolean;
58
- started?: boolean;
59
- configured?: boolean;
60
- paired?: boolean;
61
- connected?: boolean;
62
- fabricInformations?: SanitizedExposedFabricInformation[];
63
- sessionInformations?: SanitizedSessionInformation[];
64
- registeredDevices?: number;
65
- addedDevices?: number;
66
- qrPairingCode?: string;
67
- manualPairingCode?: string;
68
- configJson?: PlatformConfig;
69
- schemaJson?: PlatformSchema;
70
- }
71
- export interface SystemInformation {
72
- interfaceName: string;
73
- macAddress: string;
74
- ipv4Address: string;
75
- ipv6Address: string;
76
- nodeVersion: string;
77
- hostname: string;
78
- user: string;
79
- osType: string;
80
- osRelease: string;
81
- osPlatform: string;
82
- osArch: string;
83
- totalMemory: string;
84
- freeMemory: string;
85
- systemUptime: string;
86
- }
87
- export interface MatterbridgeInformation {
88
- homeDirectory: string;
89
- rootDirectory: string;
90
- matterbridgeDirectory: string;
91
- matterbridgePluginDirectory: string;
92
- globalModulesDirectory: string;
93
- matterbridgeVersion: string;
94
- matterbridgeLatestVersion: string;
95
- matterbridgeQrPairingCode: string | undefined;
96
- matterbridgeManualPairingCode: string | undefined;
97
- matterbridgeFabricInformations: SanitizedExposedFabricInformation[];
98
- matterbridgeSessionInformations: SanitizedSessionInformation[];
99
- matterbridgePaired: boolean;
100
- matterbridgeConnected: boolean;
101
- bridgeMode: string;
102
- restartMode: string;
103
- edge: boolean;
104
- readOnly: boolean;
105
- profile?: string;
106
- loggerLevel: LogLevel;
107
- fileLogger: boolean;
108
- matterLoggerLevel: number;
109
- matterFileLogger: boolean;
110
- mattermdnsinterface: string | undefined;
111
- matteripv4address: string | undefined;
112
- matteripv6address: string | undefined;
113
- matterPort: number;
114
- matterDiscriminator: number | undefined;
115
- matterPasscode: number | undefined;
116
- restartRequired: boolean;
117
- refreshRequired: boolean;
118
- }
119
- export interface SanitizedExposedFabricInformation {
120
- fabricIndex: FabricIndex;
121
- fabricId: string;
122
- nodeId: string;
123
- rootNodeId: string;
124
- rootVendorId: VendorId;
125
- rootVendorName: string;
126
- label: string;
127
- }
128
- export interface SessionInformation {
129
- name: string;
130
- nodeId: NodeId;
131
- peerNodeId: NodeId;
132
- fabric?: ExposedFabricInformation;
133
- isPeerActive: boolean;
134
- secure: boolean;
135
- lastInteractionTimestamp?: number;
136
- lastActiveTimestamp?: number;
137
- numberOfActiveSubscriptions: number;
138
- }
139
- export interface SanitizedSessionInformation {
140
- name: string;
141
- nodeId: string;
142
- peerNodeId: string;
143
- fabric?: SanitizedExposedFabricInformation;
144
- isPeerActive: boolean;
145
- secure: boolean;
146
- lastInteractionTimestamp?: string;
147
- lastActiveTimestamp?: string;
148
- numberOfActiveSubscriptions: number;
149
- }
150
- export interface ApiDevices {
151
- pluginName: string;
152
- type: string;
153
- endpoint: EndpointNumber | undefined;
154
- name: string;
155
- serial: string;
156
- productUrl: string;
157
- configUrl?: string;
158
- uniqueId: string;
159
- cluster: string;
160
- }
161
- export interface ApiClusters {
162
- endpoint: string;
163
- id: string;
164
- deviceTypes: number[];
165
- clusterName: string;
166
- clusterId: string;
167
- attributeName: string;
168
- attributeId: string;
169
- attributeValue: string;
170
- attributeLocalValue: unknown;
171
- }
172
- //# sourceMappingURL=matterbridgeTypes.d.ts.map
@@ -1,49 +0,0 @@
1
- /**
2
- * This file contains the function matterbridgeMessageHandler.
3
- *
4
- * @file matterbridgeWebsocket.ts
5
- * @author Luca Liguori
6
- * @date 2024-10-16
7
- * @version 1.0.0
8
- *
9
- * Copyright 2024, 2025, 2026 Luca Liguori.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License. *
22
- */
23
- import { Matterbridge } from './matterbridge.js';
24
- import WebSocket from 'ws';
25
- /**
26
- * Websocket message ID for logging.
27
- * @constant {number}
28
- */
29
- export declare const WS_ID_LOG = 0;
30
- /**
31
- * Websocket message ID indicating a refresh is needed.
32
- * @constant {number}
33
- */
34
- export declare const WS_ID_REFRESH_NEEDED = 1;
35
- /**
36
- * Websocket message ID indicating a restart is needed.
37
- * @constant {number}
38
- */
39
- export declare const WS_ID_RESTART_NEEDED = 2;
40
- /**
41
- * Handles incoming websocket messages for the Matterbridge.
42
- *
43
- * @param {Matterbridge} this - The Matterbridge instance.
44
- * @param {WebSocket} client - The websocket client that sent the message.
45
- * @param {WebSocket.RawData} message - The raw data of the message received from the client.
46
- * @returns {Promise<void>} A promise that resolves when the message has been handled.
47
- */
48
- export declare function wsMessageHandler(this: Matterbridge, client: WebSocket, message: WebSocket.RawData): Promise<void>;
49
- //# sourceMappingURL=matterbridgeWebsocket.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"matterbridgeWebsocket.d.ts","sourceRoot":"","sources":["../src/matterbridgeWebsocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOjD,OAAO,SAAS,MAAM,IAAI,CAAC;AAQ3B;;;GAGG;AACH,eAAO,MAAM,SAAS,IAAI,CAAC;AAE3B;;;GAGG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAsPvH"}
@@ -1,325 +0,0 @@
1
- /**
2
- * This file contains the function matterbridgeMessageHandler.
3
- *
4
- * @file matterbridgeWebsocket.ts
5
- * @author Luca Liguori
6
- * @date 2024-10-16
7
- * @version 1.0.0
8
- *
9
- * Copyright 2024, 2025, 2026 Luca Liguori.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License. *
22
- */
23
- import { isValidNumber, isValidObject, isValidString } from './utils/utils.js';
24
- // AnsiLogger module
25
- import { debugStringify, stringify } from 'node-ansi-logger';
26
- // @matter
27
- import { EndpointServer, Logger } from '@matter/main';
28
- import { BasicInformationCluster, BridgedDeviceBasicInformationCluster } from '@matter/main/clusters';
29
- /**
30
- * Websocket message ID for logging.
31
- * @constant {number}
32
- */
33
- export const WS_ID_LOG = 0;
34
- /**
35
- * Websocket message ID indicating a refresh is needed.
36
- * @constant {number}
37
- */
38
- export const WS_ID_REFRESH_NEEDED = 1;
39
- /**
40
- * Websocket message ID indicating a restart is needed.
41
- * @constant {number}
42
- */
43
- export const WS_ID_RESTART_NEEDED = 2;
44
- /**
45
- * Handles incoming websocket messages for the Matterbridge.
46
- *
47
- * @param {Matterbridge} this - The Matterbridge instance.
48
- * @param {WebSocket} client - The websocket client that sent the message.
49
- * @param {WebSocket.RawData} message - The raw data of the message received from the client.
50
- * @returns {Promise<void>} A promise that resolves when the message has been handled.
51
- */
52
- export async function wsMessageHandler(client, message) {
53
- let data;
54
- try {
55
- data = JSON.parse(message.toString());
56
- if (!isValidNumber(data.id) || !isValidString(data.dst) || !isValidString(data.src) || !isValidString(data.method) || !isValidObject(data.params) || data.dst !== 'Matterbridge') {
57
- this.log.error(`Invalid message from websocket client: ${debugStringify(data)}`);
58
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: 'Invalid message' }));
59
- return;
60
- }
61
- this.log.debug(`Received message from websocket client: ${debugStringify(data)}`);
62
- if (data.method === 'ping') {
63
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, response: 'pong' }));
64
- return;
65
- }
66
- else if (data.method === '/api/login') {
67
- if (!this.nodeContext) {
68
- this.log.error('Login nodeContext not found');
69
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: 'Internal error: nodeContext not found' }));
70
- return;
71
- }
72
- const storedPassword = await this.nodeContext.get('password', '');
73
- if (storedPassword === '' || storedPassword === data.params.password) {
74
- this.log.debug('Login password valid');
75
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, response: { valid: true } }));
76
- return;
77
- }
78
- else {
79
- this.log.debug('Error wrong password');
80
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: 'Wrong password' }));
81
- return;
82
- }
83
- }
84
- else if (data.method === '/api/install') {
85
- if (!isValidString(data.params.packageName, 10)) {
86
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: 'Wrong parameter packageName in /api/install' }));
87
- return;
88
- }
89
- this.spawnCommand('npm', ['install', '-g', data.params.packageName, '--omit=dev', '--verbose'])
90
- .then((response) => {
91
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, response }));
92
- })
93
- .catch((error) => {
94
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: error instanceof Error ? error.message : error }));
95
- });
96
- return;
97
- }
98
- else if (data.method === '/api/uninstall') {
99
- if (!isValidString(data.params.packageName, 10)) {
100
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: 'Wrong parameter packageName in /api/uninstall' }));
101
- return;
102
- }
103
- this.spawnCommand('npm', ['uninstall', '-g', data.params.packageName, '--verbose'])
104
- .then((response) => {
105
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, response }));
106
- })
107
- .catch((error) => {
108
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: error instanceof Error ? error.message : error }));
109
- });
110
- return;
111
- }
112
- else if (data.method === '/api/restart') {
113
- await this.restartProcess();
114
- return;
115
- }
116
- else if (data.method === '/api/shutdown') {
117
- await this.shutdownProcess();
118
- return;
119
- }
120
- else if (data.method === '/api/settings') {
121
- this.matterbridgeInformation.bridgeMode = this.bridgeMode;
122
- this.matterbridgeInformation.restartMode = this.restartMode;
123
- this.matterbridgeInformation.loggerLevel = this.log.logLevel;
124
- this.matterbridgeInformation.matterLoggerLevel = Logger.defaultLogLevel;
125
- this.matterbridgeInformation.mattermdnsinterface = (await this.nodeContext?.get('mattermdnsinterface', '')) || '';
126
- this.matterbridgeInformation.matteripv4address = (await this.nodeContext?.get('matteripv4address', '')) || '';
127
- this.matterbridgeInformation.matteripv6address = (await this.nodeContext?.get('matteripv6address', '')) || '';
128
- this.matterbridgeInformation.matterPort = (await this.nodeContext?.get('matterport', 5540)) ?? 5540;
129
- this.matterbridgeInformation.matterDiscriminator = await this.nodeContext?.get('matterdiscriminator');
130
- this.matterbridgeInformation.matterPasscode = await this.nodeContext?.get('matterpasscode');
131
- this.matterbridgeInformation.matterbridgePaired = this.matterbridgePaired;
132
- this.matterbridgeInformation.matterbridgeConnected = this.matterbridgeConnected;
133
- this.matterbridgeInformation.matterbridgeQrPairingCode = this.matterbridgeQrPairingCode;
134
- this.matterbridgeInformation.matterbridgeManualPairingCode = this.matterbridgeManualPairingCode;
135
- this.matterbridgeInformation.matterbridgeFabricInformations = this.matterbridgeFabricInformations;
136
- this.matterbridgeInformation.matterbridgeSessionInformations = Array.from(this.matterbridgeSessionInformations.values());
137
- this.matterbridgeInformation.profile = this.profile;
138
- const response = { systemInformation: this.systemInformation, matterbridgeInformation: this.matterbridgeInformation };
139
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, response }));
140
- return;
141
- }
142
- else if (data.method === '/api/plugins') {
143
- const response = await this.getBaseRegisteredPlugins();
144
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, response }));
145
- return;
146
- }
147
- else if (data.method === '/api/devices') {
148
- const devices = [];
149
- this.devices.forEach(async (device) => {
150
- if (data.params.pluginName && data.params.pluginName !== device.plugin)
151
- return;
152
- let name = device.getClusterServer(BasicInformationCluster)?.attributes.nodeLabel?.getLocal();
153
- if (!name)
154
- name = device.getClusterServer(BridgedDeviceBasicInformationCluster)?.attributes.nodeLabel?.getLocal() ?? 'Unknown';
155
- let serial = device.getClusterServer(BasicInformationCluster)?.attributes.serialNumber?.getLocal();
156
- if (!serial)
157
- serial = device.getClusterServer(BridgedDeviceBasicInformationCluster)?.attributes.serialNumber?.getLocal() ?? 'Unknown';
158
- let productUrl = device.getClusterServer(BasicInformationCluster)?.attributes.productUrl?.getLocal();
159
- if (!productUrl)
160
- productUrl = device.getClusterServer(BridgedDeviceBasicInformationCluster)?.attributes.productUrl?.getLocal() ?? 'Unknown';
161
- let uniqueId = device.getClusterServer(BasicInformationCluster)?.attributes.uniqueId?.getLocal();
162
- if (!uniqueId)
163
- uniqueId = device.getClusterServer(BridgedDeviceBasicInformationCluster)?.attributes.uniqueId?.getLocal() ?? 'Unknown';
164
- const cluster = this.getClusterTextFromDevice(device);
165
- devices.push({
166
- pluginName: device.plugin ?? 'Unknown',
167
- type: device.name + ' (0x' + device.deviceType.toString(16).padStart(4, '0') + ')',
168
- endpoint: device.number,
169
- name,
170
- serial,
171
- productUrl,
172
- configUrl: device.configUrl,
173
- uniqueId,
174
- cluster: cluster,
175
- });
176
- });
177
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, response: devices }));
178
- return;
179
- }
180
- else if (data.method === '/api/clusters') {
181
- if (!isValidString(data.params.plugin, 10)) {
182
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: 'Wrong parameter plugin in /api/clusters' }));
183
- return;
184
- }
185
- if (!isValidNumber(data.params.endpoint, 1)) {
186
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: 'Wrong parameter endpoint in /api/clusters' }));
187
- return;
188
- }
189
- const clusters = [];
190
- let deviceName = '';
191
- let serialNumber = '';
192
- let deviceTypes = [];
193
- this.devices.forEach(async (device) => {
194
- if (data.params.plugin !== device.plugin)
195
- return;
196
- if (data.params.endpoint !== device.number)
197
- return;
198
- deviceName = device.deviceName ?? 'Unknown';
199
- serialNumber = device.serialNumber ?? 'Unknown';
200
- deviceTypes = [];
201
- if (this.edge)
202
- device = EndpointServer.forEndpoint(device);
203
- const clusterServers = device.getAllClusterServers();
204
- clusterServers.forEach((clusterServer) => {
205
- Object.entries(clusterServer.attributes).forEach(([key, value]) => {
206
- if (clusterServer.name === 'EveHistory')
207
- return;
208
- if (clusterServer.name === 'Descriptor' && key === 'deviceTypeList') {
209
- value.getLocal().forEach((deviceType) => {
210
- deviceTypes.push(deviceType.deviceType);
211
- });
212
- }
213
- let attributeValue;
214
- let attributeLocalValue;
215
- try {
216
- if (typeof value.getLocal() === 'object')
217
- attributeValue = stringify(value.getLocal());
218
- else
219
- attributeValue = value.getLocal().toString();
220
- attributeLocalValue = value.getLocal();
221
- }
222
- catch (error) {
223
- attributeValue = 'Fabric-Scoped';
224
- attributeLocalValue = 'Fabric-Scoped';
225
- this.log.debug(`GetLocal value ${error} in clusterServer: ${clusterServer.name}(${clusterServer.id}) attribute: ${key}(${value.id})`);
226
- }
227
- clusters.push({
228
- endpoint: device.number ? device.number.toString() : '...',
229
- id: 'main',
230
- deviceTypes,
231
- clusterName: clusterServer.name,
232
- clusterId: '0x' + clusterServer.id.toString(16).padStart(2, '0'),
233
- attributeName: key,
234
- attributeId: '0x' + value.id.toString(16).padStart(2, '0'),
235
- attributeValue,
236
- attributeLocalValue,
237
- });
238
- });
239
- });
240
- device.getChildEndpoints().forEach((childEndpoint) => {
241
- deviceTypes = [];
242
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
243
- const name = this.edge ? childEndpoint.endpoint?.id : childEndpoint.uniqueStorageKey;
244
- const clusterServers = childEndpoint.getAllClusterServers();
245
- clusterServers.forEach((clusterServer) => {
246
- Object.entries(clusterServer.attributes).forEach(([key, value]) => {
247
- if (clusterServer.name === 'EveHistory')
248
- return;
249
- if (clusterServer.name === 'Descriptor' && key === 'deviceTypeList') {
250
- value.getLocal().forEach((deviceType) => {
251
- deviceTypes.push(deviceType.deviceType);
252
- });
253
- }
254
- let attributeValue;
255
- let attributeLocalValue;
256
- try {
257
- if (typeof value.getLocal() === 'object')
258
- attributeValue = stringify(value.getLocal());
259
- else
260
- attributeValue = value.getLocal().toString();
261
- attributeLocalValue = value.getLocal();
262
- }
263
- catch (error) {
264
- attributeValue = 'Fabric-Scoped';
265
- attributeLocalValue = 'Fabric-Scoped';
266
- this.log.debug(`GetLocal error ${error} in clusterServer: ${clusterServer.name}(${clusterServer.id}) attribute: ${key}(${value.id})`);
267
- }
268
- clusters.push({
269
- endpoint: childEndpoint.number ? childEndpoint.number.toString() : '...',
270
- id: name,
271
- deviceTypes,
272
- clusterName: clusterServer.name,
273
- clusterId: '0x' + clusterServer.id.toString(16).padStart(2, '0'),
274
- attributeName: key,
275
- attributeId: '0x' + value.id.toString(16).padStart(2, '0'),
276
- attributeValue,
277
- attributeLocalValue,
278
- });
279
- });
280
- });
281
- });
282
- });
283
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, plugin: data.params.plugin, deviceName, serialNumber, endpoint: data.params.endpoint, deviceTypes, response: clusters }));
284
- return;
285
- }
286
- else if (data.method === '/api/select') {
287
- if (!isValidString(data.params.plugin, 10)) {
288
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: 'Wrong parameter plugin in /api/select' }));
289
- return;
290
- }
291
- const plugin = this.plugins.get(data.params.plugin);
292
- if (!plugin) {
293
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: 'Plugin not found in /api/select' }));
294
- return;
295
- }
296
- const selectDeviceValues = plugin.platform?.selectDevice ? Array.from(plugin.platform.selectDevice.values()).sort((keyA, keyB) => keyA.name.localeCompare(keyB.name)) : [];
297
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, plugin: data.params.plugin, response: selectDeviceValues }));
298
- return;
299
- }
300
- else if (data.method === '/api/select/entities') {
301
- if (!isValidString(data.params.plugin, 10)) {
302
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: 'Wrong parameter plugin in /api/select/entities' }));
303
- return;
304
- }
305
- const plugin = this.plugins.get(data.params.plugin);
306
- if (!plugin) {
307
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: 'Plugin not found in /api/select/entities' }));
308
- return;
309
- }
310
- const selectEntityValues = plugin.platform?.selectDevice ? Array.from(plugin.platform.selectEntity.values()).sort((keyA, keyB) => keyA.name.localeCompare(keyB.name)) : [];
311
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, plugin: data.params.plugin, response: selectEntityValues }));
312
- return;
313
- }
314
- else {
315
- this.log.error(`Invalid method from websocket client: ${debugStringify(data)}`);
316
- client.send(JSON.stringify({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: 'Invalid method' }));
317
- return;
318
- }
319
- }
320
- catch (error) {
321
- this.log.error(`Error parsing message from websocket client:`, error instanceof Error ? error.message : error);
322
- return;
323
- }
324
- }
325
- //# sourceMappingURL=matterbridgeWebsocket.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"matterbridgeWebsocket.js","sourceRoot":"","sources":["../src/matterbridgeWebsocket.ts"],"names":[],"mappings":"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"}