Von Apps verwaltete Automatisierungen für Android

App-verwaltete Automatisierungen werden programmatisch von einer Partner-App über die Automation API erstellt.

Solche automatisierten Abläufe werden nicht in der Google Home app (GHA)-Liste für automatisierte Abläufe angezeigt.

Die Informationen, die in den Aktivitätsfeed der Home-APIs geschrieben werden, wenn eine von einer App verwaltete Automatisierung ausgelöst wird, können angepasst oder vollständig unterdrückt werden. Wenn ein Partner beispielsweise einen Markendienst namens „Arctic“ anbietet, der mit App-verwalteten Automatisierungen implementiert wird, kann der Partner festlegen, dass im Aktivitätsfeed auf den Dienst „Arctic“ verwiesen wird, wenn seine App-verwalteten Automatisierungen ausgeführt werden, anstatt auf den tatsächlichen Namen der Automatisierung.

Von der App verwaltete Automatisierung erstellen

So erstellen Sie eine von der App verwaltete Automatisierung:

  1. Logikdiagramm für die Automatisierung erstellen

  2. Optional: Wenn die Aktivitäten Ihrer Automatisierung im Aktivitätsfeed angezeigt werden sollen, können Sie eine AppManagedAutomationConfig-Instanz mit der lokalisierten Nachricht füllen, die anstelle des Namens der Automatisierung im Feed angezeigt werden soll. Das können die lokalisierten Namen einer App oder eines Dienstes oder eine beliebige andere Nachricht sein. Wenn Sie keine lokalisierten Strings angeben, werden die Ausführungen der automatisierten Abläufe wie bei jedem anderen automatisierten Ablauf protokolliert. Google empfiehlt, diese lokalisierten Strings festzulegen, um für eine optimale Nutzererfahrung zu sorgen.

    val myAutomationConfig = AppManagedAutomationConfig(
        managingAppDisplayNames = listOf(
            LocalizedText(text = "My custom SmartApp", locale = "en-US"),
            LocalizedText(text = "Mi aplicación personalizada", locale = "es-MX")
        )
    )
    
  3. Erstellen Sie die Automatisierungsinstanz mit Automation.Builder.

    1. Legen Sie die name der Automatisierung fest.
    2. Legen Sie client_feature_group auf "APP_MANAGED_EXECUTION_REPORTED" fest, wenn der Ausführungsverlauf der Automatisierung auf dem Tab „Aktivität“ in GHA angezeigt werden soll, oder auf "APP_MANAGED_EXECUTION_UNREPORTED", wenn der Ausführungsverlauf der Automatisierung nicht angezeigt werden soll.
    3. Legen Sie automationGraph fest.
    4. Optional: Legen Sie die appManagedAutomationConfig der Automatisierung fest (siehe Schritt 2).
  4. Rufen Sie schließlich build() auf, um die Automation-Instanz zu erstellen.

In diesem Beispiel wird das gesamte Verfahren gezeigt:

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