matterbridge 1.2.16 → 1.2.17

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 (36) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/AirQualityCluster.d.ts.map +1 -1
  3. package/dist/AirQualityCluster.js.map +1 -1
  4. package/dist/BridgedDeviceBasicInformationCluster.d.ts +1 -1
  5. package/dist/BridgedDeviceBasicInformationCluster.d.ts.map +1 -1
  6. package/dist/BridgedDeviceBasicInformationCluster.js +1 -1
  7. package/dist/BridgedDeviceBasicInformationCluster.js.map +1 -1
  8. package/dist/TvocCluster.d.ts.map +1 -1
  9. package/dist/TvocCluster.js.map +1 -1
  10. package/dist/cli.js +8 -5
  11. package/dist/cli.js.map +1 -1
  12. package/dist/defaultConfigSchema.d.ts +2 -0
  13. package/dist/defaultConfigSchema.d.ts.map +1 -1
  14. package/dist/defaultConfigSchema.js +74 -0
  15. package/dist/defaultConfigSchema.js.map +1 -1
  16. package/dist/matterbridge.d.ts +3 -6
  17. package/dist/matterbridge.d.ts.map +1 -1
  18. package/dist/matterbridge.js +85 -148
  19. package/dist/matterbridge.js.map +1 -1
  20. package/dist/matterbridgeController.js +1 -1
  21. package/dist/matterbridgeController.js.map +1 -1
  22. package/dist/matterbridgeDevice.d.ts +35 -45
  23. package/dist/matterbridgeDevice.d.ts.map +1 -1
  24. package/dist/matterbridgeDevice.js +102 -66
  25. package/dist/matterbridgeDevice.js.map +1 -1
  26. package/dist/utils.d.ts +19 -1
  27. package/dist/utils.d.ts.map +1 -1
  28. package/dist/utils.js +104 -35
  29. package/dist/utils.js.map +1 -1
  30. package/frontend/build/asset-manifest.json +3 -3
  31. package/frontend/build/index.html +1 -1
  32. package/frontend/build/static/js/{main.b08bfdf4.js → main.eab44937.js} +3 -3
  33. package/frontend/build/static/js/main.eab44937.js.map +1 -0
  34. package/package.json +3 -4
  35. package/frontend/build/static/js/main.b08bfdf4.js.map +0 -1
  36. /package/frontend/build/static/js/{main.b08bfdf4.js.LICENSE.txt → main.eab44937.js.LICENSE.txt} +0 -0
@@ -20,7 +20,7 @@
20
20
  * See the License for the specific language governing permissions and
21
21
  * limitations under the License. *
22
22
  */
23
- import { ClusterServerHandlers, ColorControl, DoorLock, Identify, LevelControl, OccupancySensing, OnOff, PowerSource, Thermostat, TimeSync, WindowCovering } from '@project-chip/matter-node.js/cluster';
23
+ import { ClusterServerHandlers, ColorControl, DoorLock, Identify, LevelControl, ModeSelect, OccupancySensing, OnOff, PowerSource, Thermostat, TimeSync, WindowCovering } from '@project-chip/matter-node.js/cluster';
24
24
  import { ClusterId, EndpointNumber, VendorId } from '@project-chip/matter-node.js/datatype';
25
25
  import { Device, DeviceTypeDefinition, Endpoint, EndpointOptions } from '@project-chip/matter-node.js/device';
26
26
  import { AtLeastOne } from '@project-chip/matter-node.js/util';
@@ -29,7 +29,7 @@ import { AirQuality } from './AirQualityCluster.js';
29
29
  import { AnsiLogger } from 'node-ansi-logger';
30
30
  import { TvocMeasurement } from './TvocCluster.js';
31
31
  type MakeMandatory<T> = Exclude<T, undefined>;
