Skip to content

Instantly share code, notes, and snippets.

@manup
Created May 24, 2017 20:05
Show Gist options
  • Save manup/d5e81c349df0cf4d82eadd9689211d60 to your computer and use it in GitHub Desktop.
Save manup/d5e81c349df0cf4d82eadd9689211d60 to your computer and use it in GitHub Desktop.
ZCLDB1
<?xml version="1.0" encoding="UTF-8"?>
<zcl>
<datatypes>
<!--Null-->
<datatype id="00" name="No data" shortname="ndat" length="0" ad="-"></datatype>
<!--General data -->
<datatype id="08" name="8-bit data" shortname="dat8" length="1" ad="D"></datatype>
<datatype id="09" name="16-bit data" shortname="dat16" length="2" ad="D"></datatype>
<datatype id="0a" name="24-bit data" shortname="dat24" length="3" ad="D"></datatype>
<datatype id="0b" name="32-bit data" shortname="dat32" length="4" ad="D"></datatype>
<datatype id="0c" name="40-bit data" shortname="dat40" length="5" ad="D"></datatype>
<datatype id="0d" name="48-bit data" shortname="dat48" length="6" ad="D"></datatype>
<datatype id="0e" name="56-bit data" shortname="dat56" length="7" ad="D"></datatype>
<datatype id="0f" name="64-bit data" shortname="dat64" length="8" ad="D"></datatype>
<!-- Logical -->
<datatype id="10" name="Boolean" shortname="bool" length="1" inval="ff" ad="D"></datatype>
<!-- Bitmap -->
<datatype id="18" name="8-bit bitmap" shortname="bmp8" length="1" ad="D"></datatype>
<datatype id="19" name="16-bit bitmap" shortname="bmp16" length="2" ad="D"></datatype>
<datatype id="1a" name="24-bit bitmap" shortname="bmp24" length="3" ad="D"></datatype>
<datatype id="1b" name="32-bit bitmap" shortname="bmp32" length="4" ad="D"></datatype>
<datatype id="1c" name="40-bit bitmap" shortname="bmp40" length="5" ad="D"></datatype>
<datatype id="1d" name="48-bit bitmap" shortname="bmp48" length="6" ad="D"></datatype>
<datatype id="1e" name="56-bit bitmap" shortname="bmp56" length="7" ad="D"></datatype>
<datatype id="1f" name="64-bit bitmap" shortname="bmp64" length="8" ad="D"></datatype>
<!-- Unsigned integer -->
<datatype id="20" name="Unsigned 8-bit integer" shortname="u8" length="1" inval="ff" ad="A"></datatype>
<datatype id="21" name="Unsigned 16-bit integer" shortname="u16" length="2" inval="ffff" ad="A"></datatype>
<datatype id="22" name="Unsigned 24-bit integer" shortname="u24" length="3" inval="ffffff" ad="A"></datatype>
<datatype id="23" name="Unsigned 32-bit integer" shortname="u32" length="4" inval="ffffffff" ad="A"></datatype>
<datatype id="24" name="Unsigned 40-bit integer" shortname="u40" length="5" inval="ffffffffff" ad="A"></datatype>
<datatype id="25" name="Unsigned 48-bit integer" shortname="u48" length="6" inval="ffffffffffff" ad="A"></datatype>
<datatype id="26" name="Unsigned 56-bit integer" shortname="u56" length="7" inval="ffffffffffffff" ad="A"></datatype>
<datatype id="27" name="Unsigned 64-bit integer" shortname="u64" length="8" inval="ffffffffffffffff" ad="A"></datatype>
<!-- Signed integer -->
<datatype id="28" name="Signed 8-bit integer" shortname="s8" length="1" inval="80" ad="A"></datatype>
<datatype id="29" name="Signed 16-bit integer" shortname="s16" length="2" inval="8000" ad="A"></datatype>
<datatype id="2a" name="Signed 24-bit integer" shortname="s24" length="3" inval="800000" ad="A"></datatype>
<datatype id="2b" name="Signed 32-bit integer" shortname="s32" length="4" inval="80000000" ad="A"></datatype>
<datatype id="2c" name="Signed 40-bit integer" shortname="s40" length="5" inval="8000000000" ad="A"></datatype>
<datatype id="2d" name="Signed 48-bit integer" shortname="s48" length="6" inval="800000000000" ad="A"></datatype>
<datatype id="2e" name="Signed 56-bit integer" shortname="s56" length="7" inval="80000000000000" ad="A"></datatype>
<datatype id="2f" name="Signed 64-bit integer" shortname="s64" length="8" inval="8000000000000000" ad="A"></datatype>
<!-- Enumeration -->
<datatype id="30" name="8-bit enumeration" shortname="enum8" length="1" inval="ff" ad="D"></datatype>
<datatype id="31" name="16-bit enumeration" shortname="enum16" length="2" inval="ffff" ad="D"></datatype>
<!-- Floating point -->
<datatype id="38" name="Semi-precicion" shortname="semi" length="2" inval="nan" ad="A"></datatype>
<datatype id="39" name="Single precicion" shortname="float" length="4" inval="nan" ad="A"></datatype>
<datatype id="3a" name="Double precicion" shortname="double" length="8" inval="nan" ad="A"></datatype>
<!-- String -->
<!-- oN, defined in first N octets -->
<datatype id="41" name="Octed string" shortname="ostring" length="o1" inval="ff" ad="D"></datatype>
<datatype id="42" name="Character string" shortname="cstring" length="o1" inval="ff" ad="D"></datatype>
<datatype id="43" name="Long octed string" shortname="lostring" length="o2" inval="ffff" ad="D"></datatype>
<datatype id="44" name="Long character string" shortname="lcstring" length="o2" inval="ffff" ad="D"></datatype>
<!-- Ordered sequence -->
<!-- sloc, sum of length of content -->
<datatype id="48" name="Array" shortname="array" length="2+sloc" inval="ffff" ad="D"></datatype>
<datatype id="4c" name="Structure" shortname="struct" length="2+sloc" inval="ffff" ad="D"></datatype>
<!-- Collection -->
<datatype id="50" name="Set" shortname="set" length="sloc" inval="ffff" ad="D"></datatype>
<datatype id="51" name="Bag" shortname="bag" length="sloc" inval="ffff" ad="D"></datatype>
<!-- Time -->
<datatype id="e0" name="Time of day" shortname="time" length="4" inval="ffffffff" ad="A"></datatype>
<datatype id="e1" name="Date" shortname="date" length="4" inval="ffffffff" ad="A"></datatype>
<datatype id="e2" name="UTCTime" shortname="utc" length="4" inval="ffffffff" ad="A"></datatype>
<!-- Identifier -->
<datatype id="e8" name="Cluster ID" shortname="cid" length="2" inval="ffff" ad="D"></datatype>
<datatype id="e9" name="Attribute ID" shortname="aid" length="2" inval="ffff" ad="D"></datatype>
<datatype id="ea" name="BACnet OID" shortname="oid" length="4" inval="ffffffff" ad="D"></datatype>
<!-- Miscellaneous -->
<datatype id="f0" name="IEEE address" shortname="uid" length="8" inval="ffffffffffffffff" ad="D"></datatype>
<datatype id="f1" name="128-bit security key" shortname="seckey" length="16" ad="D"></datatype>
</datatypes>
<enumeration id="0x00" name="ZCL_Status">
<value value="0x00" name="SUCCESS"></value>
<value value="0x01" name="FAILURE"></value>
<value value="0x7e" name="NOT_AUTHORIZED"></value>
<value value="0x7f" name="RESERVED_FIELD_NOT_ZERO"></value>
<value value="0x80" name="MALFORMED_COMMAND"></value>
<value value="0x81" name="UNSUP_CLUSTER_COMMAND"></value>
<value value="0x82" name="UNSUP_GENERAL_COMMAND"></value>
<value value="0x83" name="UNSUP_MANUF_CLUSTER_COMMAND"></value>
<value value="0x84" name="UNSUP_MANUF_GENERAL_COMMAND"></value>
<value value="0x85" name="INVALID_FIELD"></value>
<value value="0x86" name="UNSUPPORTED_ATTRIBUTE"></value>
<value value="0x87" name="INVALID_VALUE"></value>
<value value="0x88" name="READ_ONLY"></value>
<value value="0x89" name="INSUFFICIENT_SPACE"></value>
<value value="0x8a" name="DUPLICATE_EXISTS"></value>
<value value="0x8b" name="NOT_FOUND"></value>
<value value="0x8c" name="UNREPORTABLE_ATTRIBUTE"></value>
<value value="0x8d" name="INVALID_DATA_TYPE"></value>
<value value="0x8e" name="INVALID_SECTOR"></value>
<value value="0x8f" name="WRITE_ONLY"></value>
<value value="0x90" name="INCONSISTENT_STARTUP_STATE"></value>
<value value="0x91" name="DEFINED_OUT_OF_BAND"></value>
<value value="0xc0" name="HARDWARE_FAILURE"></value>
<value value="0xc1" name="SOFTWARE_FAILURE"></value>
<value value="0xc2" name="CALIBRATION_ERROR"></value>
</enumeration>
<enumeration id="0x01" name="ZDP_Status">
<value value="0x00" name="SUCCESS"></value>
<value value="0x80" name="INV_REQUESTTYPE"></value>
<value value="0x81" name="DEVICE_NOT_FOUND"></value>
<value value="0x82" name="INVALID_EP"></value>
<value value="0x83" name="NOT_ACTIVE"></value>
<value value="0x84" name="NOT_SUPPORTED"></value>
<value value="0x85" name="TIMEOUT"></value>
<value value="0x86" name="NO_MATCH"></value>
<!-- 0x87 reserved -->
<value value="0x88" name="NO_ENTRY"></value>
<value value="0x89" name="NO_DESCRIPTOR"></value>
<value value="0x8a" name="INSUFFCIENT_SPACE"></value>
<value value="0x8b" name="NOT_PERMITTED"></value>
<value value="0x8c" name="TABLE_FULL"></value>
<value value="0x8d" name="NOT_AUTHORIZED"></value>
</enumeration>
<domain name="General" useZcl="true"
description="The general functional domain contains clusters and information that provides generally applicable functions and attributes that are not specific to other functional domains.">
<cluster id="0000" name="Basic">
<description>Attributes for determining basic information about a device, setting user device information such as description of location, and enabling a device.</description>
<server>
<attribute-set id="000" description="Basic Device Information">
<attribute id="0000" name="ZCL Version" type="u8" access="r" default="0" required="m"></attribute>
<attribute id="0001" name="Application Version" type="u8" access="r" default="0" required="o"></attribute>
<attribute id="0002" name="Stack Version" type="u8" access="r" default="0" required="o"></attribute>
<attribute id="0003" name="HW Version" type="u8" access="r" default="0" required="o"></attribute>
<attribute id="0004" name="Manufacturer Name" type="cstring" access="r" required="o" range="0,32"></attribute>
<attribute id="0005" name="Model Identifier" type="cstring" access="r" required="o" range="0,32"></attribute>
<attribute id="0006" name="Date Code" type="cstring" access="r" required="o" range="0,16"></attribute>
<attribute id="0007" name="Power Source" type="enum8" default="0" access="r" required="m">
<value name="Unknown" value="0"></value>
<value name="Mains (single phase)" value="1"></value>
<value name="Mains (3 phase)" value="2"></value>
<value name="Battery" value="3"></value>
<value name="DC Source" value="4"></value>
<value name="Emergency mains constantly powered" value="5"></value>
<value name="Emergency mains and transfer switch" value="6"></value>
</attribute>
<attribute id="0x4000" name="SW Build ID" type="cstring" access="r" required="o" range="0,16"></attribute>
</attribute-set>
<attribute-set id="001" description="Basic Device Settings">
<attribute id="0010" name="Location Description" type="cstring" range="0,16" access="rw" required="o"></attribute>
<attribute id="0011" name="Physical Environment" type="enum8" default="0" access="rw" required="o">
<value name="Unspecified Environment" value="0"></value>
<!-- 0x01 - 0x7f Specified per Profile -->
<value name="Unknown Environment" value="0xff"></value>
</attribute>
<attribute id="0012" name="Device Enabled" type="bool" default="1" access="rw" required="o">
<value name="Disabled" value="0"></value>
<value name="Enabled" value="1"></value>
</attribute>
<attribute id="0013" name="Alarm Mask" type="bmp8" default="00000000" access="rw" required="o">
<value name="General Hardware Fault" value="0"></value>
<value name="General Software Fault" value="1"></value>
</attribute>
</attribute-set>
<command id="00" dir="recv" name="Reset to Factory Defaults" required="o"></command>
</server>
<client>
</client>
</cluster>
<cluster id="0001" name="Power Configuration">
<description>Attributes for determining more detailed information about a device’s power source(s), and for configuring under/over voltage alarms.</description>
<server>
<attribute-set id="000" description="Mains Information">
<attribute id="0000" name="Mains Voltage" type="u16" access="r" required="o"></attribute>
<attribute id="0001" name="Mains Frequency" type="u8" access="r" required="o"></attribute>
</attribute-set>
<attribute-set id="001" description="Mains Settings">
<attribute id="0010" name="Mains Alarm Mask" type="bmp8" default="00000000" access="rw" required="o">
<value name="Mains Voltage too low (7.2.2.2.2)" value="0"></value>
<value name="Mains Voltage too high (7.2.2.2.3)" value="1"></value>
</attribute>
<attribute id="0011" name="Mains Voltage Min Threshold" type="u16" access="rw" default="0" required="o"></attribute>
<attribute id="0012" name="Mains Voltage Max Threshold" type="u16" access="rw" default="ffff" required="o"></attribute>
<attribute id="0013" name="Mains Voltage Dwell Trip Point" type="u16" access="rw" default="0" required="o"></attribute>
</attribute-set>
<attribute-set id="002" description="Battery Information">
<attribute id="0020" name="Battery Voltage" type="u8" access="r" required="o"></attribute>
<attribute id="0021" name="Battery Percentage Remaining" type="u8" access="r" required="o"></attribute>
</attribute-set>
<attribute-set id="003" description="Battery Settings">
<attribute id="0030" name="Battery Manufacturer" type="cstring" access="rw" required="o" range="0,16"></attribute>
<attribute id="0031" name="Battery Size" type="enum8" default="ff" access="rw" required="o">
<value name="No Battery" value="0"></value>
<value name="Built in" value="1"></value>
<value name="Other" value="2"></value>
<value name="AA" value="3"></value>
<value name="AAA" value="4"></value>
<value name="C" value="5"></value>
<value name="D" value="6"></value>
</attribute>
<attribute id="0032" name="Battery AHr Rating" type="u16" access="rw" required="o"></attribute>
<attribute id="0033" name="Battery Quantity" type="u8" access="rw" required="o"></attribute>
<attribute id="0034" name="Battery Rated Voltage" type="u8" access="rw" required="o"></attribute>
<attribute id="0035" name="Battery Alarm Mask" type="bmp8" default="00000000" access="rw" required="o">
<value name="Battery Voltage too low (7.2.2.4.7)" value="0"></value>
</attribute>
<attribute id="0036" name="Battery Voltage Min Threshold" type="u8" access="rw" default="00" required="o"></attribute>
</attribute-set>
</server>
</cluster>
<cluster id="0002" name="Device Temperature Configuration">
<description>Attributes for determining information about a device’s internal temperature, and for configuring under/over temperature alarms.</description>
<!-- TODO -->
</cluster>
<cluster id="0003" name="Identify">
<description>Attributes and commands for putting a device into Identification mode (e.g. flashing a light)</description>
<server>
<attribute id="0000" name="Identify Time" type="u16" access="rw" default="0x0000" range="0x0000,0xfff" required="m"></attribute>
<command id="00" dir="recv" name="Identify" required="m">
<description>Start or stop the device identifying itself.</description>
<payload>
<attribute id="0x0000" type="u16" name="Identify Time" required="m" default="5">
<description>The time in seconds for which a device will stay in identify mode.</description>
</attribute>
</payload>
</command>
<command id="01" dir="recv" name="Identify Query" response="0x00" required="m">
<description>Allows the sending device to request the target or targets to respond if they are currently identifying themselves.</description>
<payload>
</payload>
</command>
<command id="40" dir="recv" name="Trigger Effect" required="m">
<description>The trigger effect command allows the support of feedback to the user, such as a certain light effect.
</description>
<payload>
<attribute id="0x0000" type="enum8" name="Effect identifier" required="m" default="0x00">
<description>The effect identifier field specifies the identify effect to use.</description>
<value name="Blink" value="0x00"></value>
<value name="Breathe" value="0x01"></value>
<value name="Okay" value="0x02"></value>
<value name="Channel change" value="0x0b"></value>
<value name="Finish" value="0xfe"></value>
<value name="Stop" value="0xff"></value>
</attribute>
<attribute id="0x0001" type="enum8" name="Effect variant" required="m" default="0">
<description>The effect identifier field specifies the identify effect to use.</description>
<value name="Default" value="0x00"></value>
</attribute>
</payload>
</command>
</server>
<client>
<command id="00" dir="recv" name="Identify Query Response" required="m">
<description>Response of a identify query command.</description>
<payload>
<attribute id="0x0000" type="u16" name="Timeout" required="m" default="0">
<description>The time in seconds for which a device will stay in identify mode.</description>
</attribute>
</payload>
</command>
</client>
</cluster>
<cluster id="0004" name="Groups">
<description>Attributes and commands for group configuration and manipulation.</description>
<server>
<attribute id="0000" name="Name Support" type="bmp8" range="x0000000" access="r" required="m">
<value name="Name Support" value="7"></value>
</attribute>
<command id="00" dir="recv" name="Add group" required="m" response="0x00">
<description>Add a group to the device.</description>
<payload>
<attribute id="0x0000" type="u16" name="Group ID" showas="hex" required="m" default="0x0000"></attribute>
<attribute id="0x0001" type="cstring" name="Group Name" required="m"></attribute>
</payload>
</command>
<command id="01" dir="recv" name="View group" required="m" response="0x01">
<description>Get the name of a group.</description>
<payload>
<attribute id="0x0000" type="u16" name="Group ID" showas="hex" required="m" default="0x0000"></attribute>
</payload>
</command>
<command id="02" dir="recv" name="Get group membership" required="m" response="0x02">
<description>Get the group membership of the device.</description>
<payload>
<attribute id="0x0000" type="u8" name="Group count" required="m" default="0x00"></attribute>
<attribute id="0x0001" type="u16" name="Group list" showas="hex" listSize="@0x0000" required="m" ></attribute>
</payload>
</command>
<command id="03" dir="recv" name="Remove group" required="m" response="0x03">
<description>Remove a group from the device.</description>
<payload>
<attribute id="0x0000" type="u16" name="Group ID" showas="hex" required="m" default="0x0000"></attribute>
</payload>
</command>
<command id="04" dir="recv" name="Remove all groups" required="m">
<description>Remove all group from the device.</description>
</command>
</server>
<client>
<command id="00" dir="recv" name="Add group response" required="m">
<description>The Response to the add group request.</description>
<payload>
<attribute id="0x0000" type="enum8" name="Status" required="m" default="0x00" enumeration="ZCL_Status">
</attribute>
<attribute id="0x0001" type="u16" name="Group ID" showas="hex" required="m" default="0x0000"></attribute>
</payload>
</command>
<command id="01" dir="recv" name="View group response" required="m">
<description>The Response to the view group request.</description>
<payload>
<attribute id="0x0000" type="enum8" name="Status" required="m" default="0x00" enumeration="ZCL_Status">
</attribute>
<attribute id="0x0001" type="u16" name="Group ID" showas="hex" required="m" default="0x0000"></attribute>
<attribute id="0x0002" type="cstring" name="Group Name" required="m"></attribute>
<condition id="0x0000" op="!=" value="0x00">
<action action="ignore" id="0x0001" />
<action action="ignore" id="0x0002" />
</condition>
</payload>
</command>
<command id="02" dir="recv" name="Get group membership response" required="m">
<description>The Response to the get group membership request.</description>
<payload>
<attribute id="0x0000" type="u8" name="Capacity" required="m" default="0x00"></attribute>
<attribute id="0x0001" type="u8" name="Group count" required="m" default="0x00"></attribute>
<attribute id="0x0002" type="u16" name="Group list" showas="hex" listSize="0x0001" required="o" ></attribute>
</payload>
</command>
<command id="03" dir="recv" name="Remove group response" required="m">
<description>The Response to the remove group request.</description>
<payload>
<attribute id="0x0000" type="enum8" name="Status" required="m" default="0x00" enumeration="ZCL_Status">
</attribute>
<attribute id="0x0001" type="u16" name="Group ID" showas="hex" required="m" default="0x0000"></attribute>
</payload>
</command>
</client>
</cluster>
<cluster id="0005" name="Scenes">
<description>Attributes and commands for scene configuration and manipulation.</description>
<server>
<attribute id="0x0000" name="Scene Count" type="u8" range="0x00-0xff" access="r" required="m" showas="hex" default="0x00"></attribute>
<attribute id="0x0001" name="Current Scene" type="u8" range="0x00-0xff" access="r" required="m" showas="hex" default="0x00"></attribute>
<attribute id="0x0002" name="Current Group" type="u16" range="0x0000-0xfff7" access="r" required="m" showas="hex" default="0x0000"></attribute>
<attribute id="0x0003" name="Scene Valid" type="bool" access="r" required="m" default="0"></attribute>
<attribute id="0x0004" name="Name Support" type="bmp8" access="r" showas="hex" required="m" default="0"></attribute>
<attribute id="0x0005" name="Last ConfiguredBy" type="uid" access="r" showas="hex" required="o"></attribute>
<command id="0x00" dir="recv" name="Add scene" required="m" response="0x00">
<description>Add a scenes to the group (empty).</description>
<payload>
<attribute id="0x0000" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
<attribute id="0x0001" type="u8" name="Scene ID" required="m" showas="hex" default="0x00"></attribute>
<attribute id="0x0002" type="u16" name="Transition time" required="m" showas="hex" default="0x0000"></attribute>
</payload>
</command>
<command id="0x01" dir="recv" name="View scene" required="m" response="0x01">
<description>Views the scenes of a group.</description>
<payload>
<attribute id="0x0000" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
<attribute id="0x0001" type="u8" name="Scene ID" required="m" showas="hex" default="0x00"></attribute>
</payload>
</command>
<command id="0x02" dir="recv" name="Remove scene" required="m" response="0x02">
<description>Removes a scenes of a group.</description>
<payload>
<attribute id="0x0000" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
<attribute id="0x0001" type="u8" name="Scene ID" required="m" showas="hex" default="0x00"></attribute>
</payload>
</command>
<command id="0x03" dir="recv" name="Remove all scenes" required="m" response="0x03">
<description>Removes all scenes of a group.</description>
<payload>
<attribute id="0x0000" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
</payload>
</command>
<command id="0x04" dir="recv" name="Store scene" required="m" response="0x04">
<description>Stores a scene of a group for a device.</description>
<payload>
<attribute id="0x0000" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
<attribute id="0x0001" type="u8" name="Scene ID" required="m" showas="hex" default="0x00"></attribute>
</payload>
</command>
<command id="0x05" dir="recv" name="Recall scene" required="m" response="0x05">
<description>Recalls a scene of a group for a device.</description>
<payload>
<attribute id="0x0000" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
<attribute id="0x0001" type="u8" name="Scene ID" required="m" showas="hex" default="0x00"></attribute>
</payload>
</command>
<command id="0x06" dir="recv" name="Get scene membership" required="m" response="0x06">
<description>Get the scenes of a group for a device.</description>
<payload>
<attribute id="0x0000" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
</payload>
</command>
<command id="0x41" dir="recv" name="Enhanced view scene" required="m" response="0x41">
<description>Views the scenes of a group.</description>
<payload>
<attribute id="0x0000" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
<attribute id="0x0001" type="u8" name="Scene ID" required="m" showas="hex" default="0x00"></attribute>
</payload>
</command>
<!-- TODO -->
</server>
<client>
<command id="0x00" dir="recv" name="Add scene response" required="m">
<description>Response to the add scene command.</description>
<payload>
<attribute id="0x0000" type="enum8" name="Status" required="m" default="0x00" enumeration="ZCL_Status"></attribute>
<attribute id="0x0001" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
<attribute id="0x0002" type="u8" name="Scene ID" required="m" showas="hex" default="0x00"></attribute>
</payload>
</command>
<command id="0x01" dir="recv" name="View scene response" required="m">
<description>Response to the view scene command.</description>
<payload>
<attribute id="0x0000" type="enum8" name="Status" required="m" default="0x00" enumeration="ZCL_Status"></attribute>
<attribute id="0x0001" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
<attribute id="0x0002" type="u8" name="Scene ID" required="m" showas="hex" default="0x00"></attribute>
<attribute id="0x0003" type="u16" name="Transition time" required="m" showas="hex" default="0x0000"></attribute>
</payload>
</command>
<command id="0x02" dir="recv" name="Remove scene response" required="m">
<description>Response to the remove scene command.</description>
<payload>
<attribute id="0x0000" type="enum8" name="Status" required="m" default="0x00" enumeration="ZCL_Status"></attribute>
<attribute id="0x0001" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
<attribute id="0x0002" type="u8" name="Scene ID" required="m" showas="hex" default="0x00"></attribute>
</payload>
</command>
<command id="0x03" dir="recv" name="Remove all scenes response" required="m">
<description>Response to the remove all scenes command.</description>
<payload>
<attribute id="0x0000" type="enum8" name="Status" required="m" default="0x00" enumeration="ZCL_Status"></attribute>
<attribute id="0x0001" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
</payload>
</command>
<command id="0x04" dir="recv" name="Store scene response" required="m">
<description>Response to the store scene command.</description>
<payload>
<attribute id="0x0000" type="enum8" name="Status" required="m" default="0x00" enumeration="ZCL_Status"></attribute>
<attribute id="0x0001" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
<attribute id="0x0002" type="u8" name="Scene ID" required="m" showas="hex" default="0x00"></attribute>
</payload>
</command>
<command id="0x06" dir="recv" name="Get scene membershio response" required="m">
<description>Shows details about scene membership.</description>
<payload>
<attribute id="0x0000" type="enum8" name="Status" required="m" default="0x00" enumeration="ZCL_Status"></attribute>
<attribute id="0x0001" type="u8" name="Capacity" required="m" showas="dec" default="0x00"></attribute>
<attribute id="0x0002" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
<attribute id="0x0003" type="u8" name="Scene count" required="m" showas="dec" default="0x00"></attribute>
</payload>
</command>
<command id="0x41" dir="recv" name="Enhanced view scene response" required="m">
<description>A scene description.</description>
<payload>
<attribute id="0x0000" type="enum8" name="Status" required="m" default="0x00" enumeration="ZCL_Status"></attribute>
<attribute id="0x0001" type="u16" name="Group ID" required="m" showas="hex" default="0x0000"></attribute>
<attribute id="0x0002" type="u8" name="Scene ID" required="m" showas="hex" default="0x00"></attribute>
<attribute id="0x0003" type="u16" name="Transition time" required="m" showas="dec" default="0x00"></attribute>
<attribute id="0x0004" type="cstring" name="Name" required="m"></attribute>
</payload>
</command>
<!-- TODO -->
</client>
</cluster>
<cluster id="0006" name="On/Off">
<description>Attributes and commands for switching devices between 'On' and 'Off' states.</description>
<server>
<attribute-set id="0x000" description="OnOff state">
<attribute id="0000" name="OnOff" type="bool" access="r" default="0" required="m">
<value name="On" value="1"></value>
<value name="Off" value="0"></value>
</attribute>
</attribute-set>
<attribute-set id="0x400" description="ZLL extensions">
<attribute id="0x4000" name="GlobalSceneControl" type="bool" access="r" default="0" required="o">
</attribute>
<attribute id="0x4001" name="OnTime" type="u16" access="r" default="0" required="o">
</attribute>
<attribute id="0x4002" name="OffWaitTime" type="u16" access="r" default="0" required="o">
</attribute>
</attribute-set>
<command id="00" dir="recv" name="Off" required="m">
<description>On receipt of this command, a device shall enter its 'Off' state. This state is device dependent, but it is recommended that it is used for power off or similar functions.</description>
</command>
<command id="01" dir="recv" name="On" required="m">
<description>On receipt of this command, a device shall enter its 'On' state. This state is device dependent, but it is recommended that it is used for power on or similar functions.</description>
</command>
<command id="02" dir="recv" name="Toggle" required="m">
<description>On receipt of this command, if a device is in its ‘Off’ state it shall enter its 'On' state. Otherwise, if it is in its ‘On’ state it shall enter its 'Off' state.</description>
</command>
<command id="40" dir="recv" name="Off with effect" required="m">
<description></description>
<payload>
<attribute id="0x0000" type="enum8" name="Effect identifier" required="m" default="0x00">
<description>The effect identifier field specifies the fading effect to use.</description>
<value name="Delayed all off" value="0x00"></value>
<value name="Dying light" value="0x01"></value>
</attribute>
<attribute id="0x0001" type="enum8" name="Effect variant" required="m" default="0x00">
<description>The effect identifier field specifies the effect variant to use.</description>
<value name="Fade off in 0.8s (Delayed all off)" value="0x00"></value>
<value name="No fade (Delayed all off)" value="0x01"></value>
<value name="50% dim down in 0.8s then fade off in 12s (Delayed all off)" value="0x02"></value>
<value name="20% dim up in 0.5s then off in 1s (Dying light)" value="0x00"></value>
<value name="" value="0x01"></value>
</attribute>
</payload>
</command>
<command id="41" dir="recv" name="On with recall global scene" required="m">
<description>The on with recall global scene command allows the recall of the light settings when the light was turned off.</description>
</command>
<command id="42" dir="recv" name="On with timed off" required="m">
<description>Allows lamps to be turned on for a specific duration with a guarded off duration so that should the lamp be subsequently switched off, further on with timed off commands, received during this time, are prevented from turning the lamps back on.</description>
<payload>
<attribute id="0x0000" type="bmp8" name="On/off control" required="m" default="0x00">
<description>The effect identifier field specifies the fading effect to use.</description>
<value name="Accept only when on" value="0"></value>
</attribute>
<attribute id="0x0001" type="u16" name="On time" required="m" default="0x0000">
<description>Length of time (in 1/10ths second) that the lamp is to remain on.</description>
</attribute>
<attribute id="0x0002" type="u16" name="Off wait time" required="m" default="0x0000">
<description>Length of time (in 1/10ths second) that the lamp shall remain off.</description>
</attribute>
</payload>
</command>
</server>
<client>
</client>
</cluster>
<cluster id="de06" name="RGB Color">
<description>Attributes and commands for setting devices light color. The color is specified in the RGB range from 0 - 255.</description>
<server>
<attribute id="0000" name="CurrentColorSet" type="u32" access="r" default="0" required="m" showas="hex">
</attribute>
<attribute id="0001" name="ColorSetCount" type="u8" access="r" default="0" required="m">
</attribute>
<command id="00" dir="recv" name="Set Color" required="m">
<description>On receipt of this command, the color of the light shall be changed and the current index updatet.</description>
<payload>
<attribute id="0x0000" type="u8" name="Red" required="m" default="0x00" range="0x00,0xFF" showas="slider">
</attribute>
<attribute id="0x0001" type="u8" name="Green" required="m" default="0x00" range="0x00,0xFF" showas="slider"></attribute>
<attribute id="0x0002" type="u8" name="Blue" required="m" default="0x00" range="0x00,0xFF" showas="slider"></attribute>
<attribute id="0x0003" type="u8" name="Set Index" required="m" default="0x00"></attribute>
<attribute id="0x0004" type="bmp8" name="Options" required="m" default="0x00">
<value name="Change colors" value="0"></value>
<value name="Use current preset" value="1"></value>
</attribute>
</payload>
</command>
</server>
<client>
</client>
</cluster>
<cluster id="0007" name="On/Off Switch Configuration">
<description>Attributes and commands for configuring On/Off switching devices</description>
<server>
<attribute-set id="000" description="Switch Information">
<attribute id="0000" name="SwitchType" type="enum8" access="r" default="0" required="m">
<description>The SwitchType attribute specifies the basic functionality of the On/Off switching device.</description>
<value name="Toggle" value="0">
<description>A switch with two physical states. An action by the user (e.g. toggling a rocker switch) moves the switch from state 1 to state 2. The switch then remains in that state until another action from the user returns it to state 1.</description>
</value>
<value name="Momentary" value="1">
<description>A switch with two physical states. An action by the user (e.g. pressing a button) moves the switch from state 1 to state 2. When the user ends his action (e.g. releases the button) the switch returns to state 1.</description>
</value>
</attribute>
</attribute-set>
<attribute-set id="001" description="Switch Settings">
<attribute id="0010" name="SwitchActions" type="enum8" access="rw" default="0" required="m">
<description>The SwitchActions attribute is 8-bits in length and specifies the commands of the On/Off cluster to be generated when the switch moves between its two states.</description>
<value name="On-Off" value="0"></value>
<value name="Off-On" value="1"></value>
<value name="Toggle" value="2"></value>
</attribute>
</attribute-set>
</server>
<client>
</client>
<!-- TODO -->
</cluster>
<cluster id="0008" name="Level Control">
<description>This cluster provides an interface for controlling a characteristic of a device that can be set to a level, for example the brightness of a light, the degree of closure of a door, or the power output of a heater.</description>
<server>
<attribute id = "0000" name="Current Level" type="u8" range="0x00,0xff" access="r" required="m" default="0x00">
<description>The CurrentLevel attribute represents the current level of this device. meaning of 'level' is device dependent.</description>
</attribute>
<attribute id = "0001" name="Remaining Time" type="u16" range="0x0000,0xffff" access="r" required="o" default="0x0000">
<description>The RemainingTime attribute represents the time remaining until the current command is complete - it is specified in 1/10ths of a second.</description>
</attribute>
<attribute id = "0010" name="OnOff Transistion Time" type="u16" range="0x0000,0xffff" access="rw" required="o" default="0x0000">
<description>The OnOffTransitionTime attribute represents the time taken to move to or from the target level when On of Off commands are received by an On/Off cluster on the same endpoint. It is specified in 1/10ths of a second. The actual time taken should be as close to OnOffTransitionTime as the device is able.</description>
</attribute>
<attribute id = "0011" name="On Level" type="u8" range="0x00,0xfe" access="rw" required="o" default="0xfe">
<description>The OnLevel attribute determines the value that the CurrentLevel attribute is set to when the OnOff attribute of an On/Off cluster on the same endpoint is set to On. If the OnLevel attribute is not implemented, or is set to 0xff, it has no effect.</description>
</attribute>
<command id="0x00" dir="recv" name="Move to Level" required="m">
<description></description>
<payload>
<attribute id="0x0000" type="u8" name="Level" required="m" default="0x00" range="0x00,0xff"></attribute>
<attribute id="0x0001" type="u16" name="Transistion time" required="m" default="0x0000"></attribute>
</payload>
</command>
<command id="0x01" dir="recv" name="Move" required="m">
<description></description>
<payload>
<attribute id="0x0000" type="enum8" name="Move mode" required="m" default="0x00">
<value name="Up" value="0x00"></value>
<value name="Down" value="0x01"></value>
</attribute>
<attribute id="0x0001" type="u8" name="Rate" required="m" default="0x00"></attribute>
</payload>
</command>
<command id="0x02" dir="recv" name="Step" required="m">
<description></description>
<payload>
<attribute id="0x0000" type="enum8" name="Step mode" required="m" default="0x00">
<value name="Up" value="0x00"></value>
<value name="Down" value="0x01"></value>
</attribute>
<attribute id="0x0001" type="u8" name="Step size" required="m" default="0x00"></attribute>
<attribute id="0x0002" type="u16" name="Transition time" required="m" default="0x0000"></attribute>
</payload>
</command>
<command id="0x03" dir="recv" name="Stop" required="m">
<description></description>
</command>
<command id="0x04" dir="recv" name="Move to Level (with On/Off)" required="m">
<description></description>
<payload>
<attribute id="0x0000" type="u8" name="Level" required="m" default="0x00" range="0x00,0xff"></attribute>
<attribute id="0x0001" type="u16" name="Transistion time" required="m" default="0x0000"></attribute>
</payload>
</command>
<command id="0x05" dir="recv" name="Move (with On/Off)" required="m">
<description></description>
<payload>
<attribute id="0x0000" type="enum8" name="Move mode" required="m" default="0x00">
<value name="Up" value="0x00"></value>
<value name="Down" value="0x01"></value>
</attribute>
<attribute id="0x0001" type="u8" name="Rate" required="m" default="0x00"></attribute>
</payload>
</command>
<command id="0x06" dir="recv" name="Step (with On/Off)" required="m">
<description></description>
<payload>
<attribute id="0x0000" type="enum8" name="Step mode" required="m" default="0x00">
<value name="Up" value="0x00"></value>
<value name="Down" value="0x01"></value>
</attribute>
<attribute id="0x0001" type="u8" name="Step size" required="m" default="0x00"></attribute>
<attribute id="0x0002" type="u16" name="Transition time" required="m" default="0x0000"></attribute>
</payload>
</command>
<command id="0x07" dir="recv" name="Stop (with On/Off)" required="m">
<description></description>
</command>
</server>
<client>
<!-- TODO commands -->
</client>
<!-- TODO -->
</cluster>
<cluster id="0009" name="Alarms">
<description>Sending alarm notifications and configuring alarm functionality.</description>
<!-- TODO -->
<server>
<attribute-set id="0x000" description="Alarm Information">
<attribute id="0000" name="Alarm Count" type="u16" access="rw" required="m" default="0x00"></attribute>
</attribute-set>
<command id="0x00" dir="send" name="Alarm" required="m">
<payload>
<attribute id="0x0000" type="u8" name="Alarm code" default="0x00" required="m" showas="hex">
</attribute>
<attribute id="0x0001" type="u16" name="Cluster Id" default="0x0000" required="m" showas="hex"></attribute>
</payload>
</command>
</server>
<client>
</client>
</cluster>
<cluster id="000a" name="Time">
<description>This cluster provides a basic interface to a real-time clock.</description>
<server>
<attribute id="0000" name="Time" type="utc" access="rw" required="m"></attribute>
<attribute id="0001" name="Time Status" type="bmp8" default="0b00000000" access="rw" required="m">
<value name="Master Clock" value="0"></value>
<value name="Syncronized" value="1"></value>
<value name="Master for Timezone and Dst" value="2"></value>
</attribute>
<attribute id="0002" name="Time Zone" type="s32" range="-86400,86400" default="0" access="rw" required="o"></attribute>
<attribute id="0003" name="Dst Start" type="u32" range="0x00000000,0xfffffffe" access="rw" required="o"></attribute>
<attribute id="0004" name="Dst End" type="u32" range="0x00000000,0xfffffffe" access="rw" required="o"></attribute>
<attribute id="0005" name="Dst Shift" type="s32" range="-86400,86400" default="0" access="rw" required="o"></attribute>
<attribute id="0006" name="Standard Time" type="u32" range="0x00000000,0xfffffffe" access="r" required="o"></attribute>
<attribute id="0007" name="Local Time" type="u32" range="0x00000000,0xfffffffe" access="r" required="o"></attribute>
<!-- TODO -->
</server>
<client>
</client>
</cluster>
<cluster id="000b" name="Location">
<description>Measure distance between devices.</description>
<server>
<command id="0x40" dir="recv" name="Distance measure" required="m" response="0x40" showas="hex">
<description></description>
<payload>
<attribute id="0x0000" type="u16" name="Target address" required="m" default="0x0000" ></attribute>
<attribute id="0x0001" type="enum8" name="Resolution" required="m" default="0x00">
<value name="High" value="0x00"></value>
<value name="Mid" value="0x01"></value>
<value name="Low" value="0x02"></value>
</attribute>
</payload>
</command>
</server>
<client>
<command id="0x40" dir="recv" name="Distance measure response" required="m">
<description>Returns the result of a distance measure.</description>
<payload>
<attribute id="0x0000" type="u16" name="Target address" required="m" default="0x0000" showas="hex"></attribute>
<attribute id="0x0001" type="u16" name="Distance (Meter)" required="m" default="0"></attribute>
<attribute id="0x0002" type="u16" name="Quality index" required="m" default="0"></attribute>
</payload>
</command>
</client>
<!-- TODO -->
</cluster>
<cluster id="0x000c" name="Analog Input (Basic)">
<description>An interface for reading the value of an analog measurement and accessing
various characteristics of that measurement.</description>
<server>
<attribute id="0x0051" type="bool" name="Out of service" required="m" access="rw" default="0"></attribute>
<attribute id="0x0055" type="float" name="Present value" required="m" access="rw" default="0"></attribute>
<attribute id="0x006f" type="bmp8" name="Status flags" required="m" access="r" default="0">
<value name="In Alarm" value="0x01"></value>
<value name="Fault" value="0x02"></value>
<value name="Overidden" value="0x04"></value>
<value name="Out_of_Service" value="0x08"></value>
</attribute>
</server>
<client>
</client>
<!-- TODO -->
</cluster>
<cluster id="000d" name="Analog Output (Basic)">
<description></description>
<!-- TODO -->
</cluster>
<cluster id="000e" name="Analog Value (Basic)">
<description>An interface for setting an analog value, typically used as a control system parameter, and accessing various characteristics of that value.</description>
<!-- TODO -->
</cluster>
<cluster id="000f" name="Binary Input (Basic)">
<description>The Binary Input (Basic) cluster provides an interface for reading the value of a binary measurement and accessing various characteristics of that measurement. The cluster is typically used to implement a sensor that measures a two-state physical quantity.
</description>
<server>
<attribute id="0x0051" name="Out of Service" type="bool" default="0" access="rw" required="m"></attribute>
<attribute id="0x0055" name="Present Value" type="bool" default="0" access="rw" required="m"></attribute>
<attribute id="0x006F" name="Status Flags" type="bmp8" default="0" access="r" required="m">
<value name="In Alarm" value="0x01"></value>
<value name="Fault" value="0x02"></value>
<value name="Overidden" value="0x04"></value>
<value name="Out_of_Service" value="0x08"></value>
</attribute>
</server>
<client>
</client>
<!-- TODO -->
</cluster>
<cluster id="0010" name="Binary Output (Basic)">
<description></description>
<!-- TODO -->
</cluster>
<cluster id="0011" name="Binary Value (Basic)">
<description></description>
<!-- TODO -->
</cluster>
<cluster id="0x0012" name="Multistate Input (Basic)">
<description>Provides an interface for reading the value of a multistate measurement
and accessing various characteristics of that measurement. The cluster is typically used to implement a sensor
that measures a physical quantity that can take on one of a number of discrete states.</description>
<server>
<attribute id="0x004a" type="u16" name="Number of states" required="m" access="rw" default="0"></attribute>
<attribute id="0x0051" type="bool" name="Out of service" required="m" access="rw" default="0"></attribute>
<attribute id="0x0055" type="u16" name="Present value" required="m" access="rw" default="0"></attribute>
<attribute id="0x006f" type="bmp8" name="Status flags" required="m" access="r" default="0">
<value name="In Alarm" value="0x01"></value>
<value name="Fault" value="0x02"></value>
<value name="Overidden" value="0x04"></value>
<value name="Out_of_Service" value="0x08"></value>
</attribute>
</server>
<client>
</client>
<!-- TODO -->
</cluster>
<cluster id="0013" name="Multistate Output (Basic)">
<description></description>
<!-- TODO -->
</cluster>
<cluster id="0014" name="Multistate Value (Basic)">
<description></description>
<!-- TODO -->
</cluster>
<cluster id="0015" name="Commissioning">
<description>Attributes and commands for commissioning and managing a ZigBee device.</description>
<server>
<!-- TODO -->
<attribute-set id="000" description="Startup Parameters I">
<attribute id="0000" name="Short Address" type="u16" access="rw" range="0x0000,0xfff7" showas="hex" required="m"></attribute>
<attribute id="0001" name="Extended PAN ID" type="uid" access="rw" range="0x0000000000000000,0xfffffffffffffff7" required="m"></attribute>
<attribute id="0002" name="PAN ID" type="u16" access="rw" range="0x0000,0xffff" showas="hex" required="m"></attribute>
<attribute id="0003" name="Channel Mask" type="bmp32" access="rw" required="m">
<value name="CH 11" value="11"></value>
<value name="CH 12" value="12"></value>
<value name="CH 13" value="13"></value>
<value name="CH 14" value="14"></value>
<value name="CH 15" value="15"></value>
<value name="CH 16" value="16"></value>
<value name="CH 17" value="17"></value>
<value name="CH 18" value="18"></value>
<value name="CH 19" value="19"></value>
<value name="CH 20" value="20"></value>
<value name="CH 21" value="21"></value>
<value name="CH 22" value="22"></value>
<value name="CH 23" value="23"></value>
<value name="CH 24" value="24"></value>
<value name="CH 25" value="25"></value>
<value name="CH 26" value="26"></value>
</attribute>
<attribute id="0004" name="Protocol Version" type="u8" access="rw" default="0x02" required="m"></attribute>
<attribute id="0005" name="Stack Profile" type="u8" access="rw" range="0x01,0x02" required="m"></attribute>
<attribute id="0006" name="Startup Control" type="enum8" access="rw" required="m">
<value name="Part of the network" value="0x00"></value>
<value name="Form a network" value="0x01"></value>
<value name="Rejoin the network" value="0x02"></value>
<value name="Start from scratch" value="0x03"></value>
</attribute>
</attribute-set>
<attribute-set id="001" description="Startup Parameters II">
<attribute id="0010" name="Trust Center Address" type="uid" access="rw" required="m"></attribute>
<attribute id="0011" name="Trust Center Master Key" type="seckey" access="rw" required="m"></attribute>
<attribute id="0012" name="Network Key" type="seckey" access="rw" required="m"></attribute>
<attribute id="0013" name="Use Insecure Join" type="bool" access="rw" required="m"></attribute>
<attribute id="0014" name="Preconfigured Link Key" type="seckey" access="rw" required="m"></attribute>
<attribute id="0015" name="Network Key Seq Num" type="u8" access="rw" range="0x00,0xff" required="m"></attribute>
<attribute id="0016" name="Network Key Type" type="enum8" access="rw" required="m">
<value name="Standard" value="0x01"></value>
<value name="High Security" value="0x05"></value>
</attribute>
<attribute id="0017" name="Network Manager Address" type="u16" access="rw" required="m"></attribute>
</attribute-set>
<attribute-set id="002" description="Join Parameters">
<attribute id="0020" name="Scan Attemps" type="u8" access="rw" range="0x01,0xff" required="m"></attribute>
<attribute id="0021" name="Time Between Scans" type="u16" access="rw" range="0x0001,0xffff" required="m"></attribute>
<attribute id="0022" name="Rejoin Interval" type="u16" access="rw" range="0x0001,0xffff" required="m"></attribute>
<attribute id="0023" name="Max Rejoin Interval" type="u16" access="rw" range="0x0001,0xffff" required="m"></attribute>
</attribute-set>
<attribute-set id="003" description="End Device Parameters">
<attribute id="0030" name="Indirect Poll Rate" type="u16" access="rw" range="0x0000,0xffff" required="m"></attribute>
<attribute id="0030" name="Parent Retry Threshold" type="u8" access="rw" range="0x00,0xff" required="m"></attribute>
</attribute-set>
<attribute-set id="004" description="Concentrator Parameters">
<attribute id="0040" name="Concentrator Flag" type="bool" access="rw" required="m"></attribute>
<attribute id="0041" name="Concentrator Radius" type="u8" access="rw" range="0x00,0xff" required="m"></attribute>
<attribute id="0042" name="Concentrator Discovery Time" type="u8" access="rw" range="0x00,0xff" required="m"></attribute>
</attribute-set>
<attribute-set id="de0" description="DE Setup Parameters">
<attribute id="de01" name="MAC Address" type="uid" access="rw" required="m"></attribute>
</attribute-set>
<command id="00" dir="recv" name="Restart Device" required="m" response="0x00">
<description>The Restart Device command is used to optionally install a set of startup parameters in a device and run the startup procedure so as to put the new values into effect. The new values may take effect immediately or after an optional delay with optional jitter. The server will send a Restart Device Response command back to the client device before executing the procedure or starting the countdown timer required to time the delay.</description>
<payload>
<attribute id="0x0000" name="Options" type="bmp8" default="00000000" access="rw" required="m">
<value name="Don't replace attributes on restart" value="0"></value>
<value name="Immediate" value="1"></value>
</attribute>
<attribute id="0x0001" type="u8" name="Delay" required="m"></attribute>
<attribute id="0x0002" type="u8" name="Jitter" required="m"></attribute>
</payload>
</command>
<command id="01" dir="recv" name="Save Startup Parameters" required="o" response="0x01">
<description>The Save Startup Parameters Request command allows for the current attribute set to be stored under a given index.</description>
<payload>
<attribute id="0x0000" name="Options" type="bmp8" default="00000000" access="rw" required="m">
</attribute>
<attribute id="0x0001" type="u8" name="Index" required="m"></attribute>
</payload>
</command>
<command id="02" dir="recv" name="Restore Startup Parameters" required="o" response="0x02">
<description>This command allows a saved startup parameters attribute set to be restored to current status overwriting whatever was there previously.</description>
<payload>
<attribute id="0x0000" name="Options" type="bmp8" default="00000000" access="rw" required="m">
</attribute>
<attribute id="0x0001" type="u8" name="Index" required="m"></attribute>
</payload>
</command>
<command id="03" dir="recv" name="Reset Startup Parameters" required="m" response="0x03">
<description>This command allows current startup parameters attribute set and one or all of the saved attribute sets to be set to default values. There is also an option for erasing the index under which an attribute set is saved thereby freeing up storage capacity.</description>
<payload>
<attribute id="0x0000" name="Options" type="bmp8" default="00000000" access="rw" required="m">
<value name="Reset Current" value="0"></value>
<value name="Reset All" value="1"></value>
<value name="Erase Index" value="2"></value>
</attribute>
<attribute id="0x0001" type="u8" name="Index" required="m"></attribute>
</payload>
</command>
</server>
<client>
<command id="00" dir="recv" name="Restart Device Response" required="m">
<description>On receipt of this command the client is made aware that the server has received the corresponding request and is informed of the status of the request.</description>
<payload>
<attribute id="0x0000" name="Status" type="enum8" access="rw" required="m" enumeration="ZCL_Status">
</attribute>
</payload>
</command>
<command id="01" dir="recv" name="Save Startup Parameters Response" required="m">
<description>On receipt of this command the client is made aware that the server has received the corresponding request and is informed of the status of the request.</description>
<payload>
<attribute id="0x0000" name="Status" type="enum8" access="rw" required="m" enumeration="ZCL_Status">
</attribute>
</payload>
</command>
<command id="02" dir="recv" name="Restore Startup Parameters Response" required="m">
<description>On receipt of this command the client is made aware that the server has received the corresponding request and is informed of the status of the request.</description>
<payload>
<attribute id="0x0000" name="Status" type="enum8" access="rw" required="m" enumeration="ZCL_Status">
</attribute>
</payload>
</command>
<command id="03" dir="recv" name="Reset Startup Parameters Response" required="m">
<description>On receipt of this command the client is made aware that the server has received the corresponding request and is informed of the status of the request.</description>
<payload>
<attribute id="0x0000" name="Status" type="enum8" access="rw" required="m" enumeration="ZCL_Status">
</attribute>
</payload>
</command>
</client>
</cluster>
<cluster id="0019" name="OTAU">
<description>Over the air upgrade.</description>
<client>
<attribute id="0x0000" name="Upgrade server" type="uid" default="0" access="rw" required="m"></attribute>
<attribute id="0x0001" name="File Offset" type="u32" default="0xffffffff" access="r" required="o" showas="hex"></attribute>
<attribute id="0x0002" name="Current File Version" type="u32" default="0xffffffff" access="r" required="o" showas="hex"></attribute>
<attribute id="0x0003" name="Current ZigBee Stack Version" type="u16" default="0xffff" access="r" required="o" showas="hex"></attribute>
<attribute id="0x0004" name="Downloaded File Version" type="u32" default="0xffffffff" access="r" required="o" showas="hex"></attribute>
<attribute id="0x0005" name="Downloaded ZigBee Stack Version" type="u16" default="0xffff" access="r" required="o" showas="hex"></attribute>
<attribute id="0x0006" name="Image upgrade status" type="enum8" default="0x04" access="rw" required="m">
<value name="Normal" value="0"></value>
<value name="Download in progress" value="1"></value>
<value name="Download complete" value="2"></value>
<value name="Waiting to upgrade" value="3"></value>
<value name="Count down" value="4"></value>
<value name="Wait for more" value="5"></value>
</attribute>
<attribute id="0x0009" name="Min block request delay" type="u16" default="0" access="r" required="m"></attribute>
<command id="0x01" dir="send" name="Query next image" required="m">
<description></description>
<payload>
<attribute id="0x0000" type="bmp8" name="Control field" required="m" default="0x00">
<value name="Hardware version present" value="0x01"></value>
</attribute>
<attribute id="0x0001" type="u16" showas="hex" name="Manufacturer ID" required="m"></attribute>
<attribute id="0x0002" type="enum16" name="Image type" required="m" default="0x0000">
<value name="Specific image" value="0x0000"></value>
<value name="Security credential" value="0xFFC0"></value>
<value name="Configuration" value="0xFFC1"></value>
<value name="Log" value="0xFFC2"></value>
<value name="Wild card" value="0xFFFF"></value>
</attribute>
<!-- Firmware Version -->
<attribute id="0x0003" type="u8" showas="hex" name="Application Release" required="m"></attribute>
<attribute id="0x0004" type="u8" showas="hex" name="Application Build" required="m"></attribute>
<attribute id="0x0005" type="u8" showas="hex" name="Stack Release" required="m"></attribute>
<attribute id="0x0006" type="u8" showas="hex" name="Stack Build" required="m"></attribute>
</payload>
</command>
</client>
<server>
</server>
</cluster>
<cluster id="0x0020" name="Poll Control">
<description>Provides a mechanism for the management of an end device’s MAC
Data Request rate.</description>
<client>
</client>
<server>
<attribute id="0x0000" name="Check-in Interval" type="u32" default="0x3840" access="rw" required="m" range="0x0,0x6e0000"></attribute>
<attribute id="0x0001" name="Long Poll Interval" type="u32" default="0x14" access="r" required="m" range="0x04,0x6e0000"></attribute>
<attribute id="0x0002" name="Short Poll Interval" type="u16" default="0x02" access="r" required="m" range="0x01,0xffff"></attribute>
<attribute id="0x0003" name="Fast Poll Timeout" type="u16" default="0x028" access="rw" required="m" range="0x01,0xffff"></attribute>
<attribute id="0x0004" name="Check-in Interval Min" type="u32" default="0" access="r" required="o"></attribute>
<attribute id="0x0005" name="Long Poll Interval Min" type="u32" default="0" access="r" required="o"></attribute>
<attribute id="0x0006" name="Fast Poll Timeout Max" type="u16" default="0" access="r" required="o"></attribute>
<command id="0x00" dir="send" name="Check-in" required="m">
<description></description>
<payload></payload>
</command>
</server>
</cluster>
<cluster id="0800" name="Key Establishment">
<description></description>
<client></client>
<server></server>
<!-- TODO -->
</cluster>
</domain>
<domain name="Closures" low_bound="0100" high_bound="01ff" description="The closures functional domain contains clusters and information to build devices in the closure domain, e.g. shade controllers.">
<cluster id="0100" name="Shade Configuration">
<description></description>
<!-- TODO -->
</cluster>
</domain>
<domain name="HVAC" low_bound="0200" high_bound="02ff" description="The HVAC functional domain contains clusters and information to build devices in the HVAC domain, e.g. pumps.">
<cluster id="0200" name="Pump Configuration and Control">
<description>An interface for configuring and controlling pumps.</description>
<!-- TODO -->
</cluster>
<cluster id="0201" name="Thermostat">
<description>Foobar.</description>
<server>
<attribute-set id="000" description="Thermostat Information">
<attribute id="0000" name="Local Temperature" type="s16" range="0x954d,0x7fff" access="r" required="m"></attribute>
<attribute id="0001" name="Outdoor Temperature" type="s16" range="0x954d,0x7fff" access="r" required="o"></attribute>
<!-- TODO -->
</attribute-set>
<attribute-set id="001" description="Thermostat Settings">
<attribute id="0011" name="Occupied Cooling Setpoint" type="s16" default="0x0a28" range="0x954d,0x7fff" access="rw" required="m"></attribute>
<attribute id="0012" name="Occupied Heating Setpoint" type="s16" default="0x07d0" range="0x954d,0x7fff" access="rw" required="m"></attribute>
<attribute id="001b" name="Control Sequence Of Operation" type="enum8" default="0x04" access="rw" required="m">
<value name="Cooling Only" value="0"></value>
<value name="Cooling With Reheat" value="1"></value>
<value name="Heating Only" value="2"></value>
<value name="Heating With Reheat" value="3"></value>
<value name="Cooling and Heating 4-pipes" value="4"></value>
<value name="Cooling and Heating 4-pipes with Reheat" value="5"></value>
</attribute>
<attribute id="001c" name="System Mode" type="enum8" default="0x01" access="rw" required="m">
<value name="Off" value="0"></value>
<value name="Auto" value="1"></value>
<value name="Cool" value="3"></value>
<value name="Heat" value="4"></value>
<value name="Emergency heating" value="5"></value>
<value name="Precooling" value="6"></value>
<value name="Fan only" value="7"></value>
</attribute>
<!-- TODO -->
</attribute-set>
<command id="0x00" dir="recv" name="Setpoint Raise/Lower" required="m">
<description>This command increases (or decreases) the setpoint(s) by amount, in steps of 0.1°C.</description>
<payload>
<attribute id="0x0000" type="enum8" name="Mode" required="m" default="0x02">
<value name="Heat (adjust Heat Setpoint)" value="0x00"></value>
<value name="Cool (adjust Cool Setpoint)" value="0x01"></value>
<value name="Both (adjust Heat Setpoint and Cool Setpoint)" value="0x02"></value>
</attribute>
<attribute id="0x0001" type="s8" name="Amount" required="m">
<description>The amount field is a signed 8-bit integer that specifies the amount the setpoint(s) are to be a increased (or decreased) by, in steps of 0.1°C.</description>
</attribute>
</payload>
</command>
</server>
<client>
<!-- TODO -->
</client>
</cluster>
<cluster id="0202" name="Fan Control">
<description>333</description>
<!-- TODO -->
</cluster>
<cluster id="0203" name="Dehumidification Control">
<description>dfdf</description>
<!-- TODO -->
</cluster>
<cluster id="0204" name="Thermostat User Interface Configuration">
<description>sdfsdf</description>
<!-- TODO -->
</cluster>
<cluster id="0xde42" name="DE Debug">
<description>Attributes and commands for debugging purposes.</description>
<server>
<attribute id="0x0000" name="Debug enabled" type="bool" access="rw" default="0x00" required="m"></attribute>
<attribute id="0x0001" name="Debug destination" type="u16" access="rw" default="0x0000" showas="hex" required="m"></attribute>
</server>
<client>
<!-- TODO -->
</client>
</cluster>
</domain>
<domain name="Lighting" low_bound="0300" high_bound="03ff" description="The lighting functional domain contains clusters and information to build devices in the lighting domain, e.g. ballast units.">
<cluster id="0300" name="Color control">
<description>Attributes and commands for controlling the color properties of a color-capable light.</description>
<server>
<attribute-set id="0x000" description="Color Information">
<attribute id="0x0000" name="Current hue" type="u8" access="r" range="0x00,0xfe" default="0x00" required="o"></attribute>
<attribute id="0x0001" name="Current saturation" type="u8" access="r" range="0x00,0xfe" default="0x00" required="o"></attribute>
<attribute id="0x0002" name="Remaining time" type="u16" access="r" range="0x0000,0xfffe" default="0x0000" required="o"></attribute>
<attribute id="0x0003" name="Current x" type="u16" access="r" range="0x0000,0xfeff" default="0x61eb" required="m"></attribute>
<attribute id="0x0004" name="Current y" type="u16" access="r" range="0x0000,0xfeff" default="0x607b" required="m"></attribute>
<attribute id="0x0007" name="Color temperature" type="u16" access="r" range="0x0000,0xffff" default="0" required="m"></attribute>
<!-- TODO -->
<attribute id="0x0008" name="Color Mode" type="enum8" access="r" range="0x00,0x02" default="0x01" required="o">
<value name="Current hue and current saturation" value="0x00"></value>
<value name="Current x and current y" value="0x01"></value>
<value name="Color temperature" value="0x02"></value>
</attribute>
</attribute-set>
<attribute-set id="0x001" description="Defined Primaries Information">
<attribute id="0x0010" name="Number of primaries" type="u8" access="r" range="0x00,0x06" required="o"></attribute>
<attribute id="0x0011" name="Primary1 x" type="u16" access="r" range="0x0000,0xfeff" required="o"></attribute>
<attribute id="0x0012" name="Primary1 y" type="u16" access="r" range="0x0000,0xfeff" required="o"></attribute>
<attribute id="0x0013" name="Primary1 intensity" type="u8" access="r" range="0x00,0xff" required="o"></attribute>
<attribute id="0x0015" name="Primary2 x" type="u16" access="r" range="0x0000,0xfeff" required="o"></attribute>
<attribute id="0x0016" name="Primary2 y" type="u16" access="r" range="0x0000,0xfeff" required="o"></attribute>
<attribute id="0x0017" name="Primary2 intensity" type="u8" access="r" range="0x00,0xff" required="o"></attribute>
<attribute id="0x0019" name="Primary3 x" type="u16" access="r" range="0x0000,0xfeff" required="o"></attribute>
<attribute id="0x001a" name="Primary3 y" type="u16" access="r" range="0x0000,0xfeff" required="o"></attribute>
<attribute id="0x001b" name="Primary3 intensity" type="u8" access="r" range="0x00,0xff" required="o"></attribute>
</attribute-set>
<attribute-set id="0x4000" description="ZLL extensions">
<attribute id="0x4000" name="Enhanced current hue" type="u16" access="r" range="0x0000,0xffff" default="0x0000" required="m"></attribute>
<attribute id="0x4001" name="Enhanced color mode" type="enum8" access="r" range="0x00,0xff" default="0x00" required="m">
<value name="Current hue and current saturation" value="0x00"></value>
<value name="Current x and current y" value="0x01"></value>
<value name="Color temperature" value="0x02"></value>
<value name="Enhanced current hue and current saturation" value="0x03"></value>
</attribute>
<attribute id="0x4002" name="Color loop active" type="u8" access="r" range="0x00,0xff" default="0x00" required="m"></attribute>
<attribute id="0x4003" name="Color loop direction" type="u8" access="r" range="0x00,0xff" default="0x00" required="m"></attribute>
<attribute id="0x4004" name="Color loop time" type="u16" access="r" range="0x00,0xff" default="0x0019" required="m"></attribute>
<attribute id="0x4005" name="Color loop start - enhanced hue" type="u16" access="r" range="0x00,0xff" default="0x2300" required="m"></attribute>
<attribute id="0x4006" name="Color loop stored - enhanced hue" type="u16" access="r" range="0x00,0xff" default="0x0000" required="m"></attribute>
<attribute id="0x400a" type="bmp16" name="Color capabilities" access="r" required="m" default="0x0000">
<value name="Hue saturation" value="0"></value>
<value name="Enhanced Hue saturation" value="1"></value>
<value name="Color loop" value="2"></value>
<value name="CIE 1931 XY" value="3"></value>
<value name="Color temperature" value="4"></value>
</attribute>
<attribute id="0x400b" name="Color temperature min" type="u16" access="r" range="0x0000,0xffff" default="0" required="m"></attribute>
<attribute id="0x400c" name="Color temperature max" type="u16" access="r" range="0x0000,0xffff" default="0xffff" required="m"></attribute>
<attribute id="0xde01" name="Active channels" type="u8" access="r" range="0x00,0xff" default="0x00" required="m"></attribute>
</attribute-set>
<command id="0x00" dir="recv" name="Move to hue" required="o">
<payload>
<attribute id="0x0000" type="u8" name="Hue" required="m"></attribute>
<attribute id="0x0001" type="enum8" name="Direction" required="m">
<value name="Shortest distance" value="0x00"></value>
<value name="Longest Distance" value="0x01"></value>
<value name="Up" value="0x02"></value>
<value name="Down" value="0x03"></value>
</attribute>
<attribute id="0x0002" type="u16" name="Transition time" required="m">
<description>The transition time in 1/10ths of a second.</description>
</attribute>
</payload>
</command>
<command id="0x01" dir="recv" name="Move hue" required="o">
<payload>
<attribute id="0x0001" type="enum8" name="Move mode" required="m">
<value name="Stop" value="0x00"></value>
<value name="Up" value="0x01"></value>
<value name="Down" value="0x03"></value>
</attribute>
<attribute id="0x0002" type="u8" name="Steps/second" required="m"></attribute>
</payload>
</command>
<command id="0x02" dir="recv" name="Step hue" required="o">
<payload>
<attribute id="0x0000" type="enum8" name="Step mode" required="m">
<value name="Up" value="0x01"></value>
<value name="Down" value="0x03"></value>
</attribute>
<attribute id="0x0001" type="u8" name="Step size" required="m"></attribute>
<attribute id="0x0002" type="u8" name="Transition time" required="m">
<description>The transitiontime in 1/10 seconds.</description>
</attribute>
</payload>
</command>
<command id="0x03" dir="recv" name="Move to saturation" required="o">
<payload>
<attribute id="0x0000" type="u8" name="Saturation" required="m"></attribute>
<attribute id="0x0001" type="u16" name="Transition time" required="m">
<description>The transitiontime in 1/10 seconds.</description>
</attribute>
</payload>
</command>
<command id="0x04" dir="recv" name="Move saturation" required="o">
<payload>
<attribute id="0x0000" type="enum8" name="Move mode" required="m">
<value name="Stop" value="0x00"></value>
<value name="Up" value="0x01"></value>
<value name="Down" value="0x03"></value>
</attribute>
<attribute id="0x0001" type="u8" name="Rate" required="m">
<description>The steps per second.</description>
</attribute>
</payload>
</command>
<command id="0x05" dir="recv" name="Step saturation" required="o">
<payload>
<attribute id="0x0000" type="enum8" name="Step mode" required="m">
<value name="Up" value="0x01"></value>
<value name="Down" value="0x03"></value>
</attribute>
<attribute id="0x0001" type="u8" name="Step size" required="m"></attribute>
<attribute id="0x0002" type="u8" name="Transition time" required="m">
<description>The transitiontime in 1/10 seconds.</description>
</attribute>
</payload>
</command>
<command id="0x06" dir="recv" name="Move to hue and saturation" required="o">
<payload>
<attribute id="0x0000" type="u8" name="Hue" required="m"></attribute>
<attribute id="0x0001" type="u8" name="Saturation" required="m"></attribute>
<attribute id="0x0002" type="u16" name="Transition time" required="m">
<description>The transitiontime in 1/10 seconds.</description>
</attribute>
</payload>
</command>
<command id="0x07" dir="recv" name="Move to color" required="m">
<payload>
<attribute id="0x0000" type="u16" name="ColorX" required="m"></attribute>
<attribute id="0x0001" type="u16" name="ColorY" required="m"></attribute>
<attribute id="0x0002" type="u16" name="Transition time" required="m">
<description>The transitiontime in 1/10 seconds.</description>
</attribute>
</payload>
</command>
<command id="0x08" dir="recv" name="Move color" required="o">
<payload>
<attribute id="0x0000" type="s16" name="Rate X" required="m">
<description>The steps per second.</description>
</attribute>
<attribute id="0x0001" type="s16" name="Rate Y" required="m">
<description>The steps per second.</description>
</attribute>
</payload>
</command>
<command id="0x09" dir="recv" name="Step color" required="o">
<payload>
<attribute id="0x0000" type="s16" name="Step X" required="m"></attribute>
<attribute id="0x0001" type="s16" name="Step Y" required="m"></attribute>
<attribute id="0x0002" type="u16" name="Transition time" required="m">
<description>The transitiontime in 1/10 seconds.</description>
</attribute>
</payload>
</command>
<command id="0x0a" dir="recv" name="Move to color temperature" required="o">
<payload>
<attribute id="0x0000" type="u16" name="Color temperature" required="m"></attribute>
<attribute id="0x0001" type="u16" name="Transition time" required="m">
<description>The transitiontime in 1/10 seconds.</description>
</attribute>
</payload>
</command>
<command id="0x40" dir="recv" name="Enhanced move to hue" required="m">
<payload>
<attribute id="0x0000" type="u16" name="Enhanced hue" required="m"></attribute>
<attribute id="0x0001" type="enum8" name="Direction" required="m">
<value name="Shortest distance" value="0x00"></value>
<value name="Longest Distance" value="0x01"></value>
<value name="Up" value="0x02"></value>
<value name="Down" value="0x03"></value>
</attribute>
<attribute id="0x0002" type="u16" name="Transition time" required="m">
<description>The transitiontime in 1/10 seconds.</description>
</attribute>
</payload>
</command>
<command id="0x41" dir="recv" name="Enhanced move hue" required="m">
<payload>
<attribute id="0x0000" type="enum8" name="Move mode" required="m">
<value name="Stop" value="0x00"></value>
<value name="Up" value="0x01"></value>
<value name="Down" value="0x03"></value>
</attribute>
<attribute id="0x0001" type="u16" name="Rate" required="m">
<description>Steps per second.</description>
</attribute>
</payload>
</command>
<command id="0x42" dir="recv" name="Enhanced step hue" required="m">
<payload>
<attribute id="0x0000" type="enum8" name="Step mode" required="m">
<value name="Up" value="0x01"></value>
<value name="Down" value="0x03"></value>
</attribute>
<attribute id="0x0001" type="u16" name="Step size" required="m"></attribute>
<attribute id="0x0002" type="u16" name="Transition time" required="m">
<description>The transitiontime in 1/10 seconds.</description>
</attribute>
</payload>
</command>
<command id="0x43" dir="recv" name="Enhanced move to hue and saturation" required="m">
<payload>
<attribute id="0x0000" type="u16" name="Enhanced hue" required="m"></attribute>
<attribute id="0x0001" type="u8" name="Saturation" required="m"></attribute>
<attribute id="0x0002" type="u16" name="Transition time" required="m">
<description>The transitiontime in 1/10 seconds.</description>
</attribute>
</payload>
</command>
<command id="0x44" dir="recv" name="Color loop set" required="m">
<payload>
<attribute id="0x0000" type="bmp8" name="Update flags" required="m">
<value name="Update action" value="0"></value>
<value name="Update direction" value="1"></value>
<value name="Update time" value="2"></value>
<value name="Update start hue" value="3"></value>
</attribute>
<attribute id="0x0001" type="enum8" name="Action" required="m">
<value name="De-activate color loop" value="0x00"></value>
<value name="Activate from ColorLoopStartEnhancedHue" value="0x01"></value>
<value name="Activate from EnhancedCurrentHue" value="0x02"></value>
</attribute>
<attribute id="0x0002" type="enum8" name="Direction" required="m">
<value name="Decrement hue" value="0x00"></value>
<value name="Increment hue" value="0x01"></value>
</attribute>
<attribute id="0x0003" type="u16" name="Time" required="m">
<description>Time in seconds used for a whole color loop.</description>
</attribute>
<attribute id="0x0004" type="u16" name="Start enhanced hue" required="m"></attribute>
</payload>
</command>
<command id="0x47" dir="recv" name="Stop move step" required="m">
<description>Stops move to and step commands. It has no effect on a active color loop.</description>
<payload>
</payload>
</command>
<command id="0x4b" dir="recv" name="Move color temperature" required="m">
<payload>
<attribute id="0x0000" type="enum8" name="Move mode" required="m">
<value name="Stop" value="0x00"></value>
<value name="Up" value="0x01"></value>
<value name="Down" value="0x03"></value>
</attribute>
<attribute id="0x0001" type="u16" name="Rate" required="m">
<description>Steps per second.</description>
</attribute>
<attribute id="0x0002" type="u16" name="Color temperature min" required="m">
<description>Specifies a lower bound on the color temperature for the current move operation.</description>
</attribute>
<attribute id="0x0003" type="u16" name="Color temperature max" required="m">
<description>Specifies a upper bound on the color temperature for the current move operation.</description>
</attribute>
</payload>
</command>
<command id="0x4c" dir="recv" name="Step color temperature" required="m">
<payload>
<attribute id="0x0000" type="enum8" name="Step mode" required="m">
<value name="Up" value="0x01"></value>
<value name="Down" value="0x03"></value>
</attribute>
<attribute id="0x0001" type="u16" name="Step size" required="m"></attribute>
<attribute id="0x0002" type="u16" name="Transition time" required="m">
<description>The transitiontime in 1/10 seconds.</description>
</attribute>
<attribute id="0x0003" type="u16" name="Color temperature min" required="m">
<description>Specifies a lower bound on the color temperature for the current step operation.</description>
</attribute>
<attribute id="0x0004" type="u16" name="Color temperature max" required="m">
<description>Specifies a upper bound on the color temperature for the current step operation.</description>
</attribute>
</payload>
</command>
<command id="0xd0" dir="recv" name="Set active channels" required="m">
<payload>
<attribute id="0x00" type="u8" name="Channels" required="m"></attribute>
</payload>
</command>
</server>
<client>
</client>
</cluster>
<cluster id="0x0301" name="Ballast Configuration">
<description>Attributes and commands to configure a ballast.</description>
<server>
<attribute-set id="0x0000" description="Ballast Information">
<attribute id="0x0000" name="Physical Min Level" type="u8" access="r" range="0x01,0xfe" default="0x01" required="o"></attribute>
<attribute id="0x0001" name="Physical Max Level" type="u8" access="r" range="0x01,0xfe" default="0xfe" required="o"></attribute>
<attribute id="0x0002" name="Ballast Status" type="bmp8" access="r" default="0x00" required="m">
<value name="Non-operational" value="0"></value>
<value name="Lamp not in socket" value="1"></value>
</attribute>
</attribute-set>
<attribute-set id="0x0010" description="Ballast Settings">
<attribute id="0x0010" name="Min Level" type="u8" access="rw" range="0x01,0xfe" default="0x01" required="o"></attribute>
<attribute id="0x0011" name="Max Level" type="u8" access="rw" range="0x01,0xfe" default="0xfe" required="o"></attribute>
<attribute id="0x0012" name="Power On Level" type="u8" access="rw" range="0x01,0xfe" default="0xfe" required="o"></attribute>
<attribute id="0x0013" name="Power On Fade Time" type="u16" access="rw" range="0x0000,0xfffe" default="0x0000" required="o"></attribute>
<attribute id="0x0014" name="Intrinsic Ballast Factor" type="u8" access="rw" range="0x00,0xfe" default="0x00" required="o"></attribute>
<attribute id="0x0015" name="Ballast Factor Adjustment" type="u8" access="rw" range="0x64,0xff" default="0xff" required="o"></attribute>
</attribute-set>
<attribute-set id="0x0020" description="Lamp Information">
<attribute id="0x0020" name="Lamp Quantity" type="u8" access="r" range="0x00,0xfe" default="0x00" required="o"></attribute>
</attribute-set>
<attribute-set id="0x0030" description="Lamp Settings">
<attribute id="0x0030" name="Lamp Type" type="cstring" access="rw" required="o"></attribute>
<attribute id="0x0031" name="Lamp Manufacturer" type="cstring" access="rw" required="o"></attribute>
<attribute id="0x0032" name="Lamp Rated Hours" type="u24" access="rw" range="0x000000,0xfffffe" default="0xffffff" required="o"></attribute>
<attribute id="0x0033" name="Lamp Burn Hours" type="u24" access="rw" range="0x000000,0xfffffe" default="0x000000" required="o"></attribute>
<attribute id="0x0034" name="Lamp Alarm Mode" type="bmp8" access="rw" default="0x00" required="m">
<value name="Lamp Burn Hours" value="0"></value>
</attribute>
<attribute id="0x0035" name="Lamp Burn Hours Trip Point" type="u24" access="rw" range="0x000000,0xfffffe" default="0x000000" required="o"></attribute>
</attribute-set>
</server>
<client>
</client>
</cluster>
</domain>
<domain name="Measurement and sensing" low_bound="0400" high_bound="04ff" description="The measurement and sensing functional domain contains clusters and information to build devices in the measurement and sensing domain, e.g. a temperature sensor or an occupancy sensor.">
<cluster id="0400" name="Illuminance measurement">
<description>The server cluster provides an interface to illuminance measurement functionality, including configuration and provision of notifications of illuminance measurements.</description>
<!-- TODO -->
<server>
<attribute-set id="000" description="Illuminance Measurement Information">
<attribute id="0000" name="Measured Value" type="u16" access="r" default="0" required="m"></attribute>
<attribute id="0001" name="Min Measured Value" type="u16" access="r" required="m" range="0x0002,0xfffd"></attribute>
<attribute id="0002" name="Max Measured Value" type="u16" access="r" required="m" range="0x0001,0x7ffe"></attribute>
<attribute id="0003" name="Tolerance" type="u16" access="r" required="o" range="0x0000,0x0800"></attribute>
<attribute id="0004" name="Light Sensor Type" type="enum8" range="0x00,0xff" access="r" required="o">
<value name="Photodiode" value="0x00"></value>
<value name="CMOS" value="0x01"></value>
<value name="Unknown" value="0xff"></value>
</attribute>
</attribute-set>
</server>
<client>
<attribute-set id="000" description="Illuminance Adjustement Configuration">
<attribute id="0xf000" name="Hysteresis" type="u16" access="rw" required="o"></attribute>
<attribute id="0xf001" name="Max Up Speed" type="u16" access="rw" required="o"><description>Maximum up adjustment speed in 1/10 seconds.</description></attribute>
<attribute id="0xf002" name="Max Down Speed" type="u16" access="rw" required="o"><description>Maximum down adjustment speed in 1/10 seconds.</description></attribute>
<attribute id="0xf003" name="Target Value" type="u16" access="rw" required="o"><description>Target value in Lux which should be kept.</description></attribute>
<attribute id="0xf004" name="Startup Type" type="enum8" access="rw" required="o">
<description>Brightness control startup type.</description>
<value name="Default Level" value="0x00"></value>
<value name="Zero Level" value="0x01"></value>
</attribute>
</attribute-set>
</client>
</cluster>
<cluster id="0401" name="Illuminance level sensing">
<description></description>
<!-- TODO -->
</cluster>
<cluster id="0402" name="Temperature measurement">
<description>The server cluster provides an interface to temperature measurement functionality, including configuration and provision of notifications of temperature measurements.</description>
<!-- TODO -->
<server>
<attribute-set id="000" description="Temperature Measurement Information">
<attribute id="0000" name="Measured Value" type="s16" access="r" default="0" required="m"></attribute>
<attribute id="0001" name="Min Measured Value" type="s16" access="r" required="m" range="0x954d,0x7ffe"></attribute>
<attribute id="0002" name="Max Measured Value" type="s16" access="r" required="m" range="0x954e,0x7ffe"></attribute>
<attribute id="0003" name="Tolerance" type="u16" access="r" required="o" range="0x0000,0x0800"></attribute>
</attribute-set>
</server>
<client>
</client>
</cluster>
<cluster id="0403" name="Pressure measurement">
<description></description>
<!-- TODO -->
<server>
</server>
<client>
</client>
</cluster>
<cluster id="0404" name="Flow measurement">
<description></description>
<!-- TODO -->
<server>
</server>
<client>
</client>
</cluster>
<cluster id="0405" name="Relative humidity measurement">
<description></description>
<server>
<attribute-set id="000" description="Relative Humidity Measurement Information">
<attribute id="0000" name="Measured Value" type="u16" access="r" default="0" required="m"></attribute>
<attribute id="0001" name="Min Measured Value" type="u16" access="r" required="m" range="0x954d,0x7ffe"></attribute>
<attribute id="0002" name="Max Measured Value" type="u16" access="r" required="m" range="0x954e,0x7ffe"></attribute>
<attribute id="0003" name="Tolerance" type="u16" access="r" required="o" range="0x0000,0x0800"></attribute>
</attribute-set>
</server>
<client>
</client>
</cluster>
<cluster id="0406" name="Occupancy sensing">
<description><!-- TODO --></description>
<server>
<attribute-set id="000" description="Occupancy sensor information">
<attribute id="0000" name="Occupancy" type="bmp8" range="0000000x" access="r" required="m"></attribute>
<attribute id="0001" name="Occupancy Sensor Type" type="enum8" range="0x00,0xfe" access="r" required="m">
<value name="PIR" value="0x00"></value>
<value name="Ultrasonic" value="0x01"></value>
<value name="PIR and ultrasonic" value="0x02"></value>
</attribute>
</attribute-set>
<attribute-set id="001" description="PIR configuration">
<attribute id="0010" name="PIR Occupied To Unoccupied Delay" type="u16" range="0x00,0xfffe" access="rw" required="o" default="0x00">
<description>The PIROccupiedToUnoccupiedDelay attribute is 16-bits in length and specifies the time delay, in seconds, before the PIR sensor changes to its occupied state when the sensed area becomes unoccupied. This attribute, along with PIRUnoccupiedToOccupiedTime, may be used to reduce sensor 'chatter' when used in an area where occupation changes frequently.</description>
</attribute>
<attribute id="0011" name="PIR Unoccupied To Occupied Delay" type="u16" range="0x00,0xfffe" access="rw" required="o" default="0x00">
<description>The PIRUnoccupiedToOccupiedDelay attribute is 16-bits in length and specifies the time delay, in seconds, before the PIR sensor changes to its unoccupied state when the sensed area becomes occupied.</description>
</attribute>
</attribute-set>
<attribute-set id="002" description="Ultrasonic configuration">
<attribute id="0020" name="Ultrasonic Occupied To Unoccupied Delay" type="u8" range="0x00,0xfe" access="rw" required="o" default="0x00">
<description>The UltraSonicOccupiedToUnoccupiedTime attribute specifies the time delay, in seconds, before the ultrasonic sensor changes to its occupied state when the sensed area becomes unoccupied. This attribute, along with UltraSonicUnoccupiedToOccupiedTime, may be used to reduce sensor 'chatter' when used in an area where occupation changes frequently.</description>
</attribute>
<attribute id="0021" name="Ultrasonic Unoccupied To Occupied Delay" type="u8" range="0x00,0xfe" access="rw" required="o" default="0x00">
<description>The UltraSonicUnoccupiedToOccupiedTime attribute specifies the time delay, in seconds, before the ultrasonic sensor changes to its unoccupied state when the sensed area becomes occupied.</description>
</attribute>
</attribute-set>
</server>
<client>
</client>
</cluster>
<cluster id="0x0b04" name="Electrical Measurement">
<description>Provides a mechanism for querying data about the electrical properties as measured by the de-
vice.</description>
<server>
<!-- TODO -->
</server>
<client>
</client>
</cluster>
<cluster id="0x0b05" name="Diagnostics">
<description>The diagnostics cluster provides access to information regarding the operation of the ZigBee stack over time.</description>
<server>
<attribute-set id="0x0000" description="Hardware Information">
<attribute id="0x0000" name="Number of Resets" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0001" name="Persistens Memory Writes" type="u16" access="r" required="o" default="0x0000"></attribute>
</attribute-set>
<attribute-set id="0x0100" description="Stack/Network Information">
<attribute id="0x0100" name="Mac Rx Bcast" type="u32" access="r" required="o" default="0x00000000"></attribute>
<attribute id="0x0101" name="Mac Tx Bcast" type="u32" access="r" required="o" default="0x00000000"></attribute>
<attribute id="0x0102" name="Mac Rx Ucast" type="u32" access="r" required="o" default="0x00000000"></attribute>
<attribute id="0x0103" name="Mac Tx Ucast" type="u32" access="r" required="o" default="0x00000000"></attribute>
<attribute id="0x0104" name="Mac Tx Ucast Retry" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0105" name="Mac Tx Ucast Fail" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0106" name="APS Rx Bcast" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0107" name="APS Tx Bcast" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0108" name="APS Rx Ucast" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0109" name="APS Tx Ucast Success" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x010a" name="APS Tx Ucast Retry" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x010b" name="APS Tx Ucast Fail" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x010c" name="Route Disc Initiated" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x010d" name="Neighbor Added" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x010e" name="Neighbor Removed" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x010f" name="Neighbor Stale" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0110" name="Join Indication" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0111" name="Child Moved" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0112" name="NWK FC Failure" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0113" name="APS FC Failure" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0114" name="APS Unauthorized Key" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0115" name="NWK Decrypt Failures" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0116" name="APS Decrypt Failures" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0117" name="Packet Buffer Alloc Failures" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0118" name="Relayed Ucast" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x0119" name="Phy to MAC queue limit reached" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x011a" name="Packet Validate Dropcount" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x011b" name="Avg MAC Retry per APS Msg Sent" type="u16" access="r" required="o" default="0x0000"></attribute>
<attribute id="0x011c" name="Last Message LQI" type="u8" access="r" required="o" default="0x00"></attribute>
<attribute id="0x011d" name="Last Message RSSI" type="s8" access="r" required="o" default="0x00"></attribute>
</attribute-set>
</server>
<client>
</client>
</cluster>
<cluster id="0x0500" name="IAS Zone">
<description>The IAS Zone cluster defines an interface to the functionality of an IAS security zone device. IAS Zone supports up totwo alarm types per zone, low battery reports and supervision of the IAS network.</description>
<server>
<attribute-set id="000" description="Zone information">
<attribute id="0x0000" name="Zone State" type="enum8" range="0x00,0x01" access="r" required="m">
<value name="Not enrolled" value="0x00"></value>
<value name="Enrolled" value="0x01"><description>The client will react to Zone
State Change Notification commands from the server.</description></value>
</attribute>
<attribute id="0x0001" name="Zone Type" type="enum16" range="0x0000,0xffff" access="r" required="m">
<value name="Standard CIE" value="0x0000"></value>
<value name="Motion sensor" value="0x000d"></value>
<value name="Contact switch" value="0x0015"></value>
<value name="Fire sensor" value="0x0028"></value>
<value name="Water sensor" value="0x002a"></value>
<value name="Gas sensor" value="0x002b"></value>
<value name="Personal emergency device" value="0x002c"></value>
<value name="Vibration / Movement sensor" value="0x002d"></value>
<value name="Remote Control" value="0x010f"></value>
<value name="Key fob" value="0x0115"></value>
<value name="Keypad" value="0x021d"></value>
<value name="Standard Warning Device" value="0x0225"></value>
<value name="Invalid Zone Type" value="0xffff"></value>
</attribute>
<attribute id="0x0002" type="bmp16" name="Zone Status" access="r" required="m">
<value name="Alarm 1" value="0"></value>
<value name="Alarm 2" value="1"></value>
<value name="Tamper" value="2"></value>
<value name="Battery" value="3"></value>
<value name="Supervision reports" value="4"></value>
<value name="Restore reports" value="5"></value>
<value name="Trouble" value="6"></value>
<value name="AC (mains)" value="7"></value>
<value name="Test" value="8"></value>
<value name="Battery defect" value="9"></value>
</attribute>
</attribute-set>
<attribute-set id="001" description="Zone settings">
<attribute id="0x0010" name="IAS_CIE_Address" type="uid" access="rw" required="o" default="0"></attribute>
<attribute id="0x0011" name="Zone ID" type="u8" range="0x00,0xff" access="r" required="m"></attribute>
</attribute-set>
<command id="0x00" dir="recv" name="Zone Enroll Response" required="m">
<payload>
<attribute id="0x00" type="enum16" name="Enroll response code" required="m">
<value name="Success" value="0x00"></value>
<value name="Not supported" value="0x01"></value>
<value name="No enroll permit" value="0x02"></value>
<value name="Too many zones" value="0x03"></value>
</attribute>
<attribute id="0x01" type="u8" name="Zone ID" required="m"></attribute>
</payload>
</command>
<command id="0x00" dir="send" name="Zone Status Change Notification" required="m">
<payload>
<attribute id="0x00" type="bmp16" name="Zone Status" required="m">
<value name="Alarm 1" value="0"></value>
<value name="Alarm 2" value="1"></value>
<value name="Tamper" value="2"></value>
<value name="Battery" value="3"></value>
<value name="Supervision reports" value="4"></value>
<value name="Restore reports" value="5"></value>
<value name="Trouble" value="6"></value>
<value name="AC (mains)" value="7"></value>
<value name="Test" value="8"></value>
<value name="Battery defect" value="9"></value>
</attribute>
<attribute id="0x01" type="u8" name="Extended Status" default="0x00" required="m"></attribute>
<attribute id="0x02" type="u8" name="Zone ID" required="m"></attribute>
<attribute id="0x03" type="u16" name="Delay" required="m"></attribute>
</payload>
</command>
<command id="0x01" dir="send" name="Zone Enroll request" required="m">
<payload>
<attribute id="0x00" type="enum16" name="Zone Status" required="m">
<value name="Standard CIE" value="0x0000"></value>
<value name="Motion sensor" value="0x000d"></value>
<value name="Contact switch" value="0x0015"></value>
<value name="Fire sensor" value="0x0028"></value>
<value name="Water sensor" value="0x002a"></value>
<value name="Gas sensor" value="0x002b"></value>
<value name="Personal emergency device" value="0x002c"></value>
<value name="Vibration / Movement sensor" value="0x002d"></value>
<value name="Remote Control" value="0x010f"></value>
<value name="Key fob" value="0x0115"></value>
<value name="Keypad" value="0x021d"></value>
<value name="Standard Warning Device" value="0x0225"></value>
<value name="Invalid Zone Type" value="0xffff"></value>
</attribute>
<attribute id="0x01" type="u16" name="Manufacturer Code" required="m"></attribute>
</payload>
</command>
</server>
<client>
</client>
</cluster>
</domain>
<domain name="Security and safety" low_bound="0500" high_bound="05ff" description="The security and safety functional domain contains clusters and information to build devices in the security and safety domain, e.g. alarm units.">
</domain>
<domain name="Protocol interfaces" low_bound="0600" high_bound="06ff" description="The protocol interfaces functional domain contains clusters and information to build devices to interface to other protocols, e.g. BACnet.">
</domain>
<domain name="Smart energy" low_bound="0700" high_bound="07ff" description="TODO Smart Energy Description">
<cluster id="0700" name="Price">
<description>The Price Cluster provides the mechanism for communicating Gas, Energy, or Water pricing information within the premise. This pricing information is distributed to the ESP from either the utilities or from regional energy providers.</description>
<server>
<attribute id="0000" name="Tier1 Price Label" type="ostring" access="rw" required="o" range="0,12" default="Tier1"></attribute>
<attribute id="0001" name="Tier2 Price Label" type="ostring" access="rw" required="o" range="0,12" default="Tier2"></attribute>
<attribute id="0002" name="Tier3 Price Label" type="ostring" access="rw" required="o" range="0,12" default="Tier3"></attribute>
<attribute id="0003" name="Tier4 Price Label" type="ostring" access="rw" required="o" range="0,12" default="Tier4"></attribute>
<attribute id="0004" name="Tier5 Price Label" type="ostring" access="rw" required="o" range="0,12" default="Tier5"></attribute>
<attribute id="0005" name="Tier6 Price Label" type="ostring" access="rw" required="o" range="0,12" default="Tier6"></attribute>
<command id="00" dir="recv" name="Get Current Price" required="m">
<payload>
<attribute id="0x0000" type="bmp8" name="Command Options" required="m">
<value name="Requestor Rx On When Idle" value="0x00"/>
</attribute>
</payload>
</command>
<command id="01" dir="recv" name="Get Scheduled Prices" required="o">
<payload>
<attribute id="0x0000" type="utc" name="Start Time" required="m"></attribute>
<attribute id="0x0001" type="u8" name="Number of Events" required="m"></attribute>
</payload>
</command>
</server>
<client>
<!-- TODO -->
</client>
</cluster>
<cluster id="0701" name="Demand Response and Load Control">
<description>This cluster provides an interface to the functionality of Smart Energy Demand Response and Load Control. Devices targeted by this cluster include thermostats and devices that support load control.</description>
<client>
<attribute id="0000" name="Utility Enrolment Group" type="u8" access="rw" default="0" range="0x00,0xff" required="m"></attribute>
<attribute id="0001" name="Start Randomize Minutes" type="u8" access="rw" default="0x1e" range="0x00,0x3c" required="m"></attribute>
<attribute id="0002" name="Stop Randomize Minutes" type="u8" access="rw" default="0x1e" range="0x00,0x3c" required="m"></attribute>
<attribute id="0003" name="Device Class Value" type="u16" access="r" default="0x1e" range="0x00,0xff" required="m"></attribute>
</client>
<server>
<!-- TODO -->
</server>
</cluster>
<cluster id="0702" name="Simple Metering">
<description>The Simple Metering Cluster provides a mechanism to retrieve usage information from Electric, Gas, Water, and potentially Thermal metering devices. These
devices can operate on either battery or mains power, and can have a wide variety of sophistication.</description>
<server>
<attribute-set id="00" description="Reading Information Set">
<attribute id="0000" name="Curren Summation Delivered" type="u48" access="r" required="m"></attribute>
<!-- TODO -->
</attribute-set>
<attribute-set id="01" description="TOU Information Set">
<!-- TODO -->
</attribute-set>
<attribute-set id="02" description="Meter Status">
<attribute id="0200" name="Status" type="bmp8" default="00000000" access="r" required="m">
<value name="Check Meter" value="0"></value>
<value name="Low Battery" value="1"></value>
<value name="Tamper Detect" value="2"></value>
<value name="Power Failure" value="3"></value>
<value name="Power Quality" value="4"></value>
<value name="Leak Detect" value="5"></value>
<value name="Service Disconnect Open" value="6"></value>
</attribute>
</attribute-set>
<attribute-set id="03" description="Formatting">
<attribute id="0300" name="Unit of Measure" type="enum8" default="0" access="r" required="m">
<value name="kW &amp; kWh binary" value="0"></value>
<value name="m³ &amp; m³/h binary" value="1"></value>
<value name="ft³ &amp; ft³/h binary" value="2"></value>
<value name="ccf &amp; ccf/h binary" value="3"></value>
<value name="US gl &amp; Us gl/h binary" value="4"></value>
<value name="IMP gl &amp; IMP gl/h binary" value="5"></value>
<value name="BTUs &amp; BTU/h binary" value="6"></value>
<value name="Liters &amp; l/h binary" value="7"></value>
<value name="kPA(gauge) binary" value="8"></value>
<value name="kPA(absolute) binary" value="9"></value>
<value name="kW &amp; kWh BCD" value="80"></value>
<value name="m³ &amp; m³/h BCD" value="81"></value>
<value name="ft³ &amp; ft³/h BCD" value="82"></value>
<value name="ccf &amp; ccf/h BCD" value="83"></value>
<value name="US gl &amp; Us gl/h BCD" value="84"></value>
<value name="IMP gl &amp; IMP gl/h BCD" value="85"></value>
<value name="BTUs &amp; BTU/h BCD" value="86"></value>
<value name="Liters &amp; l/h BCD" value="87"></value>
<value name="kPA(gauge) BCD" value="88"></value>
<value name="kPA(absolute) BCD" value="89"></value>
</attribute>
<!-- TODO -->
<attribute id="0303" name="Summation Formatting" type="bmp8" access="r" required="m">
<value name="Number Digits Right" description="Number of Digets to the right of the Decimal Point" value="0,2"></value>
<value name="Number Digits Left" description="Number of Digets to the left of the Decimal Point" value="3,6"></value>
<value name="Surpress Leading Zeros" value="7"></value>
</attribute>
<!-- TODO -->
<attribute id="0306" name="Metering Device Type" type="enum8" access="r" required="m">
<value name="Electric Metering" value="0"></value>
<value name="Gas Metering" value="1"></value>
<value name="Water Metering" value="2"></value>
<value name="Thermal Metering" value="3"></value>
<value name="Pressure Metering" value="4"></value>
<value name="Heat Metering" value="5"></value>
<value name="Cooling Metering" value="6"></value>
<value name="Mirrored Gas Metering" value="128"></value>
<value name="Mirrored Water Metering" value="129"></value>
<value name="Mirrored Thermal Metering" value="130"></value>
<value name="Mirrored Pressure Metering" value="131"></value>
<value name="Mirrored Heat Metering" value="132"></value>
<value name="Mirrored Cooling Metering" value="133"></value>
</attribute>
<!-- TODO -->
</attribute-set>
<attribute-set id="04" description="ESP Historical Consumption">
</attribute-set>
<attribute-set id="05" description="Load Profile Configuration">
</attribute-set>
<attribute-set id="06" description="Supply Limit">
</attribute-set>
<!-- TODO -->
<!-- dont support generated commands yet
<command id="01" dir="send" name="Get Profile Response" required="o">
<payload>
<field type="utc" name="End Time">
</field>
<field type="enum8" name="Status">
<value name="Success" value="0x00"/>
<value name="Undefined Interval Channel requested" value="0x01"/>
<value name="Interval Channel not supported" value="0x02"/>
<value name="Invalid End Time" value="0x03"/>
<value name="More periods requested then can be returned" value="0x04"/>
<value name="No intervals available for the requested time" value="0x05"/>
</field>
<field type="enum8" name="Profile Interval Period">
<value name="Daily" value="0"/>
<value name="60 minutes" value="1"/>
<value name="30 minutes" value="2"/>
<value name="15 minutes" value="3"/>
<value name="10 minutes" value="4"/>
<value name="7.5 minutes" value="5"/>
<value name="5 minutes" value="6"/>
<value name="2.5 minutes" value="7"/>
</field>
<field type="u8" name="Number Of Periods Delivered">
</field>
<field type="u24" name="Intervals" list="true">
</field>
</payload>
</command>
-->
<command id="00" dir="recv" name="Get Profile" required="o">
<payload>
<attribute id="0x0000" type="u8" name="Interval Channel" required="m">
<value name="Consumption Delivered" value="0x00"/>
<value name="Consumption Received" value="0x01"/>
</attribute>
<attribute id="0x0001" type="utc" name="End Time" required="m"></attribute>
<attribute id="0x0002" type="u8" name="Number Of Periods" required="m"></attribute>
</payload>
</command>
<command id="01" dir="recv" name="Request Mirror Response" required="o">
<payload>
<attribute id="0x0000" type="u16" name="EndPoint ID" range="0x0001,0x00f0" required="m"></attribute>
</payload>
</command>
<command id="02" dir="recv" name="Mirror Removed" required="o">
<payload>
<attribute id="0x0000" type="u16" name="Removed EndPoint ID" range="0x0001,0x00f0" required="m"></attribute>
</payload>
</command>
</server>
<client>
<!-- TODO -->
</client>
</cluster>
<cluster id="0703" name="Message">
<description>This cluster provides an interface for passing text messages between ZigBee devices.</description>
<server>
</server>
<client>
</client>
<!-- TODO -->
</cluster>
<cluster id="0704" name="Smart Energy Tunneling (Complex Metering)">
<description></description>
<!-- TODO -->
</cluster>
<cluster id="0705" name="Prepayment">
<description></description>
<!-- TODO -->
</cluster>
</domain>
<domain name="Light Link" useZcl="true"
description="The light link domain contains clusters and information that provides ZLL specific functions and attributes.">
<cluster id="0x1000" name="ZLL commissioning">
<description>Attributes and commands for ZLL commissioning.</description>
<server>
<command id="0x41" dir="recv" name="Get group identifiers" required="m" response="0x41">
<description>The get group identifiers request command is used to retrieve the actual group identifiers that the endpoint is using in its multicast communication in controlling different (remote) devices.</description>
<payload>
<attribute id="0x0000" type="u8" name="Start index" showas="dec" required="m" default="0"></attribute>
</payload>
</command>
<command id="0x42" dir="recv" name="Get endpoint list" required="m" response="0x42">
<description>The get endpoint list request command is used to retrieve addressing information for each endpoint the device is using in its unicast communication in controlling different (remote) devices.</description>
<payload>
<attribute id="0x0000" type="u8" name="Start index" showas="dec" required="m" default="0"></attribute>
</payload>
</command>
<command id="0xd0" dir="recv" name="Write MAC address" required="m" vendor="0x1135">
<description>Non standard write MAC address (DDEL).</description>
<payload>
<attribute id="0x0000" type="u64" name="MAC address" showas="hex" required="m" default="0"></attribute>
</payload>
</command>
</server>
<client>
<command id="0x41" dir="recv" name="Get group identifiers response" required="m">
<description>The get group identifiers response command allows a remote device to respond to the get group identifiers request command.</description>
<payload>
<attribute id="0x0000" type="u8" name="Total" required="m" default="0"></attribute>
<attribute id="0x0001" type="u8" name="Start index" required="m" default="0"></attribute>
<attribute id="0x0002" type="u8" name="Count" required="m" default="0"></attribute>
<!-- TODO this will display only first item of the list -->
<attribute id="0x0003" type="u16" name="First group ID" showas="hex" required="m" default="0x0000"></attribute>
<attribute id="0x0004" type="u8" name="First group type" showas="hex" required="m" default="0x00"></attribute>
</payload>
</command>
<command id="0x42" dir="recv" name="Get endpoint list response" required="m">
<description>The get group identifiers response command allows a remote device to respond to the get group identifiers request command.</description>
<payload>
<attribute id="0x0000" type="u8" name="Total" required="m" default="0"></attribute>
<attribute id="0x0001" type="u8" name="Start index" required="m" default="0"></attribute>
<attribute id="0x0002" type="u8" name="Count" required="m" default="0"></attribute>
<!-- TODO this will display only first item of the list -->
<attribute id="0x0003" type="u16" name="NWK address" showas="hex" required="m" default="0x0000"></attribute>
<attribute id="0x0004" type="u8" name="Endpoint" showas="hex" required="m" default="0x00"></attribute>
<attribute id="0x0005" type="u16" name="Profile ID" showas="hex" required="m" default="0x0000"></attribute>
<attribute id="0x0006" type="u16" name="Device ID" showas="hex" required="m" default="0x0000"></attribute>
<attribute id="0x0007" type="u8" name="Version" showas="hex" required="m" default="0x00"></attribute>
</payload>
</command>
</client>
</cluster>
</domain>
<domain name="Green Power" useZcl="true"
description="The green power domain contains clusters and information that provides ZGP specific functions and attributes.">
<cluster id="0x0021" name="Green Power">
<description>Attributes and commands.</description>
<server>
</server>
<client>
</client>
</cluster>
</domain>
<profile id="0104" name="Home Automation" description="This profile defines device descriptions and standard practices for applications needed in a residential or light commercial environment. Installation scenarios range from a single room to an entire home up to 20,000 square feet (approximately 1850m2)." version="1.0" rev="25" icon="ha.png">
<domain-ref name="General" low_bound="0000" />
<domain-ref name="Measurement and Sensing" low_bound="0400" />
<domain-ref name="Lighting" low_bound="0300" />
<domain-ref name="HVAC" low_bound="0200" />
<domain-ref name="Closures" low_bound="0100" />
<domain-ref name="Security and Safety" low_bound="0500" />
<domain-ref name="Smart Energy" low_bound="0x0700" />
<domain-ref name="Light Link" low_bound="1000" />
<device id="0x0010" name="On/off plug-in unit" description=""></device>
<device id="0x0100" name="Dimmable light" description="" icon="dev-on-off-light.png"></device>
<device id="0x0110" name="Dimmable plug-in unit" description="" icon="dev-on-off-light.png"></device>
<device id="0x0200" name="Color light" description="" icon="dev-on-off-light.png"></device>
<device id="0x0210" name="Extended color light" description="" icon="dev-on-off-light.png"></device>
<device id="0x0220" name="Color temperature light" description="" icon="dev-on-off-light.png"></device>
<device id="0x0800" name="Color controller" description=""></device>
<device id="0x0810" name="Color scene controller" description=""></device>
<device id="0x0820" name="Non color controller" description=""></device>
<device id="0x0830" name="Non color scene controller" description=""></device>
<device id="0x0840" name="Control bridge" description=""></device>
<device id="0x0850" name="On/off sensor" description=""></device>
</profile>
<profile id="0109" name="Smart Energy" description="This profile defines device descriptions and standard practices for Demand Response and Load Management 'Smart Energy' applications needed in a Smart Energy based residential or light commercial environment." version="1.0" rev="15" icon="se.png">
<domain-ref name="General" low_bound="0000" />
<domain-ref name="Smart Energy" low_bound="0700" />
</profile>
<profile id="0xc05e" name="Light Link" description="This profile defines device descriptions and standard practices for ZigBee Light Link." version="1.0" rev="15" icon="zll.png">
<domain-ref name="General" low_bound="0000" />
<domain-ref name="Light Link" low_bound="1000" />
<domain-ref name="Lighting" low_bound="0300" />
<domain-ref name="Measurement and Sensing" low_bound="0400" />
<device id="0x0000" name="On/off light" description="" icon="dev-on-off-light.png"></device>
<device id="0x0010" name="On/off plug-in unit" description=""></device>
<device id="0x0100" name="Dimmable light" description="" icon="dev-on-off-light.png"></device>
<device id="0x0110" name="Dimmable plug-in unit" description="" icon="dev-on-off-light.png"></device> -->
<device id="0x0200" name="Color light" description="" icon="dev-on-off-light.png"></device>
<device id="0x0210" name="Extended color light" description="" icon="dev-on-off-light.png"></device>
<device id="0x0220" name="Color temperature light" description="" icon="dev-on-off-light.png"></device>
<device id="0x0800" name="Color controller" description=""></device>
<device id="0x0810" name="Color scene controller" description=""></device>
<device id="0x0820" name="Non color controller" description=""></device>
<device id="0x0830" name="Non color scene controller" description=""></device>
<device id="0x0840" name="Control bridge" description=""></device>
<device id="0x0850" name="On/off sensor" description=""></device>
</profile>
<profile id="0xa1e0" name="Green Power" description="This profile defines device descriptions and standard practices for ZigBee Green Power." version="1.1" rev="15" icon="zll.png">
<domain-ref name="Green Power" low_bound="0x0021" />
</profile>
<devices>
<!-- Generic -->
<device id="0000" name="On/Off Switch" description="" icon="dev-on-off-switch.png">
</device>
<device id="0001" name="Level Control Switch">
<description></description>
</device>
<device id="0002" name="On/Off Output">
<description></description>
</device>
<device id="0003" name="Level Controllable Output">
<description></description>
</device>
<device id="0004" name="Scene Selector">
<description></description>
</device>
<device id="0005" name="Configuration Tool" description="" icon="dev-configuration-tool.png">
</device>
<device id="0006" name="Remote Control">
<description></description>
</device>
<device id="0007" name="Combined Interface" description="" icon="dev-combined-interface.svg">
</device>
<device id="0008" name="Range Extender" icon="dev-range-extender.png">
<description></description>
</device>
<device id="0009" name="Mains Power Outlet">
<description></description>
</device>
<!-- Lighting -->
<device id="0100" name="On/Off Light" icon="dev-on-off-light.png">
<description></description>
</device>
<device id="0101" name="Dimmable Light" icon="dev-on-off-light.png">
<description></description>
</device>
<device id="0102" name="Color Dimmable Light" icon="dev-on-off-light.png">
<description></description>
</device>
<device id="0103" name="On/Off Light Switch" icon="dev-on-off-switch.png">
<description></description>
</device>
<device id="0104" name="Dimmer Switch">
<description></description>
</device>
<device id="0105" name="Color Dimmer Switch">
<description></description>
</device>
<device id="0106" name="Light Sensor" icon="dev-light-sensor.jpg">
<description></description>
</device>
<device id="0107" name="Occupancy Sensor">
<description></description>
</device>
<!-- Closures -->
<device id="0200" name="Shade">
<description></description>
</device>
<device id="0201" name="Shade Controller">
<description></description>
</device>
<!-- HVAC -->
<device id="0300" name="Heating/Cooling Unit">
<description></description>
</device>
<device id="0301" name="Thermostat" description="" icon="dev-thermostat.png">
</device>
<device id="0302" name="Temperature Sensor" icon="dev-temperature-sensor.png">
<description></description>
</device>
<device id="0303" name="Pump">
<description></description>
</device>
<device id="0304" name="Pump Controller">
<description></description>
</device>
<device id="0305" name="Pressure Sensor">
<description></description>
</device>
<device id="0306" name="Flow Sensor">
<description></description>
</device>
<!-- Intruder Alarm Systems -->
<device id="0400" name="IAS Control and Indicating Equipment">
<description></description>
</device>
<device id="0401" name="IAS Ancillary Control Equipment">
<description></description>
</device>
<device id="0402" name="IAS Zone">
<description></description>
</device>
<device id="0403" name="IAS Warning Device">
<description></description>
</device>
<!-- Smart Energy -->
<device id="0500" name="Energy Service Portal">
<description></description>
</device>
<device id="0501" name="Metering Device">
<description></description>
</device>
<device id="0502" name="In-Premise Display">
<description></description>
</device>
<device id="0503" name="Programmable Communicating Thermostat (PCT)" description="" icon="dev-prog-thermostat.png">
</device>
<device id="0504" name="Load Control Device">
<description></description>
</device>
<device id="0505" name="Smart Appliance">
<description></description>
</device>
<device id="0506" name="Prepayment Terminal">
<description></description>
</device>
<device id="0x0507" name="Device Management">
<description></description>
</device>
</devices>
</zcl>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment