<br />

## Description

For devices that have an ongoing duration for their operation which can be queried.

Devices like these will report their total number of cycles at the start of operation, and each cycle the device is currently in while running.

## Fields

| Key | Type | Description |
|---|---|---|
| `device` | [Device](https://developers.home.google.com/automations/schema/basics.md.txt#entity) | The device reporting the `RunCycle` state. Required |
| `state` | [FieldPath](https://developers.home.google.com/automations/schema/basics.md.txt#fieldpath) | The specific state data to check. Required |
| `is` | [Dynamic](https://developers.home.google.com/automations/schema/basics.md.txt#dynamic) | Checks if the state data is equal to a value. Optional <br /> To use this field, all the following fields CANNOT be used: *isNot* , *greaterThanOrEqualTo* , *greaterThan* , *lessThanOrEqualTo* , *lessThan* <br /> |
| `isNot` | [Dynamic](https://developers.home.google.com/automations/schema/basics.md.txt#dynamic) | Checks if the state data is not equal to a value. Optional <br /> To use this field, all the following fields CANNOT be used: *is* , *greaterThanOrEqualTo* , *greaterThan* , *lessThanOrEqualTo* , *lessThan* <br /> |
| `greaterThan` | [Dynamic](https://developers.home.google.com/automations/schema/basics.md.txt#dynamic) | Checks if the state data is greater than (\>) a value. Optional <br /> To use this field, all the following fields CANNOT be used: *isNot* , *is* , *greaterThanOrEqualTo* <br /> |
| `greaterThanOrEqualTo` | [Dynamic](https://developers.home.google.com/automations/schema/basics.md.txt#dynamic) | Checks if the state data is greater than or equal to (\>=) a value. Optional <br /> To use this field, all the following fields CANNOT be used: *isNot* , *is* , *greaterThan* <br /> |
| `lessThan` | [Dynamic](https://developers.home.google.com/automations/schema/basics.md.txt#dynamic) | Checks if the state data is less than (\<) a value. Optional <br /> To use this field, all the following fields CANNOT be used: *isNot* , *is* , *lessThanOrEqualTo* <br /> |
| `lessThanOrEqualTo` | [Dynamic](https://developers.home.google.com/automations/schema/basics.md.txt#dynamic) | Checks if the state data is less than or equal to (\<=) a value. Optional <br /> To use this field, all the following fields CANNOT be used: *isNot* , *is* , *lessThan* <br /> |
| `for` | [Duration](https://developers.home.google.com/automations/schema/basics.md.txt#duration) | Checks if the state has already remained for a certain duration. Only applicable for Starters, cannot be used with Conditions. Optional |
| `suppressFor` | [Duration](https://developers.home.google.com/automations/schema/basics.md.txt#duration) | Suppress the triggering of the starter for a specified time period. Optional |

## RunCycle State Data

| Key | Type | Description |
|---|---|---|
| `currentTotalRemainingTime` | [Duration](https://developers.home.google.com/automations/schema/basics.md.txt#duration) | Optional |
| `currentCycleRemainingTime` | [Duration](https://developers.home.google.com/automations/schema/basics.md.txt#duration) | Optional |

## Examples

```yaml
starters:
- type: device.state.RunCycle
  device: My Device - Room Name
  state: currentRunCycle
  is: Some Text

condition:
  type: device.state.RunCycle
  device: My Device - Room Name
  state: currentRunCycle
  is: Some Text
```