blob: 5109834c11f3020f06381436e45902c4103c6bb9 [file]
<?xml version="1.0"?>
<!--
Zigbee Alliance owns the copyright to the text and content displayed or
included in this document (including in PDF, XML files and other formats) in
all forms of media, which copyright is protected by the copyright laws of the
United States and by international treaties. Full text of licensing terms
applicable to this document can be found in the LICENSE.md file.
-->
<zcl:global
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:type="http://zigbee.org/zcl/types"
xmlns:zcl="http://zigbee.org/zcl/clusters"
xsi:schemaLocation="http://zigbee.org/zcl/clusters cluster.xsd http://zigbee.org/zcl/types type.xsd">
<type:type short="anyType" name="Any Type" id="ff" inheritsFrom="unk">
<restriction>
<type:sequence>
<field name="Type" type="zclType" />
<field name="Value" type="unk" />
</type:sequence>
</restriction>
</type:type>
<type:type id="ff" short="readAttributeResponseRecord" name="Read Attributes Status Record">
<restriction>
<type:sequence>
<field name="AttributeIdentifier" type="attribId" />
<field name="Status" type="zclStatus" />
<field name="Atttribute" type="anyType" presentIf="Status=0" />
</type:sequence>
</restriction>
</type:type>
<type:type id="ff" short="writeAttributeRecord" name="Write Attribute Record">
<restriction>
<type:sequence>
<field name="AttributeIdentifier" type="attribId" />
<field name="Attribute" type="anyType" />
</type:sequence>
</restriction>
</type:type>
<type:type id="ff" short="writeAttributeResponseRecord" name="Write Attribute Status Record">
<restriction>
<type:sequence>
<field name="Status" type="zclStatus" />
<field name="AttributeIdentifier" type="attribId" presentIf="Status != 0" />
</type:sequence>
</restriction>
</type:type>
<type:type id="30" short="reportingRole" name="Reporting Destination" inheritsFrom="enum8">
<restriction>
<type:enumeration name="Generator" value="00" />
<type:enumeration name="Recipient" value="01" />
</restriction>
</type:type>
<type:type id="ff" short="configureReportingRecord" name="Attribute Reporting Configuration Record">
<restriction>
<type:sequence>
<field name="Direction" type="reportingRole" />
<field name="AttributeIdentifier" type="attribId" />
<field name="AttributeType" type="zclType" presentIf="Direction = 0" />
<field name="MinimumReportingInterval" type="uint16" presentIf="Direction = 0" />
<field name="MaximumReportingInterval" type="uint16" presentIf="Direction = 0" />
<field name="ReportableChange" type="unk" presentIf="Direction = 0" />
<field name="Timeout" type="uint16" presentIf="Direction = 1" />
</type:sequence>
</restriction>
</type:type>
<type:type id="ff" short="configureReportingResponseRecord" name="Attribute Reporting Configuration Status Record">
<restriction>
<type:sequence>
<field name="Status" type="zclStatus" />
<field name="Direction" type="reportingRole" presentIf="Status != 0" />
<field name="AttributeIdentifier" type="attribId" presentIf="Status != 0" />
</type:sequence>
</restriction>
</type:type>
<type:type id="ff" short="readReportingConfigurationRecord" name="Read Reporting Configuration Record">
<restriction>
<type:sequence>
<field name="Direction" type="reportingRole" />
<field name="AttributeIdentifier" type="attribId" />
</type:sequence>
</restriction>
</type:type>
<type:type id="ff" short="readReportingConfigurationResponseRecord" name="Read Reporting Configuration Response Record">
<restriction>
<type:sequence>
<field name="Direction" type="reportingRole" />
<field name="AttributeIdentifier" type="attribId" />
<field name="AttributeType" type="zclType" presentIf="Direction = 0" />
<field name="MinimumReportingInterval" type="uint16" presentIf="Direction = 0" />
<field name="MaximumReportingInterval" type="uint16" presentIf="Direction = 0" />
<field name="ReportableChange" type="unk" presentIf="Direction = 0" />
<field name="Timeout" type="uint16" presentIf="Direction = 1" />
</type:sequence>
</restriction>
</type:type>
<type:type id="ff" short="attributeReportRecord" name="Atttribute Report Record">
<restriction>
<type:sequence>
<field name="AttributeIdentifier" type="attribId" />
<field name="Attribute" type="anyType" />
</type:sequence>
</restriction>
</type:type>
<type:type id="ff" short="discoverAtttributesResponseRecord" name="Discover Attributes Response Record">
<restriction>
<type:sequence>
<field name="AttributeIdentifier" type="attribId" />
<field name="AttributeType" type="zclType" />
</type:sequence>
</restriction>
</type:type>
<type:type id="ff" short="readStructuredRecord" name="Read Atttributes Structured Record">
<restriction>
<type:sequence>
<field name="AttributeIdentifier" type="attribId" />
<field name="Index" type="uint16" array="true" arrayLengthSize="0" /><!-- The Array Length Is Specified Here -->
</type:sequence>
</restriction>
</type:type>
<type:type id="ff" short="writeStructuredRecord" name="Write Structured Attribute Record">
<restriction>
<type:sequence>
<field name="AttributeIdentifier" type="attribId" />
<field name="Selector" type="uint16" array="true" arrayLengthSize="1" /><!-- The Array Length Is Specified Here -->
<field name="Attribute" type="anyType" />
</type:sequence>
</restriction>
</type:type>
<type:type id="ff" short="writeStructuredResponseRecord" name="Write Structured Attribute Status Record">
<restriction>
<type:sequence>
<field name="Status" type="zclStatus" />
<field name="AttributeIdentifier" type="attribId" presentIf="Status != 0" />
<field name="Selector" type="uint16" array="true" arrayLengthSize="1" presentIf="Status != 0" /><!-- The Array Length Is Specified Here -->
</type:sequence>
</restriction>
</type:type>
<type:type id="ff" short="discoverAtttributesExtendedResponseRecord" name="Discover Attributes Extended Response Record">
<restriction>
<type:sequence>
<field name="AttributeIdentifier" type="attribId" />
<!-- TODO: Attribute Data Type -->
<field name="AccessControl" type="map8" />
</type:sequence>
</restriction>
</type:type>
<attributes>
<attribute id="fffd" name="ClusterRevision" type="uint16"
min="1" max="65534" required="true" default="revision()" />
<attribute id="fffe" name="AttributeReportingStatus" type="enum8">
<restriction>
<type:enumeration value="00" name="Pending" />
<type:enumeration value="01" name="Attribute Reporting Complete" />
</restriction>
</attribute>
</attributes>
<commands>
<command id="00" name="ReadAttributes" required="true">
<fields>
<field name="AttributeIdentifier" type="attribId" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="01" name="ReadAttributesResponse" required="true">
<fields>
<field name="ReadAttributeRecord" type="readAttributeResponseRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="02" name="WriteAttributes" required="true">
<fields>
<field name="WriteAttributeRecord" type="writeAttributeRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="03" name="WriteAttributesUndivided" required="true">
<fields>
<field name="WriteAttributeRecord" type="writeAttributeRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="04" name="WriteAttributesResponse" required="true">
<fields>
<field name="WriteAttributeRecord" type="writeAttributeResponseRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="05" name="WriteAttributesNoResponse" required="true">
<fields>
<field name="WriteAttributeRecord" type="writeAttributeRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="06" name="ConfigureReporting" required="false">
<fields>
<field name="ConfigureReportingRecord" type="configureReportingRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="07" name="ConfigureReportingResponse" required="false">
<fields>
<field name="ConfigureReportingResponseRecord" type="configureReportingResponseRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="08" name="ReadReportingConfiguration" required="false">
<fields>
<field name="ReadReportingConfigurationRecord" type="readReportingConfigurationRecord" array="true" arrayLengthSize="0"></field>
</fields>
</command>
<command id="09" name="ReadReportingConfigurationResponse" required="false">
<fields>
<field name="ReadReportingConfigurationResponseRecord" type="readReportingConfigurationResponseRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="0a" name="ReportAttributes" required="false">
<fields>
<field name="AttributeReportRecord" type="attributeReportRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="0b" name="DefaultResponse" required="true">
<fields>
<field name="CommandIdentifier" type="uint8" />
<field name="StatusCode" type="zclStatus" />
</fields>
</command>
<command id="0c" name="DiscoverAttributes" required="true">
<fields>
<field name="StartAttributeIdentifier" type="attribId" />
<field name="MaximumAttributeIdentifiers" type="uint8" />
</fields>
</command>
<command id="0d" name="DiscoverAttributesResponse" required="true">
<fields>
<field name="DiscoveryComplete" type="bool" />
<field name="AttributeRecord" type="discoverAtttributesResponseRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="0e" name="ReadAttributesStructured" required="false">
<fields>
<field name="AttributeRecord" type="readStructuredRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="0f" name="WriteAttributesStructured" required="false">
<fields>
<field name="AttributeRecord" type="writeStructuredRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="10" name="WriteAttributesStructuredResponse" required="false">
<fields>
<field name="AttributeRecord" type="writeStructuredResponseRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="11" name="DiscoverCommandsReceived" required="false">
<fields>
<field name="StartCommandIdentifier" type="uint8" />
<field name="MaximumCommandIdentifiers" type="uint8" />
</fields>
</command>
<command id="12" name="DiscoverCommandsReceivedResponse" required="false">
<fields>
<field name="DiscoveryComplete" type="bool" />
<field name="CommandIdentifier" type="uint8" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="13" name="DiscoverCommandsGenerated" required="false">
<fields>
<field name="StartCommandIdentifier" type="uint8" />
<field name="MaximumCommandIdentifiers" type="uint8" />
</fields>
</command>
<command id="14" name="DiscoverCommandsGeneratedResponse" required="false">
<fields>
<field name="DiscoveryComplete" type="bool" />
<field name="CommandIdentifier" type="uint8" array="true" arrayLengthSize="0" />
</fields>
</command>
<command id="15" name="DiscoveAttributesExtended" required="false">
<fields>
<field name="StartAttributeIdentifier" type="attribId" />
<field name="MaximumAttributeIdentifiers" type="uint8" />
</fields>
</command>
<command id="16" name="DiscoverAttributesExtendedResponse" required="false">
<fields>
<field name="DiscoveryComplete" type="bool" />
<field name="AttributeRecord" type="discoverAtttributesExtendedResponseRecord" array="true" arrayLengthSize="0" />
</fields>
</command>
</commands>
</zcl:global>