matterbridge 3.0.2-dev-20250515-4122c94 → 3.0.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 (158) hide show
  1. package/dist/cli.d.ts +29 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +37 -2
  4. package/dist/cli.js.map +1 -0
  5. package/dist/cluster/export.d.ts +2 -0
  6. package/dist/cluster/export.d.ts.map +1 -0
  7. package/dist/cluster/export.js +2 -0
  8. package/dist/cluster/export.js.map +1 -0
  9. package/dist/defaultConfigSchema.d.ts +27 -0
  10. package/dist/defaultConfigSchema.d.ts.map +1 -0
  11. package/dist/defaultConfigSchema.js +23 -0
  12. package/dist/defaultConfigSchema.js.map +1 -0
  13. package/dist/deviceManager.d.ts +114 -0
  14. package/dist/deviceManager.d.ts.map +1 -0
  15. package/dist/deviceManager.js +94 -1
  16. package/dist/deviceManager.js.map +1 -0
  17. package/dist/frontend.d.ts +241 -0
  18. package/dist/frontend.d.ts.map +1 -0
  19. package/dist/frontend.js +334 -15
  20. package/dist/frontend.js.map +1 -0
  21. package/dist/helpers.d.ts +46 -0
  22. package/dist/helpers.d.ts.map +1 -0
  23. package/dist/helpers.js +49 -0
  24. package/dist/helpers.js.map +1 -0
  25. package/dist/index.d.ts +36 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +28 -1
  28. package/dist/index.js.map +1 -0
  29. package/dist/logger/export.d.ts +2 -0
  30. package/dist/logger/export.d.ts.map +1 -0
  31. package/dist/logger/export.js +1 -0
  32. package/dist/logger/export.js.map +1 -0
  33. package/dist/matter/behaviors.d.ts +2 -0
  34. package/dist/matter/behaviors.d.ts.map +1 -0
  35. package/dist/matter/behaviors.js +2 -0
  36. package/dist/matter/behaviors.js.map +1 -0
  37. package/dist/matter/clusters.d.ts +2 -0
  38. package/dist/matter/clusters.d.ts.map +1 -0
  39. package/dist/matter/clusters.js +2 -0
  40. package/dist/matter/clusters.js.map +1 -0
  41. package/dist/matter/devices.d.ts +2 -0
  42. package/dist/matter/devices.d.ts.map +1 -0
  43. package/dist/matter/devices.js +2 -0
  44. package/dist/matter/devices.js.map +1 -0
  45. package/dist/matter/endpoints.d.ts +2 -0
  46. package/dist/matter/endpoints.d.ts.map +1 -0
  47. package/dist/matter/endpoints.js +2 -0
  48. package/dist/matter/endpoints.js.map +1 -0
  49. package/dist/matter/export.d.ts +5 -0
  50. package/dist/matter/export.d.ts.map +1 -0
  51. package/dist/matter/export.js +2 -0
  52. package/dist/matter/export.js.map +1 -0
  53. package/dist/matter/types.d.ts +3 -0
  54. package/dist/matter/types.d.ts.map +1 -0
  55. package/dist/matter/types.js +2 -0
  56. package/dist/matter/types.js.map +1 -0
  57. package/dist/matterbridge.d.ts +435 -0
  58. package/dist/matterbridge.d.ts.map +1 -0
  59. package/dist/matterbridge.js +746 -47
  60. package/dist/matterbridge.js.map +1 -0
  61. package/dist/matterbridgeAccessoryPlatform.d.ts +40 -0
  62. package/dist/matterbridgeAccessoryPlatform.d.ts.map +1 -0
  63. package/dist/matterbridgeAccessoryPlatform.js +34 -0
  64. package/dist/matterbridgeAccessoryPlatform.js.map +1 -0
  65. package/dist/matterbridgeBehaviors.d.ts +1188 -0
  66. package/dist/matterbridgeBehaviors.d.ts.map +1 -0
  67. package/dist/matterbridgeBehaviors.js +53 -4
  68. package/dist/matterbridgeBehaviors.js.map +1 -0
  69. package/dist/matterbridgeDeviceTypes.d.ts +494 -0
  70. package/dist/matterbridgeDeviceTypes.d.ts.map +1 -0
  71. package/dist/matterbridgeDeviceTypes.js +431 -12
  72. package/dist/matterbridgeDeviceTypes.js.map +1 -0
  73. package/dist/matterbridgeDynamicPlatform.d.ts +40 -0
  74. package/dist/matterbridgeDynamicPlatform.d.ts.map +1 -0
  75. package/dist/matterbridgeDynamicPlatform.js +34 -0
  76. package/dist/matterbridgeDynamicPlatform.js.map +1 -0
  77. package/dist/matterbridgeEndpoint.d.ts +965 -0
  78. package/dist/matterbridgeEndpoint.d.ts.map +1 -0
  79. package/dist/matterbridgeEndpoint.js +807 -11
  80. package/dist/matterbridgeEndpoint.js.map +1 -0
  81. package/dist/matterbridgeEndpointHelpers.d.ts +2728 -0
  82. package/dist/matterbridgeEndpointHelpers.d.ts.map +1 -0
  83. package/dist/matterbridgeEndpointHelpers.js +147 -9
  84. package/dist/matterbridgeEndpointHelpers.js.map +1 -0
  85. package/dist/matterbridgePlatform.d.ts +294 -0
  86. package/dist/matterbridgePlatform.d.ts.map +1 -0
  87. package/dist/matterbridgePlatform.js +225 -7
  88. package/dist/matterbridgePlatform.js.map +1 -0
  89. package/dist/matterbridgeTypes.d.ts +187 -0
  90. package/dist/matterbridgeTypes.d.ts.map +1 -0
  91. package/dist/matterbridgeTypes.js +24 -0
  92. package/dist/matterbridgeTypes.js.map +1 -0
  93. package/dist/pluginManager.d.ts +273 -0
  94. package/dist/pluginManager.d.ts.map +1 -0
  95. package/dist/pluginManager.js +264 -3
  96. package/dist/pluginManager.js.map +1 -0
  97. package/dist/roboticVacuumCleaner.d.ts +43 -0
  98. package/dist/roboticVacuumCleaner.d.ts.map +1 -0
  99. package/dist/roboticVacuumCleaner.js +39 -3
  100. package/dist/roboticVacuumCleaner.js.map +1 -0
  101. package/dist/shelly.d.ts +153 -0
  102. package/dist/shelly.d.ts.map +1 -0
  103. package/dist/shelly.js +155 -7
  104. package/dist/shelly.js.map +1 -0
  105. package/dist/storage/export.d.ts +2 -0
  106. package/dist/storage/export.d.ts.map +1 -0
  107. package/dist/storage/export.js +1 -0
  108. package/dist/storage/export.js.map +1 -0
  109. package/dist/update.d.ts +58 -0
  110. package/dist/update.d.ts.map +1 -0
  111. package/dist/update.js +53 -0
  112. package/dist/update.js.map +1 -0
  113. package/dist/utils/colorUtils.d.ts +61 -0
  114. package/dist/utils/colorUtils.d.ts.map +1 -0
  115. package/dist/utils/colorUtils.js +205 -2
  116. package/dist/utils/colorUtils.js.map +1 -0
  117. package/dist/utils/commandLine.d.ts +58 -0
  118. package/dist/utils/commandLine.d.ts.map +1 -0
  119. package/dist/utils/commandLine.js +53 -0
  120. package/dist/utils/commandLine.js.map +1 -0
  121. package/dist/utils/copyDirectory.d.ts +32 -0
  122. package/dist/utils/copyDirectory.d.ts.map +1 -0
  123. package/dist/utils/copyDirectory.js +37 -1
  124. package/dist/utils/copyDirectory.js.map +1 -0
  125. package/dist/utils/createZip.d.ts +38 -0
  126. package/dist/utils/createZip.d.ts.map +1 -0
  127. package/dist/utils/createZip.js +42 -2
  128. package/dist/utils/createZip.js.map +1 -0
  129. package/dist/utils/deepCopy.d.ts +31 -0
  130. package/dist/utils/deepCopy.d.ts.map +1 -0
  131. package/dist/utils/deepCopy.js +38 -0
  132. package/dist/utils/deepCopy.js.map +1 -0
  133. package/dist/utils/deepEqual.d.ts +53 -0
  134. package/dist/utils/deepEqual.d.ts.map +1 -0
  135. package/dist/utils/deepEqual.js +71 -1
  136. package/dist/utils/deepEqual.js.map +1 -0
  137. package/dist/utils/export.d.ts +11 -0
  138. package/dist/utils/export.d.ts.map +1 -0
  139. package/dist/utils/export.js +1 -0
  140. package/dist/utils/export.js.map +1 -0
  141. package/dist/utils/hex.d.ts +48 -0
  142. package/dist/utils/hex.d.ts.map +1 -0
  143. package/dist/utils/hex.js +57 -0
  144. package/dist/utils/hex.js.map +1 -0
  145. package/dist/utils/isvalid.d.ts +102 -0
  146. package/dist/utils/isvalid.d.ts.map +1 -0
  147. package/dist/utils/isvalid.js +100 -0
  148. package/dist/utils/isvalid.js.map +1 -0
  149. package/dist/utils/network.d.ts +69 -0
  150. package/dist/utils/network.d.ts.map +1 -0
  151. package/dist/utils/network.js +76 -5
  152. package/dist/utils/network.js.map +1 -0
  153. package/dist/utils/wait.d.ts +51 -0
  154. package/dist/utils/wait.d.ts.map +1 -0
  155. package/dist/utils/wait.js +53 -5
  156. package/dist/utils/wait.js.map +1 -0
  157. package/npm-shrinkwrap.json +2 -2
  158. package/package.json +2 -1
