Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 1 | // This IDL was generated automatically by ZAP. |
| 2 | // It is for view/code review purposes only. |
| 3 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 4 | /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 5 | cluster Identify = 3 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 6 | revision 4; |
| 7 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 8 | enum EffectIdentifierEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 9 | kBlink = 0; |
| 10 | kBreathe = 1; |
| 11 | kOkay = 2; |
| 12 | kChannelChange = 11; |
| 13 | kFinishEffect = 254; |
| 14 | kStopEffect = 255; |
| 15 | } |
| 16 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 17 | enum EffectVariantEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 18 | kDefault = 0; |
| 19 | } |
| 20 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 21 | enum IdentifyTypeEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 22 | kNone = 0; |
fesseha-eve | e663746 | 2023-05-26 18:34:09 +0200 | [diff] [blame] | 23 | kLightOutput = 1; |
| 24 | kVisibleIndicator = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 25 | kAudibleBeep = 3; |
| 26 | kDisplay = 4; |
| 27 | kActuator = 5; |
| 28 | } |
| 29 | |
| 30 | attribute int16u identifyTime = 0; |
fesseha-eve | e663746 | 2023-05-26 18:34:09 +0200 | [diff] [blame] | 31 | readonly attribute IdentifyTypeEnum identifyType = 1; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 32 | readonly attribute command_id generatedCommandList[] = 65528; |
| 33 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 34 | readonly attribute event_id eventList[] = 65530; |
| 35 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 36 | readonly attribute bitmap32 featureMap = 65532; |
| 37 | readonly attribute int16u clusterRevision = 65533; |
| 38 | |
| 39 | request struct IdentifyRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 40 | int16u identifyTime = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 41 | } |
| 42 | |
| 43 | request struct TriggerEffectRequest { |
fesseha-eve | e663746 | 2023-05-26 18:34:09 +0200 | [diff] [blame] | 44 | EffectIdentifierEnum effectIdentifier = 0; |
| 45 | EffectVariantEnum effectVariant = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 46 | } |
| 47 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 48 | /** Command description for Identify */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 49 | command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 50 | /** Command description for TriggerEffect */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 51 | command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; |
| 52 | } |
| 53 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 54 | /** Attributes and commands for group configuration and manipulation. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 55 | cluster Groups = 4 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 56 | revision 4; |
| 57 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 58 | bitmap Feature : bitmap32 { |
Andrei Litvin | f241dd2 | 2022-07-09 08:35:09 -0400 | [diff] [blame] | 59 | kGroupNames = 0x1; |
| 60 | } |
| 61 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 62 | bitmap NameSupportBitmap : bitmap8 { |
Boris Zbarsky | cb1955f | 2023-05-25 14:01:41 -0400 | [diff] [blame] | 63 | kGroupNames = 0x80; |
| 64 | } |
| 65 | |
| 66 | readonly attribute NameSupportBitmap nameSupport = 0; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 67 | readonly attribute command_id generatedCommandList[] = 65528; |
| 68 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 69 | readonly attribute event_id eventList[] = 65530; |
| 70 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 71 | readonly attribute bitmap32 featureMap = 65532; |
| 72 | readonly attribute int16u clusterRevision = 65533; |
| 73 | |
| 74 | request struct AddGroupRequest { |
Boris Zbarsky | a83ce32 | 2023-01-03 11:38:33 -0500 | [diff] [blame] | 75 | group_id groupID = 0; |
Andrei Litvin | bd8aa07 | 2023-10-27 18:12:37 -0400 | [diff] [blame] | 76 | char_string<16> groupName = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 77 | } |
| 78 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 79 | response struct AddGroupResponse = 0 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 80 | enum8 status = 0; |
Boris Zbarsky | a83ce32 | 2023-01-03 11:38:33 -0500 | [diff] [blame] | 81 | group_id groupID = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 82 | } |
| 83 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 84 | request struct ViewGroupRequest { |
| 85 | group_id groupID = 0; |
| 86 | } |
| 87 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 88 | response struct ViewGroupResponse = 1 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 89 | enum8 status = 0; |
Boris Zbarsky | a83ce32 | 2023-01-03 11:38:33 -0500 | [diff] [blame] | 90 | group_id groupID = 1; |
Andrei Litvin | bd8aa07 | 2023-10-27 18:12:37 -0400 | [diff] [blame] | 91 | char_string<16> groupName = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 92 | } |
| 93 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 94 | request struct GetGroupMembershipRequest { |
| 95 | group_id groupList[] = 0; |
| 96 | } |
| 97 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 98 | response struct GetGroupMembershipResponse = 2 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 99 | nullable int8u capacity = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 100 | group_id groupList[] = 1; |
| 101 | } |
| 102 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 103 | request struct RemoveGroupRequest { |
| 104 | group_id groupID = 0; |
| 105 | } |
| 106 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 107 | response struct RemoveGroupResponse = 3 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 108 | enum8 status = 0; |
Boris Zbarsky | a83ce32 | 2023-01-03 11:38:33 -0500 | [diff] [blame] | 109 | group_id groupID = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 110 | } |
| 111 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 112 | request struct AddGroupIfIdentifyingRequest { |
| 113 | group_id groupID = 0; |
| 114 | char_string<16> groupName = 1; |
| 115 | } |
| 116 | |
| 117 | /** Command description for AddGroup */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 118 | fabric command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 119 | /** Command description for ViewGroup */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 120 | fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 121 | /** Command description for GetGroupMembership */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 122 | fabric command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 123 | /** Command description for RemoveGroup */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 124 | fabric command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 125 | /** Command description for RemoveAllGroups */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 126 | fabric command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 127 | /** Command description for AddGroupIfIdentifying */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 128 | fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 129 | } |
| 130 | |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 131 | /** Attributes and commands for scene configuration and manipulation. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 132 | provisional cluster Scenes = 5 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 133 | revision 5; |
| 134 | |
lpbeliveau-silabs | 0d36dcf | 2023-10-31 21:41:34 -0400 | [diff] [blame] | 135 | bitmap CopyModeBitmap : bitmap8 { |
| 136 | kCopyAllScenes = 0x1; |
| 137 | } |
| 138 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 139 | bitmap Feature : bitmap32 { |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 140 | kSceneNames = 0x1; |
mpbreton-silabs | a40963d | 2023-08-17 17:10:22 -0400 | [diff] [blame] | 141 | kExplicit = 0x2; |
| 142 | kTableSize = 0x4; |
| 143 | kFabricScenes = 0x8; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 144 | } |
| 145 | |
lpbeliveau-silabs | 0d36dcf | 2023-10-31 21:41:34 -0400 | [diff] [blame] | 146 | bitmap NameSupportBitmap : bitmap8 { |
| 147 | kSceneNames = 0x80; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 148 | } |
| 149 | |
| 150 | struct AttributeValuePair { |
lpbeliveau-silabs | 33b8bed | 2023-06-28 11:28:14 -0400 | [diff] [blame] | 151 | attrib_id attributeID = 0; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 152 | int32u attributeValue = 1; |
| 153 | } |
| 154 | |
| 155 | struct ExtensionFieldSet { |
| 156 | cluster_id clusterID = 0; |
| 157 | AttributeValuePair attributeValueList[] = 1; |
| 158 | } |
| 159 | |
lpbeliveau-silabs | 732d5e7 | 2023-11-16 12:36:24 -0500 | [diff] [blame] | 160 | fabric_scoped struct SceneInfoStruct { |
| 161 | int8u sceneCount = 0; |
| 162 | fabric_sensitive int8u currentScene = 1; |
| 163 | fabric_sensitive group_id currentGroup = 2; |
| 164 | fabric_sensitive boolean sceneValid = 3; |
| 165 | int8u remainingCapacity = 4; |
| 166 | fabric_idx fabricIndex = 254; |
| 167 | } |
| 168 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 169 | readonly attribute optional int8u sceneCount = 0; |
| 170 | readonly attribute optional int8u currentScene = 1; |
| 171 | readonly attribute optional group_id currentGroup = 2; |
| 172 | readonly attribute optional boolean sceneValid = 3; |
lpbeliveau-silabs | 0d36dcf | 2023-10-31 21:41:34 -0400 | [diff] [blame] | 173 | readonly attribute NameSupportBitmap nameSupport = 4; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 174 | readonly attribute optional nullable node_id lastConfiguredBy = 5; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 175 | readonly attribute int16u sceneTableSize = 6; |
lpbeliveau-silabs | 732d5e7 | 2023-11-16 12:36:24 -0500 | [diff] [blame] | 176 | readonly attribute SceneInfoStruct fabricSceneInfo[] = 7; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 177 | readonly attribute command_id generatedCommandList[] = 65528; |
| 178 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 179 | readonly attribute event_id eventList[] = 65530; |
| 180 | readonly attribute attrib_id attributeList[] = 65531; |
| 181 | readonly attribute bitmap32 featureMap = 65532; |
| 182 | readonly attribute int16u clusterRevision = 65533; |
| 183 | |
| 184 | request struct AddSceneRequest { |
| 185 | group_id groupID = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 186 | int8u sceneID = 1; |
| 187 | int16u transitionTime = 2; |
| 188 | char_string sceneName = 3; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 189 | ExtensionFieldSet extensionFieldSets[] = 4; |
| 190 | } |
| 191 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 192 | response struct AddSceneResponse = 0 { |
| 193 | status status = 0; |
| 194 | group_id groupID = 1; |
| 195 | int8u sceneID = 2; |
| 196 | } |
| 197 | |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 198 | request struct ViewSceneRequest { |
| 199 | group_id groupID = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 200 | int8u sceneID = 1; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 201 | } |
| 202 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 203 | response struct ViewSceneResponse = 1 { |
| 204 | status status = 0; |
| 205 | group_id groupID = 1; |
| 206 | int8u sceneID = 2; |
| 207 | optional int16u transitionTime = 3; |
| 208 | optional char_string sceneName = 4; |
| 209 | optional ExtensionFieldSet extensionFieldSets[] = 5; |
| 210 | } |
| 211 | |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 212 | request struct RemoveSceneRequest { |
| 213 | group_id groupID = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 214 | int8u sceneID = 1; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 215 | } |
| 216 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 217 | response struct RemoveSceneResponse = 2 { |
| 218 | status status = 0; |
| 219 | group_id groupID = 1; |
| 220 | int8u sceneID = 2; |
| 221 | } |
| 222 | |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 223 | request struct RemoveAllScenesRequest { |
| 224 | group_id groupID = 0; |
| 225 | } |
| 226 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 227 | response struct RemoveAllScenesResponse = 3 { |
| 228 | status status = 0; |
| 229 | group_id groupID = 1; |
| 230 | } |
| 231 | |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 232 | request struct StoreSceneRequest { |
| 233 | group_id groupID = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 234 | int8u sceneID = 1; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 235 | } |
| 236 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 237 | response struct StoreSceneResponse = 4 { |
| 238 | status status = 0; |
| 239 | group_id groupID = 1; |
| 240 | int8u sceneID = 2; |
| 241 | } |
| 242 | |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 243 | request struct RecallSceneRequest { |
| 244 | group_id groupID = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 245 | int8u sceneID = 1; |
| 246 | optional nullable int16u transitionTime = 2; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 247 | } |
| 248 | |
| 249 | request struct GetSceneMembershipRequest { |
| 250 | group_id groupID = 0; |
| 251 | } |
| 252 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 253 | response struct GetSceneMembershipResponse = 6 { |
| 254 | status status = 0; |
| 255 | nullable int8u capacity = 1; |
| 256 | group_id groupID = 2; |
| 257 | optional int8u sceneList[] = 3; |
| 258 | } |
| 259 | |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 260 | request struct EnhancedAddSceneRequest { |
| 261 | group_id groupID = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 262 | int8u sceneID = 1; |
| 263 | int16u transitionTime = 2; |
| 264 | char_string sceneName = 3; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 265 | ExtensionFieldSet extensionFieldSets[] = 4; |
| 266 | } |
| 267 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 268 | response struct EnhancedAddSceneResponse = 64 { |
| 269 | status status = 0; |
| 270 | group_id groupID = 1; |
| 271 | int8u sceneID = 2; |
| 272 | } |
| 273 | |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 274 | request struct EnhancedViewSceneRequest { |
| 275 | group_id groupID = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 276 | int8u sceneID = 1; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 277 | } |
| 278 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 279 | response struct EnhancedViewSceneResponse = 65 { |
| 280 | status status = 0; |
| 281 | group_id groupID = 1; |
| 282 | int8u sceneID = 2; |
| 283 | optional int16u transitionTime = 3; |
| 284 | optional char_string sceneName = 4; |
| 285 | optional ExtensionFieldSet extensionFieldSets[] = 5; |
| 286 | } |
| 287 | |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 288 | request struct CopySceneRequest { |
lpbeliveau-silabs | 0d36dcf | 2023-10-31 21:41:34 -0400 | [diff] [blame] | 289 | CopyModeBitmap mode = 0; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 290 | group_id groupIdentifierFrom = 1; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 291 | int8u sceneIdentifierFrom = 2; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 292 | group_id groupIdentifierTo = 3; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 293 | int8u sceneIdentifierTo = 4; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 294 | } |
| 295 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 296 | response struct CopySceneResponse = 66 { |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 297 | status status = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 298 | group_id groupIdentifierFrom = 1; |
| 299 | int8u sceneIdentifierFrom = 2; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 300 | } |
| 301 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 302 | /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */ |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 303 | fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 304 | /** Retrieves the requested scene entry from its Scene table. */ |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 305 | fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 306 | /** Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table */ |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 307 | fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 308 | /** Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table */ |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 309 | fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 310 | /** Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current state of other clusters on the same endpoint */ |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 311 | fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 312 | /** Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to the resquested scene entry in the Scene Table */ |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 313 | fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 314 | /** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */ |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 315 | fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 316 | /** Allows a scene to be added using a finer scene transition time than the AddScene command. */ |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 317 | fabric command EnhancedAddScene(EnhancedAddSceneRequest): EnhancedAddSceneResponse = 64; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 318 | /** Allows a scene to be retrieved using a finer scene transition time than the ViewScene command */ |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 319 | fabric command EnhancedViewScene(EnhancedViewSceneRequest): EnhancedViewSceneResponse = 65; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 320 | /** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */ |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 321 | fabric command CopyScene(CopySceneRequest): CopySceneResponse = 66; |
| 322 | } |
| 323 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 324 | /** Attributes and commands for switching devices between 'On' and 'Off' states. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 325 | cluster OnOff = 6 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 326 | revision 6; |
| 327 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 328 | enum DelayedAllOffEffectVariantEnum : enum8 { |
Boris Zbarsky | 6fe4b11 | 2023-09-22 12:50:14 -0400 | [diff] [blame] | 329 | kDelayedOffFastFade = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 330 | kNoFade = 1; |
Boris Zbarsky | 6fe4b11 | 2023-09-22 12:50:14 -0400 | [diff] [blame] | 331 | kDelayedOffSlowFade = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 332 | } |
| 333 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 334 | enum DyingLightEffectVariantEnum : enum8 { |
Boris Zbarsky | 6fe4b11 | 2023-09-22 12:50:14 -0400 | [diff] [blame] | 335 | kDyingLightFadeOff = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 336 | } |
| 337 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 338 | enum EffectIdentifierEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 339 | kDelayedAllOff = 0; |
| 340 | kDyingLight = 1; |
| 341 | } |
| 342 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 343 | enum StartUpOnOffEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 344 | kOff = 0; |
| 345 | kOn = 1; |
Boris Zbarsky | 6fe4b11 | 2023-09-22 12:50:14 -0400 | [diff] [blame] | 346 | kToggle = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 347 | } |
| 348 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 349 | bitmap Feature : bitmap32 { |
Boris Zbarsky | 243ee4b | 2023-05-19 10:39:11 -0400 | [diff] [blame] | 350 | kLighting = 0x1; |
Boris Zbarsky | 6fe4b11 | 2023-09-22 12:50:14 -0400 | [diff] [blame] | 351 | kDeadFrontBehavior = 0x2; |
Andrei Litvin | 06dd555 | 2023-11-01 18:50:49 -0400 | [diff] [blame] | 352 | kOffOnly = 0x4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 353 | } |
| 354 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 355 | bitmap OnOffControlBitmap : bitmap8 { |
Boris Zbarsky | 243ee4b | 2023-05-19 10:39:11 -0400 | [diff] [blame] | 356 | kAcceptOnlyWhenOn = 0x1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 357 | } |
| 358 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 359 | readonly attribute boolean onOff = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 360 | readonly attribute optional boolean globalSceneControl = 16384; |
| 361 | attribute optional int16u onTime = 16385; |
| 362 | attribute optional int16u offWaitTime = 16386; |
| 363 | attribute access(write: manage) optional nullable StartUpOnOffEnum startUpOnOff = 16387; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 364 | readonly attribute command_id generatedCommandList[] = 65528; |
| 365 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 366 | readonly attribute event_id eventList[] = 65530; |
| 367 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 368 | readonly attribute bitmap32 featureMap = 65532; |
| 369 | readonly attribute int16u clusterRevision = 65533; |
| 370 | |
| 371 | request struct OffWithEffectRequest { |
Boris Zbarsky | 6fe4b11 | 2023-09-22 12:50:14 -0400 | [diff] [blame] | 372 | EffectIdentifierEnum effectIdentifier = 0; |
Andrei Litvin | 06dd555 | 2023-11-01 18:50:49 -0400 | [diff] [blame] | 373 | enum8 effectVariant = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 374 | } |
| 375 | |
| 376 | request struct OnWithTimedOffRequest { |
Boris Zbarsky | 6fe4b11 | 2023-09-22 12:50:14 -0400 | [diff] [blame] | 377 | OnOffControlBitmap onOffControl = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 378 | int16u onTime = 1; |
| 379 | int16u offWaitTime = 2; |
| 380 | } |
| 381 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 382 | /** On receipt of this command, a device SHALL enter its ‘Off’ state. This state is device dependent, but it is recommended that it is used for power off or similar functions. On receipt of the Off command, the OnTime attribute SHALL be set to 0. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 383 | command Off(): DefaultSuccess = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 384 | /** On receipt of this command, a device SHALL enter its ‘On’ state. This state is device dependent, but it is recommended that it is used for power on or similar functions. On receipt of the On command, if the value of the OnTime attribute is equal to 0, the device SHALL set the OffWaitTime attribute to 0. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 385 | command On(): DefaultSuccess = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 386 | /** On receipt of this command, if a device is in its ‘Off’ state it SHALL enter its ‘On’ state. Otherwise, if it is in its ‘On’ state it SHALL enter its ‘Off’ state. On receipt of the Toggle command, if the value of the OnOff attribute is equal to FALSE and if the value of the OnTime attribute is equal to 0, the device SHALL set the OffWaitTime attribute to 0. If the value of the OnOff attribute is equal to TRUE, the OnTime attribute SHALL be set to 0. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 387 | command Toggle(): DefaultSuccess = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 388 | /** The OffWithEffect command allows devices to be turned off using enhanced ways of fading. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 389 | command OffWithEffect(OffWithEffectRequest): DefaultSuccess = 64; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 390 | /** The OnWithRecallGlobalScene command allows the recall of the settings when the device was turned off. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 391 | command OnWithRecallGlobalScene(): DefaultSuccess = 65; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 392 | /** The OnWithTimedOff command allows devices to be turned on for a specific duration with a guarded off duration so that SHOULD the device be subsequently switched off, further OnWithTimedOff commands, received during this time, are prevented from turning the devices back on. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 393 | command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66; |
| 394 | } |
| 395 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 396 | /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 397 | cluster LevelControl = 8 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 398 | revision 5; |
| 399 | |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 400 | enum MoveModeEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 401 | kUp = 0; |
| 402 | kDown = 1; |
| 403 | } |
| 404 | |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 405 | enum StepModeEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 406 | kUp = 0; |
| 407 | kDown = 1; |
| 408 | } |
| 409 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 410 | bitmap Feature : bitmap32 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 411 | kOnOff = 0x1; |
| 412 | kLighting = 0x2; |
| 413 | kFrequency = 0x4; |
| 414 | } |
| 415 | |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 416 | bitmap OptionsBitmap : bitmap8 { |
Jakob Sloth Olesen | 76d834e | 2022-11-18 21:28:27 +0100 | [diff] [blame] | 417 | kExecuteIfOff = 0x1; |
| 418 | kCoupleColorTempToLevel = 0x2; |
| 419 | } |
| 420 | |
mkardous-silabs | 58c4b04 | 2022-08-03 15:32:35 -0400 | [diff] [blame] | 421 | readonly attribute nullable int8u currentLevel = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 422 | readonly attribute optional int16u remainingTime = 1; |
| 423 | readonly attribute optional int8u minLevel = 2; |
| 424 | readonly attribute optional int8u maxLevel = 3; |
| 425 | readonly attribute optional int16u currentFrequency = 4; |
| 426 | readonly attribute optional int16u minFrequency = 5; |
| 427 | readonly attribute optional int16u maxFrequency = 6; |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 428 | attribute OptionsBitmap options = 15; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 429 | attribute optional int16u onOffTransitionTime = 16; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 430 | attribute nullable int8u onLevel = 17; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 431 | attribute optional nullable int16u onTransitionTime = 18; |
| 432 | attribute optional nullable int16u offTransitionTime = 19; |
| 433 | attribute optional nullable int8u defaultMoveRate = 20; |
| 434 | attribute access(write: manage) optional nullable int8u startUpCurrentLevel = 16384; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 435 | readonly attribute command_id generatedCommandList[] = 65528; |
| 436 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 437 | readonly attribute event_id eventList[] = 65530; |
| 438 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 439 | readonly attribute bitmap32 featureMap = 65532; |
| 440 | readonly attribute int16u clusterRevision = 65533; |
| 441 | |
| 442 | request struct MoveToLevelRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 443 | int8u level = 0; |
| 444 | nullable int16u transitionTime = 1; |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 445 | OptionsBitmap optionsMask = 2; |
| 446 | OptionsBitmap optionsOverride = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 447 | } |
| 448 | |
| 449 | request struct MoveRequest { |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 450 | MoveModeEnum moveMode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 451 | nullable int8u rate = 1; |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 452 | OptionsBitmap optionsMask = 2; |
| 453 | OptionsBitmap optionsOverride = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 454 | } |
| 455 | |
| 456 | request struct StepRequest { |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 457 | StepModeEnum stepMode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 458 | int8u stepSize = 1; |
| 459 | nullable int16u transitionTime = 2; |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 460 | OptionsBitmap optionsMask = 3; |
| 461 | OptionsBitmap optionsOverride = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 462 | } |
| 463 | |
| 464 | request struct StopRequest { |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 465 | OptionsBitmap optionsMask = 0; |
| 466 | OptionsBitmap optionsOverride = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 467 | } |
| 468 | |
| 469 | request struct MoveToLevelWithOnOffRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 470 | int8u level = 0; |
| 471 | nullable int16u transitionTime = 1; |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 472 | OptionsBitmap optionsMask = 2; |
| 473 | OptionsBitmap optionsOverride = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 474 | } |
| 475 | |
| 476 | request struct MoveWithOnOffRequest { |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 477 | MoveModeEnum moveMode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 478 | nullable int8u rate = 1; |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 479 | OptionsBitmap optionsMask = 2; |
| 480 | OptionsBitmap optionsOverride = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 481 | } |
| 482 | |
| 483 | request struct StepWithOnOffRequest { |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 484 | StepModeEnum stepMode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 485 | int8u stepSize = 1; |
| 486 | nullable int16u transitionTime = 2; |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 487 | OptionsBitmap optionsMask = 3; |
| 488 | OptionsBitmap optionsOverride = 4; |
Robert Szewczyk | cc3e2b7 | 2022-07-28 15:09:54 -0700 | [diff] [blame] | 489 | } |
| 490 | |
| 491 | request struct StopWithOnOffRequest { |
Andrei Litvin | 8f3eb01 | 2023-11-15 03:33:51 -0500 | [diff] [blame] | 492 | OptionsBitmap optionsMask = 0; |
| 493 | OptionsBitmap optionsOverride = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 494 | } |
| 495 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 496 | request struct MoveToClosestFrequencyRequest { |
| 497 | int16u frequency = 0; |
| 498 | } |
| 499 | |
| 500 | /** Command description for MoveToLevel */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 501 | command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 502 | /** Command description for Move */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 503 | command Move(MoveRequest): DefaultSuccess = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 504 | /** Command description for Step */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 505 | command Step(StepRequest): DefaultSuccess = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 506 | /** Command description for Stop */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 507 | command Stop(StopRequest): DefaultSuccess = 3; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 508 | /** Command description for MoveToLevelWithOnOff */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 509 | command MoveToLevelWithOnOff(MoveToLevelWithOnOffRequest): DefaultSuccess = 4; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 510 | /** Command description for MoveWithOnOff */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 511 | command MoveWithOnOff(MoveWithOnOffRequest): DefaultSuccess = 5; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 512 | /** Command description for StepWithOnOff */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 513 | command StepWithOnOff(StepWithOnOffRequest): DefaultSuccess = 6; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 514 | /** Command description for StopWithOnOff */ |
Robert Szewczyk | cc3e2b7 | 2022-07-28 15:09:54 -0700 | [diff] [blame] | 515 | command StopWithOnOff(StopWithOnOffRequest): DefaultSuccess = 7; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 516 | /** Change the currrent frequency to the provided one, or a close |
| 517 | approximation if the exact provided one is not possible. */ |
| 518 | command MoveToClosestFrequency(MoveToClosestFrequencyRequest): DefaultSuccess = 8; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 519 | } |
| 520 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 521 | /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 522 | cluster Descriptor = 29 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 523 | revision 2; |
| 524 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 525 | bitmap Feature : bitmap32 { |
Boris Zbarsky | bf0b45a | 2023-08-11 08:04:15 -0400 | [diff] [blame] | 526 | kTagList = 0x1; |
| 527 | } |
| 528 | |
Boris Zbarsky | e4c075f | 2022-09-12 08:23:17 -0400 | [diff] [blame] | 529 | struct DeviceTypeStruct { |
Boris Zbarsky | 7195bd8 | 2023-01-03 17:34:16 -0500 | [diff] [blame] | 530 | devtype_id deviceType = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 531 | int16u revision = 1; |
| 532 | } |
| 533 | |
abeck-whirlpool | a1c1126 | 2023-07-21 00:22:56 -0500 | [diff] [blame] | 534 | struct SemanticTagStruct { |
| 535 | nullable vendor_id mfgCode = 0; |
| 536 | enum8 namespaceID = 1; |
| 537 | enum8 tag = 2; |
| 538 | optional nullable char_string label = 3; |
| 539 | } |
| 540 | |
Boris Zbarsky | e4c075f | 2022-09-12 08:23:17 -0400 | [diff] [blame] | 541 | readonly attribute DeviceTypeStruct deviceTypeList[] = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 542 | readonly attribute cluster_id serverList[] = 1; |
| 543 | readonly attribute cluster_id clientList[] = 2; |
| 544 | readonly attribute endpoint_no partsList[] = 3; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 545 | readonly attribute optional SemanticTagStruct tagList[] = 4; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 546 | readonly attribute command_id generatedCommandList[] = 65528; |
| 547 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 548 | readonly attribute event_id eventList[] = 65530; |
| 549 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 550 | readonly attribute bitmap32 featureMap = 65532; |
| 551 | readonly attribute int16u clusterRevision = 65533; |
| 552 | } |
| 553 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 554 | /** The Access Control Cluster exposes a data model view of a |
| 555 | Node's Access Control List (ACL), which codifies the rules used to manage |
| 556 | and enforce Access Control for the Node's endpoints and their associated |
| 557 | cluster instances. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 558 | cluster AccessControl = 31 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 559 | revision 1; // NOTE: Default/not specifically set |
| 560 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 561 | enum AccessControlEntryAuthModeEnum : enum8 { |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 562 | kPASE = 1; |
| 563 | kCASE = 2; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 564 | kGroup = 3; |
| 565 | } |
| 566 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 567 | enum AccessControlEntryPrivilegeEnum : enum8 { |
Boris Zbarsky | 28cb6cc | 2023-01-04 04:46:21 -0500 | [diff] [blame] | 568 | kView = 1; |
| 569 | kProxyView = 2; |
| 570 | kOperate = 3; |
| 571 | kManage = 4; |
| 572 | kAdminister = 5; |
| 573 | } |
| 574 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 575 | enum ChangeTypeEnum : enum8 { |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 576 | kChanged = 0; |
| 577 | kAdded = 1; |
| 578 | kRemoved = 2; |
| 579 | } |
| 580 | |
Boris Zbarsky | f9731a8 | 2023-05-24 15:08:53 -0400 | [diff] [blame] | 581 | struct AccessControlTargetStruct { |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 582 | nullable cluster_id cluster = 0; |
| 583 | nullable endpoint_no endpoint = 1; |
| 584 | nullable devtype_id deviceType = 2; |
| 585 | } |
| 586 | |
Boris Zbarsky | 28cb6cc | 2023-01-04 04:46:21 -0500 | [diff] [blame] | 587 | fabric_scoped struct AccessControlEntryStruct { |
| 588 | fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; |
| 589 | fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; |
Andrei Litvin | d38820d | 2022-10-04 09:25:26 -0400 | [diff] [blame] | 590 | nullable fabric_sensitive int64u subjects[] = 3; |
Boris Zbarsky | f9731a8 | 2023-05-24 15:08:53 -0400 | [diff] [blame] | 591 | nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; |
Song GUO | cd08938 | 2022-03-17 13:31:51 +0800 | [diff] [blame] | 592 | fabric_idx fabricIndex = 254; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 593 | } |
| 594 | |
Boris Zbarsky | 28cb6cc | 2023-01-04 04:46:21 -0500 | [diff] [blame] | 595 | fabric_scoped struct AccessControlExtensionStruct { |
Andrei Litvin | d38820d | 2022-10-04 09:25:26 -0400 | [diff] [blame] | 596 | fabric_sensitive octet_string<128> data = 1; |
Song GUO | cd08938 | 2022-03-17 13:31:51 +0800 | [diff] [blame] | 597 | fabric_idx fabricIndex = 254; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 598 | } |
| 599 | |
Andrei Litvin | d38820d | 2022-10-04 09:25:26 -0400 | [diff] [blame] | 600 | fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 { |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 601 | nullable node_id adminNodeID = 1; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 602 | nullable int16u adminPasscodeID = 2; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 603 | ChangeTypeEnum changeType = 3; |
Boris Zbarsky | 28cb6cc | 2023-01-04 04:46:21 -0500 | [diff] [blame] | 604 | nullable AccessControlEntryStruct latestValue = 4; |
Boris Zbarsky | a7ad1d8 | 2022-07-26 14:52:04 -0400 | [diff] [blame] | 605 | fabric_idx fabricIndex = 254; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 606 | } |
| 607 | |
Andrei Litvin | d38820d | 2022-10-04 09:25:26 -0400 | [diff] [blame] | 608 | fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 { |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 609 | nullable node_id adminNodeID = 1; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 610 | nullable int16u adminPasscodeID = 2; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 611 | ChangeTypeEnum changeType = 3; |
Boris Zbarsky | 28cb6cc | 2023-01-04 04:46:21 -0500 | [diff] [blame] | 612 | nullable AccessControlExtensionStruct latestValue = 4; |
Boris Zbarsky | a7ad1d8 | 2022-07-26 14:52:04 -0400 | [diff] [blame] | 613 | fabric_idx fabricIndex = 254; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 614 | } |
| 615 | |
Boris Zbarsky | 28cb6cc | 2023-01-04 04:46:21 -0500 | [diff] [blame] | 616 | attribute access(read: administer, write: administer) AccessControlEntryStruct acl[] = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 617 | attribute access(read: administer, write: administer) optional AccessControlExtensionStruct extension[] = 1; |
Tennessee Carmel-Veilleux | 184bda1 | 2022-04-13 10:52:31 -0400 | [diff] [blame] | 618 | readonly attribute int16u subjectsPerAccessControlEntry = 2; |
| 619 | readonly attribute int16u targetsPerAccessControlEntry = 3; |
| 620 | readonly attribute int16u accessControlEntriesPerFabric = 4; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 621 | readonly attribute command_id generatedCommandList[] = 65528; |
| 622 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 623 | readonly attribute event_id eventList[] = 65530; |
Andrei Litvin | 306e8a4 | 2022-04-07 05:42:07 -1000 | [diff] [blame] | 624 | readonly attribute attrib_id attributeList[] = 65531; |
tehampson | 2db812e | 2022-05-23 15:24:29 -0400 | [diff] [blame] | 625 | readonly attribute bitmap32 featureMap = 65532; |
Andrei Litvin | 306e8a4 | 2022-04-07 05:42:07 -1000 | [diff] [blame] | 626 | readonly attribute int16u clusterRevision = 65533; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 627 | } |
| 628 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 629 | /** This cluster provides attributes and events for determining basic information about Nodes, which supports both |
| 630 | Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, |
| 631 | which apply to the whole Node. Also allows setting user device information such as location. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 632 | cluster BasicInformation = 40 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 633 | revision 3; |
| 634 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 635 | enum ColorEnum : enum8 { |
Boris Zbarsky | ab59adc | 2023-05-02 10:45:44 -0400 | [diff] [blame] | 636 | kBlack = 0; |
| 637 | kNavy = 1; |
| 638 | kGreen = 2; |
| 639 | kTeal = 3; |
| 640 | kMaroon = 4; |
| 641 | kPurple = 5; |
| 642 | kOlive = 6; |
| 643 | kGray = 7; |
| 644 | kBlue = 8; |
| 645 | kLime = 9; |
| 646 | kAqua = 10; |
| 647 | kRed = 11; |
| 648 | kFuchsia = 12; |
| 649 | kYellow = 13; |
| 650 | kWhite = 14; |
| 651 | kNickel = 15; |
| 652 | kChrome = 16; |
| 653 | kBrass = 17; |
| 654 | kCopper = 18; |
| 655 | kSilver = 19; |
| 656 | kGold = 20; |
| 657 | } |
| 658 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 659 | enum ProductFinishEnum : enum8 { |
Boris Zbarsky | ab59adc | 2023-05-02 10:45:44 -0400 | [diff] [blame] | 660 | kOther = 0; |
| 661 | kMatte = 1; |
| 662 | kSatin = 2; |
| 663 | kPolished = 3; |
| 664 | kRugged = 4; |
| 665 | kFabric = 5; |
| 666 | } |
| 667 | |
Tennessee Carmel-Veilleux | 184bda1 | 2022-04-13 10:52:31 -0400 | [diff] [blame] | 668 | struct CapabilityMinimaStruct { |
| 669 | int16u caseSessionsPerFabric = 0; |
| 670 | int16u subscriptionsPerFabric = 1; |
| 671 | } |
| 672 | |
Boris Zbarsky | ab59adc | 2023-05-02 10:45:44 -0400 | [diff] [blame] | 673 | struct ProductAppearanceStruct { |
| 674 | ProductFinishEnum finish = 0; |
| 675 | nullable ColorEnum primaryColor = 1; |
| 676 | } |
| 677 | |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 678 | critical event StartUp = 0 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 679 | int32u softwareVersion = 0; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 680 | } |
| 681 | |
| 682 | critical event ShutDown = 1 { |
| 683 | } |
| 684 | |
| 685 | info event Leave = 2 { |
Boris Zbarsky | 5022eb1 | 2022-07-28 10:53:33 -0400 | [diff] [blame] | 686 | fabric_idx fabricIndex = 0; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 687 | } |
| 688 | |
| 689 | info event ReachableChanged = 3 { |
| 690 | boolean reachableNewValue = 0; |
| 691 | } |
| 692 | |
Leonard Zgrablic | 9f16e9a | 2022-02-01 12:43:34 -0500 | [diff] [blame] | 693 | readonly attribute int16u dataModelRevision = 0; |
Andrei Litvin | 2f1301b | 2022-01-20 22:16:11 -0500 | [diff] [blame] | 694 | readonly attribute char_string<32> vendorName = 1; |
Andrei Litvin | d5e7431 | 2022-01-19 17:06:40 -0500 | [diff] [blame] | 695 | readonly attribute vendor_id vendorID = 2; |
Andrei Litvin | 2f1301b | 2022-01-20 22:16:11 -0500 | [diff] [blame] | 696 | readonly attribute char_string<32> productName = 3; |
Andrei Litvin | d5e7431 | 2022-01-19 17:06:40 -0500 | [diff] [blame] | 697 | readonly attribute int16u productID = 4; |
Andrei Litvin | ecc92db | 2022-04-13 11:11:56 -1000 | [diff] [blame] | 698 | attribute access(write: manage) char_string<32> nodeLabel = 5; |
| 699 | attribute access(write: administer) char_string<2> location = 6; |
Andrei Litvin | d5e7431 | 2022-01-19 17:06:40 -0500 | [diff] [blame] | 700 | readonly attribute int16u hardwareVersion = 7; |
Andrei Litvin | 2f1301b | 2022-01-20 22:16:11 -0500 | [diff] [blame] | 701 | readonly attribute char_string<64> hardwareVersionString = 8; |
Andrei Litvin | d5e7431 | 2022-01-19 17:06:40 -0500 | [diff] [blame] | 702 | readonly attribute int32u softwareVersion = 9; |
Andrei Litvin | 2f1301b | 2022-01-20 22:16:11 -0500 | [diff] [blame] | 703 | readonly attribute char_string<64> softwareVersionString = 10; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 704 | readonly attribute optional char_string<16> manufacturingDate = 11; |
| 705 | readonly attribute optional char_string<32> partNumber = 12; |
| 706 | readonly attribute optional long_char_string<256> productURL = 13; |
| 707 | readonly attribute optional char_string<64> productLabel = 14; |
| 708 | readonly attribute optional char_string<32> serialNumber = 15; |
| 709 | attribute access(write: manage) optional boolean localConfigDisabled = 16; |
| 710 | readonly attribute optional boolean reachable = 17; |
| 711 | readonly attribute optional char_string<32> uniqueID = 18; |
Tennessee Carmel-Veilleux | 184bda1 | 2022-04-13 10:52:31 -0400 | [diff] [blame] | 712 | readonly attribute CapabilityMinimaStruct capabilityMinima = 19; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 713 | readonly attribute optional ProductAppearanceStruct productAppearance = 20; |
Terence Hampson | 9969d44 | 2023-11-16 11:30:48 -0500 | [diff] [blame] | 714 | readonly attribute int32u specificationVersion = 21; |
| 715 | readonly attribute int16u maxPathsPerInvoke = 22; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 716 | readonly attribute command_id generatedCommandList[] = 65528; |
| 717 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 718 | readonly attribute event_id eventList[] = 65530; |
| 719 | readonly attribute attrib_id attributeList[] = 65531; |
tehampson | 2db812e | 2022-05-23 15:24:29 -0400 | [diff] [blame] | 720 | readonly attribute bitmap32 featureMap = 65532; |
Andrei Litvin | 306e8a4 | 2022-04-07 05:42:07 -1000 | [diff] [blame] | 721 | readonly attribute int16u clusterRevision = 65533; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 722 | |
| 723 | command MfgSpecificPing(): DefaultSuccess = 0; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 724 | } |
| 725 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 726 | /** Provides an interface for providing OTA software updates */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 727 | cluster OtaSoftwareUpdateProvider = 41 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 728 | revision 1; // NOTE: Default/not specifically set |
| 729 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 730 | enum ApplyUpdateActionEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 731 | kProceed = 0; |
| 732 | kAwaitNextAction = 1; |
| 733 | kDiscontinue = 2; |
| 734 | } |
| 735 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 736 | enum DownloadProtocolEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 737 | kBDXSynchronous = 0; |
| 738 | kBDXAsynchronous = 1; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 739 | kHTTPS = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 740 | kVendorSpecific = 3; |
| 741 | } |
| 742 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 743 | enum StatusEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 744 | kUpdateAvailable = 0; |
| 745 | kBusy = 1; |
| 746 | kNotAvailable = 2; |
| 747 | kDownloadProtocolNotSupported = 3; |
| 748 | } |
| 749 | |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 750 | readonly attribute command_id generatedCommandList[] = 65528; |
| 751 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 752 | readonly attribute event_id eventList[] = 65530; |
| 753 | readonly attribute attrib_id attributeList[] = 65531; |
| 754 | readonly attribute bitmap32 featureMap = 65532; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 755 | readonly attribute int16u clusterRevision = 65533; |
| 756 | |
| 757 | request struct QueryImageRequest { |
Boris Zbarsky | 458bbbf | 2023-01-03 13:11:18 -0500 | [diff] [blame] | 758 | vendor_id vendorID = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 759 | int16u productID = 1; |
| 760 | int32u softwareVersion = 2; |
Boris Zbarsky | 71317fa | 2023-10-11 15:56:01 -0400 | [diff] [blame] | 761 | DownloadProtocolEnum protocolsSupported[] = 3; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 762 | optional int16u hardwareVersion = 4; |
| 763 | optional char_string<2> location = 5; |
| 764 | optional boolean requestorCanConsent = 6; |
| 765 | optional octet_string<512> metadataForProvider = 7; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 766 | } |
| 767 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 768 | response struct QueryImageResponse = 1 { |
Boris Zbarsky | 71317fa | 2023-10-11 15:56:01 -0400 | [diff] [blame] | 769 | StatusEnum status = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 770 | optional int32u delayedActionTime = 1; |
| 771 | optional char_string<256> imageURI = 2; |
| 772 | optional int32u softwareVersion = 3; |
| 773 | optional char_string<64> softwareVersionString = 4; |
| 774 | optional octet_string<32> updateToken = 5; |
| 775 | optional boolean userConsentNeeded = 6; |
| 776 | optional octet_string<512> metadataForRequestor = 7; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 777 | } |
| 778 | |
Andrei Litvin | 040c65d | 2023-03-28 16:23:26 -0400 | [diff] [blame] | 779 | request struct ApplyUpdateRequestRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 780 | octet_string<32> updateToken = 0; |
| 781 | int32u newVersion = 1; |
Andrei Litvin | 040c65d | 2023-03-28 16:23:26 -0400 | [diff] [blame] | 782 | } |
| 783 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 784 | response struct ApplyUpdateResponse = 3 { |
Boris Zbarsky | 71317fa | 2023-10-11 15:56:01 -0400 | [diff] [blame] | 785 | ApplyUpdateActionEnum action = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 786 | int32u delayedActionTime = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 787 | } |
| 788 | |
Andrei Litvin | 040c65d | 2023-03-28 16:23:26 -0400 | [diff] [blame] | 789 | request struct NotifyUpdateAppliedRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 790 | octet_string<32> updateToken = 0; |
| 791 | int32u softwareVersion = 1; |
Andrei Litvin | 040c65d | 2023-03-28 16:23:26 -0400 | [diff] [blame] | 792 | } |
| 793 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 794 | /** Determine availability of a new Software Image */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 795 | command QueryImage(QueryImageRequest): QueryImageResponse = 0; |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 796 | /** Determine next action to take for a downloaded Software Image */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 797 | command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 798 | /** Notify OTA Provider that an update was applied */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 799 | command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; |
| 800 | } |
| 801 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 802 | /** Provides an interface for downloading and applying OTA software updates */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 803 | cluster OtaSoftwareUpdateRequestor = 42 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 804 | revision 1; // NOTE: Default/not specifically set |
| 805 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 806 | enum AnnouncementReasonEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 807 | kSimpleAnnouncement = 0; |
| 808 | kUpdateAvailable = 1; |
| 809 | kUrgentUpdateAvailable = 2; |
| 810 | } |
| 811 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 812 | enum ChangeReasonEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 813 | kUnknown = 0; |
| 814 | kSuccess = 1; |
| 815 | kFailure = 2; |
| 816 | kTimeOut = 3; |
| 817 | kDelayByProvider = 4; |
| 818 | } |
| 819 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 820 | enum UpdateStateEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 821 | kUnknown = 0; |
| 822 | kIdle = 1; |
| 823 | kQuerying = 2; |
| 824 | kDelayedOnQuery = 3; |
| 825 | kDownloading = 4; |
| 826 | kApplying = 5; |
| 827 | kDelayedOnApply = 6; |
| 828 | kRollingBack = 7; |
| 829 | kDelayedOnUserConsent = 8; |
| 830 | } |
| 831 | |
Andrei Litvin | d38820d | 2022-10-04 09:25:26 -0400 | [diff] [blame] | 832 | fabric_scoped struct ProviderLocation { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 833 | node_id providerNodeID = 1; |
| 834 | endpoint_no endpoint = 2; |
| 835 | fabric_idx fabricIndex = 254; |
| 836 | } |
| 837 | |
| 838 | info event StateTransition = 0 { |
Boris Zbarsky | 71317fa | 2023-10-11 15:56:01 -0400 | [diff] [blame] | 839 | UpdateStateEnum previousState = 0; |
| 840 | UpdateStateEnum newState = 1; |
| 841 | ChangeReasonEnum reason = 2; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 842 | nullable int32u targetSoftwareVersion = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 843 | } |
| 844 | |
| 845 | critical event VersionApplied = 1 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 846 | int32u softwareVersion = 0; |
| 847 | int16u productID = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 848 | } |
| 849 | |
| 850 | info event DownloadError = 2 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 851 | int32u softwareVersion = 0; |
| 852 | int64u bytesDownloaded = 1; |
| 853 | nullable int8u progressPercent = 2; |
| 854 | nullable int64s platformCode = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 855 | } |
| 856 | |
C Freeman | d5f6805 | 2023-12-07 13:17:36 -0500 | [diff] [blame] | 857 | attribute access(write: administer) ProviderLocation defaultOTAProviders[] = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 858 | readonly attribute boolean updatePossible = 1; |
Boris Zbarsky | 71317fa | 2023-10-11 15:56:01 -0400 | [diff] [blame] | 859 | readonly attribute UpdateStateEnum updateState = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 860 | readonly attribute nullable int8u updateStateProgress = 3; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 861 | readonly attribute command_id generatedCommandList[] = 65528; |
| 862 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 863 | readonly attribute event_id eventList[] = 65530; |
| 864 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 865 | readonly attribute bitmap32 featureMap = 65532; |
| 866 | readonly attribute int16u clusterRevision = 65533; |
| 867 | |
Boris Zbarsky | 458bbbf | 2023-01-03 13:11:18 -0500 | [diff] [blame] | 868 | request struct AnnounceOTAProviderRequest { |
| 869 | node_id providerNodeID = 0; |
| 870 | vendor_id vendorID = 1; |
Boris Zbarsky | 71317fa | 2023-10-11 15:56:01 -0400 | [diff] [blame] | 871 | AnnouncementReasonEnum announcementReason = 2; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 872 | optional octet_string<512> metadataForNode = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 873 | endpoint_no endpoint = 4; |
| 874 | } |
| 875 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 876 | /** Announce the presence of an OTA Provider */ |
Boris Zbarsky | 458bbbf | 2023-01-03 13:11:18 -0500 | [diff] [blame] | 877 | command AnnounceOTAProvider(AnnounceOTAProviderRequest): DefaultSuccess = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 878 | } |
| 879 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 880 | /** Nodes should be expected to be deployed to any and all regions of the world. These global regions |
| 881 | may have differing common languages, units of measurements, and numerical formatting |
| 882 | standards. As such, Nodes that visually or audibly convey information need a mechanism by which |
| 883 | they can be configured to use a user’s preferred language, units, etc */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 884 | cluster LocalizationConfiguration = 43 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 885 | revision 1; // NOTE: Default/not specifically set |
| 886 | |
Andrei Litvin | dd920f2 | 2023-10-30 10:14:57 -0400 | [diff] [blame] | 887 | attribute access(write: manage) char_string<35> activeLocale = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 888 | readonly attribute char_string supportedLocales[] = 1; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 889 | readonly attribute command_id generatedCommandList[] = 65528; |
| 890 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 891 | readonly attribute event_id eventList[] = 65530; |
| 892 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 893 | readonly attribute bitmap32 featureMap = 65532; |
| 894 | readonly attribute int16u clusterRevision = 65533; |
| 895 | } |
| 896 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 897 | /** Nodes should be expected to be deployed to any and all regions of the world. These global regions |
| 898 | may have differing preferences for how dates and times are conveyed. As such, Nodes that visually |
| 899 | or audibly convey time information need a mechanism by which they can be configured to use a |
| 900 | user’s preferred format. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 901 | cluster TimeFormatLocalization = 44 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 902 | revision 1; // NOTE: Default/not specifically set |
| 903 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 904 | enum CalendarTypeEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 905 | kBuddhist = 0; |
| 906 | kChinese = 1; |
| 907 | kCoptic = 2; |
| 908 | kEthiopian = 3; |
| 909 | kGregorian = 4; |
| 910 | kHebrew = 5; |
| 911 | kIndian = 6; |
| 912 | kIslamic = 7; |
| 913 | kJapanese = 8; |
| 914 | kKorean = 9; |
| 915 | kPersian = 10; |
| 916 | kTaiwanese = 11; |
Andrei Litvin | f03cc57 | 2023-12-07 11:34:59 -0500 | [diff] [blame] | 917 | kUseActiveLocale = 255; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 918 | } |
| 919 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 920 | enum HourFormatEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 921 | k12hr = 0; |
| 922 | k24hr = 1; |
Andrei Litvin | f03cc57 | 2023-12-07 11:34:59 -0500 | [diff] [blame] | 923 | kUseActiveLocale = 255; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 924 | } |
| 925 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 926 | bitmap Feature : bitmap32 { |
Andrei Litvin | 98e3bc6 | 2023-08-30 14:19:04 -0400 | [diff] [blame] | 927 | kCalendarFormat = 0x1; |
| 928 | } |
| 929 | |
Andrei Litvin | 4f53c34 | 2023-11-06 17:01:02 -0500 | [diff] [blame] | 930 | attribute access(write: manage) HourFormatEnum hourFormat = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 931 | attribute access(write: manage) optional CalendarTypeEnum activeCalendarType = 1; |
| 932 | readonly attribute optional CalendarTypeEnum supportedCalendarTypes[] = 2; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 933 | readonly attribute command_id generatedCommandList[] = 65528; |
| 934 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 935 | readonly attribute event_id eventList[] = 65530; |
| 936 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 937 | readonly attribute bitmap32 featureMap = 65532; |
| 938 | readonly attribute int16u clusterRevision = 65533; |
| 939 | } |
| 940 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 941 | /** This cluster is used to manage global aspects of the Commissioning flow. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 942 | cluster GeneralCommissioning = 48 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 943 | revision 1; // NOTE: Default/not specifically set |
| 944 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 945 | enum CommissioningErrorEnum : enum8 { |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 946 | kOK = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 947 | kValueOutsideRange = 1; |
| 948 | kInvalidAuthentication = 2; |
| 949 | kNoFailSafe = 3; |
| 950 | kBusyWithOtherAdmin = 4; |
| 951 | } |
| 952 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 953 | enum RegulatoryLocationTypeEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 954 | kIndoor = 0; |
| 955 | kOutdoor = 1; |
| 956 | kIndoorOutdoor = 2; |
| 957 | } |
| 958 | |
| 959 | struct BasicCommissioningInfo { |
| 960 | int16u failSafeExpiryLengthSeconds = 0; |
| 961 | int16u maxCumulativeFailsafeSeconds = 1; |
| 962 | } |
| 963 | |
| 964 | attribute access(write: administer) int64u breadcrumb = 0; |
| 965 | readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; |
Boris Zbarsky | 9876878 | 2023-05-23 12:01:23 -0400 | [diff] [blame] | 966 | readonly attribute RegulatoryLocationTypeEnum regulatoryConfig = 2; |
| 967 | readonly attribute RegulatoryLocationTypeEnum locationCapability = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 968 | readonly attribute boolean supportsConcurrentConnection = 4; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 969 | readonly attribute command_id generatedCommandList[] = 65528; |
| 970 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 971 | readonly attribute event_id eventList[] = 65530; |
| 972 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 973 | readonly attribute bitmap32 featureMap = 65532; |
| 974 | readonly attribute int16u clusterRevision = 65533; |
| 975 | |
| 976 | request struct ArmFailSafeRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 977 | int16u expiryLengthSeconds = 0; |
| 978 | int64u breadcrumb = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 979 | } |
| 980 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 981 | response struct ArmFailSafeResponse = 1 { |
| 982 | CommissioningErrorEnum errorCode = 0; |
| 983 | char_string<128> debugText = 1; |
| 984 | } |
| 985 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 986 | request struct SetRegulatoryConfigRequest { |
Boris Zbarsky | 9876878 | 2023-05-23 12:01:23 -0400 | [diff] [blame] | 987 | RegulatoryLocationTypeEnum newRegulatoryConfig = 0; |
Andrei Litvin | d47aeb4 | 2023-11-15 06:16:41 -0500 | [diff] [blame] | 988 | char_string<2> countryCode = 1; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 989 | int64u breadcrumb = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 990 | } |
| 991 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 992 | response struct SetRegulatoryConfigResponse = 3 { |
Boris Zbarsky | 9876878 | 2023-05-23 12:01:23 -0400 | [diff] [blame] | 993 | CommissioningErrorEnum errorCode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 994 | char_string debugText = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 995 | } |
| 996 | |
| 997 | response struct CommissioningCompleteResponse = 5 { |
Boris Zbarsky | 9876878 | 2023-05-23 12:01:23 -0400 | [diff] [blame] | 998 | CommissioningErrorEnum errorCode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 999 | char_string debugText = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1000 | } |
| 1001 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1002 | /** Arm the persistent fail-safe timer with an expiry time of now + ExpiryLengthSeconds using device clock */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1003 | command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1004 | /** Set the regulatory configuration to be used during commissioning */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1005 | command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1006 | /** Signals the Server that the Client has successfully completed all steps of Commissioning/Recofiguration needed during fail-safe period. */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 1007 | fabric command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1008 | } |
| 1009 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1010 | /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1011 | cluster NetworkCommissioning = 49 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1012 | revision 1; // NOTE: Default/not specifically set |
| 1013 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1014 | enum NetworkCommissioningStatusEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1015 | kSuccess = 0; |
| 1016 | kOutOfRange = 1; |
| 1017 | kBoundsExceeded = 2; |
| 1018 | kNetworkIDNotFound = 3; |
| 1019 | kDuplicateNetworkID = 4; |
| 1020 | kNetworkNotFound = 5; |
| 1021 | kRegulatoryError = 6; |
| 1022 | kAuthFailure = 7; |
| 1023 | kUnsupportedSecurity = 8; |
| 1024 | kOtherConnectionFailure = 9; |
| 1025 | kIPV6Failed = 10; |
| 1026 | kIPBindFailed = 11; |
| 1027 | kUnknownError = 12; |
| 1028 | } |
| 1029 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1030 | enum WiFiBandEnum : enum8 { |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 1031 | k2G4 = 0; |
| 1032 | k3G65 = 1; |
| 1033 | k5G = 2; |
| 1034 | k6G = 3; |
| 1035 | k60G = 4; |
| 1036 | k1G = 5; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1037 | } |
| 1038 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1039 | bitmap Feature : bitmap32 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1040 | kWiFiNetworkInterface = 0x1; |
| 1041 | kThreadNetworkInterface = 0x2; |
| 1042 | kEthernetNetworkInterface = 0x4; |
Karsten Sperling | 261b03f | 2023-11-09 06:45:38 +1300 | [diff] [blame] | 1043 | kPerDeviceCredentials = 0x8; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1044 | } |
| 1045 | |
Tennessee Carmel-Veilleux | 7879111 | 2023-10-24 13:39:10 -0400 | [diff] [blame] | 1046 | bitmap ThreadCapabilitiesBitmap : bitmap16 { |
| 1047 | kIsBorderRouterCapable = 0x1; |
| 1048 | kIsRouterCapable = 0x2; |
| 1049 | kIsSleepyEndDeviceCapable = 0x4; |
| 1050 | kIsFullThreadDevice = 0x8; |
| 1051 | kIsSynchronizedSleepyEndDeviceCapable = 0x10; |
| 1052 | } |
| 1053 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1054 | bitmap WiFiSecurityBitmap : bitmap8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1055 | kUnencrypted = 0x1; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 1056 | kWEP = 0x2; |
| 1057 | kWPAPersonal = 0x4; |
| 1058 | kWPA2Personal = 0x8; |
| 1059 | kWPA3Personal = 0x10; |
Karsten Sperling | 261b03f | 2023-11-09 06:45:38 +1300 | [diff] [blame] | 1060 | kWPA3MatterPDC = 0x20; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1061 | } |
| 1062 | |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 1063 | struct NetworkInfoStruct { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1064 | octet_string<32> networkID = 0; |
| 1065 | boolean connected = 1; |
Karsten Sperling | 261b03f | 2023-11-09 06:45:38 +1300 | [diff] [blame] | 1066 | optional nullable octet_string<20> networkIdentifier = 2; |
| 1067 | optional nullable octet_string<20> clientIdentifier = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1068 | } |
| 1069 | |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 1070 | struct ThreadInterfaceScanResultStruct { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1071 | int16u panId = 0; |
| 1072 | int64u extendedPanId = 1; |
| 1073 | char_string<16> networkName = 2; |
| 1074 | int16u channel = 3; |
| 1075 | int8u version = 4; |
| 1076 | octet_string<8> extendedAddress = 5; |
| 1077 | int8s rssi = 6; |
| 1078 | int8u lqi = 7; |
| 1079 | } |
| 1080 | |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 1081 | struct WiFiInterfaceScanResultStruct { |
| 1082 | WiFiSecurityBitmap security = 0; |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 1083 | octet_string<32> ssid = 1; |
| 1084 | octet_string<6> bssid = 2; |
| 1085 | int16u channel = 3; |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 1086 | WiFiBandEnum wiFiBand = 4; |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 1087 | int8s rssi = 5; |
| 1088 | } |
| 1089 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1090 | readonly attribute access(read: administer) int8u maxNetworks = 0; |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 1091 | readonly attribute access(read: administer) NetworkInfoStruct networks[] = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1092 | readonly attribute optional int8u scanMaxTimeSeconds = 2; |
| 1093 | readonly attribute optional int8u connectMaxTimeSeconds = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1094 | attribute access(write: administer) boolean interfaceEnabled = 4; |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 1095 | readonly attribute access(read: administer) nullable NetworkCommissioningStatusEnum lastNetworkingStatus = 5; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1096 | readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; |
| 1097 | readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1098 | readonly attribute optional WiFiBandEnum supportedWiFiBands[] = 8; |
| 1099 | readonly attribute optional ThreadCapabilitiesBitmap supportedThreadFeatures = 9; |
| 1100 | readonly attribute optional int16u threadVersion = 10; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1101 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1102 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1103 | readonly attribute event_id eventList[] = 65530; |
| 1104 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1105 | readonly attribute bitmap32 featureMap = 65532; |
| 1106 | readonly attribute int16u clusterRevision = 65533; |
| 1107 | |
| 1108 | request struct ScanNetworksRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1109 | optional nullable octet_string<32> ssid = 0; |
| 1110 | optional int64u breadcrumb = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1111 | } |
| 1112 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1113 | response struct ScanNetworksResponse = 1 { |
| 1114 | NetworkCommissioningStatusEnum networkingStatus = 0; |
| 1115 | optional char_string debugText = 1; |
| 1116 | optional WiFiInterfaceScanResultStruct wiFiScanResults[] = 2; |
| 1117 | optional ThreadInterfaceScanResultStruct threadScanResults[] = 3; |
| 1118 | } |
| 1119 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1120 | request struct AddOrUpdateWiFiNetworkRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1121 | octet_string<32> ssid = 0; |
| 1122 | octet_string<64> credentials = 1; |
| 1123 | optional int64u breadcrumb = 2; |
Karsten Sperling | 261b03f | 2023-11-09 06:45:38 +1300 | [diff] [blame] | 1124 | optional octet_string<140> networkIdentity = 3; |
| 1125 | optional octet_string<20> clientIdentifier = 4; |
| 1126 | optional octet_string<32> possessionNonce = 5; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1127 | } |
| 1128 | |
| 1129 | request struct AddOrUpdateThreadNetworkRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1130 | octet_string<254> operationalDataset = 0; |
| 1131 | optional int64u breadcrumb = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1132 | } |
| 1133 | |
| 1134 | request struct RemoveNetworkRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1135 | octet_string<32> networkID = 0; |
| 1136 | optional int64u breadcrumb = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1137 | } |
| 1138 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1139 | response struct NetworkConfigResponse = 5 { |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 1140 | NetworkCommissioningStatusEnum networkingStatus = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1141 | optional char_string<512> debugText = 1; |
| 1142 | optional int8u networkIndex = 2; |
Karsten Sperling | 261b03f | 2023-11-09 06:45:38 +1300 | [diff] [blame] | 1143 | optional octet_string<140> clientIdentity = 3; |
| 1144 | optional octet_string<64> possessionSignature = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1145 | } |
| 1146 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1147 | request struct ConnectNetworkRequest { |
| 1148 | octet_string<32> networkID = 0; |
| 1149 | optional int64u breadcrumb = 1; |
| 1150 | } |
| 1151 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1152 | response struct ConnectNetworkResponse = 7 { |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 1153 | NetworkCommissioningStatusEnum networkingStatus = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1154 | optional char_string debugText = 1; |
| 1155 | nullable int32s errorValue = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1156 | } |
| 1157 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1158 | request struct ReorderNetworkRequest { |
| 1159 | octet_string<32> networkID = 0; |
| 1160 | int8u networkIndex = 1; |
| 1161 | optional int64u breadcrumb = 2; |
| 1162 | } |
| 1163 | |
| 1164 | request struct QueryIdentityRequest { |
Boris Zbarsky | d823ea2 | 2023-11-30 15:08:58 -0500 | [diff] [blame] | 1165 | octet_string<20> keyIdentifier = 0; |
| 1166 | optional octet_string<32> possessionNonce = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1167 | } |
| 1168 | |
| 1169 | response struct QueryIdentityResponse = 10 { |
Boris Zbarsky | d823ea2 | 2023-11-30 15:08:58 -0500 | [diff] [blame] | 1170 | octet_string<140> identity = 0; |
| 1171 | optional octet_string<64> possessionSignature = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1172 | } |
| 1173 | |
| 1174 | /** Detemine the set of networks the device sees as available. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1175 | command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1176 | /** Add or update the credentials for a given Wi-Fi network. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1177 | command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1178 | /** Add or update the credentials for a given Thread network. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1179 | command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1180 | /** Remove the definition of a given network (including its credentials). */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1181 | command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1182 | /** Connect to the specified network, using previously-defined credentials. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1183 | command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1184 | /** Modify the order in which networks will be presented in the Networks attribute. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1185 | command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1186 | /** Retrieve details about and optionally proof of possession of a network client identity. */ |
| 1187 | command access(invoke: administer) QueryIdentity(QueryIdentityRequest): QueryIdentityResponse = 9; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1188 | } |
| 1189 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1190 | /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1191 | cluster DiagnosticLogs = 50 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1192 | revision 1; // NOTE: Default/not specifically set |
| 1193 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1194 | enum IntentEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1195 | kEndUserSupport = 0; |
| 1196 | kNetworkDiag = 1; |
| 1197 | kCrashLogs = 2; |
| 1198 | } |
| 1199 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1200 | enum StatusEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1201 | kSuccess = 0; |
| 1202 | kExhausted = 1; |
| 1203 | kNoLogs = 2; |
| 1204 | kBusy = 3; |
| 1205 | kDenied = 4; |
| 1206 | } |
| 1207 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1208 | enum TransferProtocolEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1209 | kResponsePayload = 0; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 1210 | kBDX = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1211 | } |
| 1212 | |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1213 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1214 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1215 | readonly attribute event_id eventList[] = 65530; |
| 1216 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1217 | readonly attribute bitmap32 featureMap = 65532; |
| 1218 | readonly attribute int16u clusterRevision = 65533; |
| 1219 | |
| 1220 | request struct RetrieveLogsRequestRequest { |
Boris Zbarsky | 60200ca | 2023-02-15 09:38:28 -0500 | [diff] [blame] | 1221 | IntentEnum intent = 0; |
| 1222 | TransferProtocolEnum requestedProtocol = 1; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1223 | optional char_string<32> transferFileDesignator = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1224 | } |
| 1225 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1226 | response struct RetrieveLogsResponse = 1 { |
| 1227 | StatusEnum status = 0; |
Boris Zbarsky | d823ea2 | 2023-11-30 15:08:58 -0500 | [diff] [blame] | 1228 | long_octet_string logContent = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1229 | optional epoch_us UTCTimeStamp = 2; |
| 1230 | optional systime_us timeSinceBoot = 3; |
| 1231 | } |
| 1232 | |
| 1233 | /** Retrieving diagnostic logs from a Node */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1234 | command RetrieveLogsRequest(RetrieveLogsRequestRequest): RetrieveLogsResponse = 0; |
| 1235 | } |
| 1236 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1237 | /** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1238 | cluster GeneralDiagnostics = 51 { |
C Freeman | 2980e51 | 2023-12-08 22:10:32 -0500 | [diff] [blame] | 1239 | revision 2; |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1240 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1241 | enum BootReasonEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1242 | kUnspecified = 0; |
| 1243 | kPowerOnReboot = 1; |
| 1244 | kBrownOutReset = 2; |
| 1245 | kSoftwareWatchdogReset = 3; |
| 1246 | kHardwareWatchdogReset = 4; |
| 1247 | kSoftwareUpdateCompleted = 5; |
| 1248 | kSoftwareReset = 6; |
| 1249 | } |
| 1250 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1251 | enum HardwareFaultEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1252 | kUnspecified = 0; |
| 1253 | kRadio = 1; |
| 1254 | kSensor = 2; |
| 1255 | kResettableOverTemp = 3; |
| 1256 | kNonResettableOverTemp = 4; |
| 1257 | kPowerSource = 5; |
| 1258 | kVisualDisplayFault = 6; |
| 1259 | kAudioOutputFault = 7; |
| 1260 | kUserInterfaceFault = 8; |
| 1261 | kNonVolatileMemoryError = 9; |
| 1262 | kTamperDetected = 10; |
| 1263 | } |
| 1264 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1265 | enum InterfaceTypeEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1266 | kUnspecified = 0; |
| 1267 | kWiFi = 1; |
| 1268 | kEthernet = 2; |
| 1269 | kCellular = 3; |
| 1270 | kThread = 4; |
| 1271 | } |
| 1272 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1273 | enum NetworkFaultEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1274 | kUnspecified = 0; |
| 1275 | kHardwareFailure = 1; |
| 1276 | kNetworkJammed = 2; |
| 1277 | kConnectionFailed = 3; |
| 1278 | } |
| 1279 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1280 | enum RadioFaultEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1281 | kUnspecified = 0; |
| 1282 | kWiFiFault = 1; |
| 1283 | kCellularFault = 2; |
| 1284 | kThreadFault = 3; |
| 1285 | kNFCFault = 4; |
| 1286 | kBLEFault = 5; |
| 1287 | kEthernetFault = 6; |
| 1288 | } |
| 1289 | |
Boris Zbarsky | dd6ae93 | 2023-01-09 12:08:17 -0500 | [diff] [blame] | 1290 | struct NetworkInterface { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1291 | char_string<32> name = 0; |
| 1292 | boolean isOperational = 1; |
| 1293 | nullable boolean offPremiseServicesReachableIPv4 = 2; |
| 1294 | nullable boolean offPremiseServicesReachableIPv6 = 3; |
| 1295 | octet_string<8> hardwareAddress = 4; |
| 1296 | octet_string IPv4Addresses[] = 5; |
| 1297 | octet_string IPv6Addresses[] = 6; |
Boris Zbarsky | 1b226d4 | 2023-01-18 23:43:09 -0500 | [diff] [blame] | 1298 | InterfaceTypeEnum type = 7; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1299 | } |
| 1300 | |
| 1301 | critical event HardwareFaultChange = 0 { |
Boris Zbarsky | 1b226d4 | 2023-01-18 23:43:09 -0500 | [diff] [blame] | 1302 | HardwareFaultEnum current[] = 0; |
| 1303 | HardwareFaultEnum previous[] = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1304 | } |
| 1305 | |
| 1306 | critical event RadioFaultChange = 1 { |
Boris Zbarsky | 1b226d4 | 2023-01-18 23:43:09 -0500 | [diff] [blame] | 1307 | RadioFaultEnum current[] = 0; |
| 1308 | RadioFaultEnum previous[] = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1309 | } |
| 1310 | |
| 1311 | critical event NetworkFaultChange = 2 { |
Boris Zbarsky | 1b226d4 | 2023-01-18 23:43:09 -0500 | [diff] [blame] | 1312 | NetworkFaultEnum current[] = 0; |
| 1313 | NetworkFaultEnum previous[] = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1314 | } |
| 1315 | |
| 1316 | critical event BootReason = 3 { |
Boris Zbarsky | dd6ae93 | 2023-01-09 12:08:17 -0500 | [diff] [blame] | 1317 | BootReasonEnum bootReason = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1318 | } |
| 1319 | |
Boris Zbarsky | dd6ae93 | 2023-01-09 12:08:17 -0500 | [diff] [blame] | 1320 | readonly attribute NetworkInterface networkInterfaces[] = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1321 | readonly attribute int16u rebootCount = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1322 | readonly attribute optional int64u upTime = 2; |
| 1323 | readonly attribute optional int32u totalOperationalHours = 3; |
| 1324 | readonly attribute optional BootReasonEnum bootReason = 4; |
| 1325 | readonly attribute optional HardwareFaultEnum activeHardwareFaults[] = 5; |
| 1326 | readonly attribute optional RadioFaultEnum activeRadioFaults[] = 6; |
| 1327 | readonly attribute optional NetworkFaultEnum activeNetworkFaults[] = 7; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1328 | readonly attribute boolean testEventTriggersEnabled = 8; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1329 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1330 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1331 | readonly attribute event_id eventList[] = 65530; |
| 1332 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1333 | readonly attribute bitmap32 featureMap = 65532; |
| 1334 | readonly attribute int16u clusterRevision = 65533; |
| 1335 | |
| 1336 | request struct TestEventTriggerRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1337 | octet_string<16> enableKey = 0; |
| 1338 | int64u eventTrigger = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1339 | } |
| 1340 | |
Tennessee Carmel-Veilleux | d165f62 | 2023-10-31 10:50:04 -0400 | [diff] [blame] | 1341 | response struct TimeSnapshotResponse = 2 { |
Tennessee Carmel-Veilleux | 1f3bcbc | 2023-12-14 16:52:18 -0500 | [diff] [blame] | 1342 | systime_ms systemTimeMs = 0; |
| 1343 | nullable posix_ms posixTimeMs = 1; |
Tennessee Carmel-Veilleux | d165f62 | 2023-10-31 10:50:04 -0400 | [diff] [blame] | 1344 | } |
| 1345 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1346 | /** Provide a means for certification tests to trigger some test-plan-specific events */ |
Terence Hampson | 661cb82 | 2022-07-27 19:31:29 -0400 | [diff] [blame] | 1347 | command access(invoke: manage) TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1348 | /** Take a snapshot of system time and epoch time. */ |
Tennessee Carmel-Veilleux | d165f62 | 2023-10-31 10:50:04 -0400 | [diff] [blame] | 1349 | command TimeSnapshot(): TimeSnapshotResponse = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1350 | } |
| 1351 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1352 | /** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1353 | cluster SoftwareDiagnostics = 52 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1354 | revision 1; // NOTE: Default/not specifically set |
| 1355 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1356 | bitmap Feature : bitmap32 { |
Andrei Litvin | 89671e8 | 2023-10-29 21:27:57 -0400 | [diff] [blame] | 1357 | kWatermarks = 0x1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1358 | } |
| 1359 | |
Boris Zbarsky | af7b393 | 2023-01-06 12:07:58 -0500 | [diff] [blame] | 1360 | struct ThreadMetricsStruct { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1361 | int64u id = 0; |
| 1362 | optional char_string<8> name = 1; |
| 1363 | optional int32u stackFreeCurrent = 2; |
| 1364 | optional int32u stackFreeMinimum = 3; |
| 1365 | optional int32u stackSize = 4; |
| 1366 | } |
| 1367 | |
| 1368 | info event SoftwareFault = 0 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1369 | int64u id = 0; |
| 1370 | optional char_string name = 1; |
| 1371 | optional octet_string faultRecording = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1372 | } |
| 1373 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1374 | readonly attribute optional ThreadMetricsStruct threadMetrics[] = 0; |
| 1375 | readonly attribute optional int64u currentHeapFree = 1; |
| 1376 | readonly attribute optional int64u currentHeapUsed = 2; |
| 1377 | readonly attribute optional int64u currentHeapHighWatermark = 3; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1378 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1379 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1380 | readonly attribute event_id eventList[] = 65530; |
| 1381 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1382 | readonly attribute bitmap32 featureMap = 65532; |
| 1383 | readonly attribute int16u clusterRevision = 65533; |
| 1384 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1385 | /** Reception of this command SHALL reset the values: The StackFreeMinimum field of the ThreadMetrics attribute, CurrentHeapHighWaterMark attribute. */ |
Andrei Litvin | 89671e8 | 2023-10-29 21:27:57 -0400 | [diff] [blame] | 1386 | command access(invoke: manage) ResetWatermarks(): DefaultSuccess = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1387 | } |
| 1388 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1389 | /** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1390 | cluster ThreadNetworkDiagnostics = 53 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1391 | revision 1; // NOTE: Default/not specifically set |
| 1392 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1393 | enum ConnectionStatusEnum : enum8 { |
Boris Zbarsky | 6395db6 | 2023-01-06 12:08:22 -0500 | [diff] [blame] | 1394 | kConnected = 0; |
| 1395 | kNotConnected = 1; |
| 1396 | } |
| 1397 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1398 | enum NetworkFaultEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1399 | kUnspecified = 0; |
| 1400 | kLinkDown = 1; |
| 1401 | kHardwareFailure = 2; |
| 1402 | kNetworkJammed = 3; |
| 1403 | } |
| 1404 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1405 | enum RoutingRoleEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1406 | kUnspecified = 0; |
| 1407 | kUnassigned = 1; |
| 1408 | kSleepyEndDevice = 2; |
| 1409 | kEndDevice = 3; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 1410 | kREED = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1411 | kRouter = 5; |
| 1412 | kLeader = 6; |
| 1413 | } |
| 1414 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1415 | bitmap Feature : bitmap32 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1416 | kPacketCounts = 0x1; |
| 1417 | kErrorCounts = 0x2; |
| 1418 | kMLECounts = 0x4; |
| 1419 | kMACCounts = 0x8; |
| 1420 | } |
| 1421 | |
Boris Zbarsky | 5a5d048 | 2023-05-30 08:49:49 -0400 | [diff] [blame] | 1422 | struct NeighborTableStruct { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1423 | int64u extAddress = 0; |
| 1424 | int32u age = 1; |
| 1425 | int16u rloc16 = 2; |
| 1426 | int32u linkFrameCounter = 3; |
| 1427 | int32u mleFrameCounter = 4; |
| 1428 | int8u lqi = 5; |
| 1429 | nullable int8s averageRssi = 6; |
| 1430 | nullable int8s lastRssi = 7; |
| 1431 | int8u frameErrorRate = 8; |
| 1432 | int8u messageErrorRate = 9; |
| 1433 | boolean rxOnWhenIdle = 10; |
| 1434 | boolean fullThreadDevice = 11; |
| 1435 | boolean fullNetworkData = 12; |
| 1436 | boolean isChild = 13; |
| 1437 | } |
| 1438 | |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 1439 | struct OperationalDatasetComponents { |
| 1440 | boolean activeTimestampPresent = 0; |
| 1441 | boolean pendingTimestampPresent = 1; |
| 1442 | boolean masterKeyPresent = 2; |
| 1443 | boolean networkNamePresent = 3; |
| 1444 | boolean extendedPanIdPresent = 4; |
| 1445 | boolean meshLocalPrefixPresent = 5; |
| 1446 | boolean delayPresent = 6; |
| 1447 | boolean panIdPresent = 7; |
| 1448 | boolean channelPresent = 8; |
| 1449 | boolean pskcPresent = 9; |
| 1450 | boolean securityPolicyPresent = 10; |
| 1451 | boolean channelMaskPresent = 11; |
| 1452 | } |
| 1453 | |
Boris Zbarsky | 5a5d048 | 2023-05-30 08:49:49 -0400 | [diff] [blame] | 1454 | struct RouteTableStruct { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1455 | int64u extAddress = 0; |
| 1456 | int16u rloc16 = 1; |
| 1457 | int8u routerId = 2; |
| 1458 | int8u nextHop = 3; |
| 1459 | int8u pathCost = 4; |
| 1460 | int8u LQIIn = 5; |
| 1461 | int8u LQIOut = 6; |
| 1462 | int8u age = 7; |
| 1463 | boolean allocated = 8; |
| 1464 | boolean linkEstablished = 9; |
| 1465 | } |
| 1466 | |
| 1467 | struct SecurityPolicy { |
| 1468 | int16u rotationTime = 0; |
Boris Zbarsky | 6395db6 | 2023-01-06 12:08:22 -0500 | [diff] [blame] | 1469 | int16u flags = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1470 | } |
| 1471 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1472 | info event ConnectionStatus = 0 { |
Boris Zbarsky | 6395db6 | 2023-01-06 12:08:22 -0500 | [diff] [blame] | 1473 | ConnectionStatusEnum connectionStatus = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1474 | } |
| 1475 | |
Yufeng Wang | 9e873d0 | 2022-08-01 17:51:27 -0700 | [diff] [blame] | 1476 | info event NetworkFaultChange = 1 { |
Boris Zbarsky | 5a5d048 | 2023-05-30 08:49:49 -0400 | [diff] [blame] | 1477 | NetworkFaultEnum current[] = 0; |
| 1478 | NetworkFaultEnum previous[] = 1; |
Yufeng Wang | 9e873d0 | 2022-08-01 17:51:27 -0700 | [diff] [blame] | 1479 | } |
| 1480 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1481 | readonly attribute nullable int16u channel = 0; |
Boris Zbarsky | 5a5d048 | 2023-05-30 08:49:49 -0400 | [diff] [blame] | 1482 | readonly attribute nullable RoutingRoleEnum routingRole = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1483 | readonly attribute nullable char_string<16> networkName = 2; |
| 1484 | readonly attribute nullable int16u panId = 3; |
| 1485 | readonly attribute nullable int64u extendedPanId = 4; |
| 1486 | readonly attribute nullable octet_string<17> meshLocalPrefix = 5; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1487 | readonly attribute optional int64u overrunCount = 6; |
Boris Zbarsky | 5a5d048 | 2023-05-30 08:49:49 -0400 | [diff] [blame] | 1488 | readonly attribute NeighborTableStruct neighborTable[] = 7; |
| 1489 | readonly attribute RouteTableStruct routeTable[] = 8; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1490 | readonly attribute nullable int32u partitionId = 9; |
Andrei Litvin | 94a6f93 | 2023-11-02 15:07:36 -0400 | [diff] [blame] | 1491 | readonly attribute nullable int16u weighting = 10; |
| 1492 | readonly attribute nullable int16u dataVersion = 11; |
| 1493 | readonly attribute nullable int16u stableDataVersion = 12; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1494 | readonly attribute nullable int8u leaderRouterId = 13; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1495 | readonly attribute optional int16u detachedRoleCount = 14; |
| 1496 | readonly attribute optional int16u childRoleCount = 15; |
| 1497 | readonly attribute optional int16u routerRoleCount = 16; |
| 1498 | readonly attribute optional int16u leaderRoleCount = 17; |
| 1499 | readonly attribute optional int16u attachAttemptCount = 18; |
| 1500 | readonly attribute optional int16u partitionIdChangeCount = 19; |
| 1501 | readonly attribute optional int16u betterPartitionAttachAttemptCount = 20; |
| 1502 | readonly attribute optional int16u parentChangeCount = 21; |
| 1503 | readonly attribute optional int32u txTotalCount = 22; |
| 1504 | readonly attribute optional int32u txUnicastCount = 23; |
| 1505 | readonly attribute optional int32u txBroadcastCount = 24; |
| 1506 | readonly attribute optional int32u txAckRequestedCount = 25; |
| 1507 | readonly attribute optional int32u txAckedCount = 26; |
| 1508 | readonly attribute optional int32u txNoAckRequestedCount = 27; |
| 1509 | readonly attribute optional int32u txDataCount = 28; |
| 1510 | readonly attribute optional int32u txDataPollCount = 29; |
| 1511 | readonly attribute optional int32u txBeaconCount = 30; |
| 1512 | readonly attribute optional int32u txBeaconRequestCount = 31; |
| 1513 | readonly attribute optional int32u txOtherCount = 32; |
| 1514 | readonly attribute optional int32u txRetryCount = 33; |
| 1515 | readonly attribute optional int32u txDirectMaxRetryExpiryCount = 34; |
| 1516 | readonly attribute optional int32u txIndirectMaxRetryExpiryCount = 35; |
| 1517 | readonly attribute optional int32u txErrCcaCount = 36; |
| 1518 | readonly attribute optional int32u txErrAbortCount = 37; |
| 1519 | readonly attribute optional int32u txErrBusyChannelCount = 38; |
| 1520 | readonly attribute optional int32u rxTotalCount = 39; |
| 1521 | readonly attribute optional int32u rxUnicastCount = 40; |
| 1522 | readonly attribute optional int32u rxBroadcastCount = 41; |
| 1523 | readonly attribute optional int32u rxDataCount = 42; |
| 1524 | readonly attribute optional int32u rxDataPollCount = 43; |
| 1525 | readonly attribute optional int32u rxBeaconCount = 44; |
| 1526 | readonly attribute optional int32u rxBeaconRequestCount = 45; |
| 1527 | readonly attribute optional int32u rxOtherCount = 46; |
| 1528 | readonly attribute optional int32u rxAddressFilteredCount = 47; |
| 1529 | readonly attribute optional int32u rxDestAddrFilteredCount = 48; |
| 1530 | readonly attribute optional int32u rxDuplicatedCount = 49; |
| 1531 | readonly attribute optional int32u rxErrNoFrameCount = 50; |
| 1532 | readonly attribute optional int32u rxErrUnknownNeighborCount = 51; |
| 1533 | readonly attribute optional int32u rxErrInvalidSrcAddrCount = 52; |
| 1534 | readonly attribute optional int32u rxErrSecCount = 53; |
| 1535 | readonly attribute optional int32u rxErrFcsCount = 54; |
| 1536 | readonly attribute optional int32u rxErrOtherCount = 55; |
| 1537 | readonly attribute optional nullable int64u activeTimestamp = 56; |
| 1538 | readonly attribute optional nullable int64u pendingTimestamp = 57; |
| 1539 | readonly attribute optional nullable int32u delay = 58; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1540 | readonly attribute nullable SecurityPolicy securityPolicy = 59; |
Boris Zbarsky | 6056898 | 2022-08-08 15:27:14 -0400 | [diff] [blame] | 1541 | readonly attribute nullable octet_string<4> channelPage0Mask = 60; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1542 | readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; |
Boris Zbarsky | 5a5d048 | 2023-05-30 08:49:49 -0400 | [diff] [blame] | 1543 | readonly attribute NetworkFaultEnum activeNetworkFaultsList[] = 62; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1544 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1545 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1546 | readonly attribute event_id eventList[] = 65530; |
| 1547 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1548 | readonly attribute bitmap32 featureMap = 65532; |
| 1549 | readonly attribute int16u clusterRevision = 65533; |
| 1550 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1551 | /** Reception of this command SHALL reset the OverrunCount attributes to 0 */ |
Andrei Litvin | 94a6f93 | 2023-11-02 15:07:36 -0400 | [diff] [blame] | 1552 | command access(invoke: manage) ResetCounts(): DefaultSuccess = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1553 | } |
| 1554 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1555 | /** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1556 | cluster WiFiNetworkDiagnostics = 54 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1557 | revision 1; // NOTE: Default/not specifically set |
| 1558 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1559 | enum AssociationFailureCauseEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1560 | kUnknown = 0; |
| 1561 | kAssociationFailed = 1; |
| 1562 | kAuthenticationFailed = 2; |
| 1563 | kSsidNotFound = 3; |
| 1564 | } |
| 1565 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1566 | enum ConnectionStatusEnum : enum8 { |
Boris Zbarsky | 6083a3f | 2023-02-17 08:57:59 -0500 | [diff] [blame] | 1567 | kConnected = 0; |
| 1568 | kNotConnected = 1; |
| 1569 | } |
| 1570 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1571 | enum SecurityTypeEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1572 | kUnspecified = 0; |
| 1573 | kNone = 1; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 1574 | kWEP = 2; |
| 1575 | kWPA = 3; |
| 1576 | kWPA2 = 4; |
| 1577 | kWPA3 = 5; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1578 | } |
| 1579 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1580 | enum WiFiVersionEnum : enum8 { |
Boris Zbarsky | 0f76327 | 2023-01-06 14:25:04 -0500 | [diff] [blame] | 1581 | kA = 0; |
| 1582 | kB = 1; |
| 1583 | kG = 2; |
| 1584 | kN = 3; |
| 1585 | kAc = 4; |
| 1586 | kAx = 5; |
simonhmorris1 | a0fe129 | 2023-05-25 19:12:06 +0100 | [diff] [blame] | 1587 | kAh = 6; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1588 | } |
| 1589 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1590 | bitmap Feature : bitmap32 { |
Vivien Nicolas | 855a76f | 2023-01-27 07:44:25 +0100 | [diff] [blame] | 1591 | kPacketCounts = 0x1; |
| 1592 | kErrorCounts = 0x2; |
| 1593 | } |
| 1594 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1595 | info event Disconnection = 0 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1596 | int16u reasonCode = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1597 | } |
| 1598 | |
| 1599 | info event AssociationFailure = 1 { |
Andrei Litvin | ea0a843 | 2023-11-02 10:56:32 -0400 | [diff] [blame] | 1600 | AssociationFailureCauseEnum associationFailureCause = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1601 | int16u status = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1602 | } |
| 1603 | |
| 1604 | info event ConnectionStatus = 2 { |
Boris Zbarsky | 6083a3f | 2023-02-17 08:57:59 -0500 | [diff] [blame] | 1605 | ConnectionStatusEnum connectionStatus = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1606 | } |
| 1607 | |
| 1608 | readonly attribute nullable octet_string<6> bssid = 0; |
Boris Zbarsky | 6083a3f | 2023-02-17 08:57:59 -0500 | [diff] [blame] | 1609 | readonly attribute nullable SecurityTypeEnum securityType = 1; |
| 1610 | readonly attribute nullable WiFiVersionEnum wiFiVersion = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1611 | readonly attribute nullable int16u channelNumber = 3; |
| 1612 | readonly attribute nullable int8s rssi = 4; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1613 | readonly attribute optional nullable int32u beaconLostCount = 5; |
| 1614 | readonly attribute optional nullable int32u beaconRxCount = 6; |
| 1615 | readonly attribute optional nullable int32u packetMulticastRxCount = 7; |
| 1616 | readonly attribute optional nullable int32u packetMulticastTxCount = 8; |
| 1617 | readonly attribute optional nullable int32u packetUnicastRxCount = 9; |
| 1618 | readonly attribute optional nullable int32u packetUnicastTxCount = 10; |
| 1619 | readonly attribute optional nullable int64u currentMaxRate = 11; |
| 1620 | readonly attribute optional nullable int64u overrunCount = 12; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1621 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1622 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1623 | readonly attribute event_id eventList[] = 65530; |
| 1624 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1625 | readonly attribute bitmap32 featureMap = 65532; |
| 1626 | readonly attribute int16u clusterRevision = 65533; |
| 1627 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1628 | /** Reception of this command SHALL reset the Breacon and Packet related count attributes to 0 */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1629 | command ResetCounts(): DefaultSuccess = 0; |
| 1630 | } |
| 1631 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1632 | /** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1633 | cluster EthernetNetworkDiagnostics = 55 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1634 | revision 1; // NOTE: Default/not specifically set |
| 1635 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1636 | enum PHYRateEnum : enum8 { |
Boris Zbarsky | 13039ae | 2023-01-06 18:59:16 -0500 | [diff] [blame] | 1637 | kRate10M = 0; |
| 1638 | kRate100M = 1; |
| 1639 | kRate1G = 2; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 1640 | kRate25G = 3; |
Boris Zbarsky | 13039ae | 2023-01-06 18:59:16 -0500 | [diff] [blame] | 1641 | kRate5G = 4; |
| 1642 | kRate10G = 5; |
| 1643 | kRate40G = 6; |
| 1644 | kRate100G = 7; |
| 1645 | kRate200G = 8; |
| 1646 | kRate400G = 9; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1647 | } |
| 1648 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1649 | bitmap Feature : bitmap32 { |
Vivien Nicolas | 855a76f | 2023-01-27 07:44:25 +0100 | [diff] [blame] | 1650 | kPacketCounts = 0x1; |
| 1651 | kErrorCounts = 0x2; |
| 1652 | } |
| 1653 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1654 | readonly attribute optional nullable PHYRateEnum PHYRate = 0; |
| 1655 | readonly attribute optional nullable boolean fullDuplex = 1; |
| 1656 | readonly attribute optional int64u packetRxCount = 2; |
| 1657 | readonly attribute optional int64u packetTxCount = 3; |
| 1658 | readonly attribute optional int64u txErrCount = 4; |
| 1659 | readonly attribute optional int64u collisionCount = 5; |
| 1660 | readonly attribute optional int64u overrunCount = 6; |
| 1661 | readonly attribute optional nullable boolean carrierDetect = 7; |
| 1662 | readonly attribute optional int64u timeSinceReset = 8; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1663 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1664 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1665 | readonly attribute event_id eventList[] = 65530; |
| 1666 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1667 | readonly attribute bitmap32 featureMap = 65532; |
| 1668 | readonly attribute int16u clusterRevision = 65533; |
| 1669 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1670 | /** Reception of this command SHALL reset the attributes: PacketRxCount, PacketTxCount, TxErrCount, CollisionCount, OverrunCount to 0 */ |
Andrei Litvin | b3327f8 | 2023-10-27 17:23:02 -0400 | [diff] [blame] | 1671 | command access(invoke: manage) ResetCounts(): DefaultSuccess = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1672 | } |
| 1673 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1674 | /** This cluster exposes interactions with a switch device, for the purpose of using those interactions by other devices. |
| 1675 | Two types of switch devices are supported: latching switch (e.g. rocker switch) and momentary switch (e.g. push button), distinguished with their feature flags. |
| 1676 | Interactions with the switch device are exposed as attributes (for the latching switch) and as events (for both types of switches). An interested party MAY subscribe to these attributes/events and thus be informed of the interactions, and can perform actions based on this, for example by sending commands to perform an action such as controlling a light or a window shade. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1677 | cluster Switch = 59 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1678 | revision 1; // NOTE: Default/not specifically set |
| 1679 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1680 | bitmap Feature : bitmap32 { |
Carter Swedal | 977cfa4 | 2022-09-23 13:31:05 -0500 | [diff] [blame] | 1681 | kLatchingSwitch = 0x1; |
| 1682 | kMomentarySwitch = 0x2; |
| 1683 | kMomentarySwitchRelease = 0x4; |
| 1684 | kMomentarySwitchLongPress = 0x8; |
| 1685 | kMomentarySwitchMultiPress = 0x10; |
| 1686 | } |
| 1687 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1688 | info event SwitchLatched = 0 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1689 | int8u newPosition = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1690 | } |
| 1691 | |
| 1692 | info event InitialPress = 1 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1693 | int8u newPosition = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1694 | } |
| 1695 | |
| 1696 | info event LongPress = 2 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1697 | int8u newPosition = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1698 | } |
| 1699 | |
| 1700 | info event ShortRelease = 3 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1701 | int8u previousPosition = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1702 | } |
| 1703 | |
| 1704 | info event LongRelease = 4 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1705 | int8u previousPosition = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1706 | } |
| 1707 | |
| 1708 | info event MultiPressOngoing = 5 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1709 | int8u newPosition = 0; |
| 1710 | int8u currentNumberOfPressesCounted = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1711 | } |
| 1712 | |
| 1713 | info event MultiPressComplete = 6 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1714 | int8u previousPosition = 0; |
| 1715 | int8u totalNumberOfPressesCounted = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1716 | } |
| 1717 | |
Alex Pygin | 344c1e3 | 2023-02-10 20:42:48 -0600 | [diff] [blame] | 1718 | readonly attribute int8u numberOfPositions = 0; |
| 1719 | readonly attribute int8u currentPosition = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1720 | readonly attribute optional int8u multiPressMax = 2; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1721 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1722 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1723 | readonly attribute event_id eventList[] = 65530; |
| 1724 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1725 | readonly attribute bitmap32 featureMap = 65532; |
| 1726 | readonly attribute int16u clusterRevision = 65533; |
| 1727 | } |
| 1728 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1729 | /** Commands to trigger a Node to allow a new Administrator to commission it. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1730 | cluster AdministratorCommissioning = 60 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1731 | revision 1; // NOTE: Default/not specifically set |
| 1732 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1733 | enum CommissioningWindowStatusEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1734 | kWindowNotOpen = 0; |
| 1735 | kEnhancedWindowOpen = 1; |
| 1736 | kBasicWindowOpen = 2; |
| 1737 | } |
| 1738 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1739 | enum StatusCode : enum8 { |
Tennessee Carmel-Veilleux | c24577d | 2022-08-16 00:27:47 -0400 | [diff] [blame] | 1740 | kBusy = 2; |
| 1741 | kPAKEParameterError = 3; |
| 1742 | kWindowNotOpen = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1743 | } |
| 1744 | |
Andrei Litvin | 1f9814e | 2023-10-26 15:35:06 -0400 | [diff] [blame] | 1745 | bitmap Feature : bitmap32 { |
| 1746 | kBasic = 0x1; |
| 1747 | } |
| 1748 | |
Boris Zbarsky | 232b5a1 | 2023-01-18 21:35:14 -0500 | [diff] [blame] | 1749 | readonly attribute CommissioningWindowStatusEnum windowStatus = 0; |
Boris Zbarsky | 17c8da6 | 2022-07-31 01:47:37 -0400 | [diff] [blame] | 1750 | readonly attribute nullable fabric_idx adminFabricIndex = 1; |
Andrei Litvin | 1f9814e | 2023-10-26 15:35:06 -0400 | [diff] [blame] | 1751 | readonly attribute nullable vendor_id adminVendorId = 2; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1752 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1753 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1754 | readonly attribute event_id eventList[] = 65530; |
| 1755 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1756 | readonly attribute bitmap32 featureMap = 65532; |
| 1757 | readonly attribute int16u clusterRevision = 65533; |
| 1758 | |
| 1759 | request struct OpenCommissioningWindowRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1760 | int16u commissioningTimeout = 0; |
| 1761 | octet_string PAKEPasscodeVerifier = 1; |
| 1762 | int16u discriminator = 2; |
| 1763 | int32u iterations = 3; |
Andrei Litvin | 1f9814e | 2023-10-26 15:35:06 -0400 | [diff] [blame] | 1764 | octet_string<32> salt = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1765 | } |
| 1766 | |
| 1767 | request struct OpenBasicCommissioningWindowRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1768 | int16u commissioningTimeout = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1769 | } |
| 1770 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1771 | /** This command is used by a current Administrator to instruct a Node to go into commissioning mode using enhanced commissioning method. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1772 | timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1773 | /** This command is used by a current Administrator to instruct a Node to go into commissioning mode using basic commissioning method, if the node supports it. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1774 | timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1775 | /** This command is used by a current Administrator to instruct a Node to revoke any active Open Commissioning Window or Open Basic Commissioning Window command. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1776 | timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; |
| 1777 | } |
| 1778 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1779 | /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1780 | cluster OperationalCredentials = 62 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1781 | revision 1; // NOTE: Default/not specifically set |
| 1782 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1783 | enum CertificateChainTypeEnum : enum8 { |
Boris Zbarsky | cccce01 | 2023-01-18 11:27:01 -0500 | [diff] [blame] | 1784 | kDACCertificate = 1; |
| 1785 | kPAICertificate = 2; |
| 1786 | } |
| 1787 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1788 | enum NodeOperationalCertStatusEnum : enum8 { |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 1789 | kOK = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1790 | kInvalidPublicKey = 1; |
| 1791 | kInvalidNodeOpId = 2; |
| 1792 | kInvalidNOC = 3; |
| 1793 | kMissingCsr = 4; |
| 1794 | kTableFull = 5; |
| 1795 | kInvalidAdminSubject = 6; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1796 | kFabricConflict = 9; |
| 1797 | kLabelConflict = 10; |
| 1798 | kInvalidFabricIndex = 11; |
| 1799 | } |
| 1800 | |
Boris Zbarsky | cccce01 | 2023-01-18 11:27:01 -0500 | [diff] [blame] | 1801 | fabric_scoped struct FabricDescriptorStruct { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1802 | octet_string<65> rootPublicKey = 1; |
Boris Zbarsky | cccce01 | 2023-01-18 11:27:01 -0500 | [diff] [blame] | 1803 | vendor_id vendorID = 2; |
| 1804 | fabric_id fabricID = 3; |
| 1805 | node_id nodeID = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1806 | char_string<32> label = 5; |
| 1807 | fabric_idx fabricIndex = 254; |
| 1808 | } |
| 1809 | |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 1810 | fabric_scoped struct NOCStruct { |
| 1811 | fabric_sensitive octet_string noc = 1; |
| 1812 | nullable fabric_sensitive octet_string icac = 2; |
| 1813 | fabric_idx fabricIndex = 254; |
| 1814 | } |
| 1815 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1816 | readonly attribute access(read: administer) NOCStruct NOCs[] = 0; |
Boris Zbarsky | cccce01 | 2023-01-18 11:27:01 -0500 | [diff] [blame] | 1817 | readonly attribute FabricDescriptorStruct fabrics[] = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1818 | readonly attribute int8u supportedFabrics = 2; |
| 1819 | readonly attribute int8u commissionedFabrics = 3; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1820 | readonly attribute octet_string trustedRootCertificates[] = 4; |
Vivien Nicolas | f93e6cb | 2022-07-29 13:23:24 +0200 | [diff] [blame] | 1821 | readonly attribute int8u currentFabricIndex = 5; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1822 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1823 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1824 | readonly attribute event_id eventList[] = 65530; |
| 1825 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1826 | readonly attribute bitmap32 featureMap = 65532; |
| 1827 | readonly attribute int16u clusterRevision = 65533; |
| 1828 | |
| 1829 | request struct AttestationRequestRequest { |
Andrei Litvin | 0da67af | 2023-10-27 17:28:25 -0400 | [diff] [blame] | 1830 | octet_string<32> attestationNonce = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1831 | } |
| 1832 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1833 | response struct AttestationResponse = 1 { |
| 1834 | octet_string<900> attestationElements = 0; |
| 1835 | octet_string<64> attestationSignature = 1; |
| 1836 | } |
| 1837 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1838 | request struct CertificateChainRequestRequest { |
Boris Zbarsky | cccce01 | 2023-01-18 11:27:01 -0500 | [diff] [blame] | 1839 | CertificateChainTypeEnum certificateType = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1840 | } |
| 1841 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1842 | response struct CertificateChainResponse = 3 { |
| 1843 | octet_string<600> certificate = 0; |
| 1844 | } |
| 1845 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1846 | request struct CSRRequestRequest { |
Andrei Litvin | 0da67af | 2023-10-27 17:28:25 -0400 | [diff] [blame] | 1847 | octet_string<32> CSRNonce = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1848 | optional boolean isForUpdateNOC = 1; |
| 1849 | } |
| 1850 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1851 | response struct CSRResponse = 5 { |
| 1852 | octet_string NOCSRElements = 0; |
| 1853 | octet_string attestationSignature = 1; |
| 1854 | } |
| 1855 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1856 | request struct AddNOCRequest { |
Andrei Litvin | 0da67af | 2023-10-27 17:28:25 -0400 | [diff] [blame] | 1857 | octet_string<400> NOCValue = 0; |
| 1858 | optional octet_string<400> ICACValue = 1; |
| 1859 | octet_string<16> IPKValue = 2; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1860 | int64u caseAdminSubject = 3; |
| 1861 | vendor_id adminVendorId = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1862 | } |
| 1863 | |
| 1864 | request struct UpdateNOCRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1865 | octet_string NOCValue = 0; |
| 1866 | optional octet_string ICACValue = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1867 | } |
| 1868 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1869 | response struct NOCResponse = 8 { |
| 1870 | NodeOperationalCertStatusEnum statusCode = 0; |
| 1871 | optional fabric_idx fabricIndex = 1; |
| 1872 | optional char_string<128> debugText = 2; |
| 1873 | } |
| 1874 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1875 | request struct UpdateFabricLabelRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1876 | char_string<32> label = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1877 | } |
| 1878 | |
| 1879 | request struct RemoveFabricRequest { |
| 1880 | fabric_idx fabricIndex = 0; |
| 1881 | } |
| 1882 | |
| 1883 | request struct AddTrustedRootCertificateRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1884 | octet_string rootCACertificate = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1885 | } |
| 1886 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1887 | /** Sender is requesting attestation information from the receiver. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1888 | command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1889 | /** Sender is requesting a device attestation certificate from the receiver. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1890 | command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1891 | /** Sender is requesting a certificate signing request (CSR) from the receiver. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1892 | command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1893 | /** Sender is requesting to add the new node operational certificates. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1894 | command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1895 | /** Sender is requesting to update the node operational certificates. */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 1896 | fabric command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1897 | /** This command SHALL be used by an Administrative Node to set the user-visible Label field for a given Fabric, as reflected by entries in the Fabrics attribute. */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 1898 | fabric command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1899 | /** This command is used by Administrative Nodes to remove a given fabric index and delete all associated fabric-scoped data. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1900 | command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1901 | /** This command SHALL add a Trusted Root CA Certificate, provided as its CHIP Certificate representation. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1902 | command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; |
| 1903 | } |
| 1904 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1905 | /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1906 | cluster GroupKeyManagement = 63 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1907 | revision 1; // NOTE: Default/not specifically set |
| 1908 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1909 | enum GroupKeySecurityPolicyEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1910 | kTrustFirst = 0; |
| 1911 | kCacheAndSync = 1; |
| 1912 | } |
| 1913 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1914 | bitmap Feature : bitmap32 { |
Tennessee Carmel-Veilleux | f71a48f | 2023-07-31 15:58:40 -0400 | [diff] [blame] | 1915 | kCacheAndSync = 0x1; |
| 1916 | } |
| 1917 | |
Andrei Litvin | d38820d | 2022-10-04 09:25:26 -0400 | [diff] [blame] | 1918 | fabric_scoped struct GroupInfoMapStruct { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1919 | group_id groupId = 1; |
| 1920 | endpoint_no endpoints[] = 2; |
| 1921 | optional char_string<16> groupName = 3; |
| 1922 | fabric_idx fabricIndex = 254; |
| 1923 | } |
| 1924 | |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 1925 | fabric_scoped struct GroupKeyMapStruct { |
| 1926 | group_id groupId = 1; |
| 1927 | int16u groupKeySetID = 2; |
| 1928 | fabric_idx fabricIndex = 254; |
| 1929 | } |
| 1930 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1931 | struct GroupKeySetStruct { |
| 1932 | int16u groupKeySetID = 0; |
Boris Zbarsky | aab0d7c | 2023-02-21 14:46:25 -0500 | [diff] [blame] | 1933 | GroupKeySecurityPolicyEnum groupKeySecurityPolicy = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1934 | nullable octet_string<16> epochKey0 = 2; |
| 1935 | nullable epoch_us epochStartTime0 = 3; |
| 1936 | nullable octet_string<16> epochKey1 = 4; |
| 1937 | nullable epoch_us epochStartTime1 = 5; |
| 1938 | nullable octet_string<16> epochKey2 = 6; |
| 1939 | nullable epoch_us epochStartTime2 = 7; |
| 1940 | } |
| 1941 | |
| 1942 | attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; |
| 1943 | readonly attribute GroupInfoMapStruct groupTable[] = 1; |
| 1944 | readonly attribute int16u maxGroupsPerFabric = 2; |
| 1945 | readonly attribute int16u maxGroupKeysPerFabric = 3; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1946 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1947 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1948 | readonly attribute event_id eventList[] = 65530; |
| 1949 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1950 | readonly attribute bitmap32 featureMap = 65532; |
| 1951 | readonly attribute int16u clusterRevision = 65533; |
| 1952 | |
| 1953 | request struct KeySetWriteRequest { |
| 1954 | GroupKeySetStruct groupKeySet = 0; |
| 1955 | } |
| 1956 | |
| 1957 | request struct KeySetReadRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1958 | int16u groupKeySetID = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1959 | } |
| 1960 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1961 | response struct KeySetReadResponse = 2 { |
| 1962 | GroupKeySetStruct groupKeySet = 0; |
| 1963 | } |
| 1964 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1965 | request struct KeySetRemoveRequest { |
| 1966 | int16u groupKeySetID = 0; |
| 1967 | } |
| 1968 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1969 | response struct KeySetReadAllIndicesResponse = 5 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1970 | int16u groupKeySetIDs[] = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1971 | } |
| 1972 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1973 | /** Write a new set of keys for the given key set id. */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 1974 | fabric command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1975 | /** Read the keys for a given key set id. */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 1976 | fabric command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1977 | /** Revoke a Root Key from a Group */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 1978 | fabric command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1979 | /** Return the list of Group Key Sets associated with the accessing fabric */ |
Boris Zbarsky | 3d44787 | 2023-06-06 10:15:31 -0400 | [diff] [blame] | 1980 | fabric command access(invoke: administer) KeySetReadAllIndices(): KeySetReadAllIndicesResponse = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1981 | } |
| 1982 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1983 | /** The Fixed Label Cluster provides a feature for the device to tag an endpoint with zero or more read only |
| 1984 | labels. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1985 | cluster FixedLabel = 64 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1986 | revision 1; // NOTE: Default/not specifically set |
| 1987 | |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 1988 | struct LabelStruct { |
| 1989 | char_string<16> label = 0; |
| 1990 | char_string<16> value = 1; |
| 1991 | } |
| 1992 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1993 | readonly attribute LabelStruct labelList[] = 0; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1994 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1995 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1996 | readonly attribute event_id eventList[] = 65530; |
| 1997 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1998 | readonly attribute bitmap32 featureMap = 65532; |
| 1999 | readonly attribute int16u clusterRevision = 65533; |
| 2000 | } |
| 2001 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 2002 | /** The User Label Cluster provides a feature to tag an endpoint with zero or more labels. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2003 | cluster UserLabel = 65 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 2004 | revision 1; // NOTE: Default/not specifically set |
| 2005 | |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 2006 | struct LabelStruct { |
| 2007 | char_string<16> label = 0; |
| 2008 | char_string<16> value = 1; |
| 2009 | } |
| 2010 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 2011 | attribute access(write: manage) LabelStruct labelList[] = 0; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 2012 | readonly attribute command_id generatedCommandList[] = 65528; |
| 2013 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 2014 | readonly attribute event_id eventList[] = 65530; |
| 2015 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 2016 | readonly attribute bitmap32 featureMap = 65532; |
| 2017 | readonly attribute int16u clusterRevision = 65533; |
| 2018 | } |
| 2019 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 2020 | /** Attributes and commands for controlling the color properties of a color-capable light. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2021 | cluster ColorControl = 768 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 2022 | revision 6; |
| 2023 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2024 | enum ColorLoopAction : enum8 { |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2025 | kDeactivate = 0; |
| 2026 | kActivateFromColorLoopStartEnhancedHue = 1; |
| 2027 | kActivateFromEnhancedCurrentHue = 2; |
| 2028 | } |
| 2029 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2030 | enum ColorLoopDirection : enum8 { |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2031 | kDecrementHue = 0; |
| 2032 | kIncrementHue = 1; |
| 2033 | } |
| 2034 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2035 | enum ColorMode : enum8 { |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2036 | kCurrentHueAndCurrentSaturation = 0; |
| 2037 | kCurrentXAndCurrentY = 1; |
| 2038 | kColorTemperature = 2; |
| 2039 | } |
| 2040 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2041 | enum HueDirection : enum8 { |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2042 | kShortestDistance = 0; |
| 2043 | kLongestDistance = 1; |
| 2044 | kUp = 2; |
| 2045 | kDown = 3; |
| 2046 | } |
| 2047 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2048 | enum HueMoveMode : enum8 { |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2049 | kStop = 0; |
| 2050 | kUp = 1; |
| 2051 | kDown = 3; |
| 2052 | } |
| 2053 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2054 | enum HueStepMode : enum8 { |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2055 | kUp = 1; |
| 2056 | kDown = 3; |
| 2057 | } |
| 2058 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2059 | enum SaturationMoveMode : enum8 { |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2060 | kStop = 0; |
| 2061 | kUp = 1; |
| 2062 | kDown = 3; |
| 2063 | } |
| 2064 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2065 | enum SaturationStepMode : enum8 { |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2066 | kUp = 1; |
| 2067 | kDown = 3; |
| 2068 | } |
| 2069 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2070 | bitmap ColorCapabilities : bitmap16 { |
Andrei Litvin | bdc2b5a | 2022-01-28 16:48:29 -0500 | [diff] [blame] | 2071 | kHueSaturationSupported = 0x1; |
| 2072 | kEnhancedHueSupported = 0x2; |
| 2073 | kColorLoopSupported = 0x4; |
| 2074 | kXYAttributesSupported = 0x8; |
| 2075 | kColorTemperatureSupported = 0x10; |
| 2076 | } |
| 2077 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2078 | bitmap ColorLoopUpdateFlags : bitmap8 { |
Andrei Litvin | bdc2b5a | 2022-01-28 16:48:29 -0500 | [diff] [blame] | 2079 | kUpdateAction = 0x1; |
| 2080 | kUpdateDirection = 0x2; |
| 2081 | kUpdateTime = 0x4; |
| 2082 | kUpdateStartHue = 0x8; |
| 2083 | } |
| 2084 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2085 | bitmap Feature : bitmap32 { |
Boris Zbarsky | 243ee4b | 2023-05-19 10:39:11 -0400 | [diff] [blame] | 2086 | kHueAndSaturation = 0x1; |
| 2087 | kEnhancedHue = 0x2; |
| 2088 | kColorLoop = 0x4; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 2089 | kXY = 0x8; |
Boris Zbarsky | 243ee4b | 2023-05-19 10:39:11 -0400 | [diff] [blame] | 2090 | kColorTemperature = 0x10; |
| 2091 | } |
| 2092 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2093 | readonly attribute optional int8u currentHue = 0; |
| 2094 | readonly attribute optional int8u currentSaturation = 1; |
| 2095 | readonly attribute optional int16u remainingTime = 2; |
| 2096 | readonly attribute optional int16u currentX = 3; |
| 2097 | readonly attribute optional int16u currentY = 4; |
| 2098 | readonly attribute optional enum8 driftCompensation = 5; |
| 2099 | readonly attribute optional char_string<254> compensationText = 6; |
| 2100 | readonly attribute optional int16u colorTemperatureMireds = 7; |
Andrei Litvin | d5e7431 | 2022-01-19 17:06:40 -0500 | [diff] [blame] | 2101 | readonly attribute enum8 colorMode = 8; |
jmartinez-silabs | 2ac8a10 | 2022-05-23 23:15:08 -0400 | [diff] [blame] | 2102 | attribute bitmap8 options = 15; |
| 2103 | readonly attribute nullable int8u numberOfPrimaries = 16; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2104 | readonly attribute optional int16u primary1X = 17; |
| 2105 | readonly attribute optional int16u primary1Y = 18; |
| 2106 | readonly attribute optional nullable int8u primary1Intensity = 19; |
| 2107 | readonly attribute optional int16u primary2X = 21; |
| 2108 | readonly attribute optional int16u primary2Y = 22; |
| 2109 | readonly attribute optional nullable int8u primary2Intensity = 23; |
| 2110 | readonly attribute optional int16u primary3X = 25; |
| 2111 | readonly attribute optional int16u primary3Y = 26; |
| 2112 | readonly attribute optional nullable int8u primary3Intensity = 27; |
| 2113 | readonly attribute optional int16u primary4X = 32; |
| 2114 | readonly attribute optional int16u primary4Y = 33; |
| 2115 | readonly attribute optional nullable int8u primary4Intensity = 34; |
| 2116 | readonly attribute optional int16u primary5X = 36; |
| 2117 | readonly attribute optional int16u primary5Y = 37; |
| 2118 | readonly attribute optional nullable int8u primary5Intensity = 38; |
| 2119 | readonly attribute optional int16u primary6X = 40; |
| 2120 | readonly attribute optional int16u primary6Y = 41; |
| 2121 | readonly attribute optional nullable int8u primary6Intensity = 42; |
| 2122 | attribute access(write: manage) optional int16u whitePointX = 48; |
| 2123 | attribute access(write: manage) optional int16u whitePointY = 49; |
| 2124 | attribute access(write: manage) optional int16u colorPointRX = 50; |
| 2125 | attribute access(write: manage) optional int16u colorPointRY = 51; |
| 2126 | attribute access(write: manage) optional nullable int8u colorPointRIntensity = 52; |
| 2127 | attribute access(write: manage) optional int16u colorPointGX = 54; |
| 2128 | attribute access(write: manage) optional int16u colorPointGY = 55; |
| 2129 | attribute access(write: manage) optional nullable int8u colorPointGIntensity = 56; |
| 2130 | attribute access(write: manage) optional int16u colorPointBX = 58; |
| 2131 | attribute access(write: manage) optional int16u colorPointBY = 59; |
| 2132 | attribute access(write: manage) optional nullable int8u colorPointBIntensity = 60; |
| 2133 | readonly attribute optional int16u enhancedCurrentHue = 16384; |
Andrei Litvin | d5e7431 | 2022-01-19 17:06:40 -0500 | [diff] [blame] | 2134 | readonly attribute enum8 enhancedColorMode = 16385; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2135 | readonly attribute optional int8u colorLoopActive = 16386; |
| 2136 | readonly attribute optional int8u colorLoopDirection = 16387; |
| 2137 | readonly attribute optional int16u colorLoopTime = 16388; |
| 2138 | readonly attribute optional int16u colorLoopStartEnhancedHue = 16389; |
| 2139 | readonly attribute optional int16u colorLoopStoredEnhancedHue = 16390; |
Andrei Litvin | d5e7431 | 2022-01-19 17:06:40 -0500 | [diff] [blame] | 2140 | readonly attribute bitmap16 colorCapabilities = 16394; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2141 | readonly attribute optional int16u colorTempPhysicalMinMireds = 16395; |
| 2142 | readonly attribute optional int16u colorTempPhysicalMaxMireds = 16396; |
| 2143 | readonly attribute optional int16u coupleColorTempToLevelMinMireds = 16397; |
| 2144 | attribute access(write: manage) optional nullable int16u startUpColorTemperatureMireds = 16400; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 2145 | readonly attribute command_id generatedCommandList[] = 65528; |
| 2146 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 2147 | readonly attribute event_id eventList[] = 65530; |
| 2148 | readonly attribute attrib_id attributeList[] = 65531; |
Andrei Litvin | 306e8a4 | 2022-04-07 05:42:07 -1000 | [diff] [blame] | 2149 | readonly attribute bitmap32 featureMap = 65532; |
| 2150 | readonly attribute int16u clusterRevision = 65533; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2151 | |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2152 | request struct MoveToHueRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2153 | int8u hue = 0; |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2154 | HueDirection direction = 1; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2155 | int16u transitionTime = 2; |
| 2156 | bitmap8 optionsMask = 3; |
| 2157 | bitmap8 optionsOverride = 4; |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2158 | } |
| 2159 | |
| 2160 | request struct MoveHueRequest { |
| 2161 | HueMoveMode moveMode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2162 | int8u rate = 1; |
| 2163 | bitmap8 optionsMask = 2; |
| 2164 | bitmap8 optionsOverride = 3; |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2165 | } |
| 2166 | |
| 2167 | request struct StepHueRequest { |
| 2168 | HueStepMode stepMode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2169 | int8u stepSize = 1; |
| 2170 | int8u transitionTime = 2; |
| 2171 | bitmap8 optionsMask = 3; |
| 2172 | bitmap8 optionsOverride = 4; |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2173 | } |
| 2174 | |
| 2175 | request struct MoveToSaturationRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2176 | int8u saturation = 0; |
| 2177 | int16u transitionTime = 1; |
| 2178 | bitmap8 optionsMask = 2; |
| 2179 | bitmap8 optionsOverride = 3; |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2180 | } |
| 2181 | |
| 2182 | request struct MoveSaturationRequest { |
| 2183 | SaturationMoveMode moveMode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2184 | int8u rate = 1; |
| 2185 | bitmap8 optionsMask = 2; |
| 2186 | bitmap8 optionsOverride = 3; |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2187 | } |
| 2188 | |
| 2189 | request struct StepSaturationRequest { |
| 2190 | SaturationStepMode stepMode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2191 | int8u stepSize = 1; |
| 2192 | int8u transitionTime = 2; |
| 2193 | bitmap8 optionsMask = 3; |
| 2194 | bitmap8 optionsOverride = 4; |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2195 | } |
| 2196 | |
| 2197 | request struct MoveToHueAndSaturationRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2198 | int8u hue = 0; |
| 2199 | int8u saturation = 1; |
| 2200 | int16u transitionTime = 2; |
| 2201 | bitmap8 optionsMask = 3; |
| 2202 | bitmap8 optionsOverride = 4; |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2203 | } |
| 2204 | |
| 2205 | request struct MoveToColorRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2206 | int16u colorX = 0; |
| 2207 | int16u colorY = 1; |
| 2208 | int16u transitionTime = 2; |
| 2209 | bitmap8 optionsMask = 3; |
| 2210 | bitmap8 optionsOverride = 4; |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2211 | } |
| 2212 | |
| 2213 | request struct MoveColorRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2214 | int16s rateX = 0; |
| 2215 | int16s rateY = 1; |
| 2216 | bitmap8 optionsMask = 2; |
| 2217 | bitmap8 optionsOverride = 3; |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2218 | } |
| 2219 | |
| 2220 | request struct StepColorRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2221 | int16s stepX = 0; |
| 2222 | int16s stepY = 1; |
| 2223 | int16u transitionTime = 2; |
| 2224 | bitmap8 optionsMask = 3; |
| 2225 | bitmap8 optionsOverride = 4; |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2226 | } |
| 2227 | |
| 2228 | request struct MoveToColorTemperatureRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2229 | int16u colorTemperatureMireds = 0; |
| 2230 | int16u transitionTime = 1; |
| 2231 | bitmap8 optionsMask = 2; |
| 2232 | bitmap8 optionsOverride = 3; |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2233 | } |
| 2234 | |
| 2235 | request struct EnhancedMoveToHueRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2236 | int16u enhancedHue = 0; |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2237 | HueDirection direction = 1; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2238 | int16u transitionTime = 2; |
| 2239 | bitmap8 optionsMask = 3; |
| 2240 | bitmap8 optionsOverride = 4; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2241 | } |
| 2242 | |
| 2243 | request struct EnhancedMoveHueRequest { |
| 2244 | HueMoveMode moveMode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2245 | int16u rate = 1; |
| 2246 | bitmap8 optionsMask = 2; |
| 2247 | bitmap8 optionsOverride = 3; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2248 | } |
| 2249 | |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2250 | request struct EnhancedStepHueRequest { |
| 2251 | HueStepMode stepMode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2252 | int16u stepSize = 1; |
| 2253 | int16u transitionTime = 2; |
| 2254 | bitmap8 optionsMask = 3; |
| 2255 | bitmap8 optionsOverride = 4; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2256 | } |
| 2257 | |
| 2258 | request struct EnhancedMoveToHueAndSaturationRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2259 | int16u enhancedHue = 0; |
| 2260 | int8u saturation = 1; |
| 2261 | int16u transitionTime = 2; |
| 2262 | bitmap8 optionsMask = 3; |
| 2263 | bitmap8 optionsOverride = 4; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2264 | } |
| 2265 | |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2266 | request struct ColorLoopSetRequest { |
| 2267 | ColorLoopUpdateFlags updateFlags = 0; |
| 2268 | ColorLoopAction action = 1; |
| 2269 | ColorLoopDirection direction = 2; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2270 | int16u time = 3; |
| 2271 | int16u startHue = 4; |
| 2272 | bitmap8 optionsMask = 5; |
| 2273 | bitmap8 optionsOverride = 6; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2274 | } |
| 2275 | |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2276 | request struct StopMoveStepRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2277 | bitmap8 optionsMask = 0; |
| 2278 | bitmap8 optionsOverride = 1; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2279 | } |
| 2280 | |
| 2281 | request struct MoveColorTemperatureRequest { |
| 2282 | HueMoveMode moveMode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2283 | int16u rate = 1; |
| 2284 | int16u colorTemperatureMinimumMireds = 2; |
| 2285 | int16u colorTemperatureMaximumMireds = 3; |
| 2286 | bitmap8 optionsMask = 4; |
| 2287 | bitmap8 optionsOverride = 5; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2288 | } |
| 2289 | |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2290 | request struct StepColorTemperatureRequest { |
| 2291 | HueStepMode stepMode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2292 | int16u stepSize = 1; |
| 2293 | int16u transitionTime = 2; |
| 2294 | int16u colorTemperatureMinimumMireds = 3; |
| 2295 | int16u colorTemperatureMaximumMireds = 4; |
| 2296 | bitmap8 optionsMask = 5; |
| 2297 | bitmap8 optionsOverride = 6; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2298 | } |
| 2299 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2300 | /** Move to specified hue. */ |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2301 | command MoveToHue(MoveToHueRequest): DefaultSuccess = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2302 | /** Move hue up or down at specified rate. */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2303 | command MoveHue(MoveHueRequest): DefaultSuccess = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2304 | /** Step hue up or down by specified size at specified rate. */ |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2305 | command StepHue(StepHueRequest): DefaultSuccess = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2306 | /** Move to specified saturation. */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2307 | command MoveToSaturation(MoveToSaturationRequest): DefaultSuccess = 3; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2308 | /** Move saturation up or down at specified rate. */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2309 | command MoveSaturation(MoveSaturationRequest): DefaultSuccess = 4; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2310 | /** Step saturation up or down by specified size at specified rate. */ |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2311 | command StepSaturation(StepSaturationRequest): DefaultSuccess = 5; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2312 | /** Move to hue and saturation. */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2313 | command MoveToHueAndSaturation(MoveToHueAndSaturationRequest): DefaultSuccess = 6; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2314 | /** Move to specified color. */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2315 | command MoveToColor(MoveToColorRequest): DefaultSuccess = 7; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2316 | /** Moves the color. */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2317 | command MoveColor(MoveColorRequest): DefaultSuccess = 8; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2318 | /** Steps the lighting to a specific color. */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2319 | command StepColor(StepColorRequest): DefaultSuccess = 9; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2320 | /** Move to a specific color temperature. */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2321 | command MoveToColorTemperature(MoveToColorTemperatureRequest): DefaultSuccess = 10; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2322 | /** Command description for EnhancedMoveToHue */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2323 | command EnhancedMoveToHue(EnhancedMoveToHueRequest): DefaultSuccess = 64; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2324 | /** Command description for EnhancedMoveHue */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2325 | command EnhancedMoveHue(EnhancedMoveHueRequest): DefaultSuccess = 65; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2326 | /** Command description for EnhancedStepHue */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2327 | command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2328 | /** Command description for EnhancedMoveToHueAndSaturation */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2329 | command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2330 | /** Command description for ColorLoopSet */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2331 | command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2332 | /** Command description for StopMoveStep */ |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2333 | command StopMoveStep(StopMoveStepRequest): DefaultSuccess = 71; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2334 | /** Command description for MoveColorTemperature */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2335 | command MoveColorTemperature(MoveColorTemperatureRequest): DefaultSuccess = 75; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2336 | /** Command description for StepColorTemperature */ |
Marc Lepage | c14faeb | 2022-03-25 13:51:27 -0400 | [diff] [blame] | 2337 | command StepColorTemperature(StepColorTemperatureRequest): DefaultSuccess = 76; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2338 | } |
| 2339 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 2340 | /** Attributes and commands for configuring occupancy sensing, and reporting occupancy status. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2341 | cluster OccupancySensing = 1030 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 2342 | revision 3; |
| 2343 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2344 | enum OccupancySensorTypeEnum : enum8 { |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 2345 | kPIR = 0; |
Jakob Sloth Olesen | 1071d8d | 2023-02-16 14:36:58 +0100 | [diff] [blame] | 2346 | kUltrasonic = 1; |
| 2347 | kPIRAndUltrasonic = 2; |
| 2348 | kPhysicalContact = 3; |
| 2349 | } |
| 2350 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2351 | bitmap OccupancyBitmap : bitmap8 { |
Jakob Sloth Olesen | 1071d8d | 2023-02-16 14:36:58 +0100 | [diff] [blame] | 2352 | kOccupied = 0x1; |
| 2353 | } |
| 2354 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2355 | bitmap OccupancySensorTypeBitmap : bitmap8 { |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 2356 | kPIR = 0x1; |
Jakob Sloth Olesen | 1071d8d | 2023-02-16 14:36:58 +0100 | [diff] [blame] | 2357 | kUltrasonic = 0x2; |
| 2358 | kPhysicalContact = 0x4; |
| 2359 | } |
| 2360 | |
| 2361 | readonly attribute OccupancyBitmap occupancy = 0; |
| 2362 | readonly attribute OccupancySensorTypeEnum occupancySensorType = 1; |
| 2363 | readonly attribute OccupancySensorTypeBitmap occupancySensorTypeBitmap = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2364 | attribute access(write: manage) optional int16u PIROccupiedToUnoccupiedDelay = 16; |
| 2365 | attribute access(write: manage) optional int16u PIRUnoccupiedToOccupiedDelay = 17; |
| 2366 | attribute access(write: manage) optional int8u PIRUnoccupiedToOccupiedThreshold = 18; |
| 2367 | attribute access(write: manage) optional int16u ultrasonicOccupiedToUnoccupiedDelay = 32; |
| 2368 | attribute access(write: manage) optional int16u ultrasonicUnoccupiedToOccupiedDelay = 33; |
| 2369 | attribute access(write: manage) optional int8u ultrasonicUnoccupiedToOccupiedThreshold = 34; |
| 2370 | attribute access(write: manage) optional int16u physicalContactOccupiedToUnoccupiedDelay = 48; |
| 2371 | attribute access(write: manage) optional int16u physicalContactUnoccupiedToOccupiedDelay = 49; |
| 2372 | attribute access(write: manage) optional int8u physicalContactUnoccupiedToOccupiedThreshold = 50; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 2373 | readonly attribute command_id generatedCommandList[] = 65528; |
| 2374 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 2375 | readonly attribute event_id eventList[] = 65530; |
| 2376 | readonly attribute attrib_id attributeList[] = 65531; |
tehampson | 2db812e | 2022-05-23 15:24:29 -0400 | [diff] [blame] | 2377 | readonly attribute bitmap32 featureMap = 65532; |
Andrei Litvin | 306e8a4 | 2022-04-07 05:42:07 -1000 | [diff] [blame] | 2378 | readonly attribute int16u clusterRevision = 65533; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2379 | } |
| 2380 | |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2381 | endpoint 0 { |
Andrei Litvin | 8363494 | 2023-08-05 00:50:32 -0400 | [diff] [blame] | 2382 | device type ma_rootdevice = 22, version 1; |
| 2383 | |
Andrei Litvin | be806bb | 2022-01-18 10:19:17 -0500 | [diff] [blame] | 2384 | binding cluster OtaSoftwareUpdateProvider; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2385 | |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2386 | server cluster Descriptor { |
Boris Zbarsky | e4c075f | 2022-09-12 08:23:17 -0400 | [diff] [blame] | 2387 | callback attribute deviceTypeList; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2388 | callback attribute serverList; |
| 2389 | callback attribute clientList; |
| 2390 | callback attribute partsList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2391 | ram attribute featureMap default = 0; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2392 | callback attribute clusterRevision; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2393 | } |
| 2394 | |
| 2395 | server cluster AccessControl { |
Evgeny Margolis | 03f2782 | 2023-02-15 12:41:15 -0800 | [diff] [blame] | 2396 | emits event AccessControlEntryChanged; |
| 2397 | emits event AccessControlExtensionChanged; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2398 | callback attribute acl; |
| 2399 | callback attribute extension; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2400 | callback attribute subjectsPerAccessControlEntry; |
| 2401 | callback attribute targetsPerAccessControlEntry; |
| 2402 | callback attribute accessControlEntriesPerFabric; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2403 | callback attribute attributeList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2404 | ram attribute featureMap default = 0; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2405 | callback attribute clusterRevision; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2406 | } |
| 2407 | |
Boris Zbarsky | 04c20f6 | 2022-12-18 10:09:13 -0500 | [diff] [blame] | 2408 | server cluster BasicInformation { |
Evgeny Margolis | 03f2782 | 2023-02-15 12:41:15 -0800 | [diff] [blame] | 2409 | emits event StartUp; |
| 2410 | emits event ShutDown; |
| 2411 | emits event Leave; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2412 | callback attribute dataModelRevision; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2413 | callback attribute vendorName; |
| 2414 | callback attribute vendorID; |
| 2415 | callback attribute productName; |
| 2416 | callback attribute productID; |
| 2417 | persist attribute nodeLabel; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2418 | callback attribute location; |
| 2419 | callback attribute hardwareVersion; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2420 | callback attribute hardwareVersionString; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2421 | callback attribute softwareVersion; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2422 | callback attribute softwareVersionString; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2423 | callback attribute manufacturingDate; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2424 | callback attribute partNumber; |
| 2425 | callback attribute productURL; |
| 2426 | callback attribute productLabel; |
| 2427 | callback attribute serialNumber; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2428 | persist attribute localConfigDisabled default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2429 | callback attribute uniqueID; |
| 2430 | callback attribute capabilityMinima; |
Terence Hampson | 9969d44 | 2023-11-16 11:30:48 -0500 | [diff] [blame] | 2431 | callback attribute specificationVersion; |
| 2432 | callback attribute maxPathsPerInvoke; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2433 | ram attribute featureMap default = 0; |
Terence Hampson | 9969d44 | 2023-11-16 11:30:48 -0500 | [diff] [blame] | 2434 | ram attribute clusterRevision default = 3; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2435 | } |
| 2436 | |
| 2437 | server cluster OtaSoftwareUpdateRequestor { |
Evgeny Margolis | 03f2782 | 2023-02-15 12:41:15 -0800 | [diff] [blame] | 2438 | emits event StateTransition; |
| 2439 | emits event VersionApplied; |
| 2440 | emits event DownloadError; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2441 | callback attribute defaultOTAProviders; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2442 | ram attribute updatePossible default = 1; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2443 | ram attribute updateState default = 0; |
| 2444 | ram attribute updateStateProgress default = 0; |
| 2445 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2446 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2447 | |
| 2448 | handle command AnnounceOTAProvider; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2449 | } |
| 2450 | |
| 2451 | server cluster LocalizationConfiguration { |
| 2452 | persist attribute activeLocale default = "en-US"; |
| 2453 | callback attribute supportedLocales; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2454 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2455 | ram attribute clusterRevision default = 1; |
| 2456 | } |
| 2457 | |
| 2458 | server cluster TimeFormatLocalization { |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2459 | persist attribute hourFormat default = 0; |
| 2460 | persist attribute activeCalendarType default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2461 | callback attribute supportedCalendarTypes; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2462 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2463 | ram attribute clusterRevision default = 1; |
| 2464 | } |
| 2465 | |
| 2466 | server cluster GeneralCommissioning { |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2467 | ram attribute breadcrumb default = 0x0000000000000000; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2468 | callback attribute basicCommissioningInfo; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2469 | callback attribute regulatoryConfig; |
| 2470 | callback attribute locationCapability; |
| 2471 | callback attribute supportsConcurrentConnection; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2472 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2473 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2474 | |
| 2475 | handle command ArmFailSafe; |
| 2476 | handle command ArmFailSafeResponse; |
| 2477 | handle command SetRegulatoryConfig; |
| 2478 | handle command SetRegulatoryConfigResponse; |
| 2479 | handle command CommissioningComplete; |
| 2480 | handle command CommissioningCompleteResponse; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2481 | } |
| 2482 | |
| 2483 | server cluster NetworkCommissioning { |
| 2484 | ram attribute maxNetworks; |
| 2485 | callback attribute networks; |
| 2486 | ram attribute scanMaxTimeSeconds; |
| 2487 | ram attribute connectMaxTimeSeconds; |
| 2488 | ram attribute interfaceEnabled; |
| 2489 | ram attribute lastNetworkingStatus; |
| 2490 | ram attribute lastNetworkID; |
| 2491 | ram attribute lastConnectErrorValue; |
| 2492 | ram attribute featureMap default = 2; |
| 2493 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2494 | |
| 2495 | handle command ScanNetworks; |
| 2496 | handle command ScanNetworksResponse; |
| 2497 | handle command AddOrUpdateWiFiNetwork; |
| 2498 | handle command AddOrUpdateThreadNetwork; |
| 2499 | handle command RemoveNetwork; |
| 2500 | handle command NetworkConfigResponse; |
| 2501 | handle command ConnectNetwork; |
| 2502 | handle command ConnectNetworkResponse; |
| 2503 | handle command ReorderNetwork; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2504 | } |
| 2505 | |
| 2506 | server cluster DiagnosticLogs { |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2507 | ram attribute featureMap default = 0; |
tehampson | 2db812e | 2022-05-23 15:24:29 -0400 | [diff] [blame] | 2508 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2509 | |
| 2510 | handle command RetrieveLogsRequest; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2511 | } |
| 2512 | |
| 2513 | server cluster GeneralDiagnostics { |
Evgeny Margolis | 03f2782 | 2023-02-15 12:41:15 -0800 | [diff] [blame] | 2514 | emits event HardwareFaultChange; |
| 2515 | emits event RadioFaultChange; |
| 2516 | emits event NetworkFaultChange; |
| 2517 | emits event BootReason; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2518 | callback attribute networkInterfaces; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2519 | callback attribute rebootCount; |
| 2520 | callback attribute upTime; |
| 2521 | callback attribute totalOperationalHours; |
Boris Zbarsky | dd6ae93 | 2023-01-09 12:08:17 -0500 | [diff] [blame] | 2522 | callback attribute bootReason; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2523 | callback attribute activeHardwareFaults; |
| 2524 | callback attribute activeRadioFaults; |
| 2525 | callback attribute activeNetworkFaults; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2526 | callback attribute testEventTriggersEnabled default = false; |
| 2527 | ram attribute featureMap default = 0; |
Tennessee Carmel-Veilleux | d165f62 | 2023-10-31 10:50:04 -0400 | [diff] [blame] | 2528 | ram attribute clusterRevision default = 0x0002; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2529 | |
| 2530 | handle command TestEventTrigger; |
Tennessee Carmel-Veilleux | d165f62 | 2023-10-31 10:50:04 -0400 | [diff] [blame] | 2531 | handle command TimeSnapshot; |
| 2532 | handle command TimeSnapshotResponse; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2533 | } |
| 2534 | |
| 2535 | server cluster SoftwareDiagnostics { |
| 2536 | callback attribute threadMetrics; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2537 | callback attribute currentHeapFree; |
| 2538 | callback attribute currentHeapUsed; |
| 2539 | callback attribute currentHeapHighWatermark; |
| 2540 | callback attribute featureMap; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2541 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2542 | |
| 2543 | handle command ResetWatermarks; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2544 | } |
| 2545 | |
| 2546 | server cluster ThreadNetworkDiagnostics { |
Yufeng Wang | 5865352 | 2022-05-27 22:10:22 -0700 | [diff] [blame] | 2547 | callback attribute channel; |
| 2548 | callback attribute routingRole; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2549 | callback attribute networkName; |
| 2550 | callback attribute panId; |
| 2551 | callback attribute extendedPanId; |
Yufeng Wang | 5865352 | 2022-05-27 22:10:22 -0700 | [diff] [blame] | 2552 | callback attribute meshLocalPrefix; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2553 | callback attribute overrunCount; |
Boris Zbarsky | 6395db6 | 2023-01-06 12:08:22 -0500 | [diff] [blame] | 2554 | callback attribute neighborTable; |
| 2555 | callback attribute routeTable; |
Yufeng Wang | 5865352 | 2022-05-27 22:10:22 -0700 | [diff] [blame] | 2556 | callback attribute partitionId; |
| 2557 | callback attribute weighting; |
| 2558 | callback attribute dataVersion; |
| 2559 | callback attribute stableDataVersion; |
| 2560 | callback attribute leaderRouterId; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2561 | callback attribute detachedRoleCount; |
| 2562 | callback attribute childRoleCount; |
| 2563 | callback attribute routerRoleCount; |
| 2564 | callback attribute leaderRoleCount; |
| 2565 | callback attribute attachAttemptCount; |
| 2566 | callback attribute partitionIdChangeCount; |
| 2567 | callback attribute betterPartitionAttachAttemptCount; |
| 2568 | callback attribute parentChangeCount; |
| 2569 | callback attribute txTotalCount; |
| 2570 | callback attribute txUnicastCount; |
| 2571 | callback attribute txBroadcastCount; |
| 2572 | callback attribute txAckRequestedCount; |
| 2573 | callback attribute txAckedCount; |
| 2574 | callback attribute txNoAckRequestedCount; |
| 2575 | callback attribute txDataCount; |
| 2576 | callback attribute txDataPollCount; |
| 2577 | callback attribute txBeaconCount; |
| 2578 | callback attribute txBeaconRequestCount; |
| 2579 | callback attribute txOtherCount; |
| 2580 | callback attribute txRetryCount; |
| 2581 | callback attribute txDirectMaxRetryExpiryCount; |
| 2582 | callback attribute txIndirectMaxRetryExpiryCount; |
| 2583 | callback attribute txErrCcaCount; |
| 2584 | callback attribute txErrAbortCount; |
| 2585 | callback attribute txErrBusyChannelCount; |
| 2586 | callback attribute rxTotalCount; |
| 2587 | callback attribute rxUnicastCount; |
| 2588 | callback attribute rxBroadcastCount; |
| 2589 | callback attribute rxDataCount; |
| 2590 | callback attribute rxDataPollCount; |
| 2591 | callback attribute rxBeaconCount; |
| 2592 | callback attribute rxBeaconRequestCount; |
| 2593 | callback attribute rxOtherCount; |
| 2594 | callback attribute rxAddressFilteredCount; |
| 2595 | callback attribute rxDestAddrFilteredCount; |
| 2596 | callback attribute rxDuplicatedCount; |
| 2597 | callback attribute rxErrNoFrameCount; |
| 2598 | callback attribute rxErrUnknownNeighborCount; |
| 2599 | callback attribute rxErrInvalidSrcAddrCount; |
| 2600 | callback attribute rxErrSecCount; |
| 2601 | callback attribute rxErrFcsCount; |
| 2602 | callback attribute rxErrOtherCount; |
| 2603 | callback attribute activeTimestamp; |
| 2604 | callback attribute pendingTimestamp; |
| 2605 | callback attribute delay; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2606 | callback attribute securityPolicy; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2607 | callback attribute channelPage0Mask; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2608 | callback attribute operationalDatasetComponents; |
| 2609 | callback attribute activeNetworkFaultsList; |
| 2610 | ram attribute featureMap default = 0x000F; |
| 2611 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2612 | |
| 2613 | handle command ResetCounts; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2614 | } |
| 2615 | |
| 2616 | server cluster WiFiNetworkDiagnostics { |
Evgeny Margolis | 03f2782 | 2023-02-15 12:41:15 -0800 | [diff] [blame] | 2617 | emits event Disconnection; |
| 2618 | emits event AssociationFailure; |
| 2619 | emits event ConnectionStatus; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2620 | callback attribute bssid; |
| 2621 | callback attribute securityType; |
| 2622 | callback attribute wiFiVersion; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2623 | callback attribute channelNumber; |
| 2624 | callback attribute rssi; |
| 2625 | callback attribute beaconLostCount; |
| 2626 | callback attribute beaconRxCount; |
| 2627 | callback attribute packetMulticastRxCount; |
| 2628 | callback attribute packetMulticastTxCount; |
| 2629 | callback attribute packetUnicastRxCount; |
| 2630 | callback attribute packetUnicastTxCount; |
| 2631 | callback attribute currentMaxRate; |
| 2632 | callback attribute overrunCount; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2633 | ram attribute featureMap default = 3; |
| 2634 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2635 | |
| 2636 | handle command ResetCounts; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2637 | } |
| 2638 | |
| 2639 | server cluster EthernetNetworkDiagnostics { |
| 2640 | callback attribute PHYRate; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2641 | callback attribute fullDuplex; |
| 2642 | callback attribute packetRxCount; |
| 2643 | callback attribute packetTxCount; |
| 2644 | callback attribute txErrCount; |
| 2645 | callback attribute collisionCount; |
| 2646 | callback attribute overrunCount; |
| 2647 | callback attribute carrierDetect; |
| 2648 | callback attribute timeSinceReset; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2649 | ram attribute featureMap default = 3; |
| 2650 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2651 | |
| 2652 | handle command ResetCounts; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2653 | } |
| 2654 | |
| 2655 | server cluster Switch { |
Yufeng Wang | ae1cb32 | 2023-07-28 09:10:50 -0700 | [diff] [blame] | 2656 | emits event SwitchLatched; |
Alex Pygin | 344c1e3 | 2023-02-10 20:42:48 -0600 | [diff] [blame] | 2657 | ram attribute numberOfPositions default = 2; |
| 2658 | ram attribute currentPosition; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2659 | ram attribute featureMap default = 0; |
tehampson | 2db812e | 2022-05-23 15:24:29 -0400 | [diff] [blame] | 2660 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2661 | } |
| 2662 | |
| 2663 | server cluster AdministratorCommissioning { |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2664 | callback attribute windowStatus; |
| 2665 | callback attribute adminFabricIndex; |
| 2666 | callback attribute adminVendorId; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2667 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2668 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2669 | |
| 2670 | handle command OpenCommissioningWindow; |
| 2671 | handle command OpenBasicCommissioningWindow; |
| 2672 | handle command RevokeCommissioning; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2673 | } |
| 2674 | |
| 2675 | server cluster OperationalCredentials { |
| 2676 | callback attribute NOCs; |
| 2677 | callback attribute fabrics; |
Andrei Litvin | baf18ff | 2022-05-06 09:57:50 -0400 | [diff] [blame] | 2678 | callback attribute supportedFabrics; |
| 2679 | callback attribute commissionedFabrics; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2680 | callback attribute trustedRootCertificates; |
| 2681 | callback attribute currentFabricIndex; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2682 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2683 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2684 | |
| 2685 | handle command AttestationRequest; |
| 2686 | handle command AttestationResponse; |
| 2687 | handle command CertificateChainRequest; |
| 2688 | handle command CertificateChainResponse; |
| 2689 | handle command CSRRequest; |
| 2690 | handle command CSRResponse; |
| 2691 | handle command AddNOC; |
| 2692 | handle command UpdateNOC; |
| 2693 | handle command NOCResponse; |
| 2694 | handle command UpdateFabricLabel; |
| 2695 | handle command RemoveFabric; |
| 2696 | handle command AddTrustedRootCertificate; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2697 | } |
| 2698 | |
| 2699 | server cluster GroupKeyManagement { |
| 2700 | callback attribute groupKeyMap; |
| 2701 | callback attribute groupTable; |
| 2702 | callback attribute maxGroupsPerFabric; |
| 2703 | callback attribute maxGroupKeysPerFabric; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2704 | callback attribute featureMap; |
| 2705 | callback attribute clusterRevision; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2706 | |
| 2707 | handle command KeySetWrite; |
| 2708 | handle command KeySetRead; |
| 2709 | handle command KeySetReadResponse; |
| 2710 | handle command KeySetRemove; |
| 2711 | handle command KeySetReadAllIndices; |
| 2712 | handle command KeySetReadAllIndicesResponse; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2713 | } |
| 2714 | |
| 2715 | server cluster FixedLabel { |
| 2716 | callback attribute labelList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2717 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2718 | ram attribute clusterRevision default = 1; |
| 2719 | } |
| 2720 | |
| 2721 | server cluster UserLabel { |
| 2722 | callback attribute labelList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2723 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2724 | ram attribute clusterRevision default = 1; |
| 2725 | } |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2726 | } |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2727 | endpoint 1 { |
Andrei Litvin | 8363494 | 2023-08-05 00:50:32 -0400 | [diff] [blame] | 2728 | device type ma_dimmablelight = 257, version 1; |
| 2729 | |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2730 | |
| 2731 | server cluster Identify { |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2732 | ram attribute identifyTime default = 0x0000; |
| 2733 | ram attribute identifyType default = 0x0; |
| 2734 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2735 | ram attribute clusterRevision default = 4; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2736 | |
| 2737 | handle command Identify; |
| 2738 | handle command TriggerEffect; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2739 | } |
| 2740 | |
| 2741 | server cluster Groups { |
| 2742 | ram attribute nameSupport; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2743 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2744 | ram attribute clusterRevision default = 4; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2745 | |
| 2746 | handle command AddGroup; |
| 2747 | handle command AddGroupResponse; |
| 2748 | handle command ViewGroup; |
| 2749 | handle command ViewGroupResponse; |
| 2750 | handle command GetGroupMembership; |
| 2751 | handle command GetGroupMembershipResponse; |
| 2752 | handle command RemoveGroup; |
| 2753 | handle command RemoveGroupResponse; |
| 2754 | handle command RemoveAllGroups; |
| 2755 | handle command AddGroupIfIdentifying; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2756 | } |
| 2757 | |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 2758 | server cluster Scenes { |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 2759 | ram attribute nameSupport default = 0x80; |
| 2760 | ram attribute lastConfiguredBy; |
lpbeliveau-silabs | f03e9ef | 2023-10-05 09:27:10 -0400 | [diff] [blame] | 2761 | ram attribute sceneTableSize default = 16; |
lpbeliveau-silabs | 732d5e7 | 2023-11-16 12:36:24 -0500 | [diff] [blame] | 2762 | callback attribute fabricSceneInfo; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 2763 | callback attribute generatedCommandList; |
| 2764 | callback attribute acceptedCommandList; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 2765 | callback attribute attributeList; |
lpbeliveau-silabs | 732d5e7 | 2023-11-16 12:36:24 -0500 | [diff] [blame] | 2766 | ram attribute featureMap default = 15; |
lpbeliveau-silabs | 2520f47 | 2023-06-06 19:53:07 -0400 | [diff] [blame] | 2767 | ram attribute clusterRevision default = 5; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2768 | |
| 2769 | handle command AddScene; |
| 2770 | handle command AddSceneResponse; |
| 2771 | handle command ViewScene; |
| 2772 | handle command ViewSceneResponse; |
| 2773 | handle command RemoveScene; |
| 2774 | handle command RemoveSceneResponse; |
| 2775 | handle command RemoveAllScenes; |
| 2776 | handle command RemoveAllScenesResponse; |
| 2777 | handle command StoreScene; |
| 2778 | handle command StoreSceneResponse; |
| 2779 | handle command RecallScene; |
| 2780 | handle command GetSceneMembership; |
| 2781 | handle command GetSceneMembershipResponse; |
| 2782 | handle command EnhancedAddScene; |
| 2783 | handle command EnhancedViewScene; |
| 2784 | handle command CopyScene; |
lpbeliveau-silabs | 5dea83e | 2023-05-30 19:23:04 -0400 | [diff] [blame] | 2785 | } |
| 2786 | |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2787 | server cluster OnOff { |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2788 | persist attribute onOff default = 0x00; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2789 | ram attribute globalSceneControl default = 0x01; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2790 | ram attribute onTime default = 0x0000; |
| 2791 | ram attribute offWaitTime default = 0x0000; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2792 | persist attribute startUpOnOff default = 0xFF; |
| 2793 | ram attribute featureMap default = 1; |
marktrayer | b312dfe | 2023-07-18 13:55:35 -0500 | [diff] [blame] | 2794 | ram attribute clusterRevision default = 5; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2795 | |
| 2796 | handle command Off; |
| 2797 | handle command On; |
| 2798 | handle command Toggle; |
| 2799 | handle command OffWithEffect; |
| 2800 | handle command OnWithRecallGlobalScene; |
| 2801 | handle command OnWithTimedOff; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2802 | } |
| 2803 | |
| 2804 | server cluster LevelControl { |
| 2805 | persist attribute currentLevel default = 0x01; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2806 | ram attribute remainingTime default = 0x0000; |
jmartinez-silabs | 3948b40 | 2022-06-08 16:59:41 -0400 | [diff] [blame] | 2807 | ram attribute minLevel default = 0x01; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2808 | ram attribute maxLevel default = 0xFE; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2809 | ram attribute currentFrequency default = 0x0000; |
| 2810 | ram attribute minFrequency default = 0x0000; |
| 2811 | ram attribute maxFrequency default = 0x0000; |
| 2812 | ram attribute options default = 0x00; |
| 2813 | ram attribute onOffTransitionTime default = 0x0000; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2814 | ram attribute onLevel default = 0xFF; |
| 2815 | ram attribute onTransitionTime; |
| 2816 | ram attribute offTransitionTime; |
| 2817 | ram attribute defaultMoveRate default = 50; |
| 2818 | persist attribute startUpCurrentLevel default = 255; |
| 2819 | ram attribute featureMap default = 3; |
| 2820 | ram attribute clusterRevision default = 5; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2821 | |
| 2822 | handle command MoveToLevel; |
| 2823 | handle command Move; |
| 2824 | handle command Step; |
| 2825 | handle command Stop; |
| 2826 | handle command MoveToLevelWithOnOff; |
| 2827 | handle command MoveWithOnOff; |
| 2828 | handle command StepWithOnOff; |
| 2829 | handle command StopWithOnOff; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2830 | } |
| 2831 | |
| 2832 | server cluster Descriptor { |
Boris Zbarsky | e4c075f | 2022-09-12 08:23:17 -0400 | [diff] [blame] | 2833 | callback attribute deviceTypeList; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2834 | callback attribute serverList; |
| 2835 | callback attribute clientList; |
| 2836 | callback attribute partsList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2837 | ram attribute featureMap default = 0; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2838 | callback attribute clusterRevision; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2839 | } |
| 2840 | |
| 2841 | server cluster ColorControl { |
Boris Zbarsky | 9b2f1c8 | 2023-05-25 00:55:00 -0400 | [diff] [blame] | 2842 | persist attribute currentHue default = 0x00; |
| 2843 | persist attribute currentSaturation default = 0x00; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2844 | ram attribute remainingTime default = 0x0000; |
Boris Zbarsky | 9b2f1c8 | 2023-05-25 00:55:00 -0400 | [diff] [blame] | 2845 | persist attribute currentX default = 0x616B; |
| 2846 | persist attribute currentY default = 0x607D; |
| 2847 | persist attribute colorTemperatureMireds default = 0x00FA; |
| 2848 | persist attribute colorMode default = 0x01; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2849 | ram attribute options default = 0x00; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2850 | ram attribute numberOfPrimaries; |
Boris Zbarsky | 9b2f1c8 | 2023-05-25 00:55:00 -0400 | [diff] [blame] | 2851 | persist attribute enhancedCurrentHue default = 0x0000; |
| 2852 | persist attribute enhancedColorMode default = 0x01; |
| 2853 | persist attribute colorLoopActive default = 0x00; |
| 2854 | persist attribute colorLoopDirection default = 0x00; |
| 2855 | persist attribute colorLoopTime default = 0x0019; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2856 | ram attribute colorLoopStartEnhancedHue default = 0x2300; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2857 | ram attribute colorLoopStoredEnhancedHue default = 0x0000; |
jmartinez-silabs | 756e3ab | 2022-06-22 11:20:14 -0400 | [diff] [blame] | 2858 | ram attribute colorCapabilities default = 0x1F; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2859 | ram attribute colorTempPhysicalMinMireds default = 0x0000; |
jmartinez-silabs | 2ac8a10 | 2022-05-23 23:15:08 -0400 | [diff] [blame] | 2860 | ram attribute colorTempPhysicalMaxMireds default = 0xFEFF; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2861 | ram attribute coupleColorTempToLevelMinMireds; |
Boris Zbarsky | 9b2f1c8 | 2023-05-25 00:55:00 -0400 | [diff] [blame] | 2862 | persist attribute startUpColorTemperatureMireds; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2863 | ram attribute featureMap default = 0x1F; |
Junior Martinez | f058d8e | 2023-08-21 17:44:41 -0400 | [diff] [blame] | 2864 | ram attribute clusterRevision default = 6; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2865 | |
| 2866 | handle command MoveToHue; |
| 2867 | handle command MoveHue; |
| 2868 | handle command StepHue; |
| 2869 | handle command MoveToSaturation; |
| 2870 | handle command MoveSaturation; |
| 2871 | handle command StepSaturation; |
| 2872 | handle command MoveToHueAndSaturation; |
| 2873 | handle command MoveToColor; |
| 2874 | handle command MoveColor; |
| 2875 | handle command StepColor; |
| 2876 | handle command MoveToColorTemperature; |
| 2877 | handle command EnhancedMoveToHue; |
| 2878 | handle command EnhancedMoveHue; |
| 2879 | handle command EnhancedStepHue; |
| 2880 | handle command EnhancedMoveToHueAndSaturation; |
| 2881 | handle command ColorLoopSet; |
| 2882 | handle command StopMoveStep; |
| 2883 | handle command MoveColorTemperature; |
| 2884 | handle command StepColorTemperature; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2885 | } |
| 2886 | |
| 2887 | server cluster OccupancySensing { |
| 2888 | ram attribute occupancy; |
| 2889 | ram attribute occupancySensorType; |
| 2890 | ram attribute occupancySensorTypeBitmap; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2891 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2892 | ram attribute clusterRevision default = 3; |
| 2893 | } |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2894 | } |
| 2895 | |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2896 | |