<br />

The Automation API for Android supports most traits, but support for some
attributes, events, and commands in a trait may be limited.

In general:

- Any traits and types that you intend to use in your app with the Automation API must be registered at initialization. See [Create a Home instance](https://developers.home.google.com/apis/android/initialize.md.txt#create_a_home_instance).
- Any attribute may be used in starters or conditions.
- Cloud-to-cloud devices that don't report their state cannot be used as triggers in automations, created either manually or through discovery.
- Even if a device supports the traits listed here, a device may be
  blocked from use as a starter or action in the Automation API due to
  [Report State](https://developers.home.google.com/cloud-to-cloud/integration/report-state.md.txt)
  quality thresholds:

  - Devices with a Report State success rate lower than **90%** are blocked from use as starters.
  - Devices with a command execution success rate lower than **95%** are blocked from use as actions.

  Refer to this [list of device models](https://developers.home.google.com/automations/supported-devices.md.txt)
  and the specific starters and actions that they support for the
  Automations API.

  > [!NOTE]
  > **Note:** The Discovery API filters out devices that don't meet the Report State quality thresholds.

- Commands can only be used as actions.

- Some traits, such as
  [`AssistantBroadcast`](https://developers.home.google.com/reference/kotlin/com/google/home/google/AssistantBroadcast.md.txt)
  and [`Notification`](https://developers.home.google.com/reference/kotlin/com/google/home/google/Notification.md.txt),
  are only available for use in the Automation API.

- The
  [`okGoogle`](https://developers.home.google.com/reference/kotlin/com/google/home/google/AssistantFulfillmentTrait.OkGoogleCommand.md.txt)
  command is a structure-level command and can be used to automate any device
  in the structure. However, a Home APIs app may not have access to every
  device. See
  [OkGoogle permissions](https://developers.home.google.com/apis/android/permissions.md.txt#okgoogle_permissions) to see
  how permissions are enforced in various cases.

- Some traits have prerequisites:

  - In order to use time-based starters such as [`Time.ScheduledTimeEvent`](https://developers.home.google.com/reference/kotlin/com/google/home/google/Time.ScheduledTimeEvent.md.txt), [`Time.RecurringClockTimeScheduledEvent`](https://developers.home.google.com/reference/kotlin/com/google/home/google/Time.RecurringClockTimeScheduledEvent.md.txt), or [`Time.RecurringSolarTimeScheduledEvent`](https://developers.home.google.com/reference/kotlin/com/google/home/google/Time.RecurringSolarTimeScheduledEvent.md.txt), the structure in which the automation runs must have a street address to determine the local timezone and solar calculations. The address can be provided during structure creation or set in the [Google Home app (GHA)](https://play.google.com/store/apps/details?id=com.google.android.apps.chromecast.app). [Change Google
    home address](https://support.google.com/googlenest/answer/7551002) explains how a user can enter or update the structure address in the GHA. If the address is not set up, `createAutomation()` saves and returns an `Automation` where `isValid == false`, with an `UnsupportedEntityEvent` validation issue containing `MissingStructureAddressSetup`.
  - In order for household members to receive notifications from [`Notification.sendNotifications`](https://developers.home.google.com/reference/kotlin/com/google/home/google/Notification.md.txt#sendNotifications(kotlin.String,kotlin.Function1)), they must have the GHA installed with notifications enabled. Notifications are delivered to members through the GHA and cannot be sent directly to third-party apps.
  - In order to use the `AreaPresenceState` or `AreaAttendanceState` traits, the user must set up presence sensing in the GHA.
  - In order to use the `ObjectDetection` trait, the user must have an active [Google Home Premium](https://store.google.com/product/google_home_premium) subscription.

Simplified versions of some traits are also available for use in automations.
For more information, see
[Simplified traits on Android](https://developers.home.google.com/apis/android/automation/simplified-traits.md.txt).