Автоматизации, управляемые приложением, создаются программно партнерским приложением с помощью Automation API.
Такие автоматизации не показываются в списке автоматизаций Google Home app (GHA).
Информацию, которая записывается в фид действий Home API при запуске автоматизации, управляемой приложением, можно настроить. Например, если партнер предлагает фирменный сервис Arctic, который реализован с помощью автоматизаций, управляемых приложением, он может указать, что при запуске этих автоматизаций в фиде действий будет упоминаться сервис Arctic, а не фактическое название автоматизации.
Как создать автоматизацию, управляемую приложением
Чтобы создать автоматизацию, управляемую приложением, выполните следующие действия:
Создайте логический граф автоматизации.
Чтобы настроить, как действия автоматизации будут отображаться в фиде действий, заполните экземпляр
AppManagedAutomationConfigлокализованным сообщением, которое должно показываться в фиде вместо названия автоматизации. Это может быть локализованное название приложения или сервиса или любое другое сообщение. Если вы не предоставите локализованные строки, то выполнение автоматизации будет регистрироваться так же, как и для любой другой автоматизации. Google рекомендует задать эти локализованные строки, чтобы обеспечить максимальное удобство для пользователей.let automationConfig = AppManagedAutomationConfig( managingAppDisplayNames: [ LocalizedText(text: "My Custom SmartApp", locale: "en-US"), LocalizedText(text: "Mi aplicación personalizada", locale: "es-MX") ] )Создайте экземпляр автоматизации с помощью
Automation.Builder.- Задайте
nameавтоматизации. - Установите для параметра
client_feature_groupзначение"APP_MANAGED_EXECUTION_REPORTED", чтобы история выполнения автоматизации отображалась на вкладке "Действия" в GHA. - Задайте
automationGraph. - Необязательно. Задайте
appManagedAutomationConfigавтоматизации (см. шаг 2).
- Задайте
Наконец, вызовите
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