Автоматизации, управляемые приложением, создаются программным способом партнерским приложением с помощью Automation API.
Такие программы не будут показываться в списке Google Home app (GHA).
Информацию, которая записывается в ленту действий API Home при запуске автоматизации, управляемой приложением, можно настроить или полностью отключить. Например, если партнер предлагает брендированный сервис под названием "Арктика", реализованный с помощью автоматизации, управляемой приложением, он может указать, что при выполнении такой автоматизации в ленте действий будет упоминаться сервис "Арктика", а не название автоматизации.
Как создать автоматизацию, управляемую приложением
Чтобы создать автоматизацию, управляемую приложением, выполните следующие действия:
Создайте логическую схему автоматизации.
Необязательно. Если вы хотите, чтобы действия автоматизации отображались в ленте действий, заполните экземпляр
AppManagedAutomationConfigлокализованным сообщением, которое должно показываться в ленте вместо названия автоматизации. Это могут быть локализованные названия приложения или сервиса или любое другое сообщение. Если вы не предоставите локализованные строки, выполнение автоматизации будет регистрироваться так же, как и любой другой автоматизации. Google рекомендует задать эти локализованные строки, чтобы обеспечить удобство для пользователей.val myAutomationConfig = AppManagedAutomationConfig( managingAppDisplayNames = listOf( 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, или"APP_MANAGED_EXECUTION_UNREPORTED", если вы не хотите, чтобы история выполнения автоматизации отображалась. - Укажите
automationGraph. - Необязательно. Настройте автоматизацию
appManagedAutomationConfig(см. шаг 2).
- Укажите
Наконец, вызовите
build(), чтобы создать экземплярAutomation.
Ниже приведен пример всей процедуры:
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