Автоматизация, управляемая приложением, для iOS

Автоматизации, управляемые приложением, создаются программно партнерским приложением с помощью Automation API.

Такие автоматизации не показываются в списке автоматизаций Google Home app (GHA).

Информацию, которая записывается в фид действий Home API при запуске автоматизации, управляемой приложением, можно настроить. Например, если партнер предлагает фирменный сервис Arctic, который реализован с помощью автоматизаций, управляемых приложением, он может указать, что при запуске этих автоматизаций в фиде действий будет упоминаться сервис Arctic, а не фактическое название автоматизации.

Как создать автоматизацию, управляемую приложением

Чтобы создать автоматизацию, управляемую приложением, выполните следующие действия:

  1. Создайте логический граф автоматизации.

  2. Чтобы настроить, как действия автоматизации будут отображаться в фиде действий, заполните экземпляр AppManagedAutomationConfig локализованным сообщением, которое должно показываться в фиде вместо названия автоматизации. Это может быть локализованное название приложения или сервиса или любое другое сообщение. Если вы не предоставите локализованные строки, то выполнение автоматизации будет регистрироваться так же, как и для любой другой автоматизации. Google рекомендует задать эти локализованные строки, чтобы обеспечить максимальное удобство для пользователей.

    let automationConfig = AppManagedAutomationConfig(
        managingAppDisplayNames: [
          LocalizedText(text: "My Custom SmartApp", locale: "en-US"),
          LocalizedText(text: "Mi aplicación personalizada", locale: "es-MX")
        ]
    )
    
  3. Создайте экземпляр автоматизации с помощью Automation.Builder.

    1. Задайте name автоматизации.
    2. Установите для параметра client_feature_group значение "APP_MANAGED_EXECUTION_REPORTED", чтобы история выполнения автоматизации отображалась на вкладке "Действия" в GHA.
    3. Задайте automationGraph.
    4. Необязательно. Задайте appManagedAutomationConfig автоматизации (см. шаг 2).
  4. Наконец, вызовите build(), чтобы создать экземпляр Automation.

Ниже приведен пример, в котором показана вся процедура.


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