Progettare un'automazione su Android

Prima di iniziare a utilizzare l'API Automation, devi progettare le tue automazioni.

Determina i seguenti parametri per ogni automazione:

  • Le circostanze in cui l'automazione deve essere suggerita all'utente. Ad esempio, se l'utente ha appena aggiunto tre nuove luci alla sua casa, potrebbe essere interessato a una particolare automazione personalizzata per il controllo delle luci.
  • Quali tipi di dispositivi sono richiesti per l'automazione. Ad esempio, se l'utente ha appena aggiunto tre nuove luci alla sua casa, potrebbe essere interessato a una particolare automazione personalizzata per il controllo delle luci. Esempi di tipi di dispositivi di illuminazione includono OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice o ExtendedColorLightDevice.
  • Quali attributi e comandi dei tratti sono richiesti per l'automazione e se sono supportati dall'API Automation su Android.
  • I tratti che dovrebbero attivare l'automazione come comandi iniziali. I comandi iniziali sono discussi in Componenti delle automazioni su Android.
  • Condizioni aggiuntive che determinano se l'automazione deve essere effettivamente eseguita e quali azioni devono essere eseguite.
  • Il flusso di esecuzione dell'automazione. Deve essere eseguita in sequenza o in parallelo? Hai bisogno di più percorsi logici?

Durante la progettazione, può essere utile creare un diagramma del flusso dell'automazione, nodo per nodo, con la logica richiesta in ogni passaggio.

Una volta progettata un'automazione, utilizza il DSL di automazione per crearla. L'automazione che crei è essenzialmente un "modello": tutte le strutture e i dispositivi al suo interno sono segnaposto e vengono compilati con la struttura e i dispositivi specifici di ogni utente quando "adotta" l'automazione per il proprio utilizzo.

Di seguito sono riportati i diversi tipi di automazioni che un'app potrebbe creare utilizzando le API Home. Consulta la pagina Crea un'automazione per gli estratti di codice relativi a questi esempi.

Automazione semplice

Supponiamo che tu debba scrivere un'app che crea un'automazione per alzare le tapparelle alle 08:00. Per farlo, l'app ha bisogno di un elenco delle tapparelle (dispositivi con il tipo di dispositivo WindowCoveringDevice) presenti nella struttura che supportano le automazioni, che può essere fornito dall'API Discovery.

Per le automazioni che devono essere eseguite in un determinato momento, devi anche assicurarti che l'utente abbia assegnato un indirizzo alla struttura scelta (durante la creazione della struttura o in Google Home app (GHA)), altrimenti l'automazione non conosce il fuso orario in cui verrà eseguita. L'API Discovery può aiutarti a determinare se alla struttura è stato assegnato o meno un indirizzo.

Il flusso di esecuzione sarà simile al seguente:

  1. Utilizzando l'API Discovery, raccogli l'elenco dei dispositivi WindowCoveringDevice.
  2. Se l'indirizzo non è compilato, comunica all'utente che deve fornire un indirizzo (ad esempio, in GHA) e interrompi l'esecuzione.
  3. In caso contrario, definisci l'automazione:
    1. Avvia l'automazione alle 08:00.
    2. Per ogni tenda, chiama il comando upOrOpen del tratto WindowCovering.

Automazione complessa

Immagina un'app che crea un'automazione che attiva le luci lampeggianti quando viene rilevato un movimento.

Una delle prime attività per l'implementazione di questa app è scoprire quali luci sono disponibili nella casa dell'utente utilizzando l'API Discovery. Con queste informazioni, l'app può ora visualizzare le luci disponibili e magari consentire all'utente di selezionare quelle che vuole far lampeggiare.

Il flusso di esecuzione:

  1. Utilizzando l'API Discovery, raccogli l'elenco dei dispositivi di illuminazione presenti nella struttura, ovvero tutti i dispositivi con un tipo di dispositivo OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice o ExtendedColorLightDevice.
  2. Fornisci un modo per selezionare le luci che lampeggiano, ad esempio tramite un riquadro Impostazioni personalizzato.
  3. Definisci l'automazione:
    1. Avvia l'automazione ogni volta che qualcuno esce o entra nei locali, monitorando AreaPresenceState.
    2. Se presenceState indica che la struttura è occupata, fai lampeggiare le luci scelte.

Automazione generica

Un esempio di automazione più sofisticata è quella che guida l'utente nella creazione di un'automazione aperta, basata su uno o tutti i dispositivi che ha in casa.

L'automazione potrebbe prima chiedere all'utente di selezionare una struttura.

L'automazione potrebbe quindi mostrare tutte le stanze della struttura in una visualizzazione struttura espandibile, in cui l'espansione di una stanza mostra i dispositivi al suo interno. Se espandi ulteriormente un dispositivo, vengono visualizzati i comandi iniziali e i comandi supportati dal dispositivo.

L'utente poteva scegliere i dispositivi, i comandi iniziali e i comandi che voleva utilizzare e l'automazione lo guidava nella creazione di un'automazione.

Quando tutte le scelte e le decisioni dell'utente sono definitive, l'automazione viene generata e salvata nella struttura scelta.

In generale, un'automazione di questo tipo dovrebbe raccogliere diversi set di dati sulla casa dell'utente utilizzando l'API Structure per Android, l'API Device per Android e l'API Discovery.

Tabella 1: API Home e le informazioni che possono fornire
APIInformazioni
API Structure
  • Quali strutture sono disponibili
  • Quali stanze sono presenti nella struttura
API Device
  • Quali dispositivi si trovano nella struttura scelta
  • Dove si trovano i dispositivi (in quale stanza)
API Discovery
  • Quali caratteristiche sono supportate dai dispositivi
  • Quali comandi iniziali e comandi sono disponibili per questi tratti
  • Quali vincoli esistono sui parametri di questi comandi