matterbridge 1.6.6 → 1.6.7-dev.1
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 +18 -4
- package/README.md +5 -3
- package/dist/cli.js +0 -26
- package/dist/cluster/export.js +0 -2
- package/dist/defaultConfigSchema.js +0 -23
- package/dist/deviceManager.js +1 -26
- package/dist/index.js +0 -30
- package/dist/logger/export.js +0 -1
- package/dist/matter/export.js +0 -1
- package/dist/matterbridge.js +66 -706
- package/dist/matterbridgeAccessoryPlatform.js +0 -33
- package/dist/matterbridgeBehaviors.js +1 -29
- package/dist/matterbridgeDevice.js +11 -947
- package/dist/matterbridgeDeviceTypes.js +12 -59
- package/dist/matterbridgeDynamicPlatform.js +0 -33
- package/dist/matterbridgeEdge.js +65 -538
- package/dist/matterbridgeEndpoint.js +12 -1056
- package/dist/matterbridgePlatform.js +5 -94
- package/dist/matterbridgeTypes.js +0 -24
- package/dist/matterbridgeWebsocket.js +0 -45
- package/dist/pluginManager.js +11 -240
- package/dist/storage/export.js +0 -1
- package/dist/utils/colorUtils.js +2 -205
- package/dist/utils/export.js +0 -1
- package/dist/utils/utils.js +7 -252
- package/frontend/build/asset-manifest.json +3 -3
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/js/{main.a742de4e.js → main.4dd7e165.js} +3 -3
- package/frontend/build/static/js/main.4dd7e165.js.map +1 -0
- package/npm-shrinkwrap.json +17 -13
- package/package.json +2 -3
- package/dist/cli.d.ts +0 -25
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/cluster/export.d.ts +0 -2
- package/dist/cluster/export.d.ts.map +0 -1
- package/dist/cluster/export.js.map +0 -1
- package/dist/defaultConfigSchema.d.ts +0 -27
- package/dist/defaultConfigSchema.d.ts.map +0 -1
- package/dist/defaultConfigSchema.js.map +0 -1
- package/dist/deviceManager.d.ts +0 -46
- package/dist/deviceManager.d.ts.map +0 -1
- package/dist/deviceManager.js.map +0 -1
- package/dist/index.d.ts +0 -40
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/logger/export.d.ts +0 -2
- package/dist/logger/export.d.ts.map +0 -1
- package/dist/logger/export.js.map +0 -1
- package/dist/matter/export.d.ts +0 -5
- package/dist/matter/export.d.ts.map +0 -1
- package/dist/matter/export.js.map +0 -1
- package/dist/matterbridge.d.ts +0 -466
- package/dist/matterbridge.d.ts.map +0 -1
- package/dist/matterbridge.js.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.d.ts +0 -39
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
- package/dist/matterbridgeBehaviors.d.ts +0 -942
- package/dist/matterbridgeBehaviors.d.ts.map +0 -1
- package/dist/matterbridgeBehaviors.js.map +0 -1
- package/dist/matterbridgeDevice.d.ts +0 -6674
- package/dist/matterbridgeDevice.d.ts.map +0 -1
- package/dist/matterbridgeDevice.js.map +0 -1
- package/dist/matterbridgeDeviceTypes.d.ts +0 -82
- package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
- package/dist/matterbridgeDeviceTypes.js.map +0 -1
- package/dist/matterbridgeDynamicPlatform.d.ts +0 -39
- package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
- package/dist/matterbridgeDynamicPlatform.js.map +0 -1
- package/dist/matterbridgeEdge.d.ts +0 -89
- package/dist/matterbridgeEdge.d.ts.map +0 -1
- package/dist/matterbridgeEdge.js.map +0 -1
- package/dist/matterbridgeEndpoint.d.ts +0 -9774
- package/dist/matterbridgeEndpoint.d.ts.map +0 -1
- package/dist/matterbridgeEndpoint.js.map +0 -1
- package/dist/matterbridgePlatform.d.ts +0 -114
- package/dist/matterbridgePlatform.d.ts.map +0 -1
- package/dist/matterbridgePlatform.js.map +0 -1
- package/dist/matterbridgeTypes.d.ts +0 -161
- package/dist/matterbridgeTypes.d.ts.map +0 -1
- package/dist/matterbridgeTypes.js.map +0 -1
- package/dist/matterbridgeWebsocket.d.ts +0 -49
- package/dist/matterbridgeWebsocket.d.ts.map +0 -1
- package/dist/matterbridgeWebsocket.js.map +0 -1
- package/dist/pluginManager.d.ts +0 -238
- package/dist/pluginManager.d.ts.map +0 -1
- package/dist/pluginManager.js.map +0 -1
- package/dist/storage/export.d.ts +0 -2
- package/dist/storage/export.d.ts.map +0 -1
- package/dist/storage/export.js.map +0 -1
- package/dist/utils/colorUtils.d.ts +0 -61
- package/dist/utils/colorUtils.d.ts.map +0 -1
- package/dist/utils/colorUtils.js.map +0 -1
- package/dist/utils/export.d.ts +0 -3
- package/dist/utils/export.d.ts.map +0 -1
- package/dist/utils/export.js.map +0 -1
- package/dist/utils/utils.d.ts +0 -221
- package/dist/utils/utils.d.ts.map +0 -1
- package/dist/utils/utils.js.map +0 -1
- package/frontend/build/static/js/main.a742de4e.js.map +0 -1
- /package/frontend/build/static/js/{main.a742de4e.js.LICENSE.txt → main.4dd7e165.js.LICENSE.txt} +0 -0
|
@@ -1,41 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the class MatterbridgeDevice.
|
|
3
|
-
*
|
|
4
|
-
* @file matterbridgeDevice.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @date 2023-12-29
|
|
7
|
-
* @version 2.0.0
|
|
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
|
-
// @matter
|
|
24
1
|
import { AirQuality, AirQualityCluster, BasicInformationCluster, BooleanState, BooleanStateCluster, BooleanStateConfiguration, BooleanStateConfigurationCluster, BridgedDeviceBasicInformationCluster, CarbonDioxideConcentrationMeasurement, CarbonDioxideConcentrationMeasurementCluster, CarbonMonoxideConcentrationMeasurement, CarbonMonoxideConcentrationMeasurementCluster, ColorControl, ColorControlCluster, ConcentrationMeasurement, Descriptor, DescriptorCluster, DeviceEnergyManagement, DeviceEnergyManagementCluster, DeviceEnergyManagementMode, DeviceEnergyManagementModeCluster, DoorLock, DoorLockCluster, ElectricalEnergyMeasurement, ElectricalEnergyMeasurementCluster, ElectricalPowerMeasurement, ElectricalPowerMeasurementCluster, FanControl, FanControlCluster, FlowMeasurement, FlowMeasurementCluster, FormaldehydeConcentrationMeasurement, FormaldehydeConcentrationMeasurementCluster, Groups, GroupsCluster, Identify, IdentifyCluster, IlluminanceMeasurement, IlluminanceMeasurementCluster, LevelControl, LevelControlCluster, ModeSelectCluster, NitrogenDioxideConcentrationMeasurement, NitrogenDioxideConcentrationMeasurementCluster, OccupancySensing, OccupancySensingCluster, OnOff, OnOffCluster, OzoneConcentrationMeasurement, OzoneConcentrationMeasurementCluster, Pm10ConcentrationMeasurement, Pm10ConcentrationMeasurementCluster, Pm1ConcentrationMeasurement, Pm1ConcentrationMeasurementCluster, Pm25ConcentrationMeasurement, Pm25ConcentrationMeasurementCluster, PowerSource, PowerSourceCluster, PowerSourceConfigurationCluster, PowerTopology, PowerTopologyCluster, PressureMeasurement, PressureMeasurementCluster, RadonConcentrationMeasurement, RadonConcentrationMeasurementCluster, RelativeHumidityMeasurement, RelativeHumidityMeasurementCluster, SmokeCoAlarm, SmokeCoAlarmCluster, Switch, SwitchCluster, TemperatureMeasurement, TemperatureMeasurementCluster, Thermostat, ThermostatCluster, ThreadNetworkDiagnostics, ThreadNetworkDiagnosticsCluster, TimeSynchronization, TimeSynchronizationCluster, TotalVolatileOrganicCompoundsConcentrationMeasurement, TotalVolatileOrganicCompoundsConcentrationMeasurementCluster, WindowCovering, WindowCoveringCluster, } from '@matter/main/clusters';
|
|
25
2
|
import { Specification } from '@matter/main/model';
|
|
26
3
|
import { EndpointNumber, extendPublicHandlerMethods, VendorId } from '@matter/main';
|
|
27
4
|
import { MeasurementType, getClusterNameById } from '@matter/main/types';
|
|
28
|
-
// @project-chip
|
|
29
5
|
import { Device } from '@project-chip/matter.js/device';
|
|
30
6
|
import { GroupsClusterHandler, ClusterServer } from '@project-chip/matter.js/cluster';
|
|
31
|
-
// AnsiLogger module
|
|
32
7
|
import { AnsiLogger, CYAN, YELLOW, db, hk, or, zb, debugStringify } from 'node-ansi-logger';
|
|
33
|
-
// Node.js modules
|
|
34
8
|
import { createHash } from 'crypto';
|
|
35
9
|
import { bridgedNode } from './matterbridgeDeviceTypes.js';
|
|
36
10
|
export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
37
11
|
static bridgeMode = '';
|
|
38
|
-
static logLevel = "info"
|
|
12
|
+
static logLevel = "info";
|
|
39
13
|
log;
|
|
40
14
|
plugin = undefined;
|
|
41
15
|
configUrl = undefined;
|
|
@@ -50,13 +24,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
50
24
|
softwareVersionString = undefined;
|
|
51
25
|
hardwareVersion = undefined;
|
|
52
26
|
hardwareVersionString = undefined;
|
|
53
|
-
/**
|
|
54
|
-
* Create a Matterbridge device.
|
|
55
|
-
* @constructor
|
|
56
|
-
* @param {DeviceTypeDefinition | AtLeastOne<DeviceTypeDefinition>} definition - The DeviceTypeDefinition of the device.
|
|
57
|
-
* @param {EndpointOptions} [options={}] - The options for the device.
|
|
58
|
-
* @param {boolean} [debug=false] - The debug level for the device.
|
|
59
|
-
*/
|
|
60
27
|
constructor(definition, options = {}, debug = false) {
|
|
61
28
|
let firstDefinition;
|
|
62
29
|
if (Array.isArray(definition))
|
|
@@ -64,7 +31,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
64
31
|
else
|
|
65
32
|
firstDefinition = definition;
|
|
66
33
|
super(firstDefinition, options);
|
|
67
|
-
this.log = new AnsiLogger({ logName: 'MatterbridgeDevice', logTimestampFormat: 4
|
|
34
|
+
this.log = new AnsiLogger({ logName: 'MatterbridgeDevice', logTimestampFormat: 4, logLevel: debug === true ? "debug" : MatterbridgeDevice.logLevel });
|
|
68
35
|
this.log.debug(`new MatterbridgeDevice with deviceType: ${zb}${firstDefinition.code}${db}-${zb}${firstDefinition.name}${db}`);
|
|
69
36
|
if (Array.isArray(definition)) {
|
|
70
37
|
definition.forEach((deviceType) => {
|
|
@@ -74,28 +41,12 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
74
41
|
else
|
|
75
42
|
this.addDeviceType(firstDefinition);
|
|
76
43
|
}
|
|
77
|
-
/**
|
|
78
|
-
* Loads asyncronously an instance of the MatterbridgeDevice class.
|
|
79
|
-
*
|
|
80
|
-
* @param {DeviceTypeDefinition | AtLeastOne<DeviceTypeDefinition>} definition - The DeviceTypeDefinition of the device.
|
|
81
|
-
* @param {EndpointOptions} [options={}] - The options for the device.
|
|
82
|
-
* @param {boolean} [debug=false] - The debug level for the device.
|
|
83
|
-
* @returns {Promise<MatterbridgeDevice>} A Promise of MatterbridgeDevice instance.
|
|
84
|
-
*/
|
|
85
44
|
static async loadInstance(definition, options = {}, debug = false) {
|
|
86
45
|
return new MatterbridgeDevice(definition, options, debug);
|
|
87
46
|
}
|
|
88
|
-
// Present in new API but not here
|
|
89
47
|
get maybeNumber() {
|
|
90
48
|
return this.number;
|
|
91
49
|
}
|
|
92
|
-
/**
|
|
93
|
-
* Adds a device type to the list of device types of the MatterbridgeDevice endpoint.
|
|
94
|
-
* If the device type is not already present in the list, it will be added.
|
|
95
|
-
*
|
|
96
|
-
* @param {DeviceTypeDefinition} deviceType - The device type to add.
|
|
97
|
-
* @returns {MatterbridgeDevice} The MatterbridgeDevice instance.
|
|
98
|
-
*/
|
|
99
50
|
addDeviceType(deviceType) {
|
|
100
51
|
const deviceTypes = this.getDeviceTypes();
|
|
101
52
|
if (!deviceTypes.includes(deviceType)) {
|
|
@@ -105,13 +56,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
105
56
|
}
|
|
106
57
|
return this;
|
|
107
58
|
}
|
|
108
|
-
/**
|
|
109
|
-
* Adds one or more device types with the required cluster servers and the specified cluster servers.
|
|
110
|
-
*
|
|
111
|
-
* @param {AtLeastOne<DeviceTypeDefinition>} deviceTypes - The device types to add.
|
|
112
|
-
* @param {ClusterId[]} includeServerList - The list of cluster IDs to include.
|
|
113
|
-
* @returns {MatterbridgeDevice} The MatterbridgeDevice instance.
|
|
114
|
-
*/
|
|
115
59
|
addDeviceTypeWithClusterServer(deviceTypes, includeServerList = []) {
|
|
116
60
|
this.log.debug('addDeviceTypeWithClusterServer:');
|
|
117
61
|
deviceTypes.forEach((deviceType) => {
|
|
@@ -133,23 +77,11 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
133
77
|
this.addClusterServerFromList(this, includeServerList);
|
|
134
78
|
return this;
|
|
135
79
|
}
|
|
136
|
-
/**
|
|
137
|
-
* Adds a child endpoint with the specified device types and options.
|
|
138
|
-
* If the child endpoint is not already present, it will be created and added.
|
|
139
|
-
* If the child endpoint is already present, the device types will be added to the existing child endpoint.
|
|
140
|
-
*
|
|
141
|
-
* @param {string} endpointName - The name of the new endpoint to add.
|
|
142
|
-
* @param {AtLeastOne<DeviceTypeDefinition>} deviceTypes - The device types to add.
|
|
143
|
-
* @param {MatterbridgeEndpointOptions} [options={}] - The options for the endpoint.
|
|
144
|
-
* @param {boolean} [debug=false] - Whether to enable debug logging.
|
|
145
|
-
* @returns {MatterbridgeDevice} - The child endpoint that was found or added.
|
|
146
|
-
*/
|
|
147
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
148
80
|
addChildDeviceType(endpointName, deviceTypes, options = {}, debug = false) {
|
|
149
81
|
this.log.debug(`addChildDeviceType: ${CYAN}${endpointName}${db}`);
|
|
150
82
|
let child = this.getChildEndpoints().find((endpoint) => endpoint.uniqueStorageKey === endpointName);
|
|
151
83
|
if (!child) {
|
|
152
|
-
child = new MatterbridgeDevice(deviceTypes, { uniqueStorageKey: endpointName });
|
|
84
|
+
child = new MatterbridgeDevice(deviceTypes, { uniqueStorageKey: endpointName }, debug);
|
|
153
85
|
if ('tagList' in options) {
|
|
154
86
|
for (const tag of options.tagList) {
|
|
155
87
|
this.log.debug(`- with tagList: mfgCode ${CYAN}${tag.mfgCode}${db} namespaceId ${CYAN}${tag.namespaceId}${db} tag ${CYAN}${tag.tag}${db} label ${CYAN}${tag.label}${db}`);
|
|
@@ -169,24 +101,11 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
169
101
|
child.setDeviceTypes(childDeviceTypes);
|
|
170
102
|
return child;
|
|
171
103
|
}
|
|
172
|
-
/**
|
|
173
|
-
* Adds a child endpoint with one or more device types with the required cluster servers and the specified cluster servers.
|
|
174
|
-
* If the child endpoint is not already present in the childEndpoints, it will be added.
|
|
175
|
-
* If the child endpoint is already present in the childEndpoints, the device types and cluster servers will be added to the existing child endpoint.
|
|
176
|
-
*
|
|
177
|
-
* @param {string} endpointName - The name of the new enpoint to add.
|
|
178
|
-
* @param {AtLeastOne<DeviceTypeDefinition>} deviceTypes - The device types to add.
|
|
179
|
-
* @param {ClusterId[]} [includeServerList=[]] - The list of cluster IDs to include.
|
|
180
|
-
* @param {EndpointOptions} [options={}] - The options for the device.
|
|
181
|
-
* @param {boolean} [debug=false] - Whether to enable debug logging.
|
|
182
|
-
* @returns {MatterbridgeDevice} - The child endpoint that was found or added.
|
|
183
|
-
*/
|
|
184
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
185
104
|
addChildDeviceTypeWithClusterServer(endpointName, deviceTypes, includeServerList = [], options = {}, debug = false) {
|
|
186
105
|
this.log.debug(`addChildDeviceTypeWithClusterServer: ${CYAN}${endpointName}${db}`);
|
|
187
106
|
let child = this.getChildEndpoints().find((endpoint) => endpoint.uniqueStorageKey === endpointName);
|
|
188
107
|
if (!child) {
|
|
189
|
-
child = new MatterbridgeDevice(deviceTypes, { uniqueStorageKey: endpointName });
|
|
108
|
+
child = new MatterbridgeDevice(deviceTypes, { uniqueStorageKey: endpointName }, debug);
|
|
190
109
|
if ('tagList' in options) {
|
|
191
110
|
for (const tag of options.tagList) {
|
|
192
111
|
this.log.debug(`- with tagList: mfgCode ${CYAN}${tag.mfgCode}${db} namespaceId ${CYAN}${tag.namespaceId}${db} tag ${CYAN}${tag.tag}${db} label ${CYAN}${tag.label}${db}`);
|
|
@@ -214,12 +133,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
214
133
|
this.addClusterServerFromList(child, includeServerList);
|
|
215
134
|
return child;
|
|
216
135
|
}
|
|
217
|
-
/**
|
|
218
|
-
* Adds the required cluster servers (only if they are not present) for the device types of the specified endpoint.
|
|
219
|
-
*
|
|
220
|
-
* @param {Endpoint} endpoint - The endpoint to add the required cluster servers to.
|
|
221
|
-
* @returns {Endpoint} The updated endpoint with the required cluster servers added.
|
|
222
|
-
*/
|
|
223
136
|
addRequiredClusterServers(endpoint) {
|
|
224
137
|
const requiredServerList = [];
|
|
225
138
|
this.log.debug(`addRequiredClusterServer for ${CYAN}${endpoint.name}${db}`);
|
|
@@ -236,12 +149,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
236
149
|
this.addClusterServerFromList(endpoint, requiredServerList);
|
|
237
150
|
return endpoint;
|
|
238
151
|
}
|
|
239
|
-
/**
|
|
240
|
-
* Adds the optional cluster servers (only if they are not present) for the device types of the specified endpoint.
|
|
241
|
-
*
|
|
242
|
-
* @param {Endpoint} endpoint - The endpoint to add the required cluster servers to.
|
|
243
|
-
* @returns {Endpoint} The updated endpoint with the required cluster servers added.
|
|
244
|
-
*/
|
|
245
152
|
addOptionalClusterServers(endpoint) {
|
|
246
153
|
const optionalServerList = [];
|
|
247
154
|
this.log.debug(`addRequiredClusterServer for ${CYAN}${endpoint.name}${db}`);
|
|
@@ -258,19 +165,11 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
258
165
|
this.addClusterServerFromList(endpoint, optionalServerList);
|
|
259
166
|
return endpoint;
|
|
260
167
|
}
|
|
261
|
-
/**
|
|
262
|
-
* Adds cluster servers to the specified endpoint based on the provided server list.
|
|
263
|
-
*
|
|
264
|
-
* @param {Endpoint} endpoint - The endpoint to add cluster servers to.
|
|
265
|
-
* @param {ClusterId[]} includeServerList - The list of cluster IDs to include.
|
|
266
|
-
* @returns {Endpoint} The updated endpoint with the cluster servers added.
|
|
267
|
-
*/
|
|
268
168
|
addClusterServerFromList(endpoint, includeServerList) {
|
|
269
169
|
if (includeServerList.includes(Identify.Cluster.id))
|
|
270
170
|
endpoint.addClusterServer(this.getDefaultIdentifyClusterServer());
|
|
271
171
|
if (includeServerList.includes(Groups.Cluster.id))
|
|
272
172
|
endpoint.addClusterServer(this.getDefaultGroupsClusterServer());
|
|
273
|
-
// if (includeServerList.includes(ScenesManagement.Cluster.id)) endpoint.addClusterServer(this.getDefaultScenesClusterServer());
|
|
274
173
|
if (includeServerList.includes(OnOff.Cluster.id))
|
|
275
174
|
endpoint.addClusterServer(this.getDefaultOnOffClusterServer());
|
|
276
175
|
if (includeServerList.includes(LevelControl.Cluster.id))
|
|
@@ -343,25 +242,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
343
242
|
endpoint.addClusterServer(this.getDefaultDeviceEnergyManagementModeClusterServer());
|
|
344
243
|
return endpoint;
|
|
345
244
|
}
|
|
346
|
-
/**
|
|
347
|
-
* Retrieves a child endpoint by its name.
|
|
348
|
-
*
|
|
349
|
-
* @param {string} endpointName - The name of the endpoint to retrieve.
|
|
350
|
-
* @returns {Endpoint | undefined} The child endpoint with the specified name, or undefined if not found.
|
|
351
|
-
*/
|
|
352
245
|
getChildEndpointByName(endpointName) {
|
|
353
246
|
return this.getChildEndpoints().find((endpoint) => endpoint.uniqueStorageKey === endpointName);
|
|
354
247
|
}
|
|
355
|
-
/**
|
|
356
|
-
* Retrieves the value of the specified attribute from the given endpoint and cluster.
|
|
357
|
-
*
|
|
358
|
-
* @param {ClusterId} clusterId - The ID of the cluster to retrieve the attribute from.
|
|
359
|
-
* @param {string} attribute - The name of the attribute to retrieve.
|
|
360
|
-
* @param {AnsiLogger} [log] - Optional logger for error and info messages.
|
|
361
|
-
* @param {Endpoint} [endpoint] - Optional the child endpoint to retrieve the attribute from.
|
|
362
|
-
* @returns {any} The value of the attribute, or undefined if the attribute is not found.
|
|
363
|
-
*/
|
|
364
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
365
248
|
getAttribute(clusterId, attribute, log, endpoint) {
|
|
366
249
|
if (!endpoint)
|
|
367
250
|
endpoint = this;
|
|
@@ -375,28 +258,15 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
375
258
|
this.log.error(`getAttribute error: Attribute ${attribute} not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
376
259
|
return undefined;
|
|
377
260
|
}
|
|
378
|
-
// Find the getter method
|
|
379
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
380
261
|
if (!clusterServer[`get${capitalizedAttributeName}Attribute`]) {
|
|
381
262
|
this.log.error(`getAttribute error: Getter get${capitalizedAttributeName}Attribute not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
382
263
|
return undefined;
|
|
383
264
|
}
|
|
384
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type
|
|
385
265
|
const getter = clusterServer[`get${capitalizedAttributeName}Attribute`];
|
|
386
266
|
const value = getter();
|
|
387
267
|
log?.info(`${db}Get endpoint ${or}${endpoint.name}:${endpoint.number}${db} attribute ${hk}${clusterServer.name}.${capitalizedAttributeName}${db} value ${YELLOW}${typeof value === 'object' ? debugStringify(value) : value}${db}`);
|
|
388
268
|
return value;
|
|
389
269
|
}
|
|
390
|
-
/**
|
|
391
|
-
* Sets the value of an attribute on a cluster server endpoint.
|
|
392
|
-
*
|
|
393
|
-
* @param {ClusterId} clusterId - The ID of the cluster.
|
|
394
|
-
* @param {string} attribute - The name of the attribute.
|
|
395
|
-
* @param {any} value - The value to set for the attribute.
|
|
396
|
-
* @param {AnsiLogger} [log] - (Optional) The logger to use for logging errors and information.
|
|
397
|
-
* @param {Endpoint} [endpoint] - (Optional) The endpoint to set the attribute on. If not provided, the attribute will be set on the current endpoint.
|
|
398
|
-
*/
|
|
399
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
400
270
|
setAttribute(clusterId, attribute, value, log, endpoint) {
|
|
401
271
|
if (!endpoint)
|
|
402
272
|
endpoint = this;
|
|
@@ -410,21 +280,15 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
410
280
|
this.log.error(`setAttribute error: Attribute ${attribute} not found on Cluster ${clusterId} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
411
281
|
return false;
|
|
412
282
|
}
|
|
413
|
-
// Find the getter method
|
|
414
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
415
283
|
if (!clusterServer[`get${capitalizedAttributeName}Attribute`]) {
|
|
416
284
|
this.log.error(`setAttribute error: Getter get${capitalizedAttributeName}Attribute not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
417
285
|
return false;
|
|
418
286
|
}
|
|
419
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type
|
|
420
287
|
const getter = clusterServer[`get${capitalizedAttributeName}Attribute`];
|
|
421
|
-
// Find the setter method
|
|
422
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
423
288
|
if (!clusterServer[`set${capitalizedAttributeName}Attribute`]) {
|
|
424
289
|
this.log.error(`setAttribute error: Setter set${capitalizedAttributeName}Attribute not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
425
290
|
return false;
|
|
426
291
|
}
|
|
427
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type
|
|
428
292
|
const setter = clusterServer[`set${capitalizedAttributeName}Attribute`];
|
|
429
293
|
const oldValue = getter();
|
|
430
294
|
setter(value);
|
|
@@ -433,17 +297,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
433
297
|
`to ${YELLOW}${typeof value === 'object' ? debugStringify(value) : value}${db}`);
|
|
434
298
|
return true;
|
|
435
299
|
}
|
|
436
|
-
/**
|
|
437
|
-
* Subscribes to an attribute on a cluster.
|
|
438
|
-
*
|
|
439
|
-
* @param {ClusterId} clusterId - The ID of the cluster.
|
|
440
|
-
* @param {string} attribute - The name of the attribute to subscribe to.
|
|
441
|
-
* @param {(newValue: any, oldValue: any) => void} listener - A callback function that will be called when the attribute value changes.
|
|
442
|
-
* @param {AnsiLogger} log - (Optional) An AnsiLogger instance for logging errors and information.
|
|
443
|
-
* @param {Endpoint} endpoint - (Optional) The endpoint to subscribe the attribute on. If not provided, the current endpoint will be used.
|
|
444
|
-
* @returns A boolean indicating whether the subscription was successful.
|
|
445
|
-
*/
|
|
446
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
447
300
|
subscribeAttribute(clusterId, attribute, listener, log, endpoint) {
|
|
448
301
|
if (!endpoint)
|
|
449
302
|
endpoint = this;
|
|
@@ -457,28 +310,15 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
457
310
|
this.log.error(`subscribeAttribute error: Attribute ${attribute} not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
458
311
|
return false;
|
|
459
312
|
}
|
|
460
|
-
// Find the subscribe method
|
|
461
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
462
313
|
if (!clusterServer[`subscribe${capitalizedAttributeName}Attribute`]) {
|
|
463
314
|
this.log.error(`subscribeAttribute error: subscribe${capitalizedAttributeName}Attribute not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
464
315
|
return false;
|
|
465
316
|
}
|
|
466
|
-
// Subscribe to the attribute
|
|
467
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type
|
|
468
317
|
const subscribe = clusterServer[`subscribe${capitalizedAttributeName}Attribute`];
|
|
469
318
|
subscribe(listener);
|
|
470
319
|
log?.info(`${db}Subscribe endpoint ${or}${endpoint.name}:${endpoint.number}${db} attribute ${hk}${clusterServer.name}.${capitalizedAttributeName}${db}`);
|
|
471
320
|
return true;
|
|
472
321
|
}
|
|
473
|
-
/**
|
|
474
|
-
* Triggers the specified event of the specified cluster from the given endpoint and cluster.
|
|
475
|
-
*
|
|
476
|
-
* @param {ClusterId} clusterId - The ID of the cluster to retrieve the event from.
|
|
477
|
-
* @param {string} event - The name of the event to trigger.
|
|
478
|
-
* @param {Record<string, any>} payload - The payload of the event to trigger.
|
|
479
|
-
* @param {AnsiLogger} [log] - Optional logger for error and info messages.
|
|
480
|
-
* @param {Endpoint} [endpoint] - Optional the child endpoint to retrieve the event from.
|
|
481
|
-
*/
|
|
482
322
|
triggerEvent(clusterId, event, payload, log, endpoint) {
|
|
483
323
|
if (!endpoint)
|
|
484
324
|
endpoint = this;
|
|
@@ -494,43 +334,20 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
494
334
|
this.log.error(`triggerEvent error: Event ${event} not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
495
335
|
return;
|
|
496
336
|
}
|
|
497
|
-
// Find the getter method
|
|
498
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
499
337
|
if (!clusterServer[`trigger${capitalizedEventName}Event`]) {
|
|
500
338
|
this.log.error(`triggerEvent error: Trigger trigger${capitalizedEventName}Event not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
501
339
|
return;
|
|
502
340
|
}
|
|
503
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type
|
|
504
341
|
const trigger = clusterServer[`trigger${capitalizedEventName}Event`];
|
|
505
342
|
trigger(payload);
|
|
506
343
|
log?.info(`${db}Trigger event ${hk}${clusterServer.name}.${capitalizedEventName}${db} on endpoint ${or}${endpoint.name}:${endpoint.number}${db}`);
|
|
507
344
|
}
|
|
508
|
-
/**
|
|
509
|
-
* Adds a tag to the tag list of the specified endpoint.
|
|
510
|
-
*
|
|
511
|
-
* @param {Endpoint} endpoint - The endpoint to add the tag to.
|
|
512
|
-
* @param {VendorId | null} mfgCode - The manufacturer code.
|
|
513
|
-
* @param {number} namespaceId - The namespace ID of the tag.
|
|
514
|
-
* @param {number} tag - The tag number.
|
|
515
|
-
* @param {string | null} [label=null] - The label for the tag.
|
|
516
|
-
*
|
|
517
|
-
* @remarks
|
|
518
|
-
* This method is used to add a tag to the tag list of a given endpoint.
|
|
519
|
-
* If the tag list already exists, the new tag is added to the existing list. Otherwise, a new tag list is created with the provided tag.
|
|
520
|
-
*
|
|
521
|
-
* Example usage:
|
|
522
|
-
* ```typescript
|
|
523
|
-
* this.addTagList(endpoint, null, NumberTag.One.namespaceId, NumberTag.One.tag, 'Label');
|
|
524
|
-
* this.addTagList(endpoint, null, SwitchesTag.Custom.namespaceId, SwitchesTag.Custom.tag, 'Label');
|
|
525
|
-
* ```
|
|
526
|
-
*/
|
|
527
345
|
addTagList(endpoint, mfgCode, namespaceId, tag, label) {
|
|
528
346
|
const descriptor = endpoint.getClusterServer(DescriptorCluster.with(Descriptor.Feature.TagList));
|
|
529
347
|
if (!descriptor) {
|
|
530
348
|
this.log.error(`addTagList: descriptor cluster not found on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
531
349
|
return;
|
|
532
350
|
}
|
|
533
|
-
// tagList: { mfgCode: VendorId | null; namespaceId: number; tag: number; label?: string | null }[] = [];
|
|
534
351
|
if (descriptor.attributes.tagList) {
|
|
535
352
|
this.log.debug(`addTagList: adding ${CYAN}tagList${db} mfCode: ${mfgCode}, namespaceId: ${namespaceId}, tag: ${tag}, label: ${label} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
536
353
|
const tagList = descriptor.attributes.tagList.getLocal();
|
|
@@ -546,12 +363,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
546
363
|
partsList: [...descriptor.attributes.partsList.getLocal()],
|
|
547
364
|
}, {}, {}));
|
|
548
365
|
}
|
|
549
|
-
/**
|
|
550
|
-
* Serializes the Matterbridge device into a serialized object.
|
|
551
|
-
*
|
|
552
|
-
* @param pluginName - The name of the plugin.
|
|
553
|
-
* @returns The serialized Matterbridge device object.
|
|
554
|
-
*/
|
|
555
366
|
serialize() {
|
|
556
367
|
if (!this.serialNumber || !this.deviceName || !this.uniqueId)
|
|
557
368
|
return;
|
|
@@ -576,11 +387,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
576
387
|
});
|
|
577
388
|
return serialized;
|
|
578
389
|
}
|
|
579
|
-
/**
|
|
580
|
-
* Deserializes the device into a serialized object.
|
|
581
|
-
*
|
|
582
|
-
* @returns The deserialized MatterbridgeDevice.
|
|
583
|
-
*/
|
|
584
390
|
static deserialize(serializedDevice) {
|
|
585
391
|
const device = new MatterbridgeDevice(serializedDevice.deviceTypes);
|
|
586
392
|
device.serialNumber = serializedDevice.serialNumber;
|
|
@@ -596,9 +402,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
596
402
|
}
|
|
597
403
|
return device;
|
|
598
404
|
}
|
|
599
|
-
/**
|
|
600
|
-
* Get a default IdentifyCluster server.
|
|
601
|
-
*/
|
|
602
405
|
getDefaultIdentifyClusterServer(identifyTime = 0, identifyType = Identify.IdentifyType.None) {
|
|
603
406
|
return ClusterServer(IdentifyCluster, {
|
|
604
407
|
identifyTime,
|
|
@@ -614,88 +417,28 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
614
417
|
},
|
|
615
418
|
});
|
|
616
419
|
}
|
|
617
|
-
/**
|
|
618
|
-
* Creates a default IdentifyCluster server.
|
|
619
|
-
*/
|
|
620
420
|
createDefaultIdentifyClusterServer(identifyTime = 0, identifyType = Identify.IdentifyType.None) {
|
|
621
421
|
this.addClusterServer(this.getDefaultIdentifyClusterServer(identifyTime, identifyType));
|
|
622
422
|
}
|
|
623
|
-
/**
|
|
624
|
-
* Get a default IdentifyCluster server.
|
|
625
|
-
*/
|
|
626
423
|
getDefaultGroupsClusterServer() {
|
|
627
424
|
return ClusterServer(GroupsCluster, {
|
|
628
425
|
nameSupport: {
|
|
629
426
|
nameSupport: true,
|
|
630
427
|
},
|
|
631
428
|
}, GroupsClusterHandler());
|
|
632
|
-
// return createDefaultGroupsClusterServer();
|
|
633
429
|
}
|
|
634
|
-
/**
|
|
635
|
-
* Creates a default groups cluster server and adds it to the device.
|
|
636
|
-
*/
|
|
637
430
|
createDefaultGroupsClusterServer() {
|
|
638
431
|
this.addClusterServer(this.getDefaultGroupsClusterServer());
|
|
639
432
|
}
|
|
640
|
-
/**
|
|
641
|
-
* Get a default scenes cluster server and adds it to the current instance.
|
|
642
|
-
* @deprecated This method is deprecated.
|
|
643
|
-
*
|
|
644
|
-
*/
|
|
645
433
|
getDefaultScenesClusterServer() {
|
|
646
|
-
|
|
647
|
-
return ClusterServer(
|
|
648
|
-
ScenesCluster,
|
|
649
|
-
{
|
|
650
|
-
sceneCount: 0,
|
|
651
|
-
currentScene: 0,
|
|
652
|
-
currentGroup: GroupId(0),
|
|
653
|
-
sceneValid: false,
|
|
654
|
-
nameSupport: {
|
|
655
|
-
nameSupport: true,
|
|
656
|
-
},
|
|
657
|
-
lastConfiguredBy: null,
|
|
658
|
-
},
|
|
659
|
-
{},
|
|
660
|
-
);
|
|
661
|
-
*/
|
|
662
|
-
}
|
|
663
|
-
/**
|
|
664
|
-
* Creates a default scenes cluster server and adds it to the current instance.
|
|
665
|
-
* @deprecated This method is deprecated.
|
|
666
|
-
*/
|
|
434
|
+
}
|
|
667
435
|
createDefaultScenesClusterServer() {
|
|
668
|
-
|
|
669
|
-
this.addClusterServer(this.getDefaultScenesClusterServer());
|
|
670
|
-
*/
|
|
671
|
-
}
|
|
672
|
-
/**
|
|
673
|
-
* Creates a unique identifier based on the provided parameters.
|
|
674
|
-
* @param param1 - The first parameter.
|
|
675
|
-
* @param param2 - The second parameter.
|
|
676
|
-
* @param param3 - The third parameter.
|
|
677
|
-
* @param param4 - The fourth parameter.
|
|
678
|
-
* @returns A unique identifier generated using the MD5 hash algorithm.
|
|
679
|
-
*/
|
|
436
|
+
}
|
|
680
437
|
createUniqueId(param1, param2, param3, param4) {
|
|
681
438
|
const hash = createHash('md5');
|
|
682
439
|
hash.update(param1 + param2 + param3 + param4);
|
|
683
440
|
return hash.digest('hex');
|
|
684
441
|
}
|
|
685
|
-
/**
|
|
686
|
-
* Get a default Basic Information Cluster Server.
|
|
687
|
-
*
|
|
688
|
-
* @param deviceName - The name of the device.
|
|
689
|
-
* @param serialNumber - The serial number of the device.
|
|
690
|
-
* @param vendorId - The vendor ID of the device.
|
|
691
|
-
* @param vendorName - The vendor name of the device.
|
|
692
|
-
* @param productId - The product ID of the device.
|
|
693
|
-
* @param productName - The product name of the device.
|
|
694
|
-
* @param softwareVersion - The software version of the device. Default is 1.
|
|
695
|
-
* @param softwareVersionString - The software version string of the device. Default is 'v.1.0.0'.
|
|
696
|
-
* @param hardwareVersion - The hardware version of the device. Default is 1.
|
|
697
|
-
* @param hardwareVersionString - The hardware version string of the device. Default is 'v.1.0.0'.
|
|
698
|
-
*/
|
|
699
442
|
getDefaultBasicInformationClusterServer(deviceName, serialNumber, vendorId, vendorName, productId, productName, softwareVersion = 1, softwareVersionString = '1.0.0', hardwareVersion = 1, hardwareVersionString = '1.0.0') {
|
|
700
443
|
this.log.logName = deviceName;
|
|
701
444
|
this.deviceName = deviceName;
|
|
@@ -736,20 +479,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
736
479
|
reachableChanged: true,
|
|
737
480
|
});
|
|
738
481
|
}
|
|
739
|
-
/**
|
|
740
|
-
* Creates a default Basic Information Cluster Server.
|
|
741
|
-
*
|
|
742
|
-
* @param deviceName - The name of the device.
|
|
743
|
-
* @param serialNumber - The serial number of the device.
|
|
744
|
-
* @param vendorId - The vendor ID of the device.
|
|
745
|
-
* @param vendorName - The vendor name of the device.
|
|
746
|
-
* @param productId - The product ID of the device.
|
|
747
|
-
* @param productName - The product name of the device.
|
|
748
|
-
* @param softwareVersion - The software version of the device. Default is 1.
|
|
749
|
-
* @param softwareVersionString - The software version string of the device. Default is 'v.1.0.0'.
|
|
750
|
-
* @param hardwareVersion - The hardware version of the device. Default is 1.
|
|
751
|
-
* @param hardwareVersionString - The hardware version string of the device. Default is 'v.1.0.0'.
|
|
752
|
-
*/
|
|
753
482
|
createDefaultBasicInformationClusterServer(deviceName, serialNumber, vendorId, vendorName, productId, productName, softwareVersion = 1, softwareVersionString = '1.0.0', hardwareVersion = 1, hardwareVersionString = '1.0.0') {
|
|
754
483
|
if (MatterbridgeDevice.bridgeMode === 'bridge') {
|
|
755
484
|
this.addDeviceType(bridgedNode);
|
|
@@ -758,19 +487,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
758
487
|
}
|
|
759
488
|
this.addClusterServer(this.getDefaultBasicInformationClusterServer(deviceName, serialNumber, vendorId, vendorName, productId, productName, softwareVersion, softwareVersionString, hardwareVersion, hardwareVersionString));
|
|
760
489
|
}
|
|
761
|
-
/**
|
|
762
|
-
* Get a default BridgedDeviceBasicInformationClusterServer.
|
|
763
|
-
*
|
|
764
|
-
* @param deviceName - The name of the device.
|
|
765
|
-
* @param serialNumber - The serial number of the device.
|
|
766
|
-
* @param vendorId - The vendor ID of the device.
|
|
767
|
-
* @param vendorName - The name of the vendor.
|
|
768
|
-
* @param productName - The name of the product.
|
|
769
|
-
* @param softwareVersion - The software version of the device. Default is 1.
|
|
770
|
-
* @param softwareVersionString - The software version string of the device. Default is 'v.1.0.0'.
|
|
771
|
-
* @param hardwareVersion - The hardware version of the device. Default is 1.
|
|
772
|
-
* @param hardwareVersionString - The hardware version string of the device. Default is 'v.1.0.0'.
|
|
773
|
-
*/
|
|
774
490
|
getDefaultBridgedDeviceBasicInformationClusterServer(deviceName, serialNumber, vendorId, vendorName, productName, softwareVersion = 1, softwareVersionString = '1.0.0', hardwareVersion = 1, hardwareVersionString = '1.0.0') {
|
|
775
491
|
this.log.logName = deviceName;
|
|
776
492
|
this.deviceName = deviceName;
|
|
@@ -785,7 +501,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
785
501
|
this.hardwareVersion = hardwareVersion;
|
|
786
502
|
this.hardwareVersionString = hardwareVersionString;
|
|
787
503
|
return ClusterServer(BridgedDeviceBasicInformationCluster, {
|
|
788
|
-
vendorId: vendorId !== undefined ? VendorId(vendorId) : undefined,
|
|
504
|
+
vendorId: vendorId !== undefined ? VendorId(vendorId) : undefined,
|
|
789
505
|
vendorName: vendorName.slice(0, 32),
|
|
790
506
|
productName: productName.slice(0, 32),
|
|
791
507
|
productUrl: 'https://www.npmjs.com/package/matterbridge',
|
|
@@ -805,36 +521,12 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
805
521
|
reachableChanged: true,
|
|
806
522
|
});
|
|
807
523
|
}
|
|
808
|
-
/**
|
|
809
|
-
* Creates a default BridgedDeviceBasicInformationClusterServer.
|
|
810
|
-
*
|
|
811
|
-
* @param deviceName - The name of the device.
|
|
812
|
-
* @param serialNumber - The serial number of the device.
|
|
813
|
-
* @param vendorId - The vendor ID of the device.
|
|
814
|
-
* @param vendorName - The name of the vendor.
|
|
815
|
-
* @param productName - The name of the product.
|
|
816
|
-
* @param softwareVersion - The software version of the device. Default is 1.
|
|
817
|
-
* @param softwareVersionString - The software version string of the device. Default is 'v.1.0.0'.
|
|
818
|
-
* @param hardwareVersion - The hardware version of the device. Default is 1.
|
|
819
|
-
* @param hardwareVersionString - The hardware version string of the device. Default is 'v.1.0.0'.
|
|
820
|
-
*/
|
|
821
524
|
createDefaultBridgedDeviceBasicInformationClusterServer(deviceName, serialNumber, vendorId, vendorName, productName, softwareVersion = 1, softwareVersionString = '1.0.0', hardwareVersion = 1, hardwareVersionString = '1.0.0') {
|
|
822
525
|
this.addClusterServer(this.getDefaultBridgedDeviceBasicInformationClusterServer(deviceName, serialNumber, vendorId, vendorName, productName, softwareVersion, softwareVersionString, hardwareVersion, hardwareVersionString));
|
|
823
526
|
}
|
|
824
|
-
/**
|
|
825
|
-
* Get a default Power Topology Cluster Server.
|
|
826
|
-
*
|
|
827
|
-
* @returns {ClusterServer} - The configured Power Topology Cluster Server.
|
|
828
|
-
*/
|
|
829
527
|
getDefaultPowerTopologyClusterServer() {
|
|
830
528
|
return ClusterServer(PowerTopologyCluster.with(PowerTopology.Feature.TreeTopology), {}, {}, {});
|
|
831
529
|
}
|
|
832
|
-
/**
|
|
833
|
-
* Get a default Electrical Energy Measurement Cluster Server.
|
|
834
|
-
*
|
|
835
|
-
* @param {number} energy - The total consumption value in mW/h.
|
|
836
|
-
* @returns {ClusterServer} - The configured Electrical Energy Measurement Cluster Server.
|
|
837
|
-
*/
|
|
838
530
|
getDefaultElectricalEnergyMeasurementClusterServer(energy = null) {
|
|
839
531
|
return ClusterServer(ElectricalEnergyMeasurementCluster.with(ElectricalEnergyMeasurement.Feature.ImportedEnergy, ElectricalEnergyMeasurement.Feature.ExportedEnergy, ElectricalEnergyMeasurement.Feature.CumulativeEnergy), {
|
|
840
532
|
accuracy: {
|
|
@@ -851,15 +543,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
851
543
|
cumulativeEnergyMeasured: true,
|
|
852
544
|
});
|
|
853
545
|
}
|
|
854
|
-
/**
|
|
855
|
-
* Get a default Electrical Power Measurement Cluster Server.
|
|
856
|
-
*
|
|
857
|
-
* @param {number} voltage - The voltage value in millivolts.
|
|
858
|
-
* @param {number} current - The current value in milliamperes.
|
|
859
|
-
* @param {number} power - The power value in milliwatts.
|
|
860
|
-
* @param {number} frequency - The frequency value in millihertz.
|
|
861
|
-
* @returns {ClusterServer} - The configured Electrical Power Measurement Cluster Server.
|
|
862
|
-
*/
|
|
863
546
|
getDefaultElectricalPowerMeasurementClusterServer(voltage = null, current = null, power = null, frequency = null) {
|
|
864
547
|
return ClusterServer(ElectricalPowerMeasurementCluster.with(ElectricalPowerMeasurement.Feature.AlternatingCurrent), {
|
|
865
548
|
powerMode: ElectricalPowerMeasurement.PowerMode.Ac,
|
|
@@ -900,15 +583,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
900
583
|
frequency: frequency,
|
|
901
584
|
}, {}, {});
|
|
902
585
|
}
|
|
903
|
-
/**
|
|
904
|
-
* Creates a default Dummy Thread Network Diagnostics Cluster server.
|
|
905
|
-
* @deprecated This method is deprecated and is only used for testing.
|
|
906
|
-
*
|
|
907
|
-
* @remarks
|
|
908
|
-
* This method adds a cluster server used only to give the networkName to Eve app.
|
|
909
|
-
*
|
|
910
|
-
* @returns void
|
|
911
|
-
*/
|
|
912
586
|
createDefaultDummyThreadNetworkDiagnosticsClusterServer() {
|
|
913
587
|
this.addClusterServer(ClusterServer(ThreadNetworkDiagnosticsCluster.with(ThreadNetworkDiagnostics.Feature.PacketCounts, ThreadNetworkDiagnostics.Feature.ErrorCounts), {
|
|
914
588
|
channel: 1,
|
|
@@ -936,17 +610,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
936
610
|
},
|
|
937
611
|
}, {}));
|
|
938
612
|
}
|
|
939
|
-
/**
|
|
940
|
-
* Get a default OnOff cluster server.
|
|
941
|
-
*
|
|
942
|
-
* @param {boolean} [onOff=false] - The initial state of the OnOff cluster.
|
|
943
|
-
* @param {boolean} [globalSceneControl=false] - The global scene control state.
|
|
944
|
-
* @param {number} [onTime=0] - The on time value.
|
|
945
|
-
* @param {number} [offWaitTime=0] - The off wait time value.
|
|
946
|
-
* @param {OnOff.StartUpOnOff | null} [startUpOnOff=null] - The start-up OnOff state. Null means previous state.
|
|
947
|
-
*
|
|
948
|
-
* @returns {ClusterServer} - The configured OnOff cluster server.
|
|
949
|
-
*/
|
|
950
613
|
getDefaultOnOffClusterServer(onOff = false, globalSceneControl = false, onTime = 0, offWaitTime = 0, startUpOnOff = null) {
|
|
951
614
|
return ClusterServer(OnOffCluster.with(OnOff.Feature.Lighting), {
|
|
952
615
|
onOff,
|
|
@@ -981,27 +644,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
981
644
|
},
|
|
982
645
|
}, {});
|
|
983
646
|
}
|
|
984
|
-
/**
|
|
985
|
-
* Creates a default OnOff cluster server.
|
|
986
|
-
*
|
|
987
|
-
* @param {boolean} [onOff=false] - The initial state of the OnOff cluster.
|
|
988
|
-
* @param {boolean} [globalSceneControl=false] - The global scene control state.
|
|
989
|
-
* @param {number} [onTime=0] - The on time value.
|
|
990
|
-
* @param {number} [offWaitTime=0] - The off wait time value.
|
|
991
|
-
* @param {OnOff.StartUpOnOff | null} [startUpOnOff=null] - The start-up OnOff state. Null means previous state.
|
|
992
|
-
*/
|
|
993
647
|
createDefaultOnOffClusterServer(onOff = false, globalSceneControl = false, onTime = 0, offWaitTime = 0, startUpOnOff = null) {
|
|
994
648
|
this.addClusterServer(this.getDefaultOnOffClusterServer(onOff, globalSceneControl, onTime, offWaitTime, startUpOnOff));
|
|
995
649
|
}
|
|
996
|
-
/**
|
|
997
|
-
* Get a default level control cluster server.
|
|
998
|
-
*
|
|
999
|
-
* @param currentLevel - The current level (default: 254).
|
|
1000
|
-
* @param minLevel - The minimum level (default: 1).
|
|
1001
|
-
* @param maxLevel - The maximum level (default: 254).
|
|
1002
|
-
* @param onLevel - The on level (default: null).
|
|
1003
|
-
* @param startUpCurrentLevel - The startUp on level (default: null).
|
|
1004
|
-
*/
|
|
1005
650
|
getDefaultLevelControlClusterServer(currentLevel = 254, minLevel = 1, maxLevel = 254, onLevel = null, startUpCurrentLevel = null) {
|
|
1006
651
|
return ClusterServer(LevelControlCluster.with(LevelControl.Feature.OnOff, LevelControl.Feature.Lighting), {
|
|
1007
652
|
currentLevel,
|
|
@@ -1043,29 +688,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1043
688
|
},
|
|
1044
689
|
});
|
|
1045
690
|
}
|
|
1046
|
-
/**
|
|
1047
|
-
* Creates a default level control cluster server.
|
|
1048
|
-
*
|
|
1049
|
-
* @param currentLevel - The current level (default: 254).
|
|
1050
|
-
* @param minLevel - The minimum level (default: 1).
|
|
1051
|
-
* @param maxLevel - The maximum level (default: 254).
|
|
1052
|
-
* @param onLevel - The on level (default: null).
|
|
1053
|
-
* @param startUpCurrentLevel - The startUp on level (default: null).
|
|
1054
|
-
*/
|
|
1055
691
|
createDefaultLevelControlClusterServer(currentLevel = 254, minLevel = 1, maxLevel = 254, onLevel = null, startUpCurrentLevel = null) {
|
|
1056
692
|
this.addClusterServer(this.getDefaultLevelControlClusterServer(currentLevel, minLevel, maxLevel, onLevel, startUpCurrentLevel));
|
|
1057
693
|
}
|
|
1058
|
-
/**
|
|
1059
|
-
* Get a default color control cluster server with Xy, HueSaturation and ColorTemperature.
|
|
1060
|
-
*
|
|
1061
|
-
* @param currentX - The current X value.
|
|
1062
|
-
* @param currentY - The current Y value.
|
|
1063
|
-
* @param currentHue - The current hue value.
|
|
1064
|
-
* @param currentSaturation - The current saturation value.
|
|
1065
|
-
* @param colorTemperatureMireds - The color temperature in mireds.
|
|
1066
|
-
* @param colorTempPhysicalMinMireds - The physical minimum color temperature in mireds.
|
|
1067
|
-
* @param colorTempPhysicalMaxMireds - The physical maximum color temperature in mireds.
|
|
1068
|
-
*/
|
|
1069
694
|
getDefaultColorControlClusterServer(currentX = 0, currentY = 0, currentHue = 0, currentSaturation = 0, colorTemperatureMireds = 500, colorTempPhysicalMinMireds = 147, colorTempPhysicalMaxMireds = 500) {
|
|
1070
695
|
return ClusterServer(ColorControlCluster.with(ColorControl.Feature.Xy, ColorControl.Feature.HueSaturation, ColorControl.Feature.ColorTemperature), {
|
|
1071
696
|
colorMode: ColorControl.ColorMode.CurrentHueAndCurrentSaturation,
|
|
@@ -1135,29 +760,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1135
760
|
},
|
|
1136
761
|
}, {});
|
|
1137
762
|
}
|
|
1138
|
-
/**
|
|
1139
|
-
* Creates a default color control cluster server with Xy, HueSaturation and ColorTemperature.
|
|
1140
|
-
*
|
|
1141
|
-
* @param currentX - The current X value.
|
|
1142
|
-
* @param currentY - The current Y value.
|
|
1143
|
-
* @param currentHue - The current hue value.
|
|
1144
|
-
* @param currentSaturation - The current saturation value.
|
|
1145
|
-
* @param colorTemperatureMireds - The color temperature in mireds.
|
|
1146
|
-
* @param colorTempPhysicalMinMireds - The physical minimum color temperature in mireds.
|
|
1147
|
-
* @param colorTempPhysicalMaxMireds - The physical maximum color temperature in mireds.
|
|
1148
|
-
*/
|
|
1149
763
|
createDefaultColorControlClusterServer(currentX = 0, currentY = 0, currentHue = 0, currentSaturation = 0, colorTemperatureMireds = 500, colorTempPhysicalMinMireds = 147, colorTempPhysicalMaxMireds = 500) {
|
|
1150
764
|
this.addClusterServer(this.getDefaultColorControlClusterServer(currentX, currentY, currentHue, currentSaturation, colorTemperatureMireds, colorTempPhysicalMinMireds, colorTempPhysicalMaxMireds));
|
|
1151
765
|
}
|
|
1152
|
-
/**
|
|
1153
|
-
* Get a Xy color control cluster server with Xy and ColorTemperature.
|
|
1154
|
-
*
|
|
1155
|
-
* @param currentX - The current X value.
|
|
1156
|
-
* @param currentY - The current Y value.
|
|
1157
|
-
* @param colorTemperatureMireds - The color temperature in mireds.
|
|
1158
|
-
* @param colorTempPhysicalMinMireds - The physical minimum color temperature in mireds.
|
|
1159
|
-
* @param colorTempPhysicalMaxMireds - The physical maximum color temperature in mireds.
|
|
1160
|
-
*/
|
|
1161
766
|
getXyColorControlClusterServer(currentX = 0, currentY = 0, colorTemperatureMireds = 500, colorTempPhysicalMinMireds = 147, colorTempPhysicalMaxMireds = 500) {
|
|
1162
767
|
return ClusterServer(ColorControlCluster.with(ColorControl.Feature.Xy, ColorControl.Feature.ColorTemperature), {
|
|
1163
768
|
colorMode: ColorControl.ColorMode.CurrentXAndCurrentY,
|
|
@@ -1201,27 +806,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1201
806
|
},
|
|
1202
807
|
}, {});
|
|
1203
808
|
}
|
|
1204
|
-
/**
|
|
1205
|
-
* Creates a Xy color control cluster server with Xy and ColorTemperature.
|
|
1206
|
-
*
|
|
1207
|
-
* @param currentX - The current X value.
|
|
1208
|
-
* @param currentY - The current Y value.
|
|
1209
|
-
* @param colorTemperatureMireds - The color temperature in mireds.
|
|
1210
|
-
* @param colorTempPhysicalMinMireds - The physical minimum color temperature in mireds.
|
|
1211
|
-
* @param colorTempPhysicalMaxMireds - The physical maximum color temperature in mireds.
|
|
1212
|
-
*/
|
|
1213
809
|
createXyColorControlClusterServer(currentX = 0, currentY = 0, colorTemperatureMireds = 500, colorTempPhysicalMinMireds = 147, colorTempPhysicalMaxMireds = 500) {
|
|
1214
810
|
this.addClusterServer(this.getXyColorControlClusterServer(currentX, currentY, colorTemperatureMireds, colorTempPhysicalMinMireds, colorTempPhysicalMaxMireds));
|
|
1215
811
|
}
|
|
1216
|
-
/**
|
|
1217
|
-
* Get a default hue and saturation control cluster server with HueSaturation and ColorTemperature.
|
|
1218
|
-
*
|
|
1219
|
-
* @param currentHue - The current hue value.
|
|
1220
|
-
* @param currentSaturation - The current saturation value.
|
|
1221
|
-
* @param colorTemperatureMireds - The color temperature in mireds.
|
|
1222
|
-
* @param colorTempPhysicalMinMireds - The physical minimum color temperature in mireds.
|
|
1223
|
-
* @param colorTempPhysicalMaxMireds - The physical maximum color temperature in mireds.
|
|
1224
|
-
*/
|
|
1225
812
|
getHsColorControlClusterServer(currentHue = 0, currentSaturation = 0, colorTemperatureMireds = 500, colorTempPhysicalMinMireds = 147, colorTempPhysicalMaxMireds = 500) {
|
|
1226
813
|
return ClusterServer(ColorControlCluster.with(ColorControl.Feature.HueSaturation, ColorControl.Feature.ColorTemperature), {
|
|
1227
814
|
colorMode: ColorControl.ColorMode.CurrentHueAndCurrentSaturation,
|
|
@@ -1279,25 +866,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1279
866
|
},
|
|
1280
867
|
}, {});
|
|
1281
868
|
}
|
|
1282
|
-
/**
|
|
1283
|
-
* Creates a hue and saturation color control cluster server with HueSaturation and ColorTemperature.
|
|
1284
|
-
*
|
|
1285
|
-
* @param currentHue - The current hue value.
|
|
1286
|
-
* @param currentSaturation - The current saturation value.
|
|
1287
|
-
* @param colorTemperatureMireds - The color temperature in mireds.
|
|
1288
|
-
* @param colorTempPhysicalMinMireds - The physical minimum color temperature in mireds.
|
|
1289
|
-
* @param colorTempPhysicalMaxMireds - The physical maximum color temperature in mireds.
|
|
1290
|
-
*/
|
|
1291
869
|
createHsColorControlClusterServer(currentHue = 0, currentSaturation = 0, colorTemperatureMireds = 500, colorTempPhysicalMinMireds = 147, colorTempPhysicalMaxMireds = 500) {
|
|
1292
870
|
this.addClusterServer(this.getHsColorControlClusterServer(currentHue, currentSaturation, colorTemperatureMireds, colorTempPhysicalMinMireds, colorTempPhysicalMaxMireds));
|
|
1293
871
|
}
|
|
1294
|
-
/**
|
|
1295
|
-
* Get a color temperature color control cluster server.
|
|
1296
|
-
*
|
|
1297
|
-
* @param colorTemperatureMireds - The color temperature in mireds.
|
|
1298
|
-
* @param colorTempPhysicalMinMireds - The physical minimum color temperature in mireds.
|
|
1299
|
-
* @param colorTempPhysicalMaxMireds - The physical maximum color temperature in mireds.
|
|
1300
|
-
*/
|
|
1301
872
|
getCtColorControlClusterServer(colorTemperatureMireds = 500, colorTempPhysicalMinMireds = 147, colorTempPhysicalMaxMireds = 500) {
|
|
1302
873
|
return ClusterServer(ColorControlCluster.with(ColorControl.Feature.ColorTemperature), {
|
|
1303
874
|
colorMode: ColorControl.ColorMode.ColorTemperatureMireds,
|
|
@@ -1329,30 +900,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1329
900
|
},
|
|
1330
901
|
}, {});
|
|
1331
902
|
}
|
|
1332
|
-
/**
|
|
1333
|
-
* Creates a color temperature color control cluster server.
|
|
1334
|
-
*
|
|
1335
|
-
* @param colorTemperatureMireds - The color temperature in mireds.
|
|
1336
|
-
* @param colorTempPhysicalMinMireds - The physical minimum color temperature in mireds.
|
|
1337
|
-
* @param colorTempPhysicalMaxMireds - The physical maximum color temperature in mireds.
|
|
1338
|
-
*/
|
|
1339
903
|
createCtColorControlClusterServer(colorTemperatureMireds = 500, colorTempPhysicalMinMireds = 147, colorTempPhysicalMaxMireds = 500) {
|
|
1340
904
|
this.addClusterServer(this.getCtColorControlClusterServer(colorTemperatureMireds, colorTempPhysicalMinMireds, colorTempPhysicalMaxMireds));
|
|
1341
905
|
}
|
|
1342
|
-
/**
|
|
1343
|
-
* Configures the color control cluster for a device.
|
|
1344
|
-
*
|
|
1345
|
-
* @remark This method must be called only after creating the cluster with getDefaultCompleteColorControlClusterServer or createDefaultCompleteColorControlClusterServer
|
|
1346
|
-
* and before starting the matter server.
|
|
1347
|
-
*
|
|
1348
|
-
* @deprecated Use configureColorControlMode instead.
|
|
1349
|
-
*
|
|
1350
|
-
* @param {boolean} hueSaturation - A boolean indicating whether the device supports hue and saturation control.
|
|
1351
|
-
* @param {boolean} xy - A boolean indicating whether the device supports XY control.
|
|
1352
|
-
* @param {boolean} colorTemperature - A boolean indicating whether the device supports color temperature control.
|
|
1353
|
-
* @param {ColorControl.ColorMode} colorMode - An optional parameter specifying the color mode of the device.
|
|
1354
|
-
* @param {Endpoint} endpoint - An optional parameter specifying the endpoint to configure. If not provided, the device endpoint will be used.
|
|
1355
|
-
*/
|
|
1356
906
|
configureColorControlCluster(hueSaturation, xy, colorTemperature, colorMode, endpoint) {
|
|
1357
907
|
if (!endpoint)
|
|
1358
908
|
endpoint = this;
|
|
@@ -1363,12 +913,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1363
913
|
endpoint.getClusterServer(ColorControlCluster)?.setEnhancedColorModeAttribute(colorMode);
|
|
1364
914
|
}
|
|
1365
915
|
}
|
|
1366
|
-
/**
|
|
1367
|
-
* Configures the color control mode for the device.
|
|
1368
|
-
*
|
|
1369
|
-
* @param {ColorControl.ColorMode} colorMode - The color mode to set.
|
|
1370
|
-
* @param {Endpoint} endpoint - The optional endpoint to configure. If not provided, the method will configure the current endpoint.
|
|
1371
|
-
*/
|
|
1372
916
|
configureColorControlMode(colorMode, endpoint) {
|
|
1373
917
|
if (!endpoint)
|
|
1374
918
|
endpoint = this;
|
|
@@ -1377,13 +921,8 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1377
921
|
endpoint.getClusterServer(ColorControlCluster)?.setEnhancedColorModeAttribute(colorMode);
|
|
1378
922
|
}
|
|
1379
923
|
}
|
|
1380
|
-
/**
|
|
1381
|
-
* Get a default window covering cluster server.
|
|
1382
|
-
*
|
|
1383
|
-
* @param positionPercent100ths - The position percentage in 100ths (0-10000). Defaults to 0.
|
|
1384
|
-
*/
|
|
1385
924
|
getDefaultWindowCoveringClusterServer(positionPercent100ths) {
|
|
1386
|
-
return ClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift
|
|
925
|
+
return ClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift), {
|
|
1387
926
|
type: WindowCovering.WindowCoveringType.Rollershade,
|
|
1388
927
|
configStatus: {
|
|
1389
928
|
operational: true,
|
|
@@ -1397,10 +936,8 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1397
936
|
operationalStatus: { global: WindowCovering.MovementStatus.Stopped, lift: WindowCovering.MovementStatus.Stopped, tilt: WindowCovering.MovementStatus.Stopped },
|
|
1398
937
|
endProductType: WindowCovering.EndProductType.RollerShade,
|
|
1399
938
|
mode: { motorDirectionReversed: false, calibrationMode: false, maintenanceMode: false, ledFeedback: false },
|
|
1400
|
-
targetPositionLiftPercent100ths: positionPercent100ths ?? 0,
|
|
1401
|
-
currentPositionLiftPercent100ths: positionPercent100ths ?? 0,
|
|
1402
|
-
// installedClosedLimitLift: 10000,
|
|
1403
|
-
// installedOpenLimitLift: 0,
|
|
939
|
+
targetPositionLiftPercent100ths: positionPercent100ths ?? 0,
|
|
940
|
+
currentPositionLiftPercent100ths: positionPercent100ths ?? 0,
|
|
1404
941
|
}, {
|
|
1405
942
|
upOrOpen: async (data) => {
|
|
1406
943
|
this.log.debug('Matter command: upOrOpen');
|
|
@@ -1421,18 +958,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1421
958
|
},
|
|
1422
959
|
}, {});
|
|
1423
960
|
}
|
|
1424
|
-
/**
|
|
1425
|
-
* Creates a default window covering cluster server.
|
|
1426
|
-
*
|
|
1427
|
-
* @param positionPercent100ths - The position percentage in 100ths (0-10000). Defaults to 0.
|
|
1428
|
-
*/
|
|
1429
961
|
createDefaultWindowCoveringClusterServer(positionPercent100ths) {
|
|
1430
962
|
this.addClusterServer(this.getDefaultWindowCoveringClusterServer(positionPercent100ths));
|
|
1431
963
|
}
|
|
1432
|
-
/**
|
|
1433
|
-
* Sets the window covering target position as the current position and stops the movement.
|
|
1434
|
-
* @param {Endpoint} endpoint - The endpoint on which to set the window covering (default the device endpoint).
|
|
1435
|
-
*/
|
|
1436
964
|
setWindowCoveringTargetAsCurrentAndStopped(endpoint) {
|
|
1437
965
|
if (!endpoint)
|
|
1438
966
|
endpoint = this;
|
|
@@ -1450,13 +978,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1450
978
|
this.log.debug(`Set WindowCovering currentPositionLiftPercent100ths and targetPositionLiftPercent100ths to ${position} and operationalStatus to Stopped.`);
|
|
1451
979
|
}
|
|
1452
980
|
}
|
|
1453
|
-
/**
|
|
1454
|
-
* Sets the current and target status of a window covering.
|
|
1455
|
-
* @param {number} current - The current position of the window covering.
|
|
1456
|
-
* @param {number} target - The target position of the window covering.
|
|
1457
|
-
* @param {WindowCovering.MovementStatus} status - The movement status of the window covering.
|
|
1458
|
-
* @param {Endpoint} endpoint - The endpoint on which to set the window covering (default the device endpoint).
|
|
1459
|
-
*/
|
|
1460
981
|
setWindowCoveringCurrentTargetStatus(current, target, status, endpoint) {
|
|
1461
982
|
if (!endpoint)
|
|
1462
983
|
endpoint = this;
|
|
@@ -1472,11 +993,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1472
993
|
}
|
|
1473
994
|
this.log.debug(`Set WindowCovering currentPositionLiftPercent100ths: ${current}, targetPositionLiftPercent100ths: ${target} and operationalStatus: ${status}.`);
|
|
1474
995
|
}
|
|
1475
|
-
/**
|
|
1476
|
-
* Sets the status of the window covering.
|
|
1477
|
-
* @param {WindowCovering.MovementStatus} status - The movement status to set.
|
|
1478
|
-
* @param {Endpoint} endpoint - The endpoint on which to set the window covering (default the device endpoint).
|
|
1479
|
-
*/
|
|
1480
996
|
setWindowCoveringStatus(status, endpoint) {
|
|
1481
997
|
if (!endpoint)
|
|
1482
998
|
endpoint = this;
|
|
@@ -1486,12 +1002,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1486
1002
|
windowCovering.setOperationalStatusAttribute({ global: status, lift: status, tilt: status });
|
|
1487
1003
|
this.log.debug(`Set WindowCovering operationalStatus: ${status}`);
|
|
1488
1004
|
}
|
|
1489
|
-
/**
|
|
1490
|
-
* Retrieves the status of the window covering.
|
|
1491
|
-
* @param {Endpoint} endpoint - The endpoint on which to get the window covering (default the device endpoint).
|
|
1492
|
-
*
|
|
1493
|
-
* @returns The global operational status of the window covering.
|
|
1494
|
-
*/
|
|
1495
1005
|
getWindowCoveringStatus(endpoint) {
|
|
1496
1006
|
if (!endpoint)
|
|
1497
1007
|
endpoint = this;
|
|
@@ -1502,12 +1012,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1502
1012
|
this.log.debug(`Get WindowCovering operationalStatus: ${status.global}`);
|
|
1503
1013
|
return status.global;
|
|
1504
1014
|
}
|
|
1505
|
-
/**
|
|
1506
|
-
* Sets the target and current position of the window covering.
|
|
1507
|
-
*
|
|
1508
|
-
* @param position - The position to set, specified as a number.
|
|
1509
|
-
* @param {Endpoint} endpoint - The endpoint on which to set the window covering (default the device endpoint).
|
|
1510
|
-
*/
|
|
1511
1015
|
setWindowCoveringTargetAndCurrentPosition(position, endpoint) {
|
|
1512
1016
|
if (!endpoint)
|
|
1513
1017
|
endpoint = this;
|
|
@@ -1518,13 +1022,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1518
1022
|
windowCovering.setTargetPositionLiftPercent100thsAttribute(position);
|
|
1519
1023
|
this.log.debug(`Set WindowCovering currentPositionLiftPercent100ths: ${position} and targetPositionLiftPercent100ths: ${position}.`);
|
|
1520
1024
|
}
|
|
1521
|
-
/**
|
|
1522
|
-
* Get a default door lock cluster server.
|
|
1523
|
-
*
|
|
1524
|
-
* @remarks
|
|
1525
|
-
* This method adds a cluster server for a door lock cluster with default settings.
|
|
1526
|
-
*
|
|
1527
|
-
*/
|
|
1528
1025
|
getDefaultDoorLockClusterServer(lockState = DoorLock.LockState.Locked, lockType = DoorLock.LockType.DeadBolt) {
|
|
1529
1026
|
return ClusterServer(DoorLockCluster, {
|
|
1530
1027
|
operatingMode: DoorLock.OperatingMode.Normal,
|
|
@@ -1547,22 +1044,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1547
1044
|
lockOperationError: true,
|
|
1548
1045
|
});
|
|
1549
1046
|
}
|
|
1550
|
-
/**
|
|
1551
|
-
* Creates a default door lock cluster server.
|
|
1552
|
-
*
|
|
1553
|
-
* @remarks
|
|
1554
|
-
* This method adds a cluster server for a door lock cluster with default settings.
|
|
1555
|
-
*
|
|
1556
|
-
*/
|
|
1557
1047
|
createDefaultDoorLockClusterServer(lockState = DoorLock.LockState.Locked, lockType = DoorLock.LockType.DeadBolt) {
|
|
1558
1048
|
this.addClusterServer(this.getDefaultDoorLockClusterServer(lockState, lockType));
|
|
1559
1049
|
}
|
|
1560
|
-
/**
|
|
1561
|
-
* Get a default momentary switch cluster server.
|
|
1562
|
-
*
|
|
1563
|
-
* @remarks
|
|
1564
|
-
* This method adds a cluster server with default momentary switch features and configurations suitable for (AppleHome) Single Double Long automations.
|
|
1565
|
-
*/
|
|
1566
1050
|
getDefaultSwitchClusterServer() {
|
|
1567
1051
|
return ClusterServer(SwitchCluster.with(Switch.Feature.MomentarySwitch, Switch.Feature.MomentarySwitchRelease, Switch.Feature.MomentarySwitchLongPress, Switch.Feature.MomentarySwitchMultiPress), {
|
|
1568
1052
|
numberOfPositions: 2,
|
|
@@ -1577,21 +1061,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1577
1061
|
multiPressComplete: true,
|
|
1578
1062
|
});
|
|
1579
1063
|
}
|
|
1580
|
-
/**
|
|
1581
|
-
* Creates a default momentary switch cluster server.
|
|
1582
|
-
*
|
|
1583
|
-
* @remarks
|
|
1584
|
-
* This method adds a cluster server with default momentary switch features and configurations.
|
|
1585
|
-
*/
|
|
1586
1064
|
createDefaultSwitchClusterServer() {
|
|
1587
1065
|
this.addClusterServer(this.getDefaultSwitchClusterServer());
|
|
1588
1066
|
}
|
|
1589
|
-
/**
|
|
1590
|
-
* Get a default latching switch cluster server.
|
|
1591
|
-
*
|
|
1592
|
-
* @remarks
|
|
1593
|
-
* This method adds a cluster server with default latching switch features and configuration.
|
|
1594
|
-
*/
|
|
1595
1067
|
getDefaultLatchingSwitchClusterServer() {
|
|
1596
1068
|
return ClusterServer(SwitchCluster.with(Switch.Feature.LatchingSwitch), {
|
|
1597
1069
|
numberOfPositions: 2,
|
|
@@ -1600,22 +1072,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1600
1072
|
switchLatched: true,
|
|
1601
1073
|
});
|
|
1602
1074
|
}
|
|
1603
|
-
/**
|
|
1604
|
-
* Creates a default latching switch cluster server.
|
|
1605
|
-
*
|
|
1606
|
-
* @remarks
|
|
1607
|
-
* This method adds a cluster server with default latching switch features and configuration.
|
|
1608
|
-
*/
|
|
1609
1075
|
createDefaultLatchingSwitchClusterServer() {
|
|
1610
1076
|
this.addClusterServer(this.getDefaultLatchingSwitchClusterServer());
|
|
1611
1077
|
}
|
|
1612
|
-
/**
|
|
1613
|
-
* Triggers a switch event on the specified endpoint.
|
|
1614
|
-
*
|
|
1615
|
-
* @param {string} event - The type of event to trigger. Possible values are 'Single', 'Double', 'Long' for momentarySwitch and 'Press', 'Release' for latchingSwitch.
|
|
1616
|
-
* @param {Endpoint} endpoint - The endpoint on which to trigger the event (default the device endpoint).
|
|
1617
|
-
* @returns {void}
|
|
1618
|
-
*/
|
|
1619
1078
|
triggerSwitchEvent(event, log, endpoint) {
|
|
1620
1079
|
if (!endpoint)
|
|
1621
1080
|
endpoint = this;
|
|
@@ -1687,15 +1146,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1687
1146
|
}
|
|
1688
1147
|
return true;
|
|
1689
1148
|
}
|
|
1690
|
-
/**
|
|
1691
|
-
* Retrieves the default mode select cluster server.
|
|
1692
|
-
*
|
|
1693
|
-
* @param description - The description of the cluster server.
|
|
1694
|
-
* @param supportedModes - The supported modes for the cluster server.
|
|
1695
|
-
* @param currentMode - The current mode of the cluster server. Defaults to 0.
|
|
1696
|
-
* @param startUpMode - The startup mode of the cluster server. Defaults to 0.
|
|
1697
|
-
* @returns The default mode select cluster server.
|
|
1698
|
-
*/
|
|
1699
1149
|
getDefaultModeSelectClusterServer(description, supportedModes, currentMode = 0, startUpMode = 0) {
|
|
1700
1150
|
return ClusterServer(ModeSelectCluster, {
|
|
1701
1151
|
description: description,
|
|
@@ -1710,24 +1160,11 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1710
1160
|
},
|
|
1711
1161
|
});
|
|
1712
1162
|
}
|
|
1713
|
-
/**
|
|
1714
|
-
* Creates a default mode select cluster server.
|
|
1715
|
-
*
|
|
1716
|
-
* @remarks
|
|
1717
|
-
* This method adds a cluster server for a mode select cluster with default settings.
|
|
1718
|
-
*
|
|
1719
|
-
* @param endpoint - The endpoint to add the cluster server to. Defaults to `this` if not provided.
|
|
1720
|
-
*/
|
|
1721
1163
|
createDefaultModeSelectClusterServer(description, supportedModes, currentMode = 0, startUpMode = 0, endpoint) {
|
|
1722
1164
|
if (!endpoint)
|
|
1723
1165
|
endpoint = this;
|
|
1724
1166
|
endpoint.addClusterServer(this.getDefaultModeSelectClusterServer(description, supportedModes, currentMode, startUpMode));
|
|
1725
1167
|
}
|
|
1726
|
-
/**
|
|
1727
|
-
* Get a default occupancy sensing cluster server.
|
|
1728
|
-
*
|
|
1729
|
-
* @param occupied - A boolean indicating whether the occupancy is occupied or not. Default is false.
|
|
1730
|
-
*/
|
|
1731
1168
|
getDefaultOccupancySensingClusterServer(occupied = false) {
|
|
1732
1169
|
return ClusterServer(OccupancySensingCluster, {
|
|
1733
1170
|
occupancy: { occupied },
|
|
@@ -1736,19 +1173,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1736
1173
|
pirOccupiedToUnoccupiedDelay: 30,
|
|
1737
1174
|
}, {});
|
|
1738
1175
|
}
|
|
1739
|
-
/**
|
|
1740
|
-
* Creates a default occupancy sensing cluster server.
|
|
1741
|
-
*
|
|
1742
|
-
* @param occupied - A boolean indicating whether the occupancy is occupied or not. Default is false.
|
|
1743
|
-
*/
|
|
1744
1176
|
createDefaultOccupancySensingClusterServer(occupied = false) {
|
|
1745
1177
|
this.addClusterServer(this.getDefaultOccupancySensingClusterServer(occupied));
|
|
1746
1178
|
}
|
|
1747
|
-
/**
|
|
1748
|
-
* Get a default Illuminance Measurement Cluster Server.
|
|
1749
|
-
*
|
|
1750
|
-
* @param measuredValue - The measured value of illuminance.
|
|
1751
|
-
*/
|
|
1752
1179
|
getDefaultIlluminanceMeasurementClusterServer(measuredValue = 0) {
|
|
1753
1180
|
return ClusterServer(IlluminanceMeasurementCluster, {
|
|
1754
1181
|
measuredValue,
|
|
@@ -1757,19 +1184,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1757
1184
|
tolerance: 0,
|
|
1758
1185
|
}, {}, {});
|
|
1759
1186
|
}
|
|
1760
|
-
/**
|
|
1761
|
-
* Creates a default Illuminance Measurement Cluster Server.
|
|
1762
|
-
*
|
|
1763
|
-
* @param measuredValue - The measured value of illuminance.
|
|
1764
|
-
*/
|
|
1765
1187
|
createDefaultIlluminanceMeasurementClusterServer(measuredValue = 0) {
|
|
1766
1188
|
this.addClusterServer(this.getDefaultIlluminanceMeasurementClusterServer(measuredValue));
|
|
1767
1189
|
}
|
|
1768
|
-
/**
|
|
1769
|
-
* Get a default flow measurement cluster server.
|
|
1770
|
-
*
|
|
1771
|
-
* @param measuredValue - The measured value of the flow in 10 x m/h.
|
|
1772
|
-
*/
|
|
1773
1190
|
getDefaultFlowMeasurementClusterServer(measuredValue = 0) {
|
|
1774
1191
|
return ClusterServer(FlowMeasurementCluster, {
|
|
1775
1192
|
measuredValue,
|
|
@@ -1778,19 +1195,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1778
1195
|
tolerance: 0,
|
|
1779
1196
|
}, {}, {});
|
|
1780
1197
|
}
|
|
1781
|
-
/**
|
|
1782
|
-
* Creates a default flow measurement cluster server.
|
|
1783
|
-
*
|
|
1784
|
-
* @param measuredValue - The measured value of the of the flow in 10 x m/h.
|
|
1785
|
-
*/
|
|
1786
1198
|
createDefaultFlowMeasurementClusterServer(measuredValue = 0) {
|
|
1787
1199
|
this.addClusterServer(this.getDefaultFlowMeasurementClusterServer(measuredValue));
|
|
1788
1200
|
}
|
|
1789
|
-
/**
|
|
1790
|
-
* Get a default temperature measurement cluster server.
|
|
1791
|
-
*
|
|
1792
|
-
* @param measuredValue - The measured value of the temperature x 100.
|
|
1793
|
-
*/
|
|
1794
1201
|
getDefaultTemperatureMeasurementClusterServer(measuredValue = 0) {
|
|
1795
1202
|
return ClusterServer(TemperatureMeasurementCluster, {
|
|
1796
1203
|
measuredValue,
|
|
@@ -1799,19 +1206,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1799
1206
|
tolerance: 0,
|
|
1800
1207
|
}, {}, {});
|
|
1801
1208
|
}
|
|
1802
|
-
/**
|
|
1803
|
-
* Creates a default temperature measurement cluster server.
|
|
1804
|
-
*
|
|
1805
|
-
* @param measuredValue - The measured value of the temperature x 100.
|
|
1806
|
-
*/
|
|
1807
1209
|
createDefaultTemperatureMeasurementClusterServer(measuredValue = 0) {
|
|
1808
1210
|
this.addClusterServer(this.getDefaultTemperatureMeasurementClusterServer(measuredValue));
|
|
1809
1211
|
}
|
|
1810
|
-
/**
|
|
1811
|
-
* Get a default RelativeHumidityMeasurementCluster server.
|
|
1812
|
-
*
|
|
1813
|
-
* @param measuredValue - The measured value of the relative humidity x 100.
|
|
1814
|
-
*/
|
|
1815
1212
|
getDefaultRelativeHumidityMeasurementClusterServer(measuredValue = 0) {
|
|
1816
1213
|
return ClusterServer(RelativeHumidityMeasurementCluster, {
|
|
1817
1214
|
measuredValue,
|
|
@@ -1820,19 +1217,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1820
1217
|
tolerance: 0,
|
|
1821
1218
|
}, {}, {});
|
|
1822
1219
|
}
|
|
1823
|
-
/**
|
|
1824
|
-
* Creates a default RelativeHumidityMeasurementCluster server.
|
|
1825
|
-
*
|
|
1826
|
-
* @param measuredValue - The measured value of the relative humidity x 100.
|
|
1827
|
-
*/
|
|
1828
1220
|
createDefaultRelativeHumidityMeasurementClusterServer(measuredValue = 0) {
|
|
1829
1221
|
this.addClusterServer(this.getDefaultRelativeHumidityMeasurementClusterServer(measuredValue));
|
|
1830
1222
|
}
|
|
1831
|
-
/**
|
|
1832
|
-
* Get a default Pressure Measurement Cluster Server.
|
|
1833
|
-
*
|
|
1834
|
-
* @param measuredValue - The measured value for the pressure.
|
|
1835
|
-
*/
|
|
1836
1223
|
getDefaultPressureMeasurementClusterServer(measuredValue = 1000) {
|
|
1837
1224
|
return ClusterServer(PressureMeasurementCluster, {
|
|
1838
1225
|
measuredValue,
|
|
@@ -1841,39 +1228,19 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1841
1228
|
tolerance: 0,
|
|
1842
1229
|
}, {}, {});
|
|
1843
1230
|
}
|
|
1844
|
-
/**
|
|
1845
|
-
* Creates a default Pressure Measurement Cluster Server.
|
|
1846
|
-
*
|
|
1847
|
-
* @param measuredValue - The measured value for the pressure.
|
|
1848
|
-
*/
|
|
1849
1231
|
createDefaultPressureMeasurementClusterServer(measuredValue = 1000) {
|
|
1850
1232
|
this.addClusterServer(this.getDefaultPressureMeasurementClusterServer(measuredValue));
|
|
1851
1233
|
}
|
|
1852
|
-
/**
|
|
1853
|
-
* Get a default boolean state cluster server.
|
|
1854
|
-
*
|
|
1855
|
-
* @param contact - Optional boolean value indicating the contact state. Defaults to `true` if not provided.
|
|
1856
|
-
*/
|
|
1857
1234
|
getDefaultBooleanStateClusterServer(contact) {
|
|
1858
1235
|
return ClusterServer(BooleanStateCluster, {
|
|
1859
|
-
stateValue: contact ?? true,
|
|
1236
|
+
stateValue: contact ?? true,
|
|
1860
1237
|
}, {}, {
|
|
1861
1238
|
stateChange: true,
|
|
1862
1239
|
});
|
|
1863
1240
|
}
|
|
1864
|
-
/**
|
|
1865
|
-
* Creates a default boolean state configuration cluster server.
|
|
1866
|
-
*
|
|
1867
|
-
* @param contact - Optional boolean value indicating the contact state. Defaults to `true` if not provided.
|
|
1868
|
-
*/
|
|
1869
1241
|
createDefaultBooleanStateClusterServer(contact) {
|
|
1870
1242
|
this.addClusterServer(this.getDefaultBooleanStateClusterServer(contact));
|
|
1871
1243
|
}
|
|
1872
|
-
/**
|
|
1873
|
-
* Get a default boolean state configuration cluster server.
|
|
1874
|
-
*
|
|
1875
|
-
* @param contact - Optional boolean value indicating the sensor fault state. Defaults to `false` if not provided.
|
|
1876
|
-
*/
|
|
1877
1244
|
getDefaultBooleanStateConfigurationClusterServer(sensorFault = false) {
|
|
1878
1245
|
return ClusterServer(BooleanStateConfigurationCluster.with(BooleanStateConfiguration.Feature.Visual, BooleanStateConfiguration.Feature.Audible, BooleanStateConfiguration.Feature.SensitivityLevel), {
|
|
1879
1246
|
currentSensitivityLevel: 0,
|
|
@@ -1882,7 +1249,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1882
1249
|
alarmsActive: { visual: false, audible: false },
|
|
1883
1250
|
alarmsEnabled: { visual: false, audible: false },
|
|
1884
1251
|
alarmsSupported: { visual: true, audible: true },
|
|
1885
|
-
// alarmsSuppressed: { visual: false, audible: false },
|
|
1886
1252
|
sensorFault: { generalFault: sensorFault },
|
|
1887
1253
|
}, {
|
|
1888
1254
|
enableDisableAlarm: async ({ request, attributes }) => {
|
|
@@ -1894,23 +1260,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1894
1260
|
sensorFault: true,
|
|
1895
1261
|
});
|
|
1896
1262
|
}
|
|
1897
|
-
/**
|
|
1898
|
-
* Creates a default boolean state configuration cluster server.
|
|
1899
|
-
*
|
|
1900
|
-
* @param contact - Optional boolean value indicating the sensor fault state. Defaults to `false` if not provided.
|
|
1901
|
-
*/
|
|
1902
1263
|
createDefaultBooleanStateConfigurationClusterServer(sensorFault = false) {
|
|
1903
1264
|
this.addClusterServer(this.getDefaultBooleanStateConfigurationClusterServer(sensorFault));
|
|
1904
1265
|
}
|
|
1905
|
-
/**
|
|
1906
|
-
* Get a default power source replaceable battery cluster server.
|
|
1907
|
-
*
|
|
1908
|
-
* @param batPercentRemaining - The remaining battery percentage (default: 100).
|
|
1909
|
-
* @param batChargeLevel - The battery charge level (default: PowerSource.BatChargeLevel.Ok).
|
|
1910
|
-
* @param batVoltage - The battery voltage (default: 1500).
|
|
1911
|
-
* @param batReplacementDescription - The battery replacement description (default: 'Battery type').
|
|
1912
|
-
* @param batQuantity - The battery quantity (default: 1).
|
|
1913
|
-
*/
|
|
1914
1266
|
getDefaultPowerSourceReplaceableBatteryClusterServer(batPercentRemaining = 100, batChargeLevel = PowerSource.BatChargeLevel.Ok, batVoltage = 1500, batReplacementDescription = 'Battery type', batQuantity = 1) {
|
|
1915
1267
|
return ClusterServer(PowerSourceCluster.with(PowerSource.Feature.Battery, PowerSource.Feature.Replaceable), {
|
|
1916
1268
|
status: PowerSource.PowerSourceStatus.Active,
|
|
@@ -1927,25 +1279,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1927
1279
|
endpointList: [],
|
|
1928
1280
|
}, {}, {});
|
|
1929
1281
|
}
|
|
1930
|
-
/**
|
|
1931
|
-
* Creates a default power source replaceable battery cluster server.
|
|
1932
|
-
*
|
|
1933
|
-
* @param batPercentRemaining - The remaining battery percentage (default: 100).
|
|
1934
|
-
* @param batChargeLevel - The battery charge level (default: PowerSource.BatChargeLevel.Ok).
|
|
1935
|
-
* @param batVoltage - The battery voltage (default: 1500).
|
|
1936
|
-
* @param batReplacementDescription - The battery replacement description (default: 'Battery type').
|
|
1937
|
-
* @param batQuantity - The battery quantity (default: 1).
|
|
1938
|
-
*/
|
|
1939
1282
|
createDefaultPowerSourceReplaceableBatteryClusterServer(batPercentRemaining = 100, batChargeLevel = PowerSource.BatChargeLevel.Ok, batVoltage = 1500, batReplacementDescription = 'Battery type', batQuantity = 1) {
|
|
1940
1283
|
this.addClusterServer(this.getDefaultPowerSourceReplaceableBatteryClusterServer(batPercentRemaining, batChargeLevel, batVoltage, batReplacementDescription, batQuantity));
|
|
1941
1284
|
}
|
|
1942
|
-
/**
|
|
1943
|
-
* Get a default power source rechargeable battery cluster server.
|
|
1944
|
-
*
|
|
1945
|
-
* @param batPercentRemaining - The remaining battery percentage (default: 100).
|
|
1946
|
-
* @param batChargeLevel - The battery charge level (default: PowerSource.BatChargeLevel.Ok).
|
|
1947
|
-
* @param batVoltage - The battery voltage (default: 1500).
|
|
1948
|
-
*/
|
|
1949
1285
|
getDefaultPowerSourceRechargeableBatteryClusterServer(batPercentRemaining = 100, batChargeLevel = PowerSource.BatChargeLevel.Ok, batVoltage = 1500) {
|
|
1950
1286
|
return ClusterServer(PowerSourceCluster.with(PowerSource.Feature.Battery, PowerSource.Feature.Rechargeable), {
|
|
1951
1287
|
status: PowerSource.PowerSourceStatus.Active,
|
|
@@ -1963,21 +1299,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1963
1299
|
endpointList: [],
|
|
1964
1300
|
}, {}, {});
|
|
1965
1301
|
}
|
|
1966
|
-
/**
|
|
1967
|
-
* Creates a default power source rechargeable battery cluster server.
|
|
1968
|
-
*
|
|
1969
|
-
* @param batPercentRemaining - The remaining battery percentage (default: 100).
|
|
1970
|
-
* @param batChargeLevel - The battery charge level (default: PowerSource.BatChargeLevel.Ok).
|
|
1971
|
-
* @param batVoltage - The battery voltage (default: 1500).
|
|
1972
|
-
*/
|
|
1973
1302
|
createDefaultPowerSourceRechargeableBatteryClusterServer(batPercentRemaining = 100, batChargeLevel = PowerSource.BatChargeLevel.Ok, batVoltage = 1500) {
|
|
1974
1303
|
this.addClusterServer(this.getDefaultPowerSourceRechargeableBatteryClusterServer(batPercentRemaining, batChargeLevel, batVoltage));
|
|
1975
1304
|
}
|
|
1976
|
-
/**
|
|
1977
|
-
* Get a default power source wired cluster server.
|
|
1978
|
-
*
|
|
1979
|
-
* @param wiredCurrentType - The type of wired current (default: PowerSource.WiredCurrentType.Ac)
|
|
1980
|
-
*/
|
|
1981
1305
|
getDefaultPowerSourceWiredClusterServer(wiredCurrentType = PowerSource.WiredCurrentType.Ac) {
|
|
1982
1306
|
return ClusterServer(PowerSourceCluster.with(PowerSource.Feature.Wired), {
|
|
1983
1307
|
wiredCurrentType,
|
|
@@ -1987,45 +1311,22 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1987
1311
|
endpointList: [],
|
|
1988
1312
|
}, {}, {});
|
|
1989
1313
|
}
|
|
1990
|
-
/**
|
|
1991
|
-
* Creates a default power source wired cluster server.
|
|
1992
|
-
*
|
|
1993
|
-
* @param wiredCurrentType - The type of wired current (default: PowerSource.WiredCurrentType.Ac)
|
|
1994
|
-
*/
|
|
1995
1314
|
createDefaultPowerSourceWiredClusterServer(wiredCurrentType = PowerSource.WiredCurrentType.Ac) {
|
|
1996
1315
|
this.addClusterServer(this.getDefaultPowerSourceWiredClusterServer(wiredCurrentType));
|
|
1997
1316
|
}
|
|
1998
|
-
/**
|
|
1999
|
-
* @deprecated This function is deprecated by Matter 1.3 spec and will be removed in a future version.
|
|
2000
|
-
*/
|
|
2001
1317
|
createDefaultPowerSourceConfigurationClusterServer(endpointNumber) {
|
|
2002
1318
|
this.addClusterServer(ClusterServer(PowerSourceConfigurationCluster, {
|
|
2003
1319
|
sources: endpointNumber ? [EndpointNumber(endpointNumber)] : [],
|
|
2004
1320
|
}, {}, {}));
|
|
2005
1321
|
}
|
|
2006
|
-
/**
|
|
2007
|
-
* Get a default air quality cluster server.
|
|
2008
|
-
*
|
|
2009
|
-
* @param airQuality The air quality type. Defaults to `AirQuality.AirQualityType.Unknown`.
|
|
2010
|
-
*/
|
|
2011
1322
|
getDefaultAirQualityClusterServer(airQuality = AirQuality.AirQualityEnum.Unknown) {
|
|
2012
1323
|
return ClusterServer(AirQualityCluster.with(AirQuality.Feature.Fair, AirQuality.Feature.Moderate, AirQuality.Feature.VeryPoor, AirQuality.Feature.ExtremelyPoor), {
|
|
2013
1324
|
airQuality,
|
|
2014
1325
|
}, {}, {});
|
|
2015
1326
|
}
|
|
2016
|
-
/**
|
|
2017
|
-
* Creates a default air quality cluster server.
|
|
2018
|
-
*
|
|
2019
|
-
* @param airQuality The air quality type. Defaults to `AirQuality.AirQualityType.Unknown`.
|
|
2020
|
-
*/
|
|
2021
1327
|
createDefaultAirQualityClusterServer(airQuality = AirQuality.AirQualityEnum.Unknown) {
|
|
2022
1328
|
this.addClusterServer(this.getDefaultAirQualityClusterServer(airQuality));
|
|
2023
1329
|
}
|
|
2024
|
-
/**
|
|
2025
|
-
* Get a default TVOC measurement cluster server.
|
|
2026
|
-
*
|
|
2027
|
-
* @param measuredValue - The measured value for TVOC.
|
|
2028
|
-
*/
|
|
2029
1330
|
getDefaultTvocMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2030
1331
|
return ClusterServer(TotalVolatileOrganicCompoundsConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2031
1332
|
measuredValue,
|
|
@@ -2036,28 +1337,14 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2036
1337
|
measurementMedium,
|
|
2037
1338
|
}, {}, {});
|
|
2038
1339
|
}
|
|
2039
|
-
/**
|
|
2040
|
-
* Creates a default TVOC measurement cluster server.
|
|
2041
|
-
*
|
|
2042
|
-
* @param measuredValue - The measured value for TVOC.
|
|
2043
|
-
*/
|
|
2044
1340
|
createDefaultTvocMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2045
1341
|
this.addClusterServer(this.getDefaultTvocMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2046
1342
|
}
|
|
2047
|
-
/**
|
|
2048
|
-
* Get a default heating thermostat cluster server with the specified parameters.
|
|
2049
|
-
* @param {number} [localTemperature] - The local temperature value in degrees Celsius. Defaults to 23°.
|
|
2050
|
-
* @param {number} [occupiedHeatingSetpoint] - The occupied heating setpoint value in degrees Celsius. Defaults to 21°.
|
|
2051
|
-
* @param {number} [minHeatSetpointLimit] - The minimum heat setpoint limit value. Defaults to 0°.
|
|
2052
|
-
* @param {number} [maxHeatSetpointLimit] - The maximum heat setpoint limit value. Defaults to 50°.
|
|
2053
|
-
* @returns {ThermostatClusterServer} A default thermostat cluster server configured with the specified parameters.
|
|
2054
|
-
*/
|
|
2055
1343
|
getDefaultHeatingThermostatClusterServer(localTemperature = 23, occupiedHeatingSetpoint = 21, minHeatSetpointLimit = 0, maxHeatSetpointLimit = 50) {
|
|
2056
1344
|
return ClusterServer(ThermostatCluster.with(Thermostat.Feature.Heating), {
|
|
2057
1345
|
localTemperature: localTemperature * 100,
|
|
2058
1346
|
systemMode: Thermostat.SystemMode.Heat,
|
|
2059
1347
|
controlSequenceOfOperation: Thermostat.ControlSequenceOfOperation.HeatingOnly,
|
|
2060
|
-
// Thermostat.Feature.Heating
|
|
2061
1348
|
occupiedHeatingSetpoint: occupiedHeatingSetpoint * 100,
|
|
2062
1349
|
minHeatSetpointLimit: minHeatSetpointLimit * 100,
|
|
2063
1350
|
maxHeatSetpointLimit: maxHeatSetpointLimit * 100,
|
|
@@ -2070,31 +1357,14 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2070
1357
|
},
|
|
2071
1358
|
}, {});
|
|
2072
1359
|
}
|
|
2073
|
-
/**
|
|
2074
|
-
* Creates and adds a default heating thermostat cluster server to the device.
|
|
2075
|
-
*
|
|
2076
|
-
* @param {number} [localTemperature] - The local temperature value in degrees Celsius. Defaults to 23°.
|
|
2077
|
-
* @param {number} [occupiedHeatingSetpoint] - The occupied heating setpoint value in degrees Celsius. Defaults to 21°.
|
|
2078
|
-
* @param {number} [minHeatSetpointLimit] - The minimum heat setpoint limit value. Defaults to 0°.
|
|
2079
|
-
* @param {number} [maxHeatSetpointLimit] - The maximum heat setpoint limit value. Defaults to 50°.
|
|
2080
|
-
*/
|
|
2081
1360
|
createDefaultHeatingThermostatClusterServer(localTemperature = 23, occupiedHeatingSetpoint = 25, minHeatSetpointLimit = 0, maxHeatSetpointLimit = 50) {
|
|
2082
1361
|
this.addClusterServer(this.getDefaultHeatingThermostatClusterServer(localTemperature, occupiedHeatingSetpoint, minHeatSetpointLimit, maxHeatSetpointLimit));
|
|
2083
1362
|
}
|
|
2084
|
-
/**
|
|
2085
|
-
* Get a default cooling thermostat cluster server with the specified parameters.
|
|
2086
|
-
* @param {number} [localTemperature] - The local temperature value in degrees Celsius. Defaults to 23°.
|
|
2087
|
-
* @param {number} [occupiedCoolingSetpoint] - The occupied cooling setpoint value in degrees Celsius. Defaults to 25°.
|
|
2088
|
-
* @param {number} [minCoolSetpointLimit] - The minimum cool setpoint limit value. Defaults to 0°.
|
|
2089
|
-
* @param {number} [maxCoolSetpointLimit] - The maximum cool setpoint limit value. Defaults to 50°.
|
|
2090
|
-
* @returns {ThermostatClusterServer} A default thermostat cluster server configured with the specified parameters.
|
|
2091
|
-
*/
|
|
2092
1363
|
getDefaultCoolingThermostatClusterServer(localTemperature = 23, occupiedCoolingSetpoint = 25, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50) {
|
|
2093
1364
|
return ClusterServer(ThermostatCluster.with(Thermostat.Feature.Cooling), {
|
|
2094
1365
|
localTemperature: localTemperature * 100,
|
|
2095
1366
|
systemMode: Thermostat.SystemMode.Cool,
|
|
2096
1367
|
controlSequenceOfOperation: Thermostat.ControlSequenceOfOperation.CoolingOnly,
|
|
2097
|
-
// Thermostat.Feature.Cooling
|
|
2098
1368
|
occupiedCoolingSetpoint: occupiedCoolingSetpoint * 100,
|
|
2099
1369
|
minCoolSetpointLimit: minCoolSetpointLimit * 100,
|
|
2100
1370
|
maxCoolSetpointLimit: maxCoolSetpointLimit * 100,
|
|
@@ -2107,48 +1377,24 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2107
1377
|
},
|
|
2108
1378
|
}, {});
|
|
2109
1379
|
}
|
|
2110
|
-
/**
|
|
2111
|
-
* Creates and adds a default cooling thermostat cluster server to the device.
|
|
2112
|
-
*
|
|
2113
|
-
* @param {number} [localTemperature] - The local temperature value in degrees Celsius. Defaults to 23°.
|
|
2114
|
-
* @param {number} [occupiedCoolingSetpoint] - The occupied cooling setpoint value in degrees Celsius. Defaults to 25°.
|
|
2115
|
-
* @param {number} [minCoolSetpointLimit] - The minimum cool setpoint limit value. Defaults to 0°.
|
|
2116
|
-
* @param {number} [maxCoolSetpointLimit] - The maximum cool setpoint limit value. Defaults to 50°.
|
|
2117
|
-
*/
|
|
2118
1380
|
createDefaultCoolingThermostatClusterServer(localTemperature = 23, occupiedCoolingSetpoint = 25, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50) {
|
|
2119
1381
|
this.addClusterServer(this.getDefaultCoolingThermostatClusterServer(localTemperature, occupiedCoolingSetpoint, minCoolSetpointLimit, maxCoolSetpointLimit));
|
|
2120
1382
|
}
|
|
2121
|
-
/**
|
|
2122
|
-
* Get a default thermostat cluster server with the specified parameters.
|
|
2123
|
-
*
|
|
2124
|
-
* @param {number} [localTemperature=23] - The local temperature value in degrees Celsius. Defaults to 23°.
|
|
2125
|
-
* @param {number} [occupiedHeatingSetpoint=21] - The occupied heating setpoint value in degrees Celsius. Defaults to 21°.
|
|
2126
|
-
* @param {number} [occupiedCoolingSetpoint=25] - The occupied cooling setpoint value in degrees Celsius. Defaults to 25°.
|
|
2127
|
-
* @param {number} [minSetpointDeadBand=1] - The minimum setpoint dead band value. Defaults to 1°.
|
|
2128
|
-
* @param {number} [minHeatSetpointLimit=0] - The minimum heat setpoint limit value. Defaults to 0°.
|
|
2129
|
-
* @param {number} [maxHeatSetpointLimit=50] - The maximum heat setpoint limit value. Defaults to 50°.
|
|
2130
|
-
* @param {number} [minCoolSetpointLimit=0] - The minimum cool setpoint limit value. Defaults to 0°.
|
|
2131
|
-
* @param {number} [maxCoolSetpointLimit=50] - The maximum cool setpoint limit value. Defaults to 50°.
|
|
2132
|
-
* @returns {ThermostatClusterServer} A default thermostat cluster server configured with the specified parameters.
|
|
2133
|
-
*/
|
|
2134
1383
|
getDefaultThermostatClusterServer(localTemperature = 23, occupiedHeatingSetpoint = 21, occupiedCoolingSetpoint = 25, minSetpointDeadBand = 1, minHeatSetpointLimit = 0, maxHeatSetpointLimit = 50, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50) {
|
|
2135
1384
|
return ClusterServer(ThermostatCluster.with(Thermostat.Feature.Heating, Thermostat.Feature.Cooling, Thermostat.Feature.AutoMode), {
|
|
2136
1385
|
localTemperature: localTemperature * 100,
|
|
2137
1386
|
systemMode: Thermostat.SystemMode.Auto,
|
|
2138
1387
|
controlSequenceOfOperation: Thermostat.ControlSequenceOfOperation.CoolingAndHeating,
|
|
2139
|
-
// Thermostat.Feature.Heating
|
|
2140
1388
|
occupiedHeatingSetpoint: occupiedHeatingSetpoint * 100,
|
|
2141
1389
|
minHeatSetpointLimit: minHeatSetpointLimit * 100,
|
|
2142
1390
|
maxHeatSetpointLimit: maxHeatSetpointLimit * 100,
|
|
2143
1391
|
absMinHeatSetpointLimit: minHeatSetpointLimit * 100,
|
|
2144
1392
|
absMaxHeatSetpointLimit: maxHeatSetpointLimit * 100,
|
|
2145
|
-
// Thermostat.Feature.Cooling
|
|
2146
1393
|
occupiedCoolingSetpoint: occupiedCoolingSetpoint * 100,
|
|
2147
1394
|
minCoolSetpointLimit: minCoolSetpointLimit * 100,
|
|
2148
1395
|
maxCoolSetpointLimit: maxCoolSetpointLimit * 100,
|
|
2149
1396
|
absMinCoolSetpointLimit: minCoolSetpointLimit * 100,
|
|
2150
1397
|
absMaxCoolSetpointLimit: maxCoolSetpointLimit * 100,
|
|
2151
|
-
// Thermostat.Feature.AutoMode
|
|
2152
1398
|
minSetpointDeadBand: minSetpointDeadBand * 100,
|
|
2153
1399
|
thermostatRunningMode: Thermostat.ThermostatRunningMode.Off,
|
|
2154
1400
|
}, {
|
|
@@ -2158,24 +1404,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2158
1404
|
},
|
|
2159
1405
|
}, {});
|
|
2160
1406
|
}
|
|
2161
|
-
/**
|
|
2162
|
-
* Creates and adds a default thermostat cluster server to the device.
|
|
2163
|
-
*
|
|
2164
|
-
* @param {number} [localTemperature=23] - The local temperature value in degrees Celsius. Defaults to 23°.
|
|
2165
|
-
* @param {number} [occupiedHeatingSetpoint=21] - The occupied heating setpoint value in degrees Celsius. Defaults to 21°.
|
|
2166
|
-
* @param {number} [occupiedCoolingSetpoint=25] - The occupied cooling setpoint value in degrees Celsius. Defaults to 25°.
|
|
2167
|
-
* @param {number} [minSetpointDeadBand=1] - The minimum setpoint dead band value. Defaults to 1°.
|
|
2168
|
-
* @param {number} [minHeatSetpointLimit=0] - The minimum heat setpoint limit value. Defaults to 0°.
|
|
2169
|
-
* @param {number} [maxHeatSetpointLimit=50] - The maximum heat setpoint limit value. Defaults to 50°.
|
|
2170
|
-
* @param {number} [minCoolSetpointLimit=0] - The minimum cool setpoint limit value. Defaults to 0°.
|
|
2171
|
-
* @param {number} [maxCoolSetpointLimit=50] - The maximum cool setpoint limit value. Defaults to 50°.
|
|
2172
|
-
*/
|
|
2173
1407
|
createDefaultThermostatClusterServer(localTemperature = 23, occupiedHeatingSetpoint = 21, occupiedCoolingSetpoint = 25, minSetpointDeadBand = 1, minHeatSetpointLimit = 0, maxHeatSetpointLimit = 50, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50) {
|
|
2174
1408
|
this.addClusterServer(this.getDefaultThermostatClusterServer(localTemperature, occupiedHeatingSetpoint, occupiedCoolingSetpoint, minSetpointDeadBand, minHeatSetpointLimit, maxHeatSetpointLimit, minCoolSetpointLimit, maxCoolSetpointLimit));
|
|
2175
1409
|
}
|
|
2176
|
-
/**
|
|
2177
|
-
* Get a default dummy time sync cluster server. Only needed to create a thermostat.
|
|
2178
|
-
*/
|
|
2179
1410
|
getDefaultTimeSyncClusterServer() {
|
|
2180
1411
|
return ClusterServer(TimeSynchronizationCluster.with(TimeSynchronization.Feature.TimeZone), {
|
|
2181
1412
|
utcTime: null,
|
|
@@ -2207,19 +1438,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2207
1438
|
timeFailure: true,
|
|
2208
1439
|
});
|
|
2209
1440
|
}
|
|
2210
|
-
/**
|
|
2211
|
-
* Creates a default dummy time sync cluster server. Only needed to create a thermostat.
|
|
2212
|
-
*/
|
|
2213
1441
|
createDefaultTimeSyncClusterServer() {
|
|
2214
1442
|
this.addClusterServer(this.getDefaultTimeSyncClusterServer());
|
|
2215
1443
|
}
|
|
2216
|
-
/**
|
|
2217
|
-
* Returns the default SmokeCOAlarm Cluster Server.
|
|
2218
|
-
*
|
|
2219
|
-
* @param smokeState - The state of the smoke alarm. Defaults to SmokeCoAlarm.AlarmState.Normal.
|
|
2220
|
-
* @param coState - The state of the CO alarm. Defaults to SmokeCoAlarm.AlarmState.Normal.
|
|
2221
|
-
* @returns The default SmokeCOAlarmClusterServer.
|
|
2222
|
-
*/
|
|
2223
1444
|
getDefaultSmokeCOAlarmClusterServer(smokeState = SmokeCoAlarm.AlarmState.Normal, coState = SmokeCoAlarm.AlarmState.Normal) {
|
|
2224
1445
|
return ClusterServer(SmokeCoAlarmCluster.with(SmokeCoAlarm.Feature.SmokeAlarm, SmokeCoAlarm.Feature.CoAlarm), {
|
|
2225
1446
|
smokeState,
|
|
@@ -2251,24 +1472,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2251
1472
|
allClear: true,
|
|
2252
1473
|
});
|
|
2253
1474
|
}
|
|
2254
|
-
/**
|
|
2255
|
-
* Create the default SmokeCOAlarm Cluster Server.
|
|
2256
|
-
*
|
|
2257
|
-
* @param smokeState - The state of the smoke alarm. Defaults to SmokeCoAlarm.AlarmState.Normal.
|
|
2258
|
-
* @param coState - The state of the CO alarm. Defaults to SmokeCoAlarm.AlarmState.Normal.
|
|
2259
|
-
* @returns The default SmokeCOAlarmClusterServer.
|
|
2260
|
-
*/
|
|
2261
1475
|
createDefaultSmokeCOAlarmClusterServer(smokeState = SmokeCoAlarm.AlarmState.Normal, coState = SmokeCoAlarm.AlarmState.Normal) {
|
|
2262
1476
|
this.addClusterServer(this.getDefaultSmokeCOAlarmClusterServer(smokeState, coState));
|
|
2263
1477
|
}
|
|
2264
|
-
/**
|
|
2265
|
-
* Returns the default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2266
|
-
*
|
|
2267
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2268
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2269
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2270
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2271
|
-
*/
|
|
2272
1478
|
getDefaultCarbonMonoxideConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2273
1479
|
return ClusterServer(CarbonMonoxideConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2274
1480
|
measuredValue,
|
|
@@ -2279,24 +1485,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2279
1485
|
measurementMedium,
|
|
2280
1486
|
}, {}, {});
|
|
2281
1487
|
}
|
|
2282
|
-
/**
|
|
2283
|
-
* Create the default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2284
|
-
*
|
|
2285
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2286
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2287
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2288
|
-
*/
|
|
2289
1488
|
createDefaultCarbonMonoxideConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2290
1489
|
this.addClusterServer(this.getDefaultCarbonMonoxideConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2291
1490
|
}
|
|
2292
|
-
/**
|
|
2293
|
-
* Returns the default Carbon Dioxide Concentration Measurement Cluster Server.
|
|
2294
|
-
*
|
|
2295
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2296
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2297
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2298
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2299
|
-
*/
|
|
2300
1491
|
getDefaultCarbonDioxideConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2301
1492
|
return ClusterServer(CarbonDioxideConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2302
1493
|
measuredValue,
|
|
@@ -2307,24 +1498,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2307
1498
|
measurementMedium,
|
|
2308
1499
|
}, {}, {});
|
|
2309
1500
|
}
|
|
2310
|
-
/**
|
|
2311
|
-
* Create the default Carbon Dioxide Concentration Measurement Cluster Server.
|
|
2312
|
-
*
|
|
2313
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2314
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2315
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2316
|
-
*/
|
|
2317
1501
|
createDefaultCarbonDioxideConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2318
1502
|
this.addClusterServer(this.getDefaultCarbonDioxideConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2319
1503
|
}
|
|
2320
|
-
/**
|
|
2321
|
-
* Returns the default Formaldehyde Concentration Measurement Cluster Server.
|
|
2322
|
-
*
|
|
2323
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2324
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2325
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2326
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2327
|
-
*/
|
|
2328
1504
|
getDefaultFormaldehydeConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2329
1505
|
return ClusterServer(FormaldehydeConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2330
1506
|
measuredValue,
|
|
@@ -2335,24 +1511,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2335
1511
|
measurementMedium,
|
|
2336
1512
|
}, {}, {});
|
|
2337
1513
|
}
|
|
2338
|
-
/**
|
|
2339
|
-
* Create the default Formaldehyde Concentration Measurement Cluster Server.
|
|
2340
|
-
*
|
|
2341
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2342
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2343
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2344
|
-
*/
|
|
2345
1514
|
createDefaultFormaldehydeConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2346
1515
|
this.addClusterServer(this.getDefaultFormaldehydeConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2347
1516
|
}
|
|
2348
|
-
/**
|
|
2349
|
-
* Returns the default Pm1 Concentration Measurement Cluster Server.
|
|
2350
|
-
*
|
|
2351
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2352
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2353
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2354
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2355
|
-
*/
|
|
2356
1517
|
getDefaultPm1ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2357
1518
|
return ClusterServer(Pm1ConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2358
1519
|
measuredValue,
|
|
@@ -2363,24 +1524,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2363
1524
|
measurementMedium,
|
|
2364
1525
|
}, {}, {});
|
|
2365
1526
|
}
|
|
2366
|
-
/**
|
|
2367
|
-
* Create the default Pm1 Concentration Measurement Cluster Server.
|
|
2368
|
-
*
|
|
2369
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2370
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2371
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2372
|
-
*/
|
|
2373
1527
|
createDefaultPm1ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2374
1528
|
this.addClusterServer(this.getDefaultPm1ConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2375
1529
|
}
|
|
2376
|
-
/**
|
|
2377
|
-
* Returns the default Pm25 Concentration Measurement Cluster Server.
|
|
2378
|
-
*
|
|
2379
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2380
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2381
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2382
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2383
|
-
*/
|
|
2384
1530
|
getDefaultPm25ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2385
1531
|
return ClusterServer(Pm25ConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2386
1532
|
measuredValue,
|
|
@@ -2391,24 +1537,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2391
1537
|
measurementMedium,
|
|
2392
1538
|
}, {}, {});
|
|
2393
1539
|
}
|
|
2394
|
-
/**
|
|
2395
|
-
* Create the default Pm25 Concentration Measurement Cluster Server.
|
|
2396
|
-
*
|
|
2397
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2398
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2399
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2400
|
-
*/
|
|
2401
1540
|
createDefaultPm25ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2402
1541
|
this.addClusterServer(this.getDefaultPm25ConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2403
1542
|
}
|
|
2404
|
-
/**
|
|
2405
|
-
* Returns the default Pm10 Concentration Measurement Cluster Server.
|
|
2406
|
-
*
|
|
2407
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2408
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2409
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2410
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2411
|
-
*/
|
|
2412
1543
|
getDefaultPm10ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2413
1544
|
return ClusterServer(Pm10ConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2414
1545
|
measuredValue,
|
|
@@ -2419,24 +1550,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2419
1550
|
measurementMedium,
|
|
2420
1551
|
}, {}, {});
|
|
2421
1552
|
}
|
|
2422
|
-
/**
|
|
2423
|
-
* Create the default Pm10 Concentration Measurement Cluster Server.
|
|
2424
|
-
*
|
|
2425
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2426
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2427
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2428
|
-
*/
|
|
2429
1553
|
createDefaultPm10ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2430
1554
|
this.addClusterServer(this.getDefaultPm10ConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2431
1555
|
}
|
|
2432
|
-
/**
|
|
2433
|
-
* Returns the default Ozone Concentration Measurement Cluster Server.
|
|
2434
|
-
*
|
|
2435
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2436
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2437
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2438
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2439
|
-
*/
|
|
2440
1556
|
getDefaultOzoneConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2441
1557
|
return ClusterServer(OzoneConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2442
1558
|
measuredValue,
|
|
@@ -2447,24 +1563,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2447
1563
|
measurementMedium,
|
|
2448
1564
|
}, {}, {});
|
|
2449
1565
|
}
|
|
2450
|
-
/**
|
|
2451
|
-
* Create the default Ozone Concentration Measurement Cluster Server.
|
|
2452
|
-
*
|
|
2453
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2454
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2455
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2456
|
-
*/
|
|
2457
1566
|
createDefaultOzoneConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2458
1567
|
this.addClusterServer(this.getDefaultOzoneConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2459
1568
|
}
|
|
2460
|
-
/**
|
|
2461
|
-
* Returns the default Radon Concentration Measurement Cluster Server.
|
|
2462
|
-
*
|
|
2463
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2464
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2465
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2466
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2467
|
-
*/
|
|
2468
1569
|
getDefaultRadonConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2469
1570
|
return ClusterServer(RadonConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2470
1571
|
measuredValue,
|
|
@@ -2475,24 +1576,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2475
1576
|
measurementMedium,
|
|
2476
1577
|
}, {}, {});
|
|
2477
1578
|
}
|
|
2478
|
-
/**
|
|
2479
|
-
* Create the default Radon Concentration Measurement Cluster Server.
|
|
2480
|
-
*
|
|
2481
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2482
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2483
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2484
|
-
*/
|
|
2485
1579
|
createDefaultRadonConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2486
1580
|
this.addClusterServer(this.getDefaultRadonConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2487
1581
|
}
|
|
2488
|
-
/**
|
|
2489
|
-
* Returns the default Nitrogen Dioxide Concentration Measurement Cluster Server.
|
|
2490
|
-
*
|
|
2491
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2492
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2493
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2494
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2495
|
-
*/
|
|
2496
1582
|
getDefaultNitrogenDioxideConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2497
1583
|
return ClusterServer(NitrogenDioxideConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2498
1584
|
measuredValue,
|
|
@@ -2503,22 +1589,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2503
1589
|
measurementMedium,
|
|
2504
1590
|
}, {}, {});
|
|
2505
1591
|
}
|
|
2506
|
-
/**
|
|
2507
|
-
* Create the default Nitrogen Dioxide Concentration Measurement Cluster Server.
|
|
2508
|
-
*
|
|
2509
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2510
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2511
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2512
|
-
*/
|
|
2513
1592
|
createDefaultNitrogenDioxideConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2514
1593
|
this.addClusterServer(this.getDefaultNitrogenDioxideConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2515
1594
|
}
|
|
2516
|
-
/**
|
|
2517
|
-
* Returns the default fan control cluster server rev 2.
|
|
2518
|
-
*
|
|
2519
|
-
* @param fanMode The fan mode to set. Defaults to `FanControl.FanMode.Off`.
|
|
2520
|
-
* @returns The default fan control cluster server.
|
|
2521
|
-
*/
|
|
2522
1595
|
getDefaultFanControlClusterServer(fanMode = FanControl.FanMode.Off) {
|
|
2523
1596
|
return ClusterServer(FanControlCluster.with(FanControl.Feature.MultiSpeed, FanControl.Feature.Auto, FanControl.Feature.Step), {
|
|
2524
1597
|
fanMode,
|
|
@@ -2535,16 +1608,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2535
1608
|
},
|
|
2536
1609
|
}, {});
|
|
2537
1610
|
}
|
|
2538
|
-
/**
|
|
2539
|
-
* Create the default fan control cluster server rev 2.
|
|
2540
|
-
*
|
|
2541
|
-
* @param fanMode The fan mode to set. Defaults to `FanControl.FanMode.Off`.
|
|
2542
|
-
* @returns The default fan control cluster server.
|
|
2543
|
-
*/
|
|
2544
1611
|
createDefaultFanControlClusterServer(fanMode = FanControl.FanMode.Off) {
|
|
2545
1612
|
this.addClusterServer(this.getDefaultFanControlClusterServer(fanMode));
|
|
2546
1613
|
}
|
|
2547
|
-
// NOTE Support of Device Energy Management Cluster is provisional.
|
|
2548
1614
|
getDefaultDeviceEnergyManagementClusterServer() {
|
|
2549
1615
|
return ClusterServer(DeviceEnergyManagementCluster.with(DeviceEnergyManagement.Feature.Pausable, DeviceEnergyManagement.Feature.PowerForecastReporting, DeviceEnergyManagement.Feature.StateForecastReporting), {
|
|
2550
1616
|
esaType: DeviceEnergyManagement.EsaType.Other,
|
|
@@ -2568,7 +1634,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2568
1634
|
resumed: true,
|
|
2569
1635
|
});
|
|
2570
1636
|
}
|
|
2571
|
-
// NOTE Support of Device Energy Management Mode Cluster is provisional.
|
|
2572
1637
|
getDefaultDeviceEnergyManagementModeClusterServer() {
|
|
2573
1638
|
return ClusterServer(DeviceEnergyManagementModeCluster, {
|
|
2574
1639
|
supportedModes: [
|
|
@@ -2585,4 +1650,3 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2585
1650
|
}, {});
|
|
2586
1651
|
}
|
|
2587
1652
|
}
|
|
2588
|
-
//# sourceMappingURL=matterbridgeDevice.js.map
|