matterbridge 3.0.2 → 3.0.3-dev-20250517-720018f
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.
- package/CHANGELOG.md +22 -3
- package/dist/cli.js +2 -37
- package/dist/cluster/export.js +0 -2
- package/dist/defaultConfigSchema.js +0 -23
- package/dist/deviceManager.js +1 -94
- package/dist/frontend.js +71 -369
- package/dist/helpers.js +25 -56
- package/dist/index.js +2 -31
- package/dist/logger/export.js +0 -1
- package/dist/matter/behaviors.js +0 -2
- package/dist/matter/clusters.js +0 -2
- package/dist/matter/devices.js +0 -2
- package/dist/matter/endpoints.js +0 -2
- package/dist/matter/export.js +0 -2
- package/dist/matter/types.js +0 -2
- package/dist/matterbridge.js +143 -873
- package/dist/matterbridgeAccessoryPlatform.js +0 -34
- package/dist/matterbridgeBehaviors.js +4 -53
- package/dist/matterbridgeDeviceTypes.js +34 -431
- package/dist/matterbridgeDynamicPlatform.js +0 -34
- package/dist/matterbridgeEndpoint.js +11 -807
- package/dist/matterbridgeEndpointHelpers.js +9 -147
- package/dist/matterbridgePlatform.js +7 -225
- package/dist/matterbridgeTypes.js +0 -24
- package/dist/pluginManager.js +3 -264
- package/dist/roboticVacuumCleaner.js +3 -39
- package/dist/shelly.js +7 -155
- package/dist/storage/export.js +0 -1
- package/dist/update.js +0 -53
- package/dist/utils/colorUtils.js +2 -205
- package/dist/utils/commandLine.js +0 -53
- package/dist/utils/copyDirectory.js +1 -37
- package/dist/utils/createZip.js +2 -42
- package/dist/utils/deepCopy.js +0 -38
- package/dist/utils/deepEqual.js +1 -71
- package/dist/utils/export.js +0 -1
- package/dist/utils/hex.js +0 -57
- package/dist/utils/isvalid.js +0 -100
- package/dist/utils/network.js +5 -76
- package/dist/utils/wait.js +20 -56
- package/frontend/build/asset-manifest.json +3 -3
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/js/{main.f6e0f736.js → main.2486c3e3.js} +3 -3
- package/frontend/build/static/js/{main.f6e0f736.js.map → main.2486c3e3.js.map} +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -2
- package/dist/cli.d.ts +0 -29
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/cluster/export.d.ts +0 -2
- package/dist/cluster/export.d.ts.map +0 -1
- package/dist/cluster/export.js.map +0 -1
- package/dist/defaultConfigSchema.d.ts +0 -27
- package/dist/defaultConfigSchema.d.ts.map +0 -1
- package/dist/defaultConfigSchema.js.map +0 -1
- package/dist/deviceManager.d.ts +0 -114
- package/dist/deviceManager.d.ts.map +0 -1
- package/dist/deviceManager.js.map +0 -1
- package/dist/frontend.d.ts +0 -241
- package/dist/frontend.d.ts.map +0 -1
- package/dist/frontend.js.map +0 -1
- package/dist/helpers.d.ts +0 -46
- package/dist/helpers.d.ts.map +0 -1
- package/dist/helpers.js.map +0 -1
- package/dist/index.d.ts +0 -36
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/logger/export.d.ts +0 -2
- package/dist/logger/export.d.ts.map +0 -1
- package/dist/logger/export.js.map +0 -1
- package/dist/matter/behaviors.d.ts +0 -2
- package/dist/matter/behaviors.d.ts.map +0 -1
- package/dist/matter/behaviors.js.map +0 -1
- package/dist/matter/clusters.d.ts +0 -2
- package/dist/matter/clusters.d.ts.map +0 -1
- package/dist/matter/clusters.js.map +0 -1
- package/dist/matter/devices.d.ts +0 -2
- package/dist/matter/devices.d.ts.map +0 -1
- package/dist/matter/devices.js.map +0 -1
- package/dist/matter/endpoints.d.ts +0 -2
- package/dist/matter/endpoints.d.ts.map +0 -1
- package/dist/matter/endpoints.js.map +0 -1
- package/dist/matter/export.d.ts +0 -5
- package/dist/matter/export.d.ts.map +0 -1
- package/dist/matter/export.js.map +0 -1
- package/dist/matter/types.d.ts +0 -3
- package/dist/matter/types.d.ts.map +0 -1
- package/dist/matter/types.js.map +0 -1
- package/dist/matterbridge.d.ts +0 -435
- package/dist/matterbridge.d.ts.map +0 -1
- package/dist/matterbridge.js.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.d.ts +0 -40
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
- package/dist/matterbridgeBehaviors.d.ts +0 -1188
- package/dist/matterbridgeBehaviors.d.ts.map +0 -1
- package/dist/matterbridgeBehaviors.js.map +0 -1
- package/dist/matterbridgeDeviceTypes.d.ts +0 -494
- package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
- package/dist/matterbridgeDeviceTypes.js.map +0 -1
- package/dist/matterbridgeDynamicPlatform.d.ts +0 -40
- package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
- package/dist/matterbridgeDynamicPlatform.js.map +0 -1
- package/dist/matterbridgeEndpoint.d.ts +0 -965
- package/dist/matterbridgeEndpoint.d.ts.map +0 -1
- package/dist/matterbridgeEndpoint.js.map +0 -1
- package/dist/matterbridgeEndpointHelpers.d.ts +0 -2728
- package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
- package/dist/matterbridgeEndpointHelpers.js.map +0 -1
- package/dist/matterbridgePlatform.d.ts +0 -294
- package/dist/matterbridgePlatform.d.ts.map +0 -1
- package/dist/matterbridgePlatform.js.map +0 -1
- package/dist/matterbridgeTypes.d.ts +0 -187
- package/dist/matterbridgeTypes.d.ts.map +0 -1
- package/dist/matterbridgeTypes.js.map +0 -1
- package/dist/pluginManager.d.ts +0 -273
- package/dist/pluginManager.d.ts.map +0 -1
- package/dist/pluginManager.js.map +0 -1
- package/dist/roboticVacuumCleaner.d.ts +0 -43
- package/dist/roboticVacuumCleaner.d.ts.map +0 -1
- package/dist/roboticVacuumCleaner.js.map +0 -1
- package/dist/shelly.d.ts +0 -153
- package/dist/shelly.d.ts.map +0 -1
- package/dist/shelly.js.map +0 -1
- package/dist/storage/export.d.ts +0 -2
- package/dist/storage/export.d.ts.map +0 -1
- package/dist/storage/export.js.map +0 -1
- package/dist/update.d.ts +0 -58
- package/dist/update.d.ts.map +0 -1
- package/dist/update.js.map +0 -1
- package/dist/utils/colorUtils.d.ts +0 -61
- package/dist/utils/colorUtils.d.ts.map +0 -1
- package/dist/utils/colorUtils.js.map +0 -1
- package/dist/utils/commandLine.d.ts +0 -58
- package/dist/utils/commandLine.d.ts.map +0 -1
- package/dist/utils/commandLine.js.map +0 -1
- package/dist/utils/copyDirectory.d.ts +0 -32
- package/dist/utils/copyDirectory.d.ts.map +0 -1
- package/dist/utils/copyDirectory.js.map +0 -1
- package/dist/utils/createZip.d.ts +0 -38
- package/dist/utils/createZip.d.ts.map +0 -1
- package/dist/utils/createZip.js.map +0 -1
- package/dist/utils/deepCopy.d.ts +0 -31
- package/dist/utils/deepCopy.d.ts.map +0 -1
- package/dist/utils/deepCopy.js.map +0 -1
- package/dist/utils/deepEqual.d.ts +0 -53
- package/dist/utils/deepEqual.d.ts.map +0 -1
- package/dist/utils/deepEqual.js.map +0 -1
- package/dist/utils/export.d.ts +0 -11
- package/dist/utils/export.d.ts.map +0 -1
- package/dist/utils/export.js.map +0 -1
- package/dist/utils/hex.d.ts +0 -48
- package/dist/utils/hex.d.ts.map +0 -1
- package/dist/utils/hex.js.map +0 -1
- package/dist/utils/isvalid.d.ts +0 -102
- package/dist/utils/isvalid.d.ts.map +0 -1
- package/dist/utils/isvalid.js.map +0 -1
- package/dist/utils/network.d.ts +0 -69
- package/dist/utils/network.d.ts.map +0 -1
- package/dist/utils/network.js.map +0 -1
- package/dist/utils/wait.d.ts +0 -51
- package/dist/utils/wait.d.ts.map +0 -1
- package/dist/utils/wait.js.map +0 -1
- /package/frontend/build/static/js/{main.f6e0f736.js.LICENSE.txt → main.2486c3e3.js.LICENSE.txt} +0 -0
|
@@ -1,28 +1,4 @@
|
|
|
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
|
-
// @matter
|
|
24
1
|
import { DeviceTypeId } from '@matter/main';
|
|
25
|
-
// @matter clusters
|
|
26
2
|
import { BooleanState } from '@matter/main/clusters/boolean-state';
|
|
27
3
|
import { BooleanStateConfiguration } from '@matter/main/clusters/boolean-state-configuration';
|
|
28
4
|
import { BridgedDeviceBasicInformation } from '@matter/main/clusters/bridged-device-basic-information';
|
|
@@ -88,44 +64,19 @@ import { RefrigeratorAlarm } from '@matter/main/clusters/refrigerator-alarm';
|
|
|
88
64
|
import { RefrigeratorAndTemperatureControlledCabinetMode } from '@matter/main/clusters/refrigerator-and-temperature-controlled-cabinet-mode';
|
|
89
65
|
import { ServiceArea } from '@matter/main/clusters/service-area';
|
|
90
66
|
import { TemperatureControl } from '@matter/main/clusters/temperature-control';
|
|
67
|
+
import { OtaSoftwareUpdateRequestor } from '@matter/main/clusters/ota-software-update-requestor';
|
|
68
|
+
import { OtaSoftwareUpdateProvider } from '@matter/main/clusters';
|
|
91
69
|
export var DeviceClasses;
|
|
92
70
|
(function (DeviceClasses) {
|
|
93
|
-
/** Node device type. */
|
|
94
71
|
DeviceClasses["Node"] = "Node";
|
|
95
|
-
/**
|
|
96
|
-
* Application device type.
|
|
97
|
-
* Application devices types are typically the most datatype endpoints on a node and in the network.
|
|
98
|
-
*/
|
|
99
72
|
DeviceClasses["App"] = "App";
|
|
100
|
-
/**
|
|
101
|
-
* Utility device type.
|
|
102
|
-
* A Utility device type supports configuration and settings.
|
|
103
|
-
*/
|
|
104
73
|
DeviceClasses["Utility"] = "Utility";
|
|
105
|
-
/**
|
|
106
|
-
* Simple device type.
|
|
107
|
-
* A Simple device type supports local control that is persistent, independent, and unsupervised.
|
|
108
|
-
*/
|
|
109
74
|
DeviceClasses["Simple"] = "Simple";
|
|
110
|
-
/**
|
|
111
|
-
* Dynamic device type.
|
|
112
|
-
* A Dynamic device type supports intelligent and supervisory services, such as commissioning,
|
|
113
|
-
* monitoring, trend analysis, scheduling and central management. A dynamic device type is an
|
|
114
|
-
* application device type.
|
|
115
|
-
*/
|
|
116
75
|
DeviceClasses["Dynamic"] = "Dynamic";
|
|
117
|
-
/** There exists a client application cluster on the endpoint. */
|
|
118
76
|
DeviceClasses["Client"] = "Client";
|
|
119
|
-
/** There exists a server application cluster on the endpoint. */
|
|
120
77
|
DeviceClasses["Server"] = "Server";
|
|
121
|
-
/** The device type is composed of 2 or more device types. */
|
|
122
78
|
DeviceClasses["Composed"] = "Composed";
|
|
123
|
-
/** The endpoint and at least one of its sibling endpoints have an overlap in application device type(s). */
|
|
124
79
|
DeviceClasses["Duplicate"] = "Duplicate";
|
|
125
|
-
/**
|
|
126
|
-
* The endpoint represents a Bridged Device, for which information about the state of
|
|
127
|
-
* its power source is available to the Bridge
|
|
128
|
-
*/
|
|
129
80
|
DeviceClasses["BridgedPowerSourceInfo"] = "BridgedPowerSourceInfo";
|
|
130
81
|
})(DeviceClasses || (DeviceClasses = {}));
|
|
131
82
|
export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requiredServerClusters = [], optionalServerClusters = [], requiredClientClusters = [], optionalClientClusters = [], }) => ({
|
|
@@ -138,7 +89,6 @@ export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requir
|
|
|
138
89
|
requiredClientClusters,
|
|
139
90
|
optionalClientClusters,
|
|
140
91
|
});
|
|
141
|
-
// Utility device types
|
|
142
92
|
export const powerSource = DeviceTypeDefinition({
|
|
143
93
|
name: 'MA-powerSource',
|
|
144
94
|
code: 0x0011,
|
|
@@ -147,22 +97,26 @@ export const powerSource = DeviceTypeDefinition({
|
|
|
147
97
|
requiredServerClusters: [PowerSource.Cluster.id],
|
|
148
98
|
optionalServerClusters: [],
|
|
149
99
|
});
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
100
|
+
export const OTARequestor = DeviceTypeDefinition({
|
|
101
|
+
name: 'MA-OTARequestor',
|
|
102
|
+
code: 0x0012,
|
|
103
|
+
deviceClass: DeviceClasses.Utility,
|
|
104
|
+
revision: 1,
|
|
105
|
+
requiredServerClusters: [OtaSoftwareUpdateRequestor.Cluster.id],
|
|
106
|
+
optionalServerClusters: [],
|
|
107
|
+
requiredClientClusters: [OtaSoftwareUpdateProvider.Cluster.id],
|
|
108
|
+
optionalClientClusters: [],
|
|
109
|
+
});
|
|
110
|
+
export const OTAProvider = DeviceTypeDefinition({
|
|
111
|
+
name: 'MA-OTAProvider',
|
|
112
|
+
code: 0x0014,
|
|
113
|
+
deviceClass: DeviceClasses.Utility,
|
|
114
|
+
revision: 1,
|
|
115
|
+
requiredServerClusters: [OtaSoftwareUpdateProvider.Cluster.id],
|
|
116
|
+
optionalServerClusters: [],
|
|
117
|
+
requiredClientClusters: [OtaSoftwareUpdateRequestor.Cluster.id],
|
|
118
|
+
optionalClientClusters: [],
|
|
119
|
+
});
|
|
166
120
|
export const bridgedNode = DeviceTypeDefinition({
|
|
167
121
|
name: 'MA-bridgedNode',
|
|
168
122
|
code: 0x0013,
|
|
@@ -187,194 +141,77 @@ export const deviceEnergyManagement = DeviceTypeDefinition({
|
|
|
187
141
|
requiredServerClusters: [DeviceEnergyManagement.Cluster.id, DeviceEnergyManagementMode.Cluster.id],
|
|
188
142
|
optionalServerClusters: [],
|
|
189
143
|
});
|
|
190
|
-
// Lightning device types
|
|
191
|
-
/**
|
|
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
144
|
export const onOffLight = DeviceTypeDefinition({
|
|
203
145
|
name: 'MA-onofflight',
|
|
204
146
|
code: 0x0100,
|
|
205
147
|
deviceClass: DeviceClasses.Simple,
|
|
206
148
|
revision: 3,
|
|
207
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
149
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
|
|
208
150
|
optionalServerClusters: [LevelControl.Cluster.id],
|
|
209
151
|
});
|
|
210
|
-
/**
|
|
211
|
-
* Element Requirements:
|
|
212
|
-
* - Identify Command TriggerEffect
|
|
213
|
-
* - Scenes Management Command CopyScene
|
|
214
|
-
* - On/Off Feature Lighting
|
|
215
|
-
* - Level Control Feature OnOff
|
|
216
|
-
* - Level Control Feature Lighting
|
|
217
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
218
|
-
* - Level Control Attribute MinLevel 1
|
|
219
|
-
* - Level Control Attribute MaxLevel 254
|
|
220
|
-
*/
|
|
221
152
|
export const dimmableLight = DeviceTypeDefinition({
|
|
222
153
|
name: 'MA-dimmablelight',
|
|
223
154
|
code: 0x0101,
|
|
224
155
|
deviceClass: DeviceClasses.Simple,
|
|
225
156
|
revision: 3,
|
|
226
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
157
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
227
158
|
optionalServerClusters: [],
|
|
228
159
|
});
|
|
229
|
-
/**
|
|
230
|
-
* Element Requirements:
|
|
231
|
-
* - Identify Command TriggerEffect
|
|
232
|
-
* - Scenes Management Command CopyScene
|
|
233
|
-
* - On/Off Feature Lighting
|
|
234
|
-
* - Level Control Feature OnOff
|
|
235
|
-
* - Level Control Feature Lighting
|
|
236
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
237
|
-
* - Level Control Attribute MinLevel 1
|
|
238
|
-
* - Level Control Attribute MaxLevel 254
|
|
239
|
-
* - Color Control Feature ColorTemperature
|
|
240
|
-
* - Color Control Attribute RemainingTime
|
|
241
|
-
*/
|
|
242
160
|
export const colorTemperatureLight = DeviceTypeDefinition({
|
|
243
161
|
name: 'MA-colortemperaturelight',
|
|
244
162
|
code: 0x010c,
|
|
245
163
|
deviceClass: DeviceClasses.Simple,
|
|
246
164
|
revision: 4,
|
|
247
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
165
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
248
166
|
optionalServerClusters: [],
|
|
249
167
|
});
|
|
250
|
-
/**
|
|
251
|
-
* Element Requirements:
|
|
252
|
-
* - Identify Command TriggerEffect
|
|
253
|
-
* - Scenes Management Command CopyScene
|
|
254
|
-
* - On/Off Feature Lighting
|
|
255
|
-
* - Level Control Feature OnOff
|
|
256
|
-
* - Level Control Feature Lighting
|
|
257
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
258
|
-
* - Level Control Attribute MinLevel 1
|
|
259
|
-
* - Level Control Attribute MaxLevel 254
|
|
260
|
-
* - Color Control Feature XY
|
|
261
|
-
* - Color Control Feature ColorTemperature
|
|
262
|
-
* - Color Control Attribute RemainingTime
|
|
263
|
-
*/
|
|
264
168
|
export const extendedColorLight = DeviceTypeDefinition({
|
|
265
169
|
name: 'MA-extendedcolorlight',
|
|
266
170
|
code: 0x010d,
|
|
267
171
|
deviceClass: DeviceClasses.Simple,
|
|
268
172
|
revision: 4,
|
|
269
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
173
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
270
174
|
optionalServerClusters: [],
|
|
271
175
|
});
|
|
272
|
-
// Smart plugs/Outlets and other Actuators device types
|
|
273
|
-
/**
|
|
274
|
-
* Element Requirements:
|
|
275
|
-
* - Identify Command TriggerEffect
|
|
276
|
-
* - Scenes Management Command CopyScene
|
|
277
|
-
* - On/Off Feature Lighting
|
|
278
|
-
* - Level Control Feature OnOff
|
|
279
|
-
* - Level Control Feature Lighting
|
|
280
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
281
|
-
* - Level Control Attribute MinLevel 1
|
|
282
|
-
* - Level Control Attribute MaxLevel 254
|
|
283
|
-
*/
|
|
284
176
|
export const onOffOutlet = DeviceTypeDefinition({
|
|
285
177
|
name: 'MA-onoffpluginunit',
|
|
286
178
|
code: 0x010a,
|
|
287
179
|
deviceClass: DeviceClasses.Simple,
|
|
288
180
|
revision: 3,
|
|
289
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
181
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
|
|
290
182
|
optionalServerClusters: [LevelControl.Cluster.id],
|
|
291
183
|
});
|
|
292
|
-
/**
|
|
293
|
-
* Element Requirements:
|
|
294
|
-
* - Identify Command TriggerEffect
|
|
295
|
-
* - Scenes Management Command CopyScene
|
|
296
|
-
* - On/Off Feature Lighting
|
|
297
|
-
* - Level Control Feature OnOff
|
|
298
|
-
* - Level Control Feature Lighting
|
|
299
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
300
|
-
* - Level Control Attribute MinLevel 1
|
|
301
|
-
* - Level Control Attribute MaxLevel 254
|
|
302
|
-
*/
|
|
303
184
|
export const dimmableOutlet = DeviceTypeDefinition({
|
|
304
185
|
name: 'MA-dimmablepluginunit',
|
|
305
186
|
code: 0x010b,
|
|
306
187
|
deviceClass: DeviceClasses.Simple,
|
|
307
188
|
revision: 4,
|
|
308
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
189
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
309
190
|
optionalServerClusters: [],
|
|
310
191
|
});
|
|
311
|
-
/**
|
|
312
|
-
* A Mounted On/Off Control is a fixed device that provides power to another device that is plugged
|
|
313
|
-
* into it, and is capable of switching that provided power on or off.
|
|
314
|
-
* It is a simple device type that does not require any client clusters.
|
|
315
|
-
* Element Requirements:
|
|
316
|
-
* - Identify Command TriggerEffect
|
|
317
|
-
* - Scenes Management Command CopyScene
|
|
318
|
-
* - On/Off Feature Lighting
|
|
319
|
-
* - Level Control Feature OnOff
|
|
320
|
-
* - Level Control Feature Lighting
|
|
321
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
322
|
-
* - Level Control Attribute MinLevel 1
|
|
323
|
-
* - Level Control Attribute MaxLevel 254
|
|
324
|
-
*/
|
|
325
192
|
export const onOffMountedSwitch = DeviceTypeDefinition({
|
|
326
193
|
name: 'MA-onoffmountedswitch',
|
|
327
194
|
code: 0x010f,
|
|
328
195
|
deviceClass: DeviceClasses.Simple,
|
|
329
196
|
revision: 1,
|
|
330
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
197
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
|
|
331
198
|
optionalServerClusters: [LevelControl.Cluster.id],
|
|
332
199
|
});
|
|
333
|
-
/**
|
|
334
|
-
* A Mounted Dimmable Load Control is a fixed device that provides power to another device that is
|
|
335
|
-
* plugged into it, and is capable of being switched on or off and have its level adjusted. The Mounted
|
|
336
|
-
* Dimmable Load Control is typically used to control a conventional non-communicating light
|
|
337
|
-
* through its mains connection using phase cutting.
|
|
338
|
-
* It is a simple device type that does not require any client clusters.
|
|
339
|
-
* Element Requirements:
|
|
340
|
-
* - Identify Command TriggerEffect
|
|
341
|
-
* - Scenes Management Command CopyScene
|
|
342
|
-
* - On/Off Feature Lighting
|
|
343
|
-
* - Level Control Feature OnOff
|
|
344
|
-
* - Level Control Feature Lighting
|
|
345
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
346
|
-
* - Level Control Attribute MinLevel 1
|
|
347
|
-
* - Level Control Attribute MaxLevel 254
|
|
348
|
-
*/
|
|
349
200
|
export const dimmableMountedSwitch = DeviceTypeDefinition({
|
|
350
201
|
name: 'MA-dimmablemountedswitch',
|
|
351
202
|
code: 0x0110,
|
|
352
203
|
deviceClass: DeviceClasses.Simple,
|
|
353
204
|
revision: 1,
|
|
354
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
205
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
355
206
|
optionalServerClusters: [],
|
|
356
207
|
});
|
|
357
|
-
/**
|
|
358
|
-
* Remark:
|
|
359
|
-
* On/Off Cluster:
|
|
360
|
-
* - Off If the pump is powered on, store the current level then immediately power it off.
|
|
361
|
-
* - 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,
|
|
362
|
-
* move immediately to the maximum level allowed for the pump.
|
|
363
|
-
* - 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.
|
|
364
|
-
*
|
|
365
|
-
* LevelControl cluster:
|
|
366
|
-
* Level Setpoint Meaning
|
|
367
|
-
* 0 N/A Pump is stopped,
|
|
368
|
-
* 1–200 Level / 2 (0.5–100.0%) Pump setpoint in percent
|
|
369
|
-
* 201–255 100.0% Pump setpoint is 100.0%
|
|
370
|
-
*/
|
|
371
208
|
export const pumpDevice = DeviceTypeDefinition({
|
|
372
209
|
name: 'MA-pump',
|
|
373
210
|
code: 0x303,
|
|
374
211
|
deviceClass: DeviceClasses.Simple,
|
|
375
212
|
revision: 3,
|
|
376
213
|
requiredServerClusters: [OnOff.Cluster.id, PumpConfigurationAndControl.Cluster.id, Identify.Cluster.id],
|
|
377
|
-
optionalServerClusters: [LevelControl.Cluster.id, Groups.Cluster.id,
|
|
214
|
+
optionalServerClusters: [LevelControl.Cluster.id, Groups.Cluster.id, TemperatureMeasurement.Cluster.id, PressureMeasurement.Cluster.id, FlowMeasurement.Cluster.id],
|
|
378
215
|
});
|
|
379
216
|
export const waterValve = DeviceTypeDefinition({
|
|
380
217
|
name: 'MA-waterValve',
|
|
@@ -384,33 +221,29 @@ export const waterValve = DeviceTypeDefinition({
|
|
|
384
221
|
requiredServerClusters: [Identify.Cluster.id, ValveConfigurationAndControl.Cluster.id],
|
|
385
222
|
optionalServerClusters: [FlowMeasurement.Cluster.id],
|
|
386
223
|
});
|
|
387
|
-
// Switches and Controls device types
|
|
388
|
-
// Custom device types without client clusters (not working in Alexa)
|
|
389
224
|
export const onOffSwitch = DeviceTypeDefinition({
|
|
390
225
|
name: 'MA-onoffswitch',
|
|
391
226
|
code: 0x0103,
|
|
392
227
|
deviceClass: DeviceClasses.Simple,
|
|
393
228
|
revision: 3,
|
|
394
229
|
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id],
|
|
395
|
-
optionalServerClusters: [Groups.Cluster.id
|
|
230
|
+
optionalServerClusters: [Groups.Cluster.id],
|
|
396
231
|
});
|
|
397
|
-
// Custom device types without client clusters (not working in Alexa)
|
|
398
232
|
export const dimmableSwitch = DeviceTypeDefinition({
|
|
399
233
|
name: 'MA-dimmableswitch',
|
|
400
234
|
code: 0x0104,
|
|
401
235
|
deviceClass: DeviceClasses.Simple,
|
|
402
236
|
revision: 3,
|
|
403
237
|
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
404
|
-
optionalServerClusters: [Groups.Cluster.id
|
|
238
|
+
optionalServerClusters: [Groups.Cluster.id],
|
|
405
239
|
});
|
|
406
|
-
// Custom device types without client clusters (not working in Alexa)
|
|
407
240
|
export const colorTemperatureSwitch = DeviceTypeDefinition({
|
|
408
241
|
name: 'MA-colortemperatureswitch',
|
|
409
242
|
code: 0x0105,
|
|
410
243
|
deviceClass: DeviceClasses.Simple,
|
|
411
244
|
revision: 3,
|
|
412
245
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
413
|
-
optionalServerClusters: [Groups.Cluster.id
|
|
246
|
+
optionalServerClusters: [Groups.Cluster.id],
|
|
414
247
|
});
|
|
415
248
|
export const genericSwitch = DeviceTypeDefinition({
|
|
416
249
|
name: 'MA-genericswitch',
|
|
@@ -420,11 +253,6 @@ export const genericSwitch = DeviceTypeDefinition({
|
|
|
420
253
|
requiredServerClusters: [Identify.Cluster.id, Switch.Cluster.id],
|
|
421
254
|
optionalServerClusters: [],
|
|
422
255
|
});
|
|
423
|
-
// Sensor device types
|
|
424
|
-
/**
|
|
425
|
-
* Closed or contact: state true
|
|
426
|
-
* Open or no contact: state false
|
|
427
|
-
*/
|
|
428
256
|
export const contactSensor = DeviceTypeDefinition({
|
|
429
257
|
name: 'MA-contactsensor',
|
|
430
258
|
code: 0x0015,
|
|
@@ -476,7 +304,6 @@ export const humiditySensor = DeviceTypeDefinition({
|
|
|
476
304
|
revision: 2,
|
|
477
305
|
requiredServerClusters: [Identify.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
|
|
478
306
|
});
|
|
479
|
-
// Remark: A Smoke CO Alarm device type SHALL support an instance of a Power Source device type on some endpoint.
|
|
480
307
|
export const smokeCoAlarm = DeviceTypeDefinition({
|
|
481
308
|
name: 'MA-smokeCoAlarm',
|
|
482
309
|
code: 0x0076,
|
|
@@ -530,15 +357,6 @@ export const rainSensor = DeviceTypeDefinition({
|
|
|
530
357
|
requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
|
|
531
358
|
optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
|
|
532
359
|
});
|
|
533
|
-
// Closures device types
|
|
534
|
-
/**
|
|
535
|
-
* 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.
|
|
536
|
-
* Element Requirements:
|
|
537
|
-
*
|
|
538
|
-
* - AccessControl Attribute Extension
|
|
539
|
-
* - DoorLock Feature User
|
|
540
|
-
* - DoorLock Attribute AlarmMask
|
|
541
|
-
*/
|
|
542
360
|
export const doorLockDevice = DeviceTypeDefinition({
|
|
543
361
|
name: 'MA-doorLock',
|
|
544
362
|
code: 0xa,
|
|
@@ -555,15 +373,6 @@ export const coverDevice = DeviceTypeDefinition({
|
|
|
555
373
|
requiredServerClusters: [Identify.Cluster.id, WindowCovering.Cluster.id],
|
|
556
374
|
optionalServerClusters: [Groups.Cluster.id],
|
|
557
375
|
});
|
|
558
|
-
// HVAC device types
|
|
559
|
-
/**
|
|
560
|
-
* A Thermostat device is capable of having either built-in or separate sensors for temperature,
|
|
561
|
-
* humidity or occupancy. It allows the desired temperature to be set either remotely or locally. The
|
|
562
|
-
* thermostat is capable of sending heating and/or cooling requirement notifications to a heating/cooling
|
|
563
|
-
* unit (for example, an indoor air handler) or is capable of including a mechanism to control a
|
|
564
|
-
* heating or cooling unit directly.
|
|
565
|
-
*
|
|
566
|
-
*/
|
|
567
376
|
export const thermostatDevice = DeviceTypeDefinition({
|
|
568
377
|
name: 'MA-thermostat',
|
|
569
378
|
code: 0x301,
|
|
@@ -572,25 +381,6 @@ export const thermostatDevice = DeviceTypeDefinition({
|
|
|
572
381
|
requiredServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
|
|
573
382
|
optionalServerClusters: [Groups.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id],
|
|
574
383
|
});
|
|
575
|
-
/**
|
|
576
|
-
* A Fan device is typically standalone or mounted on a ceiling or wall and is used to circulate air in a room.
|
|
577
|
-
* Remark: it may have a thermostat device type.
|
|
578
|
-
* Additional device types MAY also be included in device compositions.
|
|
579
|
-
* Element Requirements:
|
|
580
|
-
* The FanControl cluster must have the FanModeSequence attribute.
|
|
581
|
-
*
|
|
582
|
-
* The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
|
|
583
|
-
* includes an Off setting.
|
|
584
|
-
* If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
|
|
585
|
-
* attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
|
|
586
|
-
* FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
|
|
587
|
-
* attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
|
|
588
|
-
* the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
|
|
589
|
-
* zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
|
|
590
|
-
* PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
|
|
591
|
-
* would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
|
|
592
|
-
* SpeedSetting and PercentSetting.
|
|
593
|
-
*/
|
|
594
384
|
export const fanDevice = DeviceTypeDefinition({
|
|
595
385
|
name: 'MA-fan',
|
|
596
386
|
code: 0x2b,
|
|
@@ -599,35 +389,6 @@ export const fanDevice = DeviceTypeDefinition({
|
|
|
599
389
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, FanControl.Cluster.id],
|
|
600
390
|
optionalServerClusters: [OnOff.Cluster.id],
|
|
601
391
|
});
|
|
602
|
-
/**
|
|
603
|
-
* An Air Purifier is a standalone device that is designed to clean the air in a room.
|
|
604
|
-
* It is a device that has a fan to control the air speed while it is operating. Optionally, it can report on
|
|
605
|
-
* the condition of its filters.
|
|
606
|
-
*
|
|
607
|
-
* Remark:
|
|
608
|
-
* An Air Purifier MAY expose elements of its functionality through one or more additional device
|
|
609
|
-
* types on different endpoints. All devices used in compositions SHALL adhere to the disambiguation
|
|
610
|
-
* requirements of the System Model. Other device types, not explicitly listed in the table, MAY also be
|
|
611
|
-
* included in device compositions but are not considered part of the core functionality of the device.
|
|
612
|
-
* 0x0301 Thermostat O
|
|
613
|
-
* 0x0302 Temperature Sensor O
|
|
614
|
-
* 0x0307 Humidity Sensor O
|
|
615
|
-
* 0x002C Air Quality Sensor O
|
|
616
|
-
*
|
|
617
|
-
* Cluster Restrictions:
|
|
618
|
-
* The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
|
|
619
|
-
* includes an Off setting.
|
|
620
|
-
* If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
|
|
621
|
-
* attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
|
|
622
|
-
* FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
|
|
623
|
-
* attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
|
|
624
|
-
* the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
|
|
625
|
-
* zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
|
|
626
|
-
* PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
|
|
627
|
-
* would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
|
|
628
|
-
* SpeedSetting and PercentSetting.
|
|
629
|
-
*
|
|
630
|
-
*/
|
|
631
392
|
export const airPurifier = DeviceTypeDefinition({
|
|
632
393
|
name: 'MA-airPurifier',
|
|
633
394
|
code: 0x2d,
|
|
@@ -636,7 +397,6 @@ export const airPurifier = DeviceTypeDefinition({
|
|
|
636
397
|
requiredServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
|
|
637
398
|
optionalServerClusters: [Groups.Cluster.id, OnOff.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
|
|
638
399
|
});
|
|
639
|
-
// Generic device types
|
|
640
400
|
export const modeSelect = DeviceTypeDefinition({
|
|
641
401
|
name: 'MA-modeselect',
|
|
642
402
|
code: 0x27,
|
|
@@ -644,37 +404,6 @@ export const modeSelect = DeviceTypeDefinition({
|
|
|
644
404
|
revision: 1,
|
|
645
405
|
requiredServerClusters: [ModeSelect.Cluster.id],
|
|
646
406
|
});
|
|
647
|
-
/**
|
|
648
|
-
* This device type aggregates endpoints as a collection. Clusters on the endpoint indicating this
|
|
649
|
-
* device type provide functionality for the collection of descendant endpoints present in the PartsList
|
|
650
|
-
* of the endpoint’s descriptor, for example the Actions cluster.
|
|
651
|
-
*
|
|
652
|
-
* Endpoint Composition:
|
|
653
|
-
* An Aggregator endpoint’s Descriptor cluster PartsList attribute SHALL list the collection of all endpoints
|
|
654
|
-
* aggregated by the Aggregator device type, i.e. the full-family pattern defined in the System Model specification.
|
|
655
|
-
*
|
|
656
|
-
* Disambiguation:
|
|
657
|
-
* If the Duplicate condition applies to child endpoints of an Aggregator endpoint that represent multiple
|
|
658
|
-
* independent bridged devices, the endpoints SHOULD make available metadata to allow a
|
|
659
|
-
* client to disambiguate distinct bridged devices with an overlap in application device types.
|
|
660
|
-
*
|
|
661
|
-
* Typically this is done using the NodeLabel attribute of the Bridged Device Basic Information cluster
|
|
662
|
-
* - thus reusing the naming information which the bridge already has to allow disambiguation to the
|
|
663
|
-
* user when using a direct user interface to the bridge.
|
|
664
|
-
*
|
|
665
|
-
* Actions cluster (9.14 Matter specification):
|
|
666
|
-
* If a Bridge has (such) information on topology or logical grouping, it SHOULD expose such information
|
|
667
|
-
* in the EndpointLists attribute of an Actions cluster (the ActionLists of which MAY be empty if
|
|
668
|
-
* no actions are exposed). 9.12 Matter specification
|
|
669
|
-
*
|
|
670
|
-
* 9.12.5. New features for Bridged Devices
|
|
671
|
-
* Bridged Devices can have their software updated independently of the Bridge, through Bridge Manufacturer-
|
|
672
|
-
* specific means. These updates MAY result in one or more changes to their capabilities,
|
|
673
|
-
* such as supported clusters and/or attributes, for an endpoint. Like every Matter Node, every endpoint
|
|
674
|
-
* on the Bridge’s Node contains a Descriptor cluster that contains attributes for the device types
|
|
675
|
-
* (DeviceTypeList), endpoints (PartsList) and supported clusters (ServerList and ClientList). Nodes
|
|
676
|
-
* that wish to be notified of such changes SHOULD monitor changes of these attributes.
|
|
677
|
-
*/
|
|
678
407
|
export const aggregator = DeviceTypeDefinition({
|
|
679
408
|
name: 'MA-aggregator',
|
|
680
409
|
code: 0x000e,
|
|
@@ -684,29 +413,6 @@ export const aggregator = DeviceTypeDefinition({
|
|
|
684
413
|
optionalServerClusters: [Actions.Cluster.id, Identify.Cluster.id, CommissionerControl.Cluster.id],
|
|
685
414
|
});
|
|
686
415
|
export const bridge = aggregator;
|
|
687
|
-
// Robotic device types
|
|
688
|
-
/**
|
|
689
|
-
* A Robotic Vacuum Cleaner is a device that is capable of cleaning floors and other surfaces
|
|
690
|
-
* in a home or office environment. It is typically a mobile device that can navigate around
|
|
691
|
-
* obstacles and can be controlled remotely.
|
|
692
|
-
*
|
|
693
|
-
* Cluster Usage:
|
|
694
|
-
* The RVC Operational State cluster’s OperationalState attribute SHALL be updated according to the
|
|
695
|
-
* state of the device, and therefore it SHOULD be used for monitoring purposes.
|
|
696
|
-
*
|
|
697
|
-
* To attempt starting a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
|
|
698
|
-
* command with the NewMode field set to a mode that has the Cleaning mode tag associated with it.
|
|
699
|
-
*
|
|
700
|
-
* To attempt stopping a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
|
|
701
|
-
* command with the NewMode field set to a mode that has the Idle mode tag associated with it.
|
|
702
|
-
*
|
|
703
|
-
* To attempt pausing a cleaning operation, the RVC Operational State cluster can be sent a Pause command.
|
|
704
|
-
*
|
|
705
|
-
* To attempt resuming a cleaning operation, the RVC Operational State cluster can be sent a Resume
|
|
706
|
-
* command.
|
|
707
|
-
*
|
|
708
|
-
*
|
|
709
|
-
*/
|
|
710
416
|
export const roboticVacuumCleaner = DeviceTypeDefinition({
|
|
711
417
|
name: 'MA-roboticvacuumcleaner',
|
|
712
418
|
code: 0x74,
|
|
@@ -715,11 +421,6 @@ export const roboticVacuumCleaner = DeviceTypeDefinition({
|
|
|
715
421
|
requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
|
|
716
422
|
optionalServerClusters: [RvcCleanMode.Cluster.id, ServiceArea.Cluster.id],
|
|
717
423
|
});
|
|
718
|
-
// Appliances device types
|
|
719
|
-
/**
|
|
720
|
-
* Cluster Restrictions:
|
|
721
|
-
* On/Off Cluster: the DF (Dead Front) feature is required
|
|
722
|
-
*/
|
|
723
424
|
export const laundryWasher = DeviceTypeDefinition({
|
|
724
425
|
name: 'MA-laundrywasher',
|
|
725
426
|
code: 0x73,
|
|
@@ -728,13 +429,6 @@ export const laundryWasher = DeviceTypeDefinition({
|
|
|
728
429
|
requiredServerClusters: [OperationalState.Cluster.id],
|
|
729
430
|
optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryWasherControls.Cluster.id, TemperatureControl.Cluster.id],
|
|
730
431
|
});
|
|
731
|
-
/**
|
|
732
|
-
* A refrigerator represents a device that contains one or more cabinets that are capable of chilling or freezing food.
|
|
733
|
-
* A Refrigerator SHALL be composed of at least one endpoint with the Temperature Controlled Cabinet device type.
|
|
734
|
-
*
|
|
735
|
-
* Device Type Requirements:
|
|
736
|
-
* 0x0071 Temperature Controlled Cabinet
|
|
737
|
-
*/
|
|
738
432
|
export const refrigerator = DeviceTypeDefinition({
|
|
739
433
|
name: 'MA-refrigerator',
|
|
740
434
|
code: 0x70,
|
|
@@ -743,23 +437,6 @@ export const refrigerator = DeviceTypeDefinition({
|
|
|
743
437
|
requiredServerClusters: [Identify.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id, RefrigeratorAlarm.Cluster.id],
|
|
744
438
|
optionalServerClusters: [],
|
|
745
439
|
});
|
|
746
|
-
/**
|
|
747
|
-
* A Room Air Conditioner is a device with the primary function of controlling the air temperature in a single room.
|
|
748
|
-
*
|
|
749
|
-
* A Room Air Conditioner MAY have zero or more of each device type listed in this table subject to
|
|
750
|
-
* the conformance column of the table. All devices used in compositions SHALL adhere to the disambiguation
|
|
751
|
-
* requirements of the System Model. Additional device types not listed in this table MAY also be included in device compositions.
|
|
752
|
-
* 0x0302 Temperature Sensor O
|
|
753
|
-
* 0x0307 Humidity Sensor O
|
|
754
|
-
*
|
|
755
|
-
* Remark:
|
|
756
|
-
* The DF (Dead Front) feature is required for the On/Off cluster in this device type:
|
|
757
|
-
* - Thermostat LocalTemperature null
|
|
758
|
-
* - Temperature Measurement MeasuredValue null
|
|
759
|
-
* - Relative Humidity Measurement MeasuredValue null
|
|
760
|
-
* - Fan Control SpeedSetting null
|
|
761
|
-
* - Fan Control PercentSetting null
|
|
762
|
-
*/
|
|
763
440
|
export const airConditioner = DeviceTypeDefinition({
|
|
764
441
|
name: 'MA-airConditioner',
|
|
765
442
|
code: 0x72,
|
|
@@ -768,22 +445,12 @@ export const airConditioner = DeviceTypeDefinition({
|
|
|
768
445
|
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, Thermostat.Cluster.id],
|
|
769
446
|
optionalServerClusters: [
|
|
770
447
|
Groups.Cluster.id,
|
|
771
|
-
/* ScenesManagement.Cluster.id,*/
|
|
772
448
|
FanControl.Cluster.id,
|
|
773
449
|
ThermostatUserInterfaceConfiguration.Cluster.id,
|
|
774
450
|
TemperatureMeasurement.Cluster.id,
|
|
775
451
|
RelativeHumidityMeasurement.Cluster.id,
|
|
776
452
|
],
|
|
777
453
|
});
|
|
778
|
-
/**
|
|
779
|
-
* A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
|
|
780
|
-
* a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
|
|
781
|
-
* chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
|
|
782
|
-
* device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
|
|
783
|
-
* range, or similar device.
|
|
784
|
-
* Conditions:
|
|
785
|
-
* Cooler The device has cooling functionality.
|
|
786
|
-
*/
|
|
787
454
|
export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
|
|
788
455
|
name: 'MA-temperaturecontrolledcabinetcooler',
|
|
789
456
|
code: 0x71,
|
|
@@ -792,15 +459,6 @@ export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
|
|
|
792
459
|
requiredServerClusters: [TemperatureControl.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id],
|
|
793
460
|
optionalServerClusters: [TemperatureMeasurement.Cluster.id],
|
|
794
461
|
});
|
|
795
|
-
/**
|
|
796
|
-
* A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
|
|
797
|
-
* a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
|
|
798
|
-
* chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
|
|
799
|
-
* device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
|
|
800
|
-
* range, or similar device.
|
|
801
|
-
* Conditions:
|
|
802
|
-
* Heater The device has heating functionality.
|
|
803
|
-
*/
|
|
804
462
|
export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
|
|
805
463
|
name: 'MA-temperaturecontrolledcabinetheater',
|
|
806
464
|
code: 0x71,
|
|
@@ -809,10 +467,6 @@ export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
|
|
|
809
467
|
requiredServerClusters: [TemperatureControl.Cluster.id, OvenMode.Cluster.id, OvenCavityOperationalState.Cluster.id],
|
|
810
468
|
optionalServerClusters: [TemperatureMeasurement.Cluster.id],
|
|
811
469
|
});
|
|
812
|
-
/**
|
|
813
|
-
* Cluster Restrictions:
|
|
814
|
-
* On/Off Cluster: the DF (Dead Front) feature is required
|
|
815
|
-
*/
|
|
816
470
|
export const dishwasher = DeviceTypeDefinition({
|
|
817
471
|
name: 'MA-dishwasher',
|
|
818
472
|
code: 0x75,
|
|
@@ -821,10 +475,6 @@ export const dishwasher = DeviceTypeDefinition({
|
|
|
821
475
|
requiredServerClusters: [OperationalState.Cluster.id],
|
|
822
476
|
optionalServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, TemperatureControl.Cluster.id, DishwasherMode.Cluster.id, DishwasherAlarm.Cluster.id],
|
|
823
477
|
});
|
|
824
|
-
/**
|
|
825
|
-
* Cluster Restrictions:
|
|
826
|
-
* On/Off Cluster: the DF (Dead Front) feature is required
|
|
827
|
-
*/
|
|
828
478
|
export const laundryDryer = DeviceTypeDefinition({
|
|
829
479
|
name: 'MA-laundrydryer',
|
|
830
480
|
code: 0x7c,
|
|
@@ -833,13 +483,6 @@ export const laundryDryer = DeviceTypeDefinition({
|
|
|
833
483
|
requiredServerClusters: [OperationalState.Cluster.id],
|
|
834
484
|
optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryDryerControls.Cluster.id, TemperatureControl.Cluster.id],
|
|
835
485
|
});
|
|
836
|
-
/**
|
|
837
|
-
* A Cook Surface device type represents a heating object on a cooktop or other similar device. It
|
|
838
|
-
* SHALL only be used when composed as part of another device type (cooktop).
|
|
839
|
-
*
|
|
840
|
-
* Cluster Restrictions:
|
|
841
|
-
* The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements.
|
|
842
|
-
*/
|
|
843
486
|
export const cookSurface = DeviceTypeDefinition({
|
|
844
487
|
name: 'MA-cooksurface',
|
|
845
488
|
code: 0x77,
|
|
@@ -848,18 +491,6 @@ export const cookSurface = DeviceTypeDefinition({
|
|
|
848
491
|
requiredServerClusters: [TemperatureControl.Cluster.id, TemperatureMeasurement.Cluster.id],
|
|
849
492
|
optionalServerClusters: [OnOff.Cluster.id],
|
|
850
493
|
});
|
|
851
|
-
/**
|
|
852
|
-
* A cooktop is a cooking surface that heats food either by transferring currents from an electromagnetic
|
|
853
|
-
* field located below the glass surface directly to the magnetic induction cookware placed
|
|
854
|
-
* above or through traditional gas or electric burners.
|
|
855
|
-
*
|
|
856
|
-
* Device Type Requirements:
|
|
857
|
-
* A Cooktop SHALL be composed of zero or more endpoints with the Cook Surface device type as defined by the conformance below.
|
|
858
|
-
* 0x0077 Cook Surface min 1 O
|
|
859
|
-
*
|
|
860
|
-
* Cluster Restrictions:
|
|
861
|
-
* The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements.
|
|
862
|
-
*/
|
|
863
494
|
export const cooktop = DeviceTypeDefinition({
|
|
864
495
|
name: 'MA-cooktop',
|
|
865
496
|
code: 0x78,
|
|
@@ -868,15 +499,6 @@ export const cooktop = DeviceTypeDefinition({
|
|
|
868
499
|
requiredServerClusters: [OnOff.Cluster.id],
|
|
869
500
|
optionalServerClusters: [Identify.Cluster.id],
|
|
870
501
|
});
|
|
871
|
-
/**
|
|
872
|
-
* An oven represents a device that contains one or more cabinets, and optionally a single cooktop, that are all capable of heating food.
|
|
873
|
-
* An oven is always defined via endpoint composition.
|
|
874
|
-
* Conditions:
|
|
875
|
-
* An Oven SHALL have the Heater condition applied to at least one endpoint containing the Temperature Control Cluster.
|
|
876
|
-
* Device Type Requirements:
|
|
877
|
-
* 0x0071 Temperature Controlled Cabinet min 1
|
|
878
|
-
* 0x0078 Cooktop
|
|
879
|
-
*/
|
|
880
502
|
export const oven = DeviceTypeDefinition({
|
|
881
503
|
name: 'MA-oven',
|
|
882
504
|
code: 0x7b,
|
|
@@ -885,18 +507,6 @@ export const oven = DeviceTypeDefinition({
|
|
|
885
507
|
requiredServerClusters: [Identify.Cluster.id],
|
|
886
508
|
optionalServerClusters: [],
|
|
887
509
|
});
|
|
888
|
-
/**
|
|
889
|
-
* An Extractor Hood is a device that is generally installed above a cooking surface in residential kitchens.
|
|
890
|
-
* Additional device types not listed in this table MAY also be included in device compositions.
|
|
891
|
-
* Device Type Requirements:
|
|
892
|
-
* 0x0100+ On/Off Light+ O
|
|
893
|
-
*
|
|
894
|
-
*
|
|
895
|
-
* Element Requirements:
|
|
896
|
-
* 0x0202 Fan Control Feature Rocking X
|
|
897
|
-
* 0x0202 Fan Control Feature Wind X
|
|
898
|
-
* 0x0202 Fan Control Feature AirflowDirection X
|
|
899
|
-
*/
|
|
900
510
|
export const extractorHood = DeviceTypeDefinition({
|
|
901
511
|
name: 'MA-extractorhood',
|
|
902
512
|
code: 0x7a,
|
|
@@ -905,12 +515,6 @@ export const extractorHood = DeviceTypeDefinition({
|
|
|
905
515
|
requiredServerClusters: [FanControl.Cluster.id],
|
|
906
516
|
optionalServerClusters: [Identify.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
|
|
907
517
|
});
|
|
908
|
-
/**
|
|
909
|
-
* A Microwave Oven is a device with the primary function of heating foods and beverages using a magnetron.
|
|
910
|
-
* A Microwave Oven is a device which at a minimum is capable of being started and stopped and of setting a power level.
|
|
911
|
-
* A Microwave Oven MAY also support additional capabilities via endpoint composition.
|
|
912
|
-
*
|
|
913
|
-
*/
|
|
914
518
|
export const microwaveOven = DeviceTypeDefinition({
|
|
915
519
|
name: 'MA-microwaveoven',
|
|
916
520
|
code: 0x79,
|
|
@@ -919,4 +523,3 @@ export const microwaveOven = DeviceTypeDefinition({
|
|
|
919
523
|
requiredServerClusters: [OperationalState.Cluster.id, MicrowaveOvenMode.Cluster.id, MicrowaveOvenControl.Cluster.id],
|
|
920
524
|
optionalServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
|
|
921
525
|
});
|
|
922
|
-
//# sourceMappingURL=matterbridgeDeviceTypes.js.map
|