As automações gerenciadas pelo app são construídas de maneira programática por um app parceiro usando a API Automation.
Essas automações não aparecem na lista de automações do Google Home app (GHA).
As informações gravadas no feed de atividades das APIs Home quando uma automação gerenciada por app é acionada podem ser personalizadas ou suprimidas completamente. Por exemplo, se um parceiro oferecer um serviço de marca chamado "Arctic" implementado usando automações gerenciadas por apps, ele poderá especificar que, quando as automações gerenciadas por apps forem executadas, o serviço Arctic será referenciado no feed de atividades em vez do nome real da automação.
Criar uma automação gerenciada pelo app
Para criar uma automação gerenciada pelo app, use o procedimento a seguir.
Crie o gráfico de lógica da automação.
Opcional: se você quiser que a atividade da sua automação apareça no feed de atividades, preencha uma instância
AppManagedAutomationConfigcom a mensagem localizada que você quer que apareça no feed em vez do nome da automação. Pode ser o nome localizado de um app ou serviço, ou qualquer outra mensagem que você quiser. Se você não fornecer strings localizadas, as execuções de automação serão registradas como as de qualquer outra automação. O Google recomenda que você defina essas strings localizadas para garantir a melhor experiência do usuário.let automationConfig = AppManagedAutomationConfig( managingAppDisplayNames: [ LocalizedText(text: "My Custom SmartApp", locale: "en-US"), LocalizedText(text: "Mi aplicación personalizada", locale: "es-MX") ] )Crie a instância de automação usando
Automation.Builder.- Defina o
nameda automação. - Defina
client_feature_groupcomo"APP_MANAGED_EXECUTION_REPORTED"se quiser que o histórico de execução da automação apareça na guia "Atividade" em GHA ou"APP_MANAGED_EXECUTION_UNREPORTED"se não quiser que o histórico de execução da automação apareça. - Defina o
automationGraph. - Opcional: defina o
appManagedAutomationConfigda automação (consulte a etapa 2).
- Defina o
Por fim, chame
build()para criar a instânciaAutomation.
Este exemplo mostra todo o procedimento:
import GoogleHomeSDK
import GoogleHomeTypes
let devices = try await home.devices().list()
let mySensor: HomeDevice = devices.first(where: {
$0.types.contains(OccupancySensorDeviceType.self) &&
$0.structureID == structure.id
})
let myLight: HomeDevice = devices.first(
where: {
$0.types.contains(OnOffLightDeviceType.self) &&
$0.structureID == structure.id
}
)
// 1. Create logic graph
let starterNode = StarterNode(
device: mySensor,
trait: Matter.OccupancySensingTrait.self
)
let actionNode = ActionNode(
device: myLight,
command: Matter.OnOffTrait.on()
)
// Bundle nodes into a sequential graph
let automationGraph = SequentialFlow(
nodes: [starterNode, actionNode]
)
// 2. Build the AppManagedAutomationConfig with the localized app names
let automationConfig = AppManagedAutomationConfig(
managingAppDisplayNames: [
LocalizedText(text: "My Custom SmartApp", locale: "en-US"),
LocalizedText(text: "Mi aplicación personalizada", locale: "es-MX")
]
)
// 3. Build the Automation with both configuration and the graph
let myFunctionalAutomation = try AutomationBuilder()
.setName("Motion Activated Light") // a. Set the name
.setClientFeatureGroup("APP_MANAGED_EXECUTION_UNREPORTED") // b. set the clientFeatureGroup
.setAutomationGraph(automationGraph) // c. Attach the logic graph
.setAppManagedAutomationConfig(automationConfig) // d. Set the automationConfig
.build() // 4. build the automation