1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
/*
*
* Copyright (c) 2022-2026 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
use DeviceType;
/// A constant representing the device type for the root (ep0) endpoint in Matter.
///
/// Matter Device Library revision history: rev 1 was initial; rev 2
/// added Power Source (conditional, optional); rev 3 added MNGD-feature
/// restriction on Access Control; rev 4 added conditions and cluster
/// requirements for Time Sync, TLS Certificate/Client Management. All four
/// rev-2..4 additions are either conditional or `O` (optional) per spec;
/// rs-matter implements the rev-1 mandatory set (BasicInfo, AccessControl,
/// GeneralCommissioning, NetworkCommissioning, GeneralDiagnostics,
/// AdminCommissioning, OperationalCredentials, GroupKeyManagement) and is
/// therefore conformant at rev 4.
pub const DEV_TYPE_ROOT_NODE: DeviceType = DeviceType ;
/// A constant representing the device type for a bridged device endpoint in the node.
pub const DEV_TYPE_BRIDGED_NODE: DeviceType = DeviceType ;
/// A constant representing the device type for an aggregator endpoint in the node
/// when the Node contains bridged endpoints.
pub const DEV_TYPE_AGGREGATOR: DeviceType = DeviceType ;
/// The OTA Requestor device type: a node that obtains and applies software
/// updates. It hosts the OTA Software Update Requestor cluster (server) and is a
/// client of the OTA Software Update Provider cluster.
pub const DEV_TYPE_OTA_REQUESTOR: DeviceType = DeviceType ;
/// The OTA Provider device type: a node that serves software updates. It hosts
/// the OTA Software Update Provider cluster (server) and is a client of the OTA
/// Software Update Requestor cluster.
pub const DEV_TYPE_OTA_PROVIDER: DeviceType = DeviceType ;
/// A constant representing the On/Off Light device in Matter.
///
/// Matter Device Library revision history: rev 1 was Zigbee-3.0
/// initial; rev 2 was the new data-model-format/notation rewrite; rev 3
/// swapped the deprecated Scenes cluster (0x0005) for Scenes Management
/// (0x0062). Conformance tests (TC_DeviceConformance::test_TC_IDM_10_5/_6)
/// always evaluate the cluster set against the *current* spec, so claiming
/// the latest revision matches the test framework's expectation.
///
/// Note: `On/Off Light` mandates Identify, Groups, On/Off (with the `LT`
/// Lighting feature), and Scenes Management at rev 3. rs-matter does not
/// yet implement Scenes Management — applications using this device type
/// won't pass `test_TC_IDM_10_5` until that gap is closed.
pub const DEV_TYPE_ON_OFF_LIGHT: DeviceType = DeviceType ;
pub const DEV_TYPE_DIMMABLE_LIGHT: DeviceType = DeviceType ;
/// On/Off Light Switch — a controller device type that mandates the
/// `OnOff` cluster as a **client** (i.e. it initiates On/Off commands to a
/// bound light) plus the `Binding` cluster as a server (its address book of
/// bound targets). See the Matter Device Library spec.
pub const DEV_TYPE_ON_OFF_LIGHT_SWITCH: DeviceType = DeviceType ;
/// Generic Switch — a device type for a button/switch that reports user
/// presses via the `Switch` cluster (as a **server**), emitting events such as
/// `InitialPress`/`ShortRelease`. Ecosystems surface these events as automation
/// triggers. Unlike `DEV_TYPE_ON_OFF_LIGHT_SWITCH`, it does not bind to or
/// command any device itself. See the Matter Device Library spec.
pub const DEV_TYPE_GENERIC_SWITCH: DeviceType = DeviceType ;
/// Extended Color Light — mandates OnOff, LevelControl, and
/// ColorControl with the full feature set (HUE_AND_SATURATION, XY,
/// COLOR_TEMPERATURE, ENHANCED_HUE, COLOR_LOOP).
pub const DEV_TYPE_EXTENDED_COLOR_LIGHT: DeviceType = DeviceType ;
/// A constant representing the Smart Speaker device in Matter.
pub const DEV_TYPE_SMART_SPEAKER: DeviceType = DeviceType ;
/// A constant representing the casting video player device in Matter.
pub const DEV_TYPE_CASTING_VIDEO_PLAYER: DeviceType = DeviceType ;
/// A constant representing the video player device in Matter.
pub const DEV_TYPE_VIDEO_PLAYER: DeviceType = DeviceType ;
/// A macro to generate the devices for an endpoint.
}