matterbridge 3.2.5 → 3.2.6-dev-20250903-2acb918
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 +17 -0
- package/dist/cli.js +2 -91
- package/dist/cliEmitter.js +0 -30
- package/dist/clusters/export.js +0 -2
- package/dist/defaultConfigSchema.js +0 -24
- package/dist/deviceManager.js +1 -94
- package/dist/devices/batteryStorage.js +1 -48
- package/dist/devices/cooktop.js +0 -55
- package/dist/devices/dishwasher.js +0 -57
- package/dist/devices/evse.js +10 -74
- package/dist/devices/export.js +0 -4
- package/dist/devices/extractorHood.js +0 -42
- package/dist/devices/heatPump.js +2 -50
- package/dist/devices/laundryDryer.js +3 -62
- package/dist/devices/laundryWasher.js +4 -70
- package/dist/devices/microwaveOven.js +5 -88
- package/dist/devices/oven.js +0 -85
- package/dist/devices/refrigerator.js +0 -102
- package/dist/devices/roboticVacuumCleaner.js +10 -96
- package/dist/devices/solarPower.js +0 -38
- package/dist/devices/temperatureControl.js +3 -25
- package/dist/devices/waterHeater.js +2 -82
- package/dist/dgram/coap.js +13 -126
- package/dist/dgram/dgram.js +2 -113
- package/dist/dgram/mb_coap.js +3 -41
- package/dist/dgram/mb_mdns.js +13 -51
- package/dist/dgram/mdns.js +137 -298
- package/dist/dgram/multicast.js +1 -60
- package/dist/dgram/unicast.js +0 -54
- package/dist/frontend.js +24 -451
- package/dist/globalMatterbridge.js +0 -47
- package/dist/helpers.js +0 -53
- package/dist/index.js +1 -30
- 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 -3
- package/dist/matter/types.js +0 -3
- package/dist/matterbridge.js +50 -789
- package/dist/matterbridgeAccessoryPlatform.js +0 -36
- package/dist/matterbridgeBehaviors.js +5 -65
- package/dist/matterbridgeDeviceTypes.js +17 -581
- package/dist/matterbridgeDynamicPlatform.js +0 -36
- package/dist/matterbridgeEndpoint.js +54 -1223
- package/dist/matterbridgeEndpointHelpers.js +12 -345
- package/dist/matterbridgePlatform.js +0 -256
- package/dist/matterbridgeTypes.js +0 -25
- package/dist/pluginManager.js +3 -249
- package/dist/shelly.js +7 -168
- package/dist/storage/export.js +0 -1
- package/dist/update.js +0 -69
- package/dist/utils/colorUtils.js +2 -97
- package/dist/utils/commandLine.js +0 -54
- package/dist/utils/copyDirectory.js +1 -38
- package/dist/utils/createDirectory.js +0 -33
- package/dist/utils/createZip.js +2 -47
- package/dist/utils/deepCopy.js +0 -39
- package/dist/utils/deepEqual.js +1 -72
- package/dist/utils/error.js +0 -41
- package/dist/utils/export.js +0 -1
- package/dist/utils/hex.js +0 -124
- package/dist/utils/isvalid.js +0 -101
- package/dist/utils/network.js +5 -91
- package/dist/utils/spawn.js +0 -40
- package/dist/utils/wait.js +8 -60
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -2
- package/dist/cli.d.ts +0 -26
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/cliEmitter.d.ts +0 -34
- package/dist/cliEmitter.d.ts.map +0 -1
- package/dist/cliEmitter.js.map +0 -1
- package/dist/clusters/export.d.ts +0 -2
- package/dist/clusters/export.d.ts.map +0 -1
- package/dist/clusters/export.js.map +0 -1
- package/dist/defaultConfigSchema.d.ts +0 -28
- package/dist/defaultConfigSchema.d.ts.map +0 -1
- package/dist/defaultConfigSchema.js.map +0 -1
- package/dist/deviceManager.d.ts +0 -112
- package/dist/deviceManager.d.ts.map +0 -1
- package/dist/deviceManager.js.map +0 -1
- package/dist/devices/batteryStorage.d.ts +0 -48
- package/dist/devices/batteryStorage.d.ts.map +0 -1
- package/dist/devices/batteryStorage.js.map +0 -1
- package/dist/devices/cooktop.d.ts +0 -60
- package/dist/devices/cooktop.d.ts.map +0 -1
- package/dist/devices/cooktop.js.map +0 -1
- package/dist/devices/dishwasher.d.ts +0 -71
- package/dist/devices/dishwasher.d.ts.map +0 -1
- package/dist/devices/dishwasher.js.map +0 -1
- package/dist/devices/evse.d.ts +0 -75
- package/dist/devices/evse.d.ts.map +0 -1
- package/dist/devices/evse.js.map +0 -1
- package/dist/devices/export.d.ts +0 -15
- package/dist/devices/export.d.ts.map +0 -1
- package/dist/devices/export.js.map +0 -1
- package/dist/devices/extractorHood.d.ts +0 -46
- package/dist/devices/extractorHood.d.ts.map +0 -1
- package/dist/devices/extractorHood.js.map +0 -1
- package/dist/devices/heatPump.d.ts +0 -47
- package/dist/devices/heatPump.d.ts.map +0 -1
- package/dist/devices/heatPump.js.map +0 -1
- package/dist/devices/laundryDryer.d.ts +0 -67
- package/dist/devices/laundryDryer.d.ts.map +0 -1
- package/dist/devices/laundryDryer.js.map +0 -1
- package/dist/devices/laundryWasher.d.ts +0 -81
- package/dist/devices/laundryWasher.d.ts.map +0 -1
- package/dist/devices/laundryWasher.js.map +0 -1
- package/dist/devices/microwaveOven.d.ts +0 -168
- package/dist/devices/microwaveOven.d.ts.map +0 -1
- package/dist/devices/microwaveOven.js.map +0 -1
- package/dist/devices/oven.d.ts +0 -105
- package/dist/devices/oven.d.ts.map +0 -1
- package/dist/devices/oven.js.map +0 -1
- package/dist/devices/refrigerator.d.ts +0 -118
- package/dist/devices/refrigerator.d.ts.map +0 -1
- package/dist/devices/refrigerator.js.map +0 -1
- package/dist/devices/roboticVacuumCleaner.d.ts +0 -112
- package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
- package/dist/devices/roboticVacuumCleaner.js.map +0 -1
- package/dist/devices/solarPower.d.ts +0 -40
- package/dist/devices/solarPower.d.ts.map +0 -1
- package/dist/devices/solarPower.js.map +0 -1
- package/dist/devices/temperatureControl.d.ts +0 -166
- package/dist/devices/temperatureControl.d.ts.map +0 -1
- package/dist/devices/temperatureControl.js.map +0 -1
- package/dist/devices/waterHeater.d.ts +0 -111
- package/dist/devices/waterHeater.d.ts.map +0 -1
- package/dist/devices/waterHeater.js.map +0 -1
- package/dist/dgram/coap.d.ts +0 -205
- package/dist/dgram/coap.d.ts.map +0 -1
- package/dist/dgram/coap.js.map +0 -1
- package/dist/dgram/dgram.d.ts +0 -140
- package/dist/dgram/dgram.d.ts.map +0 -1
- package/dist/dgram/dgram.js.map +0 -1
- package/dist/dgram/mb_coap.d.ts +0 -24
- package/dist/dgram/mb_coap.d.ts.map +0 -1
- package/dist/dgram/mb_coap.js.map +0 -1
- package/dist/dgram/mb_mdns.d.ts +0 -24
- package/dist/dgram/mb_mdns.d.ts.map +0 -1
- package/dist/dgram/mb_mdns.js.map +0 -1
- package/dist/dgram/mdns.d.ts +0 -288
- package/dist/dgram/mdns.d.ts.map +0 -1
- package/dist/dgram/mdns.js.map +0 -1
- package/dist/dgram/multicast.d.ts +0 -65
- package/dist/dgram/multicast.d.ts.map +0 -1
- package/dist/dgram/multicast.js.map +0 -1
- package/dist/dgram/unicast.d.ts +0 -56
- package/dist/dgram/unicast.d.ts.map +0 -1
- package/dist/dgram/unicast.js.map +0 -1
- package/dist/frontend.d.ts +0 -313
- package/dist/frontend.d.ts.map +0 -1
- package/dist/frontend.js.map +0 -1
- package/dist/globalMatterbridge.d.ts +0 -59
- package/dist/globalMatterbridge.d.ts.map +0 -1
- package/dist/globalMatterbridge.js.map +0 -1
- package/dist/helpers.d.ts +0 -48
- package/dist/helpers.d.ts.map +0 -1
- package/dist/helpers.js.map +0 -1
- package/dist/index.d.ts +0 -33
- 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 -462
- package/dist/matterbridge.d.ts.map +0 -1
- package/dist/matterbridge.js.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.d.ts +0 -42
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
- package/dist/matterbridgeBehaviors.d.ts +0 -1351
- package/dist/matterbridgeBehaviors.d.ts.map +0 -1
- package/dist/matterbridgeBehaviors.js.map +0 -1
- package/dist/matterbridgeDeviceTypes.d.ts +0 -710
- package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
- package/dist/matterbridgeDeviceTypes.js.map +0 -1
- package/dist/matterbridgeDynamicPlatform.d.ts +0 -42
- package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
- package/dist/matterbridgeDynamicPlatform.js.map +0 -1
- package/dist/matterbridgeEndpoint.d.ts +0 -1359
- package/dist/matterbridgeEndpoint.d.ts.map +0 -1
- package/dist/matterbridgeEndpoint.js.map +0 -1
- package/dist/matterbridgeEndpointHelpers.d.ts +0 -407
- package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
- package/dist/matterbridgeEndpointHelpers.js.map +0 -1
- package/dist/matterbridgePlatform.d.ts +0 -331
- package/dist/matterbridgePlatform.d.ts.map +0 -1
- package/dist/matterbridgePlatform.js.map +0 -1
- package/dist/matterbridgeTypes.d.ts +0 -198
- package/dist/matterbridgeTypes.d.ts.map +0 -1
- package/dist/matterbridgeTypes.js.map +0 -1
- package/dist/pluginManager.d.ts +0 -270
- package/dist/pluginManager.d.ts.map +0 -1
- package/dist/pluginManager.js.map +0 -1
- package/dist/shelly.d.ts +0 -174
- 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 -75
- package/dist/update.d.ts.map +0 -1
- package/dist/update.js.map +0 -1
- package/dist/utils/colorUtils.d.ts +0 -99
- package/dist/utils/colorUtils.d.ts.map +0 -1
- package/dist/utils/colorUtils.js.map +0 -1
- package/dist/utils/commandLine.d.ts +0 -59
- package/dist/utils/commandLine.d.ts.map +0 -1
- package/dist/utils/commandLine.js.map +0 -1
- package/dist/utils/copyDirectory.d.ts +0 -33
- package/dist/utils/copyDirectory.d.ts.map +0 -1
- package/dist/utils/copyDirectory.js.map +0 -1
- package/dist/utils/createDirectory.d.ts +0 -34
- package/dist/utils/createDirectory.d.ts.map +0 -1
- package/dist/utils/createDirectory.js.map +0 -1
- package/dist/utils/createZip.d.ts +0 -39
- package/dist/utils/createZip.d.ts.map +0 -1
- package/dist/utils/createZip.js.map +0 -1
- package/dist/utils/deepCopy.d.ts +0 -32
- package/dist/utils/deepCopy.d.ts.map +0 -1
- package/dist/utils/deepCopy.js.map +0 -1
- package/dist/utils/deepEqual.d.ts +0 -54
- package/dist/utils/deepEqual.d.ts.map +0 -1
- package/dist/utils/deepEqual.js.map +0 -1
- package/dist/utils/error.d.ts +0 -44
- package/dist/utils/error.d.ts.map +0 -1
- package/dist/utils/error.js.map +0 -1
- package/dist/utils/export.d.ts +0 -12
- package/dist/utils/export.d.ts.map +0 -1
- package/dist/utils/export.js.map +0 -1
- package/dist/utils/hex.d.ts +0 -89
- package/dist/utils/hex.d.ts.map +0 -1
- package/dist/utils/hex.js.map +0 -1
- package/dist/utils/isvalid.d.ts +0 -103
- package/dist/utils/isvalid.d.ts.map +0 -1
- package/dist/utils/isvalid.js.map +0 -1
- package/dist/utils/network.d.ts +0 -84
- package/dist/utils/network.d.ts.map +0 -1
- package/dist/utils/network.js.map +0 -1
- package/dist/utils/spawn.d.ts +0 -33
- package/dist/utils/spawn.d.ts.map +0 -1
- package/dist/utils/spawn.js.map +0 -1
- package/dist/utils/wait.d.ts +0 -54
- package/dist/utils/wait.d.ts.map +0 -1
- package/dist/utils/wait.js.map +0 -1
|
@@ -1,29 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the class MatterbridgeDevice.
|
|
3
|
-
*
|
|
4
|
-
* @file matterbridgeDeviceTypes.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2024-11-08
|
|
7
|
-
* @version 1.0.0
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2024, 2025, 2026 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
|
-
// @matter
|
|
25
1
|
import { DeviceTypeId } from '@matter/main';
|
|
26
|
-
// @matter clusters
|
|
27
2
|
import { BooleanState } from '@matter/main/clusters/boolean-state';
|
|
28
3
|
import { BooleanStateConfiguration } from '@matter/main/clusters/boolean-state-configuration';
|
|
29
4
|
import { BridgedDeviceBasicInformation } from '@matter/main/clusters/bridged-device-basic-information';
|
|
@@ -93,42 +68,15 @@ import { OtaSoftwareUpdateRequestor } from '@matter/main/clusters/ota-software-u
|
|
|
93
68
|
import { EnergyEvse, EnergyEvseMode, OtaSoftwareUpdateProvider, WaterHeaterManagement, WaterHeaterMode } from '@matter/main/clusters';
|
|
94
69
|
export var DeviceClasses;
|
|
95
70
|
(function (DeviceClasses) {
|
|
96
|
-
/** Node device type. */
|
|
97
71
|
DeviceClasses["Node"] = "Node";
|
|
98
|
-
/**
|
|
99
|
-
* Application device type.
|
|
100
|
-
* Application devices types are typically the most datatype endpoints on a node and in the network.
|
|
101
|
-
*/
|
|
102
72
|
DeviceClasses["App"] = "App";
|
|
103
|
-
/**
|
|
104
|
-
* Utility device type.
|
|
105
|
-
* A Utility device type supports configuration and settings.
|
|
106
|
-
*/
|
|
107
73
|
DeviceClasses["Utility"] = "Utility";
|
|
108
|
-
/**
|
|
109
|
-
* Simple device type.
|
|
110
|
-
* A Simple device type supports local control that is persistent, independent, and unsupervised.
|
|
111
|
-
*/
|
|
112
74
|
DeviceClasses["Simple"] = "Simple";
|
|
113
|
-
/**
|
|
114
|
-
* Dynamic device type.
|
|
115
|
-
* A Dynamic device type supports intelligent and supervisory services, such as commissioning,
|
|
116
|
-
* monitoring, trend analysis, scheduling and central management. A dynamic device type is an
|
|
117
|
-
* application device type.
|
|
118
|
-
*/
|
|
119
75
|
DeviceClasses["Dynamic"] = "Dynamic";
|
|
120
|
-
/** There exists a client application cluster on the endpoint. */
|
|
121
76
|
DeviceClasses["Client"] = "Client";
|
|
122
|
-
/** There exists a server application cluster on the endpoint. */
|
|
123
77
|
DeviceClasses["Server"] = "Server";
|
|
124
|
-
/** The device type is composed of 2 or more device types. */
|
|
125
78
|
DeviceClasses["Composed"] = "Composed";
|
|
126
|
-
/** The endpoint and at least one of its sibling endpoints have an overlap in application device type(s). */
|
|
127
79
|
DeviceClasses["Duplicate"] = "Duplicate";
|
|
128
|
-
/**
|
|
129
|
-
* The endpoint represents a Bridged Device, for which information about the state of
|
|
130
|
-
* its power source is available to the Bridge
|
|
131
|
-
*/
|
|
132
80
|
DeviceClasses["BridgedPowerSourceInfo"] = "BridgedPowerSourceInfo";
|
|
133
81
|
})(DeviceClasses || (DeviceClasses = {}));
|
|
134
82
|
export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requiredServerClusters = [], optionalServerClusters = [], requiredClientClusters = [], optionalClientClusters = [], }) => ({
|
|
@@ -141,14 +89,13 @@ export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requir
|
|
|
141
89
|
requiredClientClusters,
|
|
142
90
|
optionalClientClusters,
|
|
143
91
|
});
|
|
144
|
-
// Chapter 2. Utility device types
|
|
145
92
|
export const rootNode = DeviceTypeDefinition({
|
|
146
93
|
name: 'MA-rootNode',
|
|
147
94
|
code: 0x0016,
|
|
148
95
|
deviceClass: DeviceClasses.Node,
|
|
149
96
|
revision: 3,
|
|
150
|
-
requiredServerClusters: [],
|
|
151
|
-
optionalServerClusters: [],
|
|
97
|
+
requiredServerClusters: [],
|
|
98
|
+
optionalServerClusters: [],
|
|
152
99
|
});
|
|
153
100
|
export const powerSource = DeviceTypeDefinition({
|
|
154
101
|
name: 'MA-powerSource',
|
|
@@ -178,27 +125,6 @@ export const OTAProvider = DeviceTypeDefinition({
|
|
|
178
125
|
requiredClientClusters: [OtaSoftwareUpdateRequestor.Cluster.id],
|
|
179
126
|
optionalClientClusters: [],
|
|
180
127
|
});
|
|
181
|
-
/**
|
|
182
|
-
2.5.3. Conditions
|
|
183
|
-
Please see the Base Device Type definition for conformance tags.
|
|
184
|
-
This device type SHALL only be used for Nodes which have a device type of Bridge.
|
|
185
|
-
|
|
186
|
-
2.5.5. Cluster Requirements
|
|
187
|
-
Each endpoint supporting this device type SHALL include these clusters based on the conformance
|
|
188
|
-
defined below.
|
|
189
|
-
- 0x0039 Bridged Device Basic Information Server
|
|
190
|
-
|
|
191
|
-
2.5.6. Endpoint Composition
|
|
192
|
-
• A Bridged Node endpoint SHALL support one of the following composition patterns:
|
|
193
|
-
◦ Separate Endpoints: All application device types are supported on separate endpoints, and
|
|
194
|
-
not on the Bridged Node endpoint. The Bridged Node endpoint’s Descriptor cluster PartsList
|
|
195
|
-
attribute SHALL indicate a list of all endpoints representing the functionality of the bridged
|
|
196
|
-
device, including the endpoints supporting the application device types, i.e. the full-family
|
|
197
|
-
pattern defined in the System Model specification.
|
|
198
|
-
◦ One Endpoint: Both the Bridged Node and one or more application device types are sup
|
|
199
|
-
ported on the same endpoint (following application device type rules). Endpoint composi
|
|
200
|
-
tion SHALL conform to the application device type(s) definition
|
|
201
|
-
*/
|
|
202
128
|
export const bridgedNode = DeviceTypeDefinition({
|
|
203
129
|
name: 'MA-bridgedNode',
|
|
204
130
|
code: 0x0013,
|
|
@@ -207,17 +133,6 @@ export const bridgedNode = DeviceTypeDefinition({
|
|
|
207
133
|
requiredServerClusters: [BridgedDeviceBasicInformation.Cluster.id],
|
|
208
134
|
optionalServerClusters: [PowerSource.Cluster.id, EcosystemInformation.Cluster.id, AdministratorCommissioning.Cluster.id],
|
|
209
135
|
});
|
|
210
|
-
/**
|
|
211
|
-
* An Electrical Sensor device measures the electrical power and/or energy being imported and/or
|
|
212
|
-
* exported.
|
|
213
|
-
* It is a utility device type that provides information about the electrical power and/or energy
|
|
214
|
-
* consumption and generation.
|
|
215
|
-
*
|
|
216
|
-
* 2.6.3. Device Type Requirements
|
|
217
|
-
* Electrical measurements made by either the Electrical Power Measurement cluster, the Electrical
|
|
218
|
-
* Energy Measurement cluster, or both SHALL apply to the endpoints indicated by the Power Topology
|
|
219
|
-
* cluster.
|
|
220
|
-
*/
|
|
221
136
|
export const electricalSensor = DeviceTypeDefinition({
|
|
222
137
|
name: 'MA-electricalSensor',
|
|
223
138
|
code: 0x0510,
|
|
@@ -226,10 +141,6 @@ export const electricalSensor = DeviceTypeDefinition({
|
|
|
226
141
|
requiredServerClusters: [PowerTopology.Cluster.id],
|
|
227
142
|
optionalServerClusters: [ElectricalPowerMeasurement.Cluster.id, ElectricalEnergyMeasurement.Cluster.id],
|
|
228
143
|
});
|
|
229
|
-
/**
|
|
230
|
-
* A Device Energy Management device provides reporting and optionally adjustment of the electrical
|
|
231
|
-
* power planned on being consumed or produced by the device.
|
|
232
|
-
*/
|
|
233
144
|
export const deviceEnergyManagement = DeviceTypeDefinition({
|
|
234
145
|
name: 'MA-deviceEnergyManagement',
|
|
235
146
|
code: 0x050d,
|
|
@@ -238,194 +149,77 @@ export const deviceEnergyManagement = DeviceTypeDefinition({
|
|
|
238
149
|
requiredServerClusters: [DeviceEnergyManagement.Cluster.id],
|
|
239
150
|
optionalServerClusters: [DeviceEnergyManagementMode.Cluster.id],
|
|
240
151
|
});
|
|
241
|
-
// Chapter 4. Lightning device types
|
|
242
|
-
/**
|
|
243
|
-
* Element Requirements:
|
|
244
|
-
* - Identify Command TriggerEffect
|
|
245
|
-
* - Scenes Management Command CopyScene
|
|
246
|
-
* - On/Off Feature Lighting
|
|
247
|
-
* - Level Control Feature OnOff
|
|
248
|
-
* - Level Control Feature Lighting
|
|
249
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
250
|
-
* - Level Control Attribute MinLevel 1
|
|
251
|
-
* - Level Control Attribute MaxLevel 254
|
|
252
|
-
*/
|
|
253
152
|
export const onOffLight = DeviceTypeDefinition({
|
|
254
153
|
name: 'MA-onofflight',
|
|
255
154
|
code: 0x0100,
|
|
256
155
|
deviceClass: DeviceClasses.Simple,
|
|
257
156
|
revision: 3,
|
|
258
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
157
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
|
|
259
158
|
optionalServerClusters: [LevelControl.Cluster.id],
|
|
260
159
|
});
|
|
261
|
-
/**
|
|
262
|
-
* Element Requirements:
|
|
263
|
-
* - Identify Command TriggerEffect
|
|
264
|
-
* - Scenes Management Command CopyScene
|
|
265
|
-
* - On/Off Feature Lighting
|
|
266
|
-
* - Level Control Feature OnOff
|
|
267
|
-
* - Level Control Feature Lighting
|
|
268
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
269
|
-
* - Level Control Attribute MinLevel 1
|
|
270
|
-
* - Level Control Attribute MaxLevel 254
|
|
271
|
-
*/
|
|
272
160
|
export const dimmableLight = DeviceTypeDefinition({
|
|
273
161
|
name: 'MA-dimmablelight',
|
|
274
162
|
code: 0x0101,
|
|
275
163
|
deviceClass: DeviceClasses.Simple,
|
|
276
164
|
revision: 3,
|
|
277
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
165
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
278
166
|
optionalServerClusters: [],
|
|
279
167
|
});
|
|
280
|
-
/**
|
|
281
|
-
* Element Requirements:
|
|
282
|
-
* - Identify Command TriggerEffect
|
|
283
|
-
* - Scenes Management Command CopyScene
|
|
284
|
-
* - On/Off Feature Lighting
|
|
285
|
-
* - Level Control Feature OnOff
|
|
286
|
-
* - Level Control Feature Lighting
|
|
287
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
288
|
-
* - Level Control Attribute MinLevel 1
|
|
289
|
-
* - Level Control Attribute MaxLevel 254
|
|
290
|
-
* - Color Control Feature ColorTemperature
|
|
291
|
-
* - Color Control Attribute RemainingTime
|
|
292
|
-
*/
|
|
293
168
|
export const colorTemperatureLight = DeviceTypeDefinition({
|
|
294
169
|
name: 'MA-colortemperaturelight',
|
|
295
170
|
code: 0x010c,
|
|
296
171
|
deviceClass: DeviceClasses.Simple,
|
|
297
172
|
revision: 4,
|
|
298
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
173
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
299
174
|
optionalServerClusters: [],
|
|
300
175
|
});
|
|
301
|
-
/**
|
|
302
|
-
* Element Requirements:
|
|
303
|
-
* - Identify Command TriggerEffect
|
|
304
|
-
* - Scenes Management Command CopyScene
|
|
305
|
-
* - On/Off Feature Lighting
|
|
306
|
-
* - Level Control Feature OnOff
|
|
307
|
-
* - Level Control Feature Lighting
|
|
308
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
309
|
-
* - Level Control Attribute MinLevel 1
|
|
310
|
-
* - Level Control Attribute MaxLevel 254
|
|
311
|
-
* - Color Control Feature XY
|
|
312
|
-
* - Color Control Feature ColorTemperature
|
|
313
|
-
* - Color Control Attribute RemainingTime
|
|
314
|
-
*/
|
|
315
176
|
export const extendedColorLight = DeviceTypeDefinition({
|
|
316
177
|
name: 'MA-extendedcolorlight',
|
|
317
178
|
code: 0x010d,
|
|
318
179
|
deviceClass: DeviceClasses.Simple,
|
|
319
180
|
revision: 4,
|
|
320
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
181
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
321
182
|
optionalServerClusters: [],
|
|
322
183
|
});
|
|
323
|
-
// Chapter 5. Smart plugs/Outlets and other Actuators device types
|
|
324
|
-
/**
|
|
325
|
-
* Element Requirements:
|
|
326
|
-
* - Identify Command TriggerEffect
|
|
327
|
-
* - Scenes Management Command CopyScene
|
|
328
|
-
* - On/Off Feature Lighting
|
|
329
|
-
* - Level Control Feature OnOff
|
|
330
|
-
* - Level Control Feature Lighting
|
|
331
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
332
|
-
* - Level Control Attribute MinLevel 1
|
|
333
|
-
* - Level Control Attribute MaxLevel 254
|
|
334
|
-
*/
|
|
335
184
|
export const onOffOutlet = DeviceTypeDefinition({
|
|
336
185
|
name: 'MA-onoffpluginunit',
|
|
337
186
|
code: 0x010a,
|
|
338
187
|
deviceClass: DeviceClasses.Simple,
|
|
339
188
|
revision: 3,
|
|
340
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
189
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
|
|
341
190
|
optionalServerClusters: [LevelControl.Cluster.id],
|
|
342
191
|
});
|
|
343
|
-
/**
|
|
344
|
-
* Element Requirements:
|
|
345
|
-
* - Identify Command TriggerEffect
|
|
346
|
-
* - Scenes Management Command CopyScene
|
|
347
|
-
* - On/Off Feature Lighting
|
|
348
|
-
* - Level Control Feature OnOff
|
|
349
|
-
* - Level Control Feature Lighting
|
|
350
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
351
|
-
* - Level Control Attribute MinLevel 1
|
|
352
|
-
* - Level Control Attribute MaxLevel 254
|
|
353
|
-
*/
|
|
354
192
|
export const dimmableOutlet = DeviceTypeDefinition({
|
|
355
193
|
name: 'MA-dimmablepluginunit',
|
|
356
194
|
code: 0x010b,
|
|
357
195
|
deviceClass: DeviceClasses.Simple,
|
|
358
196
|
revision: 4,
|
|
359
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
197
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
360
198
|
optionalServerClusters: [],
|
|
361
199
|
});
|
|
362
|
-
/**
|
|
363
|
-
* A Mounted On/Off Control is a fixed device that provides power to another device that is plugged
|
|
364
|
-
* into it, and is capable of switching that provided power on or off.
|
|
365
|
-
* It is a simple device type that does not require any client clusters.
|
|
366
|
-
* Element Requirements:
|
|
367
|
-
* - Identify Command TriggerEffect
|
|
368
|
-
* - Scenes Management Command CopyScene
|
|
369
|
-
* - On/Off Feature Lighting
|
|
370
|
-
* - Level Control Feature OnOff
|
|
371
|
-
* - Level Control Feature Lighting
|
|
372
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
373
|
-
* - Level Control Attribute MinLevel 1
|
|
374
|
-
* - Level Control Attribute MaxLevel 254
|
|
375
|
-
*/
|
|
376
200
|
export const onOffMountedSwitch = DeviceTypeDefinition({
|
|
377
201
|
name: 'MA-onoffmountedswitch',
|
|
378
202
|
code: 0x010f,
|
|
379
203
|
deviceClass: DeviceClasses.Simple,
|
|
380
204
|
revision: 1,
|
|
381
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
205
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
|
|
382
206
|
optionalServerClusters: [LevelControl.Cluster.id],
|
|
383
207
|
});
|
|
384
|
-
/**
|
|
385
|
-
* A Mounted Dimmable Load Control is a fixed device that provides power to another device that is
|
|
386
|
-
* plugged into it, and is capable of being switched on or off and have its level adjusted. The Mounted
|
|
387
|
-
* Dimmable Load Control is typically used to control a conventional non-communicating light
|
|
388
|
-
* through its mains connection using phase cutting.
|
|
389
|
-
* It is a simple device type that does not require any client clusters.
|
|
390
|
-
* Element Requirements:
|
|
391
|
-
* - Identify Command TriggerEffect
|
|
392
|
-
* - Scenes Management Command CopyScene
|
|
393
|
-
* - On/Off Feature Lighting
|
|
394
|
-
* - Level Control Feature OnOff
|
|
395
|
-
* - Level Control Feature Lighting
|
|
396
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
397
|
-
* - Level Control Attribute MinLevel 1
|
|
398
|
-
* - Level Control Attribute MaxLevel 254
|
|
399
|
-
*/
|
|
400
208
|
export const dimmableMountedSwitch = DeviceTypeDefinition({
|
|
401
209
|
name: 'MA-dimmablemountedswitch',
|
|
402
210
|
code: 0x0110,
|
|
403
211
|
deviceClass: DeviceClasses.Simple,
|
|
404
212
|
revision: 1,
|
|
405
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id,
|
|
213
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
406
214
|
optionalServerClusters: [],
|
|
407
215
|
});
|
|
408
|
-
/**
|
|
409
|
-
* Remark:
|
|
410
|
-
* On/Off Cluster:
|
|
411
|
-
* - Off If the pump is powered on, store the current level then immediately power it off.
|
|
412
|
-
* - 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,
|
|
413
|
-
* move immediately to the maximum level allowed for the pump.
|
|
414
|
-
* - 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.
|
|
415
|
-
*
|
|
416
|
-
* LevelControl cluster:
|
|
417
|
-
* Level Setpoint Meaning
|
|
418
|
-
* 0 N/A Pump is stopped,
|
|
419
|
-
* 1–200 Level / 2 (0.5–100.0%) Pump setpoint in percent
|
|
420
|
-
* 201–255 100.0% Pump setpoint is 100.0%
|
|
421
|
-
*/
|
|
422
216
|
export const pumpDevice = DeviceTypeDefinition({
|
|
423
217
|
name: 'MA-pump',
|
|
424
218
|
code: 0x303,
|
|
425
219
|
deviceClass: DeviceClasses.Simple,
|
|
426
220
|
revision: 3,
|
|
427
221
|
requiredServerClusters: [OnOff.Cluster.id, PumpConfigurationAndControl.Cluster.id, Identify.Cluster.id],
|
|
428
|
-
optionalServerClusters: [LevelControl.Cluster.id, Groups.Cluster.id,
|
|
222
|
+
optionalServerClusters: [LevelControl.Cluster.id, Groups.Cluster.id, TemperatureMeasurement.Cluster.id, PressureMeasurement.Cluster.id, FlowMeasurement.Cluster.id],
|
|
429
223
|
});
|
|
430
224
|
export const waterValve = DeviceTypeDefinition({
|
|
431
225
|
name: 'MA-waterValve',
|
|
@@ -435,33 +229,29 @@ export const waterValve = DeviceTypeDefinition({
|
|
|
435
229
|
requiredServerClusters: [Identify.Cluster.id, ValveConfigurationAndControl.Cluster.id],
|
|
436
230
|
optionalServerClusters: [FlowMeasurement.Cluster.id],
|
|
437
231
|
});
|
|
438
|
-
// Chapter 6. Switches and Controls device types
|
|
439
|
-
// Custom device types without client clusters (not working in Alexa)
|
|
440
232
|
export const onOffSwitch = DeviceTypeDefinition({
|
|
441
233
|
name: 'MA-onoffswitch',
|
|
442
234
|
code: 0x0103,
|
|
443
235
|
deviceClass: DeviceClasses.Simple,
|
|
444
236
|
revision: 3,
|
|
445
237
|
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id],
|
|
446
|
-
optionalServerClusters: [Groups.Cluster.id
|
|
238
|
+
optionalServerClusters: [Groups.Cluster.id],
|
|
447
239
|
});
|
|
448
|
-
// Custom device types without client clusters (not working in Alexa)
|
|
449
240
|
export const dimmableSwitch = DeviceTypeDefinition({
|
|
450
241
|
name: 'MA-dimmableswitch',
|
|
451
242
|
code: 0x0104,
|
|
452
243
|
deviceClass: DeviceClasses.Simple,
|
|
453
244
|
revision: 3,
|
|
454
245
|
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
455
|
-
optionalServerClusters: [Groups.Cluster.id
|
|
246
|
+
optionalServerClusters: [Groups.Cluster.id],
|
|
456
247
|
});
|
|
457
|
-
// Custom device types without client clusters (not working in Alexa)
|
|
458
248
|
export const colorTemperatureSwitch = DeviceTypeDefinition({
|
|
459
249
|
name: 'MA-colortemperatureswitch',
|
|
460
250
|
code: 0x0105,
|
|
461
251
|
deviceClass: DeviceClasses.Simple,
|
|
462
252
|
revision: 3,
|
|
463
253
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
464
|
-
optionalServerClusters: [Groups.Cluster.id
|
|
254
|
+
optionalServerClusters: [Groups.Cluster.id],
|
|
465
255
|
});
|
|
466
256
|
export const genericSwitch = DeviceTypeDefinition({
|
|
467
257
|
name: 'MA-genericswitch',
|
|
@@ -471,11 +261,6 @@ export const genericSwitch = DeviceTypeDefinition({
|
|
|
471
261
|
requiredServerClusters: [Identify.Cluster.id, Switch.Cluster.id],
|
|
472
262
|
optionalServerClusters: [],
|
|
473
263
|
});
|
|
474
|
-
// Chapter 7. Sensor device types
|
|
475
|
-
/**
|
|
476
|
-
* Closed or contact: state true
|
|
477
|
-
* Open or no contact: state false
|
|
478
|
-
*/
|
|
479
264
|
export const contactSensor = DeviceTypeDefinition({
|
|
480
265
|
name: 'MA-contactsensor',
|
|
481
266
|
code: 0x0015,
|
|
@@ -527,7 +312,6 @@ export const humiditySensor = DeviceTypeDefinition({
|
|
|
527
312
|
revision: 2,
|
|
528
313
|
requiredServerClusters: [Identify.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
|
|
529
314
|
});
|
|
530
|
-
// Remark: A Smoke CO Alarm device type SHALL support an instance of a Power Source device type on some endpoint.
|
|
531
315
|
export const smokeCoAlarm = DeviceTypeDefinition({
|
|
532
316
|
name: 'MA-smokeCoAlarm',
|
|
533
317
|
code: 0x0076,
|
|
@@ -581,15 +365,6 @@ export const rainSensor = DeviceTypeDefinition({
|
|
|
581
365
|
requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
|
|
582
366
|
optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
|
|
583
367
|
});
|
|
584
|
-
// Closures device types
|
|
585
|
-
/**
|
|
586
|
-
* 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.
|
|
587
|
-
* Element Requirements:
|
|
588
|
-
*
|
|
589
|
-
* - AccessControl Attribute Extension
|
|
590
|
-
* - DoorLock Feature User
|
|
591
|
-
* - DoorLock Attribute AlarmMask
|
|
592
|
-
*/
|
|
593
368
|
export const doorLockDevice = DeviceTypeDefinition({
|
|
594
369
|
name: 'MA-doorLock',
|
|
595
370
|
code: 0xa,
|
|
@@ -606,15 +381,6 @@ export const coverDevice = DeviceTypeDefinition({
|
|
|
606
381
|
requiredServerClusters: [Identify.Cluster.id, WindowCovering.Cluster.id],
|
|
607
382
|
optionalServerClusters: [Groups.Cluster.id],
|
|
608
383
|
});
|
|
609
|
-
// HVAC device types
|
|
610
|
-
/**
|
|
611
|
-
* A Thermostat device is capable of having either built-in or separate sensors for temperature,
|
|
612
|
-
* humidity or occupancy. It allows the desired temperature to be set either remotely or locally. The
|
|
613
|
-
* thermostat is capable of sending heating and/or cooling requirement notifications to a heating/cooling
|
|
614
|
-
* unit (for example, an indoor air handler) or is capable of including a mechanism to control a
|
|
615
|
-
* heating or cooling unit directly.
|
|
616
|
-
*
|
|
617
|
-
*/
|
|
618
384
|
export const thermostatDevice = DeviceTypeDefinition({
|
|
619
385
|
name: 'MA-thermostat',
|
|
620
386
|
code: 0x301,
|
|
@@ -623,25 +389,6 @@ export const thermostatDevice = DeviceTypeDefinition({
|
|
|
623
389
|
requiredServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
|
|
624
390
|
optionalServerClusters: [Groups.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id],
|
|
625
391
|
});
|
|
626
|
-
/**
|
|
627
|
-
* A Fan device is typically standalone or mounted on a ceiling or wall and is used to circulate air in a room.
|
|
628
|
-
* Remark: it may have a thermostat device type.
|
|
629
|
-
* Additional device types MAY also be included in device compositions.
|
|
630
|
-
* Element Requirements:
|
|
631
|
-
* The FanControl cluster must have the FanModeSequence attribute.
|
|
632
|
-
*
|
|
633
|
-
* The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
|
|
634
|
-
* includes an Off setting.
|
|
635
|
-
* If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
|
|
636
|
-
* attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
|
|
637
|
-
* FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
|
|
638
|
-
* attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
|
|
639
|
-
* the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
|
|
640
|
-
* zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
|
|
641
|
-
* PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
|
|
642
|
-
* would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
|
|
643
|
-
* SpeedSetting and PercentSetting.
|
|
644
|
-
*/
|
|
645
392
|
export const fanDevice = DeviceTypeDefinition({
|
|
646
393
|
name: 'MA-fan',
|
|
647
394
|
code: 0x2b,
|
|
@@ -650,35 +397,6 @@ export const fanDevice = DeviceTypeDefinition({
|
|
|
650
397
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, FanControl.Cluster.id],
|
|
651
398
|
optionalServerClusters: [OnOff.Cluster.id],
|
|
652
399
|
});
|
|
653
|
-
/**
|
|
654
|
-
* An Air Purifier is a standalone device that is designed to clean the air in a room.
|
|
655
|
-
* It is a device that has a fan to control the air speed while it is operating. Optionally, it can report on
|
|
656
|
-
* the condition of its filters.
|
|
657
|
-
*
|
|
658
|
-
* Remark:
|
|
659
|
-
* An Air Purifier MAY expose elements of its functionality through one or more additional device
|
|
660
|
-
* types on different endpoints. All devices used in compositions SHALL adhere to the disambiguation
|
|
661
|
-
* requirements of the System Model. Other device types, not explicitly listed in the table, MAY also be
|
|
662
|
-
* included in device compositions but are not considered part of the core functionality of the device.
|
|
663
|
-
* 0x0301 Thermostat O
|
|
664
|
-
* 0x0302 Temperature Sensor O
|
|
665
|
-
* 0x0307 Humidity Sensor O
|
|
666
|
-
* 0x002C Air Quality Sensor O
|
|
667
|
-
*
|
|
668
|
-
* Cluster Restrictions:
|
|
669
|
-
* The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
|
|
670
|
-
* includes an Off setting.
|
|
671
|
-
* If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
|
|
672
|
-
* attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
|
|
673
|
-
* FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
|
|
674
|
-
* attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
|
|
675
|
-
* the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
|
|
676
|
-
* zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
|
|
677
|
-
* PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
|
|
678
|
-
* would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
|
|
679
|
-
* SpeedSetting and PercentSetting.
|
|
680
|
-
*
|
|
681
|
-
*/
|
|
682
400
|
export const airPurifier = DeviceTypeDefinition({
|
|
683
401
|
name: 'MA-airPurifier',
|
|
684
402
|
code: 0x2d,
|
|
@@ -687,7 +405,6 @@ export const airPurifier = DeviceTypeDefinition({
|
|
|
687
405
|
requiredServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
|
|
688
406
|
optionalServerClusters: [Groups.Cluster.id, OnOff.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
|
|
689
407
|
});
|
|
690
|
-
// Generic device types
|
|
691
408
|
export const modeSelect = DeviceTypeDefinition({
|
|
692
409
|
name: 'MA-modeselect',
|
|
693
410
|
code: 0x27,
|
|
@@ -695,37 +412,6 @@ export const modeSelect = DeviceTypeDefinition({
|
|
|
695
412
|
revision: 1,
|
|
696
413
|
requiredServerClusters: [ModeSelect.Cluster.id],
|
|
697
414
|
});
|
|
698
|
-
/**
|
|
699
|
-
* This device type aggregates endpoints as a collection. Clusters on the endpoint indicating this
|
|
700
|
-
* device type provide functionality for the collection of descendant endpoints present in the PartsList
|
|
701
|
-
* of the endpoint’s descriptor, for example the Actions cluster.
|
|
702
|
-
*
|
|
703
|
-
* Endpoint Composition:
|
|
704
|
-
* An Aggregator endpoint’s Descriptor cluster PartsList attribute SHALL list the collection of all endpoints
|
|
705
|
-
* aggregated by the Aggregator device type, i.e. the full-family pattern defined in the System Model specification.
|
|
706
|
-
*
|
|
707
|
-
* Disambiguation:
|
|
708
|
-
* If the Duplicate condition applies to child endpoints of an Aggregator endpoint that represent multiple
|
|
709
|
-
* independent bridged devices, the endpoints SHOULD make available metadata to allow a
|
|
710
|
-
* client to disambiguate distinct bridged devices with an overlap in application device types.
|
|
711
|
-
*
|
|
712
|
-
* Typically this is done using the NodeLabel attribute of the Bridged Device Basic Information cluster
|
|
713
|
-
* - thus reusing the naming information which the bridge already has to allow disambiguation to the
|
|
714
|
-
* user when using a direct user interface to the bridge.
|
|
715
|
-
*
|
|
716
|
-
* Actions cluster (9.14 Matter specification):
|
|
717
|
-
* If a Bridge has (such) information on topology or logical grouping, it SHOULD expose such information
|
|
718
|
-
* in the EndpointLists attribute of an Actions cluster (the ActionLists of which MAY be empty if
|
|
719
|
-
* no actions are exposed). 9.12 Matter specification
|
|
720
|
-
*
|
|
721
|
-
* 9.12.5. New features for Bridged Devices
|
|
722
|
-
* Bridged Devices can have their software updated independently of the Bridge, through Bridge Manufacturer-
|
|
723
|
-
* specific means. These updates MAY result in one or more changes to their capabilities,
|
|
724
|
-
* such as supported clusters and/or attributes, for an endpoint. Like every Matter Node, every endpoint
|
|
725
|
-
* on the Bridge’s Node contains a Descriptor cluster that contains attributes for the device types
|
|
726
|
-
* (DeviceTypeList), endpoints (PartsList) and supported clusters (ServerList and ClientList). Nodes
|
|
727
|
-
* that wish to be notified of such changes SHOULD monitor changes of these attributes.
|
|
728
|
-
*/
|
|
729
415
|
export const aggregator = DeviceTypeDefinition({
|
|
730
416
|
name: 'MA-aggregator',
|
|
731
417
|
code: 0x000e,
|
|
@@ -735,29 +421,6 @@ export const aggregator = DeviceTypeDefinition({
|
|
|
735
421
|
optionalServerClusters: [Actions.Cluster.id, Identify.Cluster.id, CommissionerControl.Cluster.id],
|
|
736
422
|
});
|
|
737
423
|
export const bridge = aggregator;
|
|
738
|
-
// Robotic device types
|
|
739
|
-
/**
|
|
740
|
-
* A Robotic Vacuum Cleaner is a device that is capable of cleaning floors and other surfaces
|
|
741
|
-
* in a home or office environment. It is typically a mobile device that can navigate around
|
|
742
|
-
* obstacles and can be controlled remotely.
|
|
743
|
-
*
|
|
744
|
-
* Cluster Usage:
|
|
745
|
-
* The RVC Operational State cluster’s OperationalState attribute SHALL be updated according to the
|
|
746
|
-
* state of the device, and therefore it SHOULD be used for monitoring purposes.
|
|
747
|
-
*
|
|
748
|
-
* To attempt starting a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
|
|
749
|
-
* command with the NewMode field set to a mode that has the Cleaning mode tag associated with it.
|
|
750
|
-
*
|
|
751
|
-
* To attempt stopping a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
|
|
752
|
-
* command with the NewMode field set to a mode that has the Idle mode tag associated with it.
|
|
753
|
-
*
|
|
754
|
-
* To attempt pausing a cleaning operation, the RVC Operational State cluster can be sent a Pause command.
|
|
755
|
-
*
|
|
756
|
-
* To attempt resuming a cleaning operation, the RVC Operational State cluster can be sent a Resume
|
|
757
|
-
* command.
|
|
758
|
-
*
|
|
759
|
-
*
|
|
760
|
-
*/
|
|
761
424
|
export const roboticVacuumCleaner = DeviceTypeDefinition({
|
|
762
425
|
name: 'MA-roboticvacuumcleaner',
|
|
763
426
|
code: 0x74,
|
|
@@ -766,11 +429,6 @@ export const roboticVacuumCleaner = DeviceTypeDefinition({
|
|
|
766
429
|
requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
|
|
767
430
|
optionalServerClusters: [RvcCleanMode.Cluster.id, ServiceArea.Cluster.id],
|
|
768
431
|
});
|
|
769
|
-
// Chapter 13. Appliances device types
|
|
770
|
-
/**
|
|
771
|
-
* Cluster Restrictions:
|
|
772
|
-
* On/Off Cluster: the DF (Dead Front) feature is required
|
|
773
|
-
*/
|
|
774
432
|
export const laundryWasher = DeviceTypeDefinition({
|
|
775
433
|
name: 'MA-laundrywasher',
|
|
776
434
|
code: 0x73,
|
|
@@ -779,13 +437,6 @@ export const laundryWasher = DeviceTypeDefinition({
|
|
|
779
437
|
requiredServerClusters: [OperationalState.Cluster.id],
|
|
780
438
|
optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryWasherControls.Cluster.id, TemperatureControl.Cluster.id],
|
|
781
439
|
});
|
|
782
|
-
/**
|
|
783
|
-
* A refrigerator represents a device that contains one or more cabinets that are capable of chilling or freezing food.
|
|
784
|
-
* A Refrigerator SHALL be composed of at least one endpoint with the Temperature Controlled Cabinet device type.
|
|
785
|
-
*
|
|
786
|
-
* Device Type Requirements:
|
|
787
|
-
* 0x0071 Temperature Controlled Cabinet
|
|
788
|
-
*/
|
|
789
440
|
export const refrigerator = DeviceTypeDefinition({
|
|
790
441
|
name: 'MA-refrigerator',
|
|
791
442
|
code: 0x70,
|
|
@@ -794,23 +445,6 @@ export const refrigerator = DeviceTypeDefinition({
|
|
|
794
445
|
requiredServerClusters: [Identify.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id, RefrigeratorAlarm.Cluster.id],
|
|
795
446
|
optionalServerClusters: [],
|
|
796
447
|
});
|
|
797
|
-
/**
|
|
798
|
-
* A Room Air Conditioner is a device with the primary function of controlling the air temperature in a single room.
|
|
799
|
-
*
|
|
800
|
-
* A Room Air Conditioner MAY have zero or more of each device type listed in this table subject to
|
|
801
|
-
* the conformance column of the table. All devices used in compositions SHALL adhere to the disambiguation
|
|
802
|
-
* requirements of the System Model. Additional device types not listed in this table MAY also be included in device compositions.
|
|
803
|
-
* 0x0302 Temperature Sensor O
|
|
804
|
-
* 0x0307 Humidity Sensor O
|
|
805
|
-
*
|
|
806
|
-
* Remark:
|
|
807
|
-
* The DF (Dead Front) feature is required for the On/Off cluster in this device type:
|
|
808
|
-
* - Thermostat LocalTemperature null
|
|
809
|
-
* - Temperature Measurement MeasuredValue null
|
|
810
|
-
* - Relative Humidity Measurement MeasuredValue null
|
|
811
|
-
* - Fan Control SpeedSetting null
|
|
812
|
-
* - Fan Control PercentSetting null
|
|
813
|
-
*/
|
|
814
448
|
export const airConditioner = DeviceTypeDefinition({
|
|
815
449
|
name: 'MA-airConditioner',
|
|
816
450
|
code: 0x72,
|
|
@@ -819,22 +453,12 @@ export const airConditioner = DeviceTypeDefinition({
|
|
|
819
453
|
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, Thermostat.Cluster.id],
|
|
820
454
|
optionalServerClusters: [
|
|
821
455
|
Groups.Cluster.id,
|
|
822
|
-
/* ScenesManagement.Cluster.id,*/
|
|
823
456
|
FanControl.Cluster.id,
|
|
824
457
|
ThermostatUserInterfaceConfiguration.Cluster.id,
|
|
825
458
|
TemperatureMeasurement.Cluster.id,
|
|
826
459
|
RelativeHumidityMeasurement.Cluster.id,
|
|
827
460
|
],
|
|
828
461
|
});
|
|
829
|
-
/**
|
|
830
|
-
* A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
|
|
831
|
-
* a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
|
|
832
|
-
* chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
|
|
833
|
-
* device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
|
|
834
|
-
* range, or similar device.
|
|
835
|
-
* Conditions:
|
|
836
|
-
* Cooler The device has cooling functionality.
|
|
837
|
-
*/
|
|
838
462
|
export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
|
|
839
463
|
name: 'MA-temperaturecontrolledcabinetcooler',
|
|
840
464
|
code: 0x71,
|
|
@@ -843,15 +467,6 @@ export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
|
|
|
843
467
|
requiredServerClusters: [TemperatureControl.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id],
|
|
844
468
|
optionalServerClusters: [TemperatureMeasurement.Cluster.id],
|
|
845
469
|
});
|
|
846
|
-
/**
|
|
847
|
-
* A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
|
|
848
|
-
* a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
|
|
849
|
-
* chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
|
|
850
|
-
* device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
|
|
851
|
-
* range, or similar device.
|
|
852
|
-
* Conditions:
|
|
853
|
-
* Heater The device has heating functionality.
|
|
854
|
-
*/
|
|
855
470
|
export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
|
|
856
471
|
name: 'MA-temperaturecontrolledcabinetheater',
|
|
857
472
|
code: 0x71,
|
|
@@ -860,10 +475,6 @@ export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
|
|
|
860
475
|
requiredServerClusters: [TemperatureControl.Cluster.id, OvenMode.Cluster.id, OvenCavityOperationalState.Cluster.id],
|
|
861
476
|
optionalServerClusters: [TemperatureMeasurement.Cluster.id],
|
|
862
477
|
});
|
|
863
|
-
/**
|
|
864
|
-
* Cluster Restrictions:
|
|
865
|
-
* On/Off Cluster: the DF (Dead Front) feature is required
|
|
866
|
-
*/
|
|
867
478
|
export const dishwasher = DeviceTypeDefinition({
|
|
868
479
|
name: 'MA-dishwasher',
|
|
869
480
|
code: 0x75,
|
|
@@ -872,10 +483,6 @@ export const dishwasher = DeviceTypeDefinition({
|
|
|
872
483
|
requiredServerClusters: [OperationalState.Cluster.id],
|
|
873
484
|
optionalServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, TemperatureControl.Cluster.id, DishwasherMode.Cluster.id, DishwasherAlarm.Cluster.id],
|
|
874
485
|
});
|
|
875
|
-
/**
|
|
876
|
-
* Cluster Restrictions:
|
|
877
|
-
* On/Off Cluster: the DF (Dead Front) feature is required
|
|
878
|
-
*/
|
|
879
486
|
export const laundryDryer = DeviceTypeDefinition({
|
|
880
487
|
name: 'MA-laundrydryer',
|
|
881
488
|
code: 0x7c,
|
|
@@ -884,13 +491,6 @@ export const laundryDryer = DeviceTypeDefinition({
|
|
|
884
491
|
requiredServerClusters: [OperationalState.Cluster.id],
|
|
885
492
|
optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryDryerControls.Cluster.id, TemperatureControl.Cluster.id],
|
|
886
493
|
});
|
|
887
|
-
/**
|
|
888
|
-
* A Cook Surface device type represents a heating object on a cooktop or other similar device. It
|
|
889
|
-
* SHALL only be used when composed as part of another device type (cooktop).
|
|
890
|
-
*
|
|
891
|
-
* Cluster Restrictions:
|
|
892
|
-
* The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements.
|
|
893
|
-
*/
|
|
894
494
|
export const cookSurface = DeviceTypeDefinition({
|
|
895
495
|
name: 'MA-cooksurface',
|
|
896
496
|
code: 0x77,
|
|
@@ -899,18 +499,6 @@ export const cookSurface = DeviceTypeDefinition({
|
|
|
899
499
|
requiredServerClusters: [TemperatureControl.Cluster.id, TemperatureMeasurement.Cluster.id],
|
|
900
500
|
optionalServerClusters: [OnOff.Cluster.id],
|
|
901
501
|
});
|
|
902
|
-
/**
|
|
903
|
-
* A cooktop is a cooking surface that heats food either by transferring currents from an electromagnetic
|
|
904
|
-
* field located below the glass surface directly to the magnetic induction cookware placed
|
|
905
|
-
* above or through traditional gas or electric burners.
|
|
906
|
-
*
|
|
907
|
-
* Device Type Requirements:
|
|
908
|
-
* A Cooktop SHALL be composed of zero or more endpoints with the Cook Surface device type as defined by the conformance below.
|
|
909
|
-
* 0x0077 Cook Surface min 1 O
|
|
910
|
-
*
|
|
911
|
-
* Cluster Restrictions:
|
|
912
|
-
* The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements.
|
|
913
|
-
*/
|
|
914
502
|
export const cooktop = DeviceTypeDefinition({
|
|
915
503
|
name: 'MA-cooktop',
|
|
916
504
|
code: 0x78,
|
|
@@ -919,15 +507,6 @@ export const cooktop = DeviceTypeDefinition({
|
|
|
919
507
|
requiredServerClusters: [OnOff.Cluster.id],
|
|
920
508
|
optionalServerClusters: [Identify.Cluster.id],
|
|
921
509
|
});
|
|
922
|
-
/**
|
|
923
|
-
* An oven represents a device that contains one or more cabinets, and optionally a single cooktop, that are all capable of heating food.
|
|
924
|
-
* An oven is always defined via endpoint composition.
|
|
925
|
-
* Conditions:
|
|
926
|
-
* An Oven SHALL have the Heater condition applied to at least one endpoint containing the Temperature Control Cluster.
|
|
927
|
-
* Device Type Requirements:
|
|
928
|
-
* - 0x0071 Temperature Controlled Cabinet min 1
|
|
929
|
-
* - 0x0078 Cooktop
|
|
930
|
-
*/
|
|
931
510
|
export const oven = DeviceTypeDefinition({
|
|
932
511
|
name: 'MA-oven',
|
|
933
512
|
code: 0x7b,
|
|
@@ -936,18 +515,6 @@ export const oven = DeviceTypeDefinition({
|
|
|
936
515
|
requiredServerClusters: [Identify.Cluster.id],
|
|
937
516
|
optionalServerClusters: [],
|
|
938
517
|
});
|
|
939
|
-
/**
|
|
940
|
-
* An Extractor Hood is a device that is generally installed above a cooking surface in residential kitchens.
|
|
941
|
-
* Additional device types not listed in this table MAY also be included in device compositions.
|
|
942
|
-
* Device Type Requirements:
|
|
943
|
-
* 0x0100+ On/Off Light+ O
|
|
944
|
-
*
|
|
945
|
-
*
|
|
946
|
-
* Element Requirements:
|
|
947
|
-
* - 0x0202 Fan Control Feature Rocking X
|
|
948
|
-
* - 0x0202 Fan Control Feature Wind X
|
|
949
|
-
* - 0x0202 Fan Control Feature AirflowDirection X
|
|
950
|
-
*/
|
|
951
518
|
export const extractorHood = DeviceTypeDefinition({
|
|
952
519
|
name: 'MA-extractorhood',
|
|
953
520
|
code: 0x7a,
|
|
@@ -956,12 +523,6 @@ export const extractorHood = DeviceTypeDefinition({
|
|
|
956
523
|
requiredServerClusters: [FanControl.Cluster.id],
|
|
957
524
|
optionalServerClusters: [Identify.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
|
|
958
525
|
});
|
|
959
|
-
/**
|
|
960
|
-
* A Microwave Oven is a device with the primary function of heating foods and beverages using a magnetron.
|
|
961
|
-
* A Microwave Oven is a device which at a minimum is capable of being started and stopped and of setting a power level.
|
|
962
|
-
* A Microwave Oven MAY also support additional capabilities via endpoint composition.
|
|
963
|
-
*
|
|
964
|
-
*/
|
|
965
526
|
export const microwaveOven = DeviceTypeDefinition({
|
|
966
527
|
name: 'MA-microwaveoven',
|
|
967
528
|
code: 0x79,
|
|
@@ -970,26 +531,6 @@ export const microwaveOven = DeviceTypeDefinition({
|
|
|
970
531
|
requiredServerClusters: [OperationalState.Cluster.id, MicrowaveOvenMode.Cluster.id, MicrowaveOvenControl.Cluster.id],
|
|
971
532
|
optionalServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
|
|
972
533
|
});
|
|
973
|
-
// Chapter 14. Energy Device Types
|
|
974
|
-
/**
|
|
975
|
-
* An EVSE (Electric Vehicle Supply Equipment) is a device that allows an EV (Electric Vehicle) to be
|
|
976
|
-
* connected to the mains electricity supply to allow it to be charged (or discharged in case of Vehicle
|
|
977
|
-
* to Grid / Vehicle to Home applications).
|
|
978
|
-
*
|
|
979
|
-
* 14.1.5. Device Type Requirements
|
|
980
|
-
* An EVSE SHALL be composed of at least one endpoint with device types as defined by the conformance
|
|
981
|
-
* below. There MAY be more endpoints with other device types existing in the EVSE.
|
|
982
|
-
* - ID Name Constraint Conformance
|
|
983
|
-
* - 0x0011 Power Source min 1 M
|
|
984
|
-
* - 0x0510 Electrical Sensor min 1 M
|
|
985
|
-
* - 0x050D Device Energy Management min 1 M
|
|
986
|
-
*
|
|
987
|
-
* The Electrical Sensor device SHALL include both the Electrical Energy Measurement and Electrical
|
|
988
|
-
* Power Measurement clusters, measuring the total energy and power of the EVSE.
|
|
989
|
-
*
|
|
990
|
-
* The Device Energy Management cluster included in the Device Energy Management device SHALL
|
|
991
|
-
* support the Power Forecast Reporting (PFR) feature.
|
|
992
|
-
*/
|
|
993
534
|
export const evse = DeviceTypeDefinition({
|
|
994
535
|
name: 'MA-evse',
|
|
995
536
|
code: 0x050c,
|
|
@@ -998,39 +539,6 @@ export const evse = DeviceTypeDefinition({
|
|
|
998
539
|
requiredServerClusters: [EnergyEvse.Cluster.id, EnergyEvseMode.Cluster.id],
|
|
999
540
|
optionalServerClusters: [Identify.Cluster.id, TemperatureMeasurement.Cluster.id],
|
|
1000
541
|
});
|
|
1001
|
-
/**
|
|
1002
|
-
* A water heater is a device that is generally installed in properties to heat water for showers, baths etc.
|
|
1003
|
-
* A Water Heater is always defined via endpoint composition.
|
|
1004
|
-
*
|
|
1005
|
-
* 14.2.5. Device Type Requirements
|
|
1006
|
-
* A Water Heater SHALL be composed of at least one endpoint with device types as defined by the
|
|
1007
|
-
* conformance below. There MAY be more endpoints with other device types existing in the Water Heater.
|
|
1008
|
-
* - ID Name Constraint Conformance
|
|
1009
|
-
* - 0x0011 Power Source O
|
|
1010
|
-
* - 0x0302 Temperature Sensor O
|
|
1011
|
-
* - 0x0510 Electrical Sensor desc
|
|
1012
|
-
* - 0x050D Device Energy Management O
|
|
1013
|
-
*
|
|
1014
|
-
* 14.2.7. Element Requirements
|
|
1015
|
-
* 0x0201 Thermostat Feature Heating M
|
|
1016
|
-
*
|
|
1017
|
-
* The Energy Management feature of the Water Heater cluster SHALL be supported if the Device
|
|
1018
|
-
* Energy Management device type is included.
|
|
1019
|
-
* If Off is a supported SystemMode in the Thermostat cluster, setting the SystemMode of the Thermostat
|
|
1020
|
-
* cluster to Off SHALL set the CurrentMode attribute of the Water Heater Mode cluster to a mode
|
|
1021
|
-
* having the Off mode tag value and vice versa.
|
|
1022
|
-
* At least one entry in the SupportedModes attribute of the Water Heater Mode cluster SHALL
|
|
1023
|
-
* include the Timed mode tag in the ModeTags field list.
|
|
1024
|
-
*
|
|
1025
|
-
* WaterHeaterMode Cluster
|
|
1026
|
-
* 9.6.6.1. SupportedModes Attribute
|
|
1027
|
-
* At least one entry in the SupportedModes attribute SHALL include the Manual mode tag in the
|
|
1028
|
-
* ModeTags field list.
|
|
1029
|
-
* At least one entry in the SupportedModes attribute SHALL include the Off mode tag in the ModeTags
|
|
1030
|
-
* field list.
|
|
1031
|
-
* An entry in the SupportedModes attribute that includes one of an Off, Manual, or Timed tag SHALL
|
|
1032
|
-
* NOT also include an additional instance of any one of these tag types.
|
|
1033
|
-
*/
|
|
1034
542
|
export const waterHeater = DeviceTypeDefinition({
|
|
1035
543
|
name: 'MA-waterheater',
|
|
1036
544
|
code: 0x050f,
|
|
@@ -1039,99 +547,27 @@ export const waterHeater = DeviceTypeDefinition({
|
|
|
1039
547
|
requiredServerClusters: [Thermostat.Cluster.id, WaterHeaterManagement.Cluster.id, WaterHeaterMode.Cluster.id],
|
|
1040
548
|
optionalServerClusters: [Identify.Cluster.id],
|
|
1041
549
|
});
|
|
1042
|
-
/**
|
|
1043
|
-
* A Solar Power device is a device that allows a solar panel array, which can optionally be comprised
|
|
1044
|
-
* of a set parallel strings of solar panels, and its associated controller and, if appropriate, inverter, to
|
|
1045
|
-
* be monitored and controlled by an Energy Management System.
|
|
1046
|
-
*
|
|
1047
|
-
* 14.3.5. Device Type Requirements
|
|
1048
|
-
* A Solar Power device SHALL be composed of at least one endpoint with device types as defined by
|
|
1049
|
-
* the conformance below. There MAY be more endpoints with additional instances of these device
|
|
1050
|
-
* types or additional device types existing in the Solar Power device.
|
|
1051
|
-
*
|
|
1052
|
-
* - ID Name Constraint Conformance
|
|
1053
|
-
* - 0x0011 Power Source min 1 M
|
|
1054
|
-
* - 0x0510 Electrical Sensor min 1 M
|
|
1055
|
-
* - 0x050D Device Energy Management O
|
|
1056
|
-
* - 0x0302 Temperature Sensor O
|
|
1057
|
-
*
|
|
1058
|
-
* 14.3.5.1. Cluster Requirements on Composing Device Types
|
|
1059
|
-
*
|
|
1060
|
-
* - 0x0011 Power Source 0x002F Power Source Feature Wired M
|
|
1061
|
-
* - 0x0011 Power Source 0x001D Descriptor Feature TagList M
|
|
1062
|
-
* - 0x0510 Electrical Sensor 0x0090 Electrical Power Measurement M
|
|
1063
|
-
* - 0x0510 Electrical Sensor 0x0090 Electrical Power Measurement Attribute Voltage M
|
|
1064
|
-
* - 0x0510 Electrical Sensor 0x0090 Electrical Power Measurement Attribute ActiveCurrent M
|
|
1065
|
-
* - 0x0510 Electrical Sensor 0x0091 Electrical Energy Measurement M
|
|
1066
|
-
* - 0x0510 Electrical Sensor 0x0091 Electrical Energy Measurement Feature ExportedEnergy M
|
|
1067
|
-
* - 0x050D Device Energy Management 0x0098 Device Energy Management Feature PowerAdjustment M
|
|
1068
|
-
* - 0x0302 Temperature Sensor 0x001D Descriptor Feature TagList M
|
|
1069
|
-
*/
|
|
1070
550
|
export const solarPower = DeviceTypeDefinition({
|
|
1071
551
|
name: 'MA-solarpower',
|
|
1072
552
|
code: 0x0017,
|
|
1073
553
|
deviceClass: DeviceClasses.Simple,
|
|
1074
554
|
revision: 1,
|
|
1075
|
-
requiredServerClusters: [],
|
|
555
|
+
requiredServerClusters: [],
|
|
1076
556
|
optionalServerClusters: [Identify.Cluster.id],
|
|
1077
557
|
});
|
|
1078
|
-
/**
|
|
1079
|
-
* A Battery Storage device is a device that allows a DC battery, which can optionally be comprised of
|
|
1080
|
-
* a set parallel strings of battery packs and associated controller, and an AC inverter, to be monitored
|
|
1081
|
-
* and controlled by an Energy Management System in order to manage the peaks and troughs of supply
|
|
1082
|
-
* and demand, and/or to optimize cost of the energy consumed in premises. It is not intended to
|
|
1083
|
-
* be used for a UPS directly supplying a set of appliances, nor for portable battery storage devices.
|
|
1084
|
-
*
|
|
1085
|
-
* 14.4.5. Device Type Requirements
|
|
1086
|
-
* A Battery Storage device SHALL be composed of at least one endpoint with device types as defined by
|
|
1087
|
-
* the conformance below. There MAY be more endpoints with additional instances of these device
|
|
1088
|
-
* types or additional device types existing in the Battery Storage device.
|
|
1089
|
-
* - ID Name Constraint Conformance
|
|
1090
|
-
* - 0x0011 Power Source min 1 M
|
|
1091
|
-
* - 0x0510 Electrical Sensor min 1 M
|
|
1092
|
-
* - 0x050D Device Energy Management M
|
|
1093
|
-
* - 0x0302 Temperature Sensor O
|
|
1094
|
-
* - 0x0017 Solar Power O
|
|
1095
|
-
*
|
|
1096
|
-
* See 14.4.5.1. Cluster Requirements on Composing Device Types
|
|
1097
|
-
*/
|
|
1098
558
|
export const batteryStorage = DeviceTypeDefinition({
|
|
1099
559
|
name: 'MA-batterystorage',
|
|
1100
560
|
code: 0x0018,
|
|
1101
561
|
deviceClass: DeviceClasses.Simple,
|
|
1102
562
|
revision: 1,
|
|
1103
|
-
requiredServerClusters: [],
|
|
563
|
+
requiredServerClusters: [],
|
|
1104
564
|
optionalServerClusters: [Identify.Cluster.id],
|
|
1105
565
|
});
|
|
1106
|
-
/**
|
|
1107
|
-
* A Heat Pump device is a device that uses electrical energy to heat either spaces or water tanks using
|
|
1108
|
-
* ground, water or air as the heat source. These typically can heat the air or can pump water via central
|
|
1109
|
-
* heating radiators or underfloor heating systems. It is typical to also heat hot water and store
|
|
1110
|
-
* the heat in a hot water tank.
|
|
1111
|
-
*
|
|
1112
|
-
* 14.5.1. Heat Pump Architecture
|
|
1113
|
-
* A Heat Pump device is always defined via endpoint composition.
|
|
1114
|
-
*
|
|
1115
|
-
* 14.5.5. Device Type Requirements
|
|
1116
|
-
* A Heat Pump device SHALL be composed of at least one endpoint with device types as defined by
|
|
1117
|
-
* the conformance below. There MAY be more endpoints with additional instances of these device
|
|
1118
|
-
* types or additional device types existing in the Heat Pump device.
|
|
1119
|
-
* - ID Name Constraint Conformance
|
|
1120
|
-
* - 0x0011 Power Source M
|
|
1121
|
-
* - 0x0510 Electrical Sensor min 1 M
|
|
1122
|
-
* - 0x050D Device Energy Management M
|
|
1123
|
-
* - 0x0301 Thermostat O
|
|
1124
|
-
* - 0x050f Water Heater O
|
|
1125
|
-
* - 0x0302 Temperature Sensor O
|
|
1126
|
-
*
|
|
1127
|
-
* See 14.5.5.1. Cluster Requirements on Composing Device Types
|
|
1128
|
-
*/
|
|
1129
566
|
export const heatPump = DeviceTypeDefinition({
|
|
1130
567
|
name: 'MA-heatpump',
|
|
1131
568
|
code: 0x0309,
|
|
1132
569
|
deviceClass: DeviceClasses.Simple,
|
|
1133
570
|
revision: 1,
|
|
1134
|
-
requiredServerClusters: [],
|
|
571
|
+
requiredServerClusters: [],
|
|
1135
572
|
optionalServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
|
|
1136
573
|
});
|
|
1137
|
-
//# sourceMappingURL=matterbridgeDeviceTypes.js.map
|