blob: 17822b647b7e1e594962038f97d799028389cba6 [file]
<?xml version="1.0"?>
<!--
Zigbee Alliance owns the copyright to the text and content displayed or
included in this document (including in PDF, XML files and other formats) in
all forms of media, which copyright is protected by the copyright laws of the
United States and by international treaties. Full text of licensing terms
applicable to this document can be found in the LICENSE.md file.
-->
<zcl:cluster
xmlns:zcl="http://zigbee.org/zcl/clusters"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:type="http://zigbee.org/zcl/types"
xmlns:xi="http://www.w3.org/2001/XInclude"
xsi:schemaLocation="http://zigbee.org/zcl/clusters cluster.xsd http://zigbee.org/zcl/types type.xsd"
id="0008" revision="2" name="Level">
<classification role="application" picsCode="LVL" primaryTransaction="1" />
<type:type short="LevelOptions" name="LevelOptions" id="18" inheritsFrom="map8">
<bitmap>
<element name="ExecuteIfOff" type="bool" mask="01" />
<!-- Used in Level Control for Lighting -->
<element name="CoupleColorTempToLevel" type="bool" mask="02" shiftRight="1" />
</bitmap>
</type:type>
<type:type short="MoveStepMode" name="MoveStepMode" id="30" inheritsFrom="enum8">
<restriction>
<type:enumeration value="00" name="Up" />
<type:enumeration value="01" name="Down" />
</restriction>
</type:type>
<server>
<attributes>
<attribute id="0000" name="CurrentLevel" type="uint8" reportRequired="true" sceneRequired="true" default="255" required="true">
<restriction>
<type:minInclusiveRef ref="MinLevel" />
<type:maxInclusiveRef ref="MaxLevel" />
</restriction>
</attribute>
<attribute id="0001" name="RemainingTime" type="uint16" max="65535" default="0" />
<attribute id="0002" name="MinLevel" type="uint8" default="0">
<restriction>
<type:maxInclusiveRef ref="MaxLevel" />
</restriction>
</attribute>
<attribute id="0003" name="MaxLevel" type="uint8" max="255" default="255">
<restriction>
<type:minInclusiveRef ref="MinLevel" />
</restriction>
</attribute>
<attribute id="0004" name="CurrentFrequency" type="uint16" reportRequired="true" sceneRequired="true" default="0">
<restriction>
<type:minInclusiveRef ref="MinFrequency" />
<type:maxInclusiveRef ref="MaxFrequency" />
</restriction>
</attribute>
<attribute id="0005" name="MinFrequency" type="uint16" default="0">
<restriction>
<type:maxInclusiveRef ref="MaxFrequency" />
</restriction>
</attribute>
<attribute id="0006" name="MaxFrequency" type="uint16" max="65535" default="0">
<restriction>
<type:minInclusiveRef ref="MinFrequency" />
</restriction>
</attribute>
<attribute id="0010" name="OnOffTransitionTime" type="uint16" max="65535" writable="true" default="0" />
<attribute id="0011" name="OnLevel" type="uint8" writable="true" default="255">
<restriction>
<type:minInclusiveRef ref="MinLevel" />
<type:maxInclusiveRef ref="MaxLevel" />
</restriction>
</attribute>
<attribute id="0012" name="OnTransitionTime" type="uint16" max="65534" writable="true" default="65535" />
<attribute id="0013" name="OffTransitionTime" type="uint16" max="65534" writable="true" default="65535" />
<attribute id="0014" name="DefaultMoveRate" type="uint16" max="254" writable="true" />
<attribute id="000F" name="Options" type="LevelOptions" writable="true" default="0" />
<attribute id="4000" name="StartUpCurrentLevel" type="uint8" max="255" writable="true">
<restriction>
<type:special value="00" name="MinimumDeviceValuePermitted" />
<type:enumeratedRange min="01" max="fe" />
<type:special value="ff" name="SetToPreviousValue" />
</restriction>
</attribute>
</attributes>
<commands>
<command id="00" name="MoveToLevel" required="true">
<fields>
<field name="Level" type="uint8" />
<field name="TransitionTime" type="uint16" />
<field name="OptionsMask" type="LevelOptions" />
<field name="OptionsOverride" type="LevelOptions" />
</fields>
</command>
<command id="01" name="Move" required="true">
<fields>
<field name="MoveMode" type="MoveStepMode" />
<field name="Rate" type="uint8" />
<field name="OptionsMask" type="LevelOptions" />
<field name="OptionsOverride" type="LevelOptions" />
</fields>
</command>
<command id="02" name="Step" required="true">
<fields>
<field name="StepMode" type="MoveStepMode" />
<field name="StepSize" type="uint8" />
<field name="TransitionTime" type="uint16" />
<field name="OptionsMask" type="LevelOptions" />
<field name="OptionsOverride" type="LevelOptions" />
</fields>
</command>
<command id="03" name="Stop" required="true">
<fields>
<field name="OptionsMask" type="LevelOptions" />
<field name="OptionsOverride" type="LevelOptions" />
</fields>
</command>
<command id="04" name="MoveToLevelWithOnOff" required="true">
<fields>
<field name="Level" type="uint8" />
<field name="TransitionTime" type="uint16" />
<field name="OptionsMask" type="LevelOptions" />
<field name="OptionsOverride" type="LevelOptions" />
</fields>
</command>
<command id="05" name="MoveWithOnOff" required="true">
<fields>
<field name="MoveMode" type="MoveStepMode" />
<field name="Rate" type="uint8" />
<field name="OptionsMask" type="LevelOptions" />
<field name="OptionsOverride" type="LevelOptions" />
</fields>
</command>
<command id="06" name="StepWithOnOff" required="true">
<fields>
<field name="StepMode" type="MoveStepMode" />
<field name="StepSize" type="uint8" />
<field name="TransitionTime" type="uint16" />
<field name="OptionsMask" type="LevelOptions" />
<field name="OptionsOverride" type="LevelOptions" />
</fields>
</command>
<command id="07" name="StopWithOnOff" required="true">
<fields>
<field name="OptionsMask" type="LevelOptions" />
<field name="OptionsOverride" type="LevelOptions" />
</fields>
</command>
<command id="08" name="MoveToClosestFrequency" requiredIf="defined(CurrentFrequency)">
<fields>
<field name="Frequency" type="uint16" />
</fields>
</command>
</commands>
</server>
</zcl:cluster>