matterbridge 1.6.5 → 1.6.6-dev.13
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 +35 -0
- package/README-DEV.md +3 -3
- package/README.md +4 -0
- 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 +106 -706
- package/dist/matterbridgeAccessoryPlatform.js +0 -33
- package/dist/matterbridgeBehaviors.js +10 -29
- package/dist/matterbridgeDevice.js +58 -939
- package/dist/matterbridgeDeviceTypes.js +21 -42
- package/dist/matterbridgeDynamicPlatform.js +0 -33
- package/dist/matterbridgeEdge.js +0 -528
- package/dist/matterbridgeEndpoint.js +79 -1090
- package/dist/matterbridgePlatform.js +36 -76
- package/dist/matterbridgeTypes.js +0 -24
- package/dist/matterbridgeWebsocket.js +8 -45
- package/dist/pluginManager.js +3 -237
- package/dist/storage/export.js +0 -1
- package/dist/utils/colorUtils.js +33 -165
- 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.0ab89802.js → main.a742de4e.js} +9 -9
- package/frontend/build/static/js/{main.0ab89802.js.map → main.a742de4e.js.map} +1 -1
- package/npm-shrinkwrap.json +115 -104
- package/package.json +5 -5
- 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 -934
- package/dist/matterbridgeBehaviors.d.ts.map +0 -1
- package/dist/matterbridgeBehaviors.js.map +0 -1
- package/dist/matterbridgeDevice.d.ts +0 -6504
- package/dist/matterbridgeDevice.d.ts.map +0 -1
- package/dist/matterbridgeDevice.js.map +0 -1
- package/dist/matterbridgeDeviceTypes.d.ts +0 -65
- 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 -8529
- package/dist/matterbridgeEndpoint.d.ts.map +0 -1
- package/dist/matterbridgeEndpoint.js.map +0 -1
- package/dist/matterbridgePlatform.d.ts +0 -96
- package/dist/matterbridgePlatform.d.ts.map +0 -1
- package/dist/matterbridgePlatform.js.map +0 -1
- package/dist/matterbridgeTypes.d.ts +0 -147
- 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.0ab89802.js.LICENSE.txt → main.a742de4e.js.LICENSE.txt} +0 -0
|
@@ -1,43 +1,18 @@
|
|
|
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;
|
|
15
|
+
configUrl = undefined;
|
|
41
16
|
serialNumber = undefined;
|
|
42
17
|
deviceName = undefined;
|
|
43
18
|
uniqueId = undefined;
|
|
@@ -49,13 +24,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
49
24
|
softwareVersionString = undefined;
|
|
50
25
|
hardwareVersion = undefined;
|
|
51
26
|
hardwareVersionString = undefined;
|
|
52
|
-
/**
|
|
53
|
-
* Create a Matterbridge device.
|
|
54
|
-
* @constructor
|
|
55
|
-
* @param {DeviceTypeDefinition | AtLeastOne<DeviceTypeDefinition>} definition - The DeviceTypeDefinition of the device.
|
|
56
|
-
* @param {EndpointOptions} [options={}] - The options for the device.
|
|
57
|
-
* @param {boolean} [debug=false] - The debug level for the device.
|
|
58
|
-
*/
|
|
59
27
|
constructor(definition, options = {}, debug = false) {
|
|
60
28
|
let firstDefinition;
|
|
61
29
|
if (Array.isArray(definition))
|
|
@@ -63,7 +31,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
63
31
|
else
|
|
64
32
|
firstDefinition = definition;
|
|
65
33
|
super(firstDefinition, options);
|
|
66
|
-
this.log = new AnsiLogger({ logName: 'MatterbridgeDevice', logTimestampFormat: 4
|
|
34
|
+
this.log = new AnsiLogger({ logName: 'MatterbridgeDevice', logTimestampFormat: 4, logLevel: debug === true ? "debug" : MatterbridgeDevice.logLevel });
|
|
67
35
|
this.log.debug(`new MatterbridgeDevice with deviceType: ${zb}${firstDefinition.code}${db}-${zb}${firstDefinition.name}${db}`);
|
|
68
36
|
if (Array.isArray(definition)) {
|
|
69
37
|
definition.forEach((deviceType) => {
|
|
@@ -73,28 +41,12 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
73
41
|
else
|
|
74
42
|
this.addDeviceType(firstDefinition);
|
|
75
43
|
}
|
|
76
|
-
/**
|
|
77
|
-
* Loads asyncronously an instance of the MatterbridgeDevice class.
|
|
78
|
-
*
|
|
79
|
-
* @param {DeviceTypeDefinition | AtLeastOne<DeviceTypeDefinition>} definition - The DeviceTypeDefinition of the device.
|
|
80
|
-
* @param {EndpointOptions} [options={}] - The options for the device.
|
|
81
|
-
* @param {boolean} [debug=false] - The debug level for the device.
|
|
82
|
-
* @returns {Promise<MatterbridgeDevice>} A Promise of MatterbridgeDevice instance.
|
|
83
|
-
*/
|
|
84
44
|
static async loadInstance(definition, options = {}, debug = false) {
|
|
85
45
|
return new MatterbridgeDevice(definition, options, debug);
|
|
86
46
|
}
|
|
87
|
-
// Present in new API but not here
|
|
88
47
|
get maybeNumber() {
|
|
89
48
|
return this.number;
|
|
90
49
|
}
|
|
91
|
-
/**
|
|
92
|
-
* Adds a device type to the list of device types of the MatterbridgeDevice endpoint.
|
|
93
|
-
* If the device type is not already present in the list, it will be added.
|
|
94
|
-
*
|
|
95
|
-
* @param {DeviceTypeDefinition} deviceType - The device type to add.
|
|
96
|
-
* @returns {MatterbridgeDevice} The MatterbridgeDevice instance.
|
|
97
|
-
*/
|
|
98
50
|
addDeviceType(deviceType) {
|
|
99
51
|
const deviceTypes = this.getDeviceTypes();
|
|
100
52
|
if (!deviceTypes.includes(deviceType)) {
|
|
@@ -104,13 +56,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
104
56
|
}
|
|
105
57
|
return this;
|
|
106
58
|
}
|
|
107
|
-
/**
|
|
108
|
-
* Adds one or more device types with the required cluster servers and the specified cluster servers.
|
|
109
|
-
*
|
|
110
|
-
* @param {AtLeastOne<DeviceTypeDefinition>} deviceTypes - The device types to add.
|
|
111
|
-
* @param {ClusterId[]} includeServerList - The list of cluster IDs to include.
|
|
112
|
-
* @returns {MatterbridgeDevice} The MatterbridgeDevice instance.
|
|
113
|
-
*/
|
|
114
59
|
addDeviceTypeWithClusterServer(deviceTypes, includeServerList = []) {
|
|
115
60
|
this.log.debug('addDeviceTypeWithClusterServer:');
|
|
116
61
|
deviceTypes.forEach((deviceType) => {
|
|
@@ -132,18 +77,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
132
77
|
this.addClusterServerFromList(this, includeServerList);
|
|
133
78
|
return this;
|
|
134
79
|
}
|
|
135
|
-
/**
|
|
136
|
-
* Adds a child endpoint with the specified device types and options.
|
|
137
|
-
* If the child endpoint is not already present, it will be created and added.
|
|
138
|
-
* If the child endpoint is already present, the device types will be added to the existing child endpoint.
|
|
139
|
-
*
|
|
140
|
-
* @param {string} endpointName - The name of the new endpoint to add.
|
|
141
|
-
* @param {AtLeastOne<DeviceTypeDefinition>} deviceTypes - The device types to add.
|
|
142
|
-
* @param {MatterbridgeEndpointOptions} [options={}] - The options for the endpoint.
|
|
143
|
-
* @param {boolean} [debug=false] - Whether to enable debug logging.
|
|
144
|
-
* @returns {MatterbridgeDevice} - The child endpoint that was found or added.
|
|
145
|
-
*/
|
|
146
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
147
80
|
addChildDeviceType(endpointName, deviceTypes, options = {}, debug = false) {
|
|
148
81
|
this.log.debug(`addChildDeviceType: ${CYAN}${endpointName}${db}`);
|
|
149
82
|
let child = this.getChildEndpoints().find((endpoint) => endpoint.uniqueStorageKey === endpointName);
|
|
@@ -168,19 +101,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
168
101
|
child.setDeviceTypes(childDeviceTypes);
|
|
169
102
|
return child;
|
|
170
103
|
}
|
|
171
|
-
/**
|
|
172
|
-
* Adds a child endpoint with one or more device types with the required cluster servers and the specified cluster servers.
|
|
173
|
-
* If the child endpoint is not already present in the childEndpoints, it will be added.
|
|
174
|
-
* If the child endpoint is already present in the childEndpoints, the device types and cluster servers will be added to the existing child endpoint.
|
|
175
|
-
*
|
|
176
|
-
* @param {string} endpointName - The name of the new enpoint to add.
|
|
177
|
-
* @param {AtLeastOne<DeviceTypeDefinition>} deviceTypes - The device types to add.
|
|
178
|
-
* @param {ClusterId[]} [includeServerList=[]] - The list of cluster IDs to include.
|
|
179
|
-
* @param {EndpointOptions} [options={}] - The options for the device.
|
|
180
|
-
* @param {boolean} [debug=false] - Whether to enable debug logging.
|
|
181
|
-
* @returns {MatterbridgeDevice} - The child endpoint that was found or added.
|
|
182
|
-
*/
|
|
183
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
184
104
|
addChildDeviceTypeWithClusterServer(endpointName, deviceTypes, includeServerList = [], options = {}, debug = false) {
|
|
185
105
|
this.log.debug(`addChildDeviceTypeWithClusterServer: ${CYAN}${endpointName}${db}`);
|
|
186
106
|
let child = this.getChildEndpoints().find((endpoint) => endpoint.uniqueStorageKey === endpointName);
|
|
@@ -213,12 +133,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
213
133
|
this.addClusterServerFromList(child, includeServerList);
|
|
214
134
|
return child;
|
|
215
135
|
}
|
|
216
|
-
/**
|
|
217
|
-
* Adds the required cluster servers (only if they are not present) for the device types of the specified endpoint.
|
|
218
|
-
*
|
|
219
|
-
* @param {Endpoint} endpoint - The endpoint to add the required cluster servers to.
|
|
220
|
-
* @returns {Endpoint} The updated endpoint with the required cluster servers added.
|
|
221
|
-
*/
|
|
222
136
|
addRequiredClusterServers(endpoint) {
|
|
223
137
|
const requiredServerList = [];
|
|
224
138
|
this.log.debug(`addRequiredClusterServer for ${CYAN}${endpoint.name}${db}`);
|
|
@@ -235,12 +149,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
235
149
|
this.addClusterServerFromList(endpoint, requiredServerList);
|
|
236
150
|
return endpoint;
|
|
237
151
|
}
|
|
238
|
-
/**
|
|
239
|
-
* Adds the optional cluster servers (only if they are not present) for the device types of the specified endpoint.
|
|
240
|
-
*
|
|
241
|
-
* @param {Endpoint} endpoint - The endpoint to add the required cluster servers to.
|
|
242
|
-
* @returns {Endpoint} The updated endpoint with the required cluster servers added.
|
|
243
|
-
*/
|
|
244
152
|
addOptionalClusterServers(endpoint) {
|
|
245
153
|
const optionalServerList = [];
|
|
246
154
|
this.log.debug(`addRequiredClusterServer for ${CYAN}${endpoint.name}${db}`);
|
|
@@ -257,19 +165,11 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
257
165
|
this.addClusterServerFromList(endpoint, optionalServerList);
|
|
258
166
|
return endpoint;
|
|
259
167
|
}
|
|
260
|
-
/**
|
|
261
|
-
* Adds cluster servers to the specified endpoint based on the provided server list.
|
|
262
|
-
*
|
|
263
|
-
* @param {Endpoint} endpoint - The endpoint to add cluster servers to.
|
|
264
|
-
* @param {ClusterId[]} includeServerList - The list of cluster IDs to include.
|
|
265
|
-
* @returns {Endpoint} The updated endpoint with the cluster servers added.
|
|
266
|
-
*/
|
|
267
168
|
addClusterServerFromList(endpoint, includeServerList) {
|
|
268
169
|
if (includeServerList.includes(Identify.Cluster.id))
|
|
269
170
|
endpoint.addClusterServer(this.getDefaultIdentifyClusterServer());
|
|
270
171
|
if (includeServerList.includes(Groups.Cluster.id))
|
|
271
172
|
endpoint.addClusterServer(this.getDefaultGroupsClusterServer());
|
|
272
|
-
// if (includeServerList.includes(ScenesManagement.Cluster.id)) endpoint.addClusterServer(this.getDefaultScenesClusterServer());
|
|
273
173
|
if (includeServerList.includes(OnOff.Cluster.id))
|
|
274
174
|
endpoint.addClusterServer(this.getDefaultOnOffClusterServer());
|
|
275
175
|
if (includeServerList.includes(LevelControl.Cluster.id))
|
|
@@ -342,25 +242,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
342
242
|
endpoint.addClusterServer(this.getDefaultDeviceEnergyManagementModeClusterServer());
|
|
343
243
|
return endpoint;
|
|
344
244
|
}
|
|
345
|
-
/**
|
|
346
|
-
* Retrieves a child endpoint by its name.
|
|
347
|
-
*
|
|
348
|
-
* @param {string} endpointName - The name of the endpoint to retrieve.
|
|
349
|
-
* @returns {Endpoint | undefined} The child endpoint with the specified name, or undefined if not found.
|
|
350
|
-
*/
|
|
351
245
|
getChildEndpointByName(endpointName) {
|
|
352
246
|
return this.getChildEndpoints().find((endpoint) => endpoint.uniqueStorageKey === endpointName);
|
|
353
247
|
}
|
|
354
|
-
/**
|
|
355
|
-
* Retrieves the value of the specified attribute from the given endpoint and cluster.
|
|
356
|
-
*
|
|
357
|
-
* @param {ClusterId} clusterId - The ID of the cluster to retrieve the attribute from.
|
|
358
|
-
* @param {string} attribute - The name of the attribute to retrieve.
|
|
359
|
-
* @param {AnsiLogger} [log] - Optional logger for error and info messages.
|
|
360
|
-
* @param {Endpoint} [endpoint] - Optional the child endpoint to retrieve the attribute from.
|
|
361
|
-
* @returns {any} The value of the attribute, or undefined if the attribute is not found.
|
|
362
|
-
*/
|
|
363
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
364
248
|
getAttribute(clusterId, attribute, log, endpoint) {
|
|
365
249
|
if (!endpoint)
|
|
366
250
|
endpoint = this;
|
|
@@ -374,28 +258,15 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
374
258
|
this.log.error(`getAttribute error: Attribute ${attribute} not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
375
259
|
return undefined;
|
|
376
260
|
}
|
|
377
|
-
// Find the getter method
|
|
378
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
379
261
|
if (!clusterServer[`get${capitalizedAttributeName}Attribute`]) {
|
|
380
262
|
this.log.error(`getAttribute error: Getter get${capitalizedAttributeName}Attribute not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
381
263
|
return undefined;
|
|
382
264
|
}
|
|
383
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type
|
|
384
265
|
const getter = clusterServer[`get${capitalizedAttributeName}Attribute`];
|
|
385
266
|
const value = getter();
|
|
386
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}`);
|
|
387
268
|
return value;
|
|
388
269
|
}
|
|
389
|
-
/**
|
|
390
|
-
* Sets the value of an attribute on a cluster server endpoint.
|
|
391
|
-
*
|
|
392
|
-
* @param {ClusterId} clusterId - The ID of the cluster.
|
|
393
|
-
* @param {string} attribute - The name of the attribute.
|
|
394
|
-
* @param {any} value - The value to set for the attribute.
|
|
395
|
-
* @param {AnsiLogger} [log] - (Optional) The logger to use for logging errors and information.
|
|
396
|
-
* @param {Endpoint} [endpoint] - (Optional) The endpoint to set the attribute on. If not provided, the attribute will be set on the current endpoint.
|
|
397
|
-
*/
|
|
398
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
399
270
|
setAttribute(clusterId, attribute, value, log, endpoint) {
|
|
400
271
|
if (!endpoint)
|
|
401
272
|
endpoint = this;
|
|
@@ -409,21 +280,15 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
409
280
|
this.log.error(`setAttribute error: Attribute ${attribute} not found on Cluster ${clusterId} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
410
281
|
return false;
|
|
411
282
|
}
|
|
412
|
-
// Find the getter method
|
|
413
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
414
283
|
if (!clusterServer[`get${capitalizedAttributeName}Attribute`]) {
|
|
415
284
|
this.log.error(`setAttribute error: Getter get${capitalizedAttributeName}Attribute not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
416
285
|
return false;
|
|
417
286
|
}
|
|
418
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type
|
|
419
287
|
const getter = clusterServer[`get${capitalizedAttributeName}Attribute`];
|
|
420
|
-
// Find the setter method
|
|
421
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
422
288
|
if (!clusterServer[`set${capitalizedAttributeName}Attribute`]) {
|
|
423
289
|
this.log.error(`setAttribute error: Setter set${capitalizedAttributeName}Attribute not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
424
290
|
return false;
|
|
425
291
|
}
|
|
426
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type
|
|
427
292
|
const setter = clusterServer[`set${capitalizedAttributeName}Attribute`];
|
|
428
293
|
const oldValue = getter();
|
|
429
294
|
setter(value);
|
|
@@ -432,17 +297,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
432
297
|
`to ${YELLOW}${typeof value === 'object' ? debugStringify(value) : value}${db}`);
|
|
433
298
|
return true;
|
|
434
299
|
}
|
|
435
|
-
/**
|
|
436
|
-
* Subscribes to an attribute on a cluster.
|
|
437
|
-
*
|
|
438
|
-
* @param {ClusterId} clusterId - The ID of the cluster.
|
|
439
|
-
* @param {string} attribute - The name of the attribute to subscribe to.
|
|
440
|
-
* @param {(newValue: any, oldValue: any) => void} listener - A callback function that will be called when the attribute value changes.
|
|
441
|
-
* @param {AnsiLogger} log - (Optional) An AnsiLogger instance for logging errors and information.
|
|
442
|
-
* @param {Endpoint} endpoint - (Optional) The endpoint to subscribe the attribute on. If not provided, the current endpoint will be used.
|
|
443
|
-
* @returns A boolean indicating whether the subscription was successful.
|
|
444
|
-
*/
|
|
445
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
446
300
|
subscribeAttribute(clusterId, attribute, listener, log, endpoint) {
|
|
447
301
|
if (!endpoint)
|
|
448
302
|
endpoint = this;
|
|
@@ -456,28 +310,15 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
456
310
|
this.log.error(`subscribeAttribute error: Attribute ${attribute} not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
457
311
|
return false;
|
|
458
312
|
}
|
|
459
|
-
// Find the subscribe method
|
|
460
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
461
313
|
if (!clusterServer[`subscribe${capitalizedAttributeName}Attribute`]) {
|
|
462
314
|
this.log.error(`subscribeAttribute error: subscribe${capitalizedAttributeName}Attribute not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
463
315
|
return false;
|
|
464
316
|
}
|
|
465
|
-
// Subscribe to the attribute
|
|
466
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type
|
|
467
317
|
const subscribe = clusterServer[`subscribe${capitalizedAttributeName}Attribute`];
|
|
468
318
|
subscribe(listener);
|
|
469
319
|
log?.info(`${db}Subscribe endpoint ${or}${endpoint.name}:${endpoint.number}${db} attribute ${hk}${clusterServer.name}.${capitalizedAttributeName}${db}`);
|
|
470
320
|
return true;
|
|
471
321
|
}
|
|
472
|
-
/**
|
|
473
|
-
* Triggers the specified event of the specified cluster from the given endpoint and cluster.
|
|
474
|
-
*
|
|
475
|
-
* @param {ClusterId} clusterId - The ID of the cluster to retrieve the event from.
|
|
476
|
-
* @param {string} event - The name of the event to trigger.
|
|
477
|
-
* @param {Record<string, any>} payload - The payload of the event to trigger.
|
|
478
|
-
* @param {AnsiLogger} [log] - Optional logger for error and info messages.
|
|
479
|
-
* @param {Endpoint} [endpoint] - Optional the child endpoint to retrieve the event from.
|
|
480
|
-
*/
|
|
481
322
|
triggerEvent(clusterId, event, payload, log, endpoint) {
|
|
482
323
|
if (!endpoint)
|
|
483
324
|
endpoint = this;
|
|
@@ -493,43 +334,20 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
493
334
|
this.log.error(`triggerEvent error: Event ${event} not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
494
335
|
return;
|
|
495
336
|
}
|
|
496
|
-
// Find the getter method
|
|
497
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
498
337
|
if (!clusterServer[`trigger${capitalizedEventName}Event`]) {
|
|
499
338
|
this.log.error(`triggerEvent error: Trigger trigger${capitalizedEventName}Event not found on Cluster ${clusterServer.name} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
500
339
|
return;
|
|
501
340
|
}
|
|
502
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-object-type
|
|
503
341
|
const trigger = clusterServer[`trigger${capitalizedEventName}Event`];
|
|
504
342
|
trigger(payload);
|
|
505
343
|
log?.info(`${db}Trigger event ${hk}${clusterServer.name}.${capitalizedEventName}${db} on endpoint ${or}${endpoint.name}:${endpoint.number}${db}`);
|
|
506
344
|
}
|
|
507
|
-
/**
|
|
508
|
-
* Adds a tag to the tag list of the specified endpoint.
|
|
509
|
-
*
|
|
510
|
-
* @param {Endpoint} endpoint - The endpoint to add the tag to.
|
|
511
|
-
* @param {VendorId | null} mfgCode - The manufacturer code.
|
|
512
|
-
* @param {number} namespaceId - The namespace ID of the tag.
|
|
513
|
-
* @param {number} tag - The tag number.
|
|
514
|
-
* @param {string | null} [label=null] - The label for the tag.
|
|
515
|
-
*
|
|
516
|
-
* @remarks
|
|
517
|
-
* This method is used to add a tag to the tag list of a given endpoint.
|
|
518
|
-
* 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.
|
|
519
|
-
*
|
|
520
|
-
* Example usage:
|
|
521
|
-
* ```typescript
|
|
522
|
-
* this.addTagList(endpoint, null, NumberTag.One.namespaceId, NumberTag.One.tag, 'Label');
|
|
523
|
-
* this.addTagList(endpoint, null, SwitchesTag.Custom.namespaceId, SwitchesTag.Custom.tag, 'Label');
|
|
524
|
-
* ```
|
|
525
|
-
*/
|
|
526
345
|
addTagList(endpoint, mfgCode, namespaceId, tag, label) {
|
|
527
346
|
const descriptor = endpoint.getClusterServer(DescriptorCluster.with(Descriptor.Feature.TagList));
|
|
528
347
|
if (!descriptor) {
|
|
529
348
|
this.log.error(`addTagList: descriptor cluster not found on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
530
349
|
return;
|
|
531
350
|
}
|
|
532
|
-
// tagList: { mfgCode: VendorId | null; namespaceId: number; tag: number; label?: string | null }[] = [];
|
|
533
351
|
if (descriptor.attributes.tagList) {
|
|
534
352
|
this.log.debug(`addTagList: adding ${CYAN}tagList${db} mfCode: ${mfgCode}, namespaceId: ${namespaceId}, tag: ${tag}, label: ${label} on endpoint ${endpoint.name}:${endpoint.number}`);
|
|
535
353
|
const tagList = descriptor.attributes.tagList.getLocal();
|
|
@@ -545,12 +363,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
545
363
|
partsList: [...descriptor.attributes.partsList.getLocal()],
|
|
546
364
|
}, {}, {}));
|
|
547
365
|
}
|
|
548
|
-
/**
|
|
549
|
-
* Serializes the Matterbridge device into a serialized object.
|
|
550
|
-
*
|
|
551
|
-
* @param pluginName - The name of the plugin.
|
|
552
|
-
* @returns The serialized Matterbridge device object.
|
|
553
|
-
*/
|
|
554
366
|
serialize() {
|
|
555
367
|
if (!this.serialNumber || !this.deviceName || !this.uniqueId)
|
|
556
368
|
return;
|
|
@@ -575,11 +387,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
575
387
|
});
|
|
576
388
|
return serialized;
|
|
577
389
|
}
|
|
578
|
-
/**
|
|
579
|
-
* Deserializes the device into a serialized object.
|
|
580
|
-
*
|
|
581
|
-
* @returns The deserialized MatterbridgeDevice.
|
|
582
|
-
*/
|
|
583
390
|
static deserialize(serializedDevice) {
|
|
584
391
|
const device = new MatterbridgeDevice(serializedDevice.deviceTypes);
|
|
585
392
|
device.serialNumber = serializedDevice.serialNumber;
|
|
@@ -595,9 +402,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
595
402
|
}
|
|
596
403
|
return device;
|
|
597
404
|
}
|
|
598
|
-
/**
|
|
599
|
-
* Get a default IdentifyCluster server.
|
|
600
|
-
*/
|
|
601
405
|
getDefaultIdentifyClusterServer(identifyTime = 0, identifyType = Identify.IdentifyType.None) {
|
|
602
406
|
return ClusterServer(IdentifyCluster, {
|
|
603
407
|
identifyTime,
|
|
@@ -613,88 +417,28 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
613
417
|
},
|
|
614
418
|
});
|
|
615
419
|
}
|
|
616
|
-
/**
|
|
617
|
-
* Creates a default IdentifyCluster server.
|
|
618
|
-
*/
|
|
619
420
|
createDefaultIdentifyClusterServer(identifyTime = 0, identifyType = Identify.IdentifyType.None) {
|
|
620
421
|
this.addClusterServer(this.getDefaultIdentifyClusterServer(identifyTime, identifyType));
|
|
621
422
|
}
|
|
622
|
-
/**
|
|
623
|
-
* Get a default IdentifyCluster server.
|
|
624
|
-
*/
|
|
625
423
|
getDefaultGroupsClusterServer() {
|
|
626
424
|
return ClusterServer(GroupsCluster, {
|
|
627
425
|
nameSupport: {
|
|
628
426
|
nameSupport: true,
|
|
629
427
|
},
|
|
630
428
|
}, GroupsClusterHandler());
|
|
631
|
-
// return createDefaultGroupsClusterServer();
|
|
632
429
|
}
|
|
633
|
-
/**
|
|
634
|
-
* Creates a default groups cluster server and adds it to the device.
|
|
635
|
-
*/
|
|
636
430
|
createDefaultGroupsClusterServer() {
|
|
637
431
|
this.addClusterServer(this.getDefaultGroupsClusterServer());
|
|
638
432
|
}
|
|
639
|
-
/**
|
|
640
|
-
* Get a default scenes cluster server and adds it to the current instance.
|
|
641
|
-
* @deprecated This method is deprecated.
|
|
642
|
-
*
|
|
643
|
-
*/
|
|
644
433
|
getDefaultScenesClusterServer() {
|
|
645
|
-
|
|
646
|
-
return ClusterServer(
|
|
647
|
-
ScenesCluster,
|
|
648
|
-
{
|
|
649
|
-
sceneCount: 0,
|
|
650
|
-
currentScene: 0,
|
|
651
|
-
currentGroup: GroupId(0),
|
|
652
|
-
sceneValid: false,
|
|
653
|
-
nameSupport: {
|
|
654
|
-
nameSupport: true,
|
|
655
|
-
},
|
|
656
|
-
lastConfiguredBy: null,
|
|
657
|
-
},
|
|
658
|
-
{},
|
|
659
|
-
);
|
|
660
|
-
*/
|
|
661
|
-
}
|
|
662
|
-
/**
|
|
663
|
-
* Creates a default scenes cluster server and adds it to the current instance.
|
|
664
|
-
* @deprecated This method is deprecated.
|
|
665
|
-
*/
|
|
434
|
+
}
|
|
666
435
|
createDefaultScenesClusterServer() {
|
|
667
|
-
|
|
668
|
-
this.addClusterServer(this.getDefaultScenesClusterServer());
|
|
669
|
-
*/
|
|
670
|
-
}
|
|
671
|
-
/**
|
|
672
|
-
* Creates a unique identifier based on the provided parameters.
|
|
673
|
-
* @param param1 - The first parameter.
|
|
674
|
-
* @param param2 - The second parameter.
|
|
675
|
-
* @param param3 - The third parameter.
|
|
676
|
-
* @param param4 - The fourth parameter.
|
|
677
|
-
* @returns A unique identifier generated using the MD5 hash algorithm.
|
|
678
|
-
*/
|
|
436
|
+
}
|
|
679
437
|
createUniqueId(param1, param2, param3, param4) {
|
|
680
438
|
const hash = createHash('md5');
|
|
681
439
|
hash.update(param1 + param2 + param3 + param4);
|
|
682
440
|
return hash.digest('hex');
|
|
683
441
|
}
|
|
684
|
-
/**
|
|
685
|
-
* Get a default Basic Information Cluster Server.
|
|
686
|
-
*
|
|
687
|
-
* @param deviceName - The name of the device.
|
|
688
|
-
* @param serialNumber - The serial number of the device.
|
|
689
|
-
* @param vendorId - The vendor ID of the device.
|
|
690
|
-
* @param vendorName - The vendor name of the device.
|
|
691
|
-
* @param productId - The product ID of the device.
|
|
692
|
-
* @param productName - The product name of the device.
|
|
693
|
-
* @param softwareVersion - The software version of the device. Default is 1.
|
|
694
|
-
* @param softwareVersionString - The software version string of the device. Default is 'v.1.0.0'.
|
|
695
|
-
* @param hardwareVersion - The hardware version of the device. Default is 1.
|
|
696
|
-
* @param hardwareVersionString - The hardware version string of the device. Default is 'v.1.0.0'.
|
|
697
|
-
*/
|
|
698
442
|
getDefaultBasicInformationClusterServer(deviceName, serialNumber, vendorId, vendorName, productId, productName, softwareVersion = 1, softwareVersionString = '1.0.0', hardwareVersion = 1, hardwareVersionString = '1.0.0') {
|
|
699
443
|
this.log.logName = deviceName;
|
|
700
444
|
this.deviceName = deviceName;
|
|
@@ -715,6 +459,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
715
459
|
vendorName: vendorName.slice(0, 32),
|
|
716
460
|
productId: productId,
|
|
717
461
|
productName: productName.slice(0, 32),
|
|
462
|
+
productUrl: 'https://www.npmjs.com/package/matterbridge',
|
|
718
463
|
productLabel: deviceName.slice(0, 64),
|
|
719
464
|
nodeLabel: deviceName.slice(0, 32),
|
|
720
465
|
serialNumber: serialNumber.slice(0, 32),
|
|
@@ -734,20 +479,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
734
479
|
reachableChanged: true,
|
|
735
480
|
});
|
|
736
481
|
}
|
|
737
|
-
/**
|
|
738
|
-
* Creates a default Basic Information Cluster Server.
|
|
739
|
-
*
|
|
740
|
-
* @param deviceName - The name of the device.
|
|
741
|
-
* @param serialNumber - The serial number of the device.
|
|
742
|
-
* @param vendorId - The vendor ID of the device.
|
|
743
|
-
* @param vendorName - The vendor name of the device.
|
|
744
|
-
* @param productId - The product ID of the device.
|
|
745
|
-
* @param productName - The product name of the device.
|
|
746
|
-
* @param softwareVersion - The software version of the device. Default is 1.
|
|
747
|
-
* @param softwareVersionString - The software version string of the device. Default is 'v.1.0.0'.
|
|
748
|
-
* @param hardwareVersion - The hardware version of the device. Default is 1.
|
|
749
|
-
* @param hardwareVersionString - The hardware version string of the device. Default is 'v.1.0.0'.
|
|
750
|
-
*/
|
|
751
482
|
createDefaultBasicInformationClusterServer(deviceName, serialNumber, vendorId, vendorName, productId, productName, softwareVersion = 1, softwareVersionString = '1.0.0', hardwareVersion = 1, hardwareVersionString = '1.0.0') {
|
|
752
483
|
if (MatterbridgeDevice.bridgeMode === 'bridge') {
|
|
753
484
|
this.addDeviceType(bridgedNode);
|
|
@@ -756,19 +487,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
756
487
|
}
|
|
757
488
|
this.addClusterServer(this.getDefaultBasicInformationClusterServer(deviceName, serialNumber, vendorId, vendorName, productId, productName, softwareVersion, softwareVersionString, hardwareVersion, hardwareVersionString));
|
|
758
489
|
}
|
|
759
|
-
/**
|
|
760
|
-
* Get a default BridgedDeviceBasicInformationClusterServer.
|
|
761
|
-
*
|
|
762
|
-
* @param deviceName - The name of the device.
|
|
763
|
-
* @param serialNumber - The serial number of the device.
|
|
764
|
-
* @param vendorId - The vendor ID of the device.
|
|
765
|
-
* @param vendorName - The name of the vendor.
|
|
766
|
-
* @param productName - The name of the product.
|
|
767
|
-
* @param softwareVersion - The software version of the device. Default is 1.
|
|
768
|
-
* @param softwareVersionString - The software version string of the device. Default is 'v.1.0.0'.
|
|
769
|
-
* @param hardwareVersion - The hardware version of the device. Default is 1.
|
|
770
|
-
* @param hardwareVersionString - The hardware version string of the device. Default is 'v.1.0.0'.
|
|
771
|
-
*/
|
|
772
490
|
getDefaultBridgedDeviceBasicInformationClusterServer(deviceName, serialNumber, vendorId, vendorName, productName, softwareVersion = 1, softwareVersionString = '1.0.0', hardwareVersion = 1, hardwareVersionString = '1.0.0') {
|
|
773
491
|
this.log.logName = deviceName;
|
|
774
492
|
this.deviceName = deviceName;
|
|
@@ -783,9 +501,10 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
783
501
|
this.hardwareVersion = hardwareVersion;
|
|
784
502
|
this.hardwareVersionString = hardwareVersionString;
|
|
785
503
|
return ClusterServer(BridgedDeviceBasicInformationCluster, {
|
|
786
|
-
vendorId: vendorId !== undefined ? VendorId(vendorId) : undefined,
|
|
504
|
+
vendorId: vendorId !== undefined ? VendorId(vendorId) : undefined,
|
|
787
505
|
vendorName: vendorName.slice(0, 32),
|
|
788
506
|
productName: productName.slice(0, 32),
|
|
507
|
+
productUrl: 'https://www.npmjs.com/package/matterbridge',
|
|
789
508
|
productLabel: deviceName.slice(0, 64),
|
|
790
509
|
nodeLabel: deviceName.slice(0, 32),
|
|
791
510
|
serialNumber: serialNumber.slice(0, 32),
|
|
@@ -802,36 +521,12 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
802
521
|
reachableChanged: true,
|
|
803
522
|
});
|
|
804
523
|
}
|
|
805
|
-
/**
|
|
806
|
-
* Creates a default BridgedDeviceBasicInformationClusterServer.
|
|
807
|
-
*
|
|
808
|
-
* @param deviceName - The name of the device.
|
|
809
|
-
* @param serialNumber - The serial number of the device.
|
|
810
|
-
* @param vendorId - The vendor ID of the device.
|
|
811
|
-
* @param vendorName - The name of the vendor.
|
|
812
|
-
* @param productName - The name of the product.
|
|
813
|
-
* @param softwareVersion - The software version of the device. Default is 1.
|
|
814
|
-
* @param softwareVersionString - The software version string of the device. Default is 'v.1.0.0'.
|
|
815
|
-
* @param hardwareVersion - The hardware version of the device. Default is 1.
|
|
816
|
-
* @param hardwareVersionString - The hardware version string of the device. Default is 'v.1.0.0'.
|
|
817
|
-
*/
|
|
818
524
|
createDefaultBridgedDeviceBasicInformationClusterServer(deviceName, serialNumber, vendorId, vendorName, productName, softwareVersion = 1, softwareVersionString = '1.0.0', hardwareVersion = 1, hardwareVersionString = '1.0.0') {
|
|
819
525
|
this.addClusterServer(this.getDefaultBridgedDeviceBasicInformationClusterServer(deviceName, serialNumber, vendorId, vendorName, productName, softwareVersion, softwareVersionString, hardwareVersion, hardwareVersionString));
|
|
820
526
|
}
|
|
821
|
-
/**
|
|
822
|
-
* Get a default Power Topology Cluster Server.
|
|
823
|
-
*
|
|
824
|
-
* @returns {ClusterServer} - The configured Power Topology Cluster Server.
|
|
825
|
-
*/
|
|
826
527
|
getDefaultPowerTopologyClusterServer() {
|
|
827
528
|
return ClusterServer(PowerTopologyCluster.with(PowerTopology.Feature.TreeTopology), {}, {}, {});
|
|
828
529
|
}
|
|
829
|
-
/**
|
|
830
|
-
* Get a default Electrical Energy Measurement Cluster Server.
|
|
831
|
-
*
|
|
832
|
-
* @param {number} energy - The total consumption value in mW/h.
|
|
833
|
-
* @returns {ClusterServer} - The configured Electrical Energy Measurement Cluster Server.
|
|
834
|
-
*/
|
|
835
530
|
getDefaultElectricalEnergyMeasurementClusterServer(energy = null) {
|
|
836
531
|
return ClusterServer(ElectricalEnergyMeasurementCluster.with(ElectricalEnergyMeasurement.Feature.ImportedEnergy, ElectricalEnergyMeasurement.Feature.ExportedEnergy, ElectricalEnergyMeasurement.Feature.CumulativeEnergy), {
|
|
837
532
|
accuracy: {
|
|
@@ -848,15 +543,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
848
543
|
cumulativeEnergyMeasured: true,
|
|
849
544
|
});
|
|
850
545
|
}
|
|
851
|
-
/**
|
|
852
|
-
* Get a default Electrical Power Measurement Cluster Server.
|
|
853
|
-
*
|
|
854
|
-
* @param {number} voltage - The voltage value in millivolts.
|
|
855
|
-
* @param {number} current - The current value in milliamperes.
|
|
856
|
-
* @param {number} power - The power value in milliwatts.
|
|
857
|
-
* @param {number} frequency - The frequency value in millihertz.
|
|
858
|
-
* @returns {ClusterServer} - The configured Electrical Power Measurement Cluster Server.
|
|
859
|
-
*/
|
|
860
546
|
getDefaultElectricalPowerMeasurementClusterServer(voltage = null, current = null, power = null, frequency = null) {
|
|
861
547
|
return ClusterServer(ElectricalPowerMeasurementCluster.with(ElectricalPowerMeasurement.Feature.AlternatingCurrent), {
|
|
862
548
|
powerMode: ElectricalPowerMeasurement.PowerMode.Ac,
|
|
@@ -897,15 +583,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
897
583
|
frequency: frequency,
|
|
898
584
|
}, {}, {});
|
|
899
585
|
}
|
|
900
|
-
/**
|
|
901
|
-
* Creates a default Dummy Thread Network Diagnostics Cluster server.
|
|
902
|
-
* @deprecated This method is deprecated and is only used for testing.
|
|
903
|
-
*
|
|
904
|
-
* @remarks
|
|
905
|
-
* This method adds a cluster server used only to give the networkName to Eve app.
|
|
906
|
-
*
|
|
907
|
-
* @returns void
|
|
908
|
-
*/
|
|
909
586
|
createDefaultDummyThreadNetworkDiagnosticsClusterServer() {
|
|
910
587
|
this.addClusterServer(ClusterServer(ThreadNetworkDiagnosticsCluster.with(ThreadNetworkDiagnostics.Feature.PacketCounts, ThreadNetworkDiagnostics.Feature.ErrorCounts), {
|
|
911
588
|
channel: 1,
|
|
@@ -933,51 +610,51 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
933
610
|
},
|
|
934
611
|
}, {}));
|
|
935
612
|
}
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
*
|
|
939
|
-
* @param onOff - The initial state of the OnOff cluster (default: false).
|
|
940
|
-
*/
|
|
941
|
-
getDefaultOnOffClusterServer(onOff = false) {
|
|
942
|
-
return ClusterServer(OnOffCluster, {
|
|
613
|
+
getDefaultOnOffClusterServer(onOff = false, globalSceneControl = false, onTime = 0, offWaitTime = 0, startUpOnOff = null) {
|
|
614
|
+
return ClusterServer(OnOffCluster.with(OnOff.Feature.Lighting), {
|
|
943
615
|
onOff,
|
|
616
|
+
globalSceneControl,
|
|
617
|
+
onTime,
|
|
618
|
+
offWaitTime,
|
|
619
|
+
startUpOnOff,
|
|
944
620
|
}, {
|
|
945
621
|
on: async (data) => {
|
|
946
|
-
this.log.debug('Matter command: on
|
|
622
|
+
this.log.debug('Matter command: on');
|
|
947
623
|
await this.commandHandler.executeHandler('on', data);
|
|
948
624
|
},
|
|
949
625
|
off: async (data) => {
|
|
950
|
-
this.log.debug('Matter command: off
|
|
626
|
+
this.log.debug('Matter command: off');
|
|
951
627
|
await this.commandHandler.executeHandler('off', data);
|
|
952
628
|
},
|
|
953
629
|
toggle: async (data) => {
|
|
954
|
-
this.log.debug('Matter command: toggle
|
|
630
|
+
this.log.debug('Matter command: toggle');
|
|
955
631
|
await this.commandHandler.executeHandler('toggle', data);
|
|
956
632
|
},
|
|
633
|
+
offWithEffect: async (data) => {
|
|
634
|
+
this.log.debug('Matter command: offWithEffect', data.request);
|
|
635
|
+
await this.commandHandler.executeHandler('offWithEffect', data);
|
|
636
|
+
},
|
|
637
|
+
onWithRecallGlobalScene: async (data) => {
|
|
638
|
+
this.log.debug('Matter command: onWithRecallGlobalScene', data.request);
|
|
639
|
+
await this.commandHandler.executeHandler('onWithRecallGlobalScene', data);
|
|
640
|
+
},
|
|
641
|
+
onWithTimedOff: async (data) => {
|
|
642
|
+
this.log.debug('Matter command: onWithTimedOff', data.request);
|
|
643
|
+
await this.commandHandler.executeHandler('onWithTimedOff', data);
|
|
644
|
+
},
|
|
957
645
|
}, {});
|
|
958
646
|
}
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
createDefaultOnOffClusterServer(onOff = false) {
|
|
965
|
-
this.addClusterServer(this.getDefaultOnOffClusterServer(onOff));
|
|
966
|
-
}
|
|
967
|
-
/**
|
|
968
|
-
* Get a default level control cluster server.
|
|
969
|
-
*
|
|
970
|
-
* @param currentLevel - The current level (default: 254).
|
|
971
|
-
* @param minLevel - The minimum level (default: 0).
|
|
972
|
-
* @param maxLevel - The maximum level (default: 254).
|
|
973
|
-
* @param onLevel - The on level (default: null).
|
|
974
|
-
*/
|
|
975
|
-
getDefaultLevelControlClusterServer(currentLevel = 254, minLevel = 0, maxLevel = 254, onLevel = null) {
|
|
976
|
-
return ClusterServer(LevelControlCluster.with(LevelControl.Feature.OnOff), {
|
|
647
|
+
createDefaultOnOffClusterServer(onOff = false, globalSceneControl = false, onTime = 0, offWaitTime = 0, startUpOnOff = null) {
|
|
648
|
+
this.addClusterServer(this.getDefaultOnOffClusterServer(onOff, globalSceneControl, onTime, offWaitTime, startUpOnOff));
|
|
649
|
+
}
|
|
650
|
+
getDefaultLevelControlClusterServer(currentLevel = 254, minLevel = 1, maxLevel = 254, onLevel = null, startUpCurrentLevel = null) {
|
|
651
|
+
return ClusterServer(LevelControlCluster.with(LevelControl.Feature.OnOff, LevelControl.Feature.Lighting), {
|
|
977
652
|
currentLevel,
|
|
978
653
|
minLevel,
|
|
979
654
|
maxLevel,
|
|
980
655
|
onLevel,
|
|
656
|
+
remainingTime: 0,
|
|
657
|
+
startUpCurrentLevel,
|
|
981
658
|
options: {
|
|
982
659
|
executeIfOff: false,
|
|
983
660
|
coupleColorTempToLevel: false,
|
|
@@ -1011,28 +688,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1011
688
|
},
|
|
1012
689
|
});
|
|
1013
690
|
}
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
* @param currentLevel - The current level (default: 254).
|
|
1018
|
-
* @param minLevel - The minimum level (default: 0).
|
|
1019
|
-
* @param maxLevel - The maximum level (default: 254).
|
|
1020
|
-
* @param onLevel - The on level (default: null).
|
|
1021
|
-
*/
|
|
1022
|
-
createDefaultLevelControlClusterServer(currentLevel = 254, minLevel = 0, maxLevel = 254, onLevel = null) {
|
|
1023
|
-
this.addClusterServer(this.getDefaultLevelControlClusterServer(currentLevel, minLevel, maxLevel, onLevel));
|
|
1024
|
-
}
|
|
1025
|
-
/**
|
|
1026
|
-
* Get a default color control cluster server.
|
|
1027
|
-
*
|
|
1028
|
-
* @param currentX - The current X value.
|
|
1029
|
-
* @param currentY - The current Y value.
|
|
1030
|
-
* @param currentHue - The current hue value.
|
|
1031
|
-
* @param currentSaturation - The current saturation value.
|
|
1032
|
-
* @param colorTemperatureMireds - The color temperature in mireds.
|
|
1033
|
-
* @param colorTempPhysicalMinMireds - The physical minimum color temperature in mireds.
|
|
1034
|
-
* @param colorTempPhysicalMaxMireds - The physical maximum color temperature in mireds.
|
|
1035
|
-
*/
|
|
691
|
+
createDefaultLevelControlClusterServer(currentLevel = 254, minLevel = 1, maxLevel = 254, onLevel = null, startUpCurrentLevel = null) {
|
|
692
|
+
this.addClusterServer(this.getDefaultLevelControlClusterServer(currentLevel, minLevel, maxLevel, onLevel, startUpCurrentLevel));
|
|
693
|
+
}
|
|
1036
694
|
getDefaultColorControlClusterServer(currentX = 0, currentY = 0, currentHue = 0, currentSaturation = 0, colorTemperatureMireds = 500, colorTempPhysicalMinMireds = 147, colorTempPhysicalMaxMireds = 500) {
|
|
1037
695
|
return ClusterServer(ColorControlCluster.with(ColorControl.Feature.Xy, ColorControl.Feature.HueSaturation, ColorControl.Feature.ColorTemperature), {
|
|
1038
696
|
colorMode: ColorControl.ColorMode.CurrentHueAndCurrentSaturation,
|
|
@@ -1049,6 +707,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1049
707
|
colorTemperatureMireds,
|
|
1050
708
|
colorTempPhysicalMinMireds,
|
|
1051
709
|
colorTempPhysicalMaxMireds,
|
|
710
|
+
coupleColorTempToLevelMinMireds: colorTempPhysicalMinMireds,
|
|
711
|
+
remainingTime: 0,
|
|
712
|
+
startUpColorTemperatureMireds: null,
|
|
1052
713
|
}, {
|
|
1053
714
|
moveToColor: async (data) => {
|
|
1054
715
|
this.log.debug('Matter command: moveToColor request:', data.request, 'attributes.currentX:', data.attributes.currentX.getLocal(), 'attributes.currentY:', data.attributes.currentY.getLocal());
|
|
@@ -1099,26 +760,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1099
760
|
},
|
|
1100
761
|
}, {});
|
|
1101
762
|
}
|
|
1102
|
-
/**
|
|
1103
|
-
* Creates a default color control cluster server.
|
|
1104
|
-
*
|
|
1105
|
-
* @param currentX - The current X value.
|
|
1106
|
-
* @param currentY - The current Y value.
|
|
1107
|
-
* @param currentHue - The current hue value.
|
|
1108
|
-
* @param currentSaturation - The current saturation value.
|
|
1109
|
-
* @param colorTemperatureMireds - The color temperature in mireds.
|
|
1110
|
-
* @param colorTempPhysicalMinMireds - The physical minimum color temperature in mireds.
|
|
1111
|
-
* @param colorTempPhysicalMaxMireds - The physical maximum color temperature in mireds.
|
|
1112
|
-
*/
|
|
1113
763
|
createDefaultColorControlClusterServer(currentX = 0, currentY = 0, currentHue = 0, currentSaturation = 0, colorTemperatureMireds = 500, colorTempPhysicalMinMireds = 147, colorTempPhysicalMaxMireds = 500) {
|
|
1114
764
|
this.addClusterServer(this.getDefaultColorControlClusterServer(currentX, currentY, currentHue, currentSaturation, colorTemperatureMireds, colorTempPhysicalMinMireds, colorTempPhysicalMaxMireds));
|
|
1115
765
|
}
|
|
1116
|
-
/**
|
|
1117
|
-
* Get a Xy color control cluster server.
|
|
1118
|
-
*
|
|
1119
|
-
* @param currentX - The current X value.
|
|
1120
|
-
* @param currentY - The current Y value.
|
|
1121
|
-
*/
|
|
1122
766
|
getXyColorControlClusterServer(currentX = 0, currentY = 0) {
|
|
1123
767
|
return ClusterServer(ColorControlCluster.with(ColorControl.Feature.Xy), {
|
|
1124
768
|
colorMode: ColorControl.ColorMode.CurrentXAndCurrentY,
|
|
@@ -1130,6 +774,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1130
774
|
numberOfPrimaries: null,
|
|
1131
775
|
currentX,
|
|
1132
776
|
currentY,
|
|
777
|
+
remainingTime: 0,
|
|
1133
778
|
}, {
|
|
1134
779
|
moveToColor: async (data) => {
|
|
1135
780
|
this.log.debug('Matter command: moveToColor request:', data.request, 'attributes.currentX:', data.attributes.currentX.getLocal(), 'attributes.currentY:', data.attributes.currentY.getLocal());
|
|
@@ -1146,21 +791,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1146
791
|
},
|
|
1147
792
|
}, {});
|
|
1148
793
|
}
|
|
1149
|
-
|
|
1150
|
-
* Creates a Xy color control cluster server.
|
|
1151
|
-
*
|
|
1152
|
-
* @param currentX - The current X value.
|
|
1153
|
-
* @param currentY - The current Y value.
|
|
1154
|
-
*/
|
|
1155
|
-
createXyControlClusterServer(currentX = 0, currentY = 0) {
|
|
794
|
+
createXyColorControlClusterServer(currentX = 0, currentY = 0) {
|
|
1156
795
|
this.addClusterServer(this.getXyColorControlClusterServer(currentX, currentY));
|
|
1157
796
|
}
|
|
1158
|
-
/**
|
|
1159
|
-
* Get a default hue and saturation control cluster server.
|
|
1160
|
-
*
|
|
1161
|
-
* @param currentHue - The current hue value.
|
|
1162
|
-
* @param currentSaturation - The current saturation value.
|
|
1163
|
-
*/
|
|
1164
797
|
getHsColorControlClusterServer(currentHue = 0, currentSaturation = 0) {
|
|
1165
798
|
return ClusterServer(ColorControlCluster.with(ColorControl.Feature.HueSaturation), {
|
|
1166
799
|
colorMode: ColorControl.ColorMode.CurrentHueAndCurrentSaturation,
|
|
@@ -1172,6 +805,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1172
805
|
numberOfPrimaries: null,
|
|
1173
806
|
currentHue,
|
|
1174
807
|
currentSaturation,
|
|
808
|
+
remainingTime: 0,
|
|
1175
809
|
}, {
|
|
1176
810
|
moveToHue: async ({ request, attributes, endpoint }) => {
|
|
1177
811
|
this.log.debug('Matter command: moveToHue request:', request, 'attributes.currentHue:', attributes.currentHue.getLocal());
|
|
@@ -1202,22 +836,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1202
836
|
},
|
|
1203
837
|
}, {});
|
|
1204
838
|
}
|
|
1205
|
-
/**
|
|
1206
|
-
* Creates a hue and saturation color control cluster server.
|
|
1207
|
-
*
|
|
1208
|
-
* @param currentHue - The current hue value.
|
|
1209
|
-
* @param currentSaturation - The current saturation value.
|
|
1210
|
-
*/
|
|
1211
839
|
createHsColorControlClusterServer(currentHue = 0, currentSaturation = 0) {
|
|
1212
840
|
this.addClusterServer(this.getHsColorControlClusterServer(currentHue, currentSaturation));
|
|
1213
841
|
}
|
|
1214
|
-
/**
|
|
1215
|
-
* Get a color temperature color control cluster server.
|
|
1216
|
-
*
|
|
1217
|
-
* @param colorTemperatureMireds - The color temperature in mireds.
|
|
1218
|
-
* @param colorTempPhysicalMinMireds - The physical minimum color temperature in mireds.
|
|
1219
|
-
* @param colorTempPhysicalMaxMireds - The physical maximum color temperature in mireds.
|
|
1220
|
-
*/
|
|
1221
842
|
getCtColorControlClusterServer(colorTemperatureMireds = 500, colorTempPhysicalMinMireds = 147, colorTempPhysicalMaxMireds = 500) {
|
|
1222
843
|
return ClusterServer(ColorControlCluster.with(ColorControl.Feature.ColorTemperature), {
|
|
1223
844
|
colorMode: ColorControl.ColorMode.ColorTemperatureMireds,
|
|
@@ -1230,6 +851,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1230
851
|
colorTemperatureMireds,
|
|
1231
852
|
colorTempPhysicalMinMireds,
|
|
1232
853
|
colorTempPhysicalMaxMireds,
|
|
854
|
+
coupleColorTempToLevelMinMireds: colorTempPhysicalMinMireds,
|
|
855
|
+
remainingTime: 0,
|
|
856
|
+
startUpColorTemperatureMireds: null,
|
|
1233
857
|
}, {
|
|
1234
858
|
stopMoveStep: async () => {
|
|
1235
859
|
this.log.error('Matter command: stopMoveStep not implemented');
|
|
@@ -1246,28 +870,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1246
870
|
},
|
|
1247
871
|
}, {});
|
|
1248
872
|
}
|
|
1249
|
-
/**
|
|
1250
|
-
* Creates a color temperature color control cluster server.
|
|
1251
|
-
*
|
|
1252
|
-
* @param colorTemperatureMireds - The color temperature in mireds.
|
|
1253
|
-
* @param colorTempPhysicalMinMireds - The physical minimum color temperature in mireds.
|
|
1254
|
-
* @param colorTempPhysicalMaxMireds - The physical maximum color temperature in mireds.
|
|
1255
|
-
*/
|
|
1256
873
|
createCtColorControlClusterServer(colorTemperatureMireds = 500, colorTempPhysicalMinMireds = 147, colorTempPhysicalMaxMireds = 500) {
|
|
1257
874
|
this.addClusterServer(this.getCtColorControlClusterServer(colorTemperatureMireds, colorTempPhysicalMinMireds, colorTempPhysicalMaxMireds));
|
|
1258
875
|
}
|
|
1259
|
-
/**
|
|
1260
|
-
* Configures the color control cluster for a device.
|
|
1261
|
-
*
|
|
1262
|
-
* @remark This method must be called only after creating the cluster with getDefaultCompleteColorControlClusterServer or createDefaultCompleteColorControlClusterServer
|
|
1263
|
-
* and before starting the matter server.
|
|
1264
|
-
*
|
|
1265
|
-
* @param {boolean} hueSaturation - A boolean indicating whether the device supports hue and saturation control.
|
|
1266
|
-
* @param {boolean} xy - A boolean indicating whether the device supports XY control.
|
|
1267
|
-
* @param {boolean} colorTemperature - A boolean indicating whether the device supports color temperature control.
|
|
1268
|
-
* @param {ColorControl.ColorMode} colorMode - An optional parameter specifying the color mode of the device.
|
|
1269
|
-
* @param {Endpoint} endpoint - An optional parameter specifying the endpoint to configure. If not provided, the device endpoint will be used.
|
|
1270
|
-
*/
|
|
1271
876
|
configureColorControlCluster(hueSaturation, xy, colorTemperature, colorMode, endpoint) {
|
|
1272
877
|
if (!endpoint)
|
|
1273
878
|
endpoint = this;
|
|
@@ -1278,12 +883,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1278
883
|
endpoint.getClusterServer(ColorControlCluster)?.setEnhancedColorModeAttribute(colorMode);
|
|
1279
884
|
}
|
|
1280
885
|
}
|
|
1281
|
-
/**
|
|
1282
|
-
* Configures the color control mode for the device.
|
|
1283
|
-
*
|
|
1284
|
-
* @param {ColorControl.ColorMode} colorMode - The color mode to set.
|
|
1285
|
-
* @param {Endpoint} endpoint - The optional endpoint to configure. If not provided, the method will configure the current endpoint.
|
|
1286
|
-
*/
|
|
1287
886
|
configureColorControlMode(colorMode, endpoint) {
|
|
1288
887
|
if (!endpoint)
|
|
1289
888
|
endpoint = this;
|
|
@@ -1292,13 +891,8 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1292
891
|
endpoint.getClusterServer(ColorControlCluster)?.setEnhancedColorModeAttribute(colorMode);
|
|
1293
892
|
}
|
|
1294
893
|
}
|
|
1295
|
-
/**
|
|
1296
|
-
* Get a default window covering cluster server.
|
|
1297
|
-
*
|
|
1298
|
-
* @param positionPercent100ths - The position percentage in 100ths (0-10000). Defaults to 0.
|
|
1299
|
-
*/
|
|
1300
894
|
getDefaultWindowCoveringClusterServer(positionPercent100ths) {
|
|
1301
|
-
return ClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift
|
|
895
|
+
return ClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift), {
|
|
1302
896
|
type: WindowCovering.WindowCoveringType.Rollershade,
|
|
1303
897
|
configStatus: {
|
|
1304
898
|
operational: true,
|
|
@@ -1312,10 +906,8 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1312
906
|
operationalStatus: { global: WindowCovering.MovementStatus.Stopped, lift: WindowCovering.MovementStatus.Stopped, tilt: WindowCovering.MovementStatus.Stopped },
|
|
1313
907
|
endProductType: WindowCovering.EndProductType.RollerShade,
|
|
1314
908
|
mode: { motorDirectionReversed: false, calibrationMode: false, maintenanceMode: false, ledFeedback: false },
|
|
1315
|
-
targetPositionLiftPercent100ths: positionPercent100ths ?? 0,
|
|
1316
|
-
currentPositionLiftPercent100ths: positionPercent100ths ?? 0,
|
|
1317
|
-
// installedClosedLimitLift: 10000,
|
|
1318
|
-
// installedOpenLimitLift: 0,
|
|
909
|
+
targetPositionLiftPercent100ths: positionPercent100ths ?? 0,
|
|
910
|
+
currentPositionLiftPercent100ths: positionPercent100ths ?? 0,
|
|
1319
911
|
}, {
|
|
1320
912
|
upOrOpen: async (data) => {
|
|
1321
913
|
this.log.debug('Matter command: upOrOpen');
|
|
@@ -1336,18 +928,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1336
928
|
},
|
|
1337
929
|
}, {});
|
|
1338
930
|
}
|
|
1339
|
-
/**
|
|
1340
|
-
* Creates a default window covering cluster server.
|
|
1341
|
-
*
|
|
1342
|
-
* @param positionPercent100ths - The position percentage in 100ths (0-10000). Defaults to 0.
|
|
1343
|
-
*/
|
|
1344
931
|
createDefaultWindowCoveringClusterServer(positionPercent100ths) {
|
|
1345
932
|
this.addClusterServer(this.getDefaultWindowCoveringClusterServer(positionPercent100ths));
|
|
1346
933
|
}
|
|
1347
|
-
/**
|
|
1348
|
-
* Sets the window covering target position as the current position and stops the movement.
|
|
1349
|
-
* @param {Endpoint} endpoint - The endpoint on which to set the window covering (default the device endpoint).
|
|
1350
|
-
*/
|
|
1351
934
|
setWindowCoveringTargetAsCurrentAndStopped(endpoint) {
|
|
1352
935
|
if (!endpoint)
|
|
1353
936
|
endpoint = this;
|
|
@@ -1365,13 +948,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1365
948
|
this.log.debug(`Set WindowCovering currentPositionLiftPercent100ths and targetPositionLiftPercent100ths to ${position} and operationalStatus to Stopped.`);
|
|
1366
949
|
}
|
|
1367
950
|
}
|
|
1368
|
-
/**
|
|
1369
|
-
* Sets the current and target status of a window covering.
|
|
1370
|
-
* @param {number} current - The current position of the window covering.
|
|
1371
|
-
* @param {number} target - The target position of the window covering.
|
|
1372
|
-
* @param {WindowCovering.MovementStatus} status - The movement status of the window covering.
|
|
1373
|
-
* @param {Endpoint} endpoint - The endpoint on which to set the window covering (default the device endpoint).
|
|
1374
|
-
*/
|
|
1375
951
|
setWindowCoveringCurrentTargetStatus(current, target, status, endpoint) {
|
|
1376
952
|
if (!endpoint)
|
|
1377
953
|
endpoint = this;
|
|
@@ -1387,11 +963,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1387
963
|
}
|
|
1388
964
|
this.log.debug(`Set WindowCovering currentPositionLiftPercent100ths: ${current}, targetPositionLiftPercent100ths: ${target} and operationalStatus: ${status}.`);
|
|
1389
965
|
}
|
|
1390
|
-
/**
|
|
1391
|
-
* Sets the status of the window covering.
|
|
1392
|
-
* @param {WindowCovering.MovementStatus} status - The movement status to set.
|
|
1393
|
-
* @param {Endpoint} endpoint - The endpoint on which to set the window covering (default the device endpoint).
|
|
1394
|
-
*/
|
|
1395
966
|
setWindowCoveringStatus(status, endpoint) {
|
|
1396
967
|
if (!endpoint)
|
|
1397
968
|
endpoint = this;
|
|
@@ -1401,12 +972,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1401
972
|
windowCovering.setOperationalStatusAttribute({ global: status, lift: status, tilt: status });
|
|
1402
973
|
this.log.debug(`Set WindowCovering operationalStatus: ${status}`);
|
|
1403
974
|
}
|
|
1404
|
-
/**
|
|
1405
|
-
* Retrieves the status of the window covering.
|
|
1406
|
-
* @param {Endpoint} endpoint - The endpoint on which to get the window covering (default the device endpoint).
|
|
1407
|
-
*
|
|
1408
|
-
* @returns The global operational status of the window covering.
|
|
1409
|
-
*/
|
|
1410
975
|
getWindowCoveringStatus(endpoint) {
|
|
1411
976
|
if (!endpoint)
|
|
1412
977
|
endpoint = this;
|
|
@@ -1417,12 +982,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1417
982
|
this.log.debug(`Get WindowCovering operationalStatus: ${status.global}`);
|
|
1418
983
|
return status.global;
|
|
1419
984
|
}
|
|
1420
|
-
/**
|
|
1421
|
-
* Sets the target and current position of the window covering.
|
|
1422
|
-
*
|
|
1423
|
-
* @param position - The position to set, specified as a number.
|
|
1424
|
-
* @param {Endpoint} endpoint - The endpoint on which to set the window covering (default the device endpoint).
|
|
1425
|
-
*/
|
|
1426
985
|
setWindowCoveringTargetAndCurrentPosition(position, endpoint) {
|
|
1427
986
|
if (!endpoint)
|
|
1428
987
|
endpoint = this;
|
|
@@ -1433,13 +992,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1433
992
|
windowCovering.setTargetPositionLiftPercent100thsAttribute(position);
|
|
1434
993
|
this.log.debug(`Set WindowCovering currentPositionLiftPercent100ths: ${position} and targetPositionLiftPercent100ths: ${position}.`);
|
|
1435
994
|
}
|
|
1436
|
-
/**
|
|
1437
|
-
* Get a default door lock cluster server.
|
|
1438
|
-
*
|
|
1439
|
-
* @remarks
|
|
1440
|
-
* This method adds a cluster server for a door lock cluster with default settings.
|
|
1441
|
-
*
|
|
1442
|
-
*/
|
|
1443
995
|
getDefaultDoorLockClusterServer(lockState = DoorLock.LockState.Locked, lockType = DoorLock.LockType.DeadBolt) {
|
|
1444
996
|
return ClusterServer(DoorLockCluster, {
|
|
1445
997
|
operatingMode: DoorLock.OperatingMode.Normal,
|
|
@@ -1462,22 +1014,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1462
1014
|
lockOperationError: true,
|
|
1463
1015
|
});
|
|
1464
1016
|
}
|
|
1465
|
-
/**
|
|
1466
|
-
* Creates a default door lock cluster server.
|
|
1467
|
-
*
|
|
1468
|
-
* @remarks
|
|
1469
|
-
* This method adds a cluster server for a door lock cluster with default settings.
|
|
1470
|
-
*
|
|
1471
|
-
*/
|
|
1472
1017
|
createDefaultDoorLockClusterServer(lockState = DoorLock.LockState.Locked, lockType = DoorLock.LockType.DeadBolt) {
|
|
1473
1018
|
this.addClusterServer(this.getDefaultDoorLockClusterServer(lockState, lockType));
|
|
1474
1019
|
}
|
|
1475
|
-
/**
|
|
1476
|
-
* Get a default momentary switch cluster server.
|
|
1477
|
-
*
|
|
1478
|
-
* @remarks
|
|
1479
|
-
* This method adds a cluster server with default momentary switch features and configurations suitable for (AppleHome) Single Double Long automations.
|
|
1480
|
-
*/
|
|
1481
1020
|
getDefaultSwitchClusterServer() {
|
|
1482
1021
|
return ClusterServer(SwitchCluster.with(Switch.Feature.MomentarySwitch, Switch.Feature.MomentarySwitchRelease, Switch.Feature.MomentarySwitchLongPress, Switch.Feature.MomentarySwitchMultiPress), {
|
|
1483
1022
|
numberOfPositions: 2,
|
|
@@ -1492,21 +1031,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1492
1031
|
multiPressComplete: true,
|
|
1493
1032
|
});
|
|
1494
1033
|
}
|
|
1495
|
-
/**
|
|
1496
|
-
* Creates a default momentary switch cluster server.
|
|
1497
|
-
*
|
|
1498
|
-
* @remarks
|
|
1499
|
-
* This method adds a cluster server with default momentary switch features and configurations.
|
|
1500
|
-
*/
|
|
1501
1034
|
createDefaultSwitchClusterServer() {
|
|
1502
1035
|
this.addClusterServer(this.getDefaultSwitchClusterServer());
|
|
1503
1036
|
}
|
|
1504
|
-
/**
|
|
1505
|
-
* Get a default latching switch cluster server.
|
|
1506
|
-
*
|
|
1507
|
-
* @remarks
|
|
1508
|
-
* This method adds a cluster server with default latching switch features and configuration.
|
|
1509
|
-
*/
|
|
1510
1037
|
getDefaultLatchingSwitchClusterServer() {
|
|
1511
1038
|
return ClusterServer(SwitchCluster.with(Switch.Feature.LatchingSwitch), {
|
|
1512
1039
|
numberOfPositions: 2,
|
|
@@ -1515,22 +1042,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1515
1042
|
switchLatched: true,
|
|
1516
1043
|
});
|
|
1517
1044
|
}
|
|
1518
|
-
/**
|
|
1519
|
-
* Creates a default latching switch cluster server.
|
|
1520
|
-
*
|
|
1521
|
-
* @remarks
|
|
1522
|
-
* This method adds a cluster server with default latching switch features and configuration.
|
|
1523
|
-
*/
|
|
1524
1045
|
createDefaultLatchingSwitchClusterServer() {
|
|
1525
1046
|
this.addClusterServer(this.getDefaultLatchingSwitchClusterServer());
|
|
1526
1047
|
}
|
|
1527
|
-
/**
|
|
1528
|
-
* Triggers a switch event on the specified endpoint.
|
|
1529
|
-
*
|
|
1530
|
-
* @param {string} event - The type of event to trigger. Possible values are 'Single', 'Double', 'Long' for momentarySwitch and 'Press', 'Release' for latchingSwitch.
|
|
1531
|
-
* @param {Endpoint} endpoint - The endpoint on which to trigger the event (default the device endpoint).
|
|
1532
|
-
* @returns {void}
|
|
1533
|
-
*/
|
|
1534
1048
|
triggerSwitchEvent(event, log, endpoint) {
|
|
1535
1049
|
if (!endpoint)
|
|
1536
1050
|
endpoint = this;
|
|
@@ -1602,15 +1116,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1602
1116
|
}
|
|
1603
1117
|
return true;
|
|
1604
1118
|
}
|
|
1605
|
-
/**
|
|
1606
|
-
* Retrieves the default mode select cluster server.
|
|
1607
|
-
*
|
|
1608
|
-
* @param description - The description of the cluster server.
|
|
1609
|
-
* @param supportedModes - The supported modes for the cluster server.
|
|
1610
|
-
* @param currentMode - The current mode of the cluster server. Defaults to 0.
|
|
1611
|
-
* @param startUpMode - The startup mode of the cluster server. Defaults to 0.
|
|
1612
|
-
* @returns The default mode select cluster server.
|
|
1613
|
-
*/
|
|
1614
1119
|
getDefaultModeSelectClusterServer(description, supportedModes, currentMode = 0, startUpMode = 0) {
|
|
1615
1120
|
return ClusterServer(ModeSelectCluster, {
|
|
1616
1121
|
description: description,
|
|
@@ -1625,24 +1130,11 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1625
1130
|
},
|
|
1626
1131
|
});
|
|
1627
1132
|
}
|
|
1628
|
-
/**
|
|
1629
|
-
* Creates a default mode select cluster server.
|
|
1630
|
-
*
|
|
1631
|
-
* @remarks
|
|
1632
|
-
* This method adds a cluster server for a mode select cluster with default settings.
|
|
1633
|
-
*
|
|
1634
|
-
* @param endpoint - The endpoint to add the cluster server to. Defaults to `this` if not provided.
|
|
1635
|
-
*/
|
|
1636
1133
|
createDefaultModeSelectClusterServer(description, supportedModes, currentMode = 0, startUpMode = 0, endpoint) {
|
|
1637
1134
|
if (!endpoint)
|
|
1638
1135
|
endpoint = this;
|
|
1639
1136
|
endpoint.addClusterServer(this.getDefaultModeSelectClusterServer(description, supportedModes, currentMode, startUpMode));
|
|
1640
1137
|
}
|
|
1641
|
-
/**
|
|
1642
|
-
* Get a default occupancy sensing cluster server.
|
|
1643
|
-
*
|
|
1644
|
-
* @param occupied - A boolean indicating whether the occupancy is occupied or not. Default is false.
|
|
1645
|
-
*/
|
|
1646
1138
|
getDefaultOccupancySensingClusterServer(occupied = false) {
|
|
1647
1139
|
return ClusterServer(OccupancySensingCluster, {
|
|
1648
1140
|
occupancy: { occupied },
|
|
@@ -1651,19 +1143,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1651
1143
|
pirOccupiedToUnoccupiedDelay: 30,
|
|
1652
1144
|
}, {});
|
|
1653
1145
|
}
|
|
1654
|
-
/**
|
|
1655
|
-
* Creates a default occupancy sensing cluster server.
|
|
1656
|
-
*
|
|
1657
|
-
* @param occupied - A boolean indicating whether the occupancy is occupied or not. Default is false.
|
|
1658
|
-
*/
|
|
1659
1146
|
createDefaultOccupancySensingClusterServer(occupied = false) {
|
|
1660
1147
|
this.addClusterServer(this.getDefaultOccupancySensingClusterServer(occupied));
|
|
1661
1148
|
}
|
|
1662
|
-
/**
|
|
1663
|
-
* Get a default Illuminance Measurement Cluster Server.
|
|
1664
|
-
*
|
|
1665
|
-
* @param measuredValue - The measured value of illuminance.
|
|
1666
|
-
*/
|
|
1667
1149
|
getDefaultIlluminanceMeasurementClusterServer(measuredValue = 0) {
|
|
1668
1150
|
return ClusterServer(IlluminanceMeasurementCluster, {
|
|
1669
1151
|
measuredValue,
|
|
@@ -1672,19 +1154,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1672
1154
|
tolerance: 0,
|
|
1673
1155
|
}, {}, {});
|
|
1674
1156
|
}
|
|
1675
|
-
/**
|
|
1676
|
-
* Creates a default Illuminance Measurement Cluster Server.
|
|
1677
|
-
*
|
|
1678
|
-
* @param measuredValue - The measured value of illuminance.
|
|
1679
|
-
*/
|
|
1680
1157
|
createDefaultIlluminanceMeasurementClusterServer(measuredValue = 0) {
|
|
1681
1158
|
this.addClusterServer(this.getDefaultIlluminanceMeasurementClusterServer(measuredValue));
|
|
1682
1159
|
}
|
|
1683
|
-
/**
|
|
1684
|
-
* Get a default flow measurement cluster server.
|
|
1685
|
-
*
|
|
1686
|
-
* @param measuredValue - The measured value of the flow in 10 x m/h.
|
|
1687
|
-
*/
|
|
1688
1160
|
getDefaultFlowMeasurementClusterServer(measuredValue = 0) {
|
|
1689
1161
|
return ClusterServer(FlowMeasurementCluster, {
|
|
1690
1162
|
measuredValue,
|
|
@@ -1693,19 +1165,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1693
1165
|
tolerance: 0,
|
|
1694
1166
|
}, {}, {});
|
|
1695
1167
|
}
|
|
1696
|
-
/**
|
|
1697
|
-
* Creates a default flow measurement cluster server.
|
|
1698
|
-
*
|
|
1699
|
-
* @param measuredValue - The measured value of the of the flow in 10 x m/h.
|
|
1700
|
-
*/
|
|
1701
1168
|
createDefaultFlowMeasurementClusterServer(measuredValue = 0) {
|
|
1702
1169
|
this.addClusterServer(this.getDefaultFlowMeasurementClusterServer(measuredValue));
|
|
1703
1170
|
}
|
|
1704
|
-
/**
|
|
1705
|
-
* Get a default temperature measurement cluster server.
|
|
1706
|
-
*
|
|
1707
|
-
* @param measuredValue - The measured value of the temperature x 100.
|
|
1708
|
-
*/
|
|
1709
1171
|
getDefaultTemperatureMeasurementClusterServer(measuredValue = 0) {
|
|
1710
1172
|
return ClusterServer(TemperatureMeasurementCluster, {
|
|
1711
1173
|
measuredValue,
|
|
@@ -1714,19 +1176,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1714
1176
|
tolerance: 0,
|
|
1715
1177
|
}, {}, {});
|
|
1716
1178
|
}
|
|
1717
|
-
/**
|
|
1718
|
-
* Creates a default temperature measurement cluster server.
|
|
1719
|
-
*
|
|
1720
|
-
* @param measuredValue - The measured value of the temperature x 100.
|
|
1721
|
-
*/
|
|
1722
1179
|
createDefaultTemperatureMeasurementClusterServer(measuredValue = 0) {
|
|
1723
1180
|
this.addClusterServer(this.getDefaultTemperatureMeasurementClusterServer(measuredValue));
|
|
1724
1181
|
}
|
|
1725
|
-
/**
|
|
1726
|
-
* Get a default RelativeHumidityMeasurementCluster server.
|
|
1727
|
-
*
|
|
1728
|
-
* @param measuredValue - The measured value of the relative humidity x 100.
|
|
1729
|
-
*/
|
|
1730
1182
|
getDefaultRelativeHumidityMeasurementClusterServer(measuredValue = 0) {
|
|
1731
1183
|
return ClusterServer(RelativeHumidityMeasurementCluster, {
|
|
1732
1184
|
measuredValue,
|
|
@@ -1735,19 +1187,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1735
1187
|
tolerance: 0,
|
|
1736
1188
|
}, {}, {});
|
|
1737
1189
|
}
|
|
1738
|
-
/**
|
|
1739
|
-
* Creates a default RelativeHumidityMeasurementCluster server.
|
|
1740
|
-
*
|
|
1741
|
-
* @param measuredValue - The measured value of the relative humidity x 100.
|
|
1742
|
-
*/
|
|
1743
1190
|
createDefaultRelativeHumidityMeasurementClusterServer(measuredValue = 0) {
|
|
1744
1191
|
this.addClusterServer(this.getDefaultRelativeHumidityMeasurementClusterServer(measuredValue));
|
|
1745
1192
|
}
|
|
1746
|
-
/**
|
|
1747
|
-
* Get a default Pressure Measurement Cluster Server.
|
|
1748
|
-
*
|
|
1749
|
-
* @param measuredValue - The measured value for the pressure.
|
|
1750
|
-
*/
|
|
1751
1193
|
getDefaultPressureMeasurementClusterServer(measuredValue = 1000) {
|
|
1752
1194
|
return ClusterServer(PressureMeasurementCluster, {
|
|
1753
1195
|
measuredValue,
|
|
@@ -1756,39 +1198,19 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1756
1198
|
tolerance: 0,
|
|
1757
1199
|
}, {}, {});
|
|
1758
1200
|
}
|
|
1759
|
-
/**
|
|
1760
|
-
* Creates a default Pressure Measurement Cluster Server.
|
|
1761
|
-
*
|
|
1762
|
-
* @param measuredValue - The measured value for the pressure.
|
|
1763
|
-
*/
|
|
1764
1201
|
createDefaultPressureMeasurementClusterServer(measuredValue = 1000) {
|
|
1765
1202
|
this.addClusterServer(this.getDefaultPressureMeasurementClusterServer(measuredValue));
|
|
1766
1203
|
}
|
|
1767
|
-
/**
|
|
1768
|
-
* Get a default boolean state cluster server.
|
|
1769
|
-
*
|
|
1770
|
-
* @param contact - Optional boolean value indicating the contact state. Defaults to `true` if not provided.
|
|
1771
|
-
*/
|
|
1772
1204
|
getDefaultBooleanStateClusterServer(contact) {
|
|
1773
1205
|
return ClusterServer(BooleanStateCluster, {
|
|
1774
|
-
stateValue: contact ?? true,
|
|
1206
|
+
stateValue: contact ?? true,
|
|
1775
1207
|
}, {}, {
|
|
1776
1208
|
stateChange: true,
|
|
1777
1209
|
});
|
|
1778
1210
|
}
|
|
1779
|
-
/**
|
|
1780
|
-
* Creates a default boolean state configuration cluster server.
|
|
1781
|
-
*
|
|
1782
|
-
* @param contact - Optional boolean value indicating the contact state. Defaults to `true` if not provided.
|
|
1783
|
-
*/
|
|
1784
1211
|
createDefaultBooleanStateClusterServer(contact) {
|
|
1785
1212
|
this.addClusterServer(this.getDefaultBooleanStateClusterServer(contact));
|
|
1786
1213
|
}
|
|
1787
|
-
/**
|
|
1788
|
-
* Get a default boolean state configuration cluster server.
|
|
1789
|
-
*
|
|
1790
|
-
* @param contact - Optional boolean value indicating the sensor fault state. Defaults to `false` if not provided.
|
|
1791
|
-
*/
|
|
1792
1214
|
getDefaultBooleanStateConfigurationClusterServer(sensorFault = false) {
|
|
1793
1215
|
return ClusterServer(BooleanStateConfigurationCluster.with(BooleanStateConfiguration.Feature.Visual, BooleanStateConfiguration.Feature.Audible, BooleanStateConfiguration.Feature.SensitivityLevel), {
|
|
1794
1216
|
currentSensitivityLevel: 0,
|
|
@@ -1797,7 +1219,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1797
1219
|
alarmsActive: { visual: false, audible: false },
|
|
1798
1220
|
alarmsEnabled: { visual: false, audible: false },
|
|
1799
1221
|
alarmsSupported: { visual: true, audible: true },
|
|
1800
|
-
// alarmsSuppressed: { visual: false, audible: false },
|
|
1801
1222
|
sensorFault: { generalFault: sensorFault },
|
|
1802
1223
|
}, {
|
|
1803
1224
|
enableDisableAlarm: async ({ request, attributes }) => {
|
|
@@ -1809,23 +1230,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1809
1230
|
sensorFault: true,
|
|
1810
1231
|
});
|
|
1811
1232
|
}
|
|
1812
|
-
/**
|
|
1813
|
-
* Creates a default boolean state configuration cluster server.
|
|
1814
|
-
*
|
|
1815
|
-
* @param contact - Optional boolean value indicating the sensor fault state. Defaults to `false` if not provided.
|
|
1816
|
-
*/
|
|
1817
1233
|
createDefaultBooleanStateConfigurationClusterServer(sensorFault = false) {
|
|
1818
1234
|
this.addClusterServer(this.getDefaultBooleanStateConfigurationClusterServer(sensorFault));
|
|
1819
1235
|
}
|
|
1820
|
-
/**
|
|
1821
|
-
* Get a default power source replaceable battery cluster server.
|
|
1822
|
-
*
|
|
1823
|
-
* @param batPercentRemaining - The remaining battery percentage (default: 100).
|
|
1824
|
-
* @param batChargeLevel - The battery charge level (default: PowerSource.BatChargeLevel.Ok).
|
|
1825
|
-
* @param batVoltage - The battery voltage (default: 1500).
|
|
1826
|
-
* @param batReplacementDescription - The battery replacement description (default: 'Battery type').
|
|
1827
|
-
* @param batQuantity - The battery quantity (default: 1).
|
|
1828
|
-
*/
|
|
1829
1236
|
getDefaultPowerSourceReplaceableBatteryClusterServer(batPercentRemaining = 100, batChargeLevel = PowerSource.BatChargeLevel.Ok, batVoltage = 1500, batReplacementDescription = 'Battery type', batQuantity = 1) {
|
|
1830
1237
|
return ClusterServer(PowerSourceCluster.with(PowerSource.Feature.Battery, PowerSource.Feature.Replaceable), {
|
|
1831
1238
|
status: PowerSource.PowerSourceStatus.Active,
|
|
@@ -1842,25 +1249,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1842
1249
|
endpointList: [],
|
|
1843
1250
|
}, {}, {});
|
|
1844
1251
|
}
|
|
1845
|
-
/**
|
|
1846
|
-
* Creates a default power source replaceable battery cluster server.
|
|
1847
|
-
*
|
|
1848
|
-
* @param batPercentRemaining - The remaining battery percentage (default: 100).
|
|
1849
|
-
* @param batChargeLevel - The battery charge level (default: PowerSource.BatChargeLevel.Ok).
|
|
1850
|
-
* @param batVoltage - The battery voltage (default: 1500).
|
|
1851
|
-
* @param batReplacementDescription - The battery replacement description (default: 'Battery type').
|
|
1852
|
-
* @param batQuantity - The battery quantity (default: 1).
|
|
1853
|
-
*/
|
|
1854
1252
|
createDefaultPowerSourceReplaceableBatteryClusterServer(batPercentRemaining = 100, batChargeLevel = PowerSource.BatChargeLevel.Ok, batVoltage = 1500, batReplacementDescription = 'Battery type', batQuantity = 1) {
|
|
1855
1253
|
this.addClusterServer(this.getDefaultPowerSourceReplaceableBatteryClusterServer(batPercentRemaining, batChargeLevel, batVoltage, batReplacementDescription, batQuantity));
|
|
1856
1254
|
}
|
|
1857
|
-
/**
|
|
1858
|
-
* Get a default power source rechargeable battery cluster server.
|
|
1859
|
-
*
|
|
1860
|
-
* @param batPercentRemaining - The remaining battery percentage (default: 100).
|
|
1861
|
-
* @param batChargeLevel - The battery charge level (default: PowerSource.BatChargeLevel.Ok).
|
|
1862
|
-
* @param batVoltage - The battery voltage (default: 1500).
|
|
1863
|
-
*/
|
|
1864
1255
|
getDefaultPowerSourceRechargeableBatteryClusterServer(batPercentRemaining = 100, batChargeLevel = PowerSource.BatChargeLevel.Ok, batVoltage = 1500) {
|
|
1865
1256
|
return ClusterServer(PowerSourceCluster.with(PowerSource.Feature.Battery, PowerSource.Feature.Rechargeable), {
|
|
1866
1257
|
status: PowerSource.PowerSourceStatus.Active,
|
|
@@ -1878,21 +1269,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1878
1269
|
endpointList: [],
|
|
1879
1270
|
}, {}, {});
|
|
1880
1271
|
}
|
|
1881
|
-
/**
|
|
1882
|
-
* Creates a default power source rechargeable battery cluster server.
|
|
1883
|
-
*
|
|
1884
|
-
* @param batPercentRemaining - The remaining battery percentage (default: 100).
|
|
1885
|
-
* @param batChargeLevel - The battery charge level (default: PowerSource.BatChargeLevel.Ok).
|
|
1886
|
-
* @param batVoltage - The battery voltage (default: 1500).
|
|
1887
|
-
*/
|
|
1888
1272
|
createDefaultPowerSourceRechargeableBatteryClusterServer(batPercentRemaining = 100, batChargeLevel = PowerSource.BatChargeLevel.Ok, batVoltage = 1500) {
|
|
1889
1273
|
this.addClusterServer(this.getDefaultPowerSourceRechargeableBatteryClusterServer(batPercentRemaining, batChargeLevel, batVoltage));
|
|
1890
1274
|
}
|
|
1891
|
-
/**
|
|
1892
|
-
* Get a default power source wired cluster server.
|
|
1893
|
-
*
|
|
1894
|
-
* @param wiredCurrentType - The type of wired current (default: PowerSource.WiredCurrentType.Ac)
|
|
1895
|
-
*/
|
|
1896
1275
|
getDefaultPowerSourceWiredClusterServer(wiredCurrentType = PowerSource.WiredCurrentType.Ac) {
|
|
1897
1276
|
return ClusterServer(PowerSourceCluster.with(PowerSource.Feature.Wired), {
|
|
1898
1277
|
wiredCurrentType,
|
|
@@ -1902,45 +1281,22 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1902
1281
|
endpointList: [],
|
|
1903
1282
|
}, {}, {});
|
|
1904
1283
|
}
|
|
1905
|
-
/**
|
|
1906
|
-
* Creates a default power source wired cluster server.
|
|
1907
|
-
*
|
|
1908
|
-
* @param wiredCurrentType - The type of wired current (default: PowerSource.WiredCurrentType.Ac)
|
|
1909
|
-
*/
|
|
1910
1284
|
createDefaultPowerSourceWiredClusterServer(wiredCurrentType = PowerSource.WiredCurrentType.Ac) {
|
|
1911
1285
|
this.addClusterServer(this.getDefaultPowerSourceWiredClusterServer(wiredCurrentType));
|
|
1912
1286
|
}
|
|
1913
|
-
/**
|
|
1914
|
-
* @deprecated This function is deprecated by Matter 1.3 spec and will be removed in a future version.
|
|
1915
|
-
*/
|
|
1916
1287
|
createDefaultPowerSourceConfigurationClusterServer(endpointNumber) {
|
|
1917
1288
|
this.addClusterServer(ClusterServer(PowerSourceConfigurationCluster, {
|
|
1918
1289
|
sources: endpointNumber ? [EndpointNumber(endpointNumber)] : [],
|
|
1919
1290
|
}, {}, {}));
|
|
1920
1291
|
}
|
|
1921
|
-
/**
|
|
1922
|
-
* Get a default air quality cluster server.
|
|
1923
|
-
*
|
|
1924
|
-
* @param airQuality The air quality type. Defaults to `AirQuality.AirQualityType.Unknown`.
|
|
1925
|
-
*/
|
|
1926
1292
|
getDefaultAirQualityClusterServer(airQuality = AirQuality.AirQualityEnum.Unknown) {
|
|
1927
1293
|
return ClusterServer(AirQualityCluster.with(AirQuality.Feature.Fair, AirQuality.Feature.Moderate, AirQuality.Feature.VeryPoor, AirQuality.Feature.ExtremelyPoor), {
|
|
1928
1294
|
airQuality,
|
|
1929
1295
|
}, {}, {});
|
|
1930
1296
|
}
|
|
1931
|
-
/**
|
|
1932
|
-
* Creates a default air quality cluster server.
|
|
1933
|
-
*
|
|
1934
|
-
* @param airQuality The air quality type. Defaults to `AirQuality.AirQualityType.Unknown`.
|
|
1935
|
-
*/
|
|
1936
1297
|
createDefaultAirQualityClusterServer(airQuality = AirQuality.AirQualityEnum.Unknown) {
|
|
1937
1298
|
this.addClusterServer(this.getDefaultAirQualityClusterServer(airQuality));
|
|
1938
1299
|
}
|
|
1939
|
-
/**
|
|
1940
|
-
* Get a default TVOC measurement cluster server.
|
|
1941
|
-
*
|
|
1942
|
-
* @param measuredValue - The measured value for TVOC.
|
|
1943
|
-
*/
|
|
1944
1300
|
getDefaultTvocMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1945
1301
|
return ClusterServer(TotalVolatileOrganicCompoundsConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
1946
1302
|
measuredValue,
|
|
@@ -1951,28 +1307,14 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1951
1307
|
measurementMedium,
|
|
1952
1308
|
}, {}, {});
|
|
1953
1309
|
}
|
|
1954
|
-
/**
|
|
1955
|
-
* Creates a default TVOC measurement cluster server.
|
|
1956
|
-
*
|
|
1957
|
-
* @param measuredValue - The measured value for TVOC.
|
|
1958
|
-
*/
|
|
1959
1310
|
createDefaultTvocMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1960
1311
|
this.addClusterServer(this.getDefaultTvocMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
1961
1312
|
}
|
|
1962
|
-
/**
|
|
1963
|
-
* Get a default heating thermostat cluster server with the specified parameters.
|
|
1964
|
-
* @param {number} [localTemperature] - The local temperature value in degrees Celsius. Defaults to 23°.
|
|
1965
|
-
* @param {number} [occupiedHeatingSetpoint] - The occupied heating setpoint value in degrees Celsius. Defaults to 21°.
|
|
1966
|
-
* @param {number} [minHeatSetpointLimit] - The minimum heat setpoint limit value. Defaults to 0°.
|
|
1967
|
-
* @param {number} [maxHeatSetpointLimit] - The maximum heat setpoint limit value. Defaults to 50°.
|
|
1968
|
-
* @returns {ThermostatClusterServer} A default thermostat cluster server configured with the specified parameters.
|
|
1969
|
-
*/
|
|
1970
1313
|
getDefaultHeatingThermostatClusterServer(localTemperature = 23, occupiedHeatingSetpoint = 21, minHeatSetpointLimit = 0, maxHeatSetpointLimit = 50) {
|
|
1971
1314
|
return ClusterServer(ThermostatCluster.with(Thermostat.Feature.Heating), {
|
|
1972
1315
|
localTemperature: localTemperature * 100,
|
|
1973
1316
|
systemMode: Thermostat.SystemMode.Heat,
|
|
1974
1317
|
controlSequenceOfOperation: Thermostat.ControlSequenceOfOperation.HeatingOnly,
|
|
1975
|
-
// Thermostat.Feature.Heating
|
|
1976
1318
|
occupiedHeatingSetpoint: occupiedHeatingSetpoint * 100,
|
|
1977
1319
|
minHeatSetpointLimit: minHeatSetpointLimit * 100,
|
|
1978
1320
|
maxHeatSetpointLimit: maxHeatSetpointLimit * 100,
|
|
@@ -1985,31 +1327,14 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
1985
1327
|
},
|
|
1986
1328
|
}, {});
|
|
1987
1329
|
}
|
|
1988
|
-
/**
|
|
1989
|
-
* Creates and adds a default heating thermostat cluster server to the device.
|
|
1990
|
-
*
|
|
1991
|
-
* @param {number} [localTemperature] - The local temperature value in degrees Celsius. Defaults to 23°.
|
|
1992
|
-
* @param {number} [occupiedHeatingSetpoint] - The occupied heating setpoint value in degrees Celsius. Defaults to 21°.
|
|
1993
|
-
* @param {number} [minHeatSetpointLimit] - The minimum heat setpoint limit value. Defaults to 0°.
|
|
1994
|
-
* @param {number} [maxHeatSetpointLimit] - The maximum heat setpoint limit value. Defaults to 50°.
|
|
1995
|
-
*/
|
|
1996
1330
|
createDefaultHeatingThermostatClusterServer(localTemperature = 23, occupiedHeatingSetpoint = 25, minHeatSetpointLimit = 0, maxHeatSetpointLimit = 50) {
|
|
1997
1331
|
this.addClusterServer(this.getDefaultHeatingThermostatClusterServer(localTemperature, occupiedHeatingSetpoint, minHeatSetpointLimit, maxHeatSetpointLimit));
|
|
1998
1332
|
}
|
|
1999
|
-
/**
|
|
2000
|
-
* Get a default cooling thermostat cluster server with the specified parameters.
|
|
2001
|
-
* @param {number} [localTemperature] - The local temperature value in degrees Celsius. Defaults to 23°.
|
|
2002
|
-
* @param {number} [occupiedCoolingSetpoint] - The occupied cooling setpoint value in degrees Celsius. Defaults to 25°.
|
|
2003
|
-
* @param {number} [minCoolSetpointLimit] - The minimum cool setpoint limit value. Defaults to 0°.
|
|
2004
|
-
* @param {number} [maxCoolSetpointLimit] - The maximum cool setpoint limit value. Defaults to 50°.
|
|
2005
|
-
* @returns {ThermostatClusterServer} A default thermostat cluster server configured with the specified parameters.
|
|
2006
|
-
*/
|
|
2007
1333
|
getDefaultCoolingThermostatClusterServer(localTemperature = 23, occupiedCoolingSetpoint = 25, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50) {
|
|
2008
1334
|
return ClusterServer(ThermostatCluster.with(Thermostat.Feature.Cooling), {
|
|
2009
1335
|
localTemperature: localTemperature * 100,
|
|
2010
1336
|
systemMode: Thermostat.SystemMode.Cool,
|
|
2011
1337
|
controlSequenceOfOperation: Thermostat.ControlSequenceOfOperation.CoolingOnly,
|
|
2012
|
-
// Thermostat.Feature.Cooling
|
|
2013
1338
|
occupiedCoolingSetpoint: occupiedCoolingSetpoint * 100,
|
|
2014
1339
|
minCoolSetpointLimit: minCoolSetpointLimit * 100,
|
|
2015
1340
|
maxCoolSetpointLimit: maxCoolSetpointLimit * 100,
|
|
@@ -2022,48 +1347,24 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2022
1347
|
},
|
|
2023
1348
|
}, {});
|
|
2024
1349
|
}
|
|
2025
|
-
/**
|
|
2026
|
-
* Creates and adds a default cooling thermostat cluster server to the device.
|
|
2027
|
-
*
|
|
2028
|
-
* @param {number} [localTemperature] - The local temperature value in degrees Celsius. Defaults to 23°.
|
|
2029
|
-
* @param {number} [occupiedCoolingSetpoint] - The occupied cooling setpoint value in degrees Celsius. Defaults to 25°.
|
|
2030
|
-
* @param {number} [minCoolSetpointLimit] - The minimum cool setpoint limit value. Defaults to 0°.
|
|
2031
|
-
* @param {number} [maxCoolSetpointLimit] - The maximum cool setpoint limit value. Defaults to 50°.
|
|
2032
|
-
*/
|
|
2033
1350
|
createDefaultCoolingThermostatClusterServer(localTemperature = 23, occupiedCoolingSetpoint = 25, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50) {
|
|
2034
1351
|
this.addClusterServer(this.getDefaultCoolingThermostatClusterServer(localTemperature, occupiedCoolingSetpoint, minCoolSetpointLimit, maxCoolSetpointLimit));
|
|
2035
1352
|
}
|
|
2036
|
-
/**
|
|
2037
|
-
* Get a default thermostat cluster server with the specified parameters.
|
|
2038
|
-
*
|
|
2039
|
-
* @param {number} [localTemperature=23] - The local temperature value in degrees Celsius. Defaults to 23°.
|
|
2040
|
-
* @param {number} [occupiedHeatingSetpoint=21] - The occupied heating setpoint value in degrees Celsius. Defaults to 21°.
|
|
2041
|
-
* @param {number} [occupiedCoolingSetpoint=25] - The occupied cooling setpoint value in degrees Celsius. Defaults to 25°.
|
|
2042
|
-
* @param {number} [minSetpointDeadBand=1] - The minimum setpoint dead band value. Defaults to 1°.
|
|
2043
|
-
* @param {number} [minHeatSetpointLimit=0] - The minimum heat setpoint limit value. Defaults to 0°.
|
|
2044
|
-
* @param {number} [maxHeatSetpointLimit=50] - The maximum heat setpoint limit value. Defaults to 50°.
|
|
2045
|
-
* @param {number} [minCoolSetpointLimit=0] - The minimum cool setpoint limit value. Defaults to 0°.
|
|
2046
|
-
* @param {number} [maxCoolSetpointLimit=50] - The maximum cool setpoint limit value. Defaults to 50°.
|
|
2047
|
-
* @returns {ThermostatClusterServer} A default thermostat cluster server configured with the specified parameters.
|
|
2048
|
-
*/
|
|
2049
1353
|
getDefaultThermostatClusterServer(localTemperature = 23, occupiedHeatingSetpoint = 21, occupiedCoolingSetpoint = 25, minSetpointDeadBand = 1, minHeatSetpointLimit = 0, maxHeatSetpointLimit = 50, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50) {
|
|
2050
1354
|
return ClusterServer(ThermostatCluster.with(Thermostat.Feature.Heating, Thermostat.Feature.Cooling, Thermostat.Feature.AutoMode), {
|
|
2051
1355
|
localTemperature: localTemperature * 100,
|
|
2052
1356
|
systemMode: Thermostat.SystemMode.Auto,
|
|
2053
1357
|
controlSequenceOfOperation: Thermostat.ControlSequenceOfOperation.CoolingAndHeating,
|
|
2054
|
-
// Thermostat.Feature.Heating
|
|
2055
1358
|
occupiedHeatingSetpoint: occupiedHeatingSetpoint * 100,
|
|
2056
1359
|
minHeatSetpointLimit: minHeatSetpointLimit * 100,
|
|
2057
1360
|
maxHeatSetpointLimit: maxHeatSetpointLimit * 100,
|
|
2058
1361
|
absMinHeatSetpointLimit: minHeatSetpointLimit * 100,
|
|
2059
1362
|
absMaxHeatSetpointLimit: maxHeatSetpointLimit * 100,
|
|
2060
|
-
// Thermostat.Feature.Cooling
|
|
2061
1363
|
occupiedCoolingSetpoint: occupiedCoolingSetpoint * 100,
|
|
2062
1364
|
minCoolSetpointLimit: minCoolSetpointLimit * 100,
|
|
2063
1365
|
maxCoolSetpointLimit: maxCoolSetpointLimit * 100,
|
|
2064
1366
|
absMinCoolSetpointLimit: minCoolSetpointLimit * 100,
|
|
2065
1367
|
absMaxCoolSetpointLimit: maxCoolSetpointLimit * 100,
|
|
2066
|
-
// Thermostat.Feature.AutoMode
|
|
2067
1368
|
minSetpointDeadBand: minSetpointDeadBand * 100,
|
|
2068
1369
|
thermostatRunningMode: Thermostat.ThermostatRunningMode.Off,
|
|
2069
1370
|
}, {
|
|
@@ -2073,24 +1374,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2073
1374
|
},
|
|
2074
1375
|
}, {});
|
|
2075
1376
|
}
|
|
2076
|
-
/**
|
|
2077
|
-
* Creates and adds a default thermostat cluster server to the device.
|
|
2078
|
-
*
|
|
2079
|
-
* @param {number} [localTemperature=23] - The local temperature value in degrees Celsius. Defaults to 23°.
|
|
2080
|
-
* @param {number} [occupiedHeatingSetpoint=21] - The occupied heating setpoint value in degrees Celsius. Defaults to 21°.
|
|
2081
|
-
* @param {number} [occupiedCoolingSetpoint=25] - The occupied cooling setpoint value in degrees Celsius. Defaults to 25°.
|
|
2082
|
-
* @param {number} [minSetpointDeadBand=1] - The minimum setpoint dead band value. Defaults to 1°.
|
|
2083
|
-
* @param {number} [minHeatSetpointLimit=0] - The minimum heat setpoint limit value. Defaults to 0°.
|
|
2084
|
-
* @param {number} [maxHeatSetpointLimit=50] - The maximum heat setpoint limit value. Defaults to 50°.
|
|
2085
|
-
* @param {number} [minCoolSetpointLimit=0] - The minimum cool setpoint limit value. Defaults to 0°.
|
|
2086
|
-
* @param {number} [maxCoolSetpointLimit=50] - The maximum cool setpoint limit value. Defaults to 50°.
|
|
2087
|
-
*/
|
|
2088
1377
|
createDefaultThermostatClusterServer(localTemperature = 23, occupiedHeatingSetpoint = 21, occupiedCoolingSetpoint = 25, minSetpointDeadBand = 1, minHeatSetpointLimit = 0, maxHeatSetpointLimit = 50, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50) {
|
|
2089
1378
|
this.addClusterServer(this.getDefaultThermostatClusterServer(localTemperature, occupiedHeatingSetpoint, occupiedCoolingSetpoint, minSetpointDeadBand, minHeatSetpointLimit, maxHeatSetpointLimit, minCoolSetpointLimit, maxCoolSetpointLimit));
|
|
2090
1379
|
}
|
|
2091
|
-
/**
|
|
2092
|
-
* Get a default dummy time sync cluster server. Only needed to create a thermostat.
|
|
2093
|
-
*/
|
|
2094
1380
|
getDefaultTimeSyncClusterServer() {
|
|
2095
1381
|
return ClusterServer(TimeSynchronizationCluster.with(TimeSynchronization.Feature.TimeZone), {
|
|
2096
1382
|
utcTime: null,
|
|
@@ -2122,19 +1408,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2122
1408
|
timeFailure: true,
|
|
2123
1409
|
});
|
|
2124
1410
|
}
|
|
2125
|
-
/**
|
|
2126
|
-
* Creates a default dummy time sync cluster server. Only needed to create a thermostat.
|
|
2127
|
-
*/
|
|
2128
1411
|
createDefaultTimeSyncClusterServer() {
|
|
2129
1412
|
this.addClusterServer(this.getDefaultTimeSyncClusterServer());
|
|
2130
1413
|
}
|
|
2131
|
-
/**
|
|
2132
|
-
* Returns the default SmokeCOAlarm Cluster Server.
|
|
2133
|
-
*
|
|
2134
|
-
* @param smokeState - The state of the smoke alarm. Defaults to SmokeCoAlarm.AlarmState.Normal.
|
|
2135
|
-
* @param coState - The state of the CO alarm. Defaults to SmokeCoAlarm.AlarmState.Normal.
|
|
2136
|
-
* @returns The default SmokeCOAlarmClusterServer.
|
|
2137
|
-
*/
|
|
2138
1414
|
getDefaultSmokeCOAlarmClusterServer(smokeState = SmokeCoAlarm.AlarmState.Normal, coState = SmokeCoAlarm.AlarmState.Normal) {
|
|
2139
1415
|
return ClusterServer(SmokeCoAlarmCluster.with(SmokeCoAlarm.Feature.SmokeAlarm, SmokeCoAlarm.Feature.CoAlarm), {
|
|
2140
1416
|
smokeState,
|
|
@@ -2166,24 +1442,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2166
1442
|
allClear: true,
|
|
2167
1443
|
});
|
|
2168
1444
|
}
|
|
2169
|
-
/**
|
|
2170
|
-
* Create the default SmokeCOAlarm Cluster Server.
|
|
2171
|
-
*
|
|
2172
|
-
* @param smokeState - The state of the smoke alarm. Defaults to SmokeCoAlarm.AlarmState.Normal.
|
|
2173
|
-
* @param coState - The state of the CO alarm. Defaults to SmokeCoAlarm.AlarmState.Normal.
|
|
2174
|
-
* @returns The default SmokeCOAlarmClusterServer.
|
|
2175
|
-
*/
|
|
2176
1445
|
createDefaultSmokeCOAlarmClusterServer(smokeState = SmokeCoAlarm.AlarmState.Normal, coState = SmokeCoAlarm.AlarmState.Normal) {
|
|
2177
1446
|
this.addClusterServer(this.getDefaultSmokeCOAlarmClusterServer(smokeState, coState));
|
|
2178
1447
|
}
|
|
2179
|
-
/**
|
|
2180
|
-
* Returns the default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2181
|
-
*
|
|
2182
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2183
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2184
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2185
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2186
|
-
*/
|
|
2187
1448
|
getDefaultCarbonMonoxideConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2188
1449
|
return ClusterServer(CarbonMonoxideConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2189
1450
|
measuredValue,
|
|
@@ -2194,24 +1455,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2194
1455
|
measurementMedium,
|
|
2195
1456
|
}, {}, {});
|
|
2196
1457
|
}
|
|
2197
|
-
/**
|
|
2198
|
-
* Create the default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2199
|
-
*
|
|
2200
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2201
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2202
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2203
|
-
*/
|
|
2204
1458
|
createDefaultCarbonMonoxideConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2205
1459
|
this.addClusterServer(this.getDefaultCarbonMonoxideConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2206
1460
|
}
|
|
2207
|
-
/**
|
|
2208
|
-
* Returns the default Carbon Dioxide Concentration Measurement Cluster Server.
|
|
2209
|
-
*
|
|
2210
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2211
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2212
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2213
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2214
|
-
*/
|
|
2215
1461
|
getDefaultCarbonDioxideConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2216
1462
|
return ClusterServer(CarbonDioxideConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2217
1463
|
measuredValue,
|
|
@@ -2222,24 +1468,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2222
1468
|
measurementMedium,
|
|
2223
1469
|
}, {}, {});
|
|
2224
1470
|
}
|
|
2225
|
-
/**
|
|
2226
|
-
* Create the default Carbon Dioxide Concentration Measurement Cluster Server.
|
|
2227
|
-
*
|
|
2228
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2229
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2230
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2231
|
-
*/
|
|
2232
1471
|
createDefaultCarbonDioxideConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2233
1472
|
this.addClusterServer(this.getDefaultCarbonDioxideConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2234
1473
|
}
|
|
2235
|
-
/**
|
|
2236
|
-
* Returns the default Formaldehyde Concentration Measurement Cluster Server.
|
|
2237
|
-
*
|
|
2238
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2239
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2240
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2241
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2242
|
-
*/
|
|
2243
1474
|
getDefaultFormaldehydeConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2244
1475
|
return ClusterServer(FormaldehydeConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2245
1476
|
measuredValue,
|
|
@@ -2250,24 +1481,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2250
1481
|
measurementMedium,
|
|
2251
1482
|
}, {}, {});
|
|
2252
1483
|
}
|
|
2253
|
-
/**
|
|
2254
|
-
* Create the default Formaldehyde Concentration Measurement Cluster Server.
|
|
2255
|
-
*
|
|
2256
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2257
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2258
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2259
|
-
*/
|
|
2260
1484
|
createDefaultFormaldehydeConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2261
1485
|
this.addClusterServer(this.getDefaultFormaldehydeConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2262
1486
|
}
|
|
2263
|
-
/**
|
|
2264
|
-
* Returns the default Pm1 Concentration Measurement Cluster Server.
|
|
2265
|
-
*
|
|
2266
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2267
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2268
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2269
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2270
|
-
*/
|
|
2271
1487
|
getDefaultPm1ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2272
1488
|
return ClusterServer(Pm1ConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2273
1489
|
measuredValue,
|
|
@@ -2278,24 +1494,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2278
1494
|
measurementMedium,
|
|
2279
1495
|
}, {}, {});
|
|
2280
1496
|
}
|
|
2281
|
-
|
|
2282
|
-
* Create the default Pm1 Concentration Measurement Cluster Server.
|
|
2283
|
-
*
|
|
2284
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2285
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2286
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2287
|
-
*/
|
|
2288
|
-
createDefaulPm1ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1497
|
+
createDefaultPm1ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2289
1498
|
this.addClusterServer(this.getDefaultPm1ConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2290
1499
|
}
|
|
2291
|
-
/**
|
|
2292
|
-
* Returns the default Pm25 Concentration Measurement Cluster Server.
|
|
2293
|
-
*
|
|
2294
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2295
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2296
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2297
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2298
|
-
*/
|
|
2299
1500
|
getDefaultPm25ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2300
1501
|
return ClusterServer(Pm25ConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2301
1502
|
measuredValue,
|
|
@@ -2306,24 +1507,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2306
1507
|
measurementMedium,
|
|
2307
1508
|
}, {}, {});
|
|
2308
1509
|
}
|
|
2309
|
-
|
|
2310
|
-
* Create the default Pm25 Concentration Measurement Cluster Server.
|
|
2311
|
-
*
|
|
2312
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2313
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2314
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2315
|
-
*/
|
|
2316
|
-
createDefaulPm25ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1510
|
+
createDefaultPm25ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2317
1511
|
this.addClusterServer(this.getDefaultPm25ConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2318
1512
|
}
|
|
2319
|
-
/**
|
|
2320
|
-
* Returns the default Pm10 Concentration Measurement Cluster Server.
|
|
2321
|
-
*
|
|
2322
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2323
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2324
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2325
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2326
|
-
*/
|
|
2327
1513
|
getDefaultPm10ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2328
1514
|
return ClusterServer(Pm10ConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2329
1515
|
measuredValue,
|
|
@@ -2334,24 +1520,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2334
1520
|
measurementMedium,
|
|
2335
1521
|
}, {}, {});
|
|
2336
1522
|
}
|
|
2337
|
-
|
|
2338
|
-
* Create the default Pm10 Concentration Measurement Cluster Server.
|
|
2339
|
-
*
|
|
2340
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2341
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2342
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2343
|
-
*/
|
|
2344
|
-
createDefaulPm10ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1523
|
+
createDefaultPm10ConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2345
1524
|
this.addClusterServer(this.getDefaultPm10ConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2346
1525
|
}
|
|
2347
|
-
/**
|
|
2348
|
-
* Returns the default Ozone Concentration Measurement Cluster Server.
|
|
2349
|
-
*
|
|
2350
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2351
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2352
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2353
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2354
|
-
*/
|
|
2355
1526
|
getDefaultOzoneConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2356
1527
|
return ClusterServer(OzoneConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2357
1528
|
measuredValue,
|
|
@@ -2362,24 +1533,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2362
1533
|
measurementMedium,
|
|
2363
1534
|
}, {}, {});
|
|
2364
1535
|
}
|
|
2365
|
-
|
|
2366
|
-
* Create the default Ozone Concentration Measurement Cluster Server.
|
|
2367
|
-
*
|
|
2368
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2369
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2370
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2371
|
-
*/
|
|
2372
|
-
createDefaulOzoneConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1536
|
+
createDefaultOzoneConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2373
1537
|
this.addClusterServer(this.getDefaultOzoneConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2374
1538
|
}
|
|
2375
|
-
/**
|
|
2376
|
-
* Returns the default Radon Concentration Measurement Cluster Server.
|
|
2377
|
-
*
|
|
2378
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2379
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2380
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2381
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2382
|
-
*/
|
|
2383
1539
|
getDefaultRadonConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2384
1540
|
return ClusterServer(RadonConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2385
1541
|
measuredValue,
|
|
@@ -2390,24 +1546,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2390
1546
|
measurementMedium,
|
|
2391
1547
|
}, {}, {});
|
|
2392
1548
|
}
|
|
2393
|
-
|
|
2394
|
-
* Create the default Radon Concentration Measurement Cluster Server.
|
|
2395
|
-
*
|
|
2396
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2397
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2398
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2399
|
-
*/
|
|
2400
|
-
createDefaulRadonConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1549
|
+
createDefaultRadonConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2401
1550
|
this.addClusterServer(this.getDefaultRadonConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2402
1551
|
}
|
|
2403
|
-
/**
|
|
2404
|
-
* Returns the default Nitrogen Dioxide Concentration Measurement Cluster Server.
|
|
2405
|
-
*
|
|
2406
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2407
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2408
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2409
|
-
* @returns {ClusterServer} - The default Carbon Monoxide Concentration Measurement Cluster Server.
|
|
2410
|
-
*/
|
|
2411
1552
|
getDefaultNitrogenDioxideConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2412
1553
|
return ClusterServer(NitrogenDioxideConcentrationMeasurementCluster.with('NumericMeasurement'), {
|
|
2413
1554
|
measuredValue,
|
|
@@ -2418,22 +1559,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2418
1559
|
measurementMedium,
|
|
2419
1560
|
}, {}, {});
|
|
2420
1561
|
}
|
|
2421
|
-
|
|
2422
|
-
* Create the default Nitrogen Dioxide Concentration Measurement Cluster Server.
|
|
2423
|
-
*
|
|
2424
|
-
* @param {number} measuredValue - The measured value of the concentration.
|
|
2425
|
-
* @param {ConcentrationMeasurement.MeasurementUnit} measurementUnit - The unit of measurement.
|
|
2426
|
-
* @param {ConcentrationMeasurement.MeasurementMedium} measurementMedium - The medium of measurement.
|
|
2427
|
-
*/
|
|
2428
|
-
createDefaulNitrogenDioxideConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1562
|
+
createDefaultNitrogenDioxideConcentrationMeasurementClusterServer(measuredValue = 0, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
2429
1563
|
this.addClusterServer(this.getDefaultNitrogenDioxideConcentrationMeasurementClusterServer(measuredValue, measurementUnit, measurementMedium));
|
|
2430
1564
|
}
|
|
2431
|
-
/**
|
|
2432
|
-
* Returns the default fan control cluster server rev 2.
|
|
2433
|
-
*
|
|
2434
|
-
* @param fanMode The fan mode to set. Defaults to `FanControl.FanMode.Off`.
|
|
2435
|
-
* @returns The default fan control cluster server.
|
|
2436
|
-
*/
|
|
2437
1565
|
getDefaultFanControlClusterServer(fanMode = FanControl.FanMode.Off) {
|
|
2438
1566
|
return ClusterServer(FanControlCluster.with(FanControl.Feature.MultiSpeed, FanControl.Feature.Auto, FanControl.Feature.Step), {
|
|
2439
1567
|
fanMode,
|
|
@@ -2450,16 +1578,9 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2450
1578
|
},
|
|
2451
1579
|
}, {});
|
|
2452
1580
|
}
|
|
2453
|
-
/**
|
|
2454
|
-
* Create the default fan control cluster server rev 2.
|
|
2455
|
-
*
|
|
2456
|
-
* @param fanMode The fan mode to set. Defaults to `FanControl.FanMode.Off`.
|
|
2457
|
-
* @returns The default fan control cluster server.
|
|
2458
|
-
*/
|
|
2459
1581
|
createDefaultFanControlClusterServer(fanMode = FanControl.FanMode.Off) {
|
|
2460
1582
|
this.addClusterServer(this.getDefaultFanControlClusterServer(fanMode));
|
|
2461
1583
|
}
|
|
2462
|
-
// NOTE Support of Device Energy Management Cluster is provisional.
|
|
2463
1584
|
getDefaultDeviceEnergyManagementClusterServer() {
|
|
2464
1585
|
return ClusterServer(DeviceEnergyManagementCluster.with(DeviceEnergyManagement.Feature.Pausable, DeviceEnergyManagement.Feature.PowerForecastReporting, DeviceEnergyManagement.Feature.StateForecastReporting), {
|
|
2465
1586
|
esaType: DeviceEnergyManagement.EsaType.Other,
|
|
@@ -2483,7 +1604,6 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2483
1604
|
resumed: true,
|
|
2484
1605
|
});
|
|
2485
1606
|
}
|
|
2486
|
-
// NOTE Support of Device Energy Management Mode Cluster is provisional.
|
|
2487
1607
|
getDefaultDeviceEnergyManagementModeClusterServer() {
|
|
2488
1608
|
return ClusterServer(DeviceEnergyManagementModeCluster, {
|
|
2489
1609
|
supportedModes: [
|
|
@@ -2500,4 +1620,3 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
|
|
|
2500
1620
|
}, {});
|
|
2501
1621
|
}
|
|
2502
1622
|
}
|
|
2503
|
-
//# sourceMappingURL=matterbridgeDevice.js.map
|