Crea un'automazione basata su script

1. Introduzione

Obiettivi didattici

  • Come pianificare e scrivere un'automazione basata su script.
  • Come testare un'automazione basata su script.

Che cosa ti serve

  • Uno smartphone Android o iOS con l'app Google Home.
  • Una luce smart o un altro dispositivo certificato per "funziona con Google Home" e che può essere acceso o spento.

2. Configura il tuo dispositivo

Se il dispositivo non è ancora configurato, procedi e configuralo in casa.

Verifica che il dispositivo venga visualizzato nell'app Google Home e che tu possa accenderlo e spegnerlo utilizzando l'app Home.

3. Pianificare l'automazione basata su script

Iniziamo pensando a cosa vogliamo che faccia la nostra automazione basata su script. Sono incluse considerazioni quali:

  • I dispositivi che vuoi automatizzare.
  • Il comando iniziale (o evento) che deve attivare l'esecuzione dell'automazione basata su script.
  • Eventuali condizioni aggiuntive che controllano se l'automazione basata su script viene eseguita o meno dopo l'attivazione.
  • Quali azioni devono essere eseguite.

Ai fini di questo codelab, il nostro piano è che l'automazione basata su script esegua due operazioni:

  1. Accendi la luce (o un altro smart device) a un orario specifico.
  2. Spegnere il dispositivo a un'ora specifica.

Ora che abbiamo chiarito esattamente cosa vogliamo che faccia la nostra automazione basata su script, apriamo l'editor di script e scriviamola.

4. Scrivere l'automazione basata su script

Le automazioni basate su script sono scritte in modo dichiarativo utilizzando il linguaggio di serializzazione dei dati YAML.

Un'automazione basata su script è composta da due sezioni principali:

  1. Metadati: il nome dell'automazione basata su script e una descrizione della sua funzionalità.
  2. Regole di automazione: definiscono la logica di avvio e il comportamento dell'automazione.

Metadati

I metadati della nostra automazione indicano all'utente come si chiama e cosa fa. I metadati sono specificati nel blocco metadata, che ha il seguente aspetto:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times

Regole di automazione

Una regola di automazione è il luogo in cui si svolge il lavoro effettivo. È composto da tre parti, comandi iniziali, condizioni e azioni, che vengono valutate in ordine:

1 comandi iniziali

2 condizioni

3 azioni

I comandi iniziali avviano l'automazione. Per poter valutare le condizioni successive, almeno un comando iniziale deve avere il valore true.

Sono facoltativi e costituiti da uno o più vincoli aggiuntivi che vengono valutati dopo l'attivazione di un comando iniziale. Se le condizioni risolvono a true, le azioni vengono eseguite. Se risolvono in false, le azioni non vengono eseguite.

Quando includi più vincoli, separali con le parole chiave and e or per formare una singola espressione logica. Questa espressione deve risolvere in true per consentire il proseguimento delle azioni di un'automazione.

Una condizione non è la stessa di una notifica di modifica dello stato:

  • Una condizione rappresenta un fatto che deve essere vero al momento dell'"attivazione" dell'iniziale affinché le azioni vengano eseguite.
  • Una notifica di modifica dello stato è un evento, ad esempio l'accensione di un altro dispositivo.

Le azioni sono operazioni che vengono eseguite quando sono soddisfatti l'elemento iniziale e eventuali condizioni di vincolo.

Il blocco automations della nostra automazione contiene due regole:

automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false

Tieni presente quanto segue:

  1. Esistono due regole automations. Il primo accende la luce e il secondo la spegne.
  2. Ogni regola ha una singola azione.
  3. on: true significa accendi la luce. Analogamente, on: false significa spegni la luce.
  4. Ogni regola ha un singolo comando iniziale time.schedule che indica all'automazione a che ora avviarla.
  5. Questa automazione non contiene condizioni.

5. L'automazione completa basata su script

Mettendo insieme tutti questi elementi, ecco come appare l'automazione completa basata su script:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times
automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false
  1. Copia l'automazione (sopra).
  2. Vai a Google Home per il web.
  3. Seleziona la scheda Automazioni, rappresentata da un'icona con tre stelle:
    Scheda Automazioni
  4. Fai clic su + Aggiungi nuovo confronto.
  5. Nell'editor di script, elimina il modello di automazione.
  6. Incolla l'automazione.
  7. Sostituisci Desk light - Office con il nome e la posizione del dispositivo.
  8. Fai clic su Validate (Convalida). L'editor di script sottolinea le sezioni dell'automazione basata su script che contengono errori. Risolvi gli eventuali errori che si verificano e continua a convalidare e correggere fino a quando non ne rimangono più. Ad esempio, il nome del dispositivo potrebbe essere diverso. In questo caso, puoi utilizzare la funzionalità di completamento automatico per scegliere un nome valido per il dispositivo.
  9. Fai clic su Salva.
  10. Assicurati che l'opzione Attiva, sotto il testo dello script, sia impostata su On: Editor di script con automazione basata su script completamente convalidata e attivata

6. Testa l'automazione

  1. Assicurati che il dispositivo sia collegato e visibile nell'app Google Home.
  2. Se il dispositivo è acceso, spegnilo.
  3. Nella pagina Automazioni di Google Home per il web, fai clic sul pulsante "Esegui" accanto all'automazione.
    Pulsante di esecuzione dello script
  4. Il dispositivo dovrebbe accendersi.

Ora testiamo l'automazione.

  1. Spegni il dispositivo.
  2. Modifica l'automazione e imposta l'ora "Dispositivo acceso" nella riga 7 su un'ora che avverrà tra cinque minuti.
  3. Modifica l'ora "dispositivo spento" nella riga 14 con un'ora poco dopo l'ora "dispositivo acceso".
  4. Fai clic su Validate (Convalida). Risolvi eventuali errori che potrebbero verificarsi.
  5. Fai clic su Salva.
  6. Assicurati che l'opzione Attiva sia impostata su On.
  7. Attendi che trascorrano i due orari di inizio. Il dispositivo dovrebbe accendersi e spegnersi negli orari specificati.

7. Complimenti!

Hai creato un'automazione basata su script. Ottimo.

In questo codelab hai imparato a:

  • Come progettare e scrivere un'automazione.
  • Come testare un'automazione.

Passaggi successivi

In questo codelab abbiamo creato un'automazione molto semplice. Le automazioni possono fare molto di più che programmare l'attivazione/disattivazione di un interruttore di alimentazione. Ora che conosci le nozioni di base per creare un'automazione, puoi esplorare i vari tipi di comandi iniziali, condizioni e azioni disponibili nell'ecosistema Google Home.

Prova i seguenti esercizi:

  • Aggiungi altri comandi iniziali time.schedule all'automazione.
  • Modifica l'automazione per accendere e spegnere un altro dispositivo con la stessa programmazione.
  • Senza rimuovere i comandi iniziali time.schedule, modifica l'automazione in modo che accenda i dispositivi solo quando è acceso un altro dispositivo. Fai riferimento agli script di esempio che utilizzano la clausola condition.
  • Modifica l'automazione in modo che accenda i dispositivi solo quando c'è qualcuno in casa.

Per approfondire

Per scoprire di più sulle automazioni di Google Home, consulta la documentazione di riferimento sulle automazioni: