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

  • Un telefono Android o iOS su cui è installata l'app Google Home.
  • Una lampadina smart o un altro dispositivo certificato per il badge "funziona con Google Home" e che può essere acceso o spento.

2. Configura il tuo dispositivo

Se il dispositivo non è ancora configurato, procedi a configurarlo nella tua casa.

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

3. Pianificare l'automazione basata su script

Per iniziare, pensiamo a cosa vogliamo che faccia l'automazione basata su script. Ciò include considerazioni quali:

  • Quali dispositivi vuoi automatizzare.
  • Il comando iniziale (o evento) che deve attivare l'esecuzione dell'automazione basata su script.
  • Quali condizioni aggiuntive, se presenti, controllano se l'automazione basata su script viene eseguita o meno dopo essere stata attivata.
  • Azioni da eseguire.

Ai fini di questo codelab, il nostro obiettivo è fare in modo che l'automazione basata su script faccia due cose:

  1. Accendi la lampadina (o un altro smart device) a un'ora specifica.
  2. Spegni il dispositivo a un'ora specifica.

Ora che siamo chiari sull'obiettivo esatto dell'automazione basata su script, apriremo l'editor di script e scriveremo l'automazione basata su script.

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 funzione.
  2. Regole di automazione: definisce la logica di avvio e il comportamento dell'automazione.

Metadati

I metadati dell'automazione indicano all'utente come si chiama e come fa l'automazione. I metadati sono specificati nel blocco metadata, che ha questo 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 avviene il lavoro reale. È composto da tre parti (comandi iniziali, condizioni e azioni), valutate in ordine:

1 Comandi iniziali

2 condizioni

3 azioni

I comandi iniziali sono ciò che avvia l'automazione. Almeno un comando iniziale deve restituire true per poter valutare le condizioni successive.

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

Se includi più vincoli, separali con parole chiave and e or per formare un'unica espressione logica. Affinché le azioni di un'automazione possano continuare, questa espressione deve risolversi in true.

Una condizione non equivale a una notifica di modifica dello stato:

  • Una condizione rappresenta un fatto che deve essere vero nel momento in cui il comando iniziale si "attiva" per eseguire le azioni.
  • Una notifica di modifica dello stato è un evento, ad esempio l'accensione di un altro dispositivo.

Le azioni sono operazioni eseguite quando il comando iniziale e le eventuali condizioni di vincolo sono stati soddisfatti.

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, il secondo spegne la luce.
  2. Ogni regola ha una singola azione.
  3. on: true significa che accendi la luce. Analogamente, on: false significa spegnere la luce.
  4. Ogni regola ha un singolo comando iniziale time.schedule che indica all'automazione a che ora deve essere avviata.
  5. Non ci sono condizioni in questa automazione.

5. L'automazione completa basata su script

Riunendo tutte queste parti, ecco come si presenta 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 delle automazioni, rappresentata da un'icona con tre stelle:
    Scheda Automazioni
  4. Fai clic su + Aggiungi nuovo confronto.
  5. Elimina il modello di automazione nell'editor di script.
  6. Incolla l'automazione.
  7. Sostituisci Desk light - Office con il nome e la posizione del tuo 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 riscontrati e continua a eseguire la convalida e la correzione finché non ci sono più errori. Ad esempio, il nome del tuo dispositivo potrebbe essere diverso. In questo caso, puoi utilizzare la funzionalità di completamento automatico per scegliere un nome dispositivo valido.
  9. Fai clic su Salva.
  10. Assicurati che l'opzione Attiva, sotto il testo dello script, sia nella posizione on: Editor di script con automazione basata su script completamente convalidata e attivata

6. Testa l'automazione

  1. Assicurati che il dispositivo sia collegato alla corrente e visibile nell'app Google Home.
  2. Se il dispositivo è attualmente 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. Modificare l'automazione e cambiare "dispositivo acceso" tempo nella riga 7 a un orario di cinque minuti nel futuro.
  3. Cambia "dispositivo spento" sulla riga 14 a un orario subito dopo "in orario".
  4. Fai clic su Validate (Convalida). Correggi gli eventuali errori riscontrati.
  5. Fai clic su Salva.
  6. Assicurati che l'opzione Attiva sia in posizione on.
  7. Attendi che vengano superati i due tempi del comando iniziale. Il dispositivo dovrebbe accendersi e poi spegnersi agli orari specificati.

7. Complimenti!

Hai creato un'automazione basata su script: fantastico.

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 hai compreso le nozioni di base sulla creazione di un'automazione, puoi esplorare i vari tipi di comandi iniziali, condizioni e azioni disponibili nell'ecosistema di Google Home.

Prova i seguenti esercizi:

  • Aggiungi altri comandi iniziali di time.schedule all'automazione.
  • Modifica l'automazione per accendere e spegnere un altro dispositivo alla stessa programmazione.
  • Senza rimuovere i comandi iniziali di time.schedule, modifica l'automazione in modo che attivino i dispositivi solo quando è acceso un altro dispositivo. Fai riferimento agli script di esempio che utilizzano la clausola condition.
  • Modificare l'automazione in modo che accendano 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: