Automatisations gérées par l'application pour Android

Les automatisations gérées par l'application sont des automatisations construites de manière programmatique par une application partenaire à l'aide de l'API Automation.

Ces automatisations ne s'affichent pas dans la liste des automatisations Google Home app (GHA).

Les informations écrites dans le flux d'activité des API Home lorsqu'une automatisation gérée par une application est déclenchée peuvent être personnalisées ou supprimées entièrement. Par exemple, si un partenaire propose un service de marque appelé "Arctic" qui est implémenté à l'aide d'automatisations gérées par l'application, il peut spécifier que lorsque ses automatisations gérées par l'application s'exécutent, le service Arctic est référencé dans le flux d'activité au lieu du nom réel de l'automatisation.

Créer une automatisation gérée par une application

Pour créer une automatisation gérée par l'application, suivez la procédure ci-dessous.

  1. Créez le graphique logique de l'automatisation.

  2. Facultatif : Si vous souhaitez que l'activité de votre automatisation s'affiche dans le flux d'activité, vous pouvez remplir une instance AppManagedAutomationConfig avec le message localisé que vous souhaitez voir apparaître dans le flux à la place du nom de l'automatisation. Il peut s'agir des noms localisés d'une application ou d'un service, ou de tout autre message de votre choix. Si vous ne fournissez aucune chaîne localisée, les exécutions d'automatisation sont enregistrées comme celles de toute autre automatisation. Google vous recommande de définir ces chaînes localisées pour garantir la meilleure expérience utilisateur possible.

    val myAutomationConfig = AppManagedAutomationConfig(
        managingAppDisplayNames = listOf(
            LocalizedText(text = "My custom SmartApp", locale = "en-US"),
            LocalizedText(text = "Mi aplicación personalizada", locale = "es-MX")
        )
    )
    
  3. Créez l'instance d'automatisation à l'aide de Automation.Builder.

    1. Définissez le name de l'automatisation.
    2. Définissez client_feature_group sur "APP_MANAGED_EXECUTION_REPORTED" si vous souhaitez que l'historique d'exécution de l'automatisation s'affiche dans l'onglet "Activité" de GHA, ou sur "APP_MANAGED_EXECUTION_UNREPORTED" si vous ne souhaitez pas que l'historique d'exécution de l'automatisation s'affiche.
    3. Définissez automationGraph.
    4. Facultatif : Définissez le appManagedAutomationConfig de l'automatisation (voir l'étape 2).
  4. Enfin, appelez build() pour créer l'instance Automation.

Cet exemple montre la procédure complète :

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