خودکارسازیهای مدیریتشده توسط برنامه خودکارسازیهایی هستند که بهصورت برنامهنویسیشده توسط برنامه شریک بااستفاده از Automation API ساخته میشوند.
این خودکارسازیها در فهرست خودکارسازیهای Google Home app (GHA) نشان داده نمیشوند.
اطلاعاتی که هنگام راهاندازی خودکارسازی مدیریتشده توسط برنامه در فید فعالیت Home APIs نوشته میشود، قابلسفارشیسازی است. برای مثال، اگر شریکی سرویسی با نمانام «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خودکارسازی را تنظیم کنید (مرحله ۲ را ببینید).
درنهایت،
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