matterbridge 1.6.5 → 1.6.6-dev.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README-DEV.md +3 -3
  3. package/README.md +4 -0
  4. package/dist/cli.js +0 -26
  5. package/dist/cluster/export.js +0 -2
  6. package/dist/defaultConfigSchema.js +0 -23
  7. package/dist/deviceManager.js +1 -26
  8. package/dist/index.js +0 -30
  9. package/dist/logger/export.js +0 -1
  10. package/dist/matter/export.js +0 -1
  11. package/dist/matterbridge.js +106 -706
  12. package/dist/matterbridgeAccessoryPlatform.js +0 -33
  13. package/dist/matterbridgeBehaviors.js +10 -29
  14. package/dist/matterbridgeDevice.js +58 -939
  15. package/dist/matterbridgeDeviceTypes.js +21 -42
  16. package/dist/matterbridgeDynamicPlatform.js +0 -33
  17. package/dist/matterbridgeEdge.js +0 -528
  18. package/dist/matterbridgeEndpoint.js +79 -1090
  19. package/dist/matterbridgePlatform.js +36 -76
  20. package/dist/matterbridgeTypes.js +0 -24
  21. package/dist/matterbridgeWebsocket.js +8 -45
  22. package/dist/pluginManager.js +3 -237
  23. package/dist/storage/export.js +0 -1
  24. package/dist/utils/colorUtils.js +33 -165
  25. package/dist/utils/export.js +0 -1
  26. package/dist/utils/utils.js +7 -252
  27. package/frontend/build/asset-manifest.json +3 -3
  28. package/frontend/build/index.html +1 -1
  29. package/frontend/build/static/js/{main.0ab89802.js → main.a742de4e.js} +9 -9
  30. package/frontend/build/static/js/{main.0ab89802.js.map → main.a742de4e.js.map} +1 -1
  31. package/npm-shrinkwrap.json +115 -104
  32. package/package.json +5 -5
  33. package/dist/cli.d.ts +0 -25
  34. package/dist/cli.d.ts.map +0 -1
  35. package/dist/cli.js.map +0 -1
  36. package/dist/cluster/export.d.ts +0 -2
  37. package/dist/cluster/export.d.ts.map +0 -1
  38. package/dist/cluster/export.js.map +0 -1
  39. package/dist/defaultConfigSchema.d.ts +0 -27
  40. package/dist/defaultConfigSchema.d.ts.map +0 -1
  41. package/dist/defaultConfigSchema.js.map +0 -1
  42. package/dist/deviceManager.d.ts +0 -46
  43. package/dist/deviceManager.d.ts.map +0 -1
  44. package/dist/deviceManager.js.map +0 -1
  45. package/dist/index.d.ts +0 -40
  46. package/dist/index.d.ts.map +0 -1
  47. package/dist/index.js.map +0 -1
  48. package/dist/logger/export.d.ts +0 -2
  49. package/dist/logger/export.d.ts.map +0 -1
  50. package/dist/logger/export.js.map +0 -1
  51. package/dist/matter/export.d.ts +0 -5
  52. package/dist/matter/export.d.ts.map +0 -1
  53. package/dist/matter/export.js.map +0 -1
  54. package/dist/matterbridge.d.ts +0 -466
  55. package/dist/matterbridge.d.ts.map +0 -1
  56. package/dist/matterbridge.js.map +0 -1
  57. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -39
  58. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  59. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  60. package/dist/matterbridgeBehaviors.d.ts +0 -934
  61. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  62. package/dist/matterbridgeBehaviors.js.map +0 -1
  63. package/dist/matterbridgeDevice.d.ts +0 -6504
  64. package/dist/matterbridgeDevice.d.ts.map +0 -1
  65. package/dist/matterbridgeDevice.js.map +0 -1
  66. package/dist/matterbridgeDeviceTypes.d.ts +0 -65
  67. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  68. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  69. package/dist/matterbridgeDynamicPlatform.d.ts +0 -39
  70. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  71. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  72. package/dist/matterbridgeEdge.d.ts +0 -89
  73. package/dist/matterbridgeEdge.d.ts.map +0 -1
  74. package/dist/matterbridgeEdge.js.map +0 -1
  75. package/dist/matterbridgeEndpoint.d.ts +0 -8529
  76. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  77. package/dist/matterbridgeEndpoint.js.map +0 -1
  78. package/dist/matterbridgePlatform.d.ts +0 -96
  79. package/dist/matterbridgePlatform.d.ts.map +0 -1
  80. package/dist/matterbridgePlatform.js.map +0 -1
  81. package/dist/matterbridgeTypes.d.ts +0 -147
  82. package/dist/matterbridgeTypes.d.ts.map +0 -1
  83. package/dist/matterbridgeTypes.js.map +0 -1
  84. package/dist/matterbridgeWebsocket.d.ts +0 -49
  85. package/dist/matterbridgeWebsocket.d.ts.map +0 -1
  86. package/dist/matterbridgeWebsocket.js.map +0 -1
  87. package/dist/pluginManager.d.ts +0 -238
  88. package/dist/pluginManager.d.ts.map +0 -1
  89. package/dist/pluginManager.js.map +0 -1
  90. package/dist/storage/export.d.ts +0 -2
  91. package/dist/storage/export.d.ts.map +0 -1
  92. package/dist/storage/export.js.map +0 -1
  93. package/dist/utils/colorUtils.d.ts +0 -61
  94. package/dist/utils/colorUtils.d.ts.map +0 -1
  95. package/dist/utils/colorUtils.js.map +0 -1
  96. package/dist/utils/export.d.ts +0 -3
  97. package/dist/utils/export.d.ts.map +0 -1
  98. package/dist/utils/export.js.map +0 -1
  99. package/dist/utils/utils.d.ts +0 -221
  100. package/dist/utils/utils.d.ts.map +0 -1
  101. package/dist/utils/utils.js.map +0 -1
  102. /package/frontend/build/static/js/{main.0ab89802.js.LICENSE.txt → main.a742de4e.js.LICENSE.txt} +0 -0
