As automações gerenciadas por apps são criadas de forma 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 do Google Home quando uma automação gerenciada por app é acionada podem ser personalizadas. Por exemplo, se um parceiro oferecer um serviço de marca chamado "Arctic" que é implementado usando automações gerenciadas por app, ele poderá especificar que, quando as automações gerenciadas por app 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 por app, use o procedimento a seguir.
Crie o gráfico de lógica da automação.
Para personalizar como a atividade da automação aparece 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"para que o histórico de execução da automação apareça na guia "Atividade" em GHA. - 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_REPORTED") // b. set the clientFeatureGroup
.setAutomationGraph(automationGraph) // c. Attach the logic graph
.setAppManagedAutomationConfig(automationConfig) // d. Set the automationConfig
.build() // 4. build the automation