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 | |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 43 | request struct TriggerEffectRequest { |
| 44 | EffectIdentifierEnum effectIdentifier = 0; |
| 45 | EffectVariantEnum effectVariant = 1; |
| 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 */ |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 51 | command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 52 | } |
| 53 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 54 | /** 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] | 55 | cluster Descriptor = 29 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 56 | revision 2; |
| 57 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 58 | bitmap Feature : bitmap32 { |
Boris Zbarsky | bf0b45a | 2023-08-11 08:04:15 -0400 | [diff] [blame] | 59 | kTagList = 0x1; |
| 60 | } |
| 61 | |
Boris Zbarsky | e4c075f | 2022-09-12 08:23:17 -0400 | [diff] [blame] | 62 | struct DeviceTypeStruct { |
Boris Zbarsky | 7195bd8 | 2023-01-03 17:34:16 -0500 | [diff] [blame] | 63 | devtype_id deviceType = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 64 | int16u revision = 1; |
| 65 | } |
| 66 | |
abeck-whirlpool | a1c1126 | 2023-07-21 00:22:56 -0500 | [diff] [blame] | 67 | struct SemanticTagStruct { |
| 68 | nullable vendor_id mfgCode = 0; |
| 69 | enum8 namespaceID = 1; |
| 70 | enum8 tag = 2; |
| 71 | optional nullable char_string label = 3; |
| 72 | } |
| 73 | |
Boris Zbarsky | e4c075f | 2022-09-12 08:23:17 -0400 | [diff] [blame] | 74 | readonly attribute DeviceTypeStruct deviceTypeList[] = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 75 | readonly attribute cluster_id serverList[] = 1; |
| 76 | readonly attribute cluster_id clientList[] = 2; |
| 77 | readonly attribute endpoint_no partsList[] = 3; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 78 | readonly attribute optional SemanticTagStruct tagList[] = 4; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 79 | readonly attribute command_id generatedCommandList[] = 65528; |
| 80 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 81 | readonly attribute event_id eventList[] = 65530; |
| 82 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 83 | readonly attribute bitmap32 featureMap = 65532; |
| 84 | readonly attribute int16u clusterRevision = 65533; |
| 85 | } |
| 86 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 87 | /** The Access Control Cluster exposes a data model view of a |
| 88 | Node's Access Control List (ACL), which codifies the rules used to manage |
| 89 | and enforce Access Control for the Node's endpoints and their associated |
| 90 | cluster instances. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 91 | cluster AccessControl = 31 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 92 | revision 1; // NOTE: Default/not specifically set |
| 93 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 94 | enum AccessControlEntryAuthModeEnum : enum8 { |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 95 | kPASE = 1; |
| 96 | kCASE = 2; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 97 | kGroup = 3; |
| 98 | } |
| 99 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 100 | enum AccessControlEntryPrivilegeEnum : enum8 { |
Boris Zbarsky | 28cb6cc | 2023-01-04 04:46:21 -0500 | [diff] [blame] | 101 | kView = 1; |
| 102 | kProxyView = 2; |
| 103 | kOperate = 3; |
| 104 | kManage = 4; |
| 105 | kAdminister = 5; |
| 106 | } |
| 107 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 108 | enum ChangeTypeEnum : enum8 { |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 109 | kChanged = 0; |
| 110 | kAdded = 1; |
| 111 | kRemoved = 2; |
| 112 | } |
| 113 | |
Boris Zbarsky | f9731a8 | 2023-05-24 15:08:53 -0400 | [diff] [blame] | 114 | struct AccessControlTargetStruct { |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 115 | nullable cluster_id cluster = 0; |
| 116 | nullable endpoint_no endpoint = 1; |
| 117 | nullable devtype_id deviceType = 2; |
| 118 | } |
| 119 | |
Boris Zbarsky | 28cb6cc | 2023-01-04 04:46:21 -0500 | [diff] [blame] | 120 | fabric_scoped struct AccessControlEntryStruct { |
| 121 | fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; |
| 122 | fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; |
Andrei Litvin | d38820d | 2022-10-04 09:25:26 -0400 | [diff] [blame] | 123 | nullable fabric_sensitive int64u subjects[] = 3; |
Boris Zbarsky | f9731a8 | 2023-05-24 15:08:53 -0400 | [diff] [blame] | 124 | nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; |
Song GUO | cd08938 | 2022-03-17 13:31:51 +0800 | [diff] [blame] | 125 | fabric_idx fabricIndex = 254; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 126 | } |
| 127 | |
Boris Zbarsky | 28cb6cc | 2023-01-04 04:46:21 -0500 | [diff] [blame] | 128 | fabric_scoped struct AccessControlExtensionStruct { |
Andrei Litvin | d38820d | 2022-10-04 09:25:26 -0400 | [diff] [blame] | 129 | fabric_sensitive octet_string<128> data = 1; |
Song GUO | cd08938 | 2022-03-17 13:31:51 +0800 | [diff] [blame] | 130 | fabric_idx fabricIndex = 254; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 131 | } |
| 132 | |
Andrei Litvin | d38820d | 2022-10-04 09:25:26 -0400 | [diff] [blame] | 133 | fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 { |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 134 | nullable node_id adminNodeID = 1; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 135 | nullable int16u adminPasscodeID = 2; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 136 | ChangeTypeEnum changeType = 3; |
Boris Zbarsky | 28cb6cc | 2023-01-04 04:46:21 -0500 | [diff] [blame] | 137 | nullable AccessControlEntryStruct latestValue = 4; |
Boris Zbarsky | a7ad1d8 | 2022-07-26 14:52:04 -0400 | [diff] [blame] | 138 | fabric_idx fabricIndex = 254; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 139 | } |
| 140 | |
Andrei Litvin | d38820d | 2022-10-04 09:25:26 -0400 | [diff] [blame] | 141 | fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 { |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 142 | nullable node_id adminNodeID = 1; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 143 | nullable int16u adminPasscodeID = 2; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 144 | ChangeTypeEnum changeType = 3; |
Boris Zbarsky | 28cb6cc | 2023-01-04 04:46:21 -0500 | [diff] [blame] | 145 | nullable AccessControlExtensionStruct latestValue = 4; |
Boris Zbarsky | a7ad1d8 | 2022-07-26 14:52:04 -0400 | [diff] [blame] | 146 | fabric_idx fabricIndex = 254; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 147 | } |
| 148 | |
Boris Zbarsky | 28cb6cc | 2023-01-04 04:46:21 -0500 | [diff] [blame] | 149 | attribute access(read: administer, write: administer) AccessControlEntryStruct acl[] = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 150 | attribute access(read: administer, write: administer) optional AccessControlExtensionStruct extension[] = 1; |
Tennessee Carmel-Veilleux | 184bda1 | 2022-04-13 10:52:31 -0400 | [diff] [blame] | 151 | readonly attribute int16u subjectsPerAccessControlEntry = 2; |
| 152 | readonly attribute int16u targetsPerAccessControlEntry = 3; |
| 153 | readonly attribute int16u accessControlEntriesPerFabric = 4; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 154 | readonly attribute command_id generatedCommandList[] = 65528; |
| 155 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 156 | readonly attribute event_id eventList[] = 65530; |
Andrei Litvin | 306e8a4 | 2022-04-07 05:42:07 -1000 | [diff] [blame] | 157 | readonly attribute attrib_id attributeList[] = 65531; |
tehampson | 2db812e | 2022-05-23 15:24:29 -0400 | [diff] [blame] | 158 | readonly attribute bitmap32 featureMap = 65532; |
Andrei Litvin | 306e8a4 | 2022-04-07 05:42:07 -1000 | [diff] [blame] | 159 | readonly attribute int16u clusterRevision = 65533; |
Harsha Rajendran | d02ff67 | 2022-02-03 09:26:36 -0500 | [diff] [blame] | 160 | } |
| 161 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 162 | /** This cluster provides attributes and events for determining basic information about Nodes, which supports both |
| 163 | Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, |
| 164 | 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] | 165 | cluster BasicInformation = 40 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 166 | revision 3; |
| 167 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 168 | enum ColorEnum : enum8 { |
Boris Zbarsky | ab59adc | 2023-05-02 10:45:44 -0400 | [diff] [blame] | 169 | kBlack = 0; |
| 170 | kNavy = 1; |
| 171 | kGreen = 2; |
| 172 | kTeal = 3; |
| 173 | kMaroon = 4; |
| 174 | kPurple = 5; |
| 175 | kOlive = 6; |
| 176 | kGray = 7; |
| 177 | kBlue = 8; |
| 178 | kLime = 9; |
| 179 | kAqua = 10; |
| 180 | kRed = 11; |
| 181 | kFuchsia = 12; |
| 182 | kYellow = 13; |
| 183 | kWhite = 14; |
| 184 | kNickel = 15; |
| 185 | kChrome = 16; |
| 186 | kBrass = 17; |
| 187 | kCopper = 18; |
| 188 | kSilver = 19; |
| 189 | kGold = 20; |
| 190 | } |
| 191 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 192 | enum ProductFinishEnum : enum8 { |
Boris Zbarsky | ab59adc | 2023-05-02 10:45:44 -0400 | [diff] [blame] | 193 | kOther = 0; |
| 194 | kMatte = 1; |
| 195 | kSatin = 2; |
| 196 | kPolished = 3; |
| 197 | kRugged = 4; |
| 198 | kFabric = 5; |
| 199 | } |
| 200 | |
Tennessee Carmel-Veilleux | 184bda1 | 2022-04-13 10:52:31 -0400 | [diff] [blame] | 201 | struct CapabilityMinimaStruct { |
| 202 | int16u caseSessionsPerFabric = 0; |
| 203 | int16u subscriptionsPerFabric = 1; |
| 204 | } |
| 205 | |
Boris Zbarsky | ab59adc | 2023-05-02 10:45:44 -0400 | [diff] [blame] | 206 | struct ProductAppearanceStruct { |
| 207 | ProductFinishEnum finish = 0; |
| 208 | nullable ColorEnum primaryColor = 1; |
| 209 | } |
| 210 | |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 211 | critical event StartUp = 0 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 212 | int32u softwareVersion = 0; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 213 | } |
| 214 | |
| 215 | critical event ShutDown = 1 { |
| 216 | } |
| 217 | |
| 218 | info event Leave = 2 { |
Boris Zbarsky | 5022eb1 | 2022-07-28 10:53:33 -0400 | [diff] [blame] | 219 | fabric_idx fabricIndex = 0; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 220 | } |
| 221 | |
| 222 | info event ReachableChanged = 3 { |
| 223 | boolean reachableNewValue = 0; |
| 224 | } |
| 225 | |
Leonard Zgrablic | 9f16e9a | 2022-02-01 12:43:34 -0500 | [diff] [blame] | 226 | readonly attribute int16u dataModelRevision = 0; |
Andrei Litvin | 2f1301b | 2022-01-20 22:16:11 -0500 | [diff] [blame] | 227 | readonly attribute char_string<32> vendorName = 1; |
Andrei Litvin | d5e7431 | 2022-01-19 17:06:40 -0500 | [diff] [blame] | 228 | readonly attribute vendor_id vendorID = 2; |
Andrei Litvin | 2f1301b | 2022-01-20 22:16:11 -0500 | [diff] [blame] | 229 | readonly attribute char_string<32> productName = 3; |
Andrei Litvin | d5e7431 | 2022-01-19 17:06:40 -0500 | [diff] [blame] | 230 | readonly attribute int16u productID = 4; |
Andrei Litvin | ecc92db | 2022-04-13 11:11:56 -1000 | [diff] [blame] | 231 | attribute access(write: manage) char_string<32> nodeLabel = 5; |
| 232 | attribute access(write: administer) char_string<2> location = 6; |
Andrei Litvin | d5e7431 | 2022-01-19 17:06:40 -0500 | [diff] [blame] | 233 | readonly attribute int16u hardwareVersion = 7; |
Andrei Litvin | 2f1301b | 2022-01-20 22:16:11 -0500 | [diff] [blame] | 234 | readonly attribute char_string<64> hardwareVersionString = 8; |
Andrei Litvin | d5e7431 | 2022-01-19 17:06:40 -0500 | [diff] [blame] | 235 | readonly attribute int32u softwareVersion = 9; |
Andrei Litvin | 2f1301b | 2022-01-20 22:16:11 -0500 | [diff] [blame] | 236 | readonly attribute char_string<64> softwareVersionString = 10; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 237 | readonly attribute optional char_string<16> manufacturingDate = 11; |
| 238 | readonly attribute optional char_string<32> partNumber = 12; |
| 239 | readonly attribute optional long_char_string<256> productURL = 13; |
| 240 | readonly attribute optional char_string<64> productLabel = 14; |
| 241 | readonly attribute optional char_string<32> serialNumber = 15; |
| 242 | attribute access(write: manage) optional boolean localConfigDisabled = 16; |
| 243 | readonly attribute optional boolean reachable = 17; |
| 244 | readonly attribute optional char_string<32> uniqueID = 18; |
Tennessee Carmel-Veilleux | 184bda1 | 2022-04-13 10:52:31 -0400 | [diff] [blame] | 245 | readonly attribute CapabilityMinimaStruct capabilityMinima = 19; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 246 | readonly attribute optional ProductAppearanceStruct productAppearance = 20; |
Terence Hampson | 9969d44 | 2023-11-16 11:30:48 -0500 | [diff] [blame] | 247 | readonly attribute int32u specificationVersion = 21; |
| 248 | readonly attribute int16u maxPathsPerInvoke = 22; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 249 | readonly attribute command_id generatedCommandList[] = 65528; |
| 250 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 251 | readonly attribute event_id eventList[] = 65530; |
| 252 | readonly attribute attrib_id attributeList[] = 65531; |
tehampson | 2db812e | 2022-05-23 15:24:29 -0400 | [diff] [blame] | 253 | readonly attribute bitmap32 featureMap = 65532; |
Andrei Litvin | 306e8a4 | 2022-04-07 05:42:07 -1000 | [diff] [blame] | 254 | readonly attribute int16u clusterRevision = 65533; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 255 | |
| 256 | command MfgSpecificPing(): DefaultSuccess = 0; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 257 | } |
| 258 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 259 | /** Provides an interface for providing OTA software updates */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 260 | cluster OtaSoftwareUpdateProvider = 41 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 261 | revision 1; // NOTE: Default/not specifically set |
| 262 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 263 | enum ApplyUpdateActionEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 264 | kProceed = 0; |
| 265 | kAwaitNextAction = 1; |
| 266 | kDiscontinue = 2; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 267 | } |
| 268 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 269 | enum DownloadProtocolEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 270 | kBDXSynchronous = 0; |
| 271 | kBDXAsynchronous = 1; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 272 | kHTTPS = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 273 | kVendorSpecific = 3; |
| 274 | } |
| 275 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 276 | enum StatusEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 277 | kUpdateAvailable = 0; |
| 278 | kBusy = 1; |
| 279 | kNotAvailable = 2; |
| 280 | kDownloadProtocolNotSupported = 3; |
| 281 | } |
| 282 | |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 283 | readonly attribute command_id generatedCommandList[] = 65528; |
| 284 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 285 | readonly attribute event_id eventList[] = 65530; |
| 286 | readonly attribute attrib_id attributeList[] = 65531; |
| 287 | readonly attribute bitmap32 featureMap = 65532; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 288 | readonly attribute int16u clusterRevision = 65533; |
| 289 | |
| 290 | request struct QueryImageRequest { |
Boris Zbarsky | 458bbbf | 2023-01-03 13:11:18 -0500 | [diff] [blame] | 291 | vendor_id vendorID = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 292 | int16u productID = 1; |
| 293 | int32u softwareVersion = 2; |
Boris Zbarsky | 71317fa | 2023-10-11 15:56:01 -0400 | [diff] [blame] | 294 | DownloadProtocolEnum protocolsSupported[] = 3; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 295 | optional int16u hardwareVersion = 4; |
| 296 | optional char_string<2> location = 5; |
| 297 | optional boolean requestorCanConsent = 6; |
| 298 | optional octet_string<512> metadataForProvider = 7; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 299 | } |
| 300 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 301 | response struct QueryImageResponse = 1 { |
Boris Zbarsky | 71317fa | 2023-10-11 15:56:01 -0400 | [diff] [blame] | 302 | StatusEnum status = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 303 | optional int32u delayedActionTime = 1; |
| 304 | optional char_string<256> imageURI = 2; |
| 305 | optional int32u softwareVersion = 3; |
| 306 | optional char_string<64> softwareVersionString = 4; |
| 307 | optional octet_string<32> updateToken = 5; |
| 308 | optional boolean userConsentNeeded = 6; |
| 309 | optional octet_string<512> metadataForRequestor = 7; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 310 | } |
| 311 | |
Andrei Litvin | 040c65d | 2023-03-28 16:23:26 -0400 | [diff] [blame] | 312 | request struct ApplyUpdateRequestRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 313 | octet_string<32> updateToken = 0; |
| 314 | int32u newVersion = 1; |
Andrei Litvin | 040c65d | 2023-03-28 16:23:26 -0400 | [diff] [blame] | 315 | } |
| 316 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 317 | response struct ApplyUpdateResponse = 3 { |
Boris Zbarsky | 71317fa | 2023-10-11 15:56:01 -0400 | [diff] [blame] | 318 | ApplyUpdateActionEnum action = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 319 | int32u delayedActionTime = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 320 | } |
| 321 | |
Andrei Litvin | 040c65d | 2023-03-28 16:23:26 -0400 | [diff] [blame] | 322 | request struct NotifyUpdateAppliedRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 323 | octet_string<32> updateToken = 0; |
| 324 | int32u softwareVersion = 1; |
Andrei Litvin | 040c65d | 2023-03-28 16:23:26 -0400 | [diff] [blame] | 325 | } |
| 326 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 327 | /** Determine availability of a new Software Image */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 328 | command QueryImage(QueryImageRequest): QueryImageResponse = 0; |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 329 | /** Determine next action to take for a downloaded Software Image */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 330 | command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 331 | /** Notify OTA Provider that an update was applied */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 332 | command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; |
| 333 | } |
| 334 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 335 | /** Provides an interface for downloading and applying OTA software updates */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 336 | cluster OtaSoftwareUpdateRequestor = 42 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 337 | revision 1; // NOTE: Default/not specifically set |
| 338 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 339 | enum AnnouncementReasonEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 340 | kSimpleAnnouncement = 0; |
| 341 | kUpdateAvailable = 1; |
| 342 | kUrgentUpdateAvailable = 2; |
| 343 | } |
| 344 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 345 | enum ChangeReasonEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 346 | kUnknown = 0; |
| 347 | kSuccess = 1; |
| 348 | kFailure = 2; |
| 349 | kTimeOut = 3; |
| 350 | kDelayByProvider = 4; |
| 351 | } |
| 352 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 353 | enum UpdateStateEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 354 | kUnknown = 0; |
| 355 | kIdle = 1; |
| 356 | kQuerying = 2; |
| 357 | kDelayedOnQuery = 3; |
| 358 | kDownloading = 4; |
| 359 | kApplying = 5; |
| 360 | kDelayedOnApply = 6; |
| 361 | kRollingBack = 7; |
| 362 | kDelayedOnUserConsent = 8; |
| 363 | } |
| 364 | |
Andrei Litvin | d38820d | 2022-10-04 09:25:26 -0400 | [diff] [blame] | 365 | fabric_scoped struct ProviderLocation { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 366 | node_id providerNodeID = 1; |
| 367 | endpoint_no endpoint = 2; |
| 368 | fabric_idx fabricIndex = 254; |
| 369 | } |
| 370 | |
| 371 | info event StateTransition = 0 { |
Boris Zbarsky | 71317fa | 2023-10-11 15:56:01 -0400 | [diff] [blame] | 372 | UpdateStateEnum previousState = 0; |
| 373 | UpdateStateEnum newState = 1; |
| 374 | ChangeReasonEnum reason = 2; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 375 | nullable int32u targetSoftwareVersion = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 376 | } |
| 377 | |
| 378 | critical event VersionApplied = 1 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 379 | int32u softwareVersion = 0; |
| 380 | int16u productID = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 381 | } |
| 382 | |
| 383 | info event DownloadError = 2 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 384 | int32u softwareVersion = 0; |
| 385 | int64u bytesDownloaded = 1; |
| 386 | nullable int8u progressPercent = 2; |
| 387 | nullable int64s platformCode = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 388 | } |
| 389 | |
C Freeman | d5f6805 | 2023-12-07 13:17:36 -0500 | [diff] [blame] | 390 | attribute access(write: administer) ProviderLocation defaultOTAProviders[] = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 391 | readonly attribute boolean updatePossible = 1; |
Boris Zbarsky | 71317fa | 2023-10-11 15:56:01 -0400 | [diff] [blame] | 392 | readonly attribute UpdateStateEnum updateState = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 393 | readonly attribute nullable int8u updateStateProgress = 3; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 394 | readonly attribute command_id generatedCommandList[] = 65528; |
| 395 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 396 | readonly attribute event_id eventList[] = 65530; |
| 397 | readonly attribute attrib_id attributeList[] = 65531; |
tehampson | 2db812e | 2022-05-23 15:24:29 -0400 | [diff] [blame] | 398 | readonly attribute bitmap32 featureMap = 65532; |
Andrei Litvin | 306e8a4 | 2022-04-07 05:42:07 -1000 | [diff] [blame] | 399 | readonly attribute int16u clusterRevision = 65533; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 400 | |
Boris Zbarsky | 458bbbf | 2023-01-03 13:11:18 -0500 | [diff] [blame] | 401 | request struct AnnounceOTAProviderRequest { |
| 402 | node_id providerNodeID = 0; |
| 403 | vendor_id vendorID = 1; |
Boris Zbarsky | 71317fa | 2023-10-11 15:56:01 -0400 | [diff] [blame] | 404 | AnnouncementReasonEnum announcementReason = 2; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 405 | optional octet_string<512> metadataForNode = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 406 | endpoint_no endpoint = 4; |
| 407 | } |
| 408 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 409 | /** Announce the presence of an OTA Provider */ |
Boris Zbarsky | 458bbbf | 2023-01-03 13:11:18 -0500 | [diff] [blame] | 410 | command AnnounceOTAProvider(AnnounceOTAProviderRequest): DefaultSuccess = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 411 | } |
| 412 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 413 | /** Nodes should be expected to be deployed to any and all regions of the world. These global regions |
| 414 | may have differing common languages, units of measurements, and numerical formatting |
| 415 | standards. As such, Nodes that visually or audibly convey information need a mechanism by which |
| 416 | 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] | 417 | cluster LocalizationConfiguration = 43 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 418 | revision 1; // NOTE: Default/not specifically set |
| 419 | |
Andrei Litvin | dd920f2 | 2023-10-30 10:14:57 -0400 | [diff] [blame] | 420 | attribute access(write: manage) char_string<35> activeLocale = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 421 | readonly attribute char_string supportedLocales[] = 1; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 422 | readonly attribute command_id generatedCommandList[] = 65528; |
| 423 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 424 | readonly attribute event_id eventList[] = 65530; |
| 425 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 426 | readonly attribute bitmap32 featureMap = 65532; |
| 427 | readonly attribute int16u clusterRevision = 65533; |
| 428 | } |
| 429 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 430 | /** Nodes should be expected to be deployed to any and all regions of the world. These global regions |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 431 | may have differing preferences for the units in which values are conveyed in communication to a |
| 432 | user. As such, Nodes that visually or audibly convey measurable values to the user need a |
| 433 | mechanism by which they can be configured to use a user’s preferred unit. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 434 | cluster UnitLocalization = 45 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 435 | revision 1; |
| 436 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 437 | enum TempUnitEnum : enum8 { |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 438 | kFahrenheit = 0; |
| 439 | kCelsius = 1; |
| 440 | kKelvin = 2; |
| 441 | } |
| 442 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 443 | bitmap Feature : bitmap32 { |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 444 | kTemperatureUnit = 0x1; |
| 445 | } |
| 446 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 447 | attribute access(write: manage) optional TempUnitEnum temperatureUnit = 0; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 448 | readonly attribute command_id generatedCommandList[] = 65528; |
| 449 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 450 | readonly attribute event_id eventList[] = 65530; |
| 451 | readonly attribute attrib_id attributeList[] = 65531; |
| 452 | readonly attribute bitmap32 featureMap = 65532; |
| 453 | readonly attribute int16u clusterRevision = 65533; |
| 454 | } |
| 455 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 456 | /** This cluster is used to describe the configuration and capabilities of a physical power source that provides power to the Node. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 457 | cluster PowerSource = 47 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 458 | revision 1; // NOTE: Default/not specifically set |
| 459 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 460 | enum BatApprovedChemistryEnum : enum16 { |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 461 | kUnspecified = 0; |
| 462 | kAlkaline = 1; |
| 463 | kLithiumCarbonFluoride = 2; |
| 464 | kLithiumChromiumOxide = 3; |
| 465 | kLithiumCopperOxide = 4; |
| 466 | kLithiumIronDisulfide = 5; |
| 467 | kLithiumManganeseDioxide = 6; |
| 468 | kLithiumThionylChloride = 7; |
| 469 | kMagnesium = 8; |
| 470 | kMercuryOxide = 9; |
| 471 | kNickelOxyhydride = 10; |
| 472 | kSilverOxide = 11; |
| 473 | kZincAir = 12; |
| 474 | kZincCarbon = 13; |
| 475 | kZincChloride = 14; |
| 476 | kZincManganeseDioxide = 15; |
| 477 | kLeadAcid = 16; |
| 478 | kLithiumCobaltOxide = 17; |
| 479 | kLithiumIon = 18; |
| 480 | kLithiumIonPolymer = 19; |
| 481 | kLithiumIronPhosphate = 20; |
| 482 | kLithiumSulfur = 21; |
| 483 | kLithiumTitanate = 22; |
| 484 | kNickelCadmium = 23; |
| 485 | kNickelHydrogen = 24; |
| 486 | kNickelIron = 25; |
| 487 | kNickelMetalHydride = 26; |
| 488 | kNickelZinc = 27; |
| 489 | kSilverZinc = 28; |
| 490 | kSodiumIon = 29; |
| 491 | kSodiumSulfur = 30; |
| 492 | kZincBromide = 31; |
| 493 | kZincCerium = 32; |
| 494 | } |
| 495 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 496 | enum BatChargeFaultEnum : enum8 { |
Martin Turon | 487c8e1 | 2023-01-26 22:35:59 -0800 | [diff] [blame] | 497 | kUnspecified = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 498 | kAmbientTooHot = 1; |
| 499 | kAmbientTooCold = 2; |
| 500 | kBatteryTooHot = 3; |
| 501 | kBatteryTooCold = 4; |
| 502 | kBatteryAbsent = 5; |
| 503 | kBatteryOverVoltage = 6; |
| 504 | kBatteryUnderVoltage = 7; |
| 505 | kChargerOverVoltage = 8; |
| 506 | kChargerUnderVoltage = 9; |
| 507 | kSafetyTimeout = 10; |
| 508 | } |
| 509 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 510 | enum BatChargeLevelEnum : enum8 { |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 511 | kOK = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 512 | kWarning = 1; |
| 513 | kCritical = 2; |
| 514 | } |
| 515 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 516 | enum BatChargeStateEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 517 | kUnknown = 0; |
| 518 | kIsCharging = 1; |
| 519 | kIsAtFullCharge = 2; |
| 520 | kIsNotCharging = 3; |
| 521 | } |
| 522 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 523 | enum BatCommonDesignationEnum : enum16 { |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 524 | kUnspecified = 0; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 525 | kAAA = 1; |
| 526 | kAA = 2; |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 527 | kC = 3; |
| 528 | kD = 4; |
| 529 | k4v5 = 5; |
| 530 | k6v0 = 6; |
| 531 | k9v0 = 7; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 532 | k12AA = 8; |
| 533 | kAAAA = 9; |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 534 | kA = 10; |
| 535 | kB = 11; |
| 536 | kF = 12; |
| 537 | kN = 13; |
| 538 | kNo6 = 14; |
| 539 | kSubC = 15; |
| 540 | kA23 = 16; |
| 541 | kA27 = 17; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 542 | kBA5800 = 18; |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 543 | kDuplex = 19; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 544 | k4SR44 = 20; |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 545 | k523 = 21; |
| 546 | k531 = 22; |
| 547 | k15v0 = 23; |
| 548 | k22v5 = 24; |
| 549 | k30v0 = 25; |
| 550 | k45v0 = 26; |
| 551 | k67v5 = 27; |
| 552 | kJ = 28; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 553 | kCR123A = 29; |
| 554 | kCR2 = 30; |
| 555 | k2CR5 = 31; |
| 556 | kCRP2 = 32; |
| 557 | kCRV3 = 33; |
| 558 | kSR41 = 34; |
| 559 | kSR43 = 35; |
| 560 | kSR44 = 36; |
| 561 | kSR45 = 37; |
| 562 | kSR48 = 38; |
| 563 | kSR54 = 39; |
| 564 | kSR55 = 40; |
| 565 | kSR57 = 41; |
| 566 | kSR58 = 42; |
| 567 | kSR59 = 43; |
| 568 | kSR60 = 44; |
| 569 | kSR63 = 45; |
| 570 | kSR64 = 46; |
| 571 | kSR65 = 47; |
| 572 | kSR66 = 48; |
| 573 | kSR67 = 49; |
| 574 | kSR68 = 50; |
| 575 | kSR69 = 51; |
| 576 | kSR516 = 52; |
| 577 | kSR731 = 53; |
| 578 | kSR712 = 54; |
| 579 | kLR932 = 55; |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 580 | kA5 = 56; |
| 581 | kA10 = 57; |
| 582 | kA13 = 58; |
| 583 | kA312 = 59; |
| 584 | kA675 = 60; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 585 | kAC41E = 61; |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 586 | k10180 = 62; |
| 587 | k10280 = 63; |
| 588 | k10440 = 64; |
| 589 | k14250 = 65; |
| 590 | k14430 = 66; |
| 591 | k14500 = 67; |
| 592 | k14650 = 68; |
| 593 | k15270 = 69; |
| 594 | k16340 = 70; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 595 | kRCR123A = 71; |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 596 | k17500 = 72; |
| 597 | k17670 = 73; |
| 598 | k18350 = 74; |
| 599 | k18500 = 75; |
| 600 | k18650 = 76; |
| 601 | k19670 = 77; |
| 602 | k25500 = 78; |
| 603 | k26650 = 79; |
| 604 | k32600 = 80; |
| 605 | } |
| 606 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 607 | enum BatFaultEnum : enum8 { |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 608 | kUnspecified = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 609 | kOverTemp = 1; |
| 610 | kUnderTemp = 2; |
| 611 | } |
| 612 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 613 | enum BatReplaceabilityEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 614 | kUnspecified = 0; |
| 615 | kNotReplaceable = 1; |
| 616 | kUserReplaceable = 2; |
| 617 | kFactoryReplaceable = 3; |
| 618 | } |
| 619 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 620 | enum PowerSourceStatusEnum : enum8 { |
Martin Turon | 487c8e1 | 2023-01-26 22:35:59 -0800 | [diff] [blame] | 621 | kUnspecified = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 622 | kActive = 1; |
| 623 | kStandby = 2; |
| 624 | kUnavailable = 3; |
| 625 | } |
| 626 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 627 | enum WiredCurrentTypeEnum : enum8 { |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 628 | kAC = 0; |
| 629 | kDC = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 630 | } |
| 631 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 632 | enum WiredFaultEnum : enum8 { |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 633 | kUnspecified = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 634 | kOverVoltage = 1; |
| 635 | kUnderVoltage = 2; |
| 636 | } |
| 637 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 638 | bitmap Feature : bitmap32 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 639 | kWired = 0x1; |
| 640 | kBattery = 0x2; |
| 641 | kRechargeable = 0x4; |
| 642 | kReplaceable = 0x8; |
| 643 | } |
| 644 | |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 645 | struct BatChargeFaultChangeType { |
| 646 | BatChargeFaultEnum current[] = 0; |
| 647 | BatChargeFaultEnum previous[] = 1; |
| 648 | } |
| 649 | |
| 650 | struct BatFaultChangeType { |
| 651 | BatFaultEnum current[] = 0; |
| 652 | BatFaultEnum previous[] = 1; |
| 653 | } |
| 654 | |
| 655 | struct WiredFaultChangeType { |
| 656 | WiredFaultEnum current[] = 0; |
| 657 | WiredFaultEnum previous[] = 1; |
| 658 | } |
| 659 | |
Boris Zbarsky | 4e63e88 | 2023-01-04 12:03:17 -0500 | [diff] [blame] | 660 | info event WiredFaultChange = 0 { |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 661 | WiredFaultEnum current[] = 0; |
| 662 | WiredFaultEnum previous[] = 1; |
Boris Zbarsky | 4e63e88 | 2023-01-04 12:03:17 -0500 | [diff] [blame] | 663 | } |
| 664 | |
| 665 | info event BatFaultChange = 1 { |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 666 | BatFaultEnum current[] = 0; |
| 667 | BatFaultEnum previous[] = 1; |
Boris Zbarsky | 4e63e88 | 2023-01-04 12:03:17 -0500 | [diff] [blame] | 668 | } |
| 669 | |
| 670 | info event BatChargeFaultChange = 2 { |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 671 | BatChargeFaultEnum current[] = 0; |
| 672 | BatChargeFaultEnum previous[] = 1; |
Boris Zbarsky | 4e63e88 | 2023-01-04 12:03:17 -0500 | [diff] [blame] | 673 | } |
| 674 | |
Boris Zbarsky | 7775bec | 2023-02-23 16:34:24 -0500 | [diff] [blame] | 675 | readonly attribute PowerSourceStatusEnum status = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 676 | readonly attribute int8u order = 1; |
| 677 | readonly attribute char_string<60> description = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 678 | readonly attribute optional nullable int32u wiredAssessedInputVoltage = 3; |
| 679 | readonly attribute optional nullable int16u wiredAssessedInputFrequency = 4; |
| 680 | readonly attribute optional WiredCurrentTypeEnum wiredCurrentType = 5; |
| 681 | readonly attribute optional nullable int32u wiredAssessedCurrent = 6; |
| 682 | readonly attribute optional int32u wiredNominalVoltage = 7; |
| 683 | readonly attribute optional int32u wiredMaximumCurrent = 8; |
| 684 | readonly attribute optional boolean wiredPresent = 9; |
| 685 | readonly attribute optional WiredFaultEnum activeWiredFaults[] = 10; |
| 686 | readonly attribute optional nullable int32u batVoltage = 11; |
| 687 | readonly attribute optional nullable int8u batPercentRemaining = 12; |
| 688 | readonly attribute optional nullable int32u batTimeRemaining = 13; |
| 689 | readonly attribute optional BatChargeLevelEnum batChargeLevel = 14; |
| 690 | readonly attribute optional boolean batReplacementNeeded = 15; |
| 691 | readonly attribute optional BatReplaceabilityEnum batReplaceability = 16; |
| 692 | readonly attribute optional boolean batPresent = 17; |
| 693 | readonly attribute optional BatFaultEnum activeBatFaults[] = 18; |
| 694 | readonly attribute optional char_string<60> batReplacementDescription = 19; |
| 695 | readonly attribute optional BatCommonDesignationEnum batCommonDesignation = 20; |
| 696 | readonly attribute optional char_string<20> batANSIDesignation = 21; |
| 697 | readonly attribute optional char_string<20> batIECDesignation = 22; |
| 698 | readonly attribute optional BatApprovedChemistryEnum batApprovedChemistry = 23; |
| 699 | readonly attribute optional int32u batCapacity = 24; |
| 700 | readonly attribute optional int8u batQuantity = 25; |
| 701 | readonly attribute optional BatChargeStateEnum batChargeState = 26; |
| 702 | readonly attribute optional nullable int32u batTimeToFullCharge = 27; |
| 703 | readonly attribute optional boolean batFunctionalWhileCharging = 28; |
| 704 | readonly attribute optional nullable int32u batChargingCurrent = 29; |
| 705 | readonly attribute optional BatChargeFaultEnum activeBatChargeFaults[] = 30; |
C Freeman | 529d74b | 2023-07-20 02:27:29 -0400 | [diff] [blame] | 706 | readonly attribute endpoint_no endpointList[] = 31; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 707 | readonly attribute command_id generatedCommandList[] = 65528; |
| 708 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 709 | readonly attribute event_id eventList[] = 65530; |
| 710 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 711 | readonly attribute bitmap32 featureMap = 65532; |
| 712 | readonly attribute int16u clusterRevision = 65533; |
| 713 | } |
| 714 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 715 | /** This cluster is used to manage global aspects of the Commissioning flow. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 716 | cluster GeneralCommissioning = 48 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 717 | revision 1; // NOTE: Default/not specifically set |
| 718 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 719 | enum CommissioningErrorEnum : enum8 { |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 720 | kOK = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 721 | kValueOutsideRange = 1; |
| 722 | kInvalidAuthentication = 2; |
| 723 | kNoFailSafe = 3; |
| 724 | kBusyWithOtherAdmin = 4; |
| 725 | } |
| 726 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 727 | enum RegulatoryLocationTypeEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 728 | kIndoor = 0; |
| 729 | kOutdoor = 1; |
| 730 | kIndoorOutdoor = 2; |
| 731 | } |
| 732 | |
| 733 | struct BasicCommissioningInfo { |
| 734 | int16u failSafeExpiryLengthSeconds = 0; |
| 735 | int16u maxCumulativeFailsafeSeconds = 1; |
| 736 | } |
| 737 | |
| 738 | attribute access(write: administer) int64u breadcrumb = 0; |
| 739 | readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; |
Boris Zbarsky | 9876878 | 2023-05-23 12:01:23 -0400 | [diff] [blame] | 740 | readonly attribute RegulatoryLocationTypeEnum regulatoryConfig = 2; |
| 741 | readonly attribute RegulatoryLocationTypeEnum locationCapability = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 742 | readonly attribute boolean supportsConcurrentConnection = 4; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 743 | readonly attribute command_id generatedCommandList[] = 65528; |
| 744 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 745 | readonly attribute event_id eventList[] = 65530; |
| 746 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 747 | readonly attribute bitmap32 featureMap = 65532; |
| 748 | readonly attribute int16u clusterRevision = 65533; |
| 749 | |
| 750 | request struct ArmFailSafeRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 751 | int16u expiryLengthSeconds = 0; |
| 752 | int64u breadcrumb = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 753 | } |
| 754 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 755 | response struct ArmFailSafeResponse = 1 { |
| 756 | CommissioningErrorEnum errorCode = 0; |
| 757 | char_string<128> debugText = 1; |
| 758 | } |
| 759 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 760 | request struct SetRegulatoryConfigRequest { |
Boris Zbarsky | 9876878 | 2023-05-23 12:01:23 -0400 | [diff] [blame] | 761 | RegulatoryLocationTypeEnum newRegulatoryConfig = 0; |
Andrei Litvin | d47aeb4 | 2023-11-15 06:16:41 -0500 | [diff] [blame] | 762 | char_string<2> countryCode = 1; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 763 | int64u breadcrumb = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 764 | } |
| 765 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 766 | response struct SetRegulatoryConfigResponse = 3 { |
Boris Zbarsky | 9876878 | 2023-05-23 12:01:23 -0400 | [diff] [blame] | 767 | CommissioningErrorEnum errorCode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 768 | char_string debugText = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 769 | } |
| 770 | |
| 771 | response struct CommissioningCompleteResponse = 5 { |
Boris Zbarsky | 9876878 | 2023-05-23 12:01:23 -0400 | [diff] [blame] | 772 | CommissioningErrorEnum errorCode = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 773 | char_string debugText = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 774 | } |
| 775 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 776 | /** 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] | 777 | command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 778 | /** Set the regulatory configuration to be used during commissioning */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 779 | command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 780 | /** 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] | 781 | fabric command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 782 | } |
| 783 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 784 | /** 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] | 785 | cluster NetworkCommissioning = 49 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 786 | revision 1; // NOTE: Default/not specifically set |
| 787 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 788 | enum NetworkCommissioningStatusEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 789 | kSuccess = 0; |
| 790 | kOutOfRange = 1; |
| 791 | kBoundsExceeded = 2; |
| 792 | kNetworkIDNotFound = 3; |
| 793 | kDuplicateNetworkID = 4; |
| 794 | kNetworkNotFound = 5; |
| 795 | kRegulatoryError = 6; |
| 796 | kAuthFailure = 7; |
| 797 | kUnsupportedSecurity = 8; |
| 798 | kOtherConnectionFailure = 9; |
| 799 | kIPV6Failed = 10; |
| 800 | kIPBindFailed = 11; |
| 801 | kUnknownError = 12; |
| 802 | } |
| 803 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 804 | enum WiFiBandEnum : enum8 { |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 805 | k2G4 = 0; |
| 806 | k3G65 = 1; |
| 807 | k5G = 2; |
| 808 | k6G = 3; |
| 809 | k60G = 4; |
| 810 | k1G = 5; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 811 | } |
| 812 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 813 | bitmap Feature : bitmap32 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 814 | kWiFiNetworkInterface = 0x1; |
| 815 | kThreadNetworkInterface = 0x2; |
| 816 | kEthernetNetworkInterface = 0x4; |
Karsten Sperling | 261b03f | 2023-11-09 06:45:38 +1300 | [diff] [blame] | 817 | kPerDeviceCredentials = 0x8; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 818 | } |
| 819 | |
Tennessee Carmel-Veilleux | 7879111 | 2023-10-24 13:39:10 -0400 | [diff] [blame] | 820 | bitmap ThreadCapabilitiesBitmap : bitmap16 { |
| 821 | kIsBorderRouterCapable = 0x1; |
| 822 | kIsRouterCapable = 0x2; |
| 823 | kIsSleepyEndDeviceCapable = 0x4; |
| 824 | kIsFullThreadDevice = 0x8; |
| 825 | kIsSynchronizedSleepyEndDeviceCapable = 0x10; |
| 826 | } |
| 827 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 828 | bitmap WiFiSecurityBitmap : bitmap8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 829 | kUnencrypted = 0x1; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 830 | kWEP = 0x2; |
| 831 | kWPAPersonal = 0x4; |
| 832 | kWPA2Personal = 0x8; |
| 833 | kWPA3Personal = 0x10; |
Karsten Sperling | 261b03f | 2023-11-09 06:45:38 +1300 | [diff] [blame] | 834 | kWPA3MatterPDC = 0x20; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 835 | } |
| 836 | |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 837 | struct NetworkInfoStruct { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 838 | octet_string<32> networkID = 0; |
| 839 | boolean connected = 1; |
Karsten Sperling | 261b03f | 2023-11-09 06:45:38 +1300 | [diff] [blame] | 840 | optional nullable octet_string<20> networkIdentifier = 2; |
| 841 | optional nullable octet_string<20> clientIdentifier = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 842 | } |
| 843 | |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 844 | struct ThreadInterfaceScanResultStruct { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 845 | int16u panId = 0; |
| 846 | int64u extendedPanId = 1; |
| 847 | char_string<16> networkName = 2; |
| 848 | int16u channel = 3; |
| 849 | int8u version = 4; |
| 850 | octet_string<8> extendedAddress = 5; |
| 851 | int8s rssi = 6; |
| 852 | int8u lqi = 7; |
| 853 | } |
| 854 | |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 855 | struct WiFiInterfaceScanResultStruct { |
| 856 | WiFiSecurityBitmap security = 0; |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 857 | octet_string<32> ssid = 1; |
| 858 | octet_string<6> bssid = 2; |
| 859 | int16u channel = 3; |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 860 | WiFiBandEnum wiFiBand = 4; |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 861 | int8s rssi = 5; |
| 862 | } |
| 863 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 864 | readonly attribute access(read: administer) int8u maxNetworks = 0; |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 865 | readonly attribute access(read: administer) NetworkInfoStruct networks[] = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 866 | readonly attribute optional int8u scanMaxTimeSeconds = 2; |
| 867 | readonly attribute optional int8u connectMaxTimeSeconds = 3; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 868 | attribute access(write: administer) boolean interfaceEnabled = 4; |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 869 | readonly attribute access(read: administer) nullable NetworkCommissioningStatusEnum lastNetworkingStatus = 5; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 870 | readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; |
| 871 | readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 872 | readonly attribute optional WiFiBandEnum supportedWiFiBands[] = 8; |
| 873 | readonly attribute optional ThreadCapabilitiesBitmap supportedThreadFeatures = 9; |
| 874 | readonly attribute optional int16u threadVersion = 10; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 875 | readonly attribute command_id generatedCommandList[] = 65528; |
| 876 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 877 | readonly attribute event_id eventList[] = 65530; |
| 878 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 879 | readonly attribute bitmap32 featureMap = 65532; |
| 880 | readonly attribute int16u clusterRevision = 65533; |
| 881 | |
| 882 | request struct ScanNetworksRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 883 | optional nullable octet_string<32> ssid = 0; |
| 884 | optional int64u breadcrumb = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 885 | } |
| 886 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 887 | response struct ScanNetworksResponse = 1 { |
| 888 | NetworkCommissioningStatusEnum networkingStatus = 0; |
| 889 | optional char_string debugText = 1; |
| 890 | optional WiFiInterfaceScanResultStruct wiFiScanResults[] = 2; |
| 891 | optional ThreadInterfaceScanResultStruct threadScanResults[] = 3; |
| 892 | } |
| 893 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 894 | request struct AddOrUpdateWiFiNetworkRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 895 | octet_string<32> ssid = 0; |
| 896 | octet_string<64> credentials = 1; |
| 897 | optional int64u breadcrumb = 2; |
Karsten Sperling | 261b03f | 2023-11-09 06:45:38 +1300 | [diff] [blame] | 898 | optional octet_string<140> networkIdentity = 3; |
| 899 | optional octet_string<20> clientIdentifier = 4; |
| 900 | optional octet_string<32> possessionNonce = 5; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 901 | } |
| 902 | |
| 903 | request struct AddOrUpdateThreadNetworkRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 904 | octet_string<254> operationalDataset = 0; |
| 905 | optional int64u breadcrumb = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 906 | } |
| 907 | |
| 908 | request struct RemoveNetworkRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 909 | octet_string<32> networkID = 0; |
| 910 | optional int64u breadcrumb = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 911 | } |
| 912 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 913 | response struct NetworkConfigResponse = 5 { |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 914 | NetworkCommissioningStatusEnum networkingStatus = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 915 | optional char_string<512> debugText = 1; |
| 916 | optional int8u networkIndex = 2; |
Karsten Sperling | 261b03f | 2023-11-09 06:45:38 +1300 | [diff] [blame] | 917 | optional octet_string<140> clientIdentity = 3; |
| 918 | optional octet_string<64> possessionSignature = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 919 | } |
| 920 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 921 | request struct ConnectNetworkRequest { |
| 922 | octet_string<32> networkID = 0; |
| 923 | optional int64u breadcrumb = 1; |
| 924 | } |
| 925 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 926 | response struct ConnectNetworkResponse = 7 { |
Boris Zbarsky | 0dc592e | 2023-06-01 15:25:00 -0400 | [diff] [blame] | 927 | NetworkCommissioningStatusEnum networkingStatus = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 928 | optional char_string debugText = 1; |
| 929 | nullable int32s errorValue = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 930 | } |
| 931 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 932 | request struct ReorderNetworkRequest { |
| 933 | octet_string<32> networkID = 0; |
| 934 | int8u networkIndex = 1; |
| 935 | optional int64u breadcrumb = 2; |
| 936 | } |
| 937 | |
| 938 | request struct QueryIdentityRequest { |
Boris Zbarsky | d823ea2 | 2023-11-30 15:08:58 -0500 | [diff] [blame] | 939 | octet_string<20> keyIdentifier = 0; |
| 940 | optional octet_string<32> possessionNonce = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 941 | } |
| 942 | |
| 943 | response struct QueryIdentityResponse = 10 { |
Boris Zbarsky | d823ea2 | 2023-11-30 15:08:58 -0500 | [diff] [blame] | 944 | octet_string<140> identity = 0; |
| 945 | optional octet_string<64> possessionSignature = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 946 | } |
| 947 | |
| 948 | /** Detemine the set of networks the device sees as available. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 949 | command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 950 | /** Add or update the credentials for a given Wi-Fi network. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 951 | command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 952 | /** Add or update the credentials for a given Thread network. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 953 | command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 954 | /** Remove the definition of a given network (including its credentials). */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 955 | command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 956 | /** Connect to the specified network, using previously-defined credentials. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 957 | command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 958 | /** 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] | 959 | command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 960 | /** Retrieve details about and optionally proof of possession of a network client identity. */ |
| 961 | command access(invoke: administer) QueryIdentity(QueryIdentityRequest): QueryIdentityResponse = 9; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 962 | } |
| 963 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 964 | /** 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] | 965 | cluster DiagnosticLogs = 50 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 966 | revision 1; // NOTE: Default/not specifically set |
| 967 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 968 | enum IntentEnum : enum8 { |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 969 | kEndUserSupport = 0; |
| 970 | kNetworkDiag = 1; |
| 971 | kCrashLogs = 2; |
| 972 | } |
| 973 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 974 | enum StatusEnum : enum8 { |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 975 | kSuccess = 0; |
| 976 | kExhausted = 1; |
| 977 | kNoLogs = 2; |
| 978 | kBusy = 3; |
| 979 | kDenied = 4; |
| 980 | } |
| 981 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 982 | enum TransferProtocolEnum : enum8 { |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 983 | kResponsePayload = 0; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 984 | kBDX = 1; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 985 | } |
| 986 | |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 987 | readonly attribute command_id generatedCommandList[] = 65528; |
| 988 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 989 | readonly attribute event_id eventList[] = 65530; |
| 990 | readonly attribute attrib_id attributeList[] = 65531; |
tehampson | 2db812e | 2022-05-23 15:24:29 -0400 | [diff] [blame] | 991 | readonly attribute bitmap32 featureMap = 65532; |
| 992 | readonly attribute int16u clusterRevision = 65533; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 993 | |
| 994 | request struct RetrieveLogsRequestRequest { |
Boris Zbarsky | 60200ca | 2023-02-15 09:38:28 -0500 | [diff] [blame] | 995 | IntentEnum intent = 0; |
| 996 | TransferProtocolEnum requestedProtocol = 1; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 997 | optional char_string<32> transferFileDesignator = 2; |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 998 | } |
| 999 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1000 | response struct RetrieveLogsResponse = 1 { |
| 1001 | StatusEnum status = 0; |
Boris Zbarsky | d823ea2 | 2023-11-30 15:08:58 -0500 | [diff] [blame] | 1002 | long_octet_string logContent = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1003 | optional epoch_us UTCTimeStamp = 2; |
| 1004 | optional systime_us timeSinceBoot = 3; |
| 1005 | } |
| 1006 | |
| 1007 | /** Retrieving diagnostic logs from a Node */ |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 1008 | command RetrieveLogsRequest(RetrieveLogsRequestRequest): RetrieveLogsResponse = 0; |
| 1009 | } |
| 1010 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1011 | /** 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] | 1012 | cluster GeneralDiagnostics = 51 { |
C Freeman | 2980e51 | 2023-12-08 22:10:32 -0500 | [diff] [blame] | 1013 | revision 2; |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1014 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1015 | enum BootReasonEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1016 | kUnspecified = 0; |
| 1017 | kPowerOnReboot = 1; |
| 1018 | kBrownOutReset = 2; |
| 1019 | kSoftwareWatchdogReset = 3; |
| 1020 | kHardwareWatchdogReset = 4; |
| 1021 | kSoftwareUpdateCompleted = 5; |
| 1022 | kSoftwareReset = 6; |
| 1023 | } |
| 1024 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1025 | enum HardwareFaultEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1026 | kUnspecified = 0; |
| 1027 | kRadio = 1; |
| 1028 | kSensor = 2; |
| 1029 | kResettableOverTemp = 3; |
| 1030 | kNonResettableOverTemp = 4; |
| 1031 | kPowerSource = 5; |
| 1032 | kVisualDisplayFault = 6; |
| 1033 | kAudioOutputFault = 7; |
| 1034 | kUserInterfaceFault = 8; |
| 1035 | kNonVolatileMemoryError = 9; |
| 1036 | kTamperDetected = 10; |
| 1037 | } |
| 1038 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1039 | enum InterfaceTypeEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1040 | kUnspecified = 0; |
| 1041 | kWiFi = 1; |
| 1042 | kEthernet = 2; |
| 1043 | kCellular = 3; |
| 1044 | kThread = 4; |
| 1045 | } |
| 1046 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1047 | enum NetworkFaultEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1048 | kUnspecified = 0; |
| 1049 | kHardwareFailure = 1; |
| 1050 | kNetworkJammed = 2; |
| 1051 | kConnectionFailed = 3; |
| 1052 | } |
| 1053 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1054 | enum RadioFaultEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1055 | kUnspecified = 0; |
| 1056 | kWiFiFault = 1; |
| 1057 | kCellularFault = 2; |
| 1058 | kThreadFault = 3; |
| 1059 | kNFCFault = 4; |
| 1060 | kBLEFault = 5; |
| 1061 | kEthernetFault = 6; |
| 1062 | } |
| 1063 | |
Boris Zbarsky | dd6ae93 | 2023-01-09 12:08:17 -0500 | [diff] [blame] | 1064 | struct NetworkInterface { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1065 | char_string<32> name = 0; |
| 1066 | boolean isOperational = 1; |
| 1067 | nullable boolean offPremiseServicesReachableIPv4 = 2; |
| 1068 | nullable boolean offPremiseServicesReachableIPv6 = 3; |
| 1069 | octet_string<8> hardwareAddress = 4; |
| 1070 | octet_string IPv4Addresses[] = 5; |
| 1071 | octet_string IPv6Addresses[] = 6; |
Boris Zbarsky | 1b226d4 | 2023-01-18 23:43:09 -0500 | [diff] [blame] | 1072 | InterfaceTypeEnum type = 7; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1073 | } |
| 1074 | |
| 1075 | critical event HardwareFaultChange = 0 { |
Boris Zbarsky | 1b226d4 | 2023-01-18 23:43:09 -0500 | [diff] [blame] | 1076 | HardwareFaultEnum current[] = 0; |
| 1077 | HardwareFaultEnum previous[] = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1078 | } |
| 1079 | |
| 1080 | critical event RadioFaultChange = 1 { |
Boris Zbarsky | 1b226d4 | 2023-01-18 23:43:09 -0500 | [diff] [blame] | 1081 | RadioFaultEnum current[] = 0; |
| 1082 | RadioFaultEnum previous[] = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1083 | } |
| 1084 | |
| 1085 | critical event NetworkFaultChange = 2 { |
Boris Zbarsky | 1b226d4 | 2023-01-18 23:43:09 -0500 | [diff] [blame] | 1086 | NetworkFaultEnum current[] = 0; |
| 1087 | NetworkFaultEnum previous[] = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1088 | } |
| 1089 | |
| 1090 | critical event BootReason = 3 { |
Boris Zbarsky | dd6ae93 | 2023-01-09 12:08:17 -0500 | [diff] [blame] | 1091 | BootReasonEnum bootReason = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1092 | } |
| 1093 | |
Boris Zbarsky | dd6ae93 | 2023-01-09 12:08:17 -0500 | [diff] [blame] | 1094 | readonly attribute NetworkInterface networkInterfaces[] = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1095 | readonly attribute int16u rebootCount = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1096 | readonly attribute optional int64u upTime = 2; |
| 1097 | readonly attribute optional int32u totalOperationalHours = 3; |
| 1098 | readonly attribute optional BootReasonEnum bootReason = 4; |
| 1099 | readonly attribute optional HardwareFaultEnum activeHardwareFaults[] = 5; |
| 1100 | readonly attribute optional RadioFaultEnum activeRadioFaults[] = 6; |
| 1101 | readonly attribute optional NetworkFaultEnum activeNetworkFaults[] = 7; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1102 | readonly attribute boolean testEventTriggersEnabled = 8; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1103 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1104 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1105 | readonly attribute event_id eventList[] = 65530; |
| 1106 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1107 | readonly attribute bitmap32 featureMap = 65532; |
| 1108 | readonly attribute int16u clusterRevision = 65533; |
| 1109 | |
| 1110 | request struct TestEventTriggerRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1111 | octet_string<16> enableKey = 0; |
| 1112 | int64u eventTrigger = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1113 | } |
| 1114 | |
Tennessee Carmel-Veilleux | d165f62 | 2023-10-31 10:50:04 -0400 | [diff] [blame] | 1115 | response struct TimeSnapshotResponse = 2 { |
Tennessee Carmel-Veilleux | 1f3bcbc | 2023-12-14 16:52:18 -0500 | [diff] [blame] | 1116 | systime_ms systemTimeMs = 0; |
| 1117 | nullable posix_ms posixTimeMs = 1; |
Tennessee Carmel-Veilleux | d165f62 | 2023-10-31 10:50:04 -0400 | [diff] [blame] | 1118 | } |
| 1119 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1120 | /** 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] | 1121 | command access(invoke: manage) TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1122 | /** Take a snapshot of system time and epoch time. */ |
Tennessee Carmel-Veilleux | d165f62 | 2023-10-31 10:50:04 -0400 | [diff] [blame] | 1123 | command TimeSnapshot(): TimeSnapshotResponse = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1124 | } |
| 1125 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1126 | /** 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] | 1127 | cluster SoftwareDiagnostics = 52 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1128 | revision 1; // NOTE: Default/not specifically set |
| 1129 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1130 | bitmap Feature : bitmap32 { |
Andrei Litvin | 89671e8 | 2023-10-29 21:27:57 -0400 | [diff] [blame] | 1131 | kWatermarks = 0x1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1132 | } |
| 1133 | |
Boris Zbarsky | af7b393 | 2023-01-06 12:07:58 -0500 | [diff] [blame] | 1134 | struct ThreadMetricsStruct { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1135 | int64u id = 0; |
| 1136 | optional char_string<8> name = 1; |
| 1137 | optional int32u stackFreeCurrent = 2; |
| 1138 | optional int32u stackFreeMinimum = 3; |
| 1139 | optional int32u stackSize = 4; |
| 1140 | } |
| 1141 | |
| 1142 | info event SoftwareFault = 0 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1143 | int64u id = 0; |
| 1144 | optional char_string name = 1; |
| 1145 | optional octet_string faultRecording = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1146 | } |
| 1147 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1148 | readonly attribute optional ThreadMetricsStruct threadMetrics[] = 0; |
| 1149 | readonly attribute optional int64u currentHeapFree = 1; |
| 1150 | readonly attribute optional int64u currentHeapUsed = 2; |
| 1151 | readonly attribute optional int64u currentHeapHighWatermark = 3; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1152 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1153 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1154 | readonly attribute event_id eventList[] = 65530; |
| 1155 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1156 | readonly attribute bitmap32 featureMap = 65532; |
| 1157 | readonly attribute int16u clusterRevision = 65533; |
| 1158 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1159 | /** 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] | 1160 | command access(invoke: manage) ResetWatermarks(): DefaultSuccess = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1161 | } |
| 1162 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1163 | /** 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] | 1164 | cluster ThreadNetworkDiagnostics = 53 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1165 | revision 1; // NOTE: Default/not specifically set |
| 1166 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1167 | enum ConnectionStatusEnum : enum8 { |
Boris Zbarsky | 6395db6 | 2023-01-06 12:08:22 -0500 | [diff] [blame] | 1168 | kConnected = 0; |
| 1169 | kNotConnected = 1; |
| 1170 | } |
| 1171 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1172 | enum NetworkFaultEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1173 | kUnspecified = 0; |
| 1174 | kLinkDown = 1; |
| 1175 | kHardwareFailure = 2; |
| 1176 | kNetworkJammed = 3; |
| 1177 | } |
| 1178 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1179 | enum RoutingRoleEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1180 | kUnspecified = 0; |
| 1181 | kUnassigned = 1; |
| 1182 | kSleepyEndDevice = 2; |
| 1183 | kEndDevice = 3; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 1184 | kREED = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1185 | kRouter = 5; |
| 1186 | kLeader = 6; |
| 1187 | } |
| 1188 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1189 | bitmap Feature : bitmap32 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1190 | kPacketCounts = 0x1; |
| 1191 | kErrorCounts = 0x2; |
| 1192 | kMLECounts = 0x4; |
| 1193 | kMACCounts = 0x8; |
| 1194 | } |
| 1195 | |
Boris Zbarsky | 5a5d048 | 2023-05-30 08:49:49 -0400 | [diff] [blame] | 1196 | struct NeighborTableStruct { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1197 | int64u extAddress = 0; |
| 1198 | int32u age = 1; |
| 1199 | int16u rloc16 = 2; |
| 1200 | int32u linkFrameCounter = 3; |
| 1201 | int32u mleFrameCounter = 4; |
| 1202 | int8u lqi = 5; |
| 1203 | nullable int8s averageRssi = 6; |
| 1204 | nullable int8s lastRssi = 7; |
| 1205 | int8u frameErrorRate = 8; |
| 1206 | int8u messageErrorRate = 9; |
| 1207 | boolean rxOnWhenIdle = 10; |
| 1208 | boolean fullThreadDevice = 11; |
| 1209 | boolean fullNetworkData = 12; |
| 1210 | boolean isChild = 13; |
| 1211 | } |
| 1212 | |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 1213 | struct OperationalDatasetComponents { |
| 1214 | boolean activeTimestampPresent = 0; |
| 1215 | boolean pendingTimestampPresent = 1; |
| 1216 | boolean masterKeyPresent = 2; |
| 1217 | boolean networkNamePresent = 3; |
| 1218 | boolean extendedPanIdPresent = 4; |
| 1219 | boolean meshLocalPrefixPresent = 5; |
| 1220 | boolean delayPresent = 6; |
| 1221 | boolean panIdPresent = 7; |
| 1222 | boolean channelPresent = 8; |
| 1223 | boolean pskcPresent = 9; |
| 1224 | boolean securityPolicyPresent = 10; |
| 1225 | boolean channelMaskPresent = 11; |
| 1226 | } |
| 1227 | |
Boris Zbarsky | 5a5d048 | 2023-05-30 08:49:49 -0400 | [diff] [blame] | 1228 | struct RouteTableStruct { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1229 | int64u extAddress = 0; |
| 1230 | int16u rloc16 = 1; |
| 1231 | int8u routerId = 2; |
| 1232 | int8u nextHop = 3; |
| 1233 | int8u pathCost = 4; |
| 1234 | int8u LQIIn = 5; |
| 1235 | int8u LQIOut = 6; |
| 1236 | int8u age = 7; |
| 1237 | boolean allocated = 8; |
| 1238 | boolean linkEstablished = 9; |
| 1239 | } |
| 1240 | |
| 1241 | struct SecurityPolicy { |
| 1242 | int16u rotationTime = 0; |
Boris Zbarsky | 6395db6 | 2023-01-06 12:08:22 -0500 | [diff] [blame] | 1243 | int16u flags = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1244 | } |
| 1245 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1246 | info event ConnectionStatus = 0 { |
Boris Zbarsky | 6395db6 | 2023-01-06 12:08:22 -0500 | [diff] [blame] | 1247 | ConnectionStatusEnum connectionStatus = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1248 | } |
| 1249 | |
Yufeng Wang | 9e873d0 | 2022-08-01 17:51:27 -0700 | [diff] [blame] | 1250 | info event NetworkFaultChange = 1 { |
Boris Zbarsky | 5a5d048 | 2023-05-30 08:49:49 -0400 | [diff] [blame] | 1251 | NetworkFaultEnum current[] = 0; |
| 1252 | NetworkFaultEnum previous[] = 1; |
Yufeng Wang | 9e873d0 | 2022-08-01 17:51:27 -0700 | [diff] [blame] | 1253 | } |
| 1254 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1255 | readonly attribute nullable int16u channel = 0; |
Boris Zbarsky | 5a5d048 | 2023-05-30 08:49:49 -0400 | [diff] [blame] | 1256 | readonly attribute nullable RoutingRoleEnum routingRole = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1257 | readonly attribute nullable char_string<16> networkName = 2; |
| 1258 | readonly attribute nullable int16u panId = 3; |
| 1259 | readonly attribute nullable int64u extendedPanId = 4; |
| 1260 | readonly attribute nullable octet_string<17> meshLocalPrefix = 5; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1261 | readonly attribute optional int64u overrunCount = 6; |
Boris Zbarsky | 5a5d048 | 2023-05-30 08:49:49 -0400 | [diff] [blame] | 1262 | readonly attribute NeighborTableStruct neighborTable[] = 7; |
| 1263 | readonly attribute RouteTableStruct routeTable[] = 8; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1264 | readonly attribute nullable int32u partitionId = 9; |
Andrei Litvin | 94a6f93 | 2023-11-02 15:07:36 -0400 | [diff] [blame] | 1265 | readonly attribute nullable int16u weighting = 10; |
| 1266 | readonly attribute nullable int16u dataVersion = 11; |
| 1267 | readonly attribute nullable int16u stableDataVersion = 12; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1268 | readonly attribute nullable int8u leaderRouterId = 13; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1269 | readonly attribute optional int16u detachedRoleCount = 14; |
| 1270 | readonly attribute optional int16u childRoleCount = 15; |
| 1271 | readonly attribute optional int16u routerRoleCount = 16; |
| 1272 | readonly attribute optional int16u leaderRoleCount = 17; |
| 1273 | readonly attribute optional int16u attachAttemptCount = 18; |
| 1274 | readonly attribute optional int16u partitionIdChangeCount = 19; |
| 1275 | readonly attribute optional int16u betterPartitionAttachAttemptCount = 20; |
| 1276 | readonly attribute optional int16u parentChangeCount = 21; |
| 1277 | readonly attribute optional int32u txTotalCount = 22; |
| 1278 | readonly attribute optional int32u txUnicastCount = 23; |
| 1279 | readonly attribute optional int32u txBroadcastCount = 24; |
| 1280 | readonly attribute optional int32u txAckRequestedCount = 25; |
| 1281 | readonly attribute optional int32u txAckedCount = 26; |
| 1282 | readonly attribute optional int32u txNoAckRequestedCount = 27; |
| 1283 | readonly attribute optional int32u txDataCount = 28; |
| 1284 | readonly attribute optional int32u txDataPollCount = 29; |
| 1285 | readonly attribute optional int32u txBeaconCount = 30; |
| 1286 | readonly attribute optional int32u txBeaconRequestCount = 31; |
| 1287 | readonly attribute optional int32u txOtherCount = 32; |
| 1288 | readonly attribute optional int32u txRetryCount = 33; |
| 1289 | readonly attribute optional int32u txDirectMaxRetryExpiryCount = 34; |
| 1290 | readonly attribute optional int32u txIndirectMaxRetryExpiryCount = 35; |
| 1291 | readonly attribute optional int32u txErrCcaCount = 36; |
| 1292 | readonly attribute optional int32u txErrAbortCount = 37; |
| 1293 | readonly attribute optional int32u txErrBusyChannelCount = 38; |
| 1294 | readonly attribute optional int32u rxTotalCount = 39; |
| 1295 | readonly attribute optional int32u rxUnicastCount = 40; |
| 1296 | readonly attribute optional int32u rxBroadcastCount = 41; |
| 1297 | readonly attribute optional int32u rxDataCount = 42; |
| 1298 | readonly attribute optional int32u rxDataPollCount = 43; |
| 1299 | readonly attribute optional int32u rxBeaconCount = 44; |
| 1300 | readonly attribute optional int32u rxBeaconRequestCount = 45; |
| 1301 | readonly attribute optional int32u rxOtherCount = 46; |
| 1302 | readonly attribute optional int32u rxAddressFilteredCount = 47; |
| 1303 | readonly attribute optional int32u rxDestAddrFilteredCount = 48; |
| 1304 | readonly attribute optional int32u rxDuplicatedCount = 49; |
| 1305 | readonly attribute optional int32u rxErrNoFrameCount = 50; |
| 1306 | readonly attribute optional int32u rxErrUnknownNeighborCount = 51; |
| 1307 | readonly attribute optional int32u rxErrInvalidSrcAddrCount = 52; |
| 1308 | readonly attribute optional int32u rxErrSecCount = 53; |
| 1309 | readonly attribute optional int32u rxErrFcsCount = 54; |
| 1310 | readonly attribute optional int32u rxErrOtherCount = 55; |
| 1311 | readonly attribute optional nullable int64u activeTimestamp = 56; |
| 1312 | readonly attribute optional nullable int64u pendingTimestamp = 57; |
| 1313 | readonly attribute optional nullable int32u delay = 58; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1314 | readonly attribute nullable SecurityPolicy securityPolicy = 59; |
Boris Zbarsky | 6056898 | 2022-08-08 15:27:14 -0400 | [diff] [blame] | 1315 | readonly attribute nullable octet_string<4> channelPage0Mask = 60; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1316 | readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; |
Boris Zbarsky | 5a5d048 | 2023-05-30 08:49:49 -0400 | [diff] [blame] | 1317 | readonly attribute NetworkFaultEnum activeNetworkFaultsList[] = 62; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1318 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1319 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1320 | readonly attribute event_id eventList[] = 65530; |
| 1321 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1322 | readonly attribute bitmap32 featureMap = 65532; |
| 1323 | readonly attribute int16u clusterRevision = 65533; |
| 1324 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1325 | /** Reception of this command SHALL reset the OverrunCount attributes to 0 */ |
Andrei Litvin | 94a6f93 | 2023-11-02 15:07:36 -0400 | [diff] [blame] | 1326 | command access(invoke: manage) ResetCounts(): DefaultSuccess = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1327 | } |
| 1328 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1329 | /** 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] | 1330 | cluster WiFiNetworkDiagnostics = 54 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1331 | revision 1; // NOTE: Default/not specifically set |
| 1332 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1333 | enum AssociationFailureCauseEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1334 | kUnknown = 0; |
| 1335 | kAssociationFailed = 1; |
| 1336 | kAuthenticationFailed = 2; |
| 1337 | kSsidNotFound = 3; |
| 1338 | } |
| 1339 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1340 | enum ConnectionStatusEnum : enum8 { |
Boris Zbarsky | 6083a3f | 2023-02-17 08:57:59 -0500 | [diff] [blame] | 1341 | kConnected = 0; |
| 1342 | kNotConnected = 1; |
| 1343 | } |
| 1344 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1345 | enum SecurityTypeEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1346 | kUnspecified = 0; |
| 1347 | kNone = 1; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 1348 | kWEP = 2; |
| 1349 | kWPA = 3; |
| 1350 | kWPA2 = 4; |
| 1351 | kWPA3 = 5; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1352 | } |
| 1353 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1354 | enum WiFiVersionEnum : enum8 { |
Boris Zbarsky | 0f76327 | 2023-01-06 14:25:04 -0500 | [diff] [blame] | 1355 | kA = 0; |
| 1356 | kB = 1; |
| 1357 | kG = 2; |
| 1358 | kN = 3; |
| 1359 | kAc = 4; |
| 1360 | kAx = 5; |
simonhmorris1 | a0fe129 | 2023-05-25 19:12:06 +0100 | [diff] [blame] | 1361 | kAh = 6; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1362 | } |
| 1363 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1364 | bitmap Feature : bitmap32 { |
Vivien Nicolas | 855a76f | 2023-01-27 07:44:25 +0100 | [diff] [blame] | 1365 | kPacketCounts = 0x1; |
| 1366 | kErrorCounts = 0x2; |
| 1367 | } |
| 1368 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1369 | info event Disconnection = 0 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1370 | int16u reasonCode = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1371 | } |
| 1372 | |
| 1373 | info event AssociationFailure = 1 { |
Andrei Litvin | ea0a843 | 2023-11-02 10:56:32 -0400 | [diff] [blame] | 1374 | AssociationFailureCauseEnum associationFailureCause = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1375 | int16u status = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1376 | } |
| 1377 | |
| 1378 | info event ConnectionStatus = 2 { |
Boris Zbarsky | 6083a3f | 2023-02-17 08:57:59 -0500 | [diff] [blame] | 1379 | ConnectionStatusEnum connectionStatus = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1380 | } |
| 1381 | |
| 1382 | readonly attribute nullable octet_string<6> bssid = 0; |
Boris Zbarsky | 6083a3f | 2023-02-17 08:57:59 -0500 | [diff] [blame] | 1383 | readonly attribute nullable SecurityTypeEnum securityType = 1; |
| 1384 | readonly attribute nullable WiFiVersionEnum wiFiVersion = 2; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1385 | readonly attribute nullable int16u channelNumber = 3; |
| 1386 | readonly attribute nullable int8s rssi = 4; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1387 | readonly attribute optional nullable int32u beaconLostCount = 5; |
| 1388 | readonly attribute optional nullable int32u beaconRxCount = 6; |
| 1389 | readonly attribute optional nullable int32u packetMulticastRxCount = 7; |
| 1390 | readonly attribute optional nullable int32u packetMulticastTxCount = 8; |
| 1391 | readonly attribute optional nullable int32u packetUnicastRxCount = 9; |
| 1392 | readonly attribute optional nullable int32u packetUnicastTxCount = 10; |
| 1393 | readonly attribute optional nullable int64u currentMaxRate = 11; |
| 1394 | readonly attribute optional nullable int64u overrunCount = 12; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1395 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1396 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1397 | readonly attribute event_id eventList[] = 65530; |
| 1398 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1399 | readonly attribute bitmap32 featureMap = 65532; |
| 1400 | readonly attribute int16u clusterRevision = 65533; |
| 1401 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1402 | /** 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] | 1403 | command ResetCounts(): DefaultSuccess = 0; |
| 1404 | } |
| 1405 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1406 | /** 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] | 1407 | cluster EthernetNetworkDiagnostics = 55 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1408 | revision 1; // NOTE: Default/not specifically set |
| 1409 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1410 | enum PHYRateEnum : enum8 { |
Boris Zbarsky | 13039ae | 2023-01-06 18:59:16 -0500 | [diff] [blame] | 1411 | kRate10M = 0; |
| 1412 | kRate100M = 1; |
| 1413 | kRate1G = 2; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 1414 | kRate25G = 3; |
Boris Zbarsky | 13039ae | 2023-01-06 18:59:16 -0500 | [diff] [blame] | 1415 | kRate5G = 4; |
| 1416 | kRate10G = 5; |
| 1417 | kRate40G = 6; |
| 1418 | kRate100G = 7; |
| 1419 | kRate200G = 8; |
| 1420 | kRate400G = 9; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1421 | } |
| 1422 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1423 | bitmap Feature : bitmap32 { |
Vivien Nicolas | 855a76f | 2023-01-27 07:44:25 +0100 | [diff] [blame] | 1424 | kPacketCounts = 0x1; |
| 1425 | kErrorCounts = 0x2; |
| 1426 | } |
| 1427 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1428 | readonly attribute optional nullable PHYRateEnum PHYRate = 0; |
| 1429 | readonly attribute optional nullable boolean fullDuplex = 1; |
| 1430 | readonly attribute optional int64u packetRxCount = 2; |
| 1431 | readonly attribute optional int64u packetTxCount = 3; |
| 1432 | readonly attribute optional int64u txErrCount = 4; |
| 1433 | readonly attribute optional int64u collisionCount = 5; |
| 1434 | readonly attribute optional int64u overrunCount = 6; |
| 1435 | readonly attribute optional nullable boolean carrierDetect = 7; |
| 1436 | readonly attribute optional int64u timeSinceReset = 8; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1437 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1438 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1439 | readonly attribute event_id eventList[] = 65530; |
| 1440 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1441 | readonly attribute bitmap32 featureMap = 65532; |
| 1442 | readonly attribute int16u clusterRevision = 65533; |
| 1443 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1444 | /** 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] | 1445 | command access(invoke: manage) ResetCounts(): DefaultSuccess = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1446 | } |
| 1447 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1448 | /** 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] | 1449 | cluster AdministratorCommissioning = 60 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1450 | revision 1; // NOTE: Default/not specifically set |
| 1451 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1452 | enum CommissioningWindowStatusEnum : enum8 { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1453 | kWindowNotOpen = 0; |
| 1454 | kEnhancedWindowOpen = 1; |
| 1455 | kBasicWindowOpen = 2; |
| 1456 | } |
| 1457 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1458 | enum StatusCode : enum8 { |
Tennessee Carmel-Veilleux | c24577d | 2022-08-16 00:27:47 -0400 | [diff] [blame] | 1459 | kBusy = 2; |
| 1460 | kPAKEParameterError = 3; |
| 1461 | kWindowNotOpen = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1462 | } |
| 1463 | |
Andrei Litvin | 1f9814e | 2023-10-26 15:35:06 -0400 | [diff] [blame] | 1464 | bitmap Feature : bitmap32 { |
| 1465 | kBasic = 0x1; |
| 1466 | } |
| 1467 | |
Boris Zbarsky | 232b5a1 | 2023-01-18 21:35:14 -0500 | [diff] [blame] | 1468 | readonly attribute CommissioningWindowStatusEnum windowStatus = 0; |
Boris Zbarsky | 17c8da6 | 2022-07-31 01:47:37 -0400 | [diff] [blame] | 1469 | readonly attribute nullable fabric_idx adminFabricIndex = 1; |
Andrei Litvin | 1f9814e | 2023-10-26 15:35:06 -0400 | [diff] [blame] | 1470 | readonly attribute nullable vendor_id adminVendorId = 2; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1471 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1472 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1473 | readonly attribute event_id eventList[] = 65530; |
| 1474 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1475 | readonly attribute bitmap32 featureMap = 65532; |
| 1476 | readonly attribute int16u clusterRevision = 65533; |
| 1477 | |
| 1478 | request struct OpenCommissioningWindowRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1479 | int16u commissioningTimeout = 0; |
| 1480 | octet_string PAKEPasscodeVerifier = 1; |
| 1481 | int16u discriminator = 2; |
| 1482 | int32u iterations = 3; |
Andrei Litvin | 1f9814e | 2023-10-26 15:35:06 -0400 | [diff] [blame] | 1483 | octet_string<32> salt = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1484 | } |
| 1485 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1486 | request struct OpenBasicCommissioningWindowRequest { |
| 1487 | int16u commissioningTimeout = 0; |
| 1488 | } |
| 1489 | |
| 1490 | /** 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] | 1491 | timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1492 | /** 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. */ |
| 1493 | timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; |
| 1494 | /** 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] | 1495 | timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; |
| 1496 | } |
| 1497 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1498 | /** 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] | 1499 | cluster OperationalCredentials = 62 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1500 | revision 1; // NOTE: Default/not specifically set |
| 1501 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1502 | enum CertificateChainTypeEnum : enum8 { |
Boris Zbarsky | cccce01 | 2023-01-18 11:27:01 -0500 | [diff] [blame] | 1503 | kDACCertificate = 1; |
| 1504 | kPAICertificate = 2; |
| 1505 | } |
| 1506 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1507 | enum NodeOperationalCertStatusEnum : enum8 { |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 1508 | kOK = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1509 | kInvalidPublicKey = 1; |
| 1510 | kInvalidNodeOpId = 2; |
| 1511 | kInvalidNOC = 3; |
| 1512 | kMissingCsr = 4; |
| 1513 | kTableFull = 5; |
| 1514 | kInvalidAdminSubject = 6; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1515 | kFabricConflict = 9; |
| 1516 | kLabelConflict = 10; |
| 1517 | kInvalidFabricIndex = 11; |
| 1518 | } |
| 1519 | |
Boris Zbarsky | cccce01 | 2023-01-18 11:27:01 -0500 | [diff] [blame] | 1520 | fabric_scoped struct FabricDescriptorStruct { |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1521 | octet_string<65> rootPublicKey = 1; |
Boris Zbarsky | cccce01 | 2023-01-18 11:27:01 -0500 | [diff] [blame] | 1522 | vendor_id vendorID = 2; |
| 1523 | fabric_id fabricID = 3; |
| 1524 | node_id nodeID = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1525 | char_string<32> label = 5; |
| 1526 | fabric_idx fabricIndex = 254; |
| 1527 | } |
| 1528 | |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 1529 | fabric_scoped struct NOCStruct { |
| 1530 | fabric_sensitive octet_string noc = 1; |
| 1531 | nullable fabric_sensitive octet_string icac = 2; |
| 1532 | fabric_idx fabricIndex = 254; |
| 1533 | } |
| 1534 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1535 | readonly attribute access(read: administer) NOCStruct NOCs[] = 0; |
Boris Zbarsky | cccce01 | 2023-01-18 11:27:01 -0500 | [diff] [blame] | 1536 | readonly attribute FabricDescriptorStruct fabrics[] = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1537 | readonly attribute int8u supportedFabrics = 2; |
| 1538 | readonly attribute int8u commissionedFabrics = 3; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1539 | readonly attribute octet_string trustedRootCertificates[] = 4; |
Vivien Nicolas | f93e6cb | 2022-07-29 13:23:24 +0200 | [diff] [blame] | 1540 | readonly attribute int8u currentFabricIndex = 5; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1541 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1542 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1543 | readonly attribute event_id eventList[] = 65530; |
| 1544 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1545 | readonly attribute bitmap32 featureMap = 65532; |
| 1546 | readonly attribute int16u clusterRevision = 65533; |
| 1547 | |
| 1548 | request struct AttestationRequestRequest { |
Andrei Litvin | 0da67af | 2023-10-27 17:28:25 -0400 | [diff] [blame] | 1549 | octet_string<32> attestationNonce = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1550 | } |
| 1551 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1552 | response struct AttestationResponse = 1 { |
| 1553 | octet_string<900> attestationElements = 0; |
| 1554 | octet_string<64> attestationSignature = 1; |
| 1555 | } |
| 1556 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1557 | request struct CertificateChainRequestRequest { |
Boris Zbarsky | cccce01 | 2023-01-18 11:27:01 -0500 | [diff] [blame] | 1558 | CertificateChainTypeEnum certificateType = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1559 | } |
| 1560 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1561 | response struct CertificateChainResponse = 3 { |
| 1562 | octet_string<600> certificate = 0; |
| 1563 | } |
| 1564 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1565 | request struct CSRRequestRequest { |
Andrei Litvin | 0da67af | 2023-10-27 17:28:25 -0400 | [diff] [blame] | 1566 | octet_string<32> CSRNonce = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1567 | optional boolean isForUpdateNOC = 1; |
| 1568 | } |
| 1569 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1570 | response struct CSRResponse = 5 { |
| 1571 | octet_string NOCSRElements = 0; |
| 1572 | octet_string attestationSignature = 1; |
| 1573 | } |
| 1574 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1575 | request struct AddNOCRequest { |
Andrei Litvin | 0da67af | 2023-10-27 17:28:25 -0400 | [diff] [blame] | 1576 | octet_string<400> NOCValue = 0; |
| 1577 | optional octet_string<400> ICACValue = 1; |
| 1578 | octet_string<16> IPKValue = 2; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1579 | int64u caseAdminSubject = 3; |
| 1580 | vendor_id adminVendorId = 4; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1581 | } |
| 1582 | |
| 1583 | request struct UpdateNOCRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1584 | octet_string NOCValue = 0; |
| 1585 | optional octet_string ICACValue = 1; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1586 | } |
| 1587 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1588 | response struct NOCResponse = 8 { |
| 1589 | NodeOperationalCertStatusEnum statusCode = 0; |
| 1590 | optional fabric_idx fabricIndex = 1; |
| 1591 | optional char_string<128> debugText = 2; |
| 1592 | } |
| 1593 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1594 | request struct UpdateFabricLabelRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1595 | char_string<32> label = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1596 | } |
| 1597 | |
| 1598 | request struct RemoveFabricRequest { |
| 1599 | fabric_idx fabricIndex = 0; |
| 1600 | } |
| 1601 | |
| 1602 | request struct AddTrustedRootCertificateRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1603 | octet_string rootCACertificate = 0; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1604 | } |
| 1605 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1606 | /** Sender is requesting attestation information from the receiver. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1607 | command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1608 | /** Sender is requesting a device attestation certificate from the receiver. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1609 | command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1610 | /** Sender is requesting a certificate signing request (CSR) from the receiver. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1611 | command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1612 | /** Sender is requesting to add the new node operational certificates. */ |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1613 | command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1614 | /** Sender is requesting to update the node operational certificates. */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 1615 | fabric command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1616 | /** 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] | 1617 | fabric command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1618 | /** 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] | 1619 | command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1620 | /** 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] | 1621 | command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; |
| 1622 | } |
| 1623 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1624 | /** 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] | 1625 | cluster GroupKeyManagement = 63 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1626 | revision 1; // NOTE: Default/not specifically set |
| 1627 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1628 | enum GroupKeySecurityPolicyEnum : enum8 { |
Evgeniy Morozov | f62daff | 2022-06-24 00:14:26 +0300 | [diff] [blame] | 1629 | kTrustFirst = 0; |
| 1630 | kCacheAndSync = 1; |
| 1631 | } |
| 1632 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1633 | bitmap Feature : bitmap32 { |
Tennessee Carmel-Veilleux | f71a48f | 2023-07-31 15:58:40 -0400 | [diff] [blame] | 1634 | kCacheAndSync = 0x1; |
| 1635 | } |
| 1636 | |
Andrei Litvin | d38820d | 2022-10-04 09:25:26 -0400 | [diff] [blame] | 1637 | fabric_scoped struct GroupInfoMapStruct { |
Evgeniy Morozov | f62daff | 2022-06-24 00:14:26 +0300 | [diff] [blame] | 1638 | group_id groupId = 1; |
| 1639 | endpoint_no endpoints[] = 2; |
| 1640 | optional char_string<16> groupName = 3; |
| 1641 | fabric_idx fabricIndex = 254; |
| 1642 | } |
| 1643 | |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 1644 | fabric_scoped struct GroupKeyMapStruct { |
| 1645 | group_id groupId = 1; |
| 1646 | int16u groupKeySetID = 2; |
| 1647 | fabric_idx fabricIndex = 254; |
| 1648 | } |
| 1649 | |
Evgeniy Morozov | f62daff | 2022-06-24 00:14:26 +0300 | [diff] [blame] | 1650 | struct GroupKeySetStruct { |
| 1651 | int16u groupKeySetID = 0; |
Boris Zbarsky | aab0d7c | 2023-02-21 14:46:25 -0500 | [diff] [blame] | 1652 | GroupKeySecurityPolicyEnum groupKeySecurityPolicy = 1; |
Evgeniy Morozov | f62daff | 2022-06-24 00:14:26 +0300 | [diff] [blame] | 1653 | nullable octet_string<16> epochKey0 = 2; |
| 1654 | nullable epoch_us epochStartTime0 = 3; |
| 1655 | nullable octet_string<16> epochKey1 = 4; |
| 1656 | nullable epoch_us epochStartTime1 = 5; |
| 1657 | nullable octet_string<16> epochKey2 = 6; |
| 1658 | nullable epoch_us epochStartTime2 = 7; |
| 1659 | } |
| 1660 | |
| 1661 | attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; |
| 1662 | readonly attribute GroupInfoMapStruct groupTable[] = 1; |
| 1663 | readonly attribute int16u maxGroupsPerFabric = 2; |
| 1664 | readonly attribute int16u maxGroupKeysPerFabric = 3; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1665 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1666 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1667 | readonly attribute event_id eventList[] = 65530; |
| 1668 | readonly attribute attrib_id attributeList[] = 65531; |
Evgeniy Morozov | f62daff | 2022-06-24 00:14:26 +0300 | [diff] [blame] | 1669 | readonly attribute bitmap32 featureMap = 65532; |
| 1670 | readonly attribute int16u clusterRevision = 65533; |
| 1671 | |
| 1672 | request struct KeySetWriteRequest { |
| 1673 | GroupKeySetStruct groupKeySet = 0; |
| 1674 | } |
| 1675 | |
| 1676 | request struct KeySetReadRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1677 | int16u groupKeySetID = 0; |
Evgeniy Morozov | f62daff | 2022-06-24 00:14:26 +0300 | [diff] [blame] | 1678 | } |
| 1679 | |
Evgeniy Morozov | f62daff | 2022-06-24 00:14:26 +0300 | [diff] [blame] | 1680 | response struct KeySetReadResponse = 2 { |
| 1681 | GroupKeySetStruct groupKeySet = 0; |
| 1682 | } |
| 1683 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1684 | request struct KeySetRemoveRequest { |
| 1685 | int16u groupKeySetID = 0; |
| 1686 | } |
| 1687 | |
Evgeniy Morozov | f62daff | 2022-06-24 00:14:26 +0300 | [diff] [blame] | 1688 | response struct KeySetReadAllIndicesResponse = 5 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 1689 | int16u groupKeySetIDs[] = 0; |
Evgeniy Morozov | f62daff | 2022-06-24 00:14:26 +0300 | [diff] [blame] | 1690 | } |
| 1691 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1692 | /** Write a new set of keys for the given key set id. */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 1693 | fabric command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1694 | /** Read the keys for a given key set id. */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 1695 | fabric command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1696 | /** Revoke a Root Key from a Group */ |
Andrei Litvin | 33aecf8 | 2022-07-21 11:29:56 -0400 | [diff] [blame] | 1697 | fabric command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1698 | /** Return the list of Group Key Sets associated with the accessing fabric */ |
Boris Zbarsky | 3d44787 | 2023-06-06 10:15:31 -0400 | [diff] [blame] | 1699 | fabric command access(invoke: administer) KeySetReadAllIndices(): KeySetReadAllIndicesResponse = 4; |
Evgeniy Morozov | f62daff | 2022-06-24 00:14:26 +0300 | [diff] [blame] | 1700 | } |
| 1701 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1702 | /** The Fixed Label Cluster provides a feature for the device to tag an endpoint with zero or more read only |
| 1703 | labels. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1704 | cluster FixedLabel = 64 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1705 | revision 1; // NOTE: Default/not specifically set |
| 1706 | |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 1707 | struct LabelStruct { |
| 1708 | char_string<16> label = 0; |
| 1709 | char_string<16> value = 1; |
| 1710 | } |
| 1711 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1712 | readonly attribute LabelStruct labelList[] = 0; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1713 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1714 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1715 | readonly attribute event_id eventList[] = 65530; |
| 1716 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1717 | readonly attribute bitmap32 featureMap = 65532; |
| 1718 | readonly attribute int16u clusterRevision = 65533; |
| 1719 | } |
| 1720 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1721 | /** 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] | 1722 | cluster UserLabel = 65 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1723 | revision 1; // NOTE: Default/not specifically set |
| 1724 | |
Bharat Raju | f25702c | 2023-04-12 11:14:12 -0400 | [diff] [blame] | 1725 | struct LabelStruct { |
| 1726 | char_string<16> label = 0; |
| 1727 | char_string<16> value = 1; |
| 1728 | } |
| 1729 | |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1730 | attribute access(write: manage) LabelStruct labelList[] = 0; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 1731 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1732 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1733 | readonly attribute event_id eventList[] = 65530; |
| 1734 | readonly attribute attrib_id attributeList[] = 65531; |
Boris Zbarsky | bc9bee2 | 2022-06-21 09:38:46 -0400 | [diff] [blame] | 1735 | readonly attribute bitmap32 featureMap = 65532; |
| 1736 | readonly attribute int16u clusterRevision = 65533; |
| 1737 | } |
| 1738 | |
mkardous-silabs | e149350 | 2023-08-03 10:43:24 -0400 | [diff] [blame] | 1739 | /** Allows servers to ensure that listed clients are notified when a server is available for communication. */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1740 | cluster IcdManagement = 70 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1741 | revision 2; |
| 1742 | |
lpbeliveau-silabs | 3c0d89d | 2024-01-12 16:37:44 -0500 | [diff] [blame] | 1743 | enum OperatingModeEnum : enum8 { |
| 1744 | kSIT = 0; |
| 1745 | kLIT = 1; |
| 1746 | } |
| 1747 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1748 | bitmap Feature : bitmap32 { |
mkardous-silabs | e149350 | 2023-08-03 10:43:24 -0400 | [diff] [blame] | 1749 | kCheckInProtocolSupport = 0x1; |
mkardous-silabs | 7be98b1 | 2023-10-19 09:03:16 -0400 | [diff] [blame] | 1750 | kUserActiveModeTrigger = 0x2; |
| 1751 | kLongIdleTimeSupport = 0x4; |
mkardous-silabs | e149350 | 2023-08-03 10:43:24 -0400 | [diff] [blame] | 1752 | } |
| 1753 | |
mkardous-silabs | c037636 | 2023-10-27 17:18:07 -0400 | [diff] [blame] | 1754 | bitmap UserActiveModeTriggerBitmap : bitmap32 { |
| 1755 | kPowerCycle = 0x1; |
| 1756 | kSettingsMenu = 0x2; |
| 1757 | kCustomInstruction = 0x4; |
| 1758 | kDeviceManual = 0x8; |
| 1759 | kActuateSensor = 0x10; |
| 1760 | kActuateSensorSeconds = 0x20; |
| 1761 | kActuateSensorTimes = 0x40; |
| 1762 | kActuateSensorLightsBlink = 0x80; |
| 1763 | kResetButton = 0x100; |
| 1764 | kResetButtonLightsBlink = 0x200; |
| 1765 | kResetButtonSeconds = 0x400; |
| 1766 | kResetButtonTimes = 0x800; |
| 1767 | kSetupButton = 0x1000; |
| 1768 | kSetupButtonSeconds = 0x2000; |
| 1769 | kSetupButtonLightsBlink = 0x4000; |
| 1770 | kSetupButtonTimes = 0x8000; |
| 1771 | kAppDefinedButton = 0x10000; |
| 1772 | } |
| 1773 | |
mkardous-silabs | e149350 | 2023-08-03 10:43:24 -0400 | [diff] [blame] | 1774 | fabric_scoped struct MonitoringRegistrationStruct { |
| 1775 | fabric_sensitive node_id checkInNodeID = 1; |
| 1776 | fabric_sensitive int64u monitoredSubject = 2; |
mkardous-silabs | e149350 | 2023-08-03 10:43:24 -0400 | [diff] [blame] | 1777 | fabric_idx fabricIndex = 254; |
| 1778 | } |
| 1779 | |
mkardous-silabs | 1b6a04a | 2024-01-09 13:23:37 -0500 | [diff] [blame] | 1780 | critical event OnTransitionToActiveMode = 0 { |
| 1781 | } |
| 1782 | |
mkardous-silabs | 3aac08f | 2023-10-24 18:30:16 -0400 | [diff] [blame] | 1783 | readonly attribute int32u idleModeDuration = 0; |
| 1784 | readonly attribute int32u activeModeDuration = 1; |
mkardous-silabs | e149350 | 2023-08-03 10:43:24 -0400 | [diff] [blame] | 1785 | readonly attribute int16u activeModeThreshold = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1786 | readonly attribute access(read: administer) optional MonitoringRegistrationStruct registeredClients[] = 3; |
| 1787 | readonly attribute access(read: administer) optional int32u ICDCounter = 4; |
| 1788 | readonly attribute optional int16u clientsSupportedPerFabric = 5; |
| 1789 | readonly attribute optional UserActiveModeTriggerBitmap userActiveModeTriggerHint = 6; |
| 1790 | readonly attribute optional char_string<128> userActiveModeTriggerInstruction = 7; |
lpbeliveau-silabs | 3c0d89d | 2024-01-12 16:37:44 -0500 | [diff] [blame] | 1791 | readonly attribute optional OperatingModeEnum operatingMode = 8; |
mkardous-silabs | e149350 | 2023-08-03 10:43:24 -0400 | [diff] [blame] | 1792 | readonly attribute command_id generatedCommandList[] = 65528; |
| 1793 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 1794 | readonly attribute event_id eventList[] = 65530; |
| 1795 | readonly attribute attrib_id attributeList[] = 65531; |
| 1796 | readonly attribute bitmap32 featureMap = 65532; |
| 1797 | readonly attribute int16u clusterRevision = 65533; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1798 | |
| 1799 | request struct RegisterClientRequest { |
| 1800 | node_id checkInNodeID = 0; |
| 1801 | int64u monitoredSubject = 1; |
| 1802 | octet_string<16> key = 2; |
| 1803 | optional octet_string<16> verificationKey = 3; |
| 1804 | } |
| 1805 | |
| 1806 | response struct RegisterClientResponse = 1 { |
| 1807 | int32u ICDCounter = 0; |
| 1808 | } |
| 1809 | |
| 1810 | request struct UnregisterClientRequest { |
| 1811 | node_id checkInNodeID = 0; |
| 1812 | optional octet_string<16> verificationKey = 1; |
| 1813 | } |
| 1814 | |
| 1815 | response struct StayActiveResponse = 4 { |
| 1816 | int32u promisedActiveDuration = 0; |
| 1817 | } |
| 1818 | |
| 1819 | /** Register a client to the end device */ |
| 1820 | fabric command access(invoke: manage) RegisterClient(RegisterClientRequest): RegisterClientResponse = 0; |
| 1821 | /** Unregister a client from an end device */ |
| 1822 | fabric command access(invoke: manage) UnregisterClient(UnregisterClientRequest): DefaultSuccess = 2; |
| 1823 | /** Request the end device to stay in Active Mode for an additional ActiveModeThreshold */ |
| 1824 | command access(invoke: manage) StayActiveRequest(): StayActiveResponse = 3; |
mkardous-silabs | e149350 | 2023-08-03 10:43:24 -0400 | [diff] [blame] | 1825 | } |
| 1826 | |
Andrei Litvin | 21c43e2 | 2023-04-04 18:50:26 -0400 | [diff] [blame] | 1827 | /** An interface to a generic way to secure a door */ |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 1828 | cluster DoorLock = 257 { |
Andrei Litvin | 90d60f0 | 2023-11-23 16:51:51 -0500 | [diff] [blame] | 1829 | revision 7; |
| 1830 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1831 | enum AlarmCodeEnum : enum8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1832 | kLockJammed = 0; |
| 1833 | kLockFactoryReset = 1; |
| 1834 | kLockRadioPowerCycled = 3; |
| 1835 | kWrongCodeEntryLimit = 4; |
| 1836 | kFrontEsceutcheonRemoved = 5; |
| 1837 | kDoorForcedOpen = 6; |
| 1838 | kDoorAjar = 7; |
| 1839 | kForcedUser = 8; |
| 1840 | } |
| 1841 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1842 | enum CredentialRuleEnum : enum8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1843 | kSingle = 0; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 1844 | kDual = 1; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1845 | kTri = 2; |
| 1846 | } |
| 1847 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1848 | enum CredentialTypeEnum : enum8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1849 | kProgrammingPIN = 0; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 1850 | kPIN = 1; |
| 1851 | kRFID = 2; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1852 | kFingerprint = 3; |
| 1853 | kFingerVein = 4; |
| 1854 | kFace = 5; |
Nivi Sarkar | 6b21935 | 2024-01-09 11:35:13 -0800 | [diff] [blame] | 1855 | kAliroCredentialIssuerKey = 6; |
| 1856 | kAliroEvictableEndpointKey = 7; |
| 1857 | kAliroNonEvictableEndpointKey = 8; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1858 | } |
| 1859 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1860 | enum DataOperationTypeEnum : enum8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1861 | kAdd = 0; |
| 1862 | kClear = 1; |
| 1863 | kModify = 2; |
| 1864 | } |
| 1865 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1866 | enum DlLockState : enum8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1867 | kNotFullyLocked = 0; |
| 1868 | kLocked = 1; |
| 1869 | kUnlocked = 2; |
Marc Mikolits | db088d5 | 2023-05-17 21:17:04 +0200 | [diff] [blame] | 1870 | kUnlatched = 3; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1871 | } |
| 1872 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1873 | enum DlLockType : enum8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1874 | kDeadBolt = 0; |
| 1875 | kMagnetic = 1; |
| 1876 | kOther = 2; |
| 1877 | kMortise = 3; |
| 1878 | kRim = 4; |
| 1879 | kLatchBolt = 5; |
| 1880 | kCylindricalLock = 6; |
| 1881 | kTubularLock = 7; |
| 1882 | kInterconnectedLock = 8; |
| 1883 | kDeadLatch = 9; |
| 1884 | kDoorFurniture = 10; |
Marc Mikolits | db088d5 | 2023-05-17 21:17:04 +0200 | [diff] [blame] | 1885 | kEurocylinder = 11; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1886 | } |
| 1887 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1888 | enum DlStatus : enum8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1889 | kSuccess = 0; |
| 1890 | kFailure = 1; |
| 1891 | kDuplicate = 2; |
| 1892 | kOccupied = 3; |
| 1893 | kInvalidField = 133; |
Evgeniy Morozov | 37fb44a | 2022-05-13 21:45:58 +0300 | [diff] [blame] | 1894 | kResourceExhausted = 137; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1895 | kNotFound = 139; |
| 1896 | } |
| 1897 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1898 | enum DoorLockOperationEventCode : enum8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1899 | kUnknownOrMfgSpecific = 0; |
| 1900 | kLock = 1; |
| 1901 | kUnlock = 2; |
| 1902 | kLockInvalidPinOrId = 3; |
| 1903 | kLockInvalidSchedule = 4; |
| 1904 | kUnlockInvalidPinOrId = 5; |
| 1905 | kUnlockInvalidSchedule = 6; |
| 1906 | kOneTouchLock = 7; |
| 1907 | kKeyLock = 8; |
| 1908 | kKeyUnlock = 9; |
| 1909 | kAutoLock = 10; |
| 1910 | kScheduleLock = 11; |
| 1911 | kScheduleUnlock = 12; |
| 1912 | kManualLock = 13; |
| 1913 | kManualUnlock = 14; |
| 1914 | } |
| 1915 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1916 | enum DoorLockProgrammingEventCode : enum8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1917 | kUnknownOrMfgSpecific = 0; |
| 1918 | kMasterCodeChanged = 1; |
| 1919 | kPinAdded = 2; |
| 1920 | kPinDeleted = 3; |
| 1921 | kPinChanged = 4; |
| 1922 | kIdAdded = 5; |
| 1923 | kIdDeleted = 6; |
| 1924 | } |
| 1925 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1926 | enum DoorLockSetPinOrIdStatus : enum8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1927 | kSuccess = 0; |
| 1928 | kGeneralFailure = 1; |
| 1929 | kMemoryFull = 2; |
| 1930 | kDuplicateCodeError = 3; |
| 1931 | } |
| 1932 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1933 | enum DoorLockUserStatus : enum8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1934 | kAvailable = 0; |
| 1935 | kOccupiedEnabled = 1; |
| 1936 | kOccupiedDisabled = 3; |
| 1937 | kNotSupported = 255; |
| 1938 | } |
| 1939 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1940 | enum DoorLockUserType : enum8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 1941 | kUnrestricted = 0; |
| 1942 | kYearDayScheduleUser = 1; |
| 1943 | kWeekDayScheduleUser = 2; |
| 1944 | kMasterUser = 3; |
| 1945 | kNonAccessUser = 4; |
| 1946 | kNotSupported = 255; |
| 1947 | } |
| 1948 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1949 | enum DoorStateEnum : enum8 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 1950 | kDoorOpen = 0; |
| 1951 | kDoorClosed = 1; |
| 1952 | kDoorJammed = 2; |
| 1953 | kDoorForcedOpen = 3; |
| 1954 | kDoorUnspecifiedError = 4; |
| 1955 | kDoorAjar = 5; |
| 1956 | } |
| 1957 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1958 | enum LockDataTypeEnum : enum8 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 1959 | kUnspecified = 0; |
| 1960 | kProgrammingCode = 1; |
| 1961 | kUserIndex = 2; |
| 1962 | kWeekDaySchedule = 3; |
| 1963 | kYearDaySchedule = 4; |
| 1964 | kHolidaySchedule = 5; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 1965 | kPIN = 6; |
| 1966 | kRFID = 7; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 1967 | kFingerprint = 8; |
Boris Zbarsky | 8612d3c | 2023-02-13 10:21:53 -0500 | [diff] [blame] | 1968 | kFingerVein = 9; |
Boris Zbarsky | d1f553d | 2023-02-20 14:58:55 -0500 | [diff] [blame] | 1969 | kFace = 10; |
Nivi Sarkar | 6b21935 | 2024-01-09 11:35:13 -0800 | [diff] [blame] | 1970 | kAliroCredentialIssuerKey = 11; |
| 1971 | kAliroEvictableEndpointKey = 12; |
| 1972 | kAliroNonEvictableEndpointKey = 13; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 1973 | } |
| 1974 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1975 | enum LockOperationTypeEnum : enum8 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 1976 | kLock = 0; |
| 1977 | kUnlock = 1; |
| 1978 | kNonAccessUserEvent = 2; |
| 1979 | kForcedUserEvent = 3; |
Marc Mikolits | db088d5 | 2023-05-17 21:17:04 +0200 | [diff] [blame] | 1980 | kUnlatch = 4; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 1981 | } |
| 1982 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1983 | enum OperatingModeEnum : enum8 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 1984 | kNormal = 0; |
| 1985 | kVacation = 1; |
| 1986 | kPrivacy = 2; |
| 1987 | kNoRemoteLockUnlock = 3; |
| 1988 | kPassage = 4; |
| 1989 | } |
| 1990 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1991 | enum OperationErrorEnum : enum8 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 1992 | kUnspecified = 0; |
| 1993 | kInvalidCredential = 1; |
| 1994 | kDisabledUserDenied = 2; |
| 1995 | kRestricted = 3; |
| 1996 | kInsufficientBattery = 4; |
| 1997 | } |
| 1998 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 1999 | enum OperationSourceEnum : enum8 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2000 | kUnspecified = 0; |
| 2001 | kManual = 1; |
| 2002 | kProprietaryRemote = 2; |
| 2003 | kKeypad = 3; |
| 2004 | kAuto = 4; |
| 2005 | kButton = 5; |
| 2006 | kSchedule = 6; |
| 2007 | kRemote = 7; |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 2008 | kRFID = 8; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2009 | kBiometric = 9; |
Nivi Sarkar | 6b21935 | 2024-01-09 11:35:13 -0800 | [diff] [blame] | 2010 | kAliro = 10; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2011 | } |
| 2012 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2013 | enum UserStatusEnum : enum8 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2014 | kAvailable = 0; |
| 2015 | kOccupiedEnabled = 1; |
| 2016 | kOccupiedDisabled = 3; |
| 2017 | } |
| 2018 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2019 | enum UserTypeEnum : enum8 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2020 | kUnrestrictedUser = 0; |
| 2021 | kYearDayScheduleUser = 1; |
| 2022 | kWeekDayScheduleUser = 2; |
| 2023 | kProgrammingUser = 3; |
| 2024 | kNonAccessUser = 4; |
| 2025 | kForcedUser = 5; |
| 2026 | kDisposableUser = 6; |
| 2027 | kExpiringUser = 7; |
| 2028 | kScheduleRestrictedUser = 8; |
| 2029 | kRemoteOnlyUser = 9; |
| 2030 | } |
| 2031 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2032 | bitmap DaysMaskMap : bitmap8 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2033 | kSunday = 0x1; |
| 2034 | kMonday = 0x2; |
| 2035 | kTuesday = 0x4; |
| 2036 | kWednesday = 0x8; |
| 2037 | kThursday = 0x10; |
| 2038 | kFriday = 0x20; |
| 2039 | kSaturday = 0x40; |
| 2040 | } |
| 2041 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2042 | bitmap DlCredentialRuleMask : bitmap8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2043 | kSingle = 0x1; |
| 2044 | kDual = 0x2; |
| 2045 | kTri = 0x4; |
| 2046 | } |
| 2047 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2048 | bitmap DlCredentialRulesSupport : bitmap8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2049 | kSingle = 0x1; |
| 2050 | kDual = 0x2; |
| 2051 | kTri = 0x4; |
| 2052 | } |
| 2053 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2054 | bitmap DlDefaultConfigurationRegister : bitmap16 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2055 | kEnableLocalProgrammingEnabled = 0x1; |
| 2056 | kKeypadInterfaceDefaultAccessEnabled = 0x2; |
| 2057 | kRemoteInterfaceDefaultAccessIsEnabled = 0x4; |
| 2058 | kSoundEnabled = 0x20; |
| 2059 | kAutoRelockTimeSet = 0x40; |
| 2060 | kLEDSettingsSet = 0x80; |
| 2061 | } |
| 2062 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2063 | bitmap DlKeypadOperationEventMask : bitmap16 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2064 | kUnknown = 0x1; |
| 2065 | kLock = 0x2; |
| 2066 | kUnlock = 0x4; |
| 2067 | kLockInvalidPIN = 0x8; |
| 2068 | kLockInvalidSchedule = 0x10; |
| 2069 | kUnlockInvalidCode = 0x20; |
| 2070 | kUnlockInvalidSchedule = 0x40; |
| 2071 | kNonAccessUserOpEvent = 0x80; |
| 2072 | } |
| 2073 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2074 | bitmap DlKeypadProgrammingEventMask : bitmap16 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2075 | kUnknown = 0x1; |
| 2076 | kProgrammingPINChanged = 0x2; |
| 2077 | kPINAdded = 0x4; |
| 2078 | kPINCleared = 0x8; |
| 2079 | kPINChanged = 0x10; |
| 2080 | } |
| 2081 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2082 | bitmap DlLocalProgrammingFeatures : bitmap8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2083 | kAddUsersCredentialsSchedulesLocally = 0x1; |
| 2084 | kModifyUsersCredentialsSchedulesLocally = 0x2; |
| 2085 | kClearUsersCredentialsSchedulesLocally = 0x4; |
| 2086 | kAdjustLockSettingsLocally = 0x8; |
| 2087 | } |
| 2088 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2089 | bitmap DlManualOperationEventMask : bitmap16 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2090 | kUnknown = 0x1; |
| 2091 | kThumbturnLock = 0x2; |
| 2092 | kThumbturnUnlock = 0x4; |
| 2093 | kOneTouchLock = 0x8; |
| 2094 | kKeyLock = 0x10; |
| 2095 | kKeyUnlock = 0x20; |
| 2096 | kAutoLock = 0x40; |
| 2097 | kScheduleLock = 0x80; |
| 2098 | kScheduleUnlock = 0x100; |
| 2099 | kManualLock = 0x200; |
| 2100 | kManualUnlock = 0x400; |
| 2101 | } |
| 2102 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2103 | bitmap DlRFIDOperationEventMask : bitmap16 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2104 | kUnknown = 0x1; |
| 2105 | kLock = 0x2; |
| 2106 | kUnlock = 0x4; |
| 2107 | kLockInvalidRFID = 0x8; |
| 2108 | kLockInvalidSchedule = 0x10; |
| 2109 | kUnlockInvalidRFID = 0x20; |
| 2110 | kUnlockInvalidSchedule = 0x40; |
| 2111 | } |
| 2112 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2113 | bitmap DlRFIDProgrammingEventMask : bitmap16 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2114 | kUnknown = 0x1; |
| 2115 | kRFIDCodeAdded = 0x20; |
| 2116 | kRFIDCodeCleared = 0x40; |
| 2117 | } |
| 2118 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2119 | bitmap DlRemoteOperationEventMask : bitmap16 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2120 | kUnknown = 0x1; |
| 2121 | kLock = 0x2; |
| 2122 | kUnlock = 0x4; |
| 2123 | kLockInvalidCode = 0x8; |
| 2124 | kLockInvalidSchedule = 0x10; |
| 2125 | kUnlockInvalidCode = 0x20; |
| 2126 | kUnlockInvalidSchedule = 0x40; |
| 2127 | } |
| 2128 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2129 | bitmap DlRemoteProgrammingEventMask : bitmap16 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2130 | kUnknown = 0x1; |
| 2131 | kProgrammingPINChanged = 0x2; |
| 2132 | kPINAdded = 0x4; |
| 2133 | kPINCleared = 0x8; |
| 2134 | kPINChanged = 0x10; |
| 2135 | kRFIDCodeAdded = 0x20; |
| 2136 | kRFIDCodeCleared = 0x40; |
| 2137 | } |
| 2138 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2139 | bitmap DlSupportedOperatingModes : bitmap16 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2140 | kNormal = 0x1; |
| 2141 | kVacation = 0x2; |
| 2142 | kPrivacy = 0x4; |
| 2143 | kNoRemoteLockUnlock = 0x8; |
| 2144 | kPassage = 0x10; |
| 2145 | } |
| 2146 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2147 | bitmap DoorLockDayOfWeek : bitmap8 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2148 | kSunday = 0x1; |
| 2149 | kMonday = 0x2; |
| 2150 | kTuesday = 0x4; |
| 2151 | kWednesday = 0x8; |
| 2152 | kThursday = 0x10; |
| 2153 | kFriday = 0x20; |
| 2154 | kSaturday = 0x40; |
| 2155 | } |
| 2156 | |
Andrei Litvin | 4f65f6c | 2023-10-18 11:57:33 -0400 | [diff] [blame] | 2157 | bitmap Feature : bitmap32 { |
Andrei Litvin | 413a900 | 2023-06-28 13:02:18 -0400 | [diff] [blame] | 2158 | kPINCredential = 0x1; |
| 2159 | kRFIDCredential = 0x2; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2160 | kFingerCredentials = 0x4; |
| 2161 | kLogging = 0x8; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2162 | kWeekDayAccessSchedules = 0x10; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2163 | kDoorPositionSensor = 0x20; |
| 2164 | kFaceCredentials = 0x40; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2165 | kCredentialsOverTheAirAccess = 0x80; |
| 2166 | kUser = 0x100; |
| 2167 | kNotification = 0x200; |
| 2168 | kYearDayAccessSchedules = 0x400; |
Evgeniy Morozov | 6d959ae | 2022-07-15 22:41:32 +0300 | [diff] [blame] | 2169 | kHolidaySchedules = 0x800; |
Marc Mikolits | db088d5 | 2023-05-17 21:17:04 +0200 | [diff] [blame] | 2170 | kUnbolt = 0x1000; |
Nivi Sarkar | 6b21935 | 2024-01-09 11:35:13 -0800 | [diff] [blame] | 2171 | kAliroProvisioning = 0x2000; |
| 2172 | kAliroBLEUWB = 0x4000; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2173 | } |
| 2174 | |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2175 | struct CredentialStruct { |
| 2176 | CredentialTypeEnum credentialType = 0; |
Bharat Raju | f59dbe1 | 2022-05-11 18:51:53 -0400 | [diff] [blame] | 2177 | int16u credentialIndex = 1; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2178 | } |
| 2179 | |
| 2180 | critical event DoorLockAlarm = 0 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2181 | AlarmCodeEnum alarmCode = 0; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2182 | } |
| 2183 | |
| 2184 | critical event DoorStateChange = 1 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2185 | DoorStateEnum doorState = 0; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2186 | } |
| 2187 | |
| 2188 | critical event LockOperation = 2 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2189 | LockOperationTypeEnum lockOperationType = 0; |
| 2190 | OperationSourceEnum operationSource = 1; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2191 | nullable int16u userIndex = 2; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2192 | nullable fabric_idx fabricIndex = 3; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2193 | nullable node_id sourceNode = 4; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2194 | optional nullable CredentialStruct credentials[] = 5; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2195 | } |
| 2196 | |
| 2197 | critical event LockOperationError = 3 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2198 | LockOperationTypeEnum lockOperationType = 0; |
| 2199 | OperationSourceEnum operationSource = 1; |
| 2200 | OperationErrorEnum operationError = 2; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2201 | nullable int16u userIndex = 3; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2202 | nullable fabric_idx fabricIndex = 4; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2203 | nullable node_id sourceNode = 5; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2204 | optional nullable CredentialStruct credentials[] = 6; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2205 | } |
| 2206 | |
| 2207 | info event LockUserChange = 4 { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2208 | LockDataTypeEnum lockDataType = 0; |
| 2209 | DataOperationTypeEnum dataOperationType = 1; |
| 2210 | OperationSourceEnum operationSource = 2; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2211 | nullable int16u userIndex = 3; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2212 | nullable fabric_idx fabricIndex = 4; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2213 | nullable node_id sourceNode = 5; |
| 2214 | nullable int16u dataIndex = 6; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2215 | } |
| 2216 | |
| 2217 | readonly attribute nullable DlLockState lockState = 0; |
| 2218 | readonly attribute DlLockType lockType = 1; |
Damian Królik | 55a3a14 | 2022-04-19 15:39:34 +0200 | [diff] [blame] | 2219 | readonly attribute boolean actuatorEnabled = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2220 | readonly attribute optional nullable DoorStateEnum doorState = 3; |
| 2221 | attribute access(write: manage) optional int32u doorOpenEvents = 4; |
| 2222 | attribute access(write: manage) optional int32u doorClosedEvents = 5; |
| 2223 | attribute access(write: manage) optional int16u openPeriod = 6; |
| 2224 | readonly attribute optional int16u numberOfTotalUsersSupported = 17; |
| 2225 | readonly attribute optional int16u numberOfPINUsersSupported = 18; |
| 2226 | readonly attribute optional int16u numberOfRFIDUsersSupported = 19; |
| 2227 | readonly attribute optional int8u numberOfWeekDaySchedulesSupportedPerUser = 20; |
| 2228 | readonly attribute optional int8u numberOfYearDaySchedulesSupportedPerUser = 21; |
| 2229 | readonly attribute optional int8u numberOfHolidaySchedulesSupported = 22; |
| 2230 | readonly attribute optional int8u maxPINCodeLength = 23; |
| 2231 | readonly attribute optional int8u minPINCodeLength = 24; |
| 2232 | readonly attribute optional int8u maxRFIDCodeLength = 25; |
| 2233 | readonly attribute optional int8u minRFIDCodeLength = 26; |
| 2234 | readonly attribute optional DlCredentialRuleMask credentialRulesSupport = 27; |
| 2235 | readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28; |
| 2236 | attribute access(write: manage) optional char_string<3> language = 33; |
| 2237 | attribute access(write: manage) optional int8u LEDSettings = 34; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2238 | attribute access(write: manage) int32u autoRelockTime = 35; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2239 | attribute access(write: manage) optional int8u soundVolume = 36; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2240 | attribute access(write: manage) OperatingModeEnum operatingMode = 37; |
Damian Królik | 55a3a14 | 2022-04-19 15:39:34 +0200 | [diff] [blame] | 2241 | readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2242 | readonly attribute optional DlDefaultConfigurationRegister defaultConfigurationRegister = 39; |
| 2243 | attribute access(write: administer) optional boolean enableLocalProgramming = 40; |
| 2244 | attribute access(write: manage) optional boolean enableOneTouchLocking = 41; |
| 2245 | attribute access(write: manage) optional boolean enableInsideStatusLED = 42; |
| 2246 | attribute access(write: manage) optional boolean enablePrivacyModeButton = 43; |
| 2247 | attribute access(write: administer) optional DlLocalProgrammingFeatures localProgrammingFeatures = 44; |
| 2248 | attribute access(write: administer) optional int8u wrongCodeEntryLimit = 48; |
| 2249 | attribute access(write: administer) optional int8u userCodeTemporaryDisableTime = 49; |
| 2250 | attribute access(write: administer) optional boolean sendPINOverTheAir = 50; |
| 2251 | attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; |
| 2252 | attribute access(write: administer) optional int16u expiringUserTimeout = 53; |
Nivi Sarkar | 6b21935 | 2024-01-09 11:35:13 -0800 | [diff] [blame] | 2253 | readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; |
| 2254 | readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; |
| 2255 | readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; |
| 2256 | readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; |
| 2257 | readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; |
| 2258 | readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; |
| 2259 | readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; |
| 2260 | readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; |
| 2261 | readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; |
Andrei Litvin | c6ae82c | 2023-02-10 15:31:59 -0500 | [diff] [blame] | 2262 | readonly attribute command_id generatedCommandList[] = 65528; |
| 2263 | readonly attribute command_id acceptedCommandList[] = 65529; |
| 2264 | readonly attribute event_id eventList[] = 65530; |
| 2265 | readonly attribute attrib_id attributeList[] = 65531; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2266 | readonly attribute bitmap32 featureMap = 65532; |
| 2267 | readonly attribute int16u clusterRevision = 65533; |
| 2268 | |
| 2269 | request struct LockDoorRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2270 | optional octet_string PINCode = 0; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2271 | } |
| 2272 | |
| 2273 | request struct UnlockDoorRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2274 | optional octet_string PINCode = 0; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2275 | } |
| 2276 | |
krypton36 | e83224e | 2022-04-20 09:57:22 -0700 | [diff] [blame] | 2277 | request struct UnlockWithTimeoutRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2278 | int16u timeout = 0; |
| 2279 | optional octet_string PINCode = 1; |
krypton36 | e83224e | 2022-04-20 09:57:22 -0700 | [diff] [blame] | 2280 | } |
| 2281 | |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2282 | request struct SetWeekDayScheduleRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2283 | int8u weekDayIndex = 0; |
| 2284 | int16u userIndex = 1; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2285 | DaysMaskMap daysMask = 2; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2286 | int8u startHour = 3; |
| 2287 | int8u startMinute = 4; |
| 2288 | int8u endHour = 5; |
| 2289 | int8u endMinute = 6; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2290 | } |
| 2291 | |
| 2292 | request struct GetWeekDayScheduleRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2293 | int8u weekDayIndex = 0; |
| 2294 | int16u userIndex = 1; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2295 | } |
| 2296 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2297 | response struct GetWeekDayScheduleResponse = 12 { |
| 2298 | int8u weekDayIndex = 0; |
| 2299 | int16u userIndex = 1; |
| 2300 | DlStatus status = 2; |
| 2301 | optional DaysMaskMap daysMask = 3; |
| 2302 | optional int8u startHour = 4; |
| 2303 | optional int8u startMinute = 5; |
| 2304 | optional int8u endHour = 6; |
| 2305 | optional int8u endMinute = 7; |
| 2306 | } |
| 2307 | |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2308 | request struct ClearWeekDayScheduleRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2309 | int8u weekDayIndex = 0; |
| 2310 | int16u userIndex = 1; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2311 | } |
| 2312 | |
| 2313 | request struct SetYearDayScheduleRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2314 | int8u yearDayIndex = 0; |
| 2315 | int16u userIndex = 1; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2316 | epoch_s localStartTime = 2; |
| 2317 | epoch_s localEndTime = 3; |
| 2318 | } |
| 2319 | |
| 2320 | request struct GetYearDayScheduleRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2321 | int8u yearDayIndex = 0; |
| 2322 | int16u userIndex = 1; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2323 | } |
| 2324 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2325 | response struct GetYearDayScheduleResponse = 15 { |
| 2326 | int8u yearDayIndex = 0; |
| 2327 | int16u userIndex = 1; |
| 2328 | DlStatus status = 2; |
| 2329 | optional epoch_s localStartTime = 3; |
| 2330 | optional epoch_s localEndTime = 4; |
| 2331 | } |
| 2332 | |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2333 | request struct ClearYearDayScheduleRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2334 | int8u yearDayIndex = 0; |
| 2335 | int16u userIndex = 1; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2336 | } |
| 2337 | |
Evgeniy Morozov | b5a967c | 2022-05-26 15:35:59 +0300 | [diff] [blame] | 2338 | request struct SetHolidayScheduleRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2339 | int8u holidayIndex = 0; |
Evgeniy Morozov | b5a967c | 2022-05-26 15:35:59 +0300 | [diff] [blame] | 2340 | epoch_s localStartTime = 1; |
| 2341 | epoch_s localEndTime = 2; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2342 | OperatingModeEnum operatingMode = 3; |
Evgeniy Morozov | b5a967c | 2022-05-26 15:35:59 +0300 | [diff] [blame] | 2343 | } |
| 2344 | |
| 2345 | request struct GetHolidayScheduleRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2346 | int8u holidayIndex = 0; |
Evgeniy Morozov | b5a967c | 2022-05-26 15:35:59 +0300 | [diff] [blame] | 2347 | } |
| 2348 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2349 | response struct GetHolidayScheduleResponse = 18 { |
| 2350 | int8u holidayIndex = 0; |
| 2351 | DlStatus status = 1; |
| 2352 | optional epoch_s localStartTime = 2; |
| 2353 | optional epoch_s localEndTime = 3; |
| 2354 | optional OperatingModeEnum operatingMode = 4; |
| 2355 | } |
| 2356 | |
Evgeniy Morozov | b5a967c | 2022-05-26 15:35:59 +0300 | [diff] [blame] | 2357 | request struct ClearHolidayScheduleRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2358 | int8u holidayIndex = 0; |
Evgeniy Morozov | b5a967c | 2022-05-26 15:35:59 +0300 | [diff] [blame] | 2359 | } |
| 2360 | |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2361 | request struct SetUserRequest { |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2362 | DataOperationTypeEnum operationType = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2363 | int16u userIndex = 1; |
| 2364 | nullable char_string userName = 2; |
| 2365 | nullable int32u userUniqueID = 3; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2366 | nullable UserStatusEnum userStatus = 4; |
| 2367 | nullable UserTypeEnum userType = 5; |
| 2368 | nullable CredentialRuleEnum credentialRule = 6; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2369 | } |
| 2370 | |
| 2371 | request struct GetUserRequest { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2372 | int16u userIndex = 0; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2373 | } |
| 2374 | |
Andrei Litvin | 99becaa | 2022-04-21 09:20:55 -0400 | [diff] [blame] | 2375 | response struct GetUserResponse = 28 { |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2376 | int16u userIndex = 0; |
| 2377 | nullable char_string userName = 1; |
| 2378 | nullable int32u userUniqueID = 2; |
Boris Zbarsky | ab00c53 | 2023-01-18 19:49:01 -0500 | [diff] [blame] | 2379 | nullable UserStatusEnum userStatus = 3; |
| 2380 | nullable UserTypeEnum userType = 4; |
| 2381 | nullable CredentialRuleEnum credentialRule = 5; |
| 2382 | nullable CredentialStruct credentials[] = 6; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2383 | nullable fabric_idx creatorFabricIndex = 7; |
| 2384 | nullable fabric_idx lastModifiedFabricIndex = 8; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2385 | nullable int16u nextUserIndex = 9; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2386 | } |
| 2387 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2388 | request struct ClearUserRequest { |
| 2389 | int16u userIndex = 0; |
| 2390 | } |
| 2391 | |
| 2392 | request struct SetCredentialRequest { |
| 2393 | DataOperationTypeEnum operationType = 0; |
| 2394 | CredentialStruct credential = 1; |
Boris Zbarsky | d823ea2 | 2023-11-30 15:08:58 -0500 | [diff] [blame] | 2395 | long_octet_string credentialData = 2; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2396 | nullable int16u userIndex = 3; |
| 2397 | nullable UserStatusEnum userStatus = 4; |
| 2398 | nullable UserTypeEnum userType = 5; |
| 2399 | } |
| 2400 | |
Andrei Litvin | 99becaa | 2022-04-21 09:20:55 -0400 | [diff] [blame] | 2401 | response struct SetCredentialResponse = 35 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2402 | DlStatus status = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2403 | nullable int16u userIndex = 1; |
| 2404 | nullable int16u nextCredentialIndex = 2; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2405 | } |
| 2406 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2407 | request struct GetCredentialStatusRequest { |
| 2408 | CredentialStruct credential = 0; |
| 2409 | } |
| 2410 | |
Andrei Litvin | 99becaa | 2022-04-21 09:20:55 -0400 | [diff] [blame] | 2411 | response struct GetCredentialStatusResponse = 37 { |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2412 | boolean credentialExists = 0; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2413 | nullable int16u userIndex = 1; |
Evgeniy Morozov | 37fb44a | 2022-05-13 21:45:58 +0300 | [diff] [blame] | 2414 | nullable fabric_idx creatorFabricIndex = 2; |
| 2415 | nullable fabric_idx lastModifiedFabricIndex = 3; |
Andrei Litvin | 47836d2 | 2023-10-12 18:08:11 -0400 | [diff] [blame] | 2416 | nullable int16u nextCredentialIndex = 4; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2417 | } |
| 2418 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2419 | request struct ClearCredentialRequest { |
| 2420 | nullable CredentialStruct credential = 0; |
| 2421 | } |
| 2422 | |
| 2423 | request struct UnboltDoorRequest { |
| 2424 | optional octet_string PINCode = 0; |
| 2425 | } |
| 2426 | |
Nivi Sarkar | 6b21935 | 2024-01-09 11:35:13 -0800 | [diff] [blame] | 2427 | request struct SetAliroReaderConfigRequest { |
| 2428 | octet_string<32> signingKey = 0; |
| 2429 | octet_string<65> verificationKey = 1; |
| 2430 | octet_string<16> groupIdentifier = 2; |
| 2431 | optional octet_string<16> groupResolvingKey = 3; |
| 2432 | } |
| 2433 | |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2434 | /** This command causes the lock device to lock the door. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2435 | timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2436 | /** This command causes the lock device to unlock the door. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2437 | timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2438 | /** This command causes the lock device to unlock the door with a timeout parameter. */ |
krypton36 | e83224e | 2022-04-20 09:57:22 -0700 | [diff] [blame] | 2439 | timed command UnlockWithTimeout(UnlockWithTimeoutRequest): DefaultSuccess = 3; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2440 | /** Set a weekly repeating schedule for a specified user. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2441 | command access(invoke: administer) SetWeekDaySchedule(SetWeekDayScheduleRequest): DefaultSuccess = 11; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2442 | /** Retrieve the specific weekly schedule for the specific user. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2443 | command access(invoke: administer) GetWeekDaySchedule(GetWeekDayScheduleRequest): GetWeekDayScheduleResponse = 12; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2444 | /** Clear the specific weekly schedule or all weekly schedules for the specific user. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2445 | command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2446 | /** Set a time-specific schedule ID for a specified user. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2447 | command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2448 | /** Returns the year day schedule data for the specified schedule and user indexes. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2449 | command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2450 | /** Clears the specific year day schedule or all year day schedules for the specific user. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2451 | command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2452 | /** Set the holiday Schedule by specifying local start time and local end time with respect to any Lock Operating Mode. */ |
Evgeniy Morozov | b5a967c | 2022-05-26 15:35:59 +0300 | [diff] [blame] | 2453 | command access(invoke: administer) SetHolidaySchedule(SetHolidayScheduleRequest): DefaultSuccess = 17; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2454 | /** Get the holiday schedule for the specified index. */ |
Evgeniy Morozov | b5a967c | 2022-05-26 15:35:59 +0300 | [diff] [blame] | 2455 | command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2456 | /** Clears the holiday schedule or all holiday schedules. */ |
Evgeniy Morozov | b5a967c | 2022-05-26 15:35:59 +0300 | [diff] [blame] | 2457 | command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2458 | /** Set User into the lock. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2459 | timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2460 | /** Retrieve User. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2461 | command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2462 | /** Clears a User or all Users. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2463 | timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2464 | /** Set a credential (e.g. PIN, RFID, Fingerprint, etc.) into the lock for a new user, existing user, or ProgrammingUser. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2465 | timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2466 | /** Retrieve the status of a particular credential (e.g. PIN, RFID, Fingerprint, etc.) by index. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2467 | command access(invoke: administer) GetCredentialStatus(GetCredentialStatusRequest): GetCredentialStatusResponse = 36; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2468 | /** Clear one, one type, or all credentials except ProgrammingPIN credential. */ |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2469 | timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; |
Andrei Litvin | f94a44e | 2023-11-28 11:15:13 -0500 | [diff] [blame] | 2470 | /** This command causes the lock device to unlock the door without pulling the latch. */ |
Marc Mikolits | 0b86ffa | 2023-05-30 18:59:23 +0200 | [diff] [blame] | 2471 | timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39; |
Nivi Sarkar | 6b21935 | 2024-01-09 11:35:13 -0800 | [diff] [blame] | 2472 | /** This command communicates an Aliro Reader configuration to the lock. */ |
| 2473 | timed command access(invoke: administer) SetAliroReaderConfig(SetAliroReaderConfigRequest): DefaultSuccess = 40; |
| 2474 | /** This command clears an existing Aliro Reader configuration for the lock. */ |
| 2475 | timed command access(invoke: administer) ClearAliroReaderConfig(): DefaultSuccess = 41; |
krypton36 | 2e94d8b | 2022-04-14 08:20:08 -0700 | [diff] [blame] | 2476 | } |
| 2477 | |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2478 | endpoint 0 { |
Andrei Litvin | 8363494 | 2023-08-05 00:50:32 -0400 | [diff] [blame] | 2479 | device type ma_rootdevice = 22, version 1; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2480 | device type ma_powersource = 17, version 1; |
Andrei Litvin | 8363494 | 2023-08-05 00:50:32 -0400 | [diff] [blame] | 2481 | |
Seth Rickard | b080024 | 2022-02-08 10:20:16 -0600 | [diff] [blame] | 2482 | binding cluster OtaSoftwareUpdateProvider; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2483 | |
| 2484 | server cluster Descriptor { |
Boris Zbarsky | e4c075f | 2022-09-12 08:23:17 -0400 | [diff] [blame] | 2485 | callback attribute deviceTypeList; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2486 | callback attribute serverList; |
| 2487 | callback attribute clientList; |
| 2488 | callback attribute partsList; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2489 | callback attribute generatedCommandList; |
| 2490 | callback attribute acceptedCommandList; |
| 2491 | callback attribute eventList; |
| 2492 | callback attribute attributeList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2493 | ram attribute featureMap default = 0; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2494 | callback attribute clusterRevision; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2495 | } |
| 2496 | |
| 2497 | server cluster AccessControl { |
Andrei Litvin | d5ae3f7 | 2023-02-14 09:25:16 -0500 | [diff] [blame] | 2498 | emits event AccessControlEntryChanged; |
| 2499 | emits event AccessControlExtensionChanged; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2500 | callback attribute acl; |
| 2501 | callback attribute extension; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2502 | callback attribute subjectsPerAccessControlEntry; |
| 2503 | callback attribute targetsPerAccessControlEntry; |
| 2504 | callback attribute accessControlEntriesPerFabric; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2505 | callback attribute generatedCommandList; |
| 2506 | callback attribute acceptedCommandList; |
| 2507 | callback attribute eventList; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2508 | callback attribute attributeList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2509 | ram attribute featureMap default = 0; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2510 | callback attribute clusterRevision; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2511 | } |
| 2512 | |
Boris Zbarsky | 04c20f6 | 2022-12-18 10:09:13 -0500 | [diff] [blame] | 2513 | server cluster BasicInformation { |
Andrei Litvin | d5ae3f7 | 2023-02-14 09:25:16 -0500 | [diff] [blame] | 2514 | emits event StartUp; |
| 2515 | emits event ShutDown; |
| 2516 | emits event Leave; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2517 | callback attribute dataModelRevision; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2518 | callback attribute vendorName; |
| 2519 | callback attribute vendorID; |
| 2520 | callback attribute productName; |
| 2521 | callback attribute productID; |
| 2522 | persist attribute nodeLabel; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2523 | callback attribute location; |
| 2524 | callback attribute hardwareVersion; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2525 | callback attribute hardwareVersionString; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2526 | callback attribute softwareVersion; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2527 | callback attribute softwareVersionString; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2528 | callback attribute manufacturingDate; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2529 | callback attribute partNumber; |
| 2530 | callback attribute productURL; |
| 2531 | callback attribute productLabel; |
| 2532 | callback attribute serialNumber; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2533 | persist attribute localConfigDisabled default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2534 | callback attribute uniqueID; |
| 2535 | callback attribute capabilityMinima; |
Terence Hampson | 9969d44 | 2023-11-16 11:30:48 -0500 | [diff] [blame] | 2536 | callback attribute specificationVersion; |
| 2537 | callback attribute maxPathsPerInvoke; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2538 | callback attribute generatedCommandList; |
| 2539 | callback attribute acceptedCommandList; |
| 2540 | callback attribute eventList; |
| 2541 | callback attribute attributeList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2542 | ram attribute featureMap default = 0; |
Terence Hampson | 9969d44 | 2023-11-16 11:30:48 -0500 | [diff] [blame] | 2543 | ram attribute clusterRevision default = 3; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2544 | } |
| 2545 | |
| 2546 | server cluster OtaSoftwareUpdateRequestor { |
Andrei Litvin | d5ae3f7 | 2023-02-14 09:25:16 -0500 | [diff] [blame] | 2547 | emits event StateTransition; |
| 2548 | emits event VersionApplied; |
| 2549 | emits event DownloadError; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2550 | callback attribute defaultOTAProviders; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2551 | ram attribute updatePossible default = 1; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2552 | ram attribute updateState default = 0; |
| 2553 | ram attribute updateStateProgress default = 0; |
| 2554 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2555 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2556 | |
| 2557 | handle command AnnounceOTAProvider; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2558 | } |
| 2559 | |
| 2560 | server cluster LocalizationConfiguration { |
| 2561 | persist attribute activeLocale default = "en-US"; |
| 2562 | callback attribute supportedLocales; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2563 | callback attribute generatedCommandList; |
| 2564 | callback attribute acceptedCommandList; |
| 2565 | callback attribute eventList; |
| 2566 | callback attribute attributeList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2567 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2568 | ram attribute clusterRevision default = 1; |
| 2569 | } |
| 2570 | |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2571 | server cluster UnitLocalization { |
| 2572 | callback attribute generatedCommandList; |
| 2573 | callback attribute acceptedCommandList; |
| 2574 | callback attribute eventList; |
| 2575 | callback attribute attributeList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2576 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2577 | ram attribute clusterRevision default = 1; |
| 2578 | } |
| 2579 | |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2580 | server cluster PowerSource { |
Andrei Litvin | d5ae3f7 | 2023-02-14 09:25:16 -0500 | [diff] [blame] | 2581 | emits event WiredFaultChange; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2582 | ram attribute status default = 1; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2583 | ram attribute order default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2584 | ram attribute description default = "USB"; |
C Freeman | 5db749b | 2023-11-14 06:33:55 +0100 | [diff] [blame] | 2585 | ram attribute wiredCurrentType default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2586 | ram attribute wiredAssessedCurrent; |
C Freeman | 529d74b | 2023-07-20 02:27:29 -0400 | [diff] [blame] | 2587 | callback attribute endpointList; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2588 | callback attribute generatedCommandList; |
| 2589 | callback attribute acceptedCommandList; |
| 2590 | callback attribute eventList; |
| 2591 | callback attribute attributeList; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2592 | ram attribute featureMap default = 1; |
C Freeman | 529d74b | 2023-07-20 02:27:29 -0400 | [diff] [blame] | 2593 | ram attribute clusterRevision default = 2; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2594 | } |
| 2595 | |
| 2596 | server cluster GeneralCommissioning { |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2597 | ram attribute breadcrumb default = 0x0000000000000000; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2598 | callback attribute basicCommissioningInfo; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2599 | callback attribute regulatoryConfig; |
| 2600 | callback attribute locationCapability; |
| 2601 | callback attribute supportsConcurrentConnection; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2602 | callback attribute generatedCommandList; |
| 2603 | callback attribute acceptedCommandList; |
| 2604 | callback attribute eventList; |
| 2605 | callback attribute attributeList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2606 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2607 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2608 | |
| 2609 | handle command ArmFailSafe; |
| 2610 | handle command ArmFailSafeResponse; |
| 2611 | handle command SetRegulatoryConfig; |
| 2612 | handle command SetRegulatoryConfigResponse; |
| 2613 | handle command CommissioningComplete; |
| 2614 | handle command CommissioningCompleteResponse; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2615 | } |
| 2616 | |
| 2617 | server cluster NetworkCommissioning { |
| 2618 | ram attribute maxNetworks; |
| 2619 | callback attribute networks; |
| 2620 | ram attribute scanMaxTimeSeconds; |
| 2621 | ram attribute connectMaxTimeSeconds; |
| 2622 | ram attribute interfaceEnabled; |
| 2623 | ram attribute lastNetworkingStatus; |
| 2624 | ram attribute lastNetworkID; |
| 2625 | ram attribute lastConnectErrorValue; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2626 | callback attribute generatedCommandList; |
| 2627 | callback attribute acceptedCommandList; |
| 2628 | callback attribute eventList; |
| 2629 | callback attribute attributeList; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2630 | ram attribute featureMap default = 2; |
| 2631 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2632 | |
| 2633 | handle command ScanNetworks; |
| 2634 | handle command ScanNetworksResponse; |
| 2635 | handle command AddOrUpdateWiFiNetwork; |
| 2636 | handle command AddOrUpdateThreadNetwork; |
| 2637 | handle command RemoveNetwork; |
| 2638 | handle command NetworkConfigResponse; |
| 2639 | handle command ConnectNetwork; |
| 2640 | handle command ConnectNetworkResponse; |
| 2641 | handle command ReorderNetwork; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2642 | } |
| 2643 | |
| 2644 | server cluster DiagnosticLogs { |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2645 | ram attribute featureMap default = 0; |
tehampson | 2db812e | 2022-05-23 15:24:29 -0400 | [diff] [blame] | 2646 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2647 | |
| 2648 | handle command RetrieveLogsRequest; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2649 | } |
| 2650 | |
| 2651 | server cluster GeneralDiagnostics { |
Andrei Litvin | d5ae3f7 | 2023-02-14 09:25:16 -0500 | [diff] [blame] | 2652 | emits event HardwareFaultChange; |
| 2653 | emits event RadioFaultChange; |
| 2654 | emits event NetworkFaultChange; |
| 2655 | emits event BootReason; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2656 | callback attribute networkInterfaces; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2657 | callback attribute rebootCount; |
| 2658 | callback attribute upTime; |
| 2659 | callback attribute totalOperationalHours; |
Boris Zbarsky | dd6ae93 | 2023-01-09 12:08:17 -0500 | [diff] [blame] | 2660 | callback attribute bootReason; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2661 | callback attribute activeHardwareFaults; |
| 2662 | callback attribute activeRadioFaults; |
| 2663 | callback attribute activeNetworkFaults; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2664 | callback attribute testEventTriggersEnabled default = false; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2665 | callback attribute generatedCommandList; |
| 2666 | callback attribute acceptedCommandList; |
| 2667 | callback attribute eventList; |
| 2668 | callback attribute attributeList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2669 | ram attribute featureMap default = 0; |
Tennessee Carmel-Veilleux | d165f62 | 2023-10-31 10:50:04 -0400 | [diff] [blame] | 2670 | ram attribute clusterRevision default = 0x0002; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2671 | |
| 2672 | handle command TestEventTrigger; |
Tennessee Carmel-Veilleux | d165f62 | 2023-10-31 10:50:04 -0400 | [diff] [blame] | 2673 | handle command TimeSnapshot; |
| 2674 | handle command TimeSnapshotResponse; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2675 | } |
| 2676 | |
| 2677 | server cluster SoftwareDiagnostics { |
| 2678 | callback attribute threadMetrics; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2679 | callback attribute currentHeapFree; |
| 2680 | callback attribute currentHeapUsed; |
| 2681 | callback attribute currentHeapHighWatermark; |
| 2682 | callback attribute featureMap; |
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 ResetWatermarks; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2686 | } |
| 2687 | |
| 2688 | server cluster ThreadNetworkDiagnostics { |
Yufeng Wang | 5865352 | 2022-05-27 22:10:22 -0700 | [diff] [blame] | 2689 | callback attribute channel; |
| 2690 | callback attribute routingRole; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2691 | callback attribute networkName; |
| 2692 | callback attribute panId; |
| 2693 | callback attribute extendedPanId; |
Yufeng Wang | 5865352 | 2022-05-27 22:10:22 -0700 | [diff] [blame] | 2694 | callback attribute meshLocalPrefix; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2695 | callback attribute overrunCount; |
Boris Zbarsky | 6395db6 | 2023-01-06 12:08:22 -0500 | [diff] [blame] | 2696 | callback attribute neighborTable; |
| 2697 | callback attribute routeTable; |
Yufeng Wang | 5865352 | 2022-05-27 22:10:22 -0700 | [diff] [blame] | 2698 | callback attribute partitionId; |
| 2699 | callback attribute weighting; |
| 2700 | callback attribute dataVersion; |
| 2701 | callback attribute stableDataVersion; |
| 2702 | callback attribute leaderRouterId; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2703 | callback attribute detachedRoleCount; |
| 2704 | callback attribute childRoleCount; |
| 2705 | callback attribute routerRoleCount; |
| 2706 | callback attribute leaderRoleCount; |
| 2707 | callback attribute attachAttemptCount; |
| 2708 | callback attribute partitionIdChangeCount; |
| 2709 | callback attribute betterPartitionAttachAttemptCount; |
| 2710 | callback attribute parentChangeCount; |
| 2711 | callback attribute txTotalCount; |
| 2712 | callback attribute txUnicastCount; |
| 2713 | callback attribute txBroadcastCount; |
| 2714 | callback attribute txAckRequestedCount; |
| 2715 | callback attribute txAckedCount; |
| 2716 | callback attribute txNoAckRequestedCount; |
| 2717 | callback attribute txDataCount; |
| 2718 | callback attribute txDataPollCount; |
| 2719 | callback attribute txBeaconCount; |
| 2720 | callback attribute txBeaconRequestCount; |
| 2721 | callback attribute txOtherCount; |
| 2722 | callback attribute txRetryCount; |
| 2723 | callback attribute txDirectMaxRetryExpiryCount; |
| 2724 | callback attribute txIndirectMaxRetryExpiryCount; |
| 2725 | callback attribute txErrCcaCount; |
| 2726 | callback attribute txErrAbortCount; |
| 2727 | callback attribute txErrBusyChannelCount; |
| 2728 | callback attribute rxTotalCount; |
| 2729 | callback attribute rxUnicastCount; |
| 2730 | callback attribute rxBroadcastCount; |
| 2731 | callback attribute rxDataCount; |
| 2732 | callback attribute rxDataPollCount; |
| 2733 | callback attribute rxBeaconCount; |
| 2734 | callback attribute rxBeaconRequestCount; |
| 2735 | callback attribute rxOtherCount; |
| 2736 | callback attribute rxAddressFilteredCount; |
| 2737 | callback attribute rxDestAddrFilteredCount; |
| 2738 | callback attribute rxDuplicatedCount; |
| 2739 | callback attribute rxErrNoFrameCount; |
| 2740 | callback attribute rxErrUnknownNeighborCount; |
| 2741 | callback attribute rxErrInvalidSrcAddrCount; |
| 2742 | callback attribute rxErrSecCount; |
| 2743 | callback attribute rxErrFcsCount; |
| 2744 | callback attribute rxErrOtherCount; |
| 2745 | callback attribute activeTimestamp; |
| 2746 | callback attribute pendingTimestamp; |
| 2747 | callback attribute delay; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2748 | callback attribute securityPolicy; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2749 | callback attribute channelPage0Mask; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2750 | callback attribute operationalDatasetComponents; |
| 2751 | callback attribute activeNetworkFaultsList; |
| 2752 | ram attribute featureMap default = 0x000F; |
| 2753 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2754 | |
| 2755 | handle command ResetCounts; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2756 | } |
| 2757 | |
| 2758 | server cluster WiFiNetworkDiagnostics { |
Andrei Litvin | d5ae3f7 | 2023-02-14 09:25:16 -0500 | [diff] [blame] | 2759 | emits event Disconnection; |
| 2760 | emits event AssociationFailure; |
| 2761 | emits event ConnectionStatus; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2762 | callback attribute bssid; |
| 2763 | callback attribute securityType; |
| 2764 | callback attribute wiFiVersion; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2765 | callback attribute channelNumber; |
| 2766 | callback attribute rssi; |
| 2767 | callback attribute beaconLostCount; |
| 2768 | callback attribute beaconRxCount; |
| 2769 | callback attribute packetMulticastRxCount; |
| 2770 | callback attribute packetMulticastTxCount; |
| 2771 | callback attribute packetUnicastRxCount; |
| 2772 | callback attribute packetUnicastTxCount; |
| 2773 | callback attribute currentMaxRate; |
| 2774 | callback attribute overrunCount; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2775 | ram attribute featureMap default = 3; |
| 2776 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2777 | |
| 2778 | handle command ResetCounts; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2779 | } |
| 2780 | |
| 2781 | server cluster EthernetNetworkDiagnostics { |
| 2782 | callback attribute PHYRate; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2783 | callback attribute fullDuplex; |
| 2784 | callback attribute packetRxCount; |
| 2785 | callback attribute packetTxCount; |
| 2786 | callback attribute txErrCount; |
| 2787 | callback attribute collisionCount; |
| 2788 | callback attribute overrunCount; |
| 2789 | callback attribute carrierDetect; |
| 2790 | callback attribute timeSinceReset; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2791 | ram attribute featureMap default = 3; |
| 2792 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2793 | |
| 2794 | handle command ResetCounts; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2795 | } |
| 2796 | |
| 2797 | server cluster AdministratorCommissioning { |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2798 | callback attribute windowStatus; |
| 2799 | callback attribute adminFabricIndex; |
| 2800 | callback attribute adminVendorId; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2801 | callback attribute generatedCommandList; |
| 2802 | callback attribute acceptedCommandList; |
| 2803 | callback attribute eventList; |
| 2804 | callback attribute attributeList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2805 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2806 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2807 | |
| 2808 | handle command OpenCommissioningWindow; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2809 | handle command RevokeCommissioning; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2810 | } |
| 2811 | |
| 2812 | server cluster OperationalCredentials { |
| 2813 | callback attribute NOCs; |
| 2814 | callback attribute fabrics; |
Andrei Litvin | baf18ff | 2022-05-06 09:57:50 -0400 | [diff] [blame] | 2815 | callback attribute supportedFabrics; |
| 2816 | callback attribute commissionedFabrics; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2817 | callback attribute trustedRootCertificates; |
| 2818 | callback attribute currentFabricIndex; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2819 | callback attribute generatedCommandList; |
| 2820 | callback attribute acceptedCommandList; |
| 2821 | callback attribute eventList; |
| 2822 | callback attribute attributeList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2823 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2824 | ram attribute clusterRevision default = 1; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2825 | |
| 2826 | handle command AttestationRequest; |
| 2827 | handle command AttestationResponse; |
| 2828 | handle command CertificateChainRequest; |
| 2829 | handle command CertificateChainResponse; |
| 2830 | handle command CSRRequest; |
| 2831 | handle command CSRResponse; |
| 2832 | handle command AddNOC; |
| 2833 | handle command UpdateNOC; |
| 2834 | handle command NOCResponse; |
| 2835 | handle command UpdateFabricLabel; |
| 2836 | handle command RemoveFabric; |
| 2837 | handle command AddTrustedRootCertificate; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2838 | } |
| 2839 | |
Evgeniy Morozov | f62daff | 2022-06-24 00:14:26 +0300 | [diff] [blame] | 2840 | server cluster GroupKeyManagement { |
| 2841 | callback attribute groupKeyMap; |
| 2842 | callback attribute groupTable; |
| 2843 | callback attribute maxGroupsPerFabric; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2844 | callback attribute maxGroupKeysPerFabric; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2845 | callback attribute generatedCommandList; |
| 2846 | callback attribute acceptedCommandList; |
| 2847 | callback attribute eventList; |
| 2848 | callback attribute attributeList; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2849 | callback attribute featureMap; |
| 2850 | callback attribute clusterRevision; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2851 | |
| 2852 | handle command KeySetWrite; |
| 2853 | handle command KeySetRead; |
| 2854 | handle command KeySetReadResponse; |
| 2855 | handle command KeySetRemove; |
| 2856 | handle command KeySetReadAllIndices; |
| 2857 | handle command KeySetReadAllIndicesResponse; |
Evgeniy Morozov | f62daff | 2022-06-24 00:14:26 +0300 | [diff] [blame] | 2858 | } |
| 2859 | |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2860 | server cluster FixedLabel { |
| 2861 | callback attribute labelList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2862 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2863 | ram attribute clusterRevision default = 1; |
| 2864 | } |
| 2865 | |
| 2866 | server cluster UserLabel { |
| 2867 | callback attribute labelList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2868 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2869 | ram attribute clusterRevision default = 1; |
| 2870 | } |
mkardous-silabs | e149350 | 2023-08-03 10:43:24 -0400 | [diff] [blame] | 2871 | |
| 2872 | server cluster IcdManagement { |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2873 | callback attribute idleModeDuration; |
| 2874 | callback attribute activeModeDuration; |
| 2875 | callback attribute activeModeThreshold; |
mkardous-silabs | e149350 | 2023-08-03 10:43:24 -0400 | [diff] [blame] | 2876 | ram attribute featureMap default = 0x0000; |
mkardous-silabs | 5656986 | 2023-10-27 16:29:52 -0400 | [diff] [blame] | 2877 | ram attribute clusterRevision default = 2; |
mkardous-silabs | e149350 | 2023-08-03 10:43:24 -0400 | [diff] [blame] | 2878 | } |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2879 | } |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2880 | endpoint 1 { |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2881 | device type ma_powersource = 17, version 1; |
Andrei Litvin | 8363494 | 2023-08-05 00:50:32 -0400 | [diff] [blame] | 2882 | device type ma_doorlock = 10, version 1; |
| 2883 | |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2884 | |
| 2885 | server cluster Identify { |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2886 | ram attribute identifyTime default = 0x0000; |
| 2887 | ram attribute identifyType default = 0x0; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2888 | callback attribute generatedCommandList; |
| 2889 | callback attribute acceptedCommandList; |
| 2890 | callback attribute eventList; |
| 2891 | callback attribute attributeList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2892 | ram attribute featureMap default = 0; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2893 | ram attribute clusterRevision default = 4; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2894 | |
| 2895 | handle command Identify; |
| 2896 | handle command TriggerEffect; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2897 | } |
| 2898 | |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2899 | server cluster Descriptor { |
Boris Zbarsky | e4c075f | 2022-09-12 08:23:17 -0400 | [diff] [blame] | 2900 | callback attribute deviceTypeList; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2901 | callback attribute serverList; |
| 2902 | callback attribute clientList; |
| 2903 | callback attribute partsList; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2904 | callback attribute generatedCommandList; |
| 2905 | callback attribute acceptedCommandList; |
| 2906 | callback attribute eventList; |
| 2907 | callback attribute attributeList; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2908 | ram attribute featureMap default = 0; |
Boris Zbarsky | f1b6ea5 | 2023-11-29 05:07:22 -0500 | [diff] [blame] | 2909 | callback attribute clusterRevision; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2910 | } |
| 2911 | |
| 2912 | server cluster PowerSource { |
| 2913 | ram attribute status default = 1; |
| 2914 | ram attribute order default = 1; |
| 2915 | ram attribute description default = "Battery"; |
Damian Królik | 383ced5 | 2022-07-11 11:34:13 +0200 | [diff] [blame] | 2916 | ram attribute batChargeLevel; |
| 2917 | ram attribute batReplacementNeeded; |
| 2918 | ram attribute batReplaceability; |
| 2919 | ram attribute batReplacementDescription; |
C Freeman | 5db749b | 2023-11-14 06:33:55 +0100 | [diff] [blame] | 2920 | ram attribute batQuantity default = 1; |
C Freeman | 529d74b | 2023-07-20 02:27:29 -0400 | [diff] [blame] | 2921 | callback attribute endpointList; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2922 | callback attribute generatedCommandList; |
| 2923 | callback attribute acceptedCommandList; |
| 2924 | callback attribute eventList; |
| 2925 | callback attribute attributeList; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2926 | ram attribute featureMap default = 0x0A; |
C Freeman | 529d74b | 2023-07-20 02:27:29 -0400 | [diff] [blame] | 2927 | ram attribute clusterRevision default = 2; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2928 | } |
| 2929 | |
| 2930 | server cluster DoorLock { |
Andrei Litvin | d5ae3f7 | 2023-02-14 09:25:16 -0500 | [diff] [blame] | 2931 | emits event DoorLockAlarm; |
| 2932 | emits event DoorStateChange; |
| 2933 | emits event LockOperation; |
| 2934 | emits event LockOperationError; |
| 2935 | emits event LockUserChange; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2936 | persist attribute lockState default = 1; |
| 2937 | ram attribute lockType; |
| 2938 | ram attribute actuatorEnabled; |
| 2939 | ram attribute doorState; |
| 2940 | ram attribute numberOfTotalUsersSupported default = 10; |
| 2941 | ram attribute numberOfPINUsersSupported default = 10; |
| 2942 | ram attribute numberOfRFIDUsersSupported default = 10; |
| 2943 | ram attribute numberOfWeekDaySchedulesSupportedPerUser default = 10; |
| 2944 | ram attribute numberOfYearDaySchedulesSupportedPerUser default = 10; |
Evgeniy Morozov | b5a967c | 2022-05-26 15:35:59 +0300 | [diff] [blame] | 2945 | ram attribute numberOfHolidaySchedulesSupported default = 10; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2946 | ram attribute maxPINCodeLength default = 8; |
| 2947 | ram attribute minPINCodeLength default = 6; |
| 2948 | ram attribute maxRFIDCodeLength default = 20; |
| 2949 | ram attribute minRFIDCodeLength default = 10; |
| 2950 | ram attribute credentialRulesSupport default = 1; |
Evgeniy Morozov | 37fb44a | 2022-05-13 21:45:58 +0300 | [diff] [blame] | 2951 | ram attribute numberOfCredentialsSupportedPerUser default = 5; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2952 | ram attribute language default = "en"; |
| 2953 | ram attribute autoRelockTime default = 60; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2954 | ram attribute soundVolume default = 0x00; |
| 2955 | ram attribute operatingMode default = 0x00; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2956 | ram attribute supportedOperatingModes default = 0xFFF6; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2957 | ram attribute enableOneTouchLocking default = 0x00; |
| 2958 | ram attribute enablePrivacyModeButton default = 0x00; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2959 | ram attribute wrongCodeEntryLimit default = 3; |
| 2960 | ram attribute userCodeTemporaryDisableTime default = 10; |
Andrei Litvin | 6d35975 | 2023-04-05 15:58:59 -0400 | [diff] [blame] | 2961 | ram attribute requirePINforRemoteOperation default = 0; |
C Freeman | 8ff2331 | 2023-08-16 18:50:41 -0400 | [diff] [blame] | 2962 | callback attribute generatedCommandList; |
| 2963 | callback attribute acceptedCommandList; |
| 2964 | callback attribute eventList; |
| 2965 | callback attribute attributeList; |
Marc Mikolits | 0b86ffa | 2023-05-30 18:59:23 +0200 | [diff] [blame] | 2966 | ram attribute featureMap default = 0x1DB3; |
Marc Mikolits | 5589086 | 2023-06-01 16:40:22 +0200 | [diff] [blame] | 2967 | ram attribute clusterRevision default = 7; |
Andrei Litvin | 49fff5b | 2023-10-11 18:25:37 -0400 | [diff] [blame] | 2968 | |
| 2969 | handle command LockDoor; |
| 2970 | handle command UnlockDoor; |
| 2971 | handle command UnlockWithTimeout; |
| 2972 | handle command SetWeekDaySchedule; |
| 2973 | handle command GetWeekDaySchedule; |
| 2974 | handle command GetWeekDayScheduleResponse; |
| 2975 | handle command ClearWeekDaySchedule; |
| 2976 | handle command SetYearDaySchedule; |
| 2977 | handle command GetYearDaySchedule; |
| 2978 | handle command GetYearDayScheduleResponse; |
| 2979 | handle command ClearYearDaySchedule; |
| 2980 | handle command SetHolidaySchedule; |
| 2981 | handle command GetHolidaySchedule; |
| 2982 | handle command GetHolidayScheduleResponse; |
| 2983 | handle command ClearHolidaySchedule; |
| 2984 | handle command SetUser; |
| 2985 | handle command GetUser; |
| 2986 | handle command GetUserResponse; |
| 2987 | handle command ClearUser; |
| 2988 | handle command SetCredential; |
| 2989 | handle command SetCredentialResponse; |
| 2990 | handle command GetCredentialStatus; |
| 2991 | handle command GetCredentialStatusResponse; |
| 2992 | handle command ClearCredential; |
| 2993 | handle command UnboltDoor; |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2994 | } |
Andrei Litvin | 6e3c109 | 2022-01-14 15:30:21 -0500 | [diff] [blame] | 2995 | } |
| 2996 | |
Andrei Litvin | 90d1957 | 2022-05-05 21:25:28 -0400 | [diff] [blame] | 2997 | |