@@ -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
- 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, } from '@matter/main/clusters';
24
- // @project-chip
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, } from '@matter/main/clusters';
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,
@@ -60,7 +36,7 @@ export const onOffLight = DeviceTypeDefinition({
60
36
  code: 0x0100,
61
37
  deviceClass: DeviceClasses.Simple,
62
38
  revision: 3,
63
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id],
39
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
64
40
  optionalServerClusters: [LevelControl.Cluster.id, ColorControl.Cluster.id],
65
41
  });
66
42
  export const dimmableLight = DeviceTypeDefinition({
@@ -68,7 +44,7 @@ export const dimmableLight = DeviceTypeDefinition({
68
44
  code: 0x0101,
69
45
  deviceClass: DeviceClasses.Simple,
70
46
  revision: 3,
71
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
47
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
72
48
  optionalServerClusters: [ColorControl.Cluster.id],
73
49
  });
74
50
  export const colorTemperatureLight = DeviceTypeDefinition({
@@ -76,7 +52,7 @@ export const colorTemperatureLight = DeviceTypeDefinition({
76
52
  code: 0x010c,
77
53
  deviceClass: DeviceClasses.Simple,
78
54
  revision: 4,
79
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
55
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
80
56
  optionalServerClusters: [],
81
57
  });
82
58
  export const onOffOutlet = DeviceTypeDefinition({
@@ -84,7 +60,7 @@ export const onOffOutlet = DeviceTypeDefinition({
84
60
  code: 0x010a,
85
61
  deviceClass: DeviceClasses.Simple,
86
62
  revision: 3,
87
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id],
63
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
88
64
  optionalServerClusters: [LevelControl.Cluster.id],
89
65
  });
90
66
  export const dimmableOutlet = DeviceTypeDefinition({
@@ -92,7 +68,7 @@ export const dimmableOutlet = DeviceTypeDefinition({
92
68
  code: 0x010b,
93
69
  deviceClass: DeviceClasses.Simple,
94
70
  revision: 3,
95
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
71
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
96
72
  optionalServerClusters: [],
97
73
  });
98
74
  export const doorLockDevice = DeviceTypeDefinition({
@@ -101,7 +77,7 @@ export const doorLockDevice = DeviceTypeDefinition({
101
77
  deviceClass: DeviceClasses.Simple,
102
78
  revision: 3,
103
79
  requiredServerClusters: [Identify.Cluster.id, DoorLock.Cluster.id],
104
- optionalServerClusters: [Groups.Cluster.id /* , Scenes.Cluster.id,*/],
80
+ optionalServerClusters: [Groups.Cluster.id],
105
81
  });
106
82
  export const coverDevice = DeviceTypeDefinition({
107
83
  name: 'MA-windowCovering',
@@ -109,7 +85,7 @@ export const coverDevice = DeviceTypeDefinition({
109
85
  deviceClass: DeviceClasses.Simple,
110
86
  revision: 3,
111
87
  requiredServerClusters: [Identify.Cluster.id, WindowCovering.Cluster.id],
112
- optionalServerClusters: [Groups.Cluster.id /* , Scenes.Cluster.id,*/],
88
+ optionalServerClusters: [Groups.Cluster.id],
113
89
  });
114
90
  export const fanDevice = DeviceTypeDefinition({
115
91
  name: 'MA-fan',
@@ -117,7 +93,7 @@ export const fanDevice = DeviceTypeDefinition({
117
93
  deviceClass: DeviceClasses.Simple,
118
94
  revision: 2,
119
95
  requiredServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
120
- optionalServerClusters: [Groups.Cluster.id /* , Scenes.Cluster.id,*/],
96
+ optionalServerClusters: [Groups.Cluster.id],
121
97
  });
122
98
  export const thermostatDevice = DeviceTypeDefinition({
123
99
  name: 'MA-thermostat',
@@ -125,7 +101,7 @@ export const thermostatDevice = DeviceTypeDefinition({
125
101
  deviceClass: DeviceClasses.Simple,
126
102
  revision: 3,
127
103
  requiredServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
128
- optionalServerClusters: [Groups.Cluster.id /* , Scenes.Cluster.id,*/, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id, TimeSynchronization.Cluster.id],
104
+ optionalServerClusters: [Groups.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id, TimeSynchronization.Cluster.id],
129
105
  });
130
106
  export const contactSensor = DeviceTypeDefinition({
131
107
  name: 'MA-contactsensor',
@@ -140,7 +116,6 @@ export const lightSensor = DeviceTypeDefinition({
140
116
  deviceClass: DeviceClasses.Simple,
141
117
  revision: 3,
142
118
  requiredServerClusters: [Identify.Cluster.id, IlluminanceMeasurement.Cluster.id],
143
- optionalClientClusters: [Groups.Cluster.id],
144
119
  });
145
120
  export const occupancySensor = DeviceTypeDefinition({
146
121
  name: 'MA-occupancysensor',
@@ -192,13 +167,12 @@ export const roboticVacuumCleaner = DeviceTypeDefinition({
192
167
  requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
193
168
  optionalServerClusters: [RvcCleanMode.Cluster.id],
194
169
  });
195
- // Custom device types without ClientClusters
196
170
  export const onOffSwitch = DeviceTypeDefinition({
197
171
  name: 'MA-onoffswitch',
198
172
  code: 0x0103,
199
173
  deviceClass: DeviceClasses.Simple,
200
174
  revision: 3,
201
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id],
175
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
202
176
  optionalServerClusters: [LevelControl.Cluster.id, ColorControl.Cluster.id],
203
177
  });
204
178
  export const dimmableSwitch = DeviceTypeDefinition({
@@ -206,7 +180,7 @@ export const dimmableSwitch = DeviceTypeDefinition({
206
180
  code: 0x0104,
207
181
  deviceClass: DeviceClasses.Simple,
208
182
  revision: 3,
209
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
183
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
210
184
  optionalServerClusters: [ColorControl.Cluster.id],
211
185
  });
212
186
  export const colorTemperatureSwitch = DeviceTypeDefinition({
@@ -214,10 +188,9 @@ export const colorTemperatureSwitch = DeviceTypeDefinition({
214
188
  code: 0x0105,
215
189
  deviceClass: DeviceClasses.Simple,
216
190
  revision: 3,
217
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
191
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
218
192
  optionalServerClusters: [],
219
193
  });
220
- // Matter 1.2 and 1.3 device types
221
194
  export const airQualitySensor = DeviceTypeDefinition({
222
195
  name: 'MA-airQualitySensor',
223
196
  code: 0x002c,
@@ -263,7 +236,6 @@ export const rainSensor = DeviceTypeDefinition({
263
236
  requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
264
237
  optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
265
238
  });
266
- // Remark: A Smoke CO Alarm device type SHALL support an instance of a Power Source device type on some endpoint.
267
239
  export const smokeCoAlarm = DeviceTypeDefinition({
268
240
  name: 'MA-smokeCoAlarm',
269
241
  code: 0x0076,
@@ -288,6 +260,14 @@ export const airPurifier = DeviceTypeDefinition({
288
260
  requiredServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
289
261
  optionalServerClusters: [Groups.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
290
262
  });
263
+ export const airConditioner = DeviceTypeDefinition({
264
+ name: 'MA-airConditioner',
265
+ code: 0x72,
266
+ deviceClass: DeviceClasses.Simple,
267
+ revision: 2,
268
+ requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, Thermostat.Cluster.id],
269
+ optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id, FanControl.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, TemperatureMeasurement.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
270
+ });
291
271
  export const electricalSensor = DeviceTypeDefinition({
292
272
  name: 'MA-electricalSensor',
293
273
  code: 0x0510,
@@ -304,4 +284,3 @@ export const deviceEnergyManagement = DeviceTypeDefinition({
304
284
  requiredServerClusters: [DeviceEnergyManagement.Cluster.id, DeviceEnergyManagementMode.Cluster.id],
305
285
  optionalServerClusters: [],
306
286
  });
307
- //# 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