Android için uygulama tarafından yönetilen otomasyonlar

Uygulama tarafından yönetilen otomasyonlar, Automation API kullanılarak bir iş ortağı uygulaması tarafından programatik olarak oluşturulan otomasyonlardır.

Bu tür otomasyonlar, Google Home app (GHA) otomasyon listesinde görünmez.

Uygulama tarafından yönetilen bir otomasyon tetiklendiğinde Home API'leri etkinlik feed'ine yazılan bilgiler özelleştirilebilir veya tamamen gizlenebilir. Örneğin, bir iş ortağı, uygulama tarafından yönetilen otomasyonlar kullanılarak uygulanan "Arctic" adlı markalı bir hizmet sunuyorsa iş ortağı, uygulama tarafından yönetilen otomasyonları çalıştırıldığında etkinlik feed'inde gerçek otomasyon adı yerine Arctic hizmetine referans verilmesini belirtebilir.

Uygulama tarafından yönetilen otomasyon oluşturma

Uygulama tarafından yönetilen otomasyon oluşturmak için aşağıdaki prosedürü kullanın.

  1. Otomasyonun mantık grafiğini oluşturun.

  2. İsteğe bağlı: Otomasyonunuzun etkinliğinin etkinlik feed'inde görünmesini istiyorsanız AppManagedAutomationConfig örneğini, feed'de otomasyon adının yerine görünmesini istediğiniz yerelleştirilmiş mesajla doldurabilirsiniz. Bu, bir uygulamanın veya hizmetin yerelleştirilmiş adları ya da istediğiniz başka bir mesaj olabilir. Yerelleştirilmiş dizeler sağlamazsanız otomasyon yürütmeleri, diğer otomasyon yürütmeleri gibi kaydedilir. Google, en iyi kullanıcı deneyimini sağlamak için bu yerelleştirilmiş dizeleri ayarlamanızı önerir.

    val myAutomationConfig = AppManagedAutomationConfig(
        managingAppDisplayNames = listOf(
            LocalizedText(text = "My custom SmartApp", locale = "en-US"),
            LocalizedText(text = "Mi aplicación personalizada", locale = "es-MX")
        )
    )
    
  3. Automation.Builder kullanarak otomasyon örneğini oluşturun.

    1. Otomasyonun name değerini ayarlayın.
    2. Otomasyonun yürütme geçmişinin GHA içindeki Etkinlik sekmesinde görünmesini istiyorsanız client_feature_group seçeneğini "APP_MANAGED_EXECUTION_REPORTED" olarak, görünmesini istemiyorsanız "APP_MANAGED_EXECUTION_UNREPORTED" olarak ayarlayın.
    3. automationGraph değerini ayarlayın.
    4. İsteğe bağlı: Otomasyonun appManagedAutomationConfig ayarını yapın (2. adıma bakın).
  4. Son olarak, build() örneğini oluşturmak için Automation işlevini çağırın.

Bu örnekte tüm prosedür gösterilmektedir:

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