matterbridge 2.2.9 → 3.0.0-edge.10
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 +44 -0
- package/dist/cli.js +6 -38
- package/dist/cluster/export.js +0 -2
- package/dist/defaultConfigSchema.js +0 -23
- package/dist/deviceManager.js +1 -94
- package/dist/frontend.js +20 -328
- package/dist/index.js +1 -28
- 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 +104 -761
- package/dist/matterbridgeAccessoryPlatform.js +0 -33
- package/dist/matterbridgeBehaviors.js +46 -72
- package/dist/matterbridgeDeviceTypes.js +249 -233
- package/dist/matterbridgeDynamicPlatform.js +0 -33
- package/dist/matterbridgeEndpoint.js +85 -759
- package/dist/matterbridgeEndpointHelpers.js +30 -136
- package/dist/matterbridgePlatform.js +9 -218
- package/dist/matterbridgeTypes.js +0 -24
- package/dist/pluginManager.js +3 -262
- package/dist/shelly.js +6 -146
- package/dist/storage/export.js +0 -1
- package/dist/update.js +0 -45
- package/dist/utils/colorUtils.js +2 -205
- package/dist/utils/copyDirectory.js +1 -37
- package/dist/utils/createZip.js +2 -42
- package/dist/utils/deepCopy.js +0 -40
- package/dist/utils/deepEqual.js +1 -65
- package/dist/utils/export.js +0 -1
- package/dist/utils/isvalid.js +0 -86
- package/dist/utils/network.js +5 -76
- package/dist/utils/parameter.js +0 -41
- package/dist/utils/wait.js +5 -48
- package/npm-shrinkwrap.json +289 -351
- package/package.json +3 -4
- 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 -221
- package/dist/frontend.d.ts.map +0 -1
- package/dist/frontend.js.map +0 -1
- package/dist/index.d.ts +0 -35
- 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 -425
- package/dist/matterbridge.d.ts.map +0 -1
- package/dist/matterbridge.js.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.d.ts +0 -39
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
- package/dist/matterbridgeBehaviors.d.ts +0 -1056
- package/dist/matterbridgeBehaviors.d.ts.map +0 -1
- package/dist/matterbridgeBehaviors.js.map +0 -1
- package/dist/matterbridgeDeviceTypes.d.ts +0 -178
- package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
- package/dist/matterbridgeDeviceTypes.js.map +0 -1
- package/dist/matterbridgeDynamicPlatform.d.ts +0 -39
- package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
- package/dist/matterbridgeDynamicPlatform.js.map +0 -1
- package/dist/matterbridgeEndpoint.d.ts +0 -867
- package/dist/matterbridgeEndpoint.d.ts.map +0 -1
- package/dist/matterbridgeEndpoint.js.map +0 -1
- package/dist/matterbridgeEndpointHelpers.d.ts +0 -2275
- package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
- package/dist/matterbridgeEndpointHelpers.js.map +0 -1
- package/dist/matterbridgePlatform.d.ts +0 -285
- package/dist/matterbridgePlatform.d.ts.map +0 -1
- package/dist/matterbridgePlatform.js.map +0 -1
- package/dist/matterbridgeTypes.d.ts +0 -183
- package/dist/matterbridgeTypes.d.ts.map +0 -1
- package/dist/matterbridgeTypes.js.map +0 -1
- package/dist/pluginManager.d.ts +0 -271
- package/dist/pluginManager.d.ts.map +0 -1
- package/dist/pluginManager.js.map +0 -1
- package/dist/shelly.d.ts +0 -92
- 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 -32
- 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/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 -10
- package/dist/utils/export.d.ts.map +0 -1
- package/dist/utils/export.js.map +0 -1
- package/dist/utils/isvalid.d.ts +0 -87
- 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/parameter.d.ts +0 -44
- package/dist/utils/parameter.d.ts.map +0 -1
- package/dist/utils/parameter.js.map +0 -1
- package/dist/utils/wait.d.ts +0 -43
- package/dist/utils/wait.d.ts.map +0 -1
- package/dist/utils/wait.js.map +0 -1
|
@@ -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';
|
|
@@ -34,7 +10,6 @@ import { DoorLock } from '@matter/main/clusters/door-lock';
|
|
|
34
10
|
import { ElectricalEnergyMeasurement } from '@matter/main/clusters/electrical-energy-measurement';
|
|
35
11
|
import { ElectricalPowerMeasurement } from '@matter/main/clusters/electrical-power-measurement';
|
|
36
12
|
import { FanControl } from '@matter/main/clusters/fan-control';
|
|
37
|
-
import { FixedLabel } from '@matter/main/clusters/fixed-label';
|
|
38
13
|
import { FlowMeasurement } from '@matter/main/clusters/flow-measurement';
|
|
39
14
|
import { FormaldehydeConcentrationMeasurement } from '@matter/main/clusters/formaldehyde-concentration-measurement';
|
|
40
15
|
import { Groups } from '@matter/main/clusters/groups';
|
|
@@ -56,10 +31,9 @@ import { PumpConfigurationAndControl } from '@matter/main/clusters/pump-configur
|
|
|
56
31
|
import { RadonConcentrationMeasurement } from '@matter/main/clusters/radon-concentration-measurement';
|
|
57
32
|
import { RelativeHumidityMeasurement } from '@matter/main/clusters/relative-humidity-measurement';
|
|
58
33
|
import { SmokeCoAlarm } from '@matter/main/clusters/smoke-co-alarm';
|
|
59
|
-
import {
|
|
34
|
+
import { Switch } from '@matter/main/clusters/switch';
|
|
60
35
|
import { TemperatureMeasurement } from '@matter/main/clusters/temperature-measurement';
|
|
61
36
|
import { Thermostat } from '@matter/main/clusters/thermostat';
|
|
62
|
-
import { TimeSynchronization } from '@matter/main/clusters/time-synchronization';
|
|
63
37
|
import { TotalVolatileOrganicCompoundsConcentrationMeasurement } from '@matter/main/clusters/total-volatile-organic-compounds-concentration-measurement';
|
|
64
38
|
import { ValveConfigurationAndControl } from '@matter/main/clusters/valve-configuration-and-control';
|
|
65
39
|
import { WindowCovering } from '@matter/main/clusters/window-covering';
|
|
@@ -70,80 +44,48 @@ import { EnergyPreference } from '@matter/main/clusters/energy-preference';
|
|
|
70
44
|
import { RvcRunMode } from '@matter/main/clusters/rvc-run-mode';
|
|
71
45
|
import { RvcOperationalState } from '@matter/main/clusters/rvc-operational-state';
|
|
72
46
|
import { RvcCleanMode } from '@matter/main/clusters/rvc-clean-mode';
|
|
73
|
-
import { ScenesManagement } from '@matter/main/clusters/scenes-management';
|
|
74
47
|
import { HepaFilterMonitoring } from '@matter/main/clusters/hepa-filter-monitoring';
|
|
75
48
|
import { ActivatedCarbonFilterMonitoring } from '@matter/main/clusters/activated-carbon-filter-monitoring';
|
|
76
49
|
import { DeviceEnergyManagementMode } from '@matter/main/clusters/device-energy-management-mode';
|
|
50
|
+
import { AdministratorCommissioning } from '@matter/main/clusters/administrator-commissioning';
|
|
51
|
+
import { EcosystemInformation } from '@matter/main/clusters/ecosystem-information';
|
|
52
|
+
import { CommissionerControl } from '@matter/main/clusters/commissioner-control';
|
|
53
|
+
import { DishwasherAlarm } from '@matter/main/clusters/dishwasher-alarm';
|
|
54
|
+
import { DishwasherMode } from '@matter/main/clusters/dishwasher-mode';
|
|
55
|
+
import { LaundryDryerControls } from '@matter/main/clusters/laundry-dryer-controls';
|
|
56
|
+
import { LaundryWasherControls } from '@matter/main/clusters/laundry-washer-controls';
|
|
57
|
+
import { LaundryWasherMode } from '@matter/main/clusters/laundry-washer-mode';
|
|
58
|
+
import { MicrowaveOvenControl } from '@matter/main/clusters/microwave-oven-control';
|
|
59
|
+
import { MicrowaveOvenMode } from '@matter/main/clusters/microwave-oven-mode';
|
|
60
|
+
import { OperationalState } from '@matter/main/clusters/operational-state';
|
|
61
|
+
import { OvenCavityOperationalState } from '@matter/main/clusters/oven-cavity-operational-state';
|
|
62
|
+
import { OvenMode } from '@matter/main/clusters/oven-mode';
|
|
63
|
+
import { RefrigeratorAlarm } from '@matter/main/clusters/refrigerator-alarm';
|
|
64
|
+
import { RefrigeratorAndTemperatureControlledCabinetMode } from '@matter/main/clusters/refrigerator-and-temperature-controlled-cabinet-mode';
|
|
65
|
+
import { ServiceArea } from '@matter/main/clusters/service-area';
|
|
66
|
+
import { TemperatureControl } from '@matter/main/clusters/temperature-control';
|
|
77
67
|
export var DeviceClasses;
|
|
78
68
|
(function (DeviceClasses) {
|
|
79
|
-
/** Node device type. */
|
|
80
69
|
DeviceClasses["Node"] = "Node";
|
|
81
|
-
/**
|
|
82
|
-
* Utility device type.
|
|
83
|
-
* A Utility device type supports configuration and settings.
|
|
84
|
-
*/
|
|
85
|
-
DeviceClasses["Utility"] = "Utility";
|
|
86
|
-
/**
|
|
87
|
-
* Application device type.
|
|
88
|
-
* Application devices types are typically the most datatype endpoints on a node and in the network.
|
|
89
|
-
*/
|
|
90
70
|
DeviceClasses["App"] = "App";
|
|
91
|
-
|
|
92
|
-
* Simple device type.
|
|
93
|
-
* A Simple device type supports local control that is persistent, independent, and unsupervised.
|
|
94
|
-
*/
|
|
71
|
+
DeviceClasses["Utility"] = "Utility";
|
|
95
72
|
DeviceClasses["Simple"] = "Simple";
|
|
96
|
-
/**
|
|
97
|
-
* Dynamic device type.
|
|
98
|
-
* A Dynamic device type supports intelligent and supervisory services, such as commissioning,
|
|
99
|
-
* monitoring, trend analysis, scheduling and central management. A dynamic device type is an
|
|
100
|
-
* application device type.
|
|
101
|
-
*/
|
|
102
73
|
DeviceClasses["Dynamic"] = "Dynamic";
|
|
103
|
-
/** There exists a client application cluster on the endpoint. */
|
|
104
74
|
DeviceClasses["Client"] = "Client";
|
|
105
|
-
/** There exists a server application cluster on the endpoint. */
|
|
106
75
|
DeviceClasses["Server"] = "Server";
|
|
107
|
-
/** The device type is composed of 2 or more device types. */
|
|
108
76
|
DeviceClasses["Composed"] = "Composed";
|
|
109
|
-
|
|
110
|
-
DeviceClasses["Multiple"] = "Multiple";
|
|
111
|
-
/** The endpoint is an Initiator for Zigbee EZ-Mode Finding & Binding. */
|
|
112
|
-
DeviceClasses["EZInitiator"] = "EZ-Initiator";
|
|
113
|
-
/** The endpoint is a Target for Zigbee EZ-Mode Finding & Binding. */
|
|
114
|
-
DeviceClasses["EZTarget"] = "EZ-Target";
|
|
115
|
-
/**
|
|
116
|
-
* The endpoint represents a Bridged Device, for which information about the state of
|
|
117
|
-
* its power source is available to the Bridge
|
|
118
|
-
*/
|
|
77
|
+
DeviceClasses["Duplicate"] = "Duplicate";
|
|
119
78
|
DeviceClasses["BridgedPowerSourceInfo"] = "BridgedPowerSourceInfo";
|
|
120
79
|
})(DeviceClasses || (DeviceClasses = {}));
|
|
121
|
-
export const DeviceTypeDefinition = ({ name, code, deviceClass,
|
|
80
|
+
export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requiredServerClusters = [], optionalServerClusters = [], requiredClientClusters = [], optionalClientClusters = [], }) => ({
|
|
122
81
|
name,
|
|
123
82
|
code: DeviceTypeId(code),
|
|
124
83
|
deviceClass,
|
|
125
|
-
superSet,
|
|
126
84
|
revision,
|
|
127
85
|
requiredServerClusters,
|
|
128
86
|
optionalServerClusters,
|
|
129
87
|
requiredClientClusters,
|
|
130
88
|
optionalClientClusters,
|
|
131
|
-
unknown,
|
|
132
|
-
});
|
|
133
|
-
// Matter 1.0 and 1.1 device types
|
|
134
|
-
export const bridge = DeviceTypeDefinition({
|
|
135
|
-
name: 'MA-aggregator',
|
|
136
|
-
code: 0x000e,
|
|
137
|
-
deviceClass: DeviceClasses.Dynamic,
|
|
138
|
-
revision: 1,
|
|
139
|
-
optionalServerClusters: [Identify.Cluster.id, Actions.Cluster.id],
|
|
140
|
-
});
|
|
141
|
-
export const aggregator = DeviceTypeDefinition({
|
|
142
|
-
name: 'MA-aggregator',
|
|
143
|
-
code: 0x000e,
|
|
144
|
-
deviceClass: DeviceClasses.Dynamic,
|
|
145
|
-
revision: 1,
|
|
146
|
-
optionalServerClusters: [Identify.Cluster.id, Actions.Cluster.id],
|
|
147
89
|
});
|
|
148
90
|
export const powerSource = DeviceTypeDefinition({
|
|
149
91
|
name: 'MA-powerSource',
|
|
@@ -153,60 +95,52 @@ export const powerSource = DeviceTypeDefinition({
|
|
|
153
95
|
requiredServerClusters: [PowerSource.Cluster.id],
|
|
154
96
|
optionalServerClusters: [],
|
|
155
97
|
});
|
|
156
|
-
/**
|
|
157
|
-
2.5.3. Conditions
|
|
158
|
-
Please see the Base Device Type definition for conformance tags.
|
|
159
|
-
This device type SHALL only be used for Nodes which have a device type of Bridge.
|
|
160
|
-
|
|
161
|
-
2.5.6. Endpoint Composition
|
|
162
|
-
• A Bridged Node endpoint SHALL support one of the following composition patterns:
|
|
163
|
-
◦ Separate Endpoints: All application device types are supported on separate endpoints, and
|
|
164
|
-
not on the Bridged Node endpoint. The Bridged Node endpoint’s Descriptor cluster PartsList
|
|
165
|
-
attribute SHALL indicate a list of all endpoints representing the functionality of the bridged
|
|
166
|
-
device, including the endpoints supporting the application device types, i.e. the full-family
|
|
167
|
-
pattern defined in the System Model specification.
|
|
168
|
-
◦ One Endpoint: Both the Bridged Node and one or more application device types are sup
|
|
169
|
-
ported on the same endpoint (following application device type rules). Endpoint composi
|
|
170
|
-
tion SHALL conform to the application device type(s) definition
|
|
171
|
-
*/
|
|
172
98
|
export const bridgedNode = DeviceTypeDefinition({
|
|
173
99
|
name: 'MA-bridgedNode',
|
|
174
100
|
code: 0x0013,
|
|
175
101
|
deviceClass: DeviceClasses.Utility,
|
|
176
|
-
revision:
|
|
102
|
+
revision: 3,
|
|
177
103
|
requiredServerClusters: [BridgedDeviceBasicInformation.Cluster.id],
|
|
178
|
-
optionalServerClusters: [PowerSource.Cluster.id],
|
|
104
|
+
optionalServerClusters: [PowerSource.Cluster.id, EcosystemInformation.Cluster.id, AdministratorCommissioning.Cluster.id],
|
|
179
105
|
});
|
|
180
|
-
export const
|
|
181
|
-
name: 'MA-
|
|
182
|
-
code:
|
|
183
|
-
deviceClass: DeviceClasses.
|
|
106
|
+
export const electricalSensor = DeviceTypeDefinition({
|
|
107
|
+
name: 'MA-electricalSensor',
|
|
108
|
+
code: 0x0510,
|
|
109
|
+
deviceClass: DeviceClasses.Utility,
|
|
184
110
|
revision: 1,
|
|
185
|
-
requiredServerClusters: [
|
|
186
|
-
optionalServerClusters: [
|
|
111
|
+
requiredServerClusters: [PowerTopology.Cluster.id],
|
|
112
|
+
optionalServerClusters: [ElectricalPowerMeasurement.Cluster.id, ElectricalEnergyMeasurement.Cluster.id],
|
|
113
|
+
});
|
|
114
|
+
export const deviceEnergyManagement = DeviceTypeDefinition({
|
|
115
|
+
name: 'MA-deviceEnergyManagement',
|
|
116
|
+
code: 0x050d,
|
|
117
|
+
deviceClass: DeviceClasses.Utility,
|
|
118
|
+
revision: 2,
|
|
119
|
+
requiredServerClusters: [DeviceEnergyManagement.Cluster.id, DeviceEnergyManagementMode.Cluster.id],
|
|
120
|
+
optionalServerClusters: [],
|
|
187
121
|
});
|
|
188
122
|
export const onOffLight = DeviceTypeDefinition({
|
|
189
123
|
name: 'MA-onofflight',
|
|
190
124
|
code: 0x0100,
|
|
191
125
|
deviceClass: DeviceClasses.Simple,
|
|
192
126
|
revision: 3,
|
|
193
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
194
|
-
optionalServerClusters: [LevelControl.Cluster.id
|
|
127
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
|
|
128
|
+
optionalServerClusters: [LevelControl.Cluster.id],
|
|
195
129
|
});
|
|
196
130
|
export const dimmableLight = DeviceTypeDefinition({
|
|
197
131
|
name: 'MA-dimmablelight',
|
|
198
132
|
code: 0x0101,
|
|
199
133
|
deviceClass: DeviceClasses.Simple,
|
|
200
134
|
revision: 3,
|
|
201
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
202
|
-
optionalServerClusters: [
|
|
135
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
136
|
+
optionalServerClusters: [],
|
|
203
137
|
});
|
|
204
138
|
export const colorTemperatureLight = DeviceTypeDefinition({
|
|
205
139
|
name: 'MA-colortemperaturelight',
|
|
206
140
|
code: 0x010c,
|
|
207
141
|
deviceClass: DeviceClasses.Simple,
|
|
208
142
|
revision: 4,
|
|
209
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
143
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
210
144
|
optionalServerClusters: [],
|
|
211
145
|
});
|
|
212
146
|
export const extendedColorLight = DeviceTypeDefinition({
|
|
@@ -214,7 +148,7 @@ export const extendedColorLight = DeviceTypeDefinition({
|
|
|
214
148
|
code: 0x010d,
|
|
215
149
|
deviceClass: DeviceClasses.Simple,
|
|
216
150
|
revision: 4,
|
|
217
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
151
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
218
152
|
optionalServerClusters: [],
|
|
219
153
|
});
|
|
220
154
|
export const onOffOutlet = DeviceTypeDefinition({
|
|
@@ -222,53 +156,80 @@ export const onOffOutlet = DeviceTypeDefinition({
|
|
|
222
156
|
code: 0x010a,
|
|
223
157
|
deviceClass: DeviceClasses.Simple,
|
|
224
158
|
revision: 3,
|
|
225
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
159
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
|
|
226
160
|
optionalServerClusters: [LevelControl.Cluster.id],
|
|
227
161
|
});
|
|
228
162
|
export const dimmableOutlet = DeviceTypeDefinition({
|
|
229
163
|
name: 'MA-dimmablepluginunit',
|
|
230
164
|
code: 0x010b,
|
|
231
165
|
deviceClass: DeviceClasses.Simple,
|
|
232
|
-
revision:
|
|
233
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
166
|
+
revision: 4,
|
|
167
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
234
168
|
optionalServerClusters: [],
|
|
235
169
|
});
|
|
236
|
-
export const
|
|
237
|
-
name: 'MA-
|
|
238
|
-
code:
|
|
170
|
+
export const onOffMountedSwitch = DeviceTypeDefinition({
|
|
171
|
+
name: 'MA-onoffmountedswitch',
|
|
172
|
+
code: 0x010f,
|
|
173
|
+
deviceClass: DeviceClasses.Simple,
|
|
174
|
+
revision: 1,
|
|
175
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
|
|
176
|
+
optionalServerClusters: [LevelControl.Cluster.id],
|
|
177
|
+
});
|
|
178
|
+
export const dimmableMountedSwitch = DeviceTypeDefinition({
|
|
179
|
+
name: 'MA-dimmablemountedswitch',
|
|
180
|
+
code: 0x0110,
|
|
181
|
+
deviceClass: DeviceClasses.Simple,
|
|
182
|
+
revision: 1,
|
|
183
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
184
|
+
optionalServerClusters: [],
|
|
185
|
+
});
|
|
186
|
+
export const pumpDevice = DeviceTypeDefinition({
|
|
187
|
+
name: 'MA-pump',
|
|
188
|
+
code: 0x303,
|
|
239
189
|
deviceClass: DeviceClasses.Simple,
|
|
240
190
|
revision: 3,
|
|
241
|
-
requiredServerClusters: [
|
|
242
|
-
optionalServerClusters: [Groups.Cluster.id
|
|
191
|
+
requiredServerClusters: [OnOff.Cluster.id, PumpConfigurationAndControl.Cluster.id, Identify.Cluster.id],
|
|
192
|
+
optionalServerClusters: [LevelControl.Cluster.id, Groups.Cluster.id, TemperatureMeasurement.Cluster.id, PressureMeasurement.Cluster.id, FlowMeasurement.Cluster.id],
|
|
243
193
|
});
|
|
244
|
-
export const
|
|
245
|
-
name: 'MA-
|
|
246
|
-
code:
|
|
194
|
+
export const waterValve = DeviceTypeDefinition({
|
|
195
|
+
name: 'MA-waterValve',
|
|
196
|
+
code: 0x42,
|
|
197
|
+
deviceClass: DeviceClasses.Simple,
|
|
198
|
+
revision: 1,
|
|
199
|
+
requiredServerClusters: [Identify.Cluster.id, ValveConfigurationAndControl.Cluster.id],
|
|
200
|
+
optionalServerClusters: [FlowMeasurement.Cluster.id],
|
|
201
|
+
});
|
|
202
|
+
export const onOffSwitch = DeviceTypeDefinition({
|
|
203
|
+
name: 'MA-onoffswitch',
|
|
204
|
+
code: 0x0103,
|
|
247
205
|
deviceClass: DeviceClasses.Simple,
|
|
248
206
|
revision: 3,
|
|
249
|
-
requiredServerClusters: [Identify.Cluster.id,
|
|
250
|
-
optionalServerClusters: [Groups.Cluster.id
|
|
207
|
+
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id],
|
|
208
|
+
optionalServerClusters: [Groups.Cluster.id],
|
|
251
209
|
});
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
* The FanControl cluster must have the FanModeSequence attribute.
|
|
256
|
-
*/
|
|
257
|
-
export const fanDevice = DeviceTypeDefinition({
|
|
258
|
-
name: 'MA-fan',
|
|
259
|
-
code: 0x2b,
|
|
210
|
+
export const dimmableSwitch = DeviceTypeDefinition({
|
|
211
|
+
name: 'MA-dimmableswitch',
|
|
212
|
+
code: 0x0104,
|
|
260
213
|
deviceClass: DeviceClasses.Simple,
|
|
261
|
-
revision:
|
|
262
|
-
requiredServerClusters: [Identify.Cluster.id,
|
|
263
|
-
optionalServerClusters: [],
|
|
214
|
+
revision: 3,
|
|
215
|
+
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
216
|
+
optionalServerClusters: [Groups.Cluster.id],
|
|
264
217
|
});
|
|
265
|
-
export const
|
|
266
|
-
name: 'MA-
|
|
267
|
-
code:
|
|
218
|
+
export const colorTemperatureSwitch = DeviceTypeDefinition({
|
|
219
|
+
name: 'MA-colortemperatureswitch',
|
|
220
|
+
code: 0x0105,
|
|
268
221
|
deviceClass: DeviceClasses.Simple,
|
|
269
222
|
revision: 3,
|
|
270
|
-
requiredServerClusters: [Identify.Cluster.id,
|
|
271
|
-
optionalServerClusters: [Groups.Cluster.id
|
|
223
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
224
|
+
optionalServerClusters: [Groups.Cluster.id],
|
|
225
|
+
});
|
|
226
|
+
export const genericSwitch = DeviceTypeDefinition({
|
|
227
|
+
name: 'MA-genericswitch',
|
|
228
|
+
code: 0x000f,
|
|
229
|
+
deviceClass: DeviceClasses.Simple,
|
|
230
|
+
revision: 3,
|
|
231
|
+
requiredServerClusters: [Identify.Cluster.id, Switch.Cluster.id],
|
|
232
|
+
optionalServerClusters: [],
|
|
272
233
|
});
|
|
273
234
|
export const contactSensor = DeviceTypeDefinition({
|
|
274
235
|
name: 'MA-contactsensor',
|
|
@@ -276,6 +237,7 @@ export const contactSensor = DeviceTypeDefinition({
|
|
|
276
237
|
deviceClass: DeviceClasses.Simple,
|
|
277
238
|
revision: 2,
|
|
278
239
|
requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
|
|
240
|
+
optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
|
|
279
241
|
});
|
|
280
242
|
export const lightSensor = DeviceTypeDefinition({
|
|
281
243
|
name: 'MA-lightsensor',
|
|
@@ -288,8 +250,9 @@ export const occupancySensor = DeviceTypeDefinition({
|
|
|
288
250
|
name: 'MA-occupancysensor',
|
|
289
251
|
code: 0x0107,
|
|
290
252
|
deviceClass: DeviceClasses.Simple,
|
|
291
|
-
revision:
|
|
253
|
+
revision: 4,
|
|
292
254
|
requiredServerClusters: [Identify.Cluster.id, OccupancySensing.Cluster.id],
|
|
255
|
+
optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
|
|
293
256
|
});
|
|
294
257
|
export const temperatureSensor = DeviceTypeDefinition({
|
|
295
258
|
name: 'MA-tempsensor',
|
|
@@ -319,49 +282,14 @@ export const humiditySensor = DeviceTypeDefinition({
|
|
|
319
282
|
revision: 2,
|
|
320
283
|
requiredServerClusters: [Identify.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
|
|
321
284
|
});
|
|
322
|
-
export const
|
|
323
|
-
name: 'MA-
|
|
324
|
-
code:
|
|
285
|
+
export const smokeCoAlarm = DeviceTypeDefinition({
|
|
286
|
+
name: 'MA-smokeCoAlarm',
|
|
287
|
+
code: 0x0076,
|
|
325
288
|
deviceClass: DeviceClasses.Simple,
|
|
326
289
|
revision: 1,
|
|
327
|
-
requiredServerClusters: [
|
|
328
|
-
|
|
329
|
-
export const roboticVacuumCleaner = DeviceTypeDefinition({
|
|
330
|
-
name: 'MA-roboticvacuumcleaner',
|
|
331
|
-
code: 0x74,
|
|
332
|
-
deviceClass: DeviceClasses.Simple,
|
|
333
|
-
revision: 2,
|
|
334
|
-
requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
|
|
335
|
-
optionalServerClusters: [RvcCleanMode.Cluster.id],
|
|
336
|
-
});
|
|
337
|
-
// Custom device types without client clusters (not working in Alexa)
|
|
338
|
-
export const onOffSwitch = DeviceTypeDefinition({
|
|
339
|
-
name: 'MA-onoffswitch',
|
|
340
|
-
code: 0x0103,
|
|
341
|
-
deviceClass: DeviceClasses.Simple,
|
|
342
|
-
revision: 3,
|
|
343
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id],
|
|
344
|
-
optionalServerClusters: [LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
345
|
-
});
|
|
346
|
-
// Custom device types without client clusters (not working in Alexa)
|
|
347
|
-
export const dimmableSwitch = DeviceTypeDefinition({
|
|
348
|
-
name: 'MA-dimmableswitch',
|
|
349
|
-
code: 0x0104,
|
|
350
|
-
deviceClass: DeviceClasses.Simple,
|
|
351
|
-
revision: 3,
|
|
352
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
353
|
-
optionalServerClusters: [ColorControl.Cluster.id],
|
|
354
|
-
});
|
|
355
|
-
// Custom device types without client clusters (not working in Alexa)
|
|
356
|
-
export const colorTemperatureSwitch = DeviceTypeDefinition({
|
|
357
|
-
name: 'MA-colortemperatureswitch',
|
|
358
|
-
code: 0x0105,
|
|
359
|
-
deviceClass: DeviceClasses.Simple,
|
|
360
|
-
revision: 3,
|
|
361
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* Scenes.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
362
|
-
optionalServerClusters: [],
|
|
290
|
+
requiredServerClusters: [Identify.Cluster.id, SmokeCoAlarm.Cluster.id],
|
|
291
|
+
optionalServerClusters: [Groups.Cluster.id, TemperatureMeasurement.Cluster.id, RelativeHumidityMeasurement.Cluster.id, CarbonMonoxideConcentrationMeasurement.Cluster.id],
|
|
363
292
|
});
|
|
364
|
-
// Matter 1.2 and 1.3 device types
|
|
365
293
|
export const airQualitySensor = DeviceTypeDefinition({
|
|
366
294
|
name: 'MA-airQualitySensor',
|
|
367
295
|
code: 0x002c,
|
|
@@ -407,81 +335,169 @@ export const rainSensor = DeviceTypeDefinition({
|
|
|
407
335
|
requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
|
|
408
336
|
optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
|
|
409
337
|
});
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
code: 0x0076,
|
|
338
|
+
export const doorLockDevice = DeviceTypeDefinition({
|
|
339
|
+
name: 'MA-doorLock',
|
|
340
|
+
code: 0xa,
|
|
414
341
|
deviceClass: DeviceClasses.Simple,
|
|
415
|
-
revision:
|
|
416
|
-
requiredServerClusters: [Identify.Cluster.id,
|
|
417
|
-
optionalServerClusters: [
|
|
342
|
+
revision: 3,
|
|
343
|
+
requiredServerClusters: [Identify.Cluster.id, DoorLock.Cluster.id],
|
|
344
|
+
optionalServerClusters: [],
|
|
418
345
|
});
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
* 1–200 Level / 2 (0.5–100.0%) Pump setpoint in percent
|
|
423
|
-
* 201–255 100.0% Pump setpoint is 100.0%
|
|
424
|
-
*/
|
|
425
|
-
export const pumpDevice = DeviceTypeDefinition({
|
|
426
|
-
name: 'MA-pump',
|
|
427
|
-
code: 0x303,
|
|
346
|
+
export const coverDevice = DeviceTypeDefinition({
|
|
347
|
+
name: 'MA-windowCovering',
|
|
348
|
+
code: 0x202,
|
|
428
349
|
deviceClass: DeviceClasses.Simple,
|
|
429
350
|
revision: 3,
|
|
430
|
-
requiredServerClusters: [
|
|
431
|
-
optionalServerClusters: [
|
|
351
|
+
requiredServerClusters: [Identify.Cluster.id, WindowCovering.Cluster.id],
|
|
352
|
+
optionalServerClusters: [Groups.Cluster.id],
|
|
432
353
|
});
|
|
433
|
-
export const
|
|
434
|
-
name: 'MA-
|
|
435
|
-
code:
|
|
354
|
+
export const thermostatDevice = DeviceTypeDefinition({
|
|
355
|
+
name: 'MA-thermostat',
|
|
356
|
+
code: 0x301,
|
|
436
357
|
deviceClass: DeviceClasses.Simple,
|
|
437
|
-
revision:
|
|
438
|
-
requiredServerClusters: [Identify.Cluster.id,
|
|
439
|
-
optionalServerClusters: [
|
|
358
|
+
revision: 4,
|
|
359
|
+
requiredServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
|
|
360
|
+
optionalServerClusters: [Groups.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id],
|
|
361
|
+
});
|
|
362
|
+
export const fanDevice = DeviceTypeDefinition({
|
|
363
|
+
name: 'MA-fan',
|
|
364
|
+
code: 0x2b,
|
|
365
|
+
deviceClass: DeviceClasses.Simple,
|
|
366
|
+
revision: 3,
|
|
367
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, FanControl.Cluster.id],
|
|
368
|
+
optionalServerClusters: [OnOff.Cluster.id],
|
|
440
369
|
});
|
|
441
|
-
/**
|
|
442
|
-
* Remark: it may have a Thermostat, Temperature Sensor, Humidity Sensor and an Air Quality Sensor device type.
|
|
443
|
-
* Additional device types MAY also be included in device compositions.
|
|
444
|
-
*/
|
|
445
370
|
export const airPurifier = DeviceTypeDefinition({
|
|
446
371
|
name: 'MA-airPurifier',
|
|
447
372
|
code: 0x2d,
|
|
448
373
|
deviceClass: DeviceClasses.Simple,
|
|
449
|
-
revision:
|
|
374
|
+
revision: 2,
|
|
450
375
|
requiredServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
|
|
451
|
-
optionalServerClusters: [Groups.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
|
|
452
|
-
});
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
376
|
+
optionalServerClusters: [Groups.Cluster.id, OnOff.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
|
|
377
|
+
});
|
|
378
|
+
export const modeSelect = DeviceTypeDefinition({
|
|
379
|
+
name: 'MA-modeselect',
|
|
380
|
+
code: 0x27,
|
|
381
|
+
deviceClass: DeviceClasses.Simple,
|
|
382
|
+
revision: 1,
|
|
383
|
+
requiredServerClusters: [ModeSelect.Cluster.id],
|
|
384
|
+
});
|
|
385
|
+
export const aggregator = DeviceTypeDefinition({
|
|
386
|
+
name: 'MA-aggregator',
|
|
387
|
+
code: 0x000e,
|
|
388
|
+
deviceClass: DeviceClasses.Dynamic,
|
|
389
|
+
revision: 2,
|
|
390
|
+
requiredServerClusters: [],
|
|
391
|
+
optionalServerClusters: [Actions.Cluster.id, Identify.Cluster.id, CommissionerControl.Cluster.id],
|
|
392
|
+
});
|
|
393
|
+
export const bridge = aggregator;
|
|
394
|
+
export const roboticVacuumCleaner = DeviceTypeDefinition({
|
|
395
|
+
name: 'MA-roboticvacuumcleaner',
|
|
396
|
+
code: 0x74,
|
|
397
|
+
deviceClass: DeviceClasses.Simple,
|
|
398
|
+
revision: 3,
|
|
399
|
+
requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
|
|
400
|
+
optionalServerClusters: [RvcCleanMode.Cluster.id, ServiceArea.Cluster.id],
|
|
401
|
+
});
|
|
402
|
+
export const laundryWasher = DeviceTypeDefinition({
|
|
403
|
+
name: 'MA-laundrywasher',
|
|
404
|
+
code: 0x73,
|
|
405
|
+
deviceClass: DeviceClasses.Simple,
|
|
406
|
+
revision: 1,
|
|
407
|
+
requiredServerClusters: [OperationalState.Cluster.id],
|
|
408
|
+
optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryWasherControls.Cluster.id, TemperatureControl.Cluster.id],
|
|
409
|
+
});
|
|
410
|
+
export const refrigerator = DeviceTypeDefinition({
|
|
411
|
+
name: 'MA-refrigerator',
|
|
412
|
+
code: 0x70,
|
|
413
|
+
deviceClass: DeviceClasses.Simple,
|
|
414
|
+
revision: 2,
|
|
415
|
+
requiredServerClusters: [Identify.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id, RefrigeratorAlarm.Cluster.id],
|
|
416
|
+
optionalServerClusters: [],
|
|
417
|
+
});
|
|
463
418
|
export const airConditioner = DeviceTypeDefinition({
|
|
464
419
|
name: 'MA-airConditioner',
|
|
465
420
|
code: 0x72,
|
|
466
421
|
deviceClass: DeviceClasses.Simple,
|
|
467
422
|
revision: 2,
|
|
468
423
|
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, Thermostat.Cluster.id],
|
|
469
|
-
optionalServerClusters: [
|
|
424
|
+
optionalServerClusters: [
|
|
425
|
+
Groups.Cluster.id,
|
|
426
|
+
FanControl.Cluster.id,
|
|
427
|
+
ThermostatUserInterfaceConfiguration.Cluster.id,
|
|
428
|
+
TemperatureMeasurement.Cluster.id,
|
|
429
|
+
RelativeHumidityMeasurement.Cluster.id,
|
|
430
|
+
],
|
|
470
431
|
});
|
|
471
|
-
export const
|
|
472
|
-
name: 'MA-
|
|
473
|
-
code:
|
|
474
|
-
deviceClass: DeviceClasses.
|
|
432
|
+
export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
|
|
433
|
+
name: 'MA-temperaturecontrolledcabinetcooler',
|
|
434
|
+
code: 0x71,
|
|
435
|
+
deviceClass: DeviceClasses.Simple,
|
|
436
|
+
revision: 3,
|
|
437
|
+
requiredServerClusters: [TemperatureControl.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id],
|
|
438
|
+
optionalServerClusters: [TemperatureMeasurement.Cluster.id],
|
|
439
|
+
});
|
|
440
|
+
export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
|
|
441
|
+
name: 'MA-temperaturecontrolledcabinetheater',
|
|
442
|
+
code: 0x71,
|
|
443
|
+
deviceClass: DeviceClasses.Simple,
|
|
444
|
+
revision: 3,
|
|
445
|
+
requiredServerClusters: [TemperatureControl.Cluster.id, OvenMode.Cluster.id, OvenCavityOperationalState.Cluster.id],
|
|
446
|
+
optionalServerClusters: [TemperatureMeasurement.Cluster.id],
|
|
447
|
+
});
|
|
448
|
+
export const dishwasher = DeviceTypeDefinition({
|
|
449
|
+
name: 'MA-dishwasher',
|
|
450
|
+
code: 0x75,
|
|
451
|
+
deviceClass: DeviceClasses.Simple,
|
|
475
452
|
revision: 1,
|
|
476
|
-
requiredServerClusters: [
|
|
477
|
-
optionalServerClusters: [
|
|
453
|
+
requiredServerClusters: [OperationalState.Cluster.id],
|
|
454
|
+
optionalServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, TemperatureControl.Cluster.id, DishwasherMode.Cluster.id, DishwasherAlarm.Cluster.id],
|
|
478
455
|
});
|
|
479
|
-
export const
|
|
480
|
-
name: 'MA-
|
|
481
|
-
code:
|
|
482
|
-
deviceClass: DeviceClasses.
|
|
456
|
+
export const laundryDryer = DeviceTypeDefinition({
|
|
457
|
+
name: 'MA-laundrydryer',
|
|
458
|
+
code: 0x7c,
|
|
459
|
+
deviceClass: DeviceClasses.Simple,
|
|
483
460
|
revision: 1,
|
|
484
|
-
requiredServerClusters: [
|
|
461
|
+
requiredServerClusters: [OperationalState.Cluster.id],
|
|
462
|
+
optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryDryerControls.Cluster.id, TemperatureControl.Cluster.id],
|
|
463
|
+
});
|
|
464
|
+
export const cookSurface = DeviceTypeDefinition({
|
|
465
|
+
name: 'MA-cooksurface',
|
|
466
|
+
code: 0x77,
|
|
467
|
+
deviceClass: DeviceClasses.Simple,
|
|
468
|
+
revision: 1,
|
|
469
|
+
requiredServerClusters: [TemperatureControl.Cluster.id, TemperatureMeasurement.Cluster.id],
|
|
470
|
+
optionalServerClusters: [OnOff.Cluster.id],
|
|
471
|
+
});
|
|
472
|
+
export const cooktop = DeviceTypeDefinition({
|
|
473
|
+
name: 'MA-cooktop',
|
|
474
|
+
code: 0x78,
|
|
475
|
+
deviceClass: DeviceClasses.Simple,
|
|
476
|
+
revision: 1,
|
|
477
|
+
requiredServerClusters: [OnOff.Cluster.id],
|
|
478
|
+
optionalServerClusters: [Identify.Cluster.id],
|
|
479
|
+
});
|
|
480
|
+
export const oven = DeviceTypeDefinition({
|
|
481
|
+
name: 'MA-oven',
|
|
482
|
+
code: 0x7b,
|
|
483
|
+
deviceClass: DeviceClasses.Simple,
|
|
484
|
+
revision: 2,
|
|
485
|
+
requiredServerClusters: [Identify.Cluster.id],
|
|
485
486
|
optionalServerClusters: [],
|
|
486
487
|
});
|
|
487
|
-
|
|
488
|
+
export const extractorHood = DeviceTypeDefinition({
|
|
489
|
+
name: 'MA-extractorhood',
|
|
490
|
+
code: 0x7a,
|
|
491
|
+
deviceClass: DeviceClasses.Simple,
|
|
492
|
+
revision: 1,
|
|
493
|
+
requiredServerClusters: [FanControl.Cluster.id],
|
|
494
|
+
optionalServerClusters: [Identify.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
|
|
495
|
+
});
|
|
496
|
+
export const microwaveOven = DeviceTypeDefinition({
|
|
497
|
+
name: 'MA-microwaveoven',
|
|
498
|
+
code: 0x79,
|
|
499
|
+
deviceClass: DeviceClasses.Simple,
|
|
500
|
+
revision: 1,
|
|
501
|
+
requiredServerClusters: [OperationalState.Cluster.id, MicrowaveOvenMode.Cluster.id, MicrowaveOvenControl.Cluster.id],
|
|
502
|
+
optionalServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
|
|
503
|
+
});
|