Automazioni gestite dalle app per Android

Le automazioni gestite dalle app sono automazioni create a livello di programmazione da un'app partner utilizzando l'API Automation.

Queste automazioni non vengono visualizzate nell'elenco delle automazioni Google Home app (GHA).

Le informazioni scritte nel feed Attività delle API Home quando viene attivata un'automazione gestita dall'app possono essere personalizzate o eliminate completamente. Ad esempio, se un partner offre un servizio brandizzato chiamato "Arctic" implementato utilizzando automazioni gestite dall'app, il partner potrebbe specificare che quando vengono eseguite le automazioni gestite dall'app, il servizio Arctic viene citato nel feed attività anziché il nome effettivo dell'automazione.

Creare un'automazione gestita dall'app

Per creare un'automazione gestita dall'app, utilizza la seguente procedura.

  1. Crea il grafico logico dell'automazione.

  2. (Facoltativo) Se vuoi che l'attività dell'automazione venga visualizzata nel feed dell'attività, puoi compilare un'istanza di AppManagedAutomationConfig con il messaggio localizzato che vuoi visualizzare nel feed al posto del nome dell'automazione. Possono essere i nomi localizzati di un'app o di un servizio oppure qualsiasi altro messaggio che preferisci. Se non fornisci stringhe localizzate, le esecuzioni dell'automazione vengono registrate come quelle di qualsiasi altra automazione. Google consiglia di impostare queste stringhe localizzate per garantire la migliore esperienza utente.

    val myAutomationConfig = AppManagedAutomationConfig(
        managingAppDisplayNames = listOf(
            LocalizedText(text = "My custom SmartApp", locale = "en-US"),
            LocalizedText(text = "Mi aplicación personalizada", locale = "es-MX")
        )
    )
    
  3. Crea l'istanza di automazione utilizzando Automation.Builder.

    1. Imposta il name dell'automazione.
    2. Imposta client_feature_group su "APP_MANAGED_EXECUTION_REPORTED" se vuoi che la cronologia di esecuzione dell'automazione venga visualizzata nella scheda Attività di GHA oppure "APP_MANAGED_EXECUTION_UNREPORTED" se non vuoi che la cronologia di esecuzione dell'automazione venga visualizzata.
    3. Imposta automationGraph.
    4. (Facoltativo) Imposta appManagedAutomationConfig dell'automazione (vedi il passaggio 2).
  4. Infine, chiama build() per creare l'istanza Automation.

Questo esempio mostra l'intera procedura:

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