32
- type MatterbridgeDeviceCommands = {
32
+ interface MatterbridgeDeviceCommands {
33
33
  identify: MakeMandatory<ClusterServerHandlers<typeof Identify.Complete>['identify']>;
34
34
  on: MakeMandatory<ClusterServerHandlers<typeof OnOff.Complete>['on']>;
35
35
  off: MakeMandatory<ClusterServerHandlers<typeof OnOff.Complete>['off']>;
@@ -52,7 +52,7 @@ type MatterbridgeDeviceCommands = {
52
52
  lockDoor: MakeMandatory<ClusterServerHandlers<typeof DoorLock.Complete>['lockDoor']>;
53
53
  unlockDoor: MakeMandatory<ClusterServerHandlers<typeof DoorLock.Complete>['unlockDoor']>;
54
54
  setpointRaiseLower: MakeMandatory<ClusterServerHandlers<typeof Thermostat.Complete>['setpointRaiseLower']>;
55
- };
55
+ }
56
56
  export declare const onOffSwitch: DeviceTypeDefinition;
57
57
  export declare const dimmableSwitch: DeviceTypeDefinition;
58
58
  export declare const colorTemperatureSwitch: DeviceTypeDefinition;
@@ -114,6 +114,14 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
114
114
  * @returns {Endpoint} - The child endpoint that was added.
115
115
  */
116
116
  addChildDeviceTypeWithClusterServer(endpointName: string, deviceTypes: AtLeastOne<DeviceTypeDefinition>, includeServerList: ClusterId[]): Endpoint;
117
+ /**
118
+ * Adds cluster servers to the specified endpoint based on the provided server list.
119
+ *
120
+ * @param {Endpoint} endpoint - The endpoint to add cluster servers to.
121
+ * @param {ClusterId[]} includeServerList - The list of cluster IDs to include.
122
+ * @returns void
123
+ */
124
+ addClusterServerFromList(endpoint: Endpoint, includeServerList: ClusterId[]): void;
117
125
  /**
118
126
  * Retrieves a child endpoint by its name.
119
127
  *
@@ -141,7 +149,7 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
141
149
  * @param pluginName - The name of the plugin.
142
150
  * @returns The serialized Matterbridge device object.
143
151
  */
144
- serialize(pluginName: string): SerializedMatterbridgeDevice;
152
+ serialize(pluginName: string): SerializedMatterbridgeDevice | undefined;
145
153
  /**
146
154
  * Returns a default static EveHistoryClusterServer object with the specified voltage, current, power, and consumption values.
147
155
  * This shows up in HA as a static sensor!
@@ -536,12 +544,7 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
536
544
  readonly acVoltageDivisor: import("@project-chip/matter-node.js/cluster").OptionalWritableAttribute<number, any>;
537
545
  readonly acCurrentMultiplier: import("@project-chip/matter-node.js/cluster").OptionalWritableAttribute<number, any>;
538
546
  readonly acCurrentDivisor: import("@project-chip/matter-node.js/cluster").OptionalWritableAttribute<number, any>;
539
- readonly acPowerMultiplier: import("@project-chip/matter-node.js/cluster").OptionalWritableAttribute<number, any>; /**
540
- * Represents a Matterbridge device.
541
- * @constructor
542
- * @param {DeviceTypeDefinition} definition - The definition of the device.
543
- * @param {EndpointOptions} [options={}] - The options for the device.
544
- */
547
+ readonly acPowerMultiplier: import("@project-chip/matter-node.js/cluster").OptionalWritableAttribute<number, any>;
545
548
  readonly acPowerDivisor: import("@project-chip/matter-node.js/cluster").OptionalWritableAttribute<number, any>;
546
549
  readonly dcOverloadAlarmsMask: import("@project-chip/matter-node.js/cluster").OptionalWritableAttribute<number, any>;
547
550
  readonly dcVoltageOverload: import("@project-chip/matter-node.js/cluster").OptionalWritableAttribute<number, any>;
@@ -963,30 +966,30 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
963
966
  /**
964
967
  * Sets the window covering target position as the current position and stops the movement.
965
968
  */
966
- setWindowCoveringTargetAsCurrentAndStopped(): void;
969
+ setWindowCoveringTargetAsCurrentAndStopped(endpoint?: Endpoint): void;
967
970
  /**
968
971
  * Sets the current and target status of a window covering.
969
972
  * @param current - The current position of the window covering.
970
973
  * @param target - The target position of the window covering.
971
974
  * @param status - The movement status of the window covering.
972
975
  */
973
- setWindowCoveringCurrentTargetStatus(current: number, target: number, status: WindowCovering.MovementStatus): void;
976
+ setWindowCoveringCurrentTargetStatus(current: number, target: number, status: WindowCovering.MovementStatus, endpoint?: Endpoint): void;
974
977
  /**
975
978
  * Sets the status of the window covering.
976
979
  * @param {WindowCovering.MovementStatus} status - The movement status to set.
977
980
  */
978
- setWindowCoveringStatus(status: WindowCovering.MovementStatus): void;
981
+ setWindowCoveringStatus(status: WindowCovering.MovementStatus, endpoint?: Endpoint): void;
979
982
  /**
980
983
  * Retrieves the status of the window covering.
981
984
  * @returns The global operational status of the window covering.
982
985
  */
983
- getWindowCoveringStatus(): WindowCovering.MovementStatus | undefined;
986
+ getWindowCoveringStatus(endpoint?: Endpoint): WindowCovering.MovementStatus | undefined;
984
987
  /**
985
988
  * Sets the target and current position of the window covering.
986
989
  *
987
990
  * @param position - The position to set, specified as a number.
988
991
  */
989
- setWindowCoveringTargetAndCurrentPosition(position: number): void;
992
+ setWindowCoveringTargetAndCurrentPosition(position: number, endpoint?: Endpoint): void;
990
993
  /**
991
994
  * Get a default door lock cluster server.
992
995
  *
@@ -1156,6 +1159,23 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
1156
1159
  * This method adds a cluster server with default switch features and configurations.
1157
1160
  */
1158
1161
  createDefaultSwitchClusterServer(): void;
1162
+ getDefaultModeSelectClusterServer(description: string, supportedModes: ModeSelect.ModeOptionStruct[], currentMode?: number, startUpMode?: number): import("@project-chip/matter-node.js/cluster").ClusterServerObj<import("@project-chip/matter-node.js/util").Merge<{
1163
+ readonly description: import("@project-chip/matter-node.js/cluster").FixedAttribute<string, any>;
1164
+ readonly standardNamespace: import("@project-chip/matter-node.js/cluster").FixedAttribute<number | null, any>;
1165
+ readonly supportedModes: import("@project-chip/matter-node.js/cluster").FixedAttribute<import("@project-chip/matter.js/tlv").TypeFromFields<{
1166
+ label: import("@project-chip/matter.js/tlv").FieldType<string>;
1167
+ mode: import("@project-chip/matter.js/tlv").FieldType<number>;
1168
+ semanticTags: import("@project-chip/matter.js/tlv").FieldType<import("@project-chip/matter.js/tlv").TypeFromFields<{
1169
+ mfgCode: import("@project-chip/matter.js/tlv").FieldType<VendorId | null>;
1170
+ value: import("@project-chip/matter.js/tlv").FieldType<number>;
1171
+ }>[]>;
1172
+ }>[], any>;
1173
+ readonly currentMode: import("@project-chip/matter-node.js/cluster").Attribute<number, any>;
1174
+ readonly startUpMode: import("@project-chip/matter-node.js/cluster").OptionalWritableAttribute<number | null, any>;
1175
+ }, import("@project-chip/matter-node.js/cluster").GlobalAttributes<{
1176
+ readonly onOff: import("@project-chip/matter.js/schema").BitFlag;
1177
+ }>>, {}>;
1178
+ createDefaultModeSelectClusterServer(endpoint?: Endpoint): void;
1159
1179
  /**
1160
1180
  * Get a default occupancy sensing cluster server.
1161
1181
  *
@@ -1389,12 +1409,6 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
1389
1409
  readonly measurementMedium: import("@project-chip/matter-node.js/cluster").OptionalAttribute<TvocMeasurement.MeasurementMediumType, any>;
1390
1410
  readonly levelValue: import("@project-chip/matter-node.js/cluster").OptionalAttribute<TvocMeasurement.LevelValueType, any>;
1391
1411
  }, import("@project-chip/matter-node.js/cluster").GlobalAttributes<{
1392
- /**
1393
- * Adds a device type to the list of device types.
1394
- * If the device type is not already present in the list, it will be added.
1395
- *
1396
- * @param {DeviceTypeDefinition} deviceType - The device type to add.
1397
- */
1398
1412
  readonly numericMeasurement: import("@project-chip/matter.js/schema").BitFlag;
1399
1413
  readonly levelIndication: import("@project-chip/matter.js/schema").BitFlag;
1400
1414
  readonly mediumLevel: import("@project-chip/matter.js/schema").BitFlag;
@@ -1402,12 +1416,6 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
1402
1416
  readonly peakMeasurement: import("@project-chip/matter.js/schema").BitFlag;
1403
1417
  readonly averageMeasurement: import("@project-chip/matter.js/schema").BitFlag;
1404
1418
  }>>, "measuredValue" | "minMeasuredValue" | "maxMeasuredValue" | "peakMeasuredValue" | "peakMeasuredValueWindow" | "averageMeasuredValue" | "averageMeasuredValueWindow" | "uncertainty" | "measurementUnit" | "measurementMedium" | "levelValue" | keyof import("@project-chip/matter-node.js/cluster").GlobalAttributes<{
1405
- /**
1406
- * Adds a device type to the list of device types.
1407
- * If the device type is not already present in the list, it will be added.
1408
- *
1409
- * @param {DeviceTypeDefinition} deviceType - The device type to add.
1410
- */
1411
1419
  readonly numericMeasurement: import("@project-chip/matter.js/schema").BitFlag;
1412
1420
  readonly levelIndication: import("@project-chip/matter.js/schema").BitFlag;
1413
1421
  readonly mediumLevel: import("@project-chip/matter.js/schema").BitFlag;
@@ -1427,12 +1435,6 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
1427
1435
  readonly measurementMedium: import("@project-chip/matter-node.js/cluster").OptionalAttribute<TvocMeasurement.MeasurementMediumType, any>;
1428
1436
  readonly levelValue: import("@project-chip/matter-node.js/cluster").OptionalAttribute<TvocMeasurement.LevelValueType, any>;
1429
1437
  }, "measuredValue" | "minMeasuredValue" | "maxMeasuredValue" | "peakMeasuredValue" | "peakMeasuredValueWindow" | "averageMeasuredValue" | "averageMeasuredValueWindow" | "uncertainty" | "measurementUnit" | "measurementMedium" | "levelValue" | keyof import("@project-chip/matter-node.js/cluster").GlobalAttributes<{
1430
- /**
1431
- * Adds a device type to the list of device types.
1432
- * If the device type is not already present in the list, it will be added.
1433
- *
1434
- * @param {DeviceTypeDefinition} deviceType - The device type to add.
1435
- */
1436
1438
  readonly numericMeasurement: import("@project-chip/matter.js/schema").BitFlag;
1437
1439
  readonly levelIndication: import("@project-chip/matter.js/schema").BitFlag;
1438
1440
  readonly mediumLevel: import("@project-chip/matter.js/schema").BitFlag;
@@ -1452,12 +1454,6 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
1452
1454
  readonly measurementMedium: import("@project-chip/matter-node.js/cluster").OptionalAttribute<TvocMeasurement.MeasurementMediumType, any>;
1453
1455
  readonly levelValue: import("@project-chip/matter-node.js/cluster").OptionalAttribute<TvocMeasurement.LevelValueType, any>;
1454
1456
  }, import("@project-chip/matter-node.js/cluster").GlobalAttributes<{
1455
- /**
1456
- * Adds a device type to the list of device types.
1457
- * If the device type is not already present in the list, it will be added.
1458
- *
1459
- * @param {DeviceTypeDefinition} deviceType - The device type to add.
1460
- */
1461
1457
  readonly numericMeasurement: import("@project-chip/matter.js/schema").BitFlag;
1462
1458
  readonly levelIndication: import("@project-chip/matter.js/schema").BitFlag;
1463
1459
  readonly mediumLevel: import("@project-chip/matter.js/schema").BitFlag;
@@ -1465,12 +1461,6 @@ export declare class MatterbridgeDevice extends MatterbridgeDevice_base {
1465
1461
  readonly peakMeasurement: import("@project-chip/matter.js/schema").BitFlag;
1466
1462
  readonly averageMeasurement: import("@project-chip/matter.js/schema").BitFlag;
1467
1463
  }>>, "measuredValue" | "minMeasuredValue" | "maxMeasuredValue" | "peakMeasuredValue" | "peakMeasuredValueWindow" | "averageMeasuredValue" | "averageMeasuredValueWindow" | "uncertainty" | "measurementUnit" | "measurementMedium" | "levelValue" | keyof import("@project-chip/matter-node.js/cluster").GlobalAttributes<{
1468
- /**
1469
- * Adds a device type to the list of device types.
1470
- * If the device type is not already present in the list, it will be added.
1471
- *
1472
- * @param {DeviceTypeDefinition} deviceType - The device type to add.
1473
- */
1474
1464
  readonly numericMeasurement: import("@project-chip/matter.js/schema").BitFlag;
1475
1465
  readonly levelIndication: import("@project-chip/matter.js/schema").BitFlag;
1476
1466
  readonly mediumLevel: import("@project-chip/matter.js/schema").BitFlag;
@@ -1 +1 @@
1
- {"version":3,"file":"matterbridgeDevice.d.ts","sourceRoot":"","sources":["../src/matterbridgeDevice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matterbridgeDevice.d.ts","sourceRoot":"","sources":["../src/matterbridgeDevice.ts"],"names":[],"mappings":"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"}
@@ -20,9 +20,7 @@
20
20
  * See the License for the specific language governing permissions and
21
21
  * limitations under the License. *
22
22
  */
23
- import { BasicInformationCluster, BooleanState, BooleanStateCluster,
24
- // BridgedDeviceBasicInformationCluster,
25
- ClusterServer, ColorControl, ColorControlCluster, DoorLock, DoorLockCluster, ElectricalMeasurement, ElectricalMeasurementCluster, FixedLabelCluster, FlowMeasurement, FlowMeasurementCluster, Groups, Identify, IdentifyCluster, IlluminanceMeasurement, IlluminanceMeasurementCluster, LevelControl, LevelControlCluster, OccupancySensing, OccupancySensingCluster, OnOff, OnOffCluster, PowerSource, PowerSourceCluster, PowerSourceConfigurationCluster, PressureMeasurement, PressureMeasurementCluster, RelativeHumidityMeasurement, RelativeHumidityMeasurementCluster, Scenes, Switch, SwitchCluster, TemperatureMeasurement, TemperatureMeasurementCluster, Thermostat, ThermostatCluster, ThreadNetworkDiagnostics, ThreadNetworkDiagnosticsCluster, TimeSync, TimeSyncCluster, WindowCovering, WindowCoveringCluster, createDefaultGroupsClusterServer, createDefaultScenesClusterServer, getClusterNameById, } from '@project-chip/matter-node.js/cluster';
23
+ import { BasicInformationCluster, BooleanState, BooleanStateCluster, ClusterServer, ColorControl, ColorControlCluster, DoorLock, DoorLockCluster, ElectricalMeasurement, ElectricalMeasurementCluster, FixedLabelCluster, FlowMeasurement, FlowMeasurementCluster, Groups, Identify, IdentifyCluster, IlluminanceMeasurement, IlluminanceMeasurementCluster, LevelControl, LevelControlCluster, ModeSelectCluster, OccupancySensing, OccupancySensingCluster, OnOff, OnOffCluster, PowerSource, PowerSourceCluster, PowerSourceConfigurationCluster, PressureMeasurement, PressureMeasurementCluster, RelativeHumidityMeasurement, RelativeHumidityMeasurementCluster, Scenes, Switch, SwitchCluster, TemperatureMeasurement, TemperatureMeasurementCluster, Thermostat, ThermostatCluster, ThreadNetworkDiagnostics, ThreadNetworkDiagnosticsCluster, TimeSync, TimeSyncCluster, WindowCovering, WindowCoveringCluster, createDefaultGroupsClusterServer, createDefaultScenesClusterServer, getClusterNameById, } from '@project-chip/matter-node.js/cluster';
26
24
  import { EndpointNumber, VendorId } from '@project-chip/matter-node.js/datatype';
27
25
  import { Device, DeviceClasses, DeviceTypeDefinition, Endpoint } from '@project-chip/matter-node.js/device';
28
26
  import { extendPublicHandlerMethods } from '@project-chip/matter-node.js/util';
@@ -122,32 +120,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
122
120
  includeServerList.forEach((clusterId) => {
123
121
  this.log.debug(`- with cluster: ${hk}${clusterId}${db}-${hk}${getClusterNameById(clusterId)}${db}`);
124
122
  });
125
- if (includeServerList.includes(Identify.Cluster.id))
126
- this.addClusterServer(this.getDefaultIdentifyClusterServer());
127
- if (includeServerList.includes(Groups.Cluster.id))
128
- this.addClusterServer(this.getDefaultGroupsClusterServer());
129
- if (includeServerList.includes(Scenes.Cluster.id))
130
- this.addClusterServer(this.getDefaultScenesClusterServer());
131
- if (includeServerList.includes(OnOff.Cluster.id))
132
- this.addClusterServer(this.getDefaultOnOffClusterServer());
133
- if (includeServerList.includes(TemperatureMeasurement.Cluster.id))
134
- this.addClusterServer(this.getDefaultTemperatureMeasurementClusterServer());
135
- if (includeServerList.includes(RelativeHumidityMeasurement.Cluster.id))
136
- this.addClusterServer(this.getDefaultRelativeHumidityMeasurementClusterServer());
137
- if (includeServerList.includes(PressureMeasurement.Cluster.id))
138
- this.addClusterServer(this.getDefaultPressureMeasurementClusterServer());
139
- if (includeServerList.includes(FlowMeasurement.Cluster.id))
140
- this.addClusterServer(this.getDefaultFlowMeasurementClusterServer());
141
- if (includeServerList.includes(BooleanState.Cluster.id))
142
- this.addClusterServer(this.getDefaultBooleanStateClusterServer());
143
- if (includeServerList.includes(OccupancySensing.Cluster.id))
144
- this.addClusterServer(this.getDefaultOccupancySensingClusterServer());
145
- if (includeServerList.includes(IlluminanceMeasurement.Cluster.id))
146
- this.addClusterServer(this.getDefaultIlluminanceMeasurementClusterServer());
147
- if (includeServerList.includes(EveHistory.Cluster.id))
148
- this.addClusterServer(this.getDefaultStaticEveHistoryClusterServer());
149
- if (includeServerList.includes(ElectricalMeasurement.Cluster.id))
150
- this.addClusterServer(this.getDefaultElectricalMeasurementClusterServer());
123
+ this.addClusterServerFromList(this, includeServerList);
151
124
  }
152
125
  /**
153
126
  * Adds a child device type with cluster server.
@@ -170,34 +143,62 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
170
143
  includeServerList.forEach((clusterId) => {
171
144
  this.log.debug(`- with cluster: ${hk}${clusterId}${db}-${hk}${getClusterNameById(clusterId)}${db}`);
172
145
  });
146
+ this.addClusterServerFromList(child, includeServerList);
147
+ this.addChildEndpoint(child);
148
+ return child;
149
+ }
150
+ /**
151
+ * Adds cluster servers to the specified endpoint based on the provided server list.
152
+ *
153
+ * @param {Endpoint} endpoint - The endpoint to add cluster servers to.
154
+ * @param {ClusterId[]} includeServerList - The list of cluster IDs to include.
155
+ * @returns void
156
+ */
157
+ addClusterServerFromList(endpoint, includeServerList) {
173
158
  if (includeServerList.includes(Identify.Cluster.id))
174
- child.addClusterServer(this.getDefaultIdentifyClusterServer());
159
+ endpoint.addClusterServer(this.getDefaultIdentifyClusterServer());
175
160
  if (includeServerList.includes(Groups.Cluster.id))
176
- child.addClusterServer(this.getDefaultGroupsClusterServer());
161
+ endpoint.addClusterServer(this.getDefaultGroupsClusterServer());
177
162
  if (includeServerList.includes(Scenes.Cluster.id))
178
- child.addClusterServer(this.getDefaultScenesClusterServer());
163
+ endpoint.addClusterServer(this.getDefaultScenesClusterServer());
179
164
  if (includeServerList.includes(OnOff.Cluster.id))
180
- child.addClusterServer(this.getDefaultOnOffClusterServer());
165
+ endpoint.addClusterServer(this.getDefaultOnOffClusterServer());
166
+ if (includeServerList.includes(LevelControl.Cluster.id))
167
+ endpoint.addClusterServer(this.getDefaultLevelControlClusterServer());
168
+ if (includeServerList.includes(ColorControl.Cluster.id))
169
+ endpoint.addClusterServer(this.getDefaultColorControlClusterServer());
170
+ if (includeServerList.includes(Switch.Cluster.id))
171
+ endpoint.addClusterServer(this.getDefaultSwitchClusterServer());
172
+ if (includeServerList.includes(DoorLock.Cluster.id))
173
+ endpoint.addClusterServer(this.getDefaultDoorLockClusterServer());
174
+ if (includeServerList.includes(Thermostat.Cluster.id))
175
+ endpoint.addClusterServer(this.getDefaultThermostatClusterServer());
176
+ if (includeServerList.includes(TimeSync.Cluster.id))
177
+ endpoint.addClusterServer(this.getDefaultTimeSyncClusterServer());
178
+ if (includeServerList.includes(WindowCovering.Cluster.id))
179
+ endpoint.addClusterServer(this.getDefaultWindowCoveringClusterServer());
181
180
  if (includeServerList.includes(TemperatureMeasurement.Cluster.id))
182
- child.addClusterServer(this.getDefaultTemperatureMeasurementClusterServer());
181
+ endpoint.addClusterServer(this.getDefaultTemperatureMeasurementClusterServer());
183
182
  if (includeServerList.includes(RelativeHumidityMeasurement.Cluster.id))
184
- child.addClusterServer(this.getDefaultRelativeHumidityMeasurementClusterServer());
183
+ endpoint.addClusterServer(this.getDefaultRelativeHumidityMeasurementClusterServer());
185
184
  if (includeServerList.includes(PressureMeasurement.Cluster.id))
186
- child.addClusterServer(this.getDefaultPressureMeasurementClusterServer());
185
+ endpoint.addClusterServer(this.getDefaultPressureMeasurementClusterServer());
187
186
  if (includeServerList.includes(FlowMeasurement.Cluster.id))
188
- child.addClusterServer(this.getDefaultFlowMeasurementClusterServer());
187
+ endpoint.addClusterServer(this.getDefaultFlowMeasurementClusterServer());
189
188
  if (includeServerList.includes(BooleanState.Cluster.id))
190
- child.addClusterServer(this.getDefaultBooleanStateClusterServer());
189
+ endpoint.addClusterServer(this.getDefaultBooleanStateClusterServer());
191
190
  if (includeServerList.includes(OccupancySensing.Cluster.id))
192
- child.addClusterServer(this.getDefaultOccupancySensingClusterServer());
191
+ endpoint.addClusterServer(this.getDefaultOccupancySensingClusterServer());
193
192
  if (includeServerList.includes(IlluminanceMeasurement.Cluster.id))
194
- child.addClusterServer(this.getDefaultIlluminanceMeasurementClusterServer());
193
+ endpoint.addClusterServer(this.getDefaultIlluminanceMeasurementClusterServer());
195
194
  if (includeServerList.includes(EveHistory.Cluster.id))
196
- child.addClusterServer(this.getDefaultStaticEveHistoryClusterServer());
195
+ endpoint.addClusterServer(this.getDefaultStaticEveHistoryClusterServer());
197
196
  if (includeServerList.includes(ElectricalMeasurement.Cluster.id))
198
- child.addClusterServer(this.getDefaultElectricalMeasurementClusterServer());
199
- this.addChildEndpoint(child);
200
- return child;
197
+ endpoint.addClusterServer(this.getDefaultElectricalMeasurementClusterServer());
198
+ if (includeServerList.includes(AirQuality.Cluster.id))
199
+ endpoint.addClusterServer(this.getDefaultAirQualityClusterServer());
200
+ if (includeServerList.includes(TvocMeasurement.Cluster.id))
201
+ endpoint.addClusterServer(this.getDefaultTvocMeasurementClusterServer());
201
202
  }
202
203
  /**
203
204
  * Retrieves a child endpoint by its name.
@@ -249,6 +250,8 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
249
250
  * @returns The serialized Matterbridge device object.
250
251
  */
251
252
  serialize(pluginName) {
253
+ if (!this.serialNumber || !this.deviceName || !this.uniqueId)
254
+ return;
252
255
  const serialized = {
253
256
  pluginName,
254
257
  serialNumber: this.serialNumber,
@@ -915,7 +918,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
915
918
  moveToLevel: async ({ request, attributes }) => {
916
919
  // eslint-disable-next-line no-console
917
920
  console.log('moveToLevel request:', request, 'attributes.currentLevel:', attributes.currentLevel.getLocal());
918
- //attributes.currentLevel.setLocal(request.level);
921
+ // attributes.currentLevel.setLocal(request.level);
919
922
  await this.commandHandler.executeHandler('moveToLevel', { request: request, attributes: attributes });
920
923
  },
921
924
  move: async () => {
@@ -933,7 +936,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
933
936
  moveToLevelWithOnOff: async ({ request, attributes }) => {
934
937
  // eslint-disable-next-line no-console
935
938
  console.log('moveToLevelWithOnOff request:', request, 'attributes.currentLevel:', attributes.currentLevel.getLocal());
936
- //attributes.currentLevel.setLocal(request.level);
939
+ // attributes.currentLevel.setLocal(request.level);
937
940
  await this.commandHandler.executeHandler('moveToLevelWithOnOff', { request: request, attributes: attributes });
938
941
  },
939
942
  moveWithOnOff: async () => {
@@ -985,7 +988,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
985
988
  moveToHue: async ({ request: request, attributes: attributes }) => {
986
989
  // eslint-disable-next-line no-console
987
990
  console.log('Command moveToHue request:', request, 'attributes.currentHue:', attributes.currentHue.getLocal());
988
- //attributes.currentHue.setLocal(request.hue);
991
+ // attributes.currentHue.setLocal(request.hue);
989
992
  this.commandHandler.executeHandler('moveToHue', { request: request, attributes: attributes });
990
993
  },
991
994
  moveHue: async () => {
@@ -999,7 +1002,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
999
1002
  moveToSaturation: async ({ request: request, attributes: attributes }) => {
1000
1003
  // eslint-disable-next-line no-console
1001
1004
  console.log('Command moveToSaturation request:', request, 'attributes.currentSaturation:', attributes.currentSaturation.getLocal());
1002
- //attributes.currentSaturation.setLocal(request.saturation);
1005
+ // attributes.currentSaturation.setLocal(request.saturation);
1003
1006
  this.commandHandler.executeHandler('moveToSaturation', { request: request, attributes: attributes });
1004
1007
  },
1005
1008
  moveSaturation: async () => {
@@ -1013,8 +1016,8 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
1013
1016
  moveToHueAndSaturation: async ({ request: request, attributes: attributes }) => {
1014
1017
  // eslint-disable-next-line no-console
1015
1018
  console.log('Command moveToHueAndSaturation request:', request, 'attributes.currentHue:', attributes.currentHue.getLocal(), 'attributes.currentSaturation:', attributes.currentSaturation.getLocal());
1016
- //attributes.currentHue.setLocal(request.hue);
1017
- //attributes.currentSaturation.setLocal(request.saturation);
1019
+ // attributes.currentHue.setLocal(request.hue);
1020
+ // attributes.currentSaturation.setLocal(request.saturation);
1018
1021
  this.commandHandler.executeHandler('moveToHueAndSaturation', { request: request, attributes: attributes });
1019
1022
  },
1020
1023
  stopMoveStep: async () => {
@@ -1024,7 +1027,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
1024
1027
  moveToColorTemperature: async ({ request: request, attributes: attributes }) => {
1025
1028
  // eslint-disable-next-line no-console
1026
1029
  console.log('Command moveToColorTemperature request:', request, 'attributes.colorTemperatureMireds:', attributes.colorTemperatureMireds.getLocal());
1027
- //attributes.colorTemperatureMireds.setLocal(request.colorTemperatureMireds);
1030
+ // attributes.colorTemperatureMireds.setLocal(request.colorTemperatureMireds);
1028
1031
  this.commandHandler.executeHandler('moveToColorTemperature', { request: request, attributes: attributes });
1029
1032
  },
1030
1033
  moveColorTemperature: async () => {
@@ -1108,8 +1111,10 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
1108
1111
  /**
1109
1112
  * Sets the window covering target position as the current position and stops the movement.
1110
1113
  */
1111
- setWindowCoveringTargetAsCurrentAndStopped() {
1112
- const windowCoveringCluster = this.getClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift, WindowCovering.Feature.AbsolutePosition));
1114
+ setWindowCoveringTargetAsCurrentAndStopped(endpoint) {
1115
+ if (!endpoint)
1116
+ endpoint = this;
1117
+ const windowCoveringCluster = endpoint.getClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift, WindowCovering.Feature.AbsolutePosition));
1113
1118
  if (windowCoveringCluster) {
1114
1119
  const position = windowCoveringCluster.getCurrentPositionLiftPercent100thsAttribute();
1115
1120
  if (position !== null) {
@@ -1121,7 +1126,7 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
1121
1126
  });
1122
1127
  }
1123
1128
  // eslint-disable-next-line no-console
1124
- // console.log(`Set WindowCovering initial currentPositionLiftPercent100ths and targetPositionLiftPercent100ths to ${position} and operationalStatus to Stopped.`);
1129
+ console.log(`Set WindowCovering initial currentPositionLiftPercent100ths and targetPositionLiftPercent100ths to ${position} and operationalStatus to Stopped.`);
1125
1130
  }
1126
1131
  }
1127
1132
  /**
@@ -1130,8 +1135,10 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
1130
1135
  * @param target - The target position of the window covering.
1131
1136
  * @param status - The movement status of the window covering.
1132
1137
  */
1133
- setWindowCoveringCurrentTargetStatus(current, target, status) {
1134
- const windowCoveringCluster = this.getClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift, WindowCovering.Feature.AbsolutePosition));
1138
+ setWindowCoveringCurrentTargetStatus(current, target, status, endpoint) {
1139
+ if (!endpoint)
1140
+ endpoint = this;
1141
+ const windowCoveringCluster = endpoint.getClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift, WindowCovering.Feature.AbsolutePosition));
1135
1142
  if (windowCoveringCluster) {
1136
1143
  windowCoveringCluster.setCurrentPositionLiftPercent100thsAttribute(current);
1137
1144
  windowCoveringCluster.setTargetPositionLiftPercent100thsAttribute(target);
@@ -1142,31 +1149,35 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
1142
1149
  });
1143
1150
  }
1144
1151
  // eslint-disable-next-line no-console
1145
- // console.log(`Set WindowCovering currentPositionLiftPercent100ths: ${current}, targetPositionLiftPercent100ths: ${target} and operationalStatus: ${status}.`);
1152
+ console.log(`Set WindowCovering currentPositionLiftPercent100ths: ${current}, targetPositionLiftPercent100ths: ${target} and operationalStatus: ${status}.`);
1146
1153
  }
1147
1154
  /**
1148
1155
  * Sets the status of the window covering.
1149
1156
  * @param {WindowCovering.MovementStatus} status - The movement status to set.
1150
1157
  */
1151
- setWindowCoveringStatus(status) {
1152
- const windowCovering = this.getClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift, WindowCovering.Feature.AbsolutePosition));
1158
+ setWindowCoveringStatus(status, endpoint) {
1159
+ if (!endpoint)
1160
+ endpoint = this;
1161
+ const windowCovering = endpoint.getClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift, WindowCovering.Feature.AbsolutePosition));
1153
1162
  if (!windowCovering)
1154
1163
  return;
1155
1164
  windowCovering.setOperationalStatusAttribute({ global: status, lift: status, tilt: 0 });
1156
1165
  // eslint-disable-next-line no-console
1157
- // console.log(`Set WindowCovering operationalStatus: ${status}`);
1166
+ console.log(`Set WindowCovering operationalStatus: ${status}`);
1158
1167
  }
1159
1168
  /**
1160
1169
  * Retrieves the status of the window covering.
1161
1170
  * @returns The global operational status of the window covering.
1162
1171
  */
1163
- getWindowCoveringStatus() {
1164
- const windowCovering = this.getClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift, WindowCovering.Feature.AbsolutePosition));
1172
+ getWindowCoveringStatus(endpoint) {
1173
+ if (!endpoint)
1174
+ endpoint = this;
1175
+ const windowCovering = endpoint.getClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift, WindowCovering.Feature.AbsolutePosition));
1165
1176
  if (!windowCovering)