@@ -0,0 +1,494 @@
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 { ClusterId, DeviceTypeId, EndpointNumber } from '@matter/main';
24
+ import { Semtag } from '@matter/main/types';
25
+ export declare enum DeviceClasses {
26
+ /** Node device type. */
27
+ Node = "Node",
28
+ /**
29
+ * Application device type.
30
+ * Application devices types are typically the most datatype endpoints on a node and in the network.
31
+ */
32
+ App = "App",
33
+ /**
34
+ * Utility device type.
35
+ * A Utility device type supports configuration and settings.
36
+ */
37
+ Utility = "Utility",
38
+ /**
39
+ * Simple device type.
40
+ * A Simple device type supports local control that is persistent, independent, and unsupervised.
41
+ */
42
+ Simple = "Simple",
43
+ /**
44
+ * Dynamic device type.
45
+ * A Dynamic device type supports intelligent and supervisory services, such as commissioning,
46
+ * monitoring, trend analysis, scheduling and central management. A dynamic device type is an
47
+ * application device type.
48
+ */
49
+ Dynamic = "Dynamic",
50
+ /** There exists a client application cluster on the endpoint. */
51
+ Client = "Client",
52
+ /** There exists a server application cluster on the endpoint. */
53
+ Server = "Server",
54
+ /** The device type is composed of 2 or more device types. */
55
+ Composed = "Composed",
56
+ /** The endpoint and at least one of its sibling endpoints have an overlap in application device type(s). */
57
+ Duplicate = "Duplicate",
58
+ /**
59
+ * The endpoint represents a Bridged Device, for which information about the state of
60
+ * its power source is available to the Bridge
61
+ */
62
+ BridgedPowerSourceInfo = "BridgedPowerSourceInfo"
63
+ }
64
+ export interface DeviceTypeDefinition {
65
+ name: string;
66
+ code: DeviceTypeId;
67
+ deviceClass: DeviceClasses;
68
+ revision: number;
69
+ requiredServerClusters: ClusterId[];
70
+ optionalServerClusters: ClusterId[];
71
+ requiredClientClusters: ClusterId[];
72
+ optionalClientClusters: ClusterId[];
73
+ }
74
+ export declare const DeviceTypeDefinition: ({ name, code, deviceClass, revision, requiredServerClusters, optionalServerClusters, requiredClientClusters, optionalClientClusters, }: {
75
+ name: string;
76
+ code: number;
77
+ deviceClass: DeviceClasses;
78
+ revision: number;
79
+ requiredServerClusters?: ClusterId[];
80
+ optionalServerClusters?: ClusterId[];
81
+ requiredClientClusters?: ClusterId[];
82
+ optionalClientClusters?: ClusterId[];
83
+ }) => DeviceTypeDefinition;
84
+ export interface MatterbridgeEndpointOptions extends EndpointOptions {
85
+ tagList?: Semtag[];
86
+ }
87
+ export interface EndpointOptions {
88
+ endpointId?: EndpointNumber;
89
+ uniqueStorageKey?: string;
90
+ }
91
+ export declare const powerSource: DeviceTypeDefinition;
92
+ /**
93
+ 2.5.3. Conditions
94
+ Please see the Base Device Type definition for conformance tags.
95
+ This device type SHALL only be used for Nodes which have a device type of Bridge.
96
+
97
+ 2.5.6. Endpoint Composition
98
+ • A Bridged Node endpoint SHALL support one of the following composition patterns:
99
+ ◦ Separate Endpoints: All application device types are supported on separate endpoints, and
100
+ not on the Bridged Node endpoint. The Bridged Node endpoint’s Descriptor cluster PartsList
101
+ attribute SHALL indicate a list of all endpoints representing the functionality of the bridged
102
+ device, including the endpoints supporting the application device types, i.e. the full-family
103
+ pattern defined in the System Model specification.
104
+ ◦ One Endpoint: Both the Bridged Node and one or more application device types are sup
105
+ ported on the same endpoint (following application device type rules). Endpoint composi
106
+ tion SHALL conform to the application device type(s) definition
107
+ */
108
+ export declare const bridgedNode: DeviceTypeDefinition;
109
+ export declare const electricalSensor: DeviceTypeDefinition;
110
+ export declare const deviceEnergyManagement: DeviceTypeDefinition;
111
+ /**
112
+ * Element Requirements:
113
+ * - Identify Command TriggerEffect
114
+ * - Scenes Management Command CopyScene
115
+ * - On/Off Feature Lighting
116
+ * - Level Control Feature OnOff
117
+ * - Level Control Feature Lighting
118
+ * - Level Control Attribute CurrentLevel 1 to 254
119
+ * - Level Control Attribute MinLevel 1
120
+ * - Level Control Attribute MaxLevel 254
121
+ */
122
+ export declare const onOffLight: DeviceTypeDefinition;
123
+ /**
124
+ * Element Requirements:
125
+ * - Identify Command TriggerEffect
126
+ * - Scenes Management Command CopyScene
127
+ * - On/Off Feature Lighting
128
+ * - Level Control Feature OnOff
129
+ * - Level Control Feature Lighting
130
+ * - Level Control Attribute CurrentLevel 1 to 254
131
+ * - Level Control Attribute MinLevel 1
132
+ * - Level Control Attribute MaxLevel 254
133
+ */
134
+ export declare const dimmableLight: DeviceTypeDefinition;
135
+ /**
136
+ * Element Requirements:
137
+ * - Identify Command TriggerEffect
138
+ * - Scenes Management Command CopyScene
139
+ * - On/Off Feature Lighting
140
+ * - Level Control Feature OnOff
141
+ * - Level Control Feature Lighting
142
+ * - Level Control Attribute CurrentLevel 1 to 254
143
+ * - Level Control Attribute MinLevel 1
144
+ * - Level Control Attribute MaxLevel 254
145
+ * - Color Control Feature ColorTemperature
146
+ * - Color Control Attribute RemainingTime
147
+ */
148
+ export declare const colorTemperatureLight: DeviceTypeDefinition;
149
+ /**
150
+ * Element Requirements:
151
+ * - Identify Command TriggerEffect
152
+ * - Scenes Management Command CopyScene
153
+ * - On/Off Feature Lighting
154
+ * - Level Control Feature OnOff
155
+ * - Level Control Feature Lighting
156
+ * - Level Control Attribute CurrentLevel 1 to 254
157
+ * - Level Control Attribute MinLevel 1
158
+ * - Level Control Attribute MaxLevel 254
159
+ * - Color Control Feature XY
160
+ * - Color Control Feature ColorTemperature
161
+ * - Color Control Attribute RemainingTime
162
+ */
163
+ export declare const extendedColorLight: DeviceTypeDefinition;
164
+ /**
165
+ * Element Requirements:
166
+ * - Identify Command TriggerEffect
167
+ * - Scenes Management Command CopyScene
168
+ * - On/Off Feature Lighting
169
+ * - Level Control Feature OnOff
170
+ * - Level Control Feature Lighting
171
+ * - Level Control Attribute CurrentLevel 1 to 254
172
+ * - Level Control Attribute MinLevel 1
173
+ * - Level Control Attribute MaxLevel 254
174
+ */
175
+ export declare const onOffOutlet: DeviceTypeDefinition;
176
+ /**
177
+ * Element Requirements:
178
+ * - Identify Command TriggerEffect
179
+ * - Scenes Management Command CopyScene
180
+ * - On/Off Feature Lighting
181
+ * - Level Control Feature OnOff
182
+ * - Level Control Feature Lighting
183
+ * - Level Control Attribute CurrentLevel 1 to 254
184
+ * - Level Control Attribute MinLevel 1
185
+ * - Level Control Attribute MaxLevel 254
186
+ */
187
+ export declare const dimmableOutlet: DeviceTypeDefinition;
188
+ /**
189
+ * A Mounted On/Off Control is a fixed device that provides power to another device that is plugged
190
+ * into it, and is capable of switching that provided power on or off.
191
+ * It is a simple device type that does not require any client clusters.
192
+ * Element Requirements:
193
+ * - Identify Command TriggerEffect
194
+ * - Scenes Management Command CopyScene
195
+ * - On/Off Feature Lighting
196
+ * - Level Control Feature OnOff
197
+ * - Level Control Feature Lighting
198
+ * - Level Control Attribute CurrentLevel 1 to 254
199
+ * - Level Control Attribute MinLevel 1
200
+ * - Level Control Attribute MaxLevel 254
201
+ */
202
+ export declare const onOffMountedSwitch: DeviceTypeDefinition;
203
+ /**
204
+ * A Mounted Dimmable Load Control is a fixed device that provides power to another device that is
205
+ * plugged into it, and is capable of being switched on or off and have its level adjusted. The Mounted
206
+ * Dimmable Load Control is typically used to control a conventional non-communicating light
207
+ * through its mains connection using phase cutting.
208
+ * It is a simple device type that does not require any client clusters.
209
+ * Element Requirements:
210
+ * - Identify Command TriggerEffect
211
+ * - Scenes Management Command CopyScene
212
+ * - On/Off Feature Lighting
213
+ * - Level Control Feature OnOff
214
+ * - Level Control Feature Lighting
215
+ * - Level Control Attribute CurrentLevel 1 to 254
216
+ * - Level Control Attribute MinLevel 1
217
+ * - Level Control Attribute MaxLevel 254
218
+ */
219
+ export declare const dimmableMountedSwitch: DeviceTypeDefinition;
220
+ /**
221
+ * Remark:
222
+ * On/Off Cluster:
223
+ * - Off If the pump is powered on, store the current level then immediately power it off.
224
+ * - On If the pump is powered off, power it on and move immediately to the level stored by a previous Off command. If no such level has been stored,
225
+ * move immediately to the maximum level allowed for the pump.
226
+ * - Toggle If the pump is powered on, proceed as for the Off command. If the device is powered off, proceed as for the On command.
227
+ *
228
+ * LevelControl cluster:
229
+ * Level Setpoint Meaning
230
+ * 0 N/A Pump is stopped,
231
+ * 1–200 Level / 2 (0.5–100.0%) Pump setpoint in percent
232
+ * 201–255 100.0% Pump setpoint is 100.0%
233
+ */
234
+ export declare const pumpDevice: DeviceTypeDefinition;
235
+ export declare const waterValve: DeviceTypeDefinition;
236
+ export declare const onOffSwitch: DeviceTypeDefinition;
237
+ export declare const dimmableSwitch: DeviceTypeDefinition;
238
+ export declare const colorTemperatureSwitch: DeviceTypeDefinition;
239
+ export declare const genericSwitch: DeviceTypeDefinition;
240
+ /**
241
+ * Closed or contact: state true
242
+ * Open or no contact: state false
243
+ */
244
+ export declare const contactSensor: DeviceTypeDefinition;
245
+ export declare const lightSensor: DeviceTypeDefinition;
246
+ export declare const occupancySensor: DeviceTypeDefinition;
247
+ export declare const temperatureSensor: DeviceTypeDefinition;
248
+ export declare const pressureSensor: DeviceTypeDefinition;
249
+ export declare const flowSensor: DeviceTypeDefinition;
250
+ export declare const humiditySensor: DeviceTypeDefinition;
251
+ export declare const smokeCoAlarm: DeviceTypeDefinition;
252
+ export declare const airQualitySensor: DeviceTypeDefinition;
253
+ export declare const waterFreezeDetector: DeviceTypeDefinition;
254
+ export declare const waterLeakDetector: DeviceTypeDefinition;
255
+ export declare const rainSensor: DeviceTypeDefinition;
256
+ /**
257
+ * A Door Lock is a device used to secure a door. It is possible to actuate a door lock either by means of a manual or a remote method.
258
+ * Element Requirements:
259
+ *
260
+ * - AccessControl Attribute Extension
261
+ * - DoorLock Feature User
262
+ * - DoorLock Attribute AlarmMask
263
+ */
264
+ export declare const doorLockDevice: DeviceTypeDefinition;
265
+ export declare const coverDevice: DeviceTypeDefinition;
266
+ /**
267
+ * A Thermostat device is capable of having either built-in or separate sensors for temperature,
268
+ * humidity or occupancy. It allows the desired temperature to be set either remotely or locally. The
269
+ * thermostat is capable of sending heating and/or cooling requirement notifications to a heating/cooling
270
+ * unit (for example, an indoor air handler) or is capable of including a mechanism to control a
271
+ * heating or cooling unit directly.
272
+ *
273
+ */
274
+ export declare const thermostatDevice: DeviceTypeDefinition;
275
+ /**
276
+ * A Fan device is typically standalone or mounted on a ceiling or wall and is used to circulate air in a room.
277
+ * Remark: it may have a thermostat device type.
278
+ * Additional device types MAY also be included in device compositions.
279
+ * Element Requirements:
280
+ * The FanControl cluster must have the FanModeSequence attribute.
281
+ *
282
+ * The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
283
+ * includes an Off setting.
284
+ * If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
285
+ * attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
286
+ * FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
287
+ * attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
288
+ * the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
289
+ * zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
290
+ * PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
291
+ * would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
292
+ * SpeedSetting and PercentSetting.
293
+ */
294
+ export declare const fanDevice: DeviceTypeDefinition;
295
+ /**
296
+ * An Air Purifier is a standalone device that is designed to clean the air in a room.
297
+ * It is a device that has a fan to control the air speed while it is operating. Optionally, it can report on
298
+ * the condition of its filters.
299
+ *
300
+ * Remark:
301
+ * An Air Purifier MAY expose elements of its functionality through one or more additional device
302
+ * types on different endpoints. All devices used in compositions SHALL adhere to the disambiguation
303
+ * requirements of the System Model. Other device types, not explicitly listed in the table, MAY also be
304
+ * included in device compositions but are not considered part of the core functionality of the device.
305
+ * 0x0301 Thermostat O
306
+ * 0x0302 Temperature Sensor O
307
+ * 0x0307 Humidity Sensor O
308
+ * 0x002C Air Quality Sensor O
309
+ *
310
+ * Cluster Restrictions:
311
+ * The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
312
+ * includes an Off setting.
313
+ * If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
314
+ * attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
315
+ * FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
316
+ * attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
317
+ * the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
318
+ * zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
319
+ * PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
320
+ * would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
321
+ * SpeedSetting and PercentSetting.
322
+ *
323
+ */
324
+ export declare const airPurifier: DeviceTypeDefinition;
325
+ export declare const modeSelect: DeviceTypeDefinition;
326
+ /**
327
+ * This device type aggregates endpoints as a collection. Clusters on the endpoint indicating this
328
+ * device type provide functionality for the collection of descendant endpoints present in the PartsList
329
+ * of the endpoint’s descriptor, for example the Actions cluster.
330
+ *
331
+ * Endpoint Composition:
332
+ * An Aggregator endpoint’s Descriptor cluster PartsList attribute SHALL list the collection of all endpoints
333
+ * aggregated by the Aggregator device type, i.e. the full-family pattern defined in the System Model specification.
334
+ *
335
+ * Disambiguation:
336
+ * If the Duplicate condition applies to child endpoints of an Aggregator endpoint that represent multiple
337
+ * independent bridged devices, the endpoints SHOULD make available metadata to allow a
338
+ * client to disambiguate distinct bridged devices with an overlap in application device types.
339
+ *
340
+ * Typically this is done using the NodeLabel attribute of the Bridged Device Basic Information cluster
341
+ * - thus reusing the naming information which the bridge already has to allow disambiguation to the
342
+ * user when using a direct user interface to the bridge.
343
+ *
344
+ * Actions cluster (9.14 Matter specification):
345
+ * If a Bridge has (such) information on topology or logical grouping, it SHOULD expose such information
346
+ * in the EndpointLists attribute of an Actions cluster (the ActionLists of which MAY be empty if
347
+ * no actions are exposed). 9.12 Matter specification
348
+ *
349
+ * 9.12.5. New features for Bridged Devices
350
+ * Bridged Devices can have their software updated independently of the Bridge, through Bridge Manufacturer-
351
+ * specific means. These updates MAY result in one or more changes to their capabilities,
352
+ * such as supported clusters and/or attributes, for an endpoint. Like every Matter Node, every endpoint
353
+ * on the Bridge’s Node contains a Descriptor cluster that contains attributes for the device types
354
+ * (DeviceTypeList), endpoints (PartsList) and supported clusters (ServerList and ClientList). Nodes
355
+ * that wish to be notified of such changes SHOULD monitor changes of these attributes.
356
+ */
357
+ export declare const aggregator: DeviceTypeDefinition;
358
+ export declare const bridge: DeviceTypeDefinition;
359
+ /**
360
+ * A Robotic Vacuum Cleaner is a device that is capable of cleaning floors and other surfaces
361
+ * in a home or office environment. It is typically a mobile device that can navigate around
362
+ * obstacles and can be controlled remotely.
363
+ *
364
+ * Cluster Usage:
365
+ * The RVC Operational State cluster’s OperationalState attribute SHALL be updated according to the
366
+ * state of the device, and therefore it SHOULD be used for monitoring purposes.
367
+ *
368
+ * To attempt starting a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
369
+ * command with the NewMode field set to a mode that has the Cleaning mode tag associated with it.
370
+ *
371
+ * To attempt stopping a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
372
+ * command with the NewMode field set to a mode that has the Idle mode tag associated with it.
373
+ *
374
+ * To attempt pausing a cleaning operation, the RVC Operational State cluster can be sent a Pause command.
375
+ *
376
+ * To attempt resuming a cleaning operation, the RVC Operational State cluster can be sent a Resume
377
+ * command.
378
+ *
379
+ *
380
+ */
381
+ export declare const roboticVacuumCleaner: DeviceTypeDefinition;
382
+ /**
383
+ * Cluster Restrictions:
384
+ * On/Off Cluster: the DF (Dead Front) feature is required
385
+ */
386
+ export declare const laundryWasher: DeviceTypeDefinition;
387
+ /**
388
+ * A refrigerator represents a device that contains one or more cabinets that are capable of chilling or freezing food.
389
+ * A Refrigerator SHALL be composed of at least one endpoint with the Temperature Controlled Cabinet device type.
390
+ *
391
+ * Device Type Requirements:
392
+ * 0x0071 Temperature Controlled Cabinet
393
+ */
394
+ export declare const refrigerator: DeviceTypeDefinition;
395
+ /**
396
+ * A Room Air Conditioner is a device with the primary function of controlling the air temperature in a single room.
397
+ *
398
+ * A Room Air Conditioner MAY have zero or more of each device type listed in this table subject to
399
+ * the conformance column of the table. All devices used in compositions SHALL adhere to the disambiguation
400
+ * requirements of the System Model. Additional device types not listed in this table MAY also be included in device compositions.
401
+ * 0x0302 Temperature Sensor O
402
+ * 0x0307 Humidity Sensor O
403
+ *
404
+ * Remark:
405
+ * The DF (Dead Front) feature is required for the On/Off cluster in this device type:
406
+ * - Thermostat LocalTemperature null
407
+ * - Temperature Measurement MeasuredValue null
408
+ * - Relative Humidity Measurement MeasuredValue null
409
+ * - Fan Control SpeedSetting null
410
+ * - Fan Control PercentSetting null
411
+ */
412
+ export declare const airConditioner: DeviceTypeDefinition;
413
+ /**
414
+ * A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
415
+ * a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
416
+ * chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
417
+ * device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
418
+ * range, or similar device.
419
+ * Conditions:
420
+ * Cooler The device has cooling functionality.
421
+ */
422
+ export declare const temperatureControlledCabinetCooler: DeviceTypeDefinition;
423
+ /**
424
+ * A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
425
+ * a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
426
+ * chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
427
+ * device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
428
+ * range, or similar device.
429
+ * Conditions:
430
+ * Heater The device has heating functionality.
431
+ */
432
+ export declare const temperatureControlledCabinetHeater: DeviceTypeDefinition;
433
+ /**
434
+ * Cluster Restrictions:
435
+ * On/Off Cluster: the DF (Dead Front) feature is required
436
+ */
437
+ export declare const dishwasher: DeviceTypeDefinition;
438
+ /**
439
+ * Cluster Restrictions:
440
+ * On/Off Cluster: the DF (Dead Front) feature is required
441
+ */
442
+ export declare const laundryDryer: DeviceTypeDefinition;
443
+ /**
444
+ * A Cook Surface device type represents a heating object on a cooktop or other similar device. It
445
+ * SHALL only be used when composed as part of another device type (cooktop).
446
+ *
447
+ * Cluster Restrictions:
448
+ * The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements.
449
+ */
450
+ export declare const cookSurface: DeviceTypeDefinition;
451
+ /**
452
+ * A cooktop is a cooking surface that heats food either by transferring currents from an electromagnetic
453
+ * field located below the glass surface directly to the magnetic induction cookware placed
454
+ * above or through traditional gas or electric burners.
455
+ *
456
+ * Device Type Requirements:
457
+ * A Cooktop SHALL be composed of zero or more endpoints with the Cook Surface device type as defined by the conformance below.
458
+ * 0x0077 Cook Surface min 1 O
459
+ *
460
+ * Cluster Restrictions:
461
+ * The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements.
462
+ */
463
+ export declare const cooktop: DeviceTypeDefinition;
464
+ /**
465
+ * An oven represents a device that contains one or more cabinets, and optionally a single cooktop, that are all capable of heating food.
466
+ * An oven is always defined via endpoint composition.
467
+ * Conditions:
468
+ * An Oven SHALL have the Heater condition applied to at least one endpoint containing the Temperature Control Cluster.
469
+ * Device Type Requirements:
470
+ * 0x0071 Temperature Controlled Cabinet min 1
471
+ * 0x0078 Cooktop
472
+ */
473
+ export declare const oven: DeviceTypeDefinition;
474
+ /**
475
+ * An Extractor Hood is a device that is generally installed above a cooking surface in residential kitchens.
476
+ * Additional device types not listed in this table MAY also be included in device compositions.
477
+ * Device Type Requirements:
478
+ * 0x0100+ On/Off Light+ O
479
+ *
480
+ *
481
+ * Element Requirements:
482
+ * 0x0202 Fan Control Feature Rocking X
483
+ * 0x0202 Fan Control Feature Wind X
484
+ * 0x0202 Fan Control Feature AirflowDirection X
485
+ */
486
+ export declare const extractorHood: DeviceTypeDefinition;
487
+ /**
488
+ * A Microwave Oven is a device with the primary function of heating foods and beverages using a magnetron.
489
+ * A Microwave Oven is a device which at a minimum is capable of being started and stopped and of setting a power level.
490
+ * A Microwave Oven MAY also support additional capabilities via endpoint composition.
491
+ *
492
+ */
493
+ export declare const microwaveOven: DeviceTypeDefinition;
494
+ //# sourceMappingURL=matterbridgeDeviceTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterbridgeDeviceTypes.d.ts","sourceRoot":"","sources":["../src/matterbridgeDeviceTypes.ts"],"names":[],"mappings":"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"}