matterbridge 3.5.0 → 3.5.1-dev-20260122-6461be3
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 +18 -0
- package/README-DOCKER.md +4 -2
- package/README.md +4 -1
- package/bin/mb_coap.js +1 -1
- package/bin/mb_mdns.js +1 -1
- package/dist/broadcastServer.d.ts +0 -115
- package/dist/broadcastServer.js +1 -119
- package/dist/broadcastServerTypes.d.ts +0 -43
- package/dist/broadcastServerTypes.js +0 -24
- package/dist/cli.d.ts +1 -26
- package/dist/cli.js +2 -102
- package/dist/cliEmitter.d.ts +0 -36
- package/dist/cliEmitter.js +0 -37
- package/dist/cliHistory.d.ts +0 -42
- package/dist/cliHistory.js +1 -39
- package/dist/clusters/export.d.ts +0 -1
- package/dist/clusters/export.js +0 -2
- package/dist/deviceManager.d.ts +0 -108
- package/dist/deviceManager.js +2 -114
- package/dist/devices/airConditioner.d.ts +0 -75
- package/dist/devices/airConditioner.js +0 -57
- package/dist/devices/batteryStorage.d.ts +0 -43
- package/dist/devices/batteryStorage.js +1 -48
- package/dist/devices/cooktop.d.ts +0 -55
- package/dist/devices/cooktop.js +0 -56
- package/dist/devices/dishwasher.d.ts +0 -55
- package/dist/devices/dishwasher.js +0 -57
- package/dist/devices/evse.d.ts +0 -57
- package/dist/devices/evse.js +10 -74
- package/dist/devices/export.d.ts +0 -1
- package/dist/devices/export.js +0 -5
- package/dist/devices/extractorHood.d.ts +0 -41
- package/dist/devices/extractorHood.js +0 -43
- package/dist/devices/heatPump.d.ts +0 -43
- package/dist/devices/heatPump.js +2 -50
- package/dist/devices/laundryDryer.d.ts +0 -58
- package/dist/devices/laundryDryer.js +3 -62
- package/dist/devices/laundryWasher.d.ts +0 -64
- package/dist/devices/laundryWasher.js +4 -70
- package/dist/devices/microwaveOven.d.ts +1 -77
- package/dist/devices/microwaveOven.js +5 -88
- package/dist/devices/oven.d.ts +0 -82
- package/dist/devices/oven.js +0 -85
- package/dist/devices/refrigerator.d.ts +0 -100
- package/dist/devices/refrigerator.js +0 -102
- package/dist/devices/roboticVacuumCleaner.d.ts +0 -83
- package/dist/devices/roboticVacuumCleaner.js +9 -100
- package/dist/devices/solarPower.d.ts +0 -36
- package/dist/devices/solarPower.js +0 -38
- package/dist/devices/speaker.d.ts +0 -79
- package/dist/devices/speaker.js +0 -84
- package/dist/devices/temperatureControl.d.ts +0 -21
- package/dist/devices/temperatureControl.js +3 -24
- package/dist/devices/waterHeater.d.ts +0 -74
- package/dist/devices/waterHeater.js +2 -82
- package/dist/frontend.d.ts +4 -187
- package/dist/frontend.js +89 -505
- package/dist/frontendTypes.d.ts +0 -57
- package/dist/frontendTypes.js +0 -45
- package/dist/helpers.d.ts +0 -43
- package/dist/helpers.js +1 -54
- package/dist/index.d.ts +0 -23
- package/dist/index.js +0 -25
- package/dist/jestutils/export.d.ts +0 -1
- package/dist/jestutils/export.js +0 -1
- package/dist/jestutils/jestHelpers.d.ts +0 -255
- package/dist/jestutils/jestHelpers.js +16 -379
- package/dist/logger/export.d.ts +0 -1
- package/dist/logger/export.js +0 -1
- package/dist/matter/behaviors.d.ts +0 -1
- package/dist/matter/behaviors.js +0 -2
- package/dist/matter/clusters.d.ts +0 -1
- package/dist/matter/clusters.js +0 -2
- package/dist/matter/devices.d.ts +0 -1
- package/dist/matter/devices.js +0 -2
- package/dist/matter/endpoints.d.ts +0 -1
- package/dist/matter/endpoints.js +0 -2
- package/dist/matter/export.d.ts +0 -1
- package/dist/matter/export.js +0 -2
- package/dist/matter/types.d.ts +0 -1
- package/dist/matter/types.js +0 -2
- package/dist/matterNode.d.ts +0 -258
- package/dist/matterNode.js +9 -364
- package/dist/matterbridge.d.ts +0 -362
- package/dist/matterbridge.js +75 -864
- package/dist/matterbridgeAccessoryPlatform.d.ts +0 -36
- package/dist/matterbridgeAccessoryPlatform.js +0 -38
- package/dist/matterbridgeBehaviors.d.ts +0 -24
- package/dist/matterbridgeBehaviors.js +5 -68
- package/dist/matterbridgeDeviceTypes.d.ts +0 -649
- package/dist/matterbridgeDeviceTypes.js +6 -673
- package/dist/matterbridgeDynamicPlatform.d.ts +0 -36
- package/dist/matterbridgeDynamicPlatform.js +0 -38
- package/dist/matterbridgeEndpoint.d.ts +2 -1332
- package/dist/matterbridgeEndpoint.js +94 -1459
- package/dist/matterbridgeEndpointHelpers.d.ts +0 -425
- package/dist/matterbridgeEndpointHelpers.js +22 -487
- package/dist/matterbridgeEndpointTypes.d.ts +0 -70
- package/dist/matterbridgeEndpointTypes.js +0 -25
- package/dist/matterbridgePlatform.d.ts +0 -425
- package/dist/matterbridgePlatform.js +2 -453
- package/dist/matterbridgeTypes.d.ts +0 -46
- package/dist/matterbridgeTypes.js +0 -26
- package/dist/mb_coap.d.ts +1 -0
- package/dist/{dgram/mb_coap.js → mb_coap.js} +3 -41
- package/dist/mb_mdns.d.ts +1 -0
- package/dist/{dgram/mb_mdns.js → mb_mdns.js} +47 -81
- package/dist/pluginManager.d.ts +0 -305
- package/dist/pluginManager.js +8 -345
- package/dist/shelly.d.ts +0 -157
- package/dist/shelly.js +7 -178
- package/dist/spawn.d.ts +1 -0
- package/dist/{utils/spawn.js → spawn.js} +3 -73
- package/dist/storage/export.d.ts +0 -1
- package/dist/storage/export.js +0 -1
- package/dist/update.d.ts +0 -75
- package/dist/update.js +7 -100
- package/dist/utils/export.d.ts +1 -13
- package/dist/utils/export.js +1 -13
- package/dist/workerGlobalPrefix.d.ts +0 -24
- package/dist/workerGlobalPrefix.js +6 -40
- package/dist/workerTypes.d.ts +0 -25
- package/dist/workerTypes.js +0 -24
- package/dist/workers.d.ts +0 -61
- package/dist/workers.js +4 -68
- package/npm-shrinkwrap.json +80 -50
- package/package.json +8 -8
- package/dist/broadcastServer.d.ts.map +0 -1
- package/dist/broadcastServer.js.map +0 -1
- package/dist/broadcastServerTypes.d.ts.map +0 -1
- package/dist/broadcastServerTypes.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/cliEmitter.d.ts.map +0 -1
- package/dist/cliEmitter.js.map +0 -1
- package/dist/cliHistory.d.ts.map +0 -1
- package/dist/cliHistory.js.map +0 -1
- package/dist/clusters/export.d.ts.map +0 -1
- package/dist/clusters/export.js.map +0 -1
- package/dist/deviceManager.d.ts.map +0 -1
- package/dist/deviceManager.js.map +0 -1
- package/dist/devices/airConditioner.d.ts.map +0 -1
- package/dist/devices/airConditioner.js.map +0 -1
- package/dist/devices/batteryStorage.d.ts.map +0 -1
- package/dist/devices/batteryStorage.js.map +0 -1
- package/dist/devices/cooktop.d.ts.map +0 -1
- package/dist/devices/cooktop.js.map +0 -1
- package/dist/devices/dishwasher.d.ts.map +0 -1
- package/dist/devices/dishwasher.js.map +0 -1
- package/dist/devices/evse.d.ts.map +0 -1
- package/dist/devices/evse.js.map +0 -1
- package/dist/devices/export.d.ts.map +0 -1
- package/dist/devices/export.js.map +0 -1
- package/dist/devices/extractorHood.d.ts.map +0 -1
- package/dist/devices/extractorHood.js.map +0 -1
- package/dist/devices/heatPump.d.ts.map +0 -1
- package/dist/devices/heatPump.js.map +0 -1
- package/dist/devices/laundryDryer.d.ts.map +0 -1
- package/dist/devices/laundryDryer.js.map +0 -1
- package/dist/devices/laundryWasher.d.ts.map +0 -1
- package/dist/devices/laundryWasher.js.map +0 -1
- package/dist/devices/microwaveOven.d.ts.map +0 -1
- package/dist/devices/microwaveOven.js.map +0 -1
- package/dist/devices/oven.d.ts.map +0 -1
- package/dist/devices/oven.js.map +0 -1
- package/dist/devices/refrigerator.d.ts.map +0 -1
- package/dist/devices/refrigerator.js.map +0 -1
- package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
- package/dist/devices/roboticVacuumCleaner.js.map +0 -1
- package/dist/devices/solarPower.d.ts.map +0 -1
- package/dist/devices/solarPower.js.map +0 -1
- package/dist/devices/speaker.d.ts.map +0 -1
- package/dist/devices/speaker.js.map +0 -1
- package/dist/devices/temperatureControl.d.ts.map +0 -1
- package/dist/devices/temperatureControl.js.map +0 -1
- 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 +0 -365
- package/dist/dgram/coap.js.map +0 -1
- package/dist/dgram/dgram.d.ts +0 -144
- package/dist/dgram/dgram.d.ts.map +0 -1
- package/dist/dgram/dgram.js +0 -363
- 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 -371
- package/dist/dgram/mdns.d.ts.map +0 -1
- package/dist/dgram/mdns.js +0 -934
- package/dist/dgram/mdns.js.map +0 -1
- package/dist/dgram/multicast.d.ts +0 -67
- package/dist/dgram/multicast.d.ts.map +0 -1
- package/dist/dgram/multicast.js +0 -179
- package/dist/dgram/multicast.js.map +0 -1
- package/dist/dgram/unicast.d.ts +0 -64
- package/dist/dgram/unicast.d.ts.map +0 -1
- package/dist/dgram/unicast.js +0 -100
- package/dist/dgram/unicast.js.map +0 -1
- package/dist/frontend.d.ts.map +0 -1
- package/dist/frontend.js.map +0 -1
- package/dist/frontendTypes.d.ts.map +0 -1
- package/dist/frontendTypes.js.map +0 -1
- package/dist/helpers.d.ts.map +0 -1
- package/dist/helpers.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/jestutils/export.d.ts.map +0 -1
- package/dist/jestutils/export.js.map +0 -1
- package/dist/jestutils/jestHelpers.d.ts.map +0 -1
- package/dist/jestutils/jestHelpers.js.map +0 -1
- package/dist/logger/export.d.ts.map +0 -1
- package/dist/logger/export.js.map +0 -1
- package/dist/matter/behaviors.d.ts.map +0 -1
- package/dist/matter/behaviors.js.map +0 -1
- package/dist/matter/clusters.d.ts.map +0 -1
- package/dist/matter/clusters.js.map +0 -1
- package/dist/matter/devices.d.ts.map +0 -1
- package/dist/matter/devices.js.map +0 -1
- package/dist/matter/endpoints.d.ts.map +0 -1
- package/dist/matter/endpoints.js.map +0 -1
- package/dist/matter/export.d.ts.map +0 -1
- package/dist/matter/export.js.map +0 -1
- package/dist/matter/types.d.ts.map +0 -1
- package/dist/matter/types.js.map +0 -1
- package/dist/matterNode.d.ts.map +0 -1
- package/dist/matterNode.js.map +0 -1
- package/dist/matterbridge.d.ts.map +0 -1
- package/dist/matterbridge.js.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
- package/dist/matterbridgeBehaviors.d.ts.map +0 -1
- package/dist/matterbridgeBehaviors.js.map +0 -1
- package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
- package/dist/matterbridgeDeviceTypes.js.map +0 -1
- package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
- package/dist/matterbridgeDynamicPlatform.js.map +0 -1
- package/dist/matterbridgeEndpoint.d.ts.map +0 -1
- package/dist/matterbridgeEndpoint.js.map +0 -1
- package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
- package/dist/matterbridgeEndpointHelpers.js.map +0 -1
- package/dist/matterbridgeEndpointTypes.d.ts.map +0 -1
- package/dist/matterbridgeEndpointTypes.js.map +0 -1
- package/dist/matterbridgePlatform.d.ts.map +0 -1
- package/dist/matterbridgePlatform.js.map +0 -1
- package/dist/matterbridgeTypes.d.ts.map +0 -1
- package/dist/matterbridgeTypes.js.map +0 -1
- package/dist/pluginManager.d.ts.map +0 -1
- package/dist/pluginManager.js.map +0 -1
- package/dist/shelly.d.ts.map +0 -1
- package/dist/shelly.js.map +0 -1
- package/dist/storage/export.d.ts.map +0 -1
- package/dist/storage/export.js.map +0 -1
- package/dist/update.d.ts.map +0 -1
- package/dist/update.js.map +0 -1
- package/dist/utils/colorUtils.d.ts +0 -101
- package/dist/utils/colorUtils.d.ts.map +0 -1
- package/dist/utils/colorUtils.js +0 -282
- package/dist/utils/colorUtils.js.map +0 -1
- package/dist/utils/commandLine.d.ts +0 -66
- package/dist/utils/commandLine.d.ts.map +0 -1
- package/dist/utils/commandLine.js +0 -123
- package/dist/utils/commandLine.js.map +0 -1
- package/dist/utils/copyDirectory.d.ts +0 -35
- package/dist/utils/copyDirectory.d.ts.map +0 -1
- package/dist/utils/copyDirectory.js +0 -76
- 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 +0 -54
- 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 +0 -114
- 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 +0 -79
- 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 +0 -129
- package/dist/utils/deepEqual.js.map +0 -1
- package/dist/utils/error.d.ts +0 -45
- package/dist/utils/error.d.ts.map +0 -1
- package/dist/utils/error.js +0 -54
- package/dist/utils/error.js.map +0 -1
- package/dist/utils/export.d.ts.map +0 -1
- package/dist/utils/export.js.map +0 -1
- package/dist/utils/format.d.ts +0 -53
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js +0 -78
- package/dist/utils/format.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 +0 -242
- package/dist/utils/hex.js.map +0 -1
- package/dist/utils/inspector.d.ts +0 -87
- package/dist/utils/inspector.d.ts.map +0 -1
- package/dist/utils/inspector.js +0 -268
- package/dist/utils/inspector.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 +0 -162
- package/dist/utils/isValid.js.map +0 -1
- package/dist/utils/network.d.ts +0 -141
- package/dist/utils/network.d.ts.map +0 -1
- package/dist/utils/network.js +0 -314
- 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/tracker.d.ts +0 -108
- package/dist/utils/tracker.d.ts.map +0 -1
- package/dist/utils/tracker.js +0 -264
- package/dist/utils/tracker.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 +0 -125
- package/dist/utils/wait.js.map +0 -1
- package/dist/workerGlobalPrefix.d.ts.map +0 -1
- package/dist/workerGlobalPrefix.js.map +0 -1
- package/dist/workerTypes.d.ts.map +0 -1
- package/dist/workerTypes.js.map +0 -1
- package/dist/workers.d.ts.map +0 -1
- package/dist/workers.js.map +0 -1
|
@@ -1,32 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the matter device type definitions for MatterbridgeEndpoint.
|
|
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
|
-
// eslint-disable-next-line no-console
|
|
25
1
|
if (process.argv.includes('--loader') || process.argv.includes('-loader'))
|
|
26
2
|
console.log('\u001B[32mMatterbridgeDeviceTypes loaded.\u001B[40;0m');
|
|
27
|
-
// @matter
|
|
28
3
|
import { DeviceTypeId } from '@matter/types/datatype';
|
|
29
|
-
// @matter clusters
|
|
30
4
|
import { AccountLogin } from '@matter/types/clusters/account-login';
|
|
31
5
|
import { Actions } from '@matter/types/clusters/actions';
|
|
32
6
|
import { ActivatedCarbonFilterMonitoring } from '@matter/types/clusters/activated-carbon-filter-monitoring';
|
|
@@ -114,49 +88,15 @@ import { WindowCovering } from '@matter/types/clusters/window-covering';
|
|
|
114
88
|
import { ScenesManagement } from '@matter/types/clusters/scenes-management';
|
|
115
89
|
export var DeviceClasses;
|
|
116
90
|
(function (DeviceClasses) {
|
|
117
|
-
/** 1.1.5. Device Type Class Conditions */
|
|
118
|
-
/** Node device type. */
|
|
119
91
|
DeviceClasses["Node"] = "Node";
|
|
120
|
-
/**
|
|
121
|
-
* Application device type.
|
|
122
|
-
* Application devices types are typically the most datatype endpoints on a node and in the network.
|
|
123
|
-
*/
|
|
124
92
|
DeviceClasses["App"] = "App";
|
|
125
|
-
/**
|
|
126
|
-
* Utility device type.
|
|
127
|
-
* A Utility device type supports configuration and settings.
|
|
128
|
-
*/
|
|
129
93
|
DeviceClasses["Utility"] = "Utility";
|
|
130
|
-
/**
|
|
131
|
-
* Simple device type.
|
|
132
|
-
* A Simple device type supports local control that is persistent, independent, and unsupervised.
|
|
133
|
-
*/
|
|
134
94
|
DeviceClasses["Simple"] = "Simple";
|
|
135
|
-
/**
|
|
136
|
-
* Dynamic device type.
|
|
137
|
-
* A Dynamic device type supports intelligent and supervisory services, such as commissioning,
|
|
138
|
-
* monitoring, trend analysis, scheduling and central management. A dynamic device type is an
|
|
139
|
-
* application device type.
|
|
140
|
-
*/
|
|
141
95
|
DeviceClasses["Dynamic"] = "Dynamic";
|
|
142
|
-
/** The device type is composed of 2 or more device types. */
|
|
143
96
|
DeviceClasses["Composed"] = "Composed";
|
|
144
|
-
/** 1.1.6. Endpoint Type Class Conditions */
|
|
145
|
-
/** There exists a client application cluster on the endpoint. */
|
|
146
97
|
DeviceClasses["Client"] = "Client";
|
|
147
|
-
/** There exists a server application cluster on the endpoint. */
|
|
148
98
|
DeviceClasses["Server"] = "Server";
|
|
149
|
-
/**
|
|
150
|
-
* The endpoint and at least one of its sibling endpoints have an overlap in application device type(s),
|
|
151
|
-
* as defined in the "Disambiguation" section in the System Model specification. This condition triggers
|
|
152
|
-
* requirements for providing additional information about the endpoints in order to disambiguate
|
|
153
|
-
* between the endpoints (see "Disambiguation" section in the System Model specification).
|
|
154
|
-
*/
|
|
155
99
|
DeviceClasses["Duplicate"] = "Duplicate";
|
|
156
|
-
/**
|
|
157
|
-
* The endpoint represents a Bridged Device, for which information about the state of
|
|
158
|
-
* its power source is available to the Bridge
|
|
159
|
-
*/
|
|
160
100
|
DeviceClasses["BridgedPowerSourceInfo"] = "BridgedPowerSourceInfo";
|
|
161
101
|
})(DeviceClasses || (DeviceClasses = {}));
|
|
162
102
|
export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requiredServerClusters = [], optionalServerClusters = [], requiredClientClusters = [], optionalClientClusters = [], }) => ({
|
|
@@ -169,14 +109,13 @@ export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requir
|
|
|
169
109
|
requiredClientClusters,
|
|
170
110
|
optionalClientClusters,
|
|
171
111
|
});
|
|
172
|
-
// Chapter 2. Utility device types
|
|
173
112
|
export const rootNode = DeviceTypeDefinition({
|
|
174
113
|
name: 'MA-rootNode',
|
|
175
114
|
code: 0x0016,
|
|
176
115
|
deviceClass: DeviceClasses.Node,
|
|
177
116
|
revision: 3,
|
|
178
|
-
requiredServerClusters: [],
|
|
179
|
-
optionalServerClusters: [],
|
|
117
|
+
requiredServerClusters: [],
|
|
118
|
+
optionalServerClusters: [],
|
|
180
119
|
});
|
|
181
120
|
export const powerSource = DeviceTypeDefinition({
|
|
182
121
|
name: 'MA-powerSource',
|
|
@@ -206,46 +145,14 @@ export const OTAProvider = DeviceTypeDefinition({
|
|
|
206
145
|
requiredClientClusters: [OtaSoftwareUpdateRequestor.Cluster.id],
|
|
207
146
|
optionalClientClusters: [],
|
|
208
147
|
});
|
|
209
|
-
/**
|
|
210
|
-
2.5.3. Conditions
|
|
211
|
-
Please see the Base Device Type definition for conformance tags.
|
|
212
|
-
This device type SHALL only be used for Nodes which have a device type of Bridge.
|
|
213
|
-
|
|
214
|
-
2.5.5. Cluster Requirements
|
|
215
|
-
Each endpoint supporting this device type SHALL include these clusters based on the conformance
|
|
216
|
-
defined below.
|
|
217
|
-
- 0x0039 Bridged Device Basic Information Server
|
|
218
|
-
|
|
219
|
-
2.5.6. Endpoint Composition
|
|
220
|
-
• A Bridged Node endpoint SHALL support one of the following composition patterns:
|
|
221
|
-
◦ Separate Endpoints: All application device types are supported on separate endpoints, and
|
|
222
|
-
not on the Bridged Node endpoint. The Bridged Node endpoint’s Descriptor cluster PartsList
|
|
223
|
-
attribute SHALL indicate a list of all endpoints representing the functionality of the bridged
|
|
224
|
-
device, including the endpoints supporting the application device types, i.e. the full-family
|
|
225
|
-
pattern defined in the System Model specification.
|
|
226
|
-
◦ One Endpoint: Both the Bridged Node and one or more application device types are supported
|
|
227
|
-
on the same endpoint (following application device type rules). Endpoint composition
|
|
228
|
-
SHALL conform to the application device type(s) definition.
|
|
229
|
-
*/
|
|
230
148
|
export const bridgedNode = DeviceTypeDefinition({
|
|
231
149
|
name: 'MA-bridgedNode',
|
|
232
150
|
code: 0x0013,
|
|
233
151
|
deviceClass: DeviceClasses.Utility,
|
|
234
152
|
revision: 3,
|
|
235
|
-
requiredServerClusters: [BridgedDeviceBasicInformation.Cluster.id],
|
|
153
|
+
requiredServerClusters: [BridgedDeviceBasicInformation.Cluster.id],
|
|
236
154
|
optionalServerClusters: [PowerSource.Cluster.id, EcosystemInformation.Cluster.id, AdministratorCommissioning.Cluster.id],
|
|
237
155
|
});
|
|
238
|
-
/**
|
|
239
|
-
* An Electrical Sensor device measures the electrical power and/or energy being imported and/or
|
|
240
|
-
* exported.
|
|
241
|
-
* It is a utility device type that provides information about the electrical power and/or energy
|
|
242
|
-
* consumption and generation.
|
|
243
|
-
*
|
|
244
|
-
* 2.6.3. Device Type Requirements
|
|
245
|
-
* Electrical measurements made by either the Electrical Power Measurement cluster, the Electrical
|
|
246
|
-
* Energy Measurement cluster, or both SHALL apply to the endpoints indicated by the Power Topology
|
|
247
|
-
* cluster.
|
|
248
|
-
*/
|
|
249
156
|
export const electricalSensor = DeviceTypeDefinition({
|
|
250
157
|
name: 'MA-electricalSensor',
|
|
251
158
|
code: 0x0510,
|
|
@@ -254,10 +161,6 @@ export const electricalSensor = DeviceTypeDefinition({
|
|
|
254
161
|
requiredServerClusters: [PowerTopology.Cluster.id],
|
|
255
162
|
optionalServerClusters: [ElectricalPowerMeasurement.Cluster.id, ElectricalEnergyMeasurement.Cluster.id],
|
|
256
163
|
});
|
|
257
|
-
/**
|
|
258
|
-
* A Device Energy Management device provides reporting and optionally adjustment of the electrical
|
|
259
|
-
* power planned on being consumed or produced by the device.
|
|
260
|
-
*/
|
|
261
164
|
export const deviceEnergyManagement = DeviceTypeDefinition({
|
|
262
165
|
name: 'MA-deviceEnergyManagement',
|
|
263
166
|
code: 0x050d,
|
|
@@ -266,19 +169,6 @@ export const deviceEnergyManagement = DeviceTypeDefinition({
|
|
|
266
169
|
requiredServerClusters: [DeviceEnergyManagement.Cluster.id],
|
|
267
170
|
optionalServerClusters: [DeviceEnergyManagementMode.Cluster.id],
|
|
268
171
|
});
|
|
269
|
-
/** Chapter 3. Application Device Types */
|
|
270
|
-
/** Chapter 4. Lighting device types */
|
|
271
|
-
/**
|
|
272
|
-
* Element Requirements:
|
|
273
|
-
* - Identify Command TriggerEffect
|
|
274
|
-
* - Scenes Management Command CopyScene
|
|
275
|
-
* - On/Off Feature Lighting
|
|
276
|
-
* - Level Control Feature OnOff
|
|
277
|
-
* - Level Control Feature Lighting
|
|
278
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
279
|
-
* - Level Control Attribute MinLevel 1
|
|
280
|
-
* - Level Control Attribute MaxLevel 254
|
|
281
|
-
*/
|
|
282
172
|
export const onOffLight = DeviceTypeDefinition({
|
|
283
173
|
name: 'MA-onofflight',
|
|
284
174
|
code: 0x0100,
|
|
@@ -287,17 +177,6 @@ export const onOffLight = DeviceTypeDefinition({
|
|
|
287
177
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id],
|
|
288
178
|
optionalServerClusters: [LevelControl.Cluster.id],
|
|
289
179
|
});
|
|
290
|
-
/**
|
|
291
|
-
* Element Requirements:
|
|
292
|
-
* - Identify Command TriggerEffect
|
|
293
|
-
* - Scenes Management Command CopyScene
|
|
294
|
-
* - On/Off Feature Lighting
|
|
295
|
-
* - Level Control Feature OnOff
|
|
296
|
-
* - Level Control Feature Lighting
|
|
297
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
298
|
-
* - Level Control Attribute MinLevel 1
|
|
299
|
-
* - Level Control Attribute MaxLevel 254
|
|
300
|
-
*/
|
|
301
180
|
export const dimmableLight = DeviceTypeDefinition({
|
|
302
181
|
name: 'MA-dimmablelight',
|
|
303
182
|
code: 0x0101,
|
|
@@ -306,19 +185,6 @@ export const dimmableLight = DeviceTypeDefinition({
|
|
|
306
185
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
307
186
|
optionalServerClusters: [],
|
|
308
187
|
});
|
|
309
|
-
/**
|
|
310
|
-
* Element Requirements:
|
|
311
|
-
* - Identify Command TriggerEffect
|
|
312
|
-
* - Scenes Management Command CopyScene
|
|
313
|
-
* - On/Off Feature Lighting
|
|
314
|
-
* - Level Control Feature OnOff
|
|
315
|
-
* - Level Control Feature Lighting
|
|
316
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
317
|
-
* - Level Control Attribute MinLevel 1
|
|
318
|
-
* - Level Control Attribute MaxLevel 254
|
|
319
|
-
* - Color Control Feature ColorTemperature
|
|
320
|
-
* - Color Control Attribute RemainingTime
|
|
321
|
-
*/
|
|
322
188
|
export const colorTemperatureLight = DeviceTypeDefinition({
|
|
323
189
|
name: 'MA-colortemperaturelight',
|
|
324
190
|
code: 0x010c,
|
|
@@ -327,20 +193,6 @@ export const colorTemperatureLight = DeviceTypeDefinition({
|
|
|
327
193
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
328
194
|
optionalServerClusters: [],
|
|
329
195
|
});
|
|
330
|
-
/**
|
|
331
|
-
* Element Requirements:
|
|
332
|
-
* - Identify Command TriggerEffect
|
|
333
|
-
* - Scenes Management Command CopyScene
|
|
334
|
-
* - On/Off Feature Lighting
|
|
335
|
-
* - Level Control Feature OnOff
|
|
336
|
-
* - Level Control Feature Lighting
|
|
337
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
338
|
-
* - Level Control Attribute MinLevel 1
|
|
339
|
-
* - Level Control Attribute MaxLevel 254
|
|
340
|
-
* - Color Control Feature XY
|
|
341
|
-
* - Color Control Feature ColorTemperature
|
|
342
|
-
* - Color Control Attribute RemainingTime
|
|
343
|
-
*/
|
|
344
196
|
export const extendedColorLight = DeviceTypeDefinition({
|
|
345
197
|
name: 'MA-extendedcolorlight',
|
|
346
198
|
code: 0x010d,
|
|
@@ -349,26 +201,6 @@ export const extendedColorLight = DeviceTypeDefinition({
|
|
|
349
201
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
350
202
|
optionalServerClusters: [],
|
|
351
203
|
});
|
|
352
|
-
// Chapter 5. Smart plugs/Outlets and other Actuators device types
|
|
353
|
-
/**
|
|
354
|
-
* An On/Off Plug-in Unit is a device that provides power to another device that is plugged into it, and
|
|
355
|
-
* is capable of switching that provided power on or off.
|
|
356
|
-
* The Mounted On/Off Control (added in Matter 1.4) has identical cluster requirements as the On/Off
|
|
357
|
-
* Plug-In Unit, and is marked as superset of this device type (since Matter 1.4.2). For devices intended
|
|
358
|
-
* to be mounted permanently, the Mounted On/Off Control device type SHALL be used, with the
|
|
359
|
-
* On/Off Plug-In Unit device type optionally added in the DeviceTypeList of the Descriptor cluster in
|
|
360
|
-
* addition to the On/Off Plug-In Unit device type (see [ref_MountedOnOffControlServerGuidance]).
|
|
361
|
-
*
|
|
362
|
-
* Element Requirements:
|
|
363
|
-
* - Identify Command TriggerEffect
|
|
364
|
-
* - Scenes Management Command CopyScene
|
|
365
|
-
* - On/Off Feature Lighting
|
|
366
|
-
* - Level Control Feature OnOff
|
|
367
|
-
* - Level Control Feature Lighting
|
|
368
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
369
|
-
* - Level Control Attribute MinLevel 1
|
|
370
|
-
* - Level Control Attribute MaxLevel 254
|
|
371
|
-
*/
|
|
372
204
|
export const onOffOutlet = DeviceTypeDefinition({
|
|
373
205
|
name: 'MA-onoffpluginunit',
|
|
374
206
|
code: 0x010a,
|
|
@@ -377,27 +209,6 @@ export const onOffOutlet = DeviceTypeDefinition({
|
|
|
377
209
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id],
|
|
378
210
|
optionalServerClusters: [LevelControl.Cluster.id],
|
|
379
211
|
});
|
|
380
|
-
/**
|
|
381
|
-
* A Dimmable Plug-In Unit is a device that provides power to another device that is plugged into it,
|
|
382
|
-
* and is capable of being switched on or off and have its level adjusted. The Dimmable Plug-in Unit is
|
|
383
|
-
* typically used to control a conventional non-communicating light through its mains connection
|
|
384
|
-
* using phase cutting.
|
|
385
|
-
* The Mounted Dimmable Load Control (added in Matter 1.4) has identical cluster requirements as
|
|
386
|
-
* the Dimmable Plug-In Unit, and is marked as a superset of this device type (since Matter 1.4.2). For
|
|
387
|
-
* devices intended to be mounted permanently, the Mounted Dimmable Load Control device type
|
|
388
|
-
* SHALL be used, with the Dimmable Plug-In Unit device type optionally added to the DeviceTypeList
|
|
389
|
-
* of the Descriptor cluster in addition to the Mounted Dimmable Load Control device type (see [ref_MountedDimmableLoadControlServerGuidance]).
|
|
390
|
-
*
|
|
391
|
-
* Element Requirements:
|
|
392
|
-
* - Identify Command TriggerEffect
|
|
393
|
-
* - Scenes Management Command CopyScene
|
|
394
|
-
* - On/Off Feature Lighting
|
|
395
|
-
* - Level Control Feature OnOff
|
|
396
|
-
* - Level Control Feature Lighting
|
|
397
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
398
|
-
* - Level Control Attribute MinLevel 1
|
|
399
|
-
* - Level Control Attribute MaxLevel 254
|
|
400
|
-
*/
|
|
401
212
|
export const dimmableOutlet = DeviceTypeDefinition({
|
|
402
213
|
name: 'MA-dimmablepluginunit',
|
|
403
214
|
code: 0x010b,
|
|
@@ -406,27 +217,6 @@ export const dimmableOutlet = DeviceTypeDefinition({
|
|
|
406
217
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
407
218
|
optionalServerClusters: [],
|
|
408
219
|
});
|
|
409
|
-
/**
|
|
410
|
-
* A Mounted On/Off Control is a fixed device that provides power to another device that is plugged
|
|
411
|
-
* into it, and is capable of switching that provided power on or off.
|
|
412
|
-
* This device type is intended for any wall-mounted or hardwired load controller, while On/Off Plugin
|
|
413
|
-
* Unit is intended only for smart plugs and other power switching devices that are not permaMatter
|
|
414
|
-
* Device Library Specification R1.4.2 Connectivity Standards Alliance Document 23-27351 July 16, 2025
|
|
415
|
-
* Copyright © Connectivity Standards Alliance, Inc. All rights reserved. Page 53
|
|
416
|
-
* nently connected, and which can be unplugged from their power source.
|
|
417
|
-
*
|
|
418
|
-
* It is a simple device type that does not require any client clusters. As per matter 1.4.2 it should be added also on/Off Plug-In Unit for backward compatibility.
|
|
419
|
-
*
|
|
420
|
-
* Element Requirements:
|
|
421
|
-
* - Identify Command TriggerEffect
|
|
422
|
-
* - Scenes Management Command CopyScene
|
|
423
|
-
* - On/Off Feature Lighting
|
|
424
|
-
* - Level Control Feature OnOff
|
|
425
|
-
* - Level Control Feature Lighting
|
|
426
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
427
|
-
* - Level Control Attribute MinLevel 1
|
|
428
|
-
* - Level Control Attribute MaxLevel 254
|
|
429
|
-
*/
|
|
430
220
|
export const onOffMountedSwitch = DeviceTypeDefinition({
|
|
431
221
|
name: 'MA-onoffmountedswitch',
|
|
432
222
|
code: 0x010f,
|
|
@@ -435,27 +225,6 @@ export const onOffMountedSwitch = DeviceTypeDefinition({
|
|
|
435
225
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id],
|
|
436
226
|
optionalServerClusters: [LevelControl.Cluster.id],
|
|
437
227
|
});
|
|
438
|
-
/**
|
|
439
|
-
* A Mounted Dimmable Load Control is a fixed device that provides power to a load connected to it,
|
|
440
|
-
* and is capable of being switched on or off and have its level adjusted. The Mounted Dimmable Load
|
|
441
|
-
* Control is typically used to control a conventional non-communicating light through its mains connection
|
|
442
|
-
* using phase cutting.
|
|
443
|
-
* This device type is intended for any wall-mounted or hardwired dimmer-capable load controller,
|
|
444
|
-
* while Dimmable Plug-In Unit is intended only for dimmer-capable smart plugs that are not permanently
|
|
445
|
-
* connected, and which can be unplugged from their power source.
|
|
446
|
-
*
|
|
447
|
-
* It is a simple device type that does not require any client clusters. As per matter 1.4.2 it should be added also dimmable Plug-In Unit for backward compatibility.
|
|
448
|
-
*
|
|
449
|
-
* Element Requirements:
|
|
450
|
-
* - Identify Command TriggerEffect
|
|
451
|
-
* - Scenes Management Command CopyScene
|
|
452
|
-
* - On/Off Feature Lighting
|
|
453
|
-
* - Level Control Feature OnOff
|
|
454
|
-
* - Level Control Feature Lighting
|
|
455
|
-
* - Level Control Attribute CurrentLevel 1 to 254
|
|
456
|
-
* - Level Control Attribute MinLevel 1
|
|
457
|
-
* - Level Control Attribute MaxLevel 254
|
|
458
|
-
*/
|
|
459
228
|
export const dimmableMountedSwitch = DeviceTypeDefinition({
|
|
460
229
|
name: 'MA-dimmablemountedswitch',
|
|
461
230
|
code: 0x0110,
|
|
@@ -464,20 +233,6 @@ export const dimmableMountedSwitch = DeviceTypeDefinition({
|
|
|
464
233
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
465
234
|
optionalServerClusters: [],
|
|
466
235
|
});
|
|
467
|
-
/**
|
|
468
|
-
* Remark:
|
|
469
|
-
* On/Off Cluster:
|
|
470
|
-
* - Off If the pump is powered on, store the current level then immediately power it off.
|
|
471
|
-
* - 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,
|
|
472
|
-
* move immediately to the maximum level allowed for the pump.
|
|
473
|
-
* - 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.
|
|
474
|
-
*
|
|
475
|
-
* LevelControl cluster:
|
|
476
|
-
* Level Setpoint Meaning
|
|
477
|
-
* 0 N/A Pump is stopped,
|
|
478
|
-
* 1–200 Level / 2 (0.5–100.0%) Pump setpoint in percent
|
|
479
|
-
* 201–255 100.0% Pump setpoint is 100.0%
|
|
480
|
-
*/
|
|
481
236
|
export const pumpDevice = DeviceTypeDefinition({
|
|
482
237
|
name: 'MA-pump',
|
|
483
238
|
code: 0x303,
|
|
@@ -494,8 +249,6 @@ export const waterValve = DeviceTypeDefinition({
|
|
|
494
249
|
requiredServerClusters: [Identify.Cluster.id, ValveConfigurationAndControl.Cluster.id],
|
|
495
250
|
optionalServerClusters: [FlowMeasurement.Cluster.id],
|
|
496
251
|
});
|
|
497
|
-
// Chapter 6. Switches and Controls device types
|
|
498
|
-
// Custom device types with server cluster instead of client clusters (not working in Alexa)
|
|
499
252
|
export const onOffSwitch = DeviceTypeDefinition({
|
|
500
253
|
name: 'MA-onoffswitch',
|
|
501
254
|
code: 0x0103,
|
|
@@ -504,7 +257,6 @@ export const onOffSwitch = DeviceTypeDefinition({
|
|
|
504
257
|
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id],
|
|
505
258
|
optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id],
|
|
506
259
|
});
|
|
507
|
-
// Custom device types with server cluster instead of client clusters (not working in Alexa)
|
|
508
260
|
export const dimmableSwitch = DeviceTypeDefinition({
|
|
509
261
|
name: 'MA-dimmableswitch',
|
|
510
262
|
code: 0x0104,
|
|
@@ -513,7 +265,6 @@ export const dimmableSwitch = DeviceTypeDefinition({
|
|
|
513
265
|
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
514
266
|
optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id],
|
|
515
267
|
});
|
|
516
|
-
// Custom device types with server cluster instead of client clusters (not working in Alexa)
|
|
517
268
|
export const colorTemperatureSwitch = DeviceTypeDefinition({
|
|
518
269
|
name: 'MA-colortemperatureswitch',
|
|
519
270
|
code: 0x0105,
|
|
@@ -530,11 +281,6 @@ export const genericSwitch = DeviceTypeDefinition({
|
|
|
530
281
|
requiredServerClusters: [Identify.Cluster.id, Switch.Cluster.id],
|
|
531
282
|
optionalServerClusters: [],
|
|
532
283
|
});
|
|
533
|
-
// Chapter 7. Sensor device types
|
|
534
|
-
/**
|
|
535
|
-
* Closed or contact: state true
|
|
536
|
-
* Open or no contact: state false
|
|
537
|
-
*/
|
|
538
284
|
export const contactSensor = DeviceTypeDefinition({
|
|
539
285
|
name: 'MA-contactsensor',
|
|
540
286
|
code: 0x0015,
|
|
@@ -586,7 +332,6 @@ export const humiditySensor = DeviceTypeDefinition({
|
|
|
586
332
|
revision: 2,
|
|
587
333
|
requiredServerClusters: [Identify.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
|
|
588
334
|
});
|
|
589
|
-
// Remark: A Smoke CO Alarm device type SHALL support an instance of a Power Source device type on some endpoint.
|
|
590
335
|
export const smokeCoAlarm = DeviceTypeDefinition({
|
|
591
336
|
name: 'MA-smokeCoAlarm',
|
|
592
337
|
code: 0x0076,
|
|
@@ -640,15 +385,6 @@ export const rainSensor = DeviceTypeDefinition({
|
|
|
640
385
|
requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
|
|
641
386
|
optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
|
|
642
387
|
});
|
|
643
|
-
// Chapter 8. Closures device types
|
|
644
|
-
/**
|
|
645
|
-
* 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.
|
|
646
|
-
* Element Requirements:
|
|
647
|
-
*
|
|
648
|
-
* - AccessControl Attribute Extension
|
|
649
|
-
* - DoorLock Feature User
|
|
650
|
-
* - DoorLock Attribute AlarmMask
|
|
651
|
-
*/
|
|
652
388
|
export const doorLockDevice = DeviceTypeDefinition({
|
|
653
389
|
name: 'MA-doorLock',
|
|
654
390
|
code: 0xa,
|
|
@@ -665,15 +401,6 @@ export const coverDevice = DeviceTypeDefinition({
|
|
|
665
401
|
requiredServerClusters: [Identify.Cluster.id, WindowCovering.Cluster.id],
|
|
666
402
|
optionalServerClusters: [Groups.Cluster.id],
|
|
667
403
|
});
|
|
668
|
-
// Chapter 9. HVAC device types
|
|
669
|
-
/**
|
|
670
|
-
* A Thermostat device is capable of having either built-in or separate sensors for temperature,
|
|
671
|
-
* humidity or occupancy. It allows the desired temperature to be set either remotely or locally. The
|
|
672
|
-
* thermostat is capable of sending heating and/or cooling requirement notifications to a heating/cooling
|
|
673
|
-
* unit (for example, an indoor air handler) or is capable of including a mechanism to control a
|
|
674
|
-
* heating or cooling unit directly.
|
|
675
|
-
*
|
|
676
|
-
*/
|
|
677
404
|
export const thermostatDevice = DeviceTypeDefinition({
|
|
678
405
|
name: 'MA-thermostat',
|
|
679
406
|
code: 0x301,
|
|
@@ -682,25 +409,6 @@ export const thermostatDevice = DeviceTypeDefinition({
|
|
|
682
409
|
requiredServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
|
|
683
410
|
optionalServerClusters: [Groups.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id],
|
|
684
411
|
});
|
|
685
|
-
/**
|
|
686
|
-
* A Fan device is typically standalone or mounted on a ceiling or wall and is used to circulate air in a room.
|
|
687
|
-
* Remark: it may have a thermostat device type.
|
|
688
|
-
* Additional device types MAY also be included in device compositions.
|
|
689
|
-
* Element Requirements:
|
|
690
|
-
* The FanControl cluster must have the FanModeSequence attribute.
|
|
691
|
-
*
|
|
692
|
-
* The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
|
|
693
|
-
* includes an Off setting.
|
|
694
|
-
* If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
|
|
695
|
-
* attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
|
|
696
|
-
* FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
|
|
697
|
-
* attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
|
|
698
|
-
* the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
|
|
699
|
-
* zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
|
|
700
|
-
* PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
|
|
701
|
-
* would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
|
|
702
|
-
* SpeedSetting and PercentSetting.
|
|
703
|
-
*/
|
|
704
412
|
export const fanDevice = DeviceTypeDefinition({
|
|
705
413
|
name: 'MA-fan',
|
|
706
414
|
code: 0x2b,
|
|
@@ -709,35 +417,6 @@ export const fanDevice = DeviceTypeDefinition({
|
|
|
709
417
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, FanControl.Cluster.id],
|
|
710
418
|
optionalServerClusters: [OnOff.Cluster.id],
|
|
711
419
|
});
|
|
712
|
-
/**
|
|
713
|
-
* An Air Purifier is a standalone device that is designed to clean the air in a room.
|
|
714
|
-
* It is a device that has a fan to control the air speed while it is operating. Optionally, it can report on
|
|
715
|
-
* the condition of its filters.
|
|
716
|
-
*
|
|
717
|
-
* Remark:
|
|
718
|
-
* An Air Purifier MAY expose elements of its functionality through one or more additional device
|
|
719
|
-
* types on different endpoints. All devices used in compositions SHALL adhere to the disambiguation
|
|
720
|
-
* requirements of the System Model. Other device types, not explicitly listed in the table, MAY also be
|
|
721
|
-
* included in device compositions but are not considered part of the core functionality of the device.
|
|
722
|
-
* 0x0301 Thermostat O
|
|
723
|
-
* 0x0302 Temperature Sensor O
|
|
724
|
-
* 0x0307 Humidity Sensor O
|
|
725
|
-
* 0x002C Air Quality Sensor O
|
|
726
|
-
*
|
|
727
|
-
* Cluster Restrictions:
|
|
728
|
-
* The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
|
|
729
|
-
* includes an Off setting.
|
|
730
|
-
* If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
|
|
731
|
-
* attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
|
|
732
|
-
* FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
|
|
733
|
-
* attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
|
|
734
|
-
* the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
|
|
735
|
-
* zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
|
|
736
|
-
* PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
|
|
737
|
-
* would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
|
|
738
|
-
* SpeedSetting and PercentSetting.
|
|
739
|
-
*
|
|
740
|
-
*/
|
|
741
420
|
export const airPurifier = DeviceTypeDefinition({
|
|
742
421
|
name: 'MA-airPurifier',
|
|
743
422
|
code: 0x2d,
|
|
@@ -746,26 +425,6 @@ export const airPurifier = DeviceTypeDefinition({
|
|
|
746
425
|
requiredServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
|
|
747
426
|
optionalServerClusters: [Groups.Cluster.id, OnOff.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
|
|
748
427
|
});
|
|
749
|
-
// Chapter 10. Media Device Types
|
|
750
|
-
/**
|
|
751
|
-
* 10.2. A Basic Video Player has playback controls (play, pause, etc.) and keypad remote controls (up, down, number input),
|
|
752
|
-
* but is not able to launch arbitrary content applications. It is a commissionable node.
|
|
753
|
-
*
|
|
754
|
-
* Required server clusters (minimum features per spec):
|
|
755
|
-
* - Media Playback (media playback controls)
|
|
756
|
-
* - Keypad Input (remote key events)
|
|
757
|
-
* - On/Off (basic power control)
|
|
758
|
-
*
|
|
759
|
-
* Optional server clusters (additional capabilities commonly implemented):
|
|
760
|
-
* - Audio Output (speaker selection / volume endpoints)
|
|
761
|
-
* - Channel (linear channel navigation)
|
|
762
|
-
* - Target Navigator (high level app / target navigation)
|
|
763
|
-
* - Media Input (input source selection)
|
|
764
|
-
* - Low Power (power saving / wake logic)
|
|
765
|
-
* - Wake On LAN (remote wake capabilities)
|
|
766
|
-
* - Messages (device messaging / notifications)
|
|
767
|
-
* - Content Control (parental or content access control)
|
|
768
|
-
*/
|
|
769
428
|
export const basicVideoPlayer = DeviceTypeDefinition({
|
|
770
429
|
name: 'MA-basicVideoPlayer',
|
|
771
430
|
code: 0x0028,
|
|
@@ -774,29 +433,6 @@ export const basicVideoPlayer = DeviceTypeDefinition({
|
|
|
774
433
|
requiredServerClusters: [OnOff.Cluster.id, MediaPlayback.Cluster.id, KeypadInput.Cluster.id],
|
|
775
434
|
optionalServerClusters: [WakeOnLan.Cluster.id, Channel.Cluster.id, TargetNavigator.Cluster.id, MediaInput.Cluster.id, LowPower.Cluster.id, AudioOutput.Cluster.id, ContentControl.Cluster.id, Messages.Cluster.id],
|
|
776
435
|
});
|
|
777
|
-
/**
|
|
778
|
-
* 10.3. A Casting Video Player supports Basic Video Player features and content launching features.
|
|
779
|
-
* It is a Commissioner and can launch Content Apps (Content Launcher cluster) and optionally expose
|
|
780
|
-
* an Application Launcher cluster when acting as a Content App Platform.
|
|
781
|
-
*
|
|
782
|
-
* Required server clusters (minimum features per spec):
|
|
783
|
-
* - Media Playback (playback controls)
|
|
784
|
-
* - Keypad Input (remote key events)
|
|
785
|
-
* - Content Launcher (content launching capability)
|
|
786
|
-
* - On/Off (basic power control)
|
|
787
|
-
*
|
|
788
|
-
* Optional server clusters (additional capabilities):
|
|
789
|
-
* - Application Launcher (hosting content apps)
|
|
790
|
-
* - Account Login (account / session association)
|
|
791
|
-
* - Audio Output (output / volume endpoints)
|
|
792
|
-
* - Channel (linear channel navigation)
|
|
793
|
-
* - Target Navigator (high level target navigation)
|
|
794
|
-
* - Media Input (input source selection)
|
|
795
|
-
* - Low Power (power saving / wake logic)
|
|
796
|
-
* - Wake On LAN (remote wake capabilities)
|
|
797
|
-
* - Messages (device messaging / notifications)
|
|
798
|
-
* - Content Control (parental or content access control)
|
|
799
|
-
*/
|
|
800
436
|
export const castingVideoPlayer = DeviceTypeDefinition({
|
|
801
437
|
name: 'MA-castingVideoPlayer',
|
|
802
438
|
code: 0x0023,
|
|
@@ -816,12 +452,6 @@ export const castingVideoPlayer = DeviceTypeDefinition({
|
|
|
816
452
|
Messages.Cluster.id,
|
|
817
453
|
],
|
|
818
454
|
});
|
|
819
|
-
/**
|
|
820
|
-
* 10.4. A Speaker device type controls the speaker.
|
|
821
|
-
* unmute/mute, the On/Off cluster SHALL be used. A value of TRUE for the OnOff attribute
|
|
822
|
-
* SHALL represent the volume on (not muted) state, while a value of FALSE SHALL represent the volume
|
|
823
|
-
* off (muted) state. For volume level control, the Level cluster SHALL be used.
|
|
824
|
-
*/
|
|
825
455
|
export const speakerDevice = DeviceTypeDefinition({
|
|
826
456
|
name: 'MA-speaker',
|
|
827
457
|
code: 0x0022,
|
|
@@ -830,7 +460,6 @@ export const speakerDevice = DeviceTypeDefinition({
|
|
|
830
460
|
requiredServerClusters: [OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
831
461
|
optionalServerClusters: [],
|
|
832
462
|
});
|
|
833
|
-
// Chapter 11. Generic Device Types
|
|
834
463
|
export const modeSelect = DeviceTypeDefinition({
|
|
835
464
|
name: 'MA-modeselect',
|
|
836
465
|
code: 0x27,
|
|
@@ -838,37 +467,6 @@ export const modeSelect = DeviceTypeDefinition({
|
|
|
838
467
|
revision: 1,
|
|
839
468
|
requiredServerClusters: [ModeSelect.Cluster.id],
|
|
840
469
|
});
|
|
841
|
-
/**
|
|
842
|
-
* This device type aggregates endpoints as a collection. Clusters on the endpoint indicating this
|
|
843
|
-
* device type provide functionality for the collection of descendant endpoints present in the PartsList
|
|
844
|
-
* of the endpoint’s descriptor, for example the Actions cluster.
|
|
845
|
-
*
|
|
846
|
-
* Endpoint Composition:
|
|
847
|
-
* An Aggregator endpoint’s Descriptor cluster PartsList attribute SHALL list the collection of all endpoints
|
|
848
|
-
* aggregated by the Aggregator device type, i.e. the full-family pattern defined in the System Model specification.
|
|
849
|
-
*
|
|
850
|
-
* Disambiguation:
|
|
851
|
-
* If the Duplicate condition applies to child endpoints of an Aggregator endpoint that represent multiple
|
|
852
|
-
* independent bridged devices, the endpoints SHOULD make available metadata to allow a
|
|
853
|
-
* client to disambiguate distinct bridged devices with an overlap in application device types.
|
|
854
|
-
*
|
|
855
|
-
* Typically this is done using the NodeLabel attribute of the Bridged Device Basic Information cluster
|
|
856
|
-
* - thus reusing the naming information which the bridge already has to allow disambiguation to the
|
|
857
|
-
* user when using a direct user interface to the bridge.
|
|
858
|
-
*
|
|
859
|
-
* Actions cluster (9.14 Matter specification):
|
|
860
|
-
* If a Bridge has (such) information on topology or logical grouping, it SHOULD expose such information
|
|
861
|
-
* in the EndpointLists attribute of an Actions cluster (the ActionLists of which MAY be empty if
|
|
862
|
-
* no actions are exposed). 9.12 Matter specification
|
|
863
|
-
*
|
|
864
|
-
* 9.12.5. New features for Bridged Devices
|
|
865
|
-
* Bridged Devices can have their software updated independently of the Bridge, through Bridge Manufacturer-
|
|
866
|
-
* specific means. These updates MAY result in one or more changes to their capabilities,
|
|
867
|
-
* such as supported clusters and/or attributes, for an endpoint. Like every Matter Node, every endpoint
|
|
868
|
-
* on the Bridge’s Node contains a Descriptor cluster that contains attributes for the device types
|
|
869
|
-
* (DeviceTypeList), endpoints (PartsList) and supported clusters (ServerList and ClientList). Nodes
|
|
870
|
-
* that wish to be notified of such changes SHOULD monitor changes of these attributes.
|
|
871
|
-
*/
|
|
872
470
|
export const aggregator = DeviceTypeDefinition({
|
|
873
471
|
name: 'MA-aggregator',
|
|
874
472
|
code: 0x000e,
|
|
@@ -878,29 +476,6 @@ export const aggregator = DeviceTypeDefinition({
|
|
|
878
476
|
optionalServerClusters: [Actions.Cluster.id, Identify.Cluster.id, CommissionerControl.Cluster.id],
|
|
879
477
|
});
|
|
880
478
|
export const bridge = aggregator;
|
|
881
|
-
// Chapter 12. Robotic Device Types
|
|
882
|
-
/**
|
|
883
|
-
* A Robotic Vacuum Cleaner is a device that is capable of cleaning floors and other surfaces
|
|
884
|
-
* in a home or office environment. It is typically a mobile device that can navigate around
|
|
885
|
-
* obstacles and can be controlled remotely.
|
|
886
|
-
*
|
|
887
|
-
* Cluster Usage:
|
|
888
|
-
* The RVC Operational State cluster’s OperationalState attribute SHALL be updated according to the
|
|
889
|
-
* state of the device, and therefore it SHOULD be used for monitoring purposes.
|
|
890
|
-
*
|
|
891
|
-
* To attempt starting a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
|
|
892
|
-
* command with the NewMode field set to a mode that has the Cleaning mode tag associated with it.
|
|
893
|
-
*
|
|
894
|
-
* To attempt stopping a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
|
|
895
|
-
* command with the NewMode field set to a mode that has the Idle mode tag associated with it.
|
|
896
|
-
*
|
|
897
|
-
* To attempt pausing a cleaning operation, the RVC Operational State cluster can be sent a Pause command.
|
|
898
|
-
*
|
|
899
|
-
* To attempt resuming a cleaning operation, the RVC Operational State cluster can be sent a Resume
|
|
900
|
-
* command.
|
|
901
|
-
*
|
|
902
|
-
*
|
|
903
|
-
*/
|
|
904
479
|
export const roboticVacuumCleaner = DeviceTypeDefinition({
|
|
905
480
|
name: 'MA-roboticvacuumcleaner',
|
|
906
481
|
code: 0x74,
|
|
@@ -909,12 +484,6 @@ export const roboticVacuumCleaner = DeviceTypeDefinition({
|
|
|
909
484
|
requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
|
|
910
485
|
optionalServerClusters: [RvcCleanMode.Cluster.id, ServiceArea.Cluster.id],
|
|
911
486
|
});
|
|
912
|
-
// Chapter 13. Appliances device types
|
|
913
|
-
/**
|
|
914
|
-
* Cluster Restrictions:
|
|
915
|
-
* On/Off Cluster: the DF (Dead Front) feature is required
|
|
916
|
-
* Operational State Event OperationCompletion
|
|
917
|
-
*/
|
|
918
487
|
export const laundryWasher = DeviceTypeDefinition({
|
|
919
488
|
name: 'MA-laundrywasher',
|
|
920
489
|
code: 0x73,
|
|
@@ -923,14 +492,6 @@ export const laundryWasher = DeviceTypeDefinition({
|
|
|
923
492
|
requiredServerClusters: [OperationalState.Cluster.id],
|
|
924
493
|
optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryWasherControls.Cluster.id, TemperatureControl.Cluster.id],
|
|
925
494
|
});
|
|
926
|
-
/**
|
|
927
|
-
* A refrigerator represents a device that contains one or more cabinets that are capable of chilling or freezing food.
|
|
928
|
-
* A Refrigerator SHALL be composed of at least one endpoint with the Temperature Controlled Cabinet device type.
|
|
929
|
-
* A Refrigerator SHALL have the Cooler condition applied to at least one endpoint containing the Temperature Control Cluster.
|
|
930
|
-
*
|
|
931
|
-
* Device Type Requirements:
|
|
932
|
-
* 0x0071 Temperature Controlled Cabinet with Cooler condition
|
|
933
|
-
*/
|
|
934
495
|
export const refrigerator = DeviceTypeDefinition({
|
|
935
496
|
name: 'MA-refrigerator',
|
|
936
497
|
code: 0x70,
|
|
@@ -939,23 +500,6 @@ export const refrigerator = DeviceTypeDefinition({
|
|
|
939
500
|
requiredServerClusters: [],
|
|
940
501
|
optionalServerClusters: [Identify.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id, RefrigeratorAlarm.Cluster.id],
|
|
941
502
|
});
|
|
942
|
-
/**
|
|
943
|
-
* A Room Air Conditioner is a device with the primary function of controlling the air temperature in a single room.
|
|
944
|
-
*
|
|
945
|
-
* A Room Air Conditioner MAY have zero or more of each device type listed in this table subject to
|
|
946
|
-
* the conformance column of the table. All devices used in compositions SHALL adhere to the disambiguation
|
|
947
|
-
* requirements of the System Model. Additional device types not listed in this table MAY also be included in device compositions.
|
|
948
|
-
* 0x0302 Temperature Sensor O
|
|
949
|
-
* 0x0307 Humidity Sensor O
|
|
950
|
-
*
|
|
951
|
-
* Remark:
|
|
952
|
-
* The DF (Dead Front) feature is required for the On/Off cluster in this device type:
|
|
953
|
-
* - Thermostat LocalTemperature null
|
|
954
|
-
* - Temperature Measurement MeasuredValue null
|
|
955
|
-
* - Relative Humidity Measurement MeasuredValue null
|
|
956
|
-
* - Fan Control SpeedSetting null
|
|
957
|
-
* - Fan Control PercentSetting null
|
|
958
|
-
*/
|
|
959
503
|
export const airConditioner = DeviceTypeDefinition({
|
|
960
504
|
name: 'MA-airConditioner',
|
|
961
505
|
code: 0x72,
|
|
@@ -964,19 +508,6 @@ export const airConditioner = DeviceTypeDefinition({
|
|
|
964
508
|
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, Thermostat.Cluster.id],
|
|
965
509
|
optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id, FanControl.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, TemperatureMeasurement.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
|
|
966
510
|
});
|
|
967
|
-
/**
|
|
968
|
-
* A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
|
|
969
|
-
* a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
|
|
970
|
-
* chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
|
|
971
|
-
* device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
|
|
972
|
-
* range, or similar device.
|
|
973
|
-
*
|
|
974
|
-
* Conditions:
|
|
975
|
-
* Cooler The device has cooling functionality.
|
|
976
|
-
*
|
|
977
|
-
* Cluster Restrictions:
|
|
978
|
-
* TemperatureNumber is the only valid temperature control mode
|
|
979
|
-
*/
|
|
980
511
|
export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
|
|
981
512
|
name: 'MA-temperaturecontrolledcabinetcooler',
|
|
982
513
|
code: 0x71,
|
|
@@ -985,20 +516,6 @@ export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
|
|
|
985
516
|
requiredServerClusters: [TemperatureControl.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id],
|
|
986
517
|
optionalServerClusters: [TemperatureMeasurement.Cluster.id],
|
|
987
518
|
});
|
|
988
|
-
/**
|
|
989
|
-
* A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
|
|
990
|
-
* a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
|
|
991
|
-
* chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
|
|
992
|
-
* device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
|
|
993
|
-
* range, or similar device.
|
|
994
|
-
*
|
|
995
|
-
* Conditions:
|
|
996
|
-
* Heater The device has heating functionality.
|
|
997
|
-
*
|
|
998
|
-
* Cluster Restrictions:
|
|
999
|
-
* TemperatureNumber is the only valid temperature control mode
|
|
1000
|
-
* OperationCompletion event for Oven Cavity Operational State cluster
|
|
1001
|
-
*/
|
|
1002
519
|
export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
|
|
1003
520
|
name: 'MA-temperaturecontrolledcabinetheater',
|
|
1004
521
|
code: 0x71,
|
|
@@ -1007,11 +524,6 @@ export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
|
|
|
1007
524
|
requiredServerClusters: [TemperatureControl.Cluster.id, OvenMode.Cluster.id, OvenCavityOperationalState.Cluster.id],
|
|
1008
525
|
optionalServerClusters: [TemperatureMeasurement.Cluster.id],
|
|
1009
526
|
});
|
|
1010
|
-
/**
|
|
1011
|
-
* Cluster Restrictions:
|
|
1012
|
-
* On/Off Cluster: the DF (Dead Front) feature is required
|
|
1013
|
-
* Operational State Event OperationCompletion
|
|
1014
|
-
*/
|
|
1015
527
|
export const dishwasher = DeviceTypeDefinition({
|
|
1016
528
|
name: 'MA-dishwasher',
|
|
1017
529
|
code: 0x75,
|
|
@@ -1020,11 +532,6 @@ export const dishwasher = DeviceTypeDefinition({
|
|
|
1020
532
|
requiredServerClusters: [OperationalState.Cluster.id],
|
|
1021
533
|
optionalServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, TemperatureControl.Cluster.id, DishwasherMode.Cluster.id, DishwasherAlarm.Cluster.id],
|
|
1022
534
|
});
|
|
1023
|
-
/**
|
|
1024
|
-
* Cluster Restrictions:
|
|
1025
|
-
* On/Off Cluster: the DF (Dead Front) feature is required
|
|
1026
|
-
* Operational State Event OperationCompletion
|
|
1027
|
-
*/
|
|
1028
535
|
export const laundryDryer = DeviceTypeDefinition({
|
|
1029
536
|
name: 'MA-laundrydryer',
|
|
1030
537
|
code: 0x7c,
|
|
@@ -1033,14 +540,6 @@ export const laundryDryer = DeviceTypeDefinition({
|
|
|
1033
540
|
requiredServerClusters: [OperationalState.Cluster.id],
|
|
1034
541
|
optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryDryerControls.Cluster.id, TemperatureControl.Cluster.id],
|
|
1035
542
|
});
|
|
1036
|
-
/**
|
|
1037
|
-
* A Cook Surface device type represents a heating object on a cooktop or other similar device. It
|
|
1038
|
-
* SHALL only be used when composed as part of another device type (cooktop).
|
|
1039
|
-
*
|
|
1040
|
-
* Cluster Restrictions:
|
|
1041
|
-
* The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements. OnOff Cluster is optional.
|
|
1042
|
-
* The TemperatureLevel feature is the only valid temperature control feature.
|
|
1043
|
-
*/
|
|
1044
543
|
export const cookSurface = DeviceTypeDefinition({
|
|
1045
544
|
name: 'MA-cooksurface',
|
|
1046
545
|
code: 0x77,
|
|
@@ -1049,18 +548,6 @@ export const cookSurface = DeviceTypeDefinition({
|
|
|
1049
548
|
requiredServerClusters: [],
|
|
1050
549
|
optionalServerClusters: [TemperatureControl.Cluster.id, TemperatureMeasurement.Cluster.id, OnOff.Cluster.id],
|
|
1051
550
|
});
|
|
1052
|
-
/**
|
|
1053
|
-
* A cooktop is a cooking surface that heats food either by transferring currents from an electromagnetic
|
|
1054
|
-
* field located below the glass surface directly to the magnetic induction cookware placed
|
|
1055
|
-
* above or through traditional gas or electric burners.
|
|
1056
|
-
*
|
|
1057
|
-
* Device Type Requirements:
|
|
1058
|
-
* A Cooktop SHALL be composed of zero or more endpoints with the Cook Surface device type as defined by the conformance below.
|
|
1059
|
-
* 0x0077 Cook Surface min 1 O
|
|
1060
|
-
*
|
|
1061
|
-
* Cluster Restrictions:
|
|
1062
|
-
* The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements.
|
|
1063
|
-
*/
|
|
1064
551
|
export const cooktop = DeviceTypeDefinition({
|
|
1065
552
|
name: 'MA-cooktop',
|
|
1066
553
|
code: 0x78,
|
|
@@ -1069,15 +556,6 @@ export const cooktop = DeviceTypeDefinition({
|
|
|
1069
556
|
requiredServerClusters: [OnOff.Cluster.id],
|
|
1070
557
|
optionalServerClusters: [Identify.Cluster.id],
|
|
1071
558
|
});
|
|
1072
|
-
/**
|
|
1073
|
-
* An oven represents a device that contains one or more cabinets, and optionally a single cooktop, that are all capable of heating food.
|
|
1074
|
-
* An oven is always defined via endpoint composition.
|
|
1075
|
-
* Conditions:
|
|
1076
|
-
* An Oven SHALL have the Heater condition applied to at least one endpoint containing the Temperature Control Cluster.
|
|
1077
|
-
* Device Type Requirements:
|
|
1078
|
-
* - 0x0071 Temperature Controlled Cabinet min 1
|
|
1079
|
-
* - 0x0078 Cooktop max 1 Optional
|
|
1080
|
-
*/
|
|
1081
559
|
export const oven = DeviceTypeDefinition({
|
|
1082
560
|
name: 'MA-oven',
|
|
1083
561
|
code: 0x7b,
|
|
@@ -1086,18 +564,6 @@ export const oven = DeviceTypeDefinition({
|
|
|
1086
564
|
requiredServerClusters: [],
|
|
1087
565
|
optionalServerClusters: [Identify.Cluster.id],
|
|
1088
566
|
});
|
|
1089
|
-
/**
|
|
1090
|
-
* An Extractor Hood is a device that is generally installed above a cooking surface in residential kitchens.
|
|
1091
|
-
* Additional device types not listed in this table MAY also be included in device compositions.
|
|
1092
|
-
* Device Type Requirements:
|
|
1093
|
-
* 0x0100+ On/Off Light+ O
|
|
1094
|
-
*
|
|
1095
|
-
*
|
|
1096
|
-
* Element Requirements:
|
|
1097
|
-
* - 0x0202 Fan Control Feature Rocking X
|
|
1098
|
-
* - 0x0202 Fan Control Feature Wind X
|
|
1099
|
-
* - 0x0202 Fan Control Feature AirflowDirection X
|
|
1100
|
-
*/
|
|
1101
567
|
export const extractorHood = DeviceTypeDefinition({
|
|
1102
568
|
name: 'MA-extractorhood',
|
|
1103
569
|
code: 0x7a,
|
|
@@ -1106,14 +572,6 @@ export const extractorHood = DeviceTypeDefinition({
|
|
|
1106
572
|
requiredServerClusters: [FanControl.Cluster.id],
|
|
1107
573
|
optionalServerClusters: [Identify.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
|
|
1108
574
|
});
|
|
1109
|
-
/**
|
|
1110
|
-
* A Microwave Oven is a device with the primary function of heating foods and beverages using a magnetron.
|
|
1111
|
-
* A Microwave Oven is a device which at a minimum is capable of being started and stopped and of setting a power level.
|
|
1112
|
-
* A Microwave Oven MAY also support additional capabilities via endpoint composition.
|
|
1113
|
-
*
|
|
1114
|
-
* Element Requirements:
|
|
1115
|
-
* Operational State Event OperationCompletion
|
|
1116
|
-
*/
|
|
1117
575
|
export const microwaveOven = DeviceTypeDefinition({
|
|
1118
576
|
name: 'MA-microwaveoven',
|
|
1119
577
|
code: 0x79,
|
|
@@ -1122,26 +580,6 @@ export const microwaveOven = DeviceTypeDefinition({
|
|
|
1122
580
|
requiredServerClusters: [OperationalState.Cluster.id, MicrowaveOvenMode.Cluster.id, MicrowaveOvenControl.Cluster.id],
|
|
1123
581
|
optionalServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
|
|
1124
582
|
});
|
|
1125
|
-
// Chapter 14. Energy Device Types
|
|
1126
|
-
/**
|
|
1127
|
-
* An EVSE (Electric Vehicle Supply Equipment) is a device that allows an EV (Electric Vehicle) to be
|
|
1128
|
-
* connected to the mains electricity supply to allow it to be charged (or discharged in case of Vehicle
|
|
1129
|
-
* to Grid / Vehicle to Home applications).
|
|
1130
|
-
*
|
|
1131
|
-
* 14.1.5. Device Type Requirements
|
|
1132
|
-
* An EVSE SHALL be composed of at least one endpoint with device types as defined by the conformance
|
|
1133
|
-
* below. There MAY be more endpoints with other device types existing in the EVSE.
|
|
1134
|
-
* - ID Name Constraint Conformance
|
|
1135
|
-
* - 0x0011 Power Source min 1 M
|
|
1136
|
-
* - 0x0510 Electrical Sensor min 1 M
|
|
1137
|
-
* - 0x050D Device Energy Management min 1 M
|
|
1138
|
-
*
|
|
1139
|
-
* The Electrical Sensor device SHALL include both the Electrical Energy Measurement and Electrical
|
|
1140
|
-
* Power Measurement clusters, measuring the total energy and power of the EVSE.
|
|
1141
|
-
*
|
|
1142
|
-
* The Device Energy Management cluster included in the Device Energy Management device SHALL
|
|
1143
|
-
* support the Power Forecast Reporting (PFR) feature.
|
|
1144
|
-
*/
|
|
1145
583
|
export const evse = DeviceTypeDefinition({
|
|
1146
584
|
name: 'MA-evse',
|
|
1147
585
|
code: 0x050c,
|
|
@@ -1150,39 +588,6 @@ export const evse = DeviceTypeDefinition({
|
|
|
1150
588
|
requiredServerClusters: [EnergyEvse.Cluster.id, EnergyEvseMode.Cluster.id],
|
|
1151
589
|
optionalServerClusters: [Identify.Cluster.id, TemperatureMeasurement.Cluster.id],
|
|
1152
590
|
});
|
|
1153
|
-
/**
|
|
1154
|
-
* A water heater is a device that is generally installed in properties to heat water for showers, baths etc.
|
|
1155
|
-
* A Water Heater is always defined via endpoint composition.
|
|
1156
|
-
*
|
|
1157
|
-
* 14.2.5. Device Type Requirements
|
|
1158
|
-
* A Water Heater SHALL be composed of at least one endpoint with device types as defined by the
|
|
1159
|
-
* conformance below. There MAY be more endpoints with other device types existing in the Water Heater.
|
|
1160
|
-
* - ID Name Constraint Conformance
|
|
1161
|
-
* - 0x0011 Power Source O
|
|
1162
|
-
* - 0x0302 Temperature Sensor O
|
|
1163
|
-
* - 0x0510 Electrical Sensor desc
|
|
1164
|
-
* - 0x050D Device Energy Management O
|
|
1165
|
-
*
|
|
1166
|
-
* 14.2.7. Element Requirements
|
|
1167
|
-
* 0x0201 Thermostat Feature Heating M
|
|
1168
|
-
*
|
|
1169
|
-
* The Energy Management feature of the Water Heater cluster SHALL be supported if the Device
|
|
1170
|
-
* Energy Management device type is included.
|
|
1171
|
-
* If Off is a supported SystemMode in the Thermostat cluster, setting the SystemMode of the Thermostat
|
|
1172
|
-
* cluster to Off SHALL set the CurrentMode attribute of the Water Heater Mode cluster to a mode
|
|
1173
|
-
* having the Off mode tag value and vice versa.
|
|
1174
|
-
* At least one entry in the SupportedModes attribute of the Water Heater Mode cluster SHALL
|
|
1175
|
-
* include the Timed mode tag in the ModeTags field list.
|
|
1176
|
-
*
|
|
1177
|
-
* WaterHeaterMode Cluster
|
|
1178
|
-
* 9.6.6.1. SupportedModes Attribute
|
|
1179
|
-
* At least one entry in the SupportedModes attribute SHALL include the Manual mode tag in the
|
|
1180
|
-
* ModeTags field list.
|
|
1181
|
-
* At least one entry in the SupportedModes attribute SHALL include the Off mode tag in the ModeTags
|
|
1182
|
-
* field list.
|
|
1183
|
-
* An entry in the SupportedModes attribute that includes one of an Off, Manual, or Timed tag SHALL
|
|
1184
|
-
* NOT also include an additional instance of any one of these tag types.
|
|
1185
|
-
*/
|
|
1186
591
|
export const waterHeater = DeviceTypeDefinition({
|
|
1187
592
|
name: 'MA-waterheater',
|
|
1188
593
|
code: 0x050f,
|
|
@@ -1191,99 +596,27 @@ export const waterHeater = DeviceTypeDefinition({
|
|
|
1191
596
|
requiredServerClusters: [Thermostat.Cluster.id, WaterHeaterManagement.Cluster.id, WaterHeaterMode.Cluster.id],
|
|
1192
597
|
optionalServerClusters: [Identify.Cluster.id],
|
|
1193
598
|
});
|
|
1194
|
-
/**
|
|
1195
|
-
* A Solar Power device is a device that allows a solar panel array, which can optionally be comprised
|
|
1196
|
-
* of a set parallel strings of solar panels, and its associated controller and, if appropriate, inverter, to
|
|
1197
|
-
* be monitored and controlled by an Energy Management System.
|
|
1198
|
-
*
|
|
1199
|
-
* 14.3.5. Device Type Requirements
|
|
1200
|
-
* A Solar Power device SHALL be composed of at least one endpoint with device types as defined by
|
|
1201
|
-
* the conformance below. There MAY be more endpoints with additional instances of these device
|
|
1202
|
-
* types or additional device types existing in the Solar Power device.
|
|
1203
|
-
*
|
|
1204
|
-
* - ID Name Constraint Conformance
|
|
1205
|
-
* - 0x0011 Power Source min 1 M
|
|
1206
|
-
* - 0x0510 Electrical Sensor min 1 M
|
|
1207
|
-
* - 0x050D Device Energy Management O
|
|
1208
|
-
* - 0x0302 Temperature Sensor O
|
|
1209
|
-
*
|
|
1210
|
-
* 14.3.5.1. Cluster Requirements on Composing Device Types
|
|
1211
|
-
*
|
|
1212
|
-
* - 0x0011 Power Source 0x002F Power Source Feature Wired M
|
|
1213
|
-
* - 0x0011 Power Source 0x001D Descriptor Feature TagList M
|
|
1214
|
-
* - 0x0510 Electrical Sensor 0x0090 Electrical Power Measurement M
|
|
1215
|
-
* - 0x0510 Electrical Sensor 0x0090 Electrical Power Measurement Attribute Voltage M
|
|
1216
|
-
* - 0x0510 Electrical Sensor 0x0090 Electrical Power Measurement Attribute ActiveCurrent M
|
|
1217
|
-
* - 0x0510 Electrical Sensor 0x0091 Electrical Energy Measurement M
|
|
1218
|
-
* - 0x0510 Electrical Sensor 0x0091 Electrical Energy Measurement Feature ExportedEnergy M
|
|
1219
|
-
* - 0x050D Device Energy Management 0x0098 Device Energy Management Feature PowerAdjustment M
|
|
1220
|
-
* - 0x0302 Temperature Sensor 0x001D Descriptor Feature TagList M
|
|
1221
|
-
*/
|
|
1222
599
|
export const solarPower = DeviceTypeDefinition({
|
|
1223
600
|
name: 'MA-solarpower',
|
|
1224
601
|
code: 0x0017,
|
|
1225
602
|
deviceClass: DeviceClasses.Simple,
|
|
1226
603
|
revision: 1,
|
|
1227
|
-
requiredServerClusters: [],
|
|
604
|
+
requiredServerClusters: [],
|
|
1228
605
|
optionalServerClusters: [Identify.Cluster.id],
|
|
1229
606
|
});
|
|
1230
|
-
/**
|
|
1231
|
-
* A Battery Storage device is a device that allows a DC battery, which can optionally be comprised of
|
|
1232
|
-
* a set parallel strings of battery packs and associated controller, and an AC inverter, to be monitored
|
|
1233
|
-
* and controlled by an Energy Management System in order to manage the peaks and troughs of supply
|
|
1234
|
-
* and demand, and/or to optimize cost of the energy consumed in premises. It is not intended to
|
|
1235
|
-
* be used for a UPS directly supplying a set of appliances, nor for portable battery storage devices.
|
|
1236
|
-
*
|
|
1237
|
-
* 14.4.5. Device Type Requirements
|
|
1238
|
-
* A Battery Storage device SHALL be composed of at least one endpoint with device types as defined by
|
|
1239
|
-
* the conformance below. There MAY be more endpoints with additional instances of these device
|
|
1240
|
-
* types or additional device types existing in the Battery Storage device.
|
|
1241
|
-
* - ID Name Constraint Conformance
|
|
1242
|
-
* - 0x0011 Power Source min 1 M
|
|
1243
|
-
* - 0x0510 Electrical Sensor min 1 M
|
|
1244
|
-
* - 0x050D Device Energy Management M
|
|
1245
|
-
* - 0x0302 Temperature Sensor O
|
|
1246
|
-
* - 0x0017 Solar Power O
|
|
1247
|
-
*
|
|
1248
|
-
* See 14.4.5.1. Cluster Requirements on Composing Device Types
|
|
1249
|
-
*/
|
|
1250
607
|
export const batteryStorage = DeviceTypeDefinition({
|
|
1251
608
|
name: 'MA-batterystorage',
|
|
1252
609
|
code: 0x0018,
|
|
1253
610
|
deviceClass: DeviceClasses.Simple,
|
|
1254
611
|
revision: 1,
|
|
1255
|
-
requiredServerClusters: [],
|
|
612
|
+
requiredServerClusters: [],
|
|
1256
613
|
optionalServerClusters: [Identify.Cluster.id],
|
|
1257
614
|
});
|
|
1258
|
-
/**
|
|
1259
|
-
* A Heat Pump device is a device that uses electrical energy to heat either spaces or water tanks using
|
|
1260
|
-
* ground, water or air as the heat source. These typically can heat the air or can pump water via central
|
|
1261
|
-
* heating radiators or underfloor heating systems. It is typical to also heat hot water and store
|
|
1262
|
-
* the heat in a hot water tank.
|
|
1263
|
-
*
|
|
1264
|
-
* 14.5.1. Heat Pump Architecture
|
|
1265
|
-
* A Heat Pump device is always defined via endpoint composition.
|
|
1266
|
-
*
|
|
1267
|
-
* 14.5.5. Device Type Requirements
|
|
1268
|
-
* A Heat Pump device SHALL be composed of at least one endpoint with device types as defined by
|
|
1269
|
-
* the conformance below. There MAY be more endpoints with additional instances of these device
|
|
1270
|
-
* types or additional device types existing in the Heat Pump device.
|
|
1271
|
-
* - ID Name Constraint Conformance
|
|
1272
|
-
* - 0x0011 Power Source M
|
|
1273
|
-
* - 0x0510 Electrical Sensor min 1 M
|
|
1274
|
-
* - 0x050D Device Energy Management M
|
|
1275
|
-
* - 0x0301 Thermostat O
|
|
1276
|
-
* - 0x050f Water Heater O
|
|
1277
|
-
* - 0x0302 Temperature Sensor O
|
|
1278
|
-
*
|
|
1279
|
-
* See 14.5.5.1. Cluster Requirements on Composing Device Types
|
|
1280
|
-
*/
|
|
1281
615
|
export const heatPump = DeviceTypeDefinition({
|
|
1282
616
|
name: 'MA-heatpump',
|
|
1283
617
|
code: 0x0309,
|
|
1284
618
|
deviceClass: DeviceClasses.Simple,
|
|
1285
619
|
revision: 1,
|
|
1286
|
-
requiredServerClusters: [],
|
|
620
|
+
requiredServerClusters: [],
|
|
1287
621
|
optionalServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
|
|
1288
622
|
});
|
|
1289
|
-
//# sourceMappingURL=matterbridgeDeviceTypes.js.map
|