Automações gerenciadas por apps para Android

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.

  1. Crie o gráfico de lógica da automação.

  2. Opcional: se você quiser que a atividade da sua automação apareça no feed de atividades, preencha uma instância AppManagedAutomationConfig com 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.

    val myAutomationConfig = AppManagedAutomationConfig(
        managingAppDisplayNames = listOf(
            LocalizedText(text = "My custom SmartApp", locale = "en-US"),
            LocalizedText(text = "Mi aplicación personalizada", locale = "es-MX")
        )
    )
    
  3. Crie a instância de automação usando Automation.Builder.

    1. Defina o name da automação.
    2. Defina client_feature_group como "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.
    3. Defina o automationGraph.
    4. Opcional: defina o appManagedAutomationConfig da automação (consulte a etapa 2).
  4. Por fim, chame build() para criar a instância Automation.

Este exemplo mostra todo o procedimento:

import com.google.home.automation.Automation
import com.google.home.automation.SequentialNode
import com.google.home.automation.StarterNode
import com.google.home.automation.ActionNode
import com.google.home.HomeDevice
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffLightDevice
import com.google.home.matter.standard.MotionDetection
import com.google.home.matter.standard.OccupancySensorDevice

 HomeDevice mySensor = home.devices().list().first { device -> device.has(OccupancySensorDevice) }
 HomeDevice myLight = home.devices().list().first { device -> device.has(OnOffLightDevice) }

// 1. Create logic graph
val starterNode = StarterNode(
    device = mySensor,
    trait = OccupancySensing
)

val actionNode = ActionNode(
    device = myLight,
    command = OnOff.on()
)

// Bundle nodes into a sequential graph
val automationGraph = SequentialNode(
    nodes = listOf(starterNode, actionNode)
)

 // 2. Build the AppManagedAutomationConfig with the localized app names
val AppManagedAutomationConfig myAutomationConfig = 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
val myAutomation = Automation.Builder()
    .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(myCustomConfig)             // d. Set the automationConfig
    .build() // 4. build the automation