# LevelControl


```
@Generated(value = ["GoogleHomePlatformCodegen"])
interface LevelControl : LevelControlTrait.Attributes, MatterTrait, Updatable, LevelControlCommands
```

<br />

*** ** * ** ***

API for the LevelControl trait. This trait provides an interface for controlling a characteristic of a device that can be set to a level.

## Summary

| ### Nested types |
|---|
| `enum https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControl.Attribute : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html, https://developers.home.google.com/reference/kotlin/com/google/home/Field` Descriptor enum for this trait's attributes. |
| `enum https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControl.Command : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html` Descriptor enum for this trait's commands. |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControl#supports(com.google.home.matter.standard.LevelControl.Attribute)(attribute: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControl.Attribute)` |
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControl#supports(com.google.home.matter.standard.LevelControl.Command)(command: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControl.Command)` |

| ### Public properties |
|---|---|
| `open https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControl>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControl#factory()` |

| ### Inherited functions |
|---|
| From [com.google.home.matter.standard.LevelControlCommands](https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands) |---|---| | `suspend https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#move(com.google.home.matter.standard.LevelControlTrait.MoveModeEnum,kotlin.UByte,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( moveMode: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.MoveModeEnum, rate: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html?, optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` Change a device's level based on a rate of movement. | | `https://developers.home.google.com/reference/kotlin/com/google/home/BatchableCommand<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#moveBatchable(com.google.home.matter.standard.LevelControlTrait.MoveModeEnum,kotlin.UByte,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( moveMode: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.MoveModeEnum, rate: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html?, optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` The batchable version of `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#move(com.google.home.matter.standard.LevelControlTrait.MoveModeEnum,kotlin.UByte,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)` command. | | `suspend https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#moveToClosestFrequency(kotlin.UShort)(frequency: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html)` Change a device's current frequency. | | `https://developers.home.google.com/reference/kotlin/com/google/home/BatchableCommand<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#moveToClosestFrequencyBatchable(kotlin.UShort)(frequency: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html)` The batchable version of `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#moveToClosestFrequency(kotlin.UShort)` command. | | `suspend https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#moveToLevel(kotlin.UByte,kotlin.UShort,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( level: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html, transitionTime: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?, optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` Move a device from its current level to the provided level. | | `https://developers.home.google.com/reference/kotlin/com/google/home/BatchableCommand<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#moveToLevelBatchable(kotlin.UByte,kotlin.UShort,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( level: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html, transitionTime: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?, optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` The batchable version of `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#moveToLevel(kotlin.UByte,kotlin.UShort,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)` command. | | `suspend https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#moveToLevelWithOnOff(kotlin.UByte,kotlin.UShort,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( level: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html, transitionTime: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?, optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` Move a device from its current level to the provided level and toggle the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOffTrait.Attributes#onOff()` attribute of the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOff` cluster depending on the end value of `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentLevel()`. | | `https://developers.home.google.com/reference/kotlin/com/google/home/BatchableCommand<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#moveToLevelWithOnOffBatchable(kotlin.UByte,kotlin.UShort,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( level: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html, transitionTime: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?, optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` The batchable version of `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#moveToLevelWithOnOff(kotlin.UByte,kotlin.UShort,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)` command. | | `suspend https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#moveWithOnOff(com.google.home.matter.standard.LevelControlTrait.MoveModeEnum,kotlin.UByte,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( moveMode: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.MoveModeEnum, rate: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html?, optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` Move a device's level based on a rate of movement and toggle the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOffTrait.Attributes#onOff()` attribute of the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOff` cluster depending on the end value of `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentLevel()`. | | `https://developers.home.google.com/reference/kotlin/com/google/home/BatchableCommand<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#moveWithOnOffBatchable(com.google.home.matter.standard.LevelControlTrait.MoveModeEnum,kotlin.UByte,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( moveMode: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.MoveModeEnum, rate: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html?, optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` The batchable version of `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#moveWithOnOff(com.google.home.matter.standard.LevelControlTrait.MoveModeEnum,kotlin.UByte,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)` command. | | `suspend https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#step(com.google.home.matter.standard.LevelControlTrait.StepModeEnum,kotlin.UByte,kotlin.UShort,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( stepMode: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.StepModeEnum, stepSize: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html, transitionTime: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?, optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` Move a device's level a specific amount over a period of time. | | `https://developers.home.google.com/reference/kotlin/com/google/home/BatchableCommand<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#stepBatchable(com.google.home.matter.standard.LevelControlTrait.StepModeEnum,kotlin.UByte,kotlin.UShort,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( stepMode: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.StepModeEnum, stepSize: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html, transitionTime: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?, optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` The batchable version of `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#step(com.google.home.matter.standard.LevelControlTrait.StepModeEnum,kotlin.UByte,kotlin.UShort,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)` command. | | `suspend https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#stepWithOnOff(com.google.home.matter.standard.LevelControlTrait.StepModeEnum,kotlin.UByte,kotlin.UShort,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( stepMode: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.StepModeEnum, stepSize: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html, transitionTime: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?, optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` Move a device's level a specific amount over a period of time and toggle the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOffTrait.Attributes#onOff()` attribute of the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOff` cluster depending on the end value of `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentLevel()`. | | `https://developers.home.google.com/reference/kotlin/com/google/home/BatchableCommand<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#stepWithOnOffBatchable(com.google.home.matter.standard.LevelControlTrait.StepModeEnum,kotlin.UByte,kotlin.UShort,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( stepMode: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.StepModeEnum, stepSize: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html, transitionTime: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?, optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` The batchable version of `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#stepWithOnOff(com.google.home.matter.standard.LevelControlTrait.StepModeEnum,kotlin.UByte,kotlin.UShort,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)` command. | | `suspend https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#stop(com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` Terminate a `Move`, `MoveToLevel`, or `Step` command (including their `OnOff` variants) currently in progress, and sets the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#remainingTime()` attribute to `0`. | | `https://developers.home.google.com/reference/kotlin/com/google/home/BatchableCommand<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#stopBatchable(com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` The batchable version of `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#stop(com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)` command. | | `suspend https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#stopWithOnOff(com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` Terminate a `Move`, `MoveToLevel`, or `Step` command (including their `OnOff` variants) currently in progress, and sets the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#remainingTime()` attribute to `0`. | | `https://developers.home.google.com/reference/kotlin/com/google/home/BatchableCommand<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#stopWithOnOffBatchable(com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)( optionsMask: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap, optionsOverride: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap )` The batchable version of `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#stopWithOnOff(com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)` command. | |
| From [com.google.home.matter.standard.LevelControlTrait.Attributes](https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes) |---|---| | `open https://developers.home.google.com/reference/kotlin/com/google/home/StructDescriptor` | `@https://developers.home.google.com/reference/kotlin/com/google/home/annotation/HomeExperimentalGenericApi https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#getDescriptor()()` Returns the descriptor for the struct. | | `open https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html?` | `@https://developers.home.google.com/reference/kotlin/com/google/home/annotation/HomeExperimentalGenericApi https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#getFieldValueById(kotlin.UInt)(tagId: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-int/index.html)` Returns the value of the field for the given tag ID. | |
| From [com.google.home.TraitStateInvalidation](https://developers.home.google.com/reference/kotlin/com/google/home/TraitStateInvalidation) |---|---| | `suspend https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/TraitStateInvalidation#forceRead()()` | |
| From [com.google.home.Updatable](https://developers.home.google.com/reference/kotlin/com/google/home/Updatable) |---|---| | `suspend https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControl` | `https://developers.home.google.com/reference/kotlin/com/google/home/Updatable#update(kotlin.Function1,kotlin.Function1)(optimisticReturn: (https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControl) -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html, init: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.MutableAttributes.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` Creates a mutable copy of an object and calls the given function to mutate it, then saves it and returns a new immutable copy with the updated state. | |

| ### Inherited properties |
|---|
| From [com.google.home.matter.standard.LevelControlTrait.Attributes](https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes) |---|---| | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-int/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#acceptedCommandList()` A list of client-generated commands which are supported by this cluster server instance. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-int/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#attributeList()` A list of the attribute IDs of the attributes supported by the cluster instance. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#clusterRevision()` The revision of the server cluster specification supported by the cluster instance. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentFrequency()` The frequency at which the device is at `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentLevel()`. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentLevel()` The current level of the device, which is device dependent. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#defaultMoveRate()` The movement rate (in units per second) when a `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlCommands#move(com.google.home.matter.standard.LevelControlTrait.MoveModeEnum,kotlin.UByte,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap,com.google.home.matter.standard.LevelControlTrait.OptionsBitmap)` command is reeceived with a `rate` parameter of null. | | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Feature` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#featureMap()` Whether the server supports zero or more optional cluster features. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-int/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#generatedCommandList()` A list of server-generated commands (server to client) which are supported by this cluster server instance. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#maxFrequency()` The maximum value that can be assigned to the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentFrequency()` attribute. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#maxLevel()` The maximum value that can be assigned to the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentLevel()` attribute. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#minFrequency()` The minimum value that can be assigned to the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentFrequency()` attribute. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#minLevel()` The minimum value that can be assigned to the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentLevel()` attribute. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#offTransitionTime()` The time taken (in 0.1 seconds) to move the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentLevel()` from the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#maxLevel()` to the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#minLevel()` when an `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOffCommands#on()` command is received by an `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOff` cluster on the same endpoint. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#onLevel()` The value that the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentLevel()` attribute is set to when the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOffTrait.Attributes#onOff()` attribute of the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOff` cluster is set to true as a result of processing an `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOff` cluster command. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#onOffTransitionTime()` The time taken (in 0.1 seconds) to move to or from the target level when `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOffCommands#on()` or `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOffCommands#off()` commands are received by an `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOff` cluster on the same endpoint. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#onTransitionTime()` The time taken (in 0.1 seconds) to move the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentLevel()` from the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#minLevel()` to the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#maxLevel()` when an `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOffCommands#on()` command is received by an `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/OnOff` cluster on the same endpoint. | | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.OptionsBitmap?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#options()` A bitmap that determines the default behavior of some cluster commands. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-short/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#remainingTime()` The time remaining (in 0.1 seconds) until the current command is complete. | | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-byte/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#startUpCurrentLevel()` The desired startup level for a device when it is supplied with power, which is reflected in the `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/LevelControlTrait.Attributes#currentLevel()` attribute. | |
| From [com.google.home.Trait](https://developers.home.google.com/reference/kotlin/com/google/home/Trait) |---|---| | `https://developers.home.google.com/reference/kotlin/com/google/home/Trait.TraitMetadata` | `https://developers.home.google.com/reference/kotlin/com/google/home/Trait#metadata()` | |

## Public functions

### supports

```
fun supports(attribute: LevelControl.Attribute): Boolean
```

### supports

```
fun supports(command: LevelControl.Command): Boolean
```

## Public properties

### factory

```
open val factory: TraitFactory<LevelControl>
```