1166
1177
  return undefined;
1167
1178
  const status = windowCovering.getOperationalStatusAttribute();
1168
1179
  // eslint-disable-next-line no-console
1169
- // console.log(`Get WindowCovering operationalStatus: ${status.global}`);
1180
+ console.log(`Get WindowCovering operationalStatus: ${status.global}`);
1170
1181
  return status.global;
1171
1182
  }
1172
1183
  /**
@@ -1174,14 +1185,16 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
1174
1185
  *
1175
1186
  * @param position - The position to set, specified as a number.
1176
1187
  */
1177
- setWindowCoveringTargetAndCurrentPosition(position) {
1178
- const windowCovering = this.getClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift));
1188
+ setWindowCoveringTargetAndCurrentPosition(position, endpoint) {
1189
+ if (!endpoint)
1190
+ endpoint = this;
1191
+ const windowCovering = endpoint.getClusterServer(WindowCoveringCluster.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift));
1179
1192
  if (!windowCovering)
1180
1193
  return;
1181
1194
  windowCovering.setCurrentPositionLiftPercent100thsAttribute(position);
1182
1195
  windowCovering.setTargetPositionLiftPercent100thsAttribute(position);
1183
1196
  // eslint-disable-next-line no-console
1184
- // console.log(`Set WindowCovering currentPositionLiftPercent100ths: ${position} and targetPositionLiftPercent100ths: ${position}.`);
1197
+ console.log(`Set WindowCovering currentPositionLiftPercent100ths: ${position} and targetPositionLiftPercent100ths: ${position}.`);
1185
1198
  }
1186
1199
  /**
1187
1200
  * Get a default door lock cluster server.
@@ -1255,6 +1268,29 @@ export class MatterbridgeDevice extends extendPublicHandlerMethods(Device) {
1255
1268
  this.addFixedLabel('orientation', 'Switch');
1256
1269
  this.addFixedLabel('label', 'Switch');
1257
1270
  }
1271
+ getDefaultModeSelectClusterServer(description, supportedModes, currentMode = 0, startUpMode = 0) {
1272
+ return ClusterServer(ModeSelectCluster, {
1273
+ description: description,
1274
+ standardNamespace: null,
1275
+ supportedModes: supportedModes,
1276
+ currentMode: currentMode,
1277
+ startUpMode: startUpMode,
1278
+ }, {
1279
+ changeToMode: async (data) => {
1280
+ // eslint-disable-next-line no-console
1281
+ console.log('changeToMode', data.request);
1282
+ await this.commandHandler.executeHandler('changeToMode', data);
1283
+ },
1284
+ });
1285
+ }
1286
+ createDefaultModeSelectClusterServer(endpoint) {
1287
+ if (!endpoint)
1288
+ endpoint = this;
1289
+ endpoint.addClusterServer(this.getDefaultModeSelectClusterServer('Mode select', [
1290
+ { label: 'Mode 0', mode: 0, semanticTags: [{ mfgCode: VendorId(0xfff1), value: 0 }] },
1291
+ { label: 'Mode 1', mode: 1, semanticTags: [{ mfgCode: VendorId(0xfff1), value: 1 }] },
1292
+ ]));
1293
+ }
1258
1294
  /**
1259
1295
  * Get a default occupancy sensing cluster server.
1260
1296
  *