matterbridge 1.6.6 → 1.6.7-dev.1

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