| // This IDL was generated automatically by ZAP. |
| // It is for view/code review purposes only. |
| |
| struct ApplicationStruct { |
| int16u catalogVendorID = 0; |
| char_string applicationID = 1; |
| } |
| |
| struct LabelStruct { |
| char_string<16> label = 0; |
| char_string<16> value = 1; |
| } |
| |
| /** Attributes and commands for putting a device into Identification mode (e.g. flashing a light). */ |
| server cluster Identify = 3 { |
| enum EffectIdentifierEnum : ENUM8 { |
| kBlink = 0; |
| kBreathe = 1; |
| kOkay = 2; |
| kChannelChange = 11; |
| kFinishEffect = 254; |
| kStopEffect = 255; |
| } |
| |
| enum EffectVariantEnum : ENUM8 { |
| kDefault = 0; |
| } |
| |
| enum IdentifyTypeEnum : ENUM8 { |
| kNone = 0; |
| kLightOutput = 1; |
| kVisibleIndicator = 2; |
| kAudibleBeep = 3; |
| kDisplay = 4; |
| kActuator = 5; |
| } |
| |
| attribute int16u identifyTime = 0; |
| readonly attribute IdentifyTypeEnum identifyType = 1; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| |
| request struct IdentifyRequest { |
| INT16U identifyTime = 0; |
| } |
| |
| command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; |
| } |
| |
| /** Attributes and commands for group configuration and manipulation. */ |
| server cluster Groups = 4 { |
| bitmap Feature : BITMAP32 { |
| kGroupNames = 0x1; |
| } |
| |
| bitmap NameSupportBitmap : BITMAP8 { |
| kGroupNames = 0x80; |
| } |
| |
| readonly attribute NameSupportBitmap nameSupport = 0; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| 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; |
| } |
| |
| /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ |
| server cluster Descriptor = 29 { |
| struct DeviceTypeStruct { |
| devtype_id deviceType = 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 event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| } |
| |
| /** The Binding Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for supporting the binding table. */ |
| client cluster Binding = 30 { |
| fabric_scoped 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 command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| } |
| |
| /** The Access Control Cluster exposes a data model view of a |
| Node's Access Control List (ACL), which codifies the rules used to manage |
| and enforce Access Control for the Node's endpoints and their associated |
| cluster instances. */ |
| server cluster AccessControl = 31 { |
| enum AccessControlEntryAuthModeEnum : ENUM8 { |
| kPase = 1; |
| kCase = 2; |
| kGroup = 3; |
| } |
| |
| enum AccessControlEntryPrivilegeEnum : ENUM8 { |
| kView = 1; |
| kProxyView = 2; |
| kOperate = 3; |
| kManage = 4; |
| kAdminister = 5; |
| } |
| |
| enum ChangeTypeEnum : ENUM8 { |
| kChanged = 0; |
| kAdded = 1; |
| kRemoved = 2; |
| } |
| |
| struct AccessControlTargetStruct { |
| nullable cluster_id cluster = 0; |
| nullable endpoint_no endpoint = 1; |
| nullable devtype_id deviceType = 2; |
| } |
| |
| fabric_scoped struct AccessControlEntryStruct { |
| fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; |
| fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; |
| nullable fabric_sensitive int64u subjects[] = 3; |
| nullable fabric_sensitive AccessControlTargetStruct targets[] = 4; |
| fabric_idx fabricIndex = 254; |
| } |
| |
| fabric_scoped struct AccessControlExtensionStruct { |
| fabric_sensitive octet_string<128> data = 1; |
| fabric_idx fabricIndex = 254; |
| } |
| |
| fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 { |
| nullable node_id adminNodeID = 1; |
| nullable INT16U adminPasscodeID = 2; |
| ChangeTypeEnum changeType = 3; |
| nullable AccessControlEntryStruct latestValue = 4; |
| fabric_idx fabricIndex = 254; |
| } |
| |
| fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 { |
| nullable node_id adminNodeID = 1; |
| nullable INT16U adminPasscodeID = 2; |
| ChangeTypeEnum changeType = 3; |
| nullable AccessControlExtensionStruct latestValue = 4; |
| fabric_idx fabricIndex = 254; |
| } |
| |
| attribute access(read: administer, write: administer) AccessControlEntryStruct acl[] = 0; |
| attribute access(read: administer, write: administer) AccessControlExtensionStruct extension[] = 1; |
| readonly attribute int16u subjectsPerAccessControlEntry = 2; |
| readonly attribute int16u targetsPerAccessControlEntry = 3; |
| readonly attribute int16u accessControlEntriesPerFabric = 4; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| } |
| |
| /** This cluster provides attributes and events for determining basic information about Nodes, which supports both |
| Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, |
| which apply to the whole Node. Also allows setting user device information such as location. */ |
| server cluster BasicInformation = 40 { |
| enum ColorEnum : ENUM8 { |
| kBlack = 0; |
| kNavy = 1; |
| kGreen = 2; |
| kTeal = 3; |
| kMaroon = 4; |
| kPurple = 5; |
| kOlive = 6; |
| kGray = 7; |
| kBlue = 8; |
| kLime = 9; |
| kAqua = 10; |
| kRed = 11; |
| kFuchsia = 12; |
| kYellow = 13; |
| kWhite = 14; |
| kNickel = 15; |
| kChrome = 16; |
| kBrass = 17; |
| kCopper = 18; |
| kSilver = 19; |
| kGold = 20; |
| } |
| |
| enum ProductFinishEnum : ENUM8 { |
| kOther = 0; |
| kMatte = 1; |
| kSatin = 2; |
| kPolished = 3; |
| kRugged = 4; |
| kFabric = 5; |
| } |
| |
| struct CapabilityMinimaStruct { |
| int16u caseSessionsPerFabric = 0; |
| int16u subscriptionsPerFabric = 1; |
| } |
| |
| struct ProductAppearanceStruct { |
| ProductFinishEnum finish = 0; |
| nullable ColorEnum primaryColor = 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 char_string<32> uniqueID = 18; |
| readonly attribute CapabilityMinimaStruct capabilityMinima = 19; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| } |
| |
| /** Provides an interface for providing OTA software updates */ |
| 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 command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| 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; |
| } |
| |
| 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; |
| } |
| |
| request struct ApplyUpdateRequestRequest { |
| OCTET_STRING<32> updateToken = 0; |
| INT32U newVersion = 1; |
| } |
| |
| response struct ApplyUpdateResponse = 3 { |
| OTAApplyUpdateAction action = 0; |
| INT32U delayedActionTime = 1; |
| } |
| |
| request struct NotifyUpdateAppliedRequest { |
| OCTET_STRING<32> updateToken = 0; |
| INT32U softwareVersion = 1; |
| } |
| |
| /** Determine availability of a new Software Image */ |
| command QueryImage(QueryImageRequest): QueryImageResponse = 0; |
| /** Determine next action to take for a downloaded Software Image */ |
| command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; |
| /** Notify OTA Provider that an update was applied */ |
| command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; |
| } |
| |
| /** Provides an interface for downloading and applying OTA software updates */ |
| 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; |
| } |
| |
| fabric_scoped 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 command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| 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; |
| } |
| |
| /** Nodes should be expected to be deployed to any and all regions of the world. These global regions |
| may have differing common languages, units of measurements, and numerical formatting |
| standards. As such, Nodes that visually or audibly convey information need a mechanism by which |
| they can be configured to use a user’s preferred language, units, etc */ |
| server cluster LocalizationConfiguration = 43 { |
| attribute char_string<35> activeLocale = 0; |
| readonly attribute CHAR_STRING supportedLocales[] = 1; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| } |
| |
| /** Nodes should be expected to be deployed to any and all regions of the world. These global regions |
| may have differing preferences for how dates and times are conveyed. As such, Nodes that visually |
| or audibly convey time information need a mechanism by which they can be configured to use a |
| user’s preferred format. */ |
| server cluster TimeFormatLocalization = 44 { |
| enum CalendarTypeEnum : 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 HourFormatEnum : ENUM8 { |
| k12hr = 0; |
| k24hr = 1; |
| } |
| |
| attribute HourFormatEnum hourFormat = 0; |
| attribute CalendarTypeEnum activeCalendarType = 1; |
| readonly attribute CalendarTypeEnum supportedCalendarTypes[] = 2; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| } |
| |
| /** This cluster is used to manage global aspects of the Commissioning flow. */ |
| server cluster GeneralCommissioning = 48 { |
| enum CommissioningErrorEnum : ENUM8 { |
| kOk = 0; |
| kValueOutsideRange = 1; |
| kInvalidAuthentication = 2; |
| kNoFailSafe = 3; |
| kBusyWithOtherAdmin = 4; |
| } |
| |
| enum RegulatoryLocationTypeEnum : 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 RegulatoryLocationTypeEnum regulatoryConfig = 2; |
| readonly attribute RegulatoryLocationTypeEnum locationCapability = 3; |
| readonly attribute boolean supportsConcurrentConnection = 4; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| |
| request struct ArmFailSafeRequest { |
| INT16U expiryLengthSeconds = 0; |
| INT64U breadcrumb = 1; |
| } |
| |
| request struct SetRegulatoryConfigRequest { |
| RegulatoryLocationTypeEnum newRegulatoryConfig = 0; |
| CHAR_STRING countryCode = 1; |
| INT64U breadcrumb = 2; |
| } |
| |
| response struct ArmFailSafeResponse = 1 { |
| CommissioningErrorEnum errorCode = 0; |
| CHAR_STRING debugText = 1; |
| } |
| |
| response struct SetRegulatoryConfigResponse = 3 { |
| CommissioningErrorEnum errorCode = 0; |
| CHAR_STRING debugText = 1; |
| } |
| |
| response struct CommissioningCompleteResponse = 5 { |
| CommissioningErrorEnum 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; |
| } |
| |
| /** Functionality to configure, enable, disable network credentials and access on a Matter device. */ |
| 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; |
| k1g = 5; |
| } |
| |
| bitmap Feature : BITMAP32 { |
| kWiFiNetworkInterface = 0x1; |
| kThreadNetworkInterface = 0x2; |
| kEthernetNetworkInterface = 0x4; |
| } |
| |
| bitmap WiFiSecurity : BITMAP8 { |
| kUnencrypted = 0x1; |
| kWep = 0x2; |
| kWpaPersonal = 0x4; |
| kWpa2Personal = 0x8; |
| kWpa3Personal = 0x10; |
| } |
| |
| struct NetworkInfo { |
| octet_string<32> networkID = 0; |
| boolean connected = 1; |
| } |
| |
| 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; |
| } |
| |
| struct WiFiInterfaceScanResult { |
| WiFiSecurity security = 0; |
| octet_string<32> ssid = 1; |
| octet_string<6> bssid = 2; |
| int16u channel = 3; |
| WiFiBand wiFiBand = 4; |
| int8s rssi = 5; |
| } |
| |
| 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 command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| 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; |
| } |
| |
| /** The cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ |
| server cluster DiagnosticLogs = 50 { |
| enum IntentEnum : ENUM8 { |
| kEndUserSupport = 0; |
| kNetworkDiag = 1; |
| kCrashLogs = 2; |
| } |
| |
| enum StatusEnum : ENUM8 { |
| kSuccess = 0; |
| kExhausted = 1; |
| kNoLogs = 2; |
| kBusy = 3; |
| kDenied = 4; |
| } |
| |
| enum TransferProtocolEnum : ENUM8 { |
| kResponsePayload = 0; |
| kBdx = 1; |
| } |
| |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| |
| request struct RetrieveLogsRequestRequest { |
| IntentEnum intent = 0; |
| TransferProtocolEnum requestedProtocol = 1; |
| optional CHAR_STRING<32> transferFileDesignator = 2; |
| } |
| |
| command RetrieveLogsRequest(RetrieveLogsRequestRequest): RetrieveLogsResponse = 0; |
| } |
| |
| /** 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. */ |
| server cluster GeneralDiagnostics = 51 { |
| enum BootReasonEnum : ENUM8 { |
| kUnspecified = 0; |
| kPowerOnReboot = 1; |
| kBrownOutReset = 2; |
| kSoftwareWatchdogReset = 3; |
| kHardwareWatchdogReset = 4; |
| kSoftwareUpdateCompleted = 5; |
| kSoftwareReset = 6; |
| } |
| |
| enum HardwareFaultEnum : ENUM8 { |
| kUnspecified = 0; |
| kRadio = 1; |
| kSensor = 2; |
| kResettableOverTemp = 3; |
| kNonResettableOverTemp = 4; |
| kPowerSource = 5; |
| kVisualDisplayFault = 6; |
| kAudioOutputFault = 7; |
| kUserInterfaceFault = 8; |
| kNonVolatileMemoryError = 9; |
| kTamperDetected = 10; |
| } |
| |
| enum InterfaceTypeEnum : ENUM8 { |
| kUnspecified = 0; |
| kWiFi = 1; |
| kEthernet = 2; |
| kCellular = 3; |
| kThread = 4; |
| } |
| |
| enum NetworkFaultEnum : ENUM8 { |
| kUnspecified = 0; |
| kHardwareFailure = 1; |
| kNetworkJammed = 2; |
| kConnectionFailed = 3; |
| } |
| |
| enum RadioFaultEnum : ENUM8 { |
| kUnspecified = 0; |
| kWiFiFault = 1; |
| kCellularFault = 2; |
| kThreadFault = 3; |
| kNFCFault = 4; |
| kBLEFault = 5; |
| kEthernetFault = 6; |
| } |
| |
| struct NetworkInterface { |
| 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; |
| InterfaceTypeEnum type = 7; |
| } |
| |
| critical event HardwareFaultChange = 0 { |
| HardwareFaultEnum current[] = 0; |
| HardwareFaultEnum previous[] = 1; |
| } |
| |
| critical event RadioFaultChange = 1 { |
| RadioFaultEnum current[] = 0; |
| RadioFaultEnum previous[] = 1; |
| } |
| |
| critical event NetworkFaultChange = 2 { |
| NetworkFaultEnum current[] = 0; |
| NetworkFaultEnum previous[] = 1; |
| } |
| |
| critical event BootReason = 3 { |
| BootReasonEnum bootReason = 0; |
| } |
| |
| readonly attribute NetworkInterface networkInterfaces[] = 0; |
| readonly attribute int16u rebootCount = 1; |
| readonly attribute int64u upTime = 2; |
| readonly attribute int32u totalOperationalHours = 3; |
| readonly attribute BootReasonEnum bootReason = 4; |
| readonly attribute HardwareFaultEnum activeHardwareFaults[] = 5; |
| readonly attribute RadioFaultEnum activeRadioFaults[] = 6; |
| readonly attribute NetworkFaultEnum activeNetworkFaults[] = 7; |
| readonly attribute boolean testEventTriggersEnabled = 8; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| 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; |
| } |
| |
| /** 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. */ |
| server cluster SoftwareDiagnostics = 52 { |
| bitmap Feature : BITMAP32 { |
| kWaterMarks = 0x1; |
| } |
| |
| struct ThreadMetricsStruct { |
| 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 ThreadMetricsStruct threadMetrics[] = 0; |
| readonly attribute int64u currentHeapFree = 1; |
| readonly attribute int64u currentHeapUsed = 2; |
| readonly attribute int64u currentHeapHighWatermark = 3; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| |
| command ResetWatermarks(): DefaultSuccess = 0; |
| } |
| |
| /** This cluster exposes interactions with a switch device, for the purpose of using those interactions by other devices. |
| Two types of switch devices are supported: latching switch (e.g. rocker switch) and momentary switch (e.g. push button), distinguished with their feature flags. |
| Interactions with the switch device are exposed as attributes (for the latching switch) and as events (for both types of switches). An interested party MAY subscribe to these attributes/events and thus be informed of the interactions, and can perform actions based on this, for example by sending commands to perform an action such as controlling a light or a window shade. */ |
| server cluster Switch = 59 { |
| bitmap Feature : BITMAP32 { |
| kLatchingSwitch = 0x1; |
| kMomentarySwitch = 0x2; |
| kMomentarySwitchRelease = 0x4; |
| kMomentarySwitchLongPress = 0x8; |
| kMomentarySwitchMultiPress = 0x10; |
| } |
| |
| 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 previousPosition = 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 event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| } |
| |
| /** Commands to trigger a Node to allow a new Administrator to commission it. */ |
| server cluster AdministratorCommissioning = 60 { |
| enum CommissioningWindowStatusEnum : ENUM8 { |
| kWindowNotOpen = 0; |
| kEnhancedWindowOpen = 1; |
| kBasicWindowOpen = 2; |
| } |
| |
| enum StatusCode : ENUM8 { |
| kBusy = 2; |
| kPAKEParameterError = 3; |
| kWindowNotOpen = 4; |
| } |
| |
| readonly attribute CommissioningWindowStatusEnum windowStatus = 0; |
| readonly attribute nullable fabric_idx adminFabricIndex = 1; |
| readonly attribute nullable int16u adminVendorId = 2; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| |
| request struct OpenCommissioningWindowRequest { |
| INT16U commissioningTimeout = 0; |
| OCTET_STRING PAKEPasscodeVerifier = 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; |
| } |
| |
| /** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */ |
| server cluster OperationalCredentials = 62 { |
| enum CertificateChainTypeEnum : ENUM8 { |
| kDACCertificate = 1; |
| kPAICertificate = 2; |
| } |
| |
| enum NodeOperationalCertStatusEnum : ENUM8 { |
| kOk = 0; |
| kInvalidPublicKey = 1; |
| kInvalidNodeOpId = 2; |
| kInvalidNOC = 3; |
| kMissingCsr = 4; |
| kTableFull = 5; |
| kInvalidAdminSubject = 6; |
| kFabricConflict = 9; |
| kLabelConflict = 10; |
| kInvalidFabricIndex = 11; |
| } |
| |
| fabric_scoped struct FabricDescriptorStruct { |
| 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; |
| } |
| |
| fabric_scoped struct NOCStruct { |
| fabric_sensitive octet_string noc = 1; |
| nullable fabric_sensitive octet_string icac = 2; |
| fabric_idx fabricIndex = 254; |
| } |
| |
| readonly attribute access(read: administer) NOCStruct NOCs[] = 0; |
| readonly attribute FabricDescriptorStruct 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 command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| |
| request struct AttestationRequestRequest { |
| OCTET_STRING attestationNonce = 0; |
| } |
| |
| request struct CertificateChainRequestRequest { |
| CertificateChainTypeEnum 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 rootCACertificate = 0; |
| } |
| |
| response struct AttestationResponse = 1 { |
| OCTET_STRING attestationElements = 0; |
| OCTET_STRING attestationSignature = 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 { |
| NodeOperationalCertStatusEnum 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; |
| } |
| |
| /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ |
| server cluster GroupKeyManagement = 63 { |
| enum GroupKeySecurityPolicyEnum : ENUM8 { |
| kTrustFirst = 0; |
| kCacheAndSync = 1; |
| } |
| |
| fabric_scoped struct GroupInfoMapStruct { |
| group_id groupId = 1; |
| endpoint_no endpoints[] = 2; |
| optional char_string<16> groupName = 3; |
| fabric_idx fabricIndex = 254; |
| } |
| |
| fabric_scoped struct GroupKeyMapStruct { |
| group_id groupId = 1; |
| int16u groupKeySetID = 2; |
| fabric_idx fabricIndex = 254; |
| } |
| |
| struct GroupKeySetStruct { |
| int16u groupKeySetID = 0; |
| GroupKeySecurityPolicyEnum 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 command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| 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; |
| } |
| |
| /** The Fixed Label Cluster provides a feature for the device to tag an endpoint with zero or more read only |
| labels. */ |
| server cluster FixedLabel = 64 { |
| struct LabelStruct { |
| char_string<16> label = 0; |
| char_string<16> value = 1; |
| } |
| |
| readonly attribute LabelStruct labelList[] = 0; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| } |
| |
| /** An interface for configuring and controlling the functionality of a thermostat. */ |
| server cluster Thermostat = 513 { |
| enum SetpointAdjustMode : ENUM8 { |
| kHeat = 0; |
| kCool = 1; |
| kBoth = 2; |
| } |
| |
| enum ThermostatControlSequence : ENUM8 { |
| kCoolingOnly = 0; |
| kCoolingWithReheat = 1; |
| kHeatingOnly = 2; |
| kHeatingWithReheat = 3; |
| kCoolingAndHeating = 4; |
| kCoolingAndHeatingWithReheat = 5; |
| } |
| |
| enum ThermostatRunningMode : ENUM8 { |
| kOff = 0; |
| kCool = 3; |
| kHeat = 4; |
| } |
| |
| enum ThermostatSystemMode : ENUM8 { |
| kOff = 0; |
| kAuto = 1; |
| kCool = 3; |
| kHeat = 4; |
| kEmergencyHeat = 5; |
| kPrecooling = 6; |
| kFanOnly = 7; |
| kDry = 8; |
| kSleep = 9; |
| } |
| |
| bitmap DayOfWeek : BITMAP8 { |
| kSunday = 0x1; |
| kMonday = 0x2; |
| kTuesday = 0x4; |
| kWednesday = 0x8; |
| kThursday = 0x10; |
| kFriday = 0x20; |
| kSaturday = 0x40; |
| kAway = 0x80; |
| } |
| |
| bitmap Feature : BITMAP32 { |
| kHeating = 0x1; |
| kCooling = 0x2; |
| kOccupancy = 0x4; |
| kScheduleConfiguration = 0x8; |
| kSetback = 0x10; |
| kAutoMode = 0x20; |
| kLocalTemperatureNotExposed = 0x40; |
| } |
| |
| bitmap ModeForSequence : BITMAP8 { |
| kHeatSetpointPresent = 0x1; |
| kCoolSetpointPresent = 0x2; |
| } |
| |
| struct ThermostatScheduleTransition { |
| int16u transitionTime = 0; |
| nullable int16s heatSetpoint = 1; |
| nullable int16s coolSetpoint = 2; |
| } |
| |
| readonly attribute nullable int16s localTemperature = 0; |
| readonly attribute nullable int16s outdoorTemperature = 1; |
| readonly attribute bitmap8 occupancy = 2; |
| readonly attribute int16s absMinHeatSetpointLimit = 3; |
| readonly attribute int16s absMaxHeatSetpointLimit = 4; |
| readonly attribute int16s absMinCoolSetpointLimit = 5; |
| readonly attribute int16s absMaxCoolSetpointLimit = 6; |
| readonly attribute int8u PICoolingDemand = 7; |
| readonly attribute int8u PIHeatingDemand = 8; |
| attribute access(write: manage) bitmap8 HVACSystemTypeConfiguration = 9; |
| attribute access(write: manage) int8s localTemperatureCalibration = 16; |
| attribute int16s occupiedCoolingSetpoint = 17; |
| attribute int16s occupiedHeatingSetpoint = 18; |
| attribute int16s unoccupiedCoolingSetpoint = 19; |
| attribute int16s unoccupiedHeatingSetpoint = 20; |
| attribute access(write: manage) int16s minHeatSetpointLimit = 21; |
| attribute access(write: manage) int16s maxHeatSetpointLimit = 22; |
| attribute access(write: manage) int16s minCoolSetpointLimit = 23; |
| attribute access(write: manage) int16s maxCoolSetpointLimit = 24; |
| attribute access(write: manage) int8s minSetpointDeadBand = 25; |
| attribute access(write: manage) bitmap8 remoteSensing = 26; |
| attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; |
| attribute access(write: manage) enum8 systemMode = 28; |
| readonly attribute enum8 thermostatRunningMode = 30; |
| readonly attribute enum8 startOfWeek = 32; |
| readonly attribute int8u numberOfWeeklyTransitions = 33; |
| readonly attribute int8u numberOfDailyTransitions = 34; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| |
| request struct SetpointRaiseLowerRequest { |
| SetpointAdjustMode mode = 0; |
| INT8S amount = 1; |
| } |
| |
| command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0; |
| } |
| |
| /** An interface for controlling a fan in a heating/cooling system. */ |
| client cluster FanControl = 514 { |
| enum FanModeSequenceType : ENUM8 { |
| kOffLowMedHigh = 0; |
| kOffLowHigh = 1; |
| kOffLowMedHighAuto = 2; |
| kOffLowHighAuto = 3; |
| kOffOnAuto = 4; |
| kOffOn = 5; |
| } |
| |
| enum FanModeType : ENUM8 { |
| kOff = 0; |
| kLow = 1; |
| kMedium = 2; |
| kHigh = 3; |
| kOn = 4; |
| kAuto = 5; |
| kSmart = 6; |
| } |
| |
| bitmap Feature : BITMAP32 { |
| kMultiSpeed = 0x1; |
| kAuto = 0x2; |
| kRocking = 0x4; |
| kWind = 0x8; |
| } |
| |
| bitmap RockSupportMask : BITMAP8 { |
| kRockLeftRight = 0x1; |
| kRockUpDown = 0x2; |
| kRockRound = 0x4; |
| } |
| |
| bitmap WindSettingMask : BITMAP8 { |
| kSleepWind = 0x1; |
| kNaturalWind = 0x2; |
| } |
| |
| bitmap WindSupportMask : BITMAP8 { |
| kSleepWind = 0x1; |
| kNaturalWind = 0x2; |
| } |
| |
| attribute FanModeType fanMode = 0; |
| attribute FanModeSequenceType fanModeSequence = 1; |
| attribute nullable int8u percentSetting = 2; |
| readonly attribute int8u percentCurrent = 3; |
| readonly attribute optional int8u speedMax = 4; |
| attribute optional nullable int8u speedSetting = 5; |
| readonly attribute optional int8u speedCurrent = 6; |
| readonly attribute optional bitmap8 rockSupport = 7; |
| attribute optional bitmap8 rockSetting = 8; |
| readonly attribute optional bitmap8 windSupport = 9; |
| attribute optional bitmap8 windSetting = 10; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| } |
| |
| /** An interface for configuring the user interface of a thermostat (which may be remote from the thermostat). */ |
| server cluster ThermostatUserInterfaceConfiguration = 516 { |
| attribute enum8 temperatureDisplayMode = 0; |
| attribute access(write: manage) enum8 keypadLockout = 1; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| } |
| |
| /** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */ |
| client cluster TemperatureMeasurement = 1026 { |
| readonly attribute nullable int16s measuredValue = 0; |
| readonly attribute nullable int16s minMeasuredValue = 1; |
| readonly attribute nullable int16s maxMeasuredValue = 2; |
| readonly attribute optional int16u tolerance = 3; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| } |
| |
| /** Attributes and commands for configuring the measurement of relative humidity, and reporting relative humidity measurements. */ |
| client cluster RelativeHumidityMeasurement = 1029 { |
| readonly attribute nullable int16u measuredValue = 0; |
| readonly attribute nullable int16u minMeasuredValue = 1; |
| readonly attribute nullable int16u maxMeasuredValue = 2; |
| readonly attribute optional int16u tolerance = 3; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| } |
| |
| /** Attributes and commands for configuring occupancy sensing, and reporting occupancy status. */ |
| client cluster OccupancySensing = 1030 { |
| enum OccupancySensorTypeEnum : ENUM8 { |
| kPir = 0; |
| kUltrasonic = 1; |
| kPIRAndUltrasonic = 2; |
| kPhysicalContact = 3; |
| } |
| |
| bitmap OccupancyBitmap : BITMAP8 { |
| kOccupied = 0x1; |
| } |
| |
| bitmap OccupancySensorTypeBitmap : BITMAP8 { |
| kPir = 0x1; |
| kUltrasonic = 0x2; |
| kPhysicalContact = 0x4; |
| } |
| |
| readonly attribute OccupancyBitmap occupancy = 0; |
| readonly attribute OccupancySensorTypeEnum occupancySensorType = 1; |
| readonly attribute OccupancySensorTypeBitmap occupancySensorTypeBitmap = 2; |
| attribute access(write: manage) optional int16u PIROccupiedToUnoccupiedDelay = 16; |
| attribute access(write: manage) optional int16u PIRUnoccupiedToOccupiedDelay = 17; |
| attribute access(write: manage) optional int8u PIRUnoccupiedToOccupiedThreshold = 18; |
| attribute access(write: manage) optional int16u ultrasonicOccupiedToUnoccupiedDelay = 32; |
| attribute access(write: manage) optional int16u ultrasonicUnoccupiedToOccupiedDelay = 33; |
| attribute access(write: manage) optional int8u ultrasonicUnoccupiedToOccupiedThreshold = 34; |
| attribute access(write: manage) optional int16u physicalContactOccupiedToUnoccupiedDelay = 48; |
| attribute access(write: manage) optional int16u physicalContactUnoccupiedToOccupiedDelay = 49; |
| attribute access(write: manage) optional int8u physicalContactUnoccupiedToOccupiedThreshold = 50; |
| readonly attribute command_id generatedCommandList[] = 65528; |
| readonly attribute command_id acceptedCommandList[] = 65529; |
| readonly attribute event_id eventList[] = 65530; |
| readonly attribute attrib_id attributeList[] = 65531; |
| readonly attribute bitmap32 featureMap = 65532; |
| readonly attribute int16u clusterRevision = 65533; |
| } |
| |
| endpoint 0 { |
| device type rootdevice = 22, version 1; |
| binding cluster OtaSoftwareUpdateProvider; |
| |
| server cluster Groups { |
| ram attribute nameSupport; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 3; |
| } |
| |
| server cluster Descriptor { |
| callback attribute deviceTypeList; |
| callback attribute serverList; |
| callback attribute clientList; |
| callback attribute partsList; |
| ram attribute featureMap default = 0; |
| callback attribute clusterRevision default = 1; |
| } |
| |
| server cluster AccessControl { |
| emits event AccessControlEntryChanged; |
| emits event AccessControlExtensionChanged; |
| callback attribute acl; |
| callback attribute extension; |
| callback attribute subjectsPerAccessControlEntry; |
| callback attribute targetsPerAccessControlEntry; |
| callback attribute accessControlEntriesPerFabric; |
| callback attribute attributeList; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 1; |
| } |
| |
| server cluster BasicInformation { |
| emits event StartUp; |
| emits event ShutDown; |
| emits event Leave; |
| 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 default = 0; |
| callback attribute hardwareVersionString; |
| callback attribute softwareVersion default = 0; |
| callback attribute softwareVersionString; |
| callback attribute manufacturingDate default = "20210614123456ZZ"; |
| callback attribute partNumber; |
| callback attribute productURL; |
| callback attribute productLabel; |
| callback attribute serialNumber; |
| persist attribute localConfigDisabled default = 0; |
| callback attribute uniqueID; |
| callback attribute capabilityMinima; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 1; |
| } |
| |
| server cluster OtaSoftwareUpdateRequestor { |
| emits event StateTransition; |
| emits event VersionApplied; |
| emits event DownloadError; |
| callback attribute defaultOTAProviders; |
| ram attribute updatePossible default = 1; |
| ram attribute updateState default = 0; |
| ram attribute updateStateProgress default = 0; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 1; |
| } |
| |
| server cluster LocalizationConfiguration { |
| ram attribute activeLocale; |
| callback attribute supportedLocales; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 1; |
| } |
| |
| server cluster TimeFormatLocalization { |
| persist attribute hourFormat default = 0; |
| persist attribute activeCalendarType default = 0; |
| callback attribute supportedCalendarTypes; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 1; |
| } |
| |
| server cluster GeneralCommissioning { |
| ram attribute breadcrumb default = 0x0000000000000000; |
| callback attribute basicCommissioningInfo; |
| callback attribute regulatoryConfig default = 0; |
| callback attribute locationCapability default = 0; |
| callback attribute supportsConcurrentConnection default = 1; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 0x0001; |
| } |
| |
| 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 = 1; |
| ram attribute clusterRevision default = 0x0001; |
| } |
| |
| server cluster DiagnosticLogs { |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 1; |
| } |
| |
| server cluster GeneralDiagnostics { |
| emits event BootReason; |
| callback attribute networkInterfaces; |
| callback attribute rebootCount default = 0x0000; |
| callback attribute upTime default = 0x0000000000000000; |
| callback attribute totalOperationalHours default = 0x00000000; |
| callback attribute bootReason; |
| callback attribute activeHardwareFaults; |
| callback attribute activeRadioFaults; |
| callback attribute activeNetworkFaults; |
| callback attribute testEventTriggersEnabled default = false; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 0x0001; |
| } |
| |
| server cluster SoftwareDiagnostics { |
| callback attribute threadMetrics; |
| callback attribute currentHeapFree default = 0x0000000000000000; |
| callback attribute currentHeapUsed default = 0x0000000000000000; |
| callback attribute currentHeapHighWatermark default = 0x0000000000000000; |
| ram attribute featureMap default = 1; |
| ram attribute clusterRevision default = 0x0001; |
| } |
| |
| server cluster Switch { |
| ram attribute numberOfPositions default = 2; |
| ram attribute currentPosition; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 1; |
| } |
| |
| server cluster AdministratorCommissioning { |
| callback attribute windowStatus default = 0; |
| callback attribute adminFabricIndex default = 1; |
| callback attribute adminVendorId default = 0; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 0x0001; |
| } |
| |
| server cluster OperationalCredentials { |
| callback attribute NOCs; |
| callback attribute fabrics; |
| callback attribute supportedFabrics; |
| callback attribute commissionedFabrics; |
| callback attribute trustedRootCertificates; |
| callback attribute currentFabricIndex; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 0x0001; |
| } |
| |
| server cluster GroupKeyManagement { |
| callback attribute groupKeyMap; |
| callback attribute groupTable; |
| callback attribute maxGroupsPerFabric; |
| callback attribute maxGroupKeysPerFabric; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 1; |
| } |
| |
| server cluster FixedLabel { |
| callback attribute labelList; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 1; |
| } |
| } |
| endpoint 1 { |
| device type anonymousEndpointType = 769, version 1; |
| binding cluster Binding; |
| binding cluster FanControl; |
| binding cluster TemperatureMeasurement; |
| binding cluster RelativeHumidityMeasurement; |
| binding cluster OccupancySensing; |
| |
| server cluster Identify { |
| ram attribute identifyTime default = 0x0; |
| ram attribute identifyType default = 0x0; |
| callback attribute generatedCommandList default = 0; |
| callback attribute acceptedCommandList default = 0; |
| callback attribute attributeList default = 0; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 2; |
| } |
| |
| server cluster Groups { |
| ram attribute nameSupport default = 0; |
| callback attribute generatedCommandList default = 0; |
| callback attribute acceptedCommandList default = 0; |
| callback attribute attributeList default = 0; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 3; |
| } |
| |
| server cluster Descriptor { |
| callback attribute deviceTypeList default = 0; |
| callback attribute serverList default = 0; |
| callback attribute clientList default = 0; |
| callback attribute partsList default = 0; |
| callback attribute generatedCommandList default = 0; |
| callback attribute acceptedCommandList default = 0; |
| callback attribute attributeList default = 0; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 1; |
| } |
| |
| server cluster Thermostat { |
| ram attribute localTemperature default = 2000; |
| ram attribute outdoorTemperature default = 2000; |
| ram attribute occupancy default = 0x01; |
| ram attribute absMinHeatSetpointLimit default = 700; |
| ram attribute absMaxHeatSetpointLimit default = 3000; |
| ram attribute absMinCoolSetpointLimit default = 1600; |
| ram attribute absMaxCoolSetpointLimit default = 3200; |
| ram attribute PICoolingDemand default = 0; |
| ram attribute PIHeatingDemand default = 0; |
| ram attribute HVACSystemTypeConfiguration default = 0x00; |
| ram attribute localTemperatureCalibration default = 0; |
| ram attribute occupiedCoolingSetpoint default = 0x0A28; |
| ram attribute occupiedHeatingSetpoint default = 0x07D0; |
| ram attribute unoccupiedCoolingSetpoint default = 0x0A28; |
| ram attribute unoccupiedHeatingSetpoint default = 0x07D0; |
| ram attribute minHeatSetpointLimit default = 700; |
| ram attribute maxHeatSetpointLimit default = 3000; |
| ram attribute minCoolSetpointLimit default = 1600; |
| ram attribute maxCoolSetpointLimit default = 3200; |
| ram attribute minSetpointDeadBand default = 0x19; |
| ram attribute remoteSensing default = 0x00; |
| ram attribute controlSequenceOfOperation default = 0x04; |
| ram attribute systemMode default = 0x01; |
| ram attribute thermostatRunningMode default = 0; |
| ram attribute startOfWeek default = 0; |
| ram attribute numberOfWeeklyTransitions default = 0; |
| ram attribute numberOfDailyTransitions default = 0; |
| callback attribute generatedCommandList default = 0; |
| callback attribute acceptedCommandList default = 0; |
| callback attribute attributeList default = 0; |
| ram attribute featureMap default = 0x3f; |
| ram attribute clusterRevision default = 3; |
| } |
| |
| server cluster ThermostatUserInterfaceConfiguration { |
| ram attribute temperatureDisplayMode default = 0x00; |
| ram attribute keypadLockout default = 0x00; |
| callback attribute generatedCommandList default = 0; |
| callback attribute acceptedCommandList default = 0; |
| callback attribute attributeList default = 0; |
| ram attribute featureMap default = 0; |
| ram attribute clusterRevision default = 1; |
| } |
| } |
| |
| |