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

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.

    let automationConfig = AppManagedAutomationConfig(
        managingAppDisplayNames: [
          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 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