matterbridge 3.0.7-dev-20250618-fb768ee → 3.0.7
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 +3 -2
- package/README-DEV.md +4 -4
- package/dist/cli.d.ts +29 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +62 -2
- package/dist/cli.js.map +1 -0
- package/dist/clusters/export.d.ts +2 -0
- package/dist/clusters/export.d.ts.map +1 -0
- package/dist/clusters/export.js +2 -0
- package/dist/clusters/export.js.map +1 -0
- package/dist/defaultConfigSchema.d.ts +27 -0
- package/dist/defaultConfigSchema.d.ts.map +1 -0
- package/dist/defaultConfigSchema.js +23 -0
- package/dist/defaultConfigSchema.js.map +1 -0
- package/dist/deviceManager.d.ts +114 -0
- package/dist/deviceManager.d.ts.map +1 -0
- package/dist/deviceManager.js +94 -1
- package/dist/deviceManager.js.map +1 -0
- package/dist/devices/export.d.ts +5 -0
- package/dist/devices/export.d.ts.map +1 -0
- package/dist/devices/export.js +2 -0
- package/dist/devices/export.js.map +1 -0
- package/dist/evse.d.ts +67 -0
- package/dist/evse.d.ts.map +1 -0
- package/dist/evse.js +65 -9
- package/dist/evse.js.map +1 -0
- package/dist/frontend.d.ts +256 -0
- package/dist/frontend.d.ts.map +1 -0
- package/dist/frontend.js +374 -16
- package/dist/frontend.js.map +1 -0
- package/dist/globalMatterbridge.d.ts +32 -0
- package/dist/globalMatterbridge.d.ts.map +1 -0
- package/dist/globalMatterbridge.js +20 -0
- package/dist/globalMatterbridge.js.map +1 -0
- package/dist/helpers.d.ts +47 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +51 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -1
- package/dist/index.js.map +1 -0
- package/dist/laundryWasher.d.ts +243 -0
- package/dist/laundryWasher.d.ts.map +1 -0
- package/dist/laundryWasher.js +92 -7
- package/dist/laundryWasher.js.map +1 -0
- package/dist/logger/export.d.ts +2 -0
- package/dist/logger/export.d.ts.map +1 -0
- package/dist/logger/export.js +1 -0
- package/dist/logger/export.js.map +1 -0
- package/dist/matter/behaviors.d.ts +2 -0
- package/dist/matter/behaviors.d.ts.map +1 -0
- package/dist/matter/behaviors.js +2 -0
- package/dist/matter/behaviors.js.map +1 -0
- package/dist/matter/clusters.d.ts +2 -0
- package/dist/matter/clusters.d.ts.map +1 -0
- package/dist/matter/clusters.js +2 -0
- package/dist/matter/clusters.js.map +1 -0
- package/dist/matter/devices.d.ts +2 -0
- package/dist/matter/devices.d.ts.map +1 -0
- package/dist/matter/devices.js +2 -0
- package/dist/matter/devices.js.map +1 -0
- package/dist/matter/endpoints.d.ts +2 -0
- package/dist/matter/endpoints.d.ts.map +1 -0
- package/dist/matter/endpoints.js +2 -0
- package/dist/matter/endpoints.js.map +1 -0
- package/dist/matter/export.d.ts +5 -0
- package/dist/matter/export.d.ts.map +1 -0
- package/dist/matter/export.js +2 -0
- package/dist/matter/export.js.map +1 -0
- package/dist/matter/types.d.ts +3 -0
- package/dist/matter/types.d.ts.map +1 -0
- package/dist/matter/types.js +2 -0
- package/dist/matter/types.js.map +1 -0
- package/dist/matterbridge.d.ts +445 -0
- package/dist/matterbridge.d.ts.map +1 -0
- package/dist/matterbridge.js +748 -46
- package/dist/matterbridge.js.map +1 -0
- package/dist/matterbridgeAccessoryPlatform.d.ts +40 -0
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +1 -0
- package/dist/matterbridgeAccessoryPlatform.js +34 -0
- package/dist/matterbridgeAccessoryPlatform.js.map +1 -0
- package/dist/matterbridgeBehaviors.d.ts +1333 -0
- package/dist/matterbridgeBehaviors.d.ts.map +1 -0
- package/dist/matterbridgeBehaviors.js +54 -1
- package/dist/matterbridgeBehaviors.js.map +1 -0
- package/dist/matterbridgeDeviceTypes.d.ts +644 -0
- package/dist/matterbridgeDeviceTypes.d.ts.map +1 -0
- package/dist/matterbridgeDeviceTypes.js +578 -15
- package/dist/matterbridgeDeviceTypes.js.map +1 -0
- package/dist/matterbridgeDynamicPlatform.d.ts +40 -0
- package/dist/matterbridgeDynamicPlatform.d.ts.map +1 -0
- package/dist/matterbridgeDynamicPlatform.js +34 -0
- package/dist/matterbridgeDynamicPlatform.js.map +1 -0
- package/dist/matterbridgeEndpoint.d.ts +1145 -0
- package/dist/matterbridgeEndpoint.d.ts.map +1 -0
- package/dist/matterbridgeEndpoint.js +995 -40
- package/dist/matterbridgeEndpoint.js.map +1 -0
- package/dist/matterbridgeEndpointHelpers.d.ts +3083 -0
- package/dist/matterbridgeEndpointHelpers.d.ts.map +1 -0
- package/dist/matterbridgeEndpointHelpers.js +204 -10
- package/dist/matterbridgeEndpointHelpers.js.map +1 -0
- package/dist/matterbridgePlatform.d.ts +290 -0
- package/dist/matterbridgePlatform.d.ts.map +1 -0
- package/dist/matterbridgePlatform.js +221 -6
- package/dist/matterbridgePlatform.js.map +1 -0
- package/dist/matterbridgeTypes.d.ts +196 -0
- package/dist/matterbridgeTypes.d.ts.map +1 -0
- package/dist/matterbridgeTypes.js +24 -0
- package/dist/matterbridgeTypes.js.map +1 -0
- package/dist/pluginManager.d.ts +273 -0
- package/dist/pluginManager.d.ts.map +1 -0
- package/dist/pluginManager.js +269 -3
- package/dist/pluginManager.js.map +1 -0
- package/dist/roboticVacuumCleaner.d.ts +102 -0
- package/dist/roboticVacuumCleaner.d.ts.map +1 -0
- package/dist/roboticVacuumCleaner.js +81 -6
- package/dist/roboticVacuumCleaner.js.map +1 -0
- package/dist/shelly.d.ts +161 -0
- package/dist/shelly.d.ts.map +1 -0
- package/dist/shelly.js +155 -7
- package/dist/shelly.js.map +1 -0
- package/dist/storage/export.d.ts +2 -0
- package/dist/storage/export.d.ts.map +1 -0
- package/dist/storage/export.js +1 -0
- package/dist/storage/export.js.map +1 -0
- package/dist/update.d.ts +58 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +53 -0
- package/dist/update.js.map +1 -0
- package/dist/utils/colorUtils.d.ts +61 -0
- package/dist/utils/colorUtils.d.ts.map +1 -0
- package/dist/utils/colorUtils.js +205 -2
- package/dist/utils/colorUtils.js.map +1 -0
- package/dist/utils/commandLine.d.ts +58 -0
- package/dist/utils/commandLine.d.ts.map +1 -0
- package/dist/utils/commandLine.js +53 -0
- package/dist/utils/commandLine.js.map +1 -0
- package/dist/utils/copyDirectory.d.ts +32 -0
- package/dist/utils/copyDirectory.d.ts.map +1 -0
- package/dist/utils/copyDirectory.js +37 -1
- package/dist/utils/copyDirectory.js.map +1 -0
- package/dist/utils/createDirectory.d.ts +32 -0
- package/dist/utils/createDirectory.d.ts.map +1 -0
- package/dist/utils/createDirectory.js +31 -0
- package/dist/utils/createDirectory.js.map +1 -0
- package/dist/utils/createZip.d.ts +38 -0
- package/dist/utils/createZip.d.ts.map +1 -0
- package/dist/utils/createZip.js +42 -2
- package/dist/utils/createZip.js.map +1 -0
- package/dist/utils/deepCopy.d.ts +31 -0
- package/dist/utils/deepCopy.d.ts.map +1 -0
- package/dist/utils/deepCopy.js +38 -0
- package/dist/utils/deepCopy.js.map +1 -0
- package/dist/utils/deepEqual.d.ts +53 -0
- package/dist/utils/deepEqual.d.ts.map +1 -0
- package/dist/utils/deepEqual.js +71 -1
- package/dist/utils/deepEqual.js.map +1 -0
- package/dist/utils/export.d.ts +12 -0
- package/dist/utils/export.d.ts.map +1 -0
- package/dist/utils/export.js +1 -0
- package/dist/utils/export.js.map +1 -0
- package/dist/utils/hex.d.ts +48 -0
- package/dist/utils/hex.d.ts.map +1 -0
- package/dist/utils/hex.js +57 -0
- package/dist/utils/hex.js.map +1 -0
- package/dist/utils/isvalid.d.ts +102 -0
- package/dist/utils/isvalid.d.ts.map +1 -0
- package/dist/utils/isvalid.js +100 -0
- package/dist/utils/isvalid.js.map +1 -0
- package/dist/utils/network.d.ts +69 -0
- package/dist/utils/network.d.ts.map +1 -0
- package/dist/utils/network.js +76 -5
- package/dist/utils/network.js.map +1 -0
- package/dist/utils/spawn.d.ts +12 -0
- package/dist/utils/spawn.d.ts.map +1 -0
- package/dist/utils/spawn.js +16 -0
- package/dist/utils/spawn.js.map +1 -0
- package/dist/utils/wait.d.ts +52 -0
- package/dist/utils/wait.d.ts.map +1 -0
- package/dist/utils/wait.js +58 -9
- package/dist/utils/wait.js.map +1 -0
- package/dist/waterHeater.d.ts +90 -0
- package/dist/waterHeater.d.ts.map +1 -0
- package/dist/waterHeater.js +62 -2
- package/dist/waterHeater.js.map +1 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matterbridgeEndpointHelpers.d.ts","sourceRoot":"","sources":["../src/matterbridgeEndpointHelpers.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
@@ -1,5 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file contains the helpers for the class MatterbridgeEndpoint.
|
|
3
|
+
*
|
|
4
|
+
* @file matterbridgeEndpointHelpers.ts
|
|
5
|
+
* @author Luca Liguori
|
|
6
|
+
* @date 2024-10-01
|
|
7
|
+
* @version 2.1.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
|
+
// @matter
|
|
1
24
|
import { Lifecycle } from '@matter/main';
|
|
2
25
|
import { getClusterNameById } from '@matter/main/types';
|
|
26
|
+
// @matter clusters
|
|
3
27
|
import { PowerSource } from '@matter/main/clusters/power-source';
|
|
4
28
|
import { UserLabel } from '@matter/main/clusters/user-label';
|
|
5
29
|
import { FixedLabel } from '@matter/main/clusters/fixed-label';
|
|
@@ -44,6 +68,7 @@ import { TotalVolatileOrganicCompoundsConcentrationMeasurement } from '@matter/m
|
|
|
44
68
|
import { OperationalState } from '@matter/main/clusters/operational-state';
|
|
45
69
|
import { DeviceEnergyManagement } from '@matter/main/clusters/device-energy-management';
|
|
46
70
|
import { DeviceEnergyManagementMode } from '@matter/main/clusters/device-energy-management-mode';
|
|
71
|
+
// @matter behaviors
|
|
47
72
|
import { PowerSourceServer } from '@matter/main/behaviors/power-source';
|
|
48
73
|
import { UserLabelServer } from '@matter/main/behaviors/user-label';
|
|
49
74
|
import { FixedLabelServer } from '@matter/main/behaviors/fixed-label';
|
|
@@ -74,8 +99,10 @@ import { Pm10ConcentrationMeasurementServer } from '@matter/main/behaviors/pm10-
|
|
|
74
99
|
import { RadonConcentrationMeasurementServer } from '@matter/main/behaviors/radon-concentration-measurement';
|
|
75
100
|
import { TotalVolatileOrganicCompoundsConcentrationMeasurementServer } from '@matter/main/behaviors/total-volatile-organic-compounds-concentration-measurement';
|
|
76
101
|
import { DeviceEnergyManagementServer } from '@matter/node/behaviors/device-energy-management';
|
|
102
|
+
// Other modules
|
|
77
103
|
import { createHash } from 'node:crypto';
|
|
78
104
|
import { BLUE, CYAN, db, debugStringify, er, hk, or, YELLOW, zb } from 'node-ansi-logger';
|
|
105
|
+
// Matterbridge
|
|
79
106
|
import { deepCopy, deepEqual, isValidArray } from './utils/export.js';
|
|
80
107
|
import { MatterbridgeIdentifyServer, MatterbridgeOnOffServer, MatterbridgeLevelControlServer, MatterbridgeColorControlServer, MatterbridgeLiftWindowCoveringServer, MatterbridgeThermostatServer, MatterbridgeFanControlServer, MatterbridgeDoorLockServer, MatterbridgeModeSelectServer, MatterbridgeValveConfigurationAndControlServer, MatterbridgeSmokeCoAlarmServer, MatterbridgeBooleanStateConfigurationServer, MatterbridgeOperationalStateServer, MatterbridgeDeviceEnergyManagementModeServer, } from './matterbridgeBehaviors.js';
|
|
81
108
|
export function capitalizeFirstLetter(name) {
|
|
@@ -90,19 +117,19 @@ export function lowercaseFirstLetter(name) {
|
|
|
90
117
|
}
|
|
91
118
|
export function checkNotLatinCharacters(deviceName) {
|
|
92
119
|
const nonLatinRegexList = [
|
|
93
|
-
/[\u0400-\u04FF\u0500-\u052F]/,
|
|
94
|
-
/[\u2E80-\u9FFF]/,
|
|
95
|
-
/[\uAC00-\uD7AF]/,
|
|
96
|
-
/[\u0600-\u06FF\u0750-\u077F]/,
|
|
97
|
-
/[\u0590-\u05FF]/,
|
|
98
|
-
/[\u0900-\u097F]/,
|
|
99
|
-
/[\u0E00-\u0E7F]/,
|
|
100
|
-
/[\u1200-\u137F]/,
|
|
120
|
+
/[\u0400-\u04FF\u0500-\u052F]/, // Cyrillic
|
|
121
|
+
/[\u2E80-\u9FFF]/, // CJK (Chinese, Japanese, Korean)
|
|
122
|
+
/[\uAC00-\uD7AF]/, // Korean Hangul
|
|
123
|
+
/[\u0600-\u06FF\u0750-\u077F]/, // Arabic, Persian
|
|
124
|
+
/[\u0590-\u05FF]/, // Hebrew
|
|
125
|
+
/[\u0900-\u097F]/, // Devanagari (Hindi, Sanskrit)
|
|
126
|
+
/[\u0E00-\u0E7F]/, // Thai
|
|
127
|
+
/[\u1200-\u137F]/, // Ethiopic (Amharic, Tigrinya)
|
|
101
128
|
];
|
|
102
129
|
return nonLatinRegexList.some((regex) => regex.test(deviceName));
|
|
103
130
|
}
|
|
104
131
|
export function generateUniqueId(deviceName) {
|
|
105
|
-
return createHash('md5').update(deviceName).digest('hex');
|
|
132
|
+
return createHash('md5').update(deviceName).digest('hex'); // MD5 hash of the device name
|
|
106
133
|
}
|
|
107
134
|
export function createUniqueId(param1, param2, param3, param4) {
|
|
108
135
|
const hash = createHash('md5');
|
|
@@ -110,6 +137,7 @@ export function createUniqueId(param1, param2, param3, param4) {
|
|
|
110
137
|
return hash.digest('hex');
|
|
111
138
|
}
|
|
112
139
|
export function getBehaviourTypesFromClusterServerIds(clusterServerList) {
|
|
140
|
+
// Map Server ClusterId to Behavior.Type
|
|
113
141
|
const behaviorTypes = [];
|
|
114
142
|
clusterServerList.forEach((clusterId) => {
|
|
115
143
|
behaviorTypes.push(getBehaviourTypeFromClusterServerId(clusterId));
|
|
@@ -117,12 +145,15 @@ export function getBehaviourTypesFromClusterServerIds(clusterServerList) {
|
|
|
117
145
|
return behaviorTypes;
|
|
118
146
|
}
|
|
119
147
|
export function getBehaviourTypesFromClusterClientIds(clusterClientList) {
|
|
148
|
+
// Map Client ClusterId to Behavior.Type
|
|
120
149
|
const behaviorTypes = [];
|
|
121
150
|
clusterClientList.forEach((_clusterId) => {
|
|
151
|
+
// behaviorTypes.push(getBehaviourTypeFromClusterClientId(clusterId));
|
|
122
152
|
});
|
|
123
153
|
return behaviorTypes;
|
|
124
154
|
}
|
|
125
155
|
export function getBehaviourTypeFromClusterServerId(clusterId) {
|
|
156
|
+
// Map ClusterId to Server Behavior.Type
|
|
126
157
|
if (clusterId === PowerSource.Cluster.id)
|
|
127
158
|
return PowerSourceServer.with(PowerSource.Feature.Wired);
|
|
128
159
|
if (clusterId === UserLabel.Cluster.id)
|
|
@@ -214,6 +245,8 @@ export function getBehaviourTypeFromClusterServerId(clusterId) {
|
|
|
214
245
|
return MatterbridgeIdentifyServer;
|
|
215
246
|
}
|
|
216
247
|
export function getBehaviourTypeFromClusterClientId(_clusterId) {
|
|
248
|
+
// Map ClusterId to Client Behavior.Type
|
|
249
|
+
// return IdentifyClient;
|
|
217
250
|
}
|
|
218
251
|
export function getBehavior(endpoint, cluster) {
|
|
219
252
|
let behavior;
|
|
@@ -231,6 +264,11 @@ export function getBehavior(endpoint, cluster) {
|
|
|
231
264
|
}
|
|
232
265
|
return behavior;
|
|
233
266
|
}
|
|
267
|
+
/**
|
|
268
|
+
* Invokes a command on the specified behavior of the endpoint. Used ONLY in Jest tests.
|
|
269
|
+
*
|
|
270
|
+
* @deprecated Used ONLY in Jest tests.
|
|
271
|
+
*/
|
|
234
272
|
export async function invokeBehaviorCommand(endpoint, cluster, command, params) {
|
|
235
273
|
const behaviorId = getBehavior(endpoint, cluster)?.id;
|
|
236
274
|
if (!behaviorId) {
|
|
@@ -238,6 +276,7 @@ export async function invokeBehaviorCommand(endpoint, cluster, command, params)
|
|
|
238
276
|
return false;
|
|
239
277
|
}
|
|
240
278
|
await endpoint.act((agent) => {
|
|
279
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
241
280
|
const behavior = agent[behaviorId];
|
|
242
281
|
if (!(command in behavior) || typeof behavior[command] !== 'function') {
|
|
243
282
|
endpoint.log?.error(`invokeBehaviorCommand error: command ${hk}${command}${er} not found on agent for endpoint ${or}${endpoint.maybeId}${er}:${or}${endpoint.maybeNumber}${er}`);
|
|
@@ -247,6 +286,17 @@ export async function invokeBehaviorCommand(endpoint, cluster, command, params)
|
|
|
247
286
|
});
|
|
248
287
|
return true;
|
|
249
288
|
}
|
|
289
|
+
/**
|
|
290
|
+
* Invokes the subscription handler on the specified cluster and attribute of the endpoint. Used ONLY in Jest tests.
|
|
291
|
+
*
|
|
292
|
+
* @param {MatterbridgeEndpoint} endpoint - The endpoint to invoke the subscription handler on.
|
|
293
|
+
* @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The cluster to invoke the subscription handler on.
|
|
294
|
+
* @param {string} attribute - The attribute to invoke the subscription handler on.
|
|
295
|
+
* @param {unknown} newValue - The new value of the attribute.
|
|
296
|
+
* @param {unknown} oldValue - The old value of the attribute.
|
|
297
|
+
*
|
|
298
|
+
* @deprecated Used ONLY in Jest tests.
|
|
299
|
+
*/
|
|
250
300
|
export async function invokeSubscribeHandler(endpoint, cluster, attribute, newValue, oldValue) {
|
|
251
301
|
const event = attribute + '$Changed';
|
|
252
302
|
const clusterName = getBehavior(endpoint, cluster)?.id;
|
|
@@ -263,6 +313,8 @@ export async function invokeSubscribeHandler(endpoint, cluster, attribute, newVa
|
|
|
263
313
|
endpoint.log.error(`invokeSubscribeHandler ${hk}${event}${er} error: cluster ${clusterName} not found on endpoint ${or}${endpoint.id}${er}:${or}${endpoint.number}${er}`);
|
|
264
314
|
return false;
|
|
265
315
|
}
|
|
316
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
317
|
+
// @ts-ignore
|
|
266
318
|
await endpoint.act((agent) => agent[clusterName].events[event].emit(newValue, oldValue, { ...agent.context, offline: false }));
|
|
267
319
|
return true;
|
|
268
320
|
}
|
|
@@ -294,6 +346,13 @@ export function addOptionalClusterServers(endpoint) {
|
|
|
294
346
|
});
|
|
295
347
|
addClusterServers(endpoint, optionalServerList);
|
|
296
348
|
}
|
|
349
|
+
/**
|
|
350
|
+
* Adds cluster servers to the specified endpoint based on the provided server list.
|
|
351
|
+
*
|
|
352
|
+
* @param {MatterbridgeEndpoint} endpoint - The endpoint to add the cluster servers to.
|
|
353
|
+
* @param {ClusterId[]} serverList - The list of cluster IDs to add.
|
|
354
|
+
* @returns void
|
|
355
|
+
*/
|
|
297
356
|
export function addClusterServers(endpoint, serverList) {
|
|
298
357
|
if (serverList.includes(PowerSource.Cluster.id))
|
|
299
358
|
endpoint.createDefaultPowerSourceWiredClusterServer();
|
|
@@ -374,6 +433,13 @@ export function addClusterServers(endpoint, serverList) {
|
|
|
374
433
|
if (serverList.includes(DeviceEnergyManagementMode.Cluster.id))
|
|
375
434
|
endpoint.createDefaultDeviceEnergyManagementModeClusterServer();
|
|
376
435
|
}
|
|
436
|
+
/**
|
|
437
|
+
* Adds a fixed label to the FixedLabel cluster. The FixedLabel cluster is created if it does not exist.
|
|
438
|
+
*
|
|
439
|
+
* @param {MatterbridgeEndpoint} endpoint - The endpoint to add the cluster servers to.
|
|
440
|
+
* @param {string} label - The label to add.
|
|
441
|
+
* @param {string} value - The value of the label.
|
|
442
|
+
*/
|
|
377
443
|
export async function addFixedLabel(endpoint, label, value) {
|
|
378
444
|
if (!endpoint.hasClusterServer(FixedLabel.Cluster.id)) {
|
|
379
445
|
endpoint.log.debug(`addFixedLabel: add cluster ${hk}FixedLabel${db}:${hk}fixedLabel${db} with label ${CYAN}${label}${db} value ${CYAN}${value}${db}`);
|
|
@@ -390,6 +456,13 @@ export async function addFixedLabel(endpoint, label, value) {
|
|
|
390
456
|
await endpoint.setAttribute(FixedLabel.Cluster.id, 'labelList', labelList, endpoint.log);
|
|
391
457
|
}
|
|
392
458
|
}
|
|
459
|
+
/**
|
|
460
|
+
* Adds a user label to the UserLabel cluster. The UserLabel cluster is created if it does not exist.
|
|
461
|
+
*
|
|
462
|
+
* @param {MatterbridgeEndpoint} endpoint - The endpoint to add the cluster servers to.
|
|
463
|
+
* @param {string} label - The label to add.
|
|
464
|
+
* @param {string} value - The value of the label.
|
|
465
|
+
*/
|
|
393
466
|
export async function addUserLabel(endpoint, label, value) {
|
|
394
467
|
if (!endpoint.hasClusterServer(UserLabel.Cluster.id)) {
|
|
395
468
|
endpoint.log.debug(`addUserLabel: add cluster ${hk}UserLabel${db}:${hk}userLabel${db} with label ${CYAN}${label}${db} value ${CYAN}${value}${db}`);
|
|
@@ -416,6 +489,16 @@ export function getAttributeId(endpoint, cluster, attribute) {
|
|
|
416
489
|
const clusterBehavior = endpoint.behaviors.supported[lowercaseFirstLetter(cluster)];
|
|
417
490
|
return clusterBehavior?.cluster?.attributes[lowercaseFirstLetter(attribute)]?.id;
|
|
418
491
|
}
|
|
492
|
+
/**
|
|
493
|
+
* Retrieves the value of the provided attribute from the given cluster.
|
|
494
|
+
*
|
|
495
|
+
* @param {MatterbridgeEndpoint} endpoint - The endpoint to retrieve the attribute from.
|
|
496
|
+
* @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The cluster to retrieve the attribute from.
|
|
497
|
+
* @param {string} attribute - The name of the attribute to retrieve.
|
|
498
|
+
* @param {AnsiLogger} [log] - (Optional) The logger to use for logging the retrieve. Errors are logged to the endpoint logger.
|
|
499
|
+
* @returns {any} The value of the attribute, or undefined if the attribute is not found.
|
|
500
|
+
*/
|
|
501
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
419
502
|
export function getAttribute(endpoint, cluster, attribute, log) {
|
|
420
503
|
const clusterName = getBehavior(endpoint, cluster)?.id;
|
|
421
504
|
if (!clusterName) {
|
|
@@ -438,6 +521,16 @@ export function getAttribute(endpoint, cluster, attribute, log) {
|
|
|
438
521
|
log?.info(`${db}Get endpoint ${or}${endpoint.id}${db}:${or}${endpoint.number}${db} attribute ${hk}${capitalizeFirstLetter(clusterName)}${db}.${hk}${attribute}${db} value ${YELLOW}${value !== null && typeof value === 'object' ? debugStringify(value) : value}${db}`);
|
|
439
522
|
return value;
|
|
440
523
|
}
|
|
524
|
+
/**
|
|
525
|
+
* Sets the value of an attribute on a cluster server.
|
|
526
|
+
*
|
|
527
|
+
* @param {MatterbridgeEndpoint} endpoint - The endpoint to set the attribute on.
|
|
528
|
+
* @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The cluster to set the attribute on.
|
|
529
|
+
* @param {string} attribute - The name of the attribute.
|
|
530
|
+
* @param {boolean | number | bigint | string | object | null} value - The value to set for the attribute.
|
|
531
|
+
* @param {AnsiLogger} [log] - (Optional) The logger to use for logging the set. Errors are logged to the endpoint logger.
|
|
532
|
+
* @returns {Promise<boolean>} - A promise that resolves to a boolean indicating whether the attribute was successfully set.
|
|
533
|
+
*/
|
|
441
534
|
export async function setAttribute(endpoint, cluster, attribute, value, log) {
|
|
442
535
|
const clusterName = getBehavior(endpoint, cluster)?.id;
|
|
443
536
|
if (!clusterName) {
|
|
@@ -463,6 +556,16 @@ export async function setAttribute(endpoint, cluster, attribute, value, log) {
|
|
|
463
556
|
`to ${YELLOW}${value !== null && typeof value === 'object' ? debugStringify(value) : value}${db}`);
|
|
464
557
|
return true;
|
|
465
558
|
}
|
|
559
|
+
/**
|
|
560
|
+
* Sets the value of an attribute on a cluster server.
|
|
561
|
+
*
|
|
562
|
+
* @param {MatterbridgeEndpoint} endpoint - The endpoint to update the attribute on.
|
|
563
|
+
* @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The cluster to update the attribute on.
|
|
564
|
+
* @param {string} attribute - The name of the attribute.
|
|
565
|
+
* @param {boolean | number | bigint | string | object | null} value - The value to set for the attribute.
|
|
566
|
+
* @param {AnsiLogger} [log] - (Optional) The logger to use for logging the update. Errors are logged to the endpoint logger.
|
|
567
|
+
* @returns {Promise<boolean>} - A promise that resolves to a boolean indicating whether the attribute was successfully set.
|
|
568
|
+
*/
|
|
466
569
|
export async function updateAttribute(endpoint, cluster, attribute, value, log) {
|
|
467
570
|
const clusterName = getBehavior(endpoint, cluster)?.id;
|
|
468
571
|
if (!clusterName) {
|
|
@@ -493,7 +596,24 @@ export async function updateAttribute(endpoint, cluster, attribute, value, log)
|
|
|
493
596
|
`to ${YELLOW}${value !== null && typeof value === 'object' ? debugStringify(value) : value}${db}`);
|
|
494
597
|
return true;
|
|
495
598
|
}
|
|
496
|
-
|
|
599
|
+
/**
|
|
600
|
+
* Subscribes to the provided attribute on a cluster.
|
|
601
|
+
*
|
|
602
|
+
* @param {MatterbridgeEndpoint} endpoint - The endpoint to subscribe the attribute to.
|
|
603
|
+
* @param {Behavior.Type | ClusterType | ClusterId | string} cluster - The cluster to subscribe the attribute to.
|
|
604
|
+
* @param {string} attribute - The name of the attribute to subscribe to.
|
|
605
|
+
* @param {(newValue: any, oldValue: any, context: ActionContext) => void} listener - A callback function that will be called when the attribute value changes. When context.offline === true then the change is locally generated and not from the controller.
|
|
606
|
+
* @param {AnsiLogger} [log] - Optional logger for logging errors and information.
|
|
607
|
+
* @returns {boolean} - A boolean indicating whether the subscription was successful.
|
|
608
|
+
*
|
|
609
|
+
* @remarks The listener function (cannot be async) will receive three parameters:
|
|
610
|
+
* - `newValue`: The new value of the attribute.
|
|
611
|
+
* - `oldValue`: The old value of the attribute.
|
|
612
|
+
* - `context`: The action context, which includes information about the action that triggered the change. When context.offline === true then the change is locally generated and not from the controller.
|
|
613
|
+
*/
|
|
614
|
+
export async function subscribeAttribute(endpoint, cluster, attribute,
|
|
615
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
616
|
+
listener, log) {
|
|
497
617
|
const clusterName = getBehavior(endpoint, cluster)?.id;
|
|
498
618
|
if (!clusterName) {
|
|
499
619
|
endpoint.log.error(`subscribeAttribute ${hk}${attribute}${er} error: cluster not found on endpoint ${or}${endpoint.maybeId}${er}:${or}${endpoint.maybeNumber}${er}`);
|
|
@@ -503,6 +623,7 @@ export async function subscribeAttribute(endpoint, cluster, attribute, listener,
|
|
|
503
623
|
endpoint.log.debug(`subscribeAttribute ${hk}${clusterName}.${attribute}${db}: Endpoint ${or}${endpoint.maybeId}${db}:${or}${endpoint.maybeNumber}${db} is in the ${BLUE}${endpoint.construction.status}${db} state`);
|
|
504
624
|
await endpoint.construction.ready;
|
|
505
625
|
}
|
|
626
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
506
627
|
const events = endpoint.events;
|
|
507
628
|
attribute = lowercaseFirstLetter(attribute) + '$Changed';
|
|
508
629
|
if (!(clusterName in events) || !(attribute in events[clusterName])) {
|
|
@@ -513,6 +634,16 @@ export async function subscribeAttribute(endpoint, cluster, attribute, listener,
|
|
|
513
634
|
log?.info(`${db}Subscribed endpoint ${or}${endpoint.id}${db}:${or}${endpoint.number}${db} attribute ${hk}${capitalizeFirstLetter(clusterName)}${db}.${hk}${attribute}${db}`);
|
|
514
635
|
return true;
|
|
515
636
|
}
|
|
637
|
+
/**
|
|
638
|
+
* Triggers an event on the specified cluster.
|
|
639
|
+
*
|
|
640
|
+
* @param {MatterbridgeEndpoint} endpoint - The endpoint to trigger the event on.
|
|
641
|
+
* @param {ClusterId} clusterId - The ID of the cluster.
|
|
642
|
+
* @param {string} event - The name of the event to trigger.
|
|
643
|
+
* @param {Record<string, boolean | number | bigint | string | object | undefined | null>} payload - The payload to pass to the event.
|
|
644
|
+
* @param {AnsiLogger} [log] - Optional logger for logging information.
|
|
645
|
+
* @returns {Promise<boolean>} - A promise that resolves to a boolean indicating whether the event was successfully triggered.
|
|
646
|
+
*/
|
|
516
647
|
export async function triggerEvent(endpoint, cluster, event, payload, log) {
|
|
517
648
|
const clusterName = getBehavior(endpoint, cluster)?.id;
|
|
518
649
|
if (!clusterName) {
|
|
@@ -523,15 +654,23 @@ export async function triggerEvent(endpoint, cluster, event, payload, log) {
|
|
|
523
654
|
endpoint.log.error(`triggerEvent ${hk}${clusterName}.${event}${er} error: Endpoint ${or}${endpoint.maybeId}${er}:${or}${endpoint.maybeNumber}${er} is in the ${BLUE}${endpoint.construction.status}${er} state`);
|
|
524
655
|
return false;
|
|
525
656
|
}
|
|
657
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
526
658
|
const events = endpoint.events;
|
|
527
659
|
if (!(clusterName in events) || !(event in events[clusterName])) {
|
|
528
660
|
endpoint.log.error(`triggerEvent ${hk}${event}${er} error: cluster ${clusterName} not found on endpoint ${or}${endpoint.id}${er}:${or}${endpoint.number}${er}`);
|
|
529
661
|
return false;
|
|
530
662
|
}
|
|
663
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
664
|
+
// @ts-ignore
|
|
531
665
|
await endpoint.act((agent) => agent[clusterName].events[event].emit(payload, agent.context));
|
|
532
666
|
log?.info(`${db}Trigger event ${hk}${capitalizeFirstLetter(clusterName)}${db}.${hk}${event}${db} with ${debugStringify(payload)}${db} on endpoint ${or}${endpoint.id}${db}:${or}${endpoint.number}${db} `);
|
|
533
667
|
return true;
|
|
534
668
|
}
|
|
669
|
+
/**
|
|
670
|
+
* Get the default OperationalState Cluster Server.
|
|
671
|
+
*
|
|
672
|
+
* @param {OperationalState.OperationalStateEnum} operationalState - The initial operational state.
|
|
673
|
+
*/
|
|
535
674
|
export function getDefaultOperationalStateClusterServer(operationalState = OperationalState.OperationalStateEnum.Stopped) {
|
|
536
675
|
return optionsFor(MatterbridgeOperationalStateServer, {
|
|
537
676
|
phaseList: [],
|
|
@@ -546,6 +685,13 @@ export function getDefaultOperationalStateClusterServer(operationalState = Opera
|
|
|
546
685
|
operationalError: { errorStateId: OperationalState.ErrorState.NoError, errorStateLabel: 'No error', errorStateDetails: 'Fully operational' },
|
|
547
686
|
});
|
|
548
687
|
}
|
|
688
|
+
/**
|
|
689
|
+
* Get the default TemperatureMeasurement cluster server options.
|
|
690
|
+
*
|
|
691
|
+
* @param {number | null} measuredValue - The measured value of the temperature x 100.
|
|
692
|
+
* @param {number | null} minMeasuredValue - The minimum measured value of the temperature x 100.
|
|
693
|
+
* @param {number | null} maxMeasuredValue - The maximum measured value of the temperature x 100.
|
|
694
|
+
*/
|
|
549
695
|
export function getDefaultTemperatureMeasurementClusterServer(measuredValue = null, minMeasuredValue = null, maxMeasuredValue = null) {
|
|
550
696
|
return optionsFor(TemperatureMeasurementServer, {
|
|
551
697
|
measuredValue,
|
|
@@ -554,6 +700,13 @@ export function getDefaultTemperatureMeasurementClusterServer(measuredValue = nu
|
|
|
554
700
|
tolerance: 0,
|
|
555
701
|
});
|
|
556
702
|
}
|
|
703
|
+
/**
|
|
704
|
+
* Get the default RelativeHumidityMeasurement cluster server options.
|
|
705
|
+
*
|
|
706
|
+
* @param {number | null} measuredValue - The measured value of the relative humidity x 100.
|
|
707
|
+
* @param {number | null} minMeasuredValue - The minimum measured value of the relative humidity x 100.
|
|
708
|
+
* @param {number | null} maxMeasuredValue - The maximum measured value of the relative humidity x 100.
|
|
709
|
+
*/
|
|
557
710
|
export function getDefaultRelativeHumidityMeasurementClusterServer(measuredValue = null, minMeasuredValue = null, maxMeasuredValue = null) {
|
|
558
711
|
return optionsFor(RelativeHumidityMeasurementServer, {
|
|
559
712
|
measuredValue,
|
|
@@ -562,6 +715,13 @@ export function getDefaultRelativeHumidityMeasurementClusterServer(measuredValue
|
|
|
562
715
|
tolerance: 0,
|
|
563
716
|
});
|
|
564
717
|
}
|
|
718
|
+
/**
|
|
719
|
+
* Get the default PressureMeasurement cluster server options.
|
|
720
|
+
*
|
|
721
|
+
* @param {number | null} measuredValue - The measured value for the pressure.
|
|
722
|
+
* @param {number | null} minMeasuredValue - The minimum measured value for the pressure.
|
|
723
|
+
* @param {number | null} maxMeasuredValue - The maximum measured value for the pressure.
|
|
724
|
+
*/
|
|
565
725
|
export function getDefaultPressureMeasurementClusterServer(measuredValue = null, minMeasuredValue = null, maxMeasuredValue = null) {
|
|
566
726
|
return optionsFor(PressureMeasurementServer, {
|
|
567
727
|
measuredValue,
|
|
@@ -570,6 +730,19 @@ export function getDefaultPressureMeasurementClusterServer(measuredValue = null,
|
|
|
570
730
|
tolerance: 0,
|
|
571
731
|
});
|
|
572
732
|
}
|
|
733
|
+
/**
|
|
734
|
+
* Get the default IlluminanceMeasurement cluster server options.
|
|
735
|
+
*
|
|
736
|
+
* @param {number | null} measuredValue - The measured value of illuminance.
|
|
737
|
+
* @param {number | null} minMeasuredValue - The minimum measured value of illuminance.
|
|
738
|
+
* @param {number | null} maxMeasuredValue - The maximum measured value of illuminance.
|
|
739
|
+
* @remark The default value for the illuminance measurement is null.
|
|
740
|
+
* This attribute SHALL indicate the illuminance in Lux (symbol lx) as follows:
|
|
741
|
+
* • MeasuredValue = 10,000 x log10(illuminance) + 1,
|
|
742
|
+
* where 1 lx <= illuminance <= 3.576 Mlx, corresponding to a MeasuredValue in the range 1 to 0xFFFE.
|
|
743
|
+
* • 0 indicates a value of illuminance that is too low to be measured
|
|
744
|
+
* • null indicates that the illuminance measurement is invalid.
|
|
745
|
+
*/
|
|
573
746
|
export function getDefaultIlluminanceMeasurementClusterServer(measuredValue = null, minMeasuredValue = null, maxMeasuredValue = null) {
|
|
574
747
|
return optionsFor(IlluminanceMeasurementServer, {
|
|
575
748
|
measuredValue,
|
|
@@ -578,6 +751,13 @@ export function getDefaultIlluminanceMeasurementClusterServer(measuredValue = nu
|
|
|
578
751
|
tolerance: 0,
|
|
579
752
|
});
|
|
580
753
|
}
|
|
754
|
+
/**
|
|
755
|
+
* Get the default FlowMeasurement cluster server options.
|
|
756
|
+
*
|
|
757
|
+
* @param {number | null} measuredValue - The measured value of the flow in 10 x m3/h.
|
|
758
|
+
* @param {number | null} minMeasuredValue - The minimum measured value of the flow in 10 x m3/h.
|
|
759
|
+
* @param {number | null} maxMeasuredValue - The maximum measured value of the flow in 10 x m3/h.
|
|
760
|
+
*/
|
|
581
761
|
export function getDefaultFlowMeasurementClusterServer(measuredValue = null, minMeasuredValue = null, maxMeasuredValue = null) {
|
|
582
762
|
return optionsFor(FlowMeasurementServer, {
|
|
583
763
|
measuredValue,
|
|
@@ -586,6 +766,19 @@ export function getDefaultFlowMeasurementClusterServer(measuredValue = null, min
|
|
|
586
766
|
tolerance: 0,
|
|
587
767
|
});
|
|
588
768
|
}
|
|
769
|
+
/**
|
|
770
|
+
* Get the default OccupancySensing cluster server options.
|
|
771
|
+
*
|
|
772
|
+
* @param {boolean} occupied - A boolean indicating whether the occupancy is occupied or not. Default is false.
|
|
773
|
+
* @param {number} holdTime - The hold time in seconds. Default is 30.
|
|
774
|
+
* @param {number} holdTimeMin - The minimum hold time in seconds. Default is 1.
|
|
775
|
+
* @param {number} holdTimeMax - The maximum hold time in seconds. Default is 300.
|
|
776
|
+
*
|
|
777
|
+
* @remark The default value for the occupancy sensor type is PIR.
|
|
778
|
+
* Servers SHALL set these attributes for backward compatibility with clients implementing a cluster revision <= 4 as
|
|
779
|
+
* described in OccupancySensorType and OccupancySensorTypeBitmap Attributes.
|
|
780
|
+
* This replaces the 9 legacy attributes PIROccupiedToUnoccupiedDelay through PhysicalContactUnoccupiedToOccupiedThreshold.
|
|
781
|
+
*/
|
|
589
782
|
export function getDefaultOccupancySensingClusterServer(occupied = false, holdTime = 30, holdTimeMin = 1, holdTimeMax = 300) {
|
|
590
783
|
return optionsFor(OccupancySensingServer.with(OccupancySensing.Feature.PassiveInfrared), {
|
|
591
784
|
occupancy: { occupied },
|
|
@@ -597,3 +790,4 @@ export function getDefaultOccupancySensingClusterServer(occupied = false, holdTi
|
|
|
597
790
|
holdTimeLimits: { holdTimeMin, holdTimeMax, holdTimeDefault: holdTime },
|
|
598
791
|
});
|
|
599
792
|
}
|
|
793
|
+
//# sourceMappingURL=matterbridgeEndpointHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matterbridgeEndpointHelpers.js","sourceRoot":"","sources":["../src/matterbridgeEndpointHelpers.ts"],"names":[],"mappings":"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"}
|