אוטומציות שמנוהלות באפליקציה ל-iOS

אוטומציות שמנוהלות על ידי אפליקציה הן אוטומציות שנבנות באופן פרוגרמטי על ידי אפליקציית שותף באמצעות Automation API.

הפעולות האוטומטיות האלה לא יופיעו ברשימת הפעולות האוטומטיות Google Home app (GHA).

אפשר להתאים אישית את המידע שנכתב בפיד הפעילות של ממשקי ה-API של Home כשמופעלת אוטומציה שמנוהלת על ידי אפליקציה, או להשבית אותו לגמרי. לדוגמה, אם שותף מציע שירות ממותג בשם 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, או "APP_MANAGED_EXECUTION_UNREPORTED" אם לא רוצים שהיסטוריית ההפעלה של האוטומציה תופיע.
    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_UNREPORTED") // b. set the clientFeatureGroup
    .setAutomationGraph(automationGraph)                       // c. Attach the logic graph
    .setAppManagedAutomationConfig(automationConfig)           // d. Set the automationConfig
    .build() // 4. build the automation