Progettare un'automazione su Android

Prima di iniziare a utilizzare l'API Automation, devi progettare le 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 un'automazione specifica per il controllo delle luci.
  • Quali tipi di dispositivi sono necessari per l'automazione. Ad esempio, se l'utente ha appena aggiunto tre nuove luci alla sua casa, potrebbe essere interessato a un'automazione particolare pensata per controllare le luci. Esempi di tipi di dispositivi di illuminazione includono OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice o ExtendedColorLightDevice.
  • Quali attributi e comandi del tratto sono necessari per l'automazione e se sono supportati dall'API Automation su Android.
  • Le caratteristiche che devono attivare l'automazione come comandi iniziali. I comandi iniziali sono descritti in Componenti di automazione su Android.
  • Condizioni aggiuntive che determinano se l'automazione debba effettivamente essere eseguita e quali azioni debbano essere eseguite.
  • Il flusso di esecuzione dell'automazione. Deve essere eseguito in sequenza o in parallelo? Hai bisogno di più percorsi logici?

Durante la progettazione, può essere utile schematizzare il flusso dell'automazione, nodo per nodo, con la logica richiesta in ogni fase.

Una volta progettata un'automazione, utilizza il linguaggio DSL di automazione per crearla. L'automazione che crei è essenzialmente un "modello": 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 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 crei un'automazione che alzi le tapparelle alle 8: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 possono essere fornite dall'API Discovery.

Per le automazioni che devono essere eseguite a una determinata ora, devi anche assicurarti che l'utente abbia assegnato un indirizzo civico alla struttura scelta 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 un indirizzo è stato assegnato alla struttura.

Il flusso di esecuzione sarà simile al seguente:

  1. Utilizzando l'API Discovery, raccogli l'elenco di WindowCoveringDevice dispositivi.
  2. Se l'indirizzo non è compilato, comunica all'utente che deve fornire un indirizzo e interrompi l'esecuzione.
  3. Altrimenti, definisci l'automazione:
    1. Avvia l'automazione alle 8:00.
    2. Per ciascuna tenda, chiama il comando upOrOpen della caratteristica WindowCovering.

Automazione complessa

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

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

Il flusso di esecuzione:

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

Automazione generica

Per un esempio di automazione più sofisticata, prendiamo in considerazione un'automazione che guidi l'utente attraverso la creazione di un'automazione aperta, basata su uno o tutti i dispositivi presenti 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 strutturata espandibile, in cui l'espansione di una stanza mostra i dispositivi al suo interno. Se espandi un elenco di dispositivi, vengono visualizzati gli starter e i comandi supportati da quel dispositivo.

L'utente può scegliere i dispositivi, gli starter e i comandi che desidera utilizzare e l'automazione lo guiderà attraverso l'assemblaggio di un'automazione.

Quando tutte le scelte e le decisioni dell'utente saranno definitive, l'automazione genererà l'automazione e la salverà nella struttura scelta.

A un livello elevato, tale automazione 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 informazioni che possono fornire
APIInformazioni
API Structure
  • Quali strutture sono disponibili
  • Quali stanze sono presenti nella struttura
API Device
  • Quali dispositivi sono presenti nella struttura scelta
  • Dove si trovano i dispositivi (in quale stanza)
API di scoperta
  • Quali trait sono supportati dai dispositivi
  • Quali comandi iniziali sono disponibili per queste caratteristiche
  • Quali vincoli esistono per i parametri di questi comandi