The Automation API supports most traits, but support for some attributes, events, and commands in a trait may be limited.
To verify that the Automation API supports your use case, search in the table below.
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.
- 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 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
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.
- Commands can only be used as actions.
- Some traits, such as
AssistantBroadcast
, are only available for use in the Automation API. - The
okGoogle
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 to see how permissions are enforced in various cases. - Some traits have prerequisites:
- In order to use
Time.ScheduledTimeEvent
, the structure in which the automation runs must have a street address that was set up in the Google Home app (GHA). Change Google home address explains how a user can enter the structure address. If the address is not set up in the GHA, the automation fails to create, and an error is thrown with message "The ScheduledTimeEvent is not supported by the structure." - In order to use the
AreaPresenceState
orAreaAttendanceState
traits, the user must set up presence sensing in the GHA. - In order to use the
ObjectDetection
trait, the user must have an active Nest Aware subscription.
- In order to use
Simplified versions of some traits are also available for use in automations. For more information, see Simplified traits.
A block indicates that the command is not supported in automations for one or more device types. For more information, refer to Blocked actions in automations.