matterbridge 1.7.2 → 2.0.0-edge.2

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 +40 -1
  2. package/dist/cli.js +3 -39
  3. package/dist/cluster/export.js +0 -2
  4. package/dist/defaultConfigSchema.js +0 -23
  5. package/dist/deviceManager.js +1 -26
  6. package/dist/frontend.js +1203 -0
  7. package/dist/index.js +1 -36
  8. package/dist/logger/export.js +0 -1
  9. package/dist/matter/export.js +0 -5
  10. package/dist/matterbridge.js +516 -2678
  11. package/dist/matterbridgeAccessoryPlatform.js +0 -33
  12. package/dist/matterbridgeBehaviors.js +23 -31
  13. package/dist/matterbridgeDeviceTypes.js +11 -82
  14. package/dist/matterbridgeDynamicPlatform.js +0 -33
  15. package/dist/matterbridgeEndpoint.js +45 -1145
  16. package/dist/matterbridgePlatform.js +14 -145
  17. package/dist/matterbridgeTypes.js +3 -24
  18. package/dist/pluginManager.js +5 -246
  19. package/dist/storage/export.js +0 -1
  20. package/dist/utils/colorUtils.js +2 -205
  21. package/dist/utils/export.js +0 -1
  22. package/dist/utils/utils.js +7 -252
  23. package/frontend/build/asset-manifest.json +3 -3
  24. package/frontend/build/index.html +1 -1
  25. package/frontend/build/static/js/{main.08241820.js → main.6204ae54.js} +3 -3
  26. package/frontend/build/static/js/main.6204ae54.js.map +1 -0
  27. package/npm-shrinkwrap.json +9 -9
  28. package/package.json +2 -3
  29. package/dist/cli.d.ts +0 -25
  30. package/dist/cli.d.ts.map +0 -1
  31. package/dist/cli.js.map +0 -1
  32. package/dist/cluster/export.d.ts +0 -2
  33. package/dist/cluster/export.d.ts.map +0 -1
  34. package/dist/cluster/export.js.map +0 -1
  35. package/dist/defaultConfigSchema.d.ts +0 -27
  36. package/dist/defaultConfigSchema.d.ts.map +0 -1
  37. package/dist/defaultConfigSchema.js.map +0 -1
  38. package/dist/deviceManager.d.ts +0 -46
  39. package/dist/deviceManager.d.ts.map +0 -1
  40. package/dist/deviceManager.js.map +0 -1
  41. package/dist/index.d.ts +0 -40
  42. package/dist/index.d.ts.map +0 -1
  43. package/dist/index.js.map +0 -1
  44. package/dist/logger/export.d.ts +0 -2
  45. package/dist/logger/export.d.ts.map +0 -1
  46. package/dist/logger/export.js.map +0 -1
  47. package/dist/matter/export.d.ts +0 -11
  48. package/dist/matter/export.d.ts.map +0 -1
  49. package/dist/matter/export.js.map +0 -1
  50. package/dist/matterbridge.d.ts +0 -483
  51. package/dist/matterbridge.d.ts.map +0 -1
  52. package/dist/matterbridge.js.map +0 -1
  53. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -39
  54. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  55. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  56. package/dist/matterbridgeBehaviors.d.ts +0 -942
  57. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  58. package/dist/matterbridgeBehaviors.js.map +0 -1
  59. package/dist/matterbridgeDevice.d.ts +0 -7077
  60. package/dist/matterbridgeDevice.d.ts.map +0 -1
  61. package/dist/matterbridgeDevice.js +0 -2736
  62. package/dist/matterbridgeDevice.js.map +0 -1
  63. package/dist/matterbridgeDeviceTypes.d.ts +0 -109
  64. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  65. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  66. package/dist/matterbridgeDynamicPlatform.d.ts +0 -39
  67. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  68. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  69. package/dist/matterbridgeEdge.d.ts +0 -91
  70. package/dist/matterbridgeEdge.d.ts.map +0 -1
  71. package/dist/matterbridgeEdge.js +0 -1077
  72. package/dist/matterbridgeEdge.js.map +0 -1
  73. package/dist/matterbridgeEndpoint.d.ts +0 -10156
  74. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  75. package/dist/matterbridgeEndpoint.js.map +0 -1
  76. package/dist/matterbridgePlatform.d.ts +0 -168
  77. package/dist/matterbridgePlatform.d.ts.map +0 -1
  78. package/dist/matterbridgePlatform.js.map +0 -1
  79. package/dist/matterbridgeTypes.d.ts +0 -172
  80. package/dist/matterbridgeTypes.d.ts.map +0 -1
  81. package/dist/matterbridgeTypes.js.map +0 -1
  82. package/dist/matterbridgeWebsocket.d.ts +0 -49
  83. package/dist/matterbridgeWebsocket.d.ts.map +0 -1
  84. package/dist/matterbridgeWebsocket.js +0 -325
  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.08241820.js.map +0 -1
  102. /package/frontend/build/static/js/{main.08241820.js.LICENSE.txt → main.6204ae54.js.LICENSE.txt} +0 -0
@@ -1,37 +1,5 @@
1
- /**
2
- * This file contains the class MatterbridgeAccessoryPlatform.
3
- *
4
- * @file matterbridgeAccessoryPlatform.ts
5
- * @author Luca Liguori
6
- * @date 2023-12-29
7
- * @version 1.0.5
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
1
  import { MatterbridgePlatform } from './matterbridgePlatform.js';
24
- /**
25
- * Represents a Matterbridge accessory platform.
26
- *
27
- */
28
2
  export class MatterbridgeAccessoryPlatform extends MatterbridgePlatform {
29
- /**
30
- * Creates an instance of MatterbridgeAccessoryPlatform.
31
- * @param {Matterbridge} matterbridge - The Matterbridge instance.
32
- * @param {AnsiLogger} log - The logger instance.
33
- * @param {PlatformConfig} config - The platform configuration.
34
- */
35
3
  constructor(matterbridge, log, config) {
36
4
  super(matterbridge, log, config);
37
5
  this.type = 'AccessoryPlatform';
@@ -39,4 +7,3 @@ export class MatterbridgeAccessoryPlatform extends MatterbridgePlatform {
39
7
  this.log.debug(`Matterbridge${this.type} loaded`);
40
8
  }
41
9
  }
42
- //# sourceMappingURL=matterbridgeAccessoryPlatform.js.map
@@ -1,37 +1,11 @@
1
- /**
2
- * This file contains the class MatterbridgeEndpoint that extends the Endpoint class from the Matter.js library.
3
- *
4
- * @file matterbridgeBehaviors.ts
5
- * @author Luca Liguori
6
- * @date 2024-11-07
7
- * @version 1.0.0
8
- *
9
- * Copyright 2024, 2025, 2026 Luca Liguori.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License. *
22
- */
23
- /* eslint-disable @typescript-eslint/no-namespace */
24
- /* eslint-disable @typescript-eslint/no-unused-vars */
25
- /* eslint-disable @typescript-eslint/no-explicit-any */
26
- // @matter
27
1
  import { Behavior } from '@matter/main';
28
- import { ColorControlServer, DoorLockServer, IdentifyServer, LevelControlServer, WindowCoveringServer, ThermostatServer, FanControlServer, BooleanStateConfigurationServer, } from '@matter/main/behaviors';
29
- import { BooleanStateConfiguration, ColorControl, FanControl, Thermostat, WindowCovering } from '@matter/main/clusters';
2
+ import { ColorControlServer, DoorLockServer, IdentifyServer, LevelControlServer, WindowCoveringServer, ThermostatServer, FanControlServer, BooleanStateConfigurationServer, ValveConfigurationAndControlServer, } from '@matter/main/behaviors';
3
+ import { BooleanStateConfiguration, ColorControl, FanControl, Thermostat, ValveConfigurationAndControl, WindowCovering } from '@matter/main/clusters';
30
4
  import { OnOffServer } from '@matter/node/behaviors/on-off';
31
5
  export class MatterbridgeBehaviorDevice {
32
6
  log;
33
7
  commandHandler;
34
- device; // Will be a plugin device
8
+ device;
35
9
  endpointId = undefined;
36
10
  endpointNumber = undefined;
37
11
  constructor(log, commandHandler, device) {
@@ -129,6 +103,14 @@ export class MatterbridgeBehaviorDevice {
129
103
  this.log.info(`Setting setpoint to ${amount} in mode ${mode} (endpoint ${this.endpointId}.${this.endpointNumber})`);
130
104
  this.commandHandler.executeHandler('setpointRaiseLower', { request: { mode, amount }, attributes: {}, endpoint: { number: this.endpointNumber, uniqueStorageKey: this.endpointId } });
131
105
  }
106
+ open({ openDuration, targetLevel }) {
107
+ this.log.info(`Opening valve (endpoint ${this.endpointId}.${this.endpointNumber})`);
108
+ this.commandHandler.executeHandler('open', { request: { openDuration, targetLevel }, attributes: {}, endpoint: { number: this.endpointNumber, uniqueStorageKey: this.endpointId } });
109
+ }
110
+ close() {
111
+ this.log.info(`Closing valve (endpoint ${this.endpointId}.${this.endpointNumber})`);
112
+ this.commandHandler.executeHandler('close', { request: {}, attributes: {}, endpoint: { number: this.endpointNumber, uniqueStorageKey: this.endpointId } });
113
+ }
132
114
  enableDisableAlarm({ alarmsToEnableDisable }) {
133
115
  this.log.info(`Enabling/disabling alarm ${alarmsToEnableDisable}`);
134
116
  this.commandHandler.executeHandler('enableDisableAlarm', { request: { alarmsToEnableDisable }, attributes: {}, endpoint: { number: this.endpointNumber, uniqueStorageKey: this.endpointId } });
@@ -239,7 +221,6 @@ export class MatterbridgeWindowCoveringServer extends WindowCoveringServer.with(
239
221
  super.goToLiftPercentage({ liftPercent100thsValue });
240
222
  }
241
223
  async handleMovement(type, reversed, direction, targetPercent100ths) {
242
- // Do nothing here, as the device will handle the movement
243
224
  }
244
225
  }
245
226
  export class MatterbridgeDoorLockServer extends DoorLockServer {
@@ -300,6 +281,18 @@ export class MatterbridgeThermostatServer extends ThermostatServer.with(Thermost
300
281
  super.setpointRaiseLower({ mode, amount });
301
282
  }
302
283
  }
284
+ export class MatterbridgeValveConfigurationAndControlServer extends ValveConfigurationAndControlServer.with(ValveConfigurationAndControl.Feature.Level) {
285
+ async open({ openDuration, targetLevel }) {
286
+ const device = this.agent.get(MatterbridgeBehavior).state.deviceCommand;
287
+ device.open({ openDuration, targetLevel });
288
+ super.open({ openDuration, targetLevel });
289
+ }
290
+ async close() {
291
+ const device = this.agent.get(MatterbridgeBehavior).state.deviceCommand;
292
+ device.close();
293
+ super.close();
294
+ }
295
+ }
303
296
  export class MatterbridgeBooleanStateConfigurationServer extends BooleanStateConfigurationServer.with(BooleanStateConfiguration.Feature.Visual, BooleanStateConfiguration.Feature.Audible, BooleanStateConfiguration.Feature.SensitivityLevel) {
304
297
  async enableDisableAlarm({ alarmsToEnableDisable }) {
305
298
  const device = this.agent.get(MatterbridgeBehavior).state.deviceCommand;
@@ -307,4 +300,3 @@ export class MatterbridgeBooleanStateConfigurationServer extends BooleanStateCon
307
300
  super.enableDisableAlarm({ alarmsToEnableDisable });
308
301
  }
309
302
  }
310
- //# sourceMappingURL=matterbridgeBehaviors.js.map
@@ -1,29 +1,5 @@
1
- /**
2
- * This file contains the class MatterbridgeDevice.
3
- *
4
- * @file matterbridgeDeviceTypes.ts
5
- * @author Luca Liguori
6
- * @date 2024-11-08
7
- * @version 1.0.0
8
- *
9
- * Copyright 2024, 2025, 2026 Luca Liguori.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License. *
22
- */
23
1
  import { AirQuality, BooleanState, BooleanStateConfiguration, BridgedDeviceBasicInformation, CarbonDioxideConcentrationMeasurement, CarbonMonoxideConcentrationMeasurement, ColorControl, DeviceEnergyManagement, DeviceEnergyManagementMode, DoorLock, ElectricalEnergyMeasurement, ElectricalPowerMeasurement, EnergyPreference, FanControl, FlowMeasurement, FormaldehydeConcentrationMeasurement, Groups, Identify, IlluminanceMeasurement, LevelControl, ModeSelect, NitrogenDioxideConcentrationMeasurement, OccupancySensing, OnOff, OzoneConcentrationMeasurement, Pm10ConcentrationMeasurement, Pm1ConcentrationMeasurement, Pm25ConcentrationMeasurement, PowerSource, PowerTopology, PressureMeasurement, RadonConcentrationMeasurement, RelativeHumidityMeasurement, SmokeCoAlarm, SwitchCluster, TemperatureMeasurement, Thermostat, ThermostatUserInterfaceConfiguration, TimeSynchronization, TotalVolatileOrganicCompoundsConcentrationMeasurement, WindowCovering, ValveConfigurationAndControl, HepaFilterMonitoring, ActivatedCarbonFilterMonitoring, Actions, FixedLabel, RvcRunMode, RvcOperationalState, RvcCleanMode, ScenesManagement, PumpConfigurationAndControl, } from '@matter/main/clusters';
24
- // @project-chip
25
2
  import { DeviceClasses, DeviceTypeDefinition } from '@project-chip/matter.js/device';
26
- // Matter 1.0 and 1.1 device types
27
3
  export const bridge = DeviceTypeDefinition({
28
4
  name: 'MA-aggregator',
29
5
  code: 0x000e,
@@ -46,22 +22,6 @@ export const powerSource = DeviceTypeDefinition({
46
22
  requiredServerClusters: [PowerSource.Cluster.id],
47
23
  optionalServerClusters: [],
48
24
  });
49
- /**
50
- 2.5.3. Conditions
51
- Please see the Base Device Type definition for conformance tags.
52
- This device type SHALL only be used for Nodes which have a device type of Bridge.
53
-
54
- 2.5.6. Endpoint Composition
55
- • A Bridged Node endpoint SHALL support one of the following composition patterns:
56
- ◦ Separate Endpoints: All application device types are supported on separate endpoints, and
57
- not on the Bridged Node endpoint. The Bridged Node endpoint’s Descriptor cluster PartsList
58
- attribute SHALL indicate a list of all endpoints representing the functionality of the bridged
59
- device, including the endpoints supporting the application device types, i.e. the full-family
60
- pattern defined in the System Model specification.
61
- ◦ One Endpoint: Both the Bridged Node and one or more application device types are sup
62
- ported on the same endpoint (following application device type rules). Endpoint composi
63
- tion SHALL conform to the application device type(s) definition
64
- */
65
25
  export const bridgedNode = DeviceTypeDefinition({
66
26
  name: 'MA-bridgedNode',
67
27
  code: 0x0013,
@@ -83,7 +43,7 @@ export const onOffLight = DeviceTypeDefinition({
83
43
  code: 0x0100,
84
44
  deviceClass: DeviceClasses.Simple,
85
45
  revision: 3,
86
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id],
46
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
87
47
  optionalServerClusters: [LevelControl.Cluster.id, ColorControl.Cluster.id],
88
48
  });
89
49
  export const dimmableLight = DeviceTypeDefinition({
@@ -91,7 +51,7 @@ export const dimmableLight = DeviceTypeDefinition({
91
51
  code: 0x0101,
92
52
  deviceClass: DeviceClasses.Simple,
93
53
  revision: 3,
94
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
54
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
95
55
  optionalServerClusters: [ColorControl.Cluster.id],
96
56
  });
97
57
  export const colorTemperatureLight = DeviceTypeDefinition({
@@ -99,7 +59,7 @@ export const colorTemperatureLight = DeviceTypeDefinition({
99
59
  code: 0x010c,
100
60
  deviceClass: DeviceClasses.Simple,
101
61
  revision: 4,
102
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
62
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
103
63
  optionalServerClusters: [],
104
64
  });
105
65
  export const onOffOutlet = DeviceTypeDefinition({
@@ -107,7 +67,7 @@ export const onOffOutlet = DeviceTypeDefinition({
107
67
  code: 0x010a,
108
68
  deviceClass: DeviceClasses.Simple,
109
69
  revision: 3,
110
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id],
70
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
111
71
  optionalServerClusters: [LevelControl.Cluster.id],
112
72
  });
113
73
  export const dimmableOutlet = DeviceTypeDefinition({
@@ -115,7 +75,7 @@ export const dimmableOutlet = DeviceTypeDefinition({
115
75
  code: 0x010b,
116
76
  deviceClass: DeviceClasses.Simple,
117
77
  revision: 3,
118
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
78
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
119
79
  optionalServerClusters: [],
120
80
  });
121
81
  export const doorLockDevice = DeviceTypeDefinition({
@@ -124,7 +84,7 @@ export const doorLockDevice = DeviceTypeDefinition({
124
84
  deviceClass: DeviceClasses.Simple,
125
85
  revision: 3,
126
86
  requiredServerClusters: [Identify.Cluster.id, DoorLock.Cluster.id],
127
- optionalServerClusters: [Groups.Cluster.id /* , Scenes.Cluster.id,*/],
87
+ optionalServerClusters: [Groups.Cluster.id],
128
88
  });
129
89
  export const coverDevice = DeviceTypeDefinition({
130
90
  name: 'MA-windowCovering',
@@ -132,13 +92,8 @@ export const coverDevice = DeviceTypeDefinition({
132
92
  deviceClass: DeviceClasses.Simple,
133
93
  revision: 3,
134
94
  requiredServerClusters: [Identify.Cluster.id, WindowCovering.Cluster.id],
135
- optionalServerClusters: [Groups.Cluster.id /* , Scenes.Cluster.id,*/],
95
+ optionalServerClusters: [Groups.Cluster.id],
136
96
  });
137
- /**
138
- * Remark: it may have a thermostat device type.
139
- * Additional device types MAY also be included in device compositions.
140
- * The FanControl cluster must have the FanModeSequence attribute.
141
- */
142
97
  export const fanDevice = DeviceTypeDefinition({
143
98
  name: 'MA-fan',
144
99
  code: 0x2b,
@@ -153,7 +108,7 @@ export const thermostatDevice = DeviceTypeDefinition({
153
108
  deviceClass: DeviceClasses.Simple,
154
109
  revision: 3,
155
110
  requiredServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
156
- optionalServerClusters: [Groups.Cluster.id /* , Scenes.Cluster.id,*/, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id, TimeSynchronization.Cluster.id],
111
+ optionalServerClusters: [Groups.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id, TimeSynchronization.Cluster.id],
157
112
  });
158
113
  export const contactSensor = DeviceTypeDefinition({
159
114
  name: 'MA-contactsensor',
@@ -219,34 +174,30 @@ export const roboticVacuumCleaner = DeviceTypeDefinition({
219
174
  requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
220
175
  optionalServerClusters: [RvcCleanMode.Cluster.id],
221
176
  });
222
- // Custom device types without client clusters (not working in Alexa)
223
177
  export const onOffSwitch = DeviceTypeDefinition({
224
178
  name: 'MA-onoffswitch',
225
179
  code: 0x0103,
226
180
  deviceClass: DeviceClasses.Simple,
227
181
  revision: 3,
228
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id],
182
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
229
183
  optionalServerClusters: [LevelControl.Cluster.id, ColorControl.Cluster.id],
230
184
  });
231
- // Custom device types without client clusters (not working in Alexa)
232
185
  export const dimmableSwitch = DeviceTypeDefinition({
233
186
  name: 'MA-dimmableswitch',
234
187
  code: 0x0104,
235
188
  deviceClass: DeviceClasses.Simple,
236
189
  revision: 3,
237
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
190
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
238
191
  optionalServerClusters: [ColorControl.Cluster.id],
239
192
  });
240
- // Custom device types without client clusters (not working in Alexa)
241
193
  export const colorTemperatureSwitch = DeviceTypeDefinition({
242
194
  name: 'MA-colortemperatureswitch',
243
195
  code: 0x0105,
244
196
  deviceClass: DeviceClasses.Simple,
245
197
  revision: 3,
246
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
198
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
247
199
  optionalServerClusters: [],
248
200
  });
249
- // Matter 1.2 and 1.3 device types
250
201
  export const airQualitySensor = DeviceTypeDefinition({
251
202
  name: 'MA-airQualitySensor',
252
203
  code: 0x002c,
@@ -292,7 +243,6 @@ export const rainSensor = DeviceTypeDefinition({
292
243
  requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
293
244
  optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
294
245
  });
295
- // Remark: A Smoke CO Alarm device type SHALL support an instance of a Power Source device type on some endpoint.
296
246
  export const smokeCoAlarm = DeviceTypeDefinition({
297
247
  name: 'MA-smokeCoAlarm',
298
248
  code: 0x0076,
@@ -301,12 +251,6 @@ export const smokeCoAlarm = DeviceTypeDefinition({
301
251
  requiredServerClusters: [Identify.Cluster.id, SmokeCoAlarm.Cluster.id],
302
252
  optionalServerClusters: [Groups.Cluster.id, TemperatureMeasurement.Cluster.id, RelativeHumidityMeasurement.Cluster.id, CarbonMonoxideConcentrationMeasurement.Cluster.id],
303
253
  });
304
- /**
305
- * Remark: LevelControl cluster:
306
- * 0 N/A Pump is stopped,
307
- * 1–200 Level / 2 (0.5–100.0%) Pump setpoint in percent
308
- * 201–255 100.0% Pump setpoint is 100.0%
309
- */
310
254
  export const pumpDevice = DeviceTypeDefinition({
311
255
  name: 'MA-pump',
312
256
  code: 0x303,
@@ -323,10 +267,6 @@ export const waterValve = DeviceTypeDefinition({
323
267
  requiredServerClusters: [Identify.Cluster.id, ValveConfigurationAndControl.Cluster.id],
324
268
  optionalServerClusters: [FlowMeasurement.Cluster.id],
325
269
  });
326
- /**
327
- * Remark: it may have a Thermostat, Temperature Sensor, Humidity Sensor and an Air Quality Sensor device type.
328
- * Additional device types MAY also be included in device compositions.
329
- */
330
270
  export const airPurifier = DeviceTypeDefinition({
331
271
  name: 'MA-airPurifier',
332
272
  code: 0x2d,
@@ -335,16 +275,6 @@ export const airPurifier = DeviceTypeDefinition({
335
275
  requiredServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
336
276
  optionalServerClusters: [Groups.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
337
277
  });
338
- /**
339
- * Remark: it may have a temperature sensor and a humidity sensor device.
340
- * Additional device types MAY also be included in device compositions.
341
- * The DF (Dead Front) feature is required for the On/Off cluster in this device type:
342
- * - Thermostat LocalTemperature null
343
- * - Temperature Measurement MeasuredValue null
344
- * - Relative Humidity Measurement MeasuredValue null
345
- * - Fan Control SpeedSetting null
346
- * - Fan Control PercentSetting null
347
- */
348
278
  export const airConditioner = DeviceTypeDefinition({
349
279
  name: 'MA-airConditioner',
350
280
  code: 0x72,
@@ -369,4 +299,3 @@ export const deviceEnergyManagement = DeviceTypeDefinition({
369
299
  requiredServerClusters: [DeviceEnergyManagement.Cluster.id, DeviceEnergyManagementMode.Cluster.id],
370
300
  optionalServerClusters: [],
371
301
  });
372
- //# sourceMappingURL=matterbridgeDeviceTypes.js.map
@@ -1,37 +1,5 @@
1
- /**
2
- * This file contains the class MatterbridgeDynamicPlatform.
3
- *
4
- * @file matterbridgeDynamicPlatform.ts
5
- * @author Luca Liguori
6
- * @date 2023-12-29
7
- * @version 1.0.5
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
1
  import { MatterbridgePlatform } from './matterbridgePlatform.js';
24
- /**
25
- * Represents a dynamic platform for Matterbridge.
26
- *
27
- */
28
2
  export class MatterbridgeDynamicPlatform extends MatterbridgePlatform {
29
- /**
30
- * Creates an instance of MatterbridgeDynamicPlatform.
31
- * @param {Matterbridge} matterbridge - The Matterbridge instance.
32
- * @param {AnsiLogger} log - The logger instance.
33
- * @param {PlatformConfig} config - The platform configuration.
34
- */
35
3
  constructor(matterbridge, log, config) {
36
4
  super(matterbridge, log, config);
37
5
  this.type = 'DynamicPlatform';
@@ -39,4 +7,3 @@ export class MatterbridgeDynamicPlatform extends MatterbridgePlatform {
39
7
  this.log.debug(`Matterbridge${this.type} loaded`);
40
8
  }
41
9
  }
42
- //# sourceMappingURL=matterbridgeDynamicPlatform.js.map