blob: 3dc91b42426063577aa387b76b6514f7cf497f2a [file] [log] [blame]
// This IDL was generated automatically by ZAP.
// It is for view/code review purposes only.
struct LabelStruct {
char_string<16> label = 0;
char_string<16> value = 1;
}
client cluster Identify = 3 {
enum IdentifyEffectIdentifier : ENUM8 {
kBlink = 0;
kBreathe = 1;
kOkay = 2;
kChannelChange = 11;
kFinishEffect = 254;
kStopEffect = 255;
}
enum IdentifyEffectVariant : ENUM8 {
kDefault = 0;
}
enum IdentifyIdentifyType : ENUM8 {
kNone = 0;
kVisibleLight = 1;
kVisibleLED = 2;
kAudibleBeep = 3;
kDisplay = 4;
kActuator = 5;
}
attribute int16u identifyTime = 0;
readonly attribute enum8 identifyType = 1;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
server cluster Identify = 3 {
enum IdentifyEffectIdentifier : ENUM8 {
kBlink = 0;
kBreathe = 1;
kOkay = 2;
kChannelChange = 11;
kFinishEffect = 254;
kStopEffect = 255;
}
enum IdentifyEffectVariant : ENUM8 {
kDefault = 0;
}
enum IdentifyIdentifyType : ENUM8 {
kNone = 0;
kVisibleLight = 1;
kVisibleLED = 2;
kAudibleBeep = 3;
kDisplay = 4;
kActuator = 5;
}
attribute int16u identifyTime = 0;
readonly attribute enum8 identifyType = 1;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct IdentifyRequest {
INT16U identifyTime = 0;
}
request struct TriggerEffectRequest {
IdentifyEffectIdentifier effectIdentifier = 0;
IdentifyEffectVariant effectVariant = 1;
}
command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0;
command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64;
}
server cluster Groups = 4 {
bitmap GroupClusterFeature : BITMAP32 {
kGroupNames = 0x1;
}
readonly attribute bitmap8 nameSupport = 0;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct AddGroupRequest {
group_id groupId = 0;
CHAR_STRING groupName = 1;
}
request struct ViewGroupRequest {
group_id groupId = 0;
}
request struct GetGroupMembershipRequest {
group_id groupList[] = 0;
}
request struct RemoveGroupRequest {
group_id groupId = 0;
}
request struct AddGroupIfIdentifyingRequest {
group_id groupId = 0;
CHAR_STRING groupName = 1;
}
response struct AddGroupResponse = 0 {
ENUM8 status = 0;
group_id groupId = 1;
}
response struct ViewGroupResponse = 1 {
ENUM8 status = 0;
group_id groupId = 1;
CHAR_STRING groupName = 2;
}
response struct GetGroupMembershipResponse = 2 {
nullable INT8U capacity = 0;
group_id groupList[] = 1;
}
response struct RemoveGroupResponse = 3 {
ENUM8 status = 0;
group_id groupId = 1;
}
fabric command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0;
fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1;
fabric command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2;
fabric command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3;
fabric command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4;
fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5;
}
client cluster Scenes = 5 {
bitmap ScenesCopyMode : BITMAP8 {
kCopyAllScenes = 0x1;
}
struct ExtensionFieldSet {
cluster_id clusterId = 0;
AttributeValuePair attributeValueList[] = 1;
}
struct AttributeValuePair {
optional attrib_id attributeId = 0;
int8u attributeValue[] = 1;
}
readonly attribute int8u sceneCount = 0;
readonly attribute int8u currentScene = 1;
readonly attribute group_id currentGroup = 2;
readonly attribute boolean sceneValid = 3;
readonly attribute bitmap8 nameSupport = 4;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute int16u clusterRevision = 65533;
request struct AddSceneRequest {
group_id groupId = 0;
INT8U sceneId = 1;
INT16U transitionTime = 2;
CHAR_STRING sceneName = 3;
ExtensionFieldSet extensionFieldSets[] = 4;
}
request struct ViewSceneRequest {
group_id groupId = 0;
INT8U sceneId = 1;
}
request struct RemoveSceneRequest {
group_id groupId = 0;
INT8U sceneId = 1;
}
request struct RemoveAllScenesRequest {
group_id groupId = 0;
}
request struct StoreSceneRequest {
group_id groupId = 0;
INT8U sceneId = 1;
}
request struct RecallSceneRequest {
group_id groupId = 0;
INT8U sceneId = 1;
optional nullable INT16U transitionTime = 2;
}
request struct GetSceneMembershipRequest {
group_id groupId = 0;
}
response struct AddSceneResponse = 0 {
ENUM8 status = 0;
group_id groupId = 1;
INT8U sceneId = 2;
}
response struct ViewSceneResponse = 1 {
ENUM8 status = 0;
group_id groupId = 1;
INT8U sceneId = 2;
optional INT16U transitionTime = 3;
optional CHAR_STRING sceneName = 4;
optional ExtensionFieldSet extensionFieldSets[] = 5;
}
response struct RemoveSceneResponse = 2 {
ENUM8 status = 0;
group_id groupId = 1;
INT8U sceneId = 2;
}
response struct RemoveAllScenesResponse = 3 {
ENUM8 status = 0;
group_id groupId = 1;
}
response struct StoreSceneResponse = 4 {
ENUM8 status = 0;
group_id groupId = 1;
INT8U sceneId = 2;
}
response struct GetSceneMembershipResponse = 6 {
ENUM8 status = 0;
nullable INT8U capacity = 1;
group_id groupId = 2;
optional INT8U sceneList[] = 3;
}
fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0;
fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1;
fabric command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2;
fabric command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3;
fabric command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4;
fabric command RecallScene(RecallSceneRequest): DefaultSuccess = 5;
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
}
client cluster OnOff = 6 {
enum OnOffDelayedAllOffEffectVariant : ENUM8 {
kFadeToOffIn0p8Seconds = 0;
kNoFade = 1;
k50PercentDimDownIn0p8SecondsThenFadeToOffIn12Seconds = 2;
}
enum OnOffDyingLightEffectVariant : ENUM8 {
k20PercenterDimUpIn0p5SecondsThenFadeToOffIn1Second = 0;
}
enum OnOffEffectIdentifier : ENUM8 {
kDelayedAllOff = 0;
kDyingLight = 1;
}
enum OnOffStartUpOnOff : ENUM8 {
kOff = 0;
kOn = 1;
kTogglePreviousOnOff = 2;
}
bitmap OnOffControl : BITMAP8 {
kAcceptOnlyWhenOn = 0x1;
}
bitmap OnOffFeature : BITMAP32 {
kLighting = 0x1;
}
bitmap SceneFeatures : BITMAP32 {
kSceneNames = 0x1;
}
readonly attribute boolean onOff = 0;
readonly attribute boolean globalSceneControl = 16384;
attribute int16u onTime = 16385;
attribute int16u offWaitTime = 16386;
attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
command Off(): DefaultSuccess = 0;
command On(): DefaultSuccess = 1;
command Toggle(): DefaultSuccess = 2;
}
server cluster Descriptor = 29 {
struct DeviceTypeStruct {
devtype_id type = 0;
int16u revision = 1;
}
readonly attribute DeviceTypeStruct deviceTypeList[] = 0;
readonly attribute CLUSTER_ID serverList[] = 1;
readonly attribute CLUSTER_ID clientList[] = 2;
readonly attribute ENDPOINT_NO partsList[] = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
server cluster Binding = 30 {
struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
optional cluster_id cluster = 4;
fabric_idx fabricIndex = 254;
}
attribute TargetStruct binding[] = 0;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
server cluster AccessControl = 31 {
enum AuthMode : ENUM8 {
kPase = 1;
kCase = 2;
kGroup = 3;
}
enum ChangeTypeEnum : ENUM8 {
kChanged = 0;
kAdded = 1;
kRemoved = 2;
}
enum Privilege : ENUM8 {
kView = 1;
kProxyView = 2;
kOperate = 3;
kManage = 4;
kAdminister = 5;
}
struct AccessControlEntry {
Privilege privilege = 1;
AuthMode authMode = 2;
nullable int64u subjects[] = 3;
nullable Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
struct Target {
nullable cluster_id cluster = 0;
nullable endpoint_no endpoint = 1;
nullable devtype_id deviceType = 2;
}
struct ExtensionEntry {
octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
nullable AccessControlEntry latestValue = 4;
fabric_idx fabricIndex = 254;
}
info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
nullable ExtensionEntry latestValue = 4;
fabric_idx fabricIndex = 254;
}
attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0;
attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1;
readonly attribute int16u subjectsPerAccessControlEntry = 2;
readonly attribute int16u targetsPerAccessControlEntry = 3;
readonly attribute int16u accessControlEntriesPerFabric = 4;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
server cluster Basic = 40 {
struct CapabilityMinimaStruct {
int16u caseSessionsPerFabric = 0;
int16u subscriptionsPerFabric = 1;
}
critical event StartUp = 0 {
INT32U softwareVersion = 0;
}
critical event ShutDown = 1 {
}
info event Leave = 2 {
fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
boolean reachableNewValue = 0;
}
readonly attribute int16u dataModelRevision = 0;
readonly attribute char_string<32> vendorName = 1;
readonly attribute vendor_id vendorID = 2;
readonly attribute char_string<32> productName = 3;
readonly attribute int16u productID = 4;
attribute access(write: manage) char_string<32> nodeLabel = 5;
attribute access(write: administer) char_string<2> location = 6;
readonly attribute int16u hardwareVersion = 7;
readonly attribute char_string<64> hardwareVersionString = 8;
readonly attribute int32u softwareVersion = 9;
readonly attribute char_string<64> softwareVersionString = 10;
readonly attribute char_string<16> manufacturingDate = 11;
readonly attribute char_string<32> partNumber = 12;
readonly attribute long_char_string<256> productURL = 13;
readonly attribute char_string<64> productLabel = 14;
readonly attribute char_string<32> serialNumber = 15;
attribute access(write: manage) boolean localConfigDisabled = 16;
readonly attribute boolean reachable = 17;
readonly attribute char_string<32> uniqueID = 18;
readonly attribute CapabilityMinimaStruct capabilityMinima = 19;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
client cluster OtaSoftwareUpdateProvider = 41 {
enum OTAApplyUpdateAction : ENUM8 {
kProceed = 0;
kAwaitNextAction = 1;
kDiscontinue = 2;
}
enum OTADownloadProtocol : ENUM8 {
kBDXSynchronous = 0;
kBDXAsynchronous = 1;
kHttps = 2;
kVendorSpecific = 3;
}
enum OTAQueryStatus : ENUM8 {
kUpdateAvailable = 0;
kBusy = 1;
kNotAvailable = 2;
kDownloadProtocolNotSupported = 3;
}
readonly attribute int16u clusterRevision = 65533;
request struct QueryImageRequest {
vendor_id vendorId = 0;
INT16U productId = 1;
INT32U softwareVersion = 2;
OTADownloadProtocol protocolsSupported[] = 3;
optional INT16U hardwareVersion = 4;
optional CHAR_STRING<2> location = 5;
optional BOOLEAN requestorCanConsent = 6;
optional OCTET_STRING<512> metadataForProvider = 7;
}
request struct ApplyUpdateRequestRequest {
OCTET_STRING<32> updateToken = 0;
INT32U newVersion = 1;
}
request struct NotifyUpdateAppliedRequest {
OCTET_STRING<32> updateToken = 0;
INT32U softwareVersion = 1;
}
response struct QueryImageResponse = 1 {
OTAQueryStatus status = 0;
optional INT32U delayedActionTime = 1;
optional CHAR_STRING<256> imageURI = 2;
optional INT32U softwareVersion = 3;
optional CHAR_STRING<64> softwareVersionString = 4;
optional OCTET_STRING<32> updateToken = 5;
optional BOOLEAN userConsentNeeded = 6;
optional OCTET_STRING<512> metadataForRequestor = 7;
}
response struct ApplyUpdateResponse = 3 {
OTAApplyUpdateAction action = 0;
INT32U delayedActionTime = 1;
}
command QueryImage(QueryImageRequest): QueryImageResponse = 0;
command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2;
command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4;
}
server cluster OtaSoftwareUpdateRequestor = 42 {
enum OTAAnnouncementReason : ENUM8 {
kSimpleAnnouncement = 0;
kUpdateAvailable = 1;
kUrgentUpdateAvailable = 2;
}
enum OTAChangeReasonEnum : ENUM8 {
kUnknown = 0;
kSuccess = 1;
kFailure = 2;
kTimeOut = 3;
kDelayByProvider = 4;
}
enum OTAUpdateStateEnum : ENUM8 {
kUnknown = 0;
kIdle = 1;
kQuerying = 2;
kDelayedOnQuery = 3;
kDownloading = 4;
kApplying = 5;
kDelayedOnApply = 6;
kRollingBack = 7;
kDelayedOnUserConsent = 8;
}
struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
}
info event StateTransition = 0 {
OTAUpdateStateEnum previousState = 0;
OTAUpdateStateEnum newState = 1;
OTAChangeReasonEnum reason = 2;
nullable INT32U targetSoftwareVersion = 3;
}
critical event VersionApplied = 1 {
INT32U softwareVersion = 0;
INT16U productID = 1;
}
info event DownloadError = 2 {
INT32U softwareVersion = 0;
INT64U bytesDownloaded = 1;
nullable INT8U progressPercent = 2;
nullable INT64S platformCode = 3;
}
attribute ProviderLocation defaultOtaProviders[] = 0;
readonly attribute boolean updatePossible = 1;
readonly attribute OTAUpdateStateEnum updateState = 2;
readonly attribute nullable int8u updateStateProgress = 3;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct AnnounceOtaProviderRequest {
node_id providerNodeId = 0;
vendor_id vendorId = 1;
OTAAnnouncementReason announcementReason = 2;
optional OCTET_STRING<512> metadataForNode = 3;
endpoint_no endpoint = 4;
}
command AnnounceOtaProvider(AnnounceOtaProviderRequest): DefaultSuccess = 0;
}
server cluster LocalizationConfiguration = 43 {
attribute char_string<35> activeLocale = 0;
readonly attribute CHAR_STRING supportedLocales[] = 1;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
server cluster TimeFormatLocalization = 44 {
enum CalendarType : ENUM8 {
kBuddhist = 0;
kChinese = 1;
kCoptic = 2;
kEthiopian = 3;
kGregorian = 4;
kHebrew = 5;
kIndian = 6;
kIslamic = 7;
kJapanese = 8;
kKorean = 9;
kPersian = 10;
kTaiwanese = 11;
}
enum HourFormat : ENUM8 {
k12hr = 0;
k24hr = 1;
}
attribute HourFormat hourFormat = 0;
attribute CalendarType activeCalendarType = 1;
readonly attribute CalendarType supportedCalendarTypes[] = 2;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
server cluster GeneralCommissioning = 48 {
enum CommissioningError : ENUM8 {
kOk = 0;
kValueOutsideRange = 1;
kInvalidAuthentication = 2;
kNoFailSafe = 3;
kBusyWithOtherAdmin = 4;
}
enum RegulatoryLocationType : ENUM8 {
kIndoor = 0;
kOutdoor = 1;
kIndoorOutdoor = 2;
}
struct BasicCommissioningInfo {
int16u failSafeExpiryLengthSeconds = 0;
int16u maxCumulativeFailsafeSeconds = 1;
}
attribute access(write: administer) int64u breadcrumb = 0;
readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1;
readonly attribute RegulatoryLocationType regulatoryConfig = 2;
readonly attribute RegulatoryLocationType locationCapability = 3;
readonly attribute boolean supportsConcurrentConnection = 4;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct ArmFailSafeRequest {
INT16U expiryLengthSeconds = 0;
INT64U breadcrumb = 1;
}
request struct SetRegulatoryConfigRequest {
RegulatoryLocationType newRegulatoryConfig = 0;
CHAR_STRING countryCode = 1;
INT64U breadcrumb = 2;
}
response struct ArmFailSafeResponse = 1 {
CommissioningError errorCode = 0;
CHAR_STRING debugText = 1;
}
response struct SetRegulatoryConfigResponse = 3 {
CommissioningError errorCode = 0;
CHAR_STRING debugText = 1;
}
response struct CommissioningCompleteResponse = 5 {
CommissioningError errorCode = 0;
CHAR_STRING debugText = 1;
}
command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0;
command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2;
fabric command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4;
}
server cluster NetworkCommissioning = 49 {
enum NetworkCommissioningStatus : ENUM8 {
kSuccess = 0;
kOutOfRange = 1;
kBoundsExceeded = 2;
kNetworkIDNotFound = 3;
kDuplicateNetworkID = 4;
kNetworkNotFound = 5;
kRegulatoryError = 6;
kAuthFailure = 7;
kUnsupportedSecurity = 8;
kOtherConnectionFailure = 9;
kIPV6Failed = 10;
kIPBindFailed = 11;
kUnknownError = 12;
}
enum WiFiBand : ENUM8 {
k2g4 = 0;
k3g65 = 1;
k5g = 2;
k6g = 3;
k60g = 4;
}
bitmap NetworkCommissioningFeature : BITMAP32 {
kWiFiNetworkInterface = 0x1;
kThreadNetworkInterface = 0x2;
kEthernetNetworkInterface = 0x4;
}
bitmap WiFiSecurity : BITMAP8 {
kUnencrypted = 0x1;
kWepPersonal = 0x2;
kWpaPersonal = 0x4;
kWpa2Personal = 0x8;
kWpa3Personal = 0x10;
}
struct NetworkInfo {
octet_string<32> networkID = 0;
boolean connected = 1;
}
struct WiFiInterfaceScanResult {
WiFiSecurity security = 0;
octet_string<32> ssid = 1;
octet_string<6> bssid = 2;
int16u channel = 3;
WiFiBand wiFiBand = 4;
int8s rssi = 5;
}
struct ThreadInterfaceScanResult {
int16u panId = 0;
int64u extendedPanId = 1;
char_string<16> networkName = 2;
int16u channel = 3;
int8u version = 4;
octet_string<8> extendedAddress = 5;
int8s rssi = 6;
int8u lqi = 7;
}
readonly attribute access(read: administer) int8u maxNetworks = 0;
readonly attribute access(read: administer) NetworkInfo networks[] = 1;
readonly attribute int8u scanMaxTimeSeconds = 2;
readonly attribute int8u connectMaxTimeSeconds = 3;
attribute access(write: administer) boolean interfaceEnabled = 4;
readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5;
readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6;
readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct ScanNetworksRequest {
optional nullable OCTET_STRING<32> ssid = 0;
optional INT64U breadcrumb = 1;
}
request struct AddOrUpdateWiFiNetworkRequest {
OCTET_STRING<32> ssid = 0;
OCTET_STRING<64> credentials = 1;
optional INT64U breadcrumb = 2;
}
request struct AddOrUpdateThreadNetworkRequest {
OCTET_STRING<254> operationalDataset = 0;
optional INT64U breadcrumb = 1;
}
request struct RemoveNetworkRequest {
OCTET_STRING<32> networkID = 0;
optional INT64U breadcrumb = 1;
}
request struct ConnectNetworkRequest {
OCTET_STRING<32> networkID = 0;
optional INT64U breadcrumb = 1;
}
request struct ReorderNetworkRequest {
OCTET_STRING<32> networkID = 0;
INT8U networkIndex = 1;
optional INT64U breadcrumb = 2;
}
response struct ScanNetworksResponse = 1 {
NetworkCommissioningStatus networkingStatus = 0;
optional CHAR_STRING debugText = 1;
optional WiFiInterfaceScanResult wiFiScanResults[] = 2;
optional ThreadInterfaceScanResult threadScanResults[] = 3;
}
response struct NetworkConfigResponse = 5 {
NetworkCommissioningStatus networkingStatus = 0;
optional CHAR_STRING<512> debugText = 1;
optional INT8U networkIndex = 2;
}
response struct ConnectNetworkResponse = 7 {
NetworkCommissioningStatus networkingStatus = 0;
optional CHAR_STRING debugText = 1;
nullable INT32S errorValue = 2;
}
command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0;
command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2;
command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3;
command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4;
command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6;
command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8;
}
server cluster DiagnosticLogs = 50 {
enum LogsIntent : ENUM8 {
kEndUserSupport = 0;
kNetworkDiag = 1;
kCrashLogs = 2;
}
enum LogsStatus : ENUM8 {
kSuccess = 0;
kExhausted = 1;
kNoLogs = 2;
kBusy = 3;
kDenied = 4;
}
enum LogsTransferProtocol : ENUM8 {
kResponsePayload = 0;
kBdx = 1;
}
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct RetrieveLogsRequestRequest {
LogsIntent intent = 0;
LogsTransferProtocol requestedProtocol = 1;
OCTET_STRING<32> transferFileDesignator = 2;
}
command RetrieveLogsRequest(RetrieveLogsRequestRequest): RetrieveLogsResponse = 0;
}
server cluster GeneralDiagnostics = 51 {
enum BootReasonType : ENUM8 {
kUnspecified = 0;
kPowerOnReboot = 1;
kBrownOutReset = 2;
kSoftwareWatchdogReset = 3;
kHardwareWatchdogReset = 4;
kSoftwareUpdateCompleted = 5;
kSoftwareReset = 6;
}
enum HardwareFaultType : ENUM8 {
kUnspecified = 0;
kRadio = 1;
kSensor = 2;
kResettableOverTemp = 3;
kNonResettableOverTemp = 4;
kPowerSource = 5;
kVisualDisplayFault = 6;
kAudioOutputFault = 7;
kUserInterfaceFault = 8;
kNonVolatileMemoryError = 9;
kTamperDetected = 10;
}
enum InterfaceType : ENUM8 {
kUnspecified = 0;
kWiFi = 1;
kEthernet = 2;
kCellular = 3;
kThread = 4;
}
enum NetworkFaultType : ENUM8 {
kUnspecified = 0;
kHardwareFailure = 1;
kNetworkJammed = 2;
kConnectionFailed = 3;
}
enum RadioFaultType : ENUM8 {
kUnspecified = 0;
kWiFiFault = 1;
kCellularFault = 2;
kThreadFault = 3;
kNFCFault = 4;
kBLEFault = 5;
kEthernetFault = 6;
}
struct NetworkInterfaceType {
char_string<32> name = 0;
boolean isOperational = 1;
nullable boolean offPremiseServicesReachableIPv4 = 2;
nullable boolean offPremiseServicesReachableIPv6 = 3;
octet_string<8> hardwareAddress = 4;
octet_string IPv4Addresses[] = 5;
octet_string IPv6Addresses[] = 6;
InterfaceType type = 7;
}
critical event HardwareFaultChange = 0 {
HardwareFaultType current[] = 0;
HardwareFaultType previous[] = 1;
}
critical event RadioFaultChange = 1 {
RadioFaultType current[] = 0;
RadioFaultType previous[] = 1;
}
critical event NetworkFaultChange = 2 {
NetworkFaultType current[] = 0;
NetworkFaultType previous[] = 1;
}
critical event BootReason = 3 {
BootReasonType bootReason = 0;
}
readonly attribute NetworkInterfaceType networkInterfaces[] = 0;
readonly attribute int16u rebootCount = 1;
readonly attribute int64u upTime = 2;
readonly attribute int32u totalOperationalHours = 3;
readonly attribute enum8 bootReasons = 4;
readonly attribute ENUM8 activeHardwareFaults[] = 5;
readonly attribute ENUM8 activeRadioFaults[] = 6;
readonly attribute ENUM8 activeNetworkFaults[] = 7;
readonly attribute boolean testEventTriggersEnabled = 8;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct TestEventTriggerRequest {
OCTET_STRING<16> enableKey = 0;
INT64U eventTrigger = 1;
}
command access(invoke: manage) TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0;
}
server cluster SoftwareDiagnostics = 52 {
bitmap SoftwareDiagnosticsFeature : BITMAP32 {
kWaterMarks = 0x1;
}
struct ThreadMetrics {
int64u id = 0;
optional char_string<8> name = 1;
optional int32u stackFreeCurrent = 2;
optional int32u stackFreeMinimum = 3;
optional int32u stackSize = 4;
}
info event SoftwareFault = 0 {
INT64U id = 0;
optional CHAR_STRING name = 1;
optional OCTET_STRING faultRecording = 2;
}
readonly attribute ThreadMetrics threadMetrics[] = 0;
readonly attribute int64u currentHeapFree = 1;
readonly attribute int64u currentHeapUsed = 2;
readonly attribute int64u currentHeapHighWatermark = 3;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
command ResetWatermarks(): DefaultSuccess = 0;
}
server cluster ThreadNetworkDiagnostics = 53 {
enum NetworkFault : ENUM8 {
kUnspecified = 0;
kLinkDown = 1;
kHardwareFailure = 2;
kNetworkJammed = 3;
}
enum RoutingRole : ENUM8 {
kUnspecified = 0;
kUnassigned = 1;
kSleepyEndDevice = 2;
kEndDevice = 3;
kReed = 4;
kRouter = 5;
kLeader = 6;
}
enum ThreadConnectionStatus : ENUM8 {
kConnected = 0;
kNotConnected = 1;
}
bitmap ThreadNetworkDiagnosticsFeature : BITMAP32 {
kPacketCounts = 0x1;
kErrorCounts = 0x2;
kMLECounts = 0x4;
kMACCounts = 0x8;
}
struct NeighborTable {
int64u extAddress = 0;
int32u age = 1;
int16u rloc16 = 2;
int32u linkFrameCounter = 3;
int32u mleFrameCounter = 4;
int8u lqi = 5;
nullable int8s averageRssi = 6;
nullable int8s lastRssi = 7;
int8u frameErrorRate = 8;
int8u messageErrorRate = 9;
boolean rxOnWhenIdle = 10;
boolean fullThreadDevice = 11;
boolean fullNetworkData = 12;
boolean isChild = 13;
}
struct RouteTable {
int64u extAddress = 0;
int16u rloc16 = 1;
int8u routerId = 2;
int8u nextHop = 3;
int8u pathCost = 4;
int8u LQIIn = 5;
int8u LQIOut = 6;
int8u age = 7;
boolean allocated = 8;
boolean linkEstablished = 9;
}
struct SecurityPolicy {
int16u rotationTime = 0;
bitmap16 flags = 1;
}
struct OperationalDatasetComponents {
boolean activeTimestampPresent = 0;
boolean pendingTimestampPresent = 1;
boolean masterKeyPresent = 2;
boolean networkNamePresent = 3;
boolean extendedPanIdPresent = 4;
boolean meshLocalPrefixPresent = 5;
boolean delayPresent = 6;
boolean panIdPresent = 7;
boolean channelPresent = 8;
boolean pskcPresent = 9;
boolean securityPolicyPresent = 10;
boolean channelMaskPresent = 11;
}
info event ConnectionStatus = 0 {
ThreadConnectionStatus connectionStatus = 0;
}
info event NetworkFaultChange = 1 {
NetworkFault current[] = 0;
NetworkFault previous[] = 1;
}
readonly attribute nullable int16u channel = 0;
readonly attribute nullable RoutingRole routingRole = 1;
readonly attribute nullable char_string<16> networkName = 2;
readonly attribute nullable int16u panId = 3;
readonly attribute nullable int64u extendedPanId = 4;
readonly attribute nullable octet_string<17> meshLocalPrefix = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute NeighborTable neighborTableList[] = 7;
readonly attribute RouteTable routeTableList[] = 8;
readonly attribute nullable int32u partitionId = 9;
readonly attribute nullable int8u weighting = 10;
readonly attribute nullable int8u dataVersion = 11;
readonly attribute nullable int8u stableDataVersion = 12;
readonly attribute nullable int8u leaderRouterId = 13;
readonly attribute int16u detachedRoleCount = 14;
readonly attribute int16u childRoleCount = 15;
readonly attribute int16u routerRoleCount = 16;
readonly attribute int16u leaderRoleCount = 17;
readonly attribute int16u attachAttemptCount = 18;
readonly attribute int16u partitionIdChangeCount = 19;
readonly attribute int16u betterPartitionAttachAttemptCount = 20;
readonly attribute int16u parentChangeCount = 21;
readonly attribute int32u txTotalCount = 22;
readonly attribute int32u txUnicastCount = 23;
readonly attribute int32u txBroadcastCount = 24;
readonly attribute int32u txAckRequestedCount = 25;
readonly attribute int32u txAckedCount = 26;
readonly attribute int32u txNoAckRequestedCount = 27;
readonly attribute int32u txDataCount = 28;
readonly attribute int32u txDataPollCount = 29;
readonly attribute int32u txBeaconCount = 30;
readonly attribute int32u txBeaconRequestCount = 31;
readonly attribute int32u txOtherCount = 32;
readonly attribute int32u txRetryCount = 33;
readonly attribute int32u txDirectMaxRetryExpiryCount = 34;
readonly attribute int32u txIndirectMaxRetryExpiryCount = 35;
readonly attribute int32u txErrCcaCount = 36;
readonly attribute int32u txErrAbortCount = 37;
readonly attribute int32u txErrBusyChannelCount = 38;
readonly attribute int32u rxTotalCount = 39;
readonly attribute int32u rxUnicastCount = 40;
readonly attribute int32u rxBroadcastCount = 41;
readonly attribute int32u rxDataCount = 42;
readonly attribute int32u rxDataPollCount = 43;
readonly attribute int32u rxBeaconCount = 44;
readonly attribute int32u rxBeaconRequestCount = 45;
readonly attribute int32u rxOtherCount = 46;
readonly attribute int32u rxAddressFilteredCount = 47;
readonly attribute int32u rxDestAddrFilteredCount = 48;
readonly attribute int32u rxDuplicatedCount = 49;
readonly attribute int32u rxErrNoFrameCount = 50;
readonly attribute int32u rxErrUnknownNeighborCount = 51;
readonly attribute int32u rxErrInvalidSrcAddrCount = 52;
readonly attribute int32u rxErrSecCount = 53;
readonly attribute int32u rxErrFcsCount = 54;
readonly attribute int32u rxErrOtherCount = 55;
readonly attribute nullable int64u activeTimestamp = 56;
readonly attribute nullable int64u pendingTimestamp = 57;
readonly attribute nullable int32u delay = 58;
readonly attribute nullable SecurityPolicy securityPolicy = 59;
readonly attribute nullable octet_string<4> channelPage0Mask = 60;
readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61;
readonly attribute NetworkFault activeNetworkFaultsList[] = 62;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
command ResetCounts(): DefaultSuccess = 0;
}
server cluster WiFiNetworkDiagnostics = 54 {
enum AssociationFailureCause : ENUM8 {
kUnknown = 0;
kAssociationFailed = 1;
kAuthenticationFailed = 2;
kSsidNotFound = 3;
}
enum SecurityType : ENUM8 {
kUnspecified = 0;
kNone = 1;
kWep = 2;
kWpa = 3;
kWpa2 = 4;
kWpa3 = 5;
}
enum WiFiConnectionStatus : ENUM8 {
kConnected = 0;
kNotConnected = 1;
}
enum WiFiVersionType : ENUM8 {
k80211a = 0;
k80211b = 1;
k80211g = 2;
k80211n = 3;
k80211ac = 4;
k80211ax = 5;
}
info event Disconnection = 0 {
INT16U reasonCode = 0;
}
info event AssociationFailure = 1 {
AssociationFailureCause associationFailure = 0;
INT16U status = 1;
}
info event ConnectionStatus = 2 {
WiFiConnectionStatus connectionStatus = 0;
}
readonly attribute nullable octet_string<6> bssid = 0;
readonly attribute nullable SecurityType securityType = 1;
readonly attribute nullable WiFiVersionType wiFiVersion = 2;
readonly attribute nullable int16u channelNumber = 3;
readonly attribute nullable int8s rssi = 4;
readonly attribute nullable int32u beaconLostCount = 5;
readonly attribute nullable int32u beaconRxCount = 6;
readonly attribute nullable int32u packetMulticastRxCount = 7;
readonly attribute nullable int32u packetMulticastTxCount = 8;
readonly attribute nullable int32u packetUnicastRxCount = 9;
readonly attribute nullable int32u packetUnicastTxCount = 10;
readonly attribute nullable int64u currentMaxRate = 11;
readonly attribute nullable int64u overrunCount = 12;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
command ResetCounts(): DefaultSuccess = 0;
}
server cluster EthernetNetworkDiagnostics = 55 {
enum PHYRateType : ENUM8 {
k10m = 0;
k100m = 1;
k1000m = 2;
k25g = 3;
k5g = 4;
k10g = 5;
k40g = 6;
k100g = 7;
k200g = 8;
k400g = 9;
}
readonly attribute nullable PHYRateType PHYRate = 0;
readonly attribute nullable boolean fullDuplex = 1;
readonly attribute int64u packetRxCount = 2;
readonly attribute int64u packetTxCount = 3;
readonly attribute int64u txErrCount = 4;
readonly attribute int64u collisionCount = 5;
readonly attribute int64u overrunCount = 6;
readonly attribute nullable boolean carrierDetect = 7;
readonly attribute int64u timeSinceReset = 8;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
command ResetCounts(): DefaultSuccess = 0;
}
server cluster Switch = 59 {
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
info event InitialPress = 1 {
INT8U newPosition = 0;
}
info event LongPress = 2 {
INT8U newPosition = 0;
}
info event ShortRelease = 3 {
INT8U previousPosition = 0;
}
info event LongRelease = 4 {
INT8U previousPosition = 0;
}
info event MultiPressOngoing = 5 {
INT8U newPosition = 0;
INT8U currentNumberOfPressesCounted = 1;
}
info event MultiPressComplete = 6 {
INT8U newPosition = 0;
INT8U totalNumberOfPressesCounted = 1;
}
readonly attribute int8u numberOfPositions = 0;
readonly attribute int8u currentPosition = 1;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
server cluster AdministratorCommissioning = 60 {
enum CommissioningWindowStatus : ENUM8 {
kWindowNotOpen = 0;
kEnhancedWindowOpen = 1;
kBasicWindowOpen = 2;
}
enum StatusCode : ENUM8 {
kBusy = 2;
kPAKEParameterError = 3;
kWindowNotOpen = 4;
}
readonly attribute CommissioningWindowStatus windowStatus = 0;
readonly attribute nullable fabric_idx adminFabricIndex = 1;
readonly attribute nullable int16u adminVendorId = 2;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct OpenCommissioningWindowRequest {
INT16U commissioningTimeout = 0;
OCTET_STRING PAKEVerifier = 1;
INT16U discriminator = 2;
INT32U iterations = 3;
OCTET_STRING salt = 4;
}
request struct OpenBasicCommissioningWindowRequest {
INT16U commissioningTimeout = 0;
}
timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0;
timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1;
timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2;
}
server cluster OperationalCredentials = 62 {
enum OperationalCertStatus : ENUM8 {
kSuccess = 0;
kInvalidPublicKey = 1;
kInvalidNodeOpId = 2;
kInvalidNOC = 3;
kMissingCsr = 4;
kTableFull = 5;
kInvalidAdminSubject = 6;
kFabricConflict = 9;
kLabelConflict = 10;
kInvalidFabricIndex = 11;
}
struct NOCStruct {
octet_string noc = 1;
nullable octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
node_id nodeId = 4;
char_string<32> label = 5;
fabric_idx fabricIndex = 254;
}
readonly attribute access(read: administer) NOCStruct NOCs[] = 0;
readonly attribute FabricDescriptor fabrics[] = 1;
readonly attribute int8u supportedFabrics = 2;
readonly attribute int8u commissionedFabrics = 3;
readonly attribute OCTET_STRING trustedRootCertificates[] = 4;
readonly attribute int8u currentFabricIndex = 5;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct AttestationRequestRequest {
OCTET_STRING attestationNonce = 0;
}
request struct CertificateChainRequestRequest {
INT8U certificateType = 0;
}
request struct CSRRequestRequest {
OCTET_STRING CSRNonce = 0;
optional boolean isForUpdateNOC = 1;
}
request struct AddNOCRequest {
OCTET_STRING NOCValue = 0;
optional OCTET_STRING ICACValue = 1;
OCTET_STRING IPKValue = 2;
Int64u caseAdminSubject = 3;
VENDOR_ID adminVendorId = 4;
}
request struct UpdateNOCRequest {
OCTET_STRING NOCValue = 0;
optional OCTET_STRING ICACValue = 1;
}
request struct UpdateFabricLabelRequest {
CHAR_STRING<32> label = 0;
}
request struct RemoveFabricRequest {
fabric_idx fabricIndex = 0;
}
request struct AddTrustedRootCertificateRequest {
OCTET_STRING rootCertificate = 0;
}
response struct AttestationResponse = 1 {
OCTET_STRING attestationElements = 0;
OCTET_STRING signature = 1;
}
response struct CertificateChainResponse = 3 {
OCTET_STRING certificate = 0;
}
response struct CSRResponse = 5 {
OCTET_STRING NOCSRElements = 0;
OCTET_STRING attestationSignature = 1;
}
response struct NOCResponse = 8 {
OperationalCertStatus statusCode = 0;
optional fabric_idx fabricIndex = 1;
optional CHAR_STRING debugText = 2;
}
command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0;
command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2;
command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4;
command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6;
fabric command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7;
fabric command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9;
command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10;
command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11;
}
server cluster GroupKeyManagement = 63 {
enum GroupKeySecurityPolicy : ENUM8 {
kTrustFirst = 0;
kCacheAndSync = 1;
}
struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
fabric_idx fabricIndex = 254;
}
struct GroupKeySetStruct {
int16u groupKeySetID = 0;
GroupKeySecurityPolicy groupKeySecurityPolicy = 1;
nullable octet_string<16> epochKey0 = 2;
nullable epoch_us epochStartTime0 = 3;
nullable octet_string<16> epochKey1 = 4;
nullable epoch_us epochStartTime1 = 5;
nullable octet_string<16> epochKey2 = 6;
nullable epoch_us epochStartTime2 = 7;
}
attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0;
readonly attribute GroupInfoMapStruct groupTable[] = 1;
readonly attribute int16u maxGroupsPerFabric = 2;
readonly attribute int16u maxGroupKeysPerFabric = 3;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct KeySetWriteRequest {
GroupKeySetStruct groupKeySet = 0;
}
request struct KeySetReadRequest {
INT16U groupKeySetID = 0;
}
request struct KeySetRemoveRequest {
INT16U groupKeySetID = 0;
}
request struct KeySetReadAllIndicesRequest {
INT16U groupKeySetIDs[] = 0;
}
response struct KeySetReadResponse = 2 {
GroupKeySetStruct groupKeySet = 0;
}
response struct KeySetReadAllIndicesResponse = 5 {
INT16U groupKeySetIDs[] = 0;
}
fabric command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0;
fabric command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1;
fabric command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3;
fabric command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4;
}
server cluster FixedLabel = 64 {
readonly attribute LabelStruct labelList[] = 0;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
server cluster UserLabel = 65 {
attribute access(write: manage) LabelStruct labelList[] = 0;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
client cluster ColorControl = 768 {
enum ColorLoopAction : ENUM8 {
kDeactivate = 0;
kActivateFromColorLoopStartEnhancedHue = 1;
kActivateFromEnhancedCurrentHue = 2;
}
enum ColorLoopDirection : ENUM8 {
kDecrementHue = 0;
kIncrementHue = 1;
}
enum ColorMode : ENUM8 {
kCurrentHueAndCurrentSaturation = 0;
kCurrentXAndCurrentY = 1;
kColorTemperature = 2;
}
enum HueDirection : ENUM8 {
kShortestDistance = 0;
kLongestDistance = 1;
kUp = 2;
kDown = 3;
}
enum HueMoveMode : ENUM8 {
kStop = 0;
kUp = 1;
kDown = 3;
}
enum HueStepMode : ENUM8 {
kUp = 1;
kDown = 3;
}
enum SaturationMoveMode : ENUM8 {
kStop = 0;
kUp = 1;
kDown = 3;
}
enum SaturationStepMode : ENUM8 {
kUp = 1;
kDown = 3;
}
bitmap ColorCapabilities : BITMAP16 {
kHueSaturationSupported = 0x1;
kEnhancedHueSupported = 0x2;
kColorLoopSupported = 0x4;
kXYAttributesSupported = 0x8;
kColorTemperatureSupported = 0x10;
}
bitmap ColorControlFeature : BITMAP32 {
kHueAndSaturation = 0x1;
kEnhancedHue = 0x2;
kColorLoop = 0x4;
kXy = 0x8;
kColorTemperature = 0x10;
}
bitmap ColorLoopUpdateFlags : BITMAP8 {
kUpdateAction = 0x1;
kUpdateDirection = 0x2;
kUpdateTime = 0x4;
kUpdateStartHue = 0x8;
}
readonly attribute int8u currentHue = 0;
readonly attribute int8u currentSaturation = 1;
readonly attribute int16u remainingTime = 2;
readonly attribute int16u currentX = 3;
readonly attribute int16u currentY = 4;
readonly attribute int16u colorTemperatureMireds = 7;
readonly attribute enum8 colorMode = 8;
attribute bitmap8 options = 15;
readonly attribute nullable int8u numberOfPrimaries = 16;
readonly attribute int16u enhancedCurrentHue = 16384;
readonly attribute enum8 enhancedColorMode = 16385;
readonly attribute int8u colorLoopActive = 16386;
readonly attribute int8u colorLoopDirection = 16387;
readonly attribute int16u colorLoopTime = 16388;
readonly attribute int16u colorLoopStartEnhancedHue = 16389;
readonly attribute int16u colorLoopStoredEnhancedHue = 16390;
readonly attribute bitmap16 colorCapabilities = 16394;
readonly attribute int16u colorTempPhysicalMinMireds = 16395;
readonly attribute int16u colorTempPhysicalMaxMireds = 16396;
readonly attribute int16u coupleColorTempToLevelMinMireds = 16397;
attribute access(write: manage) nullable int16u startUpColorTemperatureMireds = 16400;
readonly attribute int16u clusterRevision = 65533;
request struct MoveToHueRequest {
INT8U hue = 0;
HueDirection direction = 1;
INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
request struct MoveHueRequest {
HueMoveMode moveMode = 0;
INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct StepHueRequest {
HueStepMode stepMode = 0;
INT8U stepSize = 1;
INT8U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
request struct MoveToSaturationRequest {
INT8U saturation = 0;
INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct MoveSaturationRequest {
SaturationMoveMode moveMode = 0;
INT8U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct StepSaturationRequest {
SaturationStepMode stepMode = 0;
INT8U stepSize = 1;
INT8U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
request struct MoveToHueAndSaturationRequest {
INT8U hue = 0;
INT8U saturation = 1;
INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
request struct MoveToColorRequest {
INT16U colorX = 0;
INT16U colorY = 1;
INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
request struct MoveColorRequest {
INT16S rateX = 0;
INT16S rateY = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct StepColorRequest {
INT16S stepX = 0;
INT16S stepY = 1;
INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
request struct MoveToColorTemperatureRequest {
INT16U colorTemperature = 0;
INT16U transitionTime = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct EnhancedMoveToHueRequest {
INT16U enhancedHue = 0;
HueDirection direction = 1;
INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
request struct EnhancedMoveHueRequest {
HueMoveMode moveMode = 0;
INT16U rate = 1;
BITMAP8 optionsMask = 2;
BITMAP8 optionsOverride = 3;
}
request struct EnhancedStepHueRequest {
HueStepMode stepMode = 0;
INT16U stepSize = 1;
INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
request struct EnhancedMoveToHueAndSaturationRequest {
INT16U enhancedHue = 0;
INT8U saturation = 1;
INT16U transitionTime = 2;
BITMAP8 optionsMask = 3;
BITMAP8 optionsOverride = 4;
}
request struct ColorLoopSetRequest {
ColorLoopUpdateFlags updateFlags = 0;
ColorLoopAction action = 1;
ColorLoopDirection direction = 2;
INT16U time = 3;
INT16U startHue = 4;
BITMAP8 optionsMask = 5;
BITMAP8 optionsOverride = 6;
}
command MoveToHue(MoveToHueRequest): DefaultSuccess = 0;
command MoveHue(MoveHueRequest): DefaultSuccess = 1;
command StepHue(StepHueRequest): DefaultSuccess = 2;
command MoveToSaturation(MoveToSaturationRequest): DefaultSuccess = 3;
command MoveSaturation(MoveSaturationRequest): DefaultSuccess = 4;
command StepSaturation(StepSaturationRequest): DefaultSuccess = 5;
command MoveToHueAndSaturation(MoveToHueAndSaturationRequest): DefaultSuccess = 6;
command MoveToColor(MoveToColorRequest): DefaultSuccess = 7;
command MoveColor(MoveColorRequest): DefaultSuccess = 8;
command StepColor(StepColorRequest): DefaultSuccess = 9;
command MoveToColorTemperature(MoveToColorTemperatureRequest): DefaultSuccess = 10;
command EnhancedMoveToHue(EnhancedMoveToHueRequest): DefaultSuccess = 64;
command EnhancedMoveHue(EnhancedMoveHueRequest): DefaultSuccess = 65;
command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66;
command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67;
command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68;
}
endpoint 0 {
device type rootdevice = 22;
binding cluster OtaSoftwareUpdateProvider;
server cluster Descriptor {
callback attribute deviceTypeList;
callback attribute serverList;
callback attribute clientList;
callback attribute partsList;
ram attribute featureMap;
callback attribute clusterRevision default = 1;
}
server cluster Binding {
callback attribute binding;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster AccessControl {
callback attribute acl;
callback attribute extension;
callback attribute subjectsPerAccessControlEntry default = 4;
callback attribute targetsPerAccessControlEntry default = 3;
callback attribute accessControlEntriesPerFabric default = 3;
callback attribute attributeList;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster Basic {
callback attribute dataModelRevision default = 10;
callback attribute vendorName;
callback attribute vendorID;
callback attribute productName;
callback attribute productID;
persist attribute nodeLabel;
callback attribute location default = "XX";
callback attribute hardwareVersion;
callback attribute hardwareVersionString;
callback attribute softwareVersion;
callback attribute softwareVersionString;
callback attribute manufacturingDate default = "20210614123456ZZ";
callback attribute partNumber;
callback attribute productURL;
callback attribute productLabel;
callback attribute serialNumber;
persist attribute localConfigDisabled;
ram attribute reachable default = 1;
callback attribute uniqueID;
callback attribute capabilityMinima;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster OtaSoftwareUpdateRequestor {
callback attribute defaultOtaProviders;
ram attribute updatePossible default = 1;
ram attribute updateState;
ram attribute updateStateProgress;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster LocalizationConfiguration {
ram attribute activeLocale;
callback attribute supportedLocales;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster TimeFormatLocalization {
persist attribute hourFormat;
persist attribute activeCalendarType;
callback attribute supportedCalendarTypes;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster GeneralCommissioning {
ram attribute breadcrumb;
callback attribute basicCommissioningInfo;
callback attribute regulatoryConfig;
callback attribute locationCapability;
callback attribute supportsConcurrentConnection default = 1;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster NetworkCommissioning {
ram attribute maxNetworks;
callback attribute networks;
ram attribute scanMaxTimeSeconds;
ram attribute connectMaxTimeSeconds;
ram attribute interfaceEnabled;
ram attribute lastNetworkingStatus;
ram attribute lastNetworkID;
ram attribute lastConnectErrorValue;
ram attribute featureMap default = 2;
ram attribute clusterRevision default = 1;
}
server cluster DiagnosticLogs {
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster GeneralDiagnostics {
callback attribute networkInterfaces;
callback attribute rebootCount;
callback attribute upTime;
callback attribute totalOperationalHours;
callback attribute bootReasons;
callback attribute activeHardwareFaults;
callback attribute activeRadioFaults;
callback attribute activeNetworkFaults;
callback attribute testEventTriggersEnabled;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster SoftwareDiagnostics {
callback attribute threadMetrics;
callback attribute currentHeapFree;
callback attribute currentHeapUsed;
callback attribute currentHeapHighWatermark;
ram attribute featureMap default = 1;
ram attribute clusterRevision default = 1;
}
server cluster ThreadNetworkDiagnostics {
callback attribute channel;
callback attribute routingRole;
callback attribute networkName;
callback attribute panId;
callback attribute extendedPanId;
callback attribute meshLocalPrefix;
callback attribute overrunCount;
callback attribute neighborTableList;
callback attribute routeTableList;
callback attribute partitionId;
callback attribute weighting;
callback attribute dataVersion;
callback attribute stableDataVersion;
callback attribute leaderRouterId;
callback attribute detachedRoleCount;
callback attribute childRoleCount;
callback attribute routerRoleCount;
callback attribute leaderRoleCount;
callback attribute attachAttemptCount;
callback attribute partitionIdChangeCount;
callback attribute betterPartitionAttachAttemptCount;
callback attribute parentChangeCount;
callback attribute txTotalCount;
callback attribute txUnicastCount;
callback attribute txBroadcastCount;
callback attribute txAckRequestedCount;
callback attribute txAckedCount;
callback attribute txNoAckRequestedCount;
callback attribute txDataCount;
callback attribute txDataPollCount;
callback attribute txBeaconCount;
callback attribute txBeaconRequestCount;
callback attribute txOtherCount;
callback attribute txRetryCount;
callback attribute txDirectMaxRetryExpiryCount;
callback attribute txIndirectMaxRetryExpiryCount;
callback attribute txErrCcaCount;
callback attribute txErrAbortCount;
callback attribute txErrBusyChannelCount;
callback attribute rxTotalCount;
callback attribute rxUnicastCount;
callback attribute rxBroadcastCount;
callback attribute rxDataCount;
callback attribute rxDataPollCount;
callback attribute rxBeaconCount;
callback attribute rxBeaconRequestCount;
callback attribute rxOtherCount;
callback attribute rxAddressFilteredCount;
callback attribute rxDestAddrFilteredCount;
callback attribute rxDuplicatedCount;
callback attribute rxErrNoFrameCount;
callback attribute rxErrUnknownNeighborCount;
callback attribute rxErrInvalidSrcAddrCount;
callback attribute rxErrSecCount;
callback attribute rxErrFcsCount;
callback attribute rxErrOtherCount;
callback attribute activeTimestamp;
callback attribute pendingTimestamp;
callback attribute delay;
callback attribute securityPolicy;
callback attribute channelPage0Mask;
callback attribute operationalDatasetComponents;
callback attribute activeNetworkFaultsList;
ram attribute featureMap default = 0x000F;
ram attribute clusterRevision default = 1;
}
server cluster WiFiNetworkDiagnostics {
callback attribute bssid;
callback attribute securityType;
callback attribute wiFiVersion;
callback attribute channelNumber;
callback attribute rssi;
callback attribute beaconLostCount;
callback attribute beaconRxCount;
callback attribute packetMulticastRxCount;
callback attribute packetMulticastTxCount;
callback attribute packetUnicastRxCount;
callback attribute packetUnicastTxCount;
callback attribute currentMaxRate;
callback attribute overrunCount;
ram attribute featureMap default = 3;
ram attribute clusterRevision default = 1;
}
server cluster EthernetNetworkDiagnostics {
callback attribute PHYRate;
callback attribute fullDuplex;
callback attribute packetRxCount;
callback attribute packetTxCount;
callback attribute txErrCount;
callback attribute collisionCount;
callback attribute overrunCount;
callback attribute carrierDetect;
callback attribute timeSinceReset;
ram attribute featureMap default = 3;
ram attribute clusterRevision default = 1;
}
server cluster AdministratorCommissioning {
callback attribute windowStatus;
callback attribute adminFabricIndex default = 1;
callback attribute adminVendorId;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster OperationalCredentials {
callback attribute NOCs;
callback attribute fabrics;
callback attribute supportedFabrics;
callback attribute commissionedFabrics;
callback attribute trustedRootCertificates;
callback attribute currentFabricIndex;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster GroupKeyManagement {
callback attribute groupKeyMap;
callback attribute groupTable;
callback attribute maxGroupsPerFabric;
callback attribute maxGroupKeysPerFabric;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster FixedLabel {
callback attribute labelList;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster UserLabel {
callback attribute labelList;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
}
endpoint 1 {
device type onofflightswitch = 259;
binding cluster Identify;
binding cluster Scenes;
binding cluster OnOff;
binding cluster ColorControl;
server cluster Identify {
ram attribute identifyTime;
ram attribute identifyType;
callback attribute attributeList;
ram attribute featureMap;
ram attribute clusterRevision default = 4;
}
server cluster Groups {
ram attribute nameSupport;
ram attribute featureMap;
ram attribute clusterRevision default = 4;
}
server cluster Descriptor {
callback attribute deviceTypeList;
callback attribute serverList;
callback attribute clientList;
callback attribute partsList;
callback attribute attributeList;
ram attribute featureMap;
callback attribute clusterRevision default = 1;
}
server cluster Binding {
callback attribute binding;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
}
endpoint 2 {
device type genericswitch = 15;
server cluster Identify {
ram attribute identifyTime;
ram attribute identifyType;
callback attribute generatedCommandList;
callback attribute acceptedCommandList;
callback attribute attributeList;
ram attribute featureMap;
ram attribute clusterRevision default = 2;
}
server cluster Descriptor {
callback attribute deviceTypeList;
callback attribute serverList;
callback attribute clientList;
callback attribute partsList;
callback attribute generatedCommandList;
callback attribute acceptedCommandList;
callback attribute attributeList;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}
server cluster Switch {
ram attribute numberOfPositions default = 2;
ram attribute currentPosition;
callback attribute generatedCommandList;
callback attribute acceptedCommandList;
callback attribute attributeList;
ram attribute featureMap default = 2;
ram attribute clusterRevision default = 1;
}
}