Notifica

To get the most out of Google Home, choose your Help Center: U.S. Help Center, U.K. Help Center, Canada Help Center, Australia Help Center.

Scrivere automazioni basate su script con l'editor di script

L'editor di script ti consente di scrivere automazioni personalizzate per creare routine per la casa avanzate con Google Home per il web o nell'app Google Home. Per scrivere automazioni basate su script, devi avere alcune nozioni di base sul linguaggio di scripting YAML, su come strutturare lo script e su come utilizzare i componenti che lo costituiscono.

L'editor di script è attualmente disponibile in Anteprima pubblica. Puoi accedere all'editor di script con Google Home per il web o nell'app mobile Google Home dopo aver effettuato la registrazione ad Anteprima pubblica.

Scopri di più sulla creazione di automazioni con l'editor di script:

Ulteriori esercitazioni pratiche per la scrittura di automazioni basate su script e script di esempio

Visita il codelab
Importante: tutti i membri del nucleo familiare possono vedere quando vengono eseguite queste routine. Le routine sono solo per comodità e non per casi d'uso critici in termini di sicurezza. Non creare routine che potrebbero causare lesioni o danni in caso di mancato avvio o arresto. Le routine possono dipendere dalla disponibilità di una connessione internet, del Wi-Fi e di servizi funzionanti da parte di Google e di terze parti che producono i dispositivi inclusi nelle routine. Potrebbero non funzionare sempre, e Google non è responsabile di eventuali perdite o danni dovuti al loro mancato funzionamento.

Nozioni di base sul linguaggio di scripting per YAML

L'editor di script utilizza YAML, un linguaggio di scripting flessibile che ti consente di inserire istruzioni riga per riga per le azioni che vuoi far eseguire ai tuoi dispositivi e il momento in cui attivarle. Queste istruzioni sono scritte sotto forma di coppie chiave-valore.

Coppie chiave-valore

Il codice YAML è scritto come una serie di coppie chiave-valore: 

name: TV on lights off

In questo esempio, la chiave = name e il valore = TV on lights off

La chiave è essenzialmente la parola chiave per un elemento che vuoi utilizzare. Ogni chiave deve essere univoca, ma l'ordine delle chiavi non è rilevante. Ogni coppia chiave-valore inizia su una nuova riga. 

Il valore associato a una chiave può essere sotto forma di vari tipi di dati diversi.

Tipi di dati

Primitivi

Il tipo di dati primitivi include tutti i tipi di dati di base supportati dall'editor di script.

Forme primitive Tipi di valori
Bool
  • true
  • false
Numero Numero intero o decimale
Stringa

Testo normale.

I valori stringa devono essere racchiusi tra virgolette solo quando iniziano con [, {, ", ' o # oppure se la stringa contiene i due punti seguiti da uno o due spazi. Le virgolette devono corrispondere. Ad esempio, utilizza " " o ' ', non " '.

Data

Mese e giorno. Il formato è MM-GG o MM/GG.

  • 09/01
  • 09-01
Ora

L'ora può utilizzare il formato AM/PM o 24 ore. I secondi sono facoltativi. Puoi anche utilizzare il tempo relativo al sole. Ad esempio, puoi utilizzare le parole chiave sunrise e sunset seguite da una durata.

  • 12:30 am
  • 13:00:01
  • sunrise / sunset
  • sunset+30min / sunset-1hour
Data e ora

Anno, mese, giorno e ora del giorno.

Devi inserire uno spazio tra la data e l'ora.

Il formato della data è AAAA-MM-GG o AAAA/MM/GG. Il formato dell'ora è uguale a "Ora" sopra. I fusi orari non sono supportati.

  • 2022/01/01 14:00
  • 2022-12-31 sunrise+30min
Giorno della settimana
  • MON o MONDAY
  • TUE o TUESDAY
  • WED o WEDNESDAY
  • THU o THURSDAY
  • FRI o FRIDAY
  • SAT o SATURDAY
  • SUN o SUNDAY
Durata

Un periodo di tempo.

  • 30min
  • 1hour
  • 20sec
  • 1hour10min20sec

Colore esadecimale

Un codice esadecimale a sei cifre che rappresenta un colore. Non è presente il carattere # iniziale.

  • FFFFFF
  • B5D2A1
  • DFA100
Temperatura

Dati sulla temperatura. Aggiungi sempre C o F per indicare Celsius o Fahrenheit.

  • 20.5C
  • 90F
Temperatura colore

Temperatura colore in Kelvin.

  • 5000K

Strutture: coppie chiave-valore nidificate

Il tipo di dati della struttura è un "blocco" o una struttura di dati contenente più coppie chiave-valore. Queste coppie chiave-valore sono inserite sotto una singola chiave principale, con ciascun livello di nidificazione rientrato dello stesso numero di spazi o tabulazioni per indicare la gerarchia.

actions: 
  device: Light B - Living room  
  state: on

 In questo esempio, la chiave principale = actions. Il valore per actions sono 2 coppie chiave-valore nidificate: 

  • Coppia 1: chiave secondaria = device; valore = Light B - Living room
  • Coppia 2: chiave secondaria = state; valore = on

Elenchi: chiavi con più valori

Per includere più valori con un'unica chiave, crea un elenco con un trattino prima di ogni elemento dell'elenco. Un elenco può utilizzare valori di tipo di dati di struttura o primitivi, ma non entrambi contemporaneamente.

weekdays:
- MONDAY
- THURSDAY

Nell'esempio, la chiave = weekdays e il valore = un elenco che include Monday e Thursday.

Strutture avanzate: coppie ed elenchi combinati nidificati

Per automazioni più complesse, il valore può essere un elenco contenente più coppie chiave-valore nidificate.
starters:
- type: time.schedule
  at: 10:00 am
  weekdays:
  - MONDAY
  - THURSDAY
- type: time.schedule
  at: SUNSET
  weekdays:
  - MONDAY
  - THURSDAY

In questo esempio, la chiave principale = starters. Il valore di questa chiave principale = un elenco in cui ogni elemento dell'elenco include più coppie chiave-valore.

Alcuni tipi di chiavi richiedono che i valori siano in formati specifici, mentre altre chiavi ereditano le caratteristiche in base alle funzionalità del dispositivo. Scopri come sono strutturati comandi iniziali, condizioni e azioni specifici.

Sintassi del linguaggio YAML

Quando scrivi routine basate su script, attieniti ai seguenti concetti di formattazione:

Concetto Esempio

Due punti

YAML utilizza i due punti : seguiti da uno spazio per separare una chiave dal relativo valore.

state: on

Rientro

Il rientro indica la struttura e la gerarchia e definisce coppie di chiavi nidificate.

Nell'esempio, la chiave principale = metadata. Le chiavi name e description sono chiavi secondarie nidificate sotto i metadati della chiave principale. Le chiavi nidificate sono rientrate ciascuna con due spazi o con una tabulazione per indicarne la gerarchia.

metadata:
  name: TV on lights off
  description: Turn off lights when TV turns on

 

Trattino 

Un trattino seguito da uno spazio definisce un elemento dell'elenco.
weekdays:
- MONDAY
- THURSDAY

Commenti

Utilizza il simbolo del cancelletto # per aggiungere commenti o note allo script. I commenti vengono ignorati dal motore di automazione e non influiscono sull'automazione.
# This is a comment. It will be ignored.

Il modello di editor di script

Quando crei una nuova automazione, l'editor di script fornisce un modello vuoto per scrivere lo script utilizzando questa struttura:

metadata contiene il nome dell'automazione e una descrizione
automations definisce il comportamento dell'automazione
  starters definisce gli attivatori che avviano l'automazione
  condition (facoltativa) definisce le limitazioni relative al momento in cui eseguire l'automazione
  actions definisce le azioni che si verificano nell'automazione

Il modello è suddiviso in 2 blocchi principali: metadati e automazioni. Le automazioni sono ulteriormente suddivise in sezioni per comandi iniziali, condizioni e azioni.

Blocchi di metadati e automazioni

Il modello di editor di script contiene due chiavi o blocchi di primo livello principali: metadata e automations.

Il blocco metadata contiene il nome e la descrizione dell'automazione. Viene utilizzato solo per aiutarti a identificare l'automazione.

metadata:
  name: TV time
  description: When TV is on, turn on lights

Il blocco automations è il nucleo dello script di automazione. Qui puoi definire il comportamento dell'automazione utilizzando comandi iniziali, condizioni e azioni.

automations:
  starters:
    # e.g. Motion detected
  condition:
    # e.g. Between two times
  actions:
    # e.g. Turn on lights

Per capire meglio come utilizzare l'editor di script, consulta il codelab, visualizza gli script di esempio o scopri come formattare i comandi iniziali, le condizioni e le azioni nel Developer Center di Google Home.

Completamento automatico

L'editor di script ti guida nella creazione dello script fornendo suggerimenti per il completamento automatico in base ai comandi iniziali, alle condizioni e alle azioni disponibili quando: 

  • Il cursore si trova dove sono presenti opzioni valide. Ad esempio, dopo "- type: ".
  • Digiti codice con suggerimenti validi. Durante la digitazione viene visualizzato l'elenco dei filtri dei suggerimenti.

Puoi avviare il completamento automatico utilizzando la scorciatoia Ctrl + Spazio.

Premi Invio per selezionare un suggerimento dall'elenco. Il completamento automatico completerà campi aggiuntivi in base alla struttura selezionata.

Suggerimento: puoi utilizzare il completamento automatico per trovare gli stati o i comandi disponibili per il tuo dispositivo e i dispositivi disponibili per un determinato stato o comando. 

Per trovare gli stati o i comandi disponibili per il tuo dispositivo, quando scrivi lo script inserisci prima la chiave "device: ", quindi la chiave "type: ". La funzionalità di completamento automatico mostra un elenco di stati o comandi disponibili per quel dispositivo.

Esempio

starters:
- device: LED lights - Living Room
- type:

Per trovare i dispositivi disponibili per un determinato stato o comando, inserisci prima la chiave "type: ", quindi la chiave "device: ".  La funzionalità di completamento automatico mostra un elenco dei dispositivi disponibili in casa tua che supportano quello stato o comando.

Esempio

starters:
- type: device.state.OnOff
- device:

Comandi iniziali, condizioni e azioni

Le automazioni sono composte da comandi iniziali, condizioni e azioni dei dispositivi. Questi componenti definiscono il comportamento dell'automazione. 

Alcuni comandi iniziali, condizioni e azioni richiedono un tipo specifico di coppia chiave-valore di confronto per completare la logica di automazione e comunicare allo script cosa vuoi che venga valutato. Il valore deve essere un tipo di dati compatibile. Ad esempio, lo stato di una luce on può essere true o false. Per avviare l'automazione se la luce è accesa, utilizza:

state: on
is: true

Di seguito troverai i dettagli sui diversi comandi iniziali, condizioni e azioni disponibili. Per un elenco completo di comandi iniziali, condizioni e azioni, visita il Developer Center di Google Home.

Comandi iniziali

La sezione dei comandi iniziali dello script consente di specificare ciò che determina l'esecuzione dello script. I comandi iniziali si basano su ciò che il dispositivo può fare o sugli attributi che possono essere modificati, inclusi stato, ora ed eventi del dispositivo. Ad esempio, puoi utilizzare una lampadina con gli stati OnOff, Brightness e ColorSetting. Per includere più comandi iniziali, elenca ogni comando iniziale iniziando con la chiave " - type: ". Per essere eseguito, lo script deve soddisfare almeno una condizione del comando iniziale.

Consulta l'elenco completo dei comandi iniziali supportati.

Tipi di comandi iniziali

Comandi iniziali dell'assistente

Utilizza un comando iniziale assistant.command per avviare uno script quando un dispositivo con l'assistente sente un comando dell'assistente che inizia con "Hey Google".
Nota: se un'automazione viene avviata con un comando vocale e nello script è presente un'azione dell'assistente, questa verrà eseguita sul dispositivo che recepisce il comando vocale, anche se nello script è stato specificato un dispositivo diverso.
Esempio: avvia l'automazione quando qualcuno dice "Hey Google, è ora di fare festa".
starters:
- type: assistant.command.OkGoogle
  eventData: query
  is: party time

Comandi iniziali degli eventi del dispositivo

Utilizza un comando iniziale device.event per avviare lo script quando si verifica un evento specifico, ad esempio quando qualcuno suona il campanello o un sensore rileva qualcosa. Nota: non tutti gli eventi possono essere supportati.

Esempio: avvia l'automazione quando il campanello suona.
starters:
- type: device.event.DoorbellPress
  device: Doorbell - Front door
Esempio: avvia l'automazione quando la videocamera rileva la presenza di qualcuno.
starters:
- type: device.event.PersonDetection
  device: Camera - Backyard 

Esempio: avvia l'automazione quando la videocamera rileva un movimento.

starters:
- type: device.event.MotionDetection
  device: Camera - Backyard

Nota:

  • Gli eventi della videocamera richiedono una videocamera, un campanello o un display Nest compatibile e la configurazione del rilevamento degli eventi.
  • Per alcuni eventi della videocamera potrebbe essere necessario un abbonamento Nest Aware o una videocamera alimentata dalla rete. Ad esempio, il rilevamento dei suoni su Nest Cam (per esterni o interni, a batteria) funziona solo con cavo.
  • Puoi eliminare i comandi iniziali in base agli eventi e agli stati del dispositivo in modo che non si ripetano per un determinato periodo di tempo.

Comandi iniziali dello stato del dispositivo

Utilizza un comando iniziale device.state per avviare l'automazione in base allo stato di un dispositivo. Gli stati sono caratteristiche di un dispositivo, ad esempio quando la temperatura del termostato raggiunge un valore specifico, se una luce si accende o si spegne oppure quando un sensore supportato raggiunge una soglia definita. Nota: puoi eliminare i comandi iniziali in base agli eventi e agli stati del dispositivo in modo che non si ripetano per un determinato periodo di tempo.
Aggiungi lo stato per un comando iniziale dello stato del dispositivo dopo "device.state". Ad esempio, per controllare se un dispositivo è acceso, puoi utilizzare device.state.OnOff.
Per utilizzare un comando iniziale device.state, inizia con 3 chiavi: type, device e state, seguite da almeno una coppia chiave-valore di confronto.
Chiave Valore Esempio
type Il comando iniziale dello stato del dispositivo, che inizia con device.state. device.state.ArmDisarm
device Nome mostrato nell'app Google Home con il nome della stanza: Device name - Room name. Alarm - Front Door
state

I dati del campo o dello stato del comando iniziale che vuoi controllare.

Cerca il comando iniziale che vuoi utilizzare nel Developer Center di Google Home per trovare "Campi supportati" o "Dati relativi allo stato".
isArmed

Suggerimento: per sapere quali stati sono disponibili per il dispositivo, inserisci prima la chiave "device: " e poi la chiave "type: " nello script. Il completamento automatico mostra un elenco degli stati disponibili per il dispositivo.

Puoi utilizzare le seguenti coppie chiave-valore di confronto con il comando iniziale device.state:

Chiavi di confronto Tipi di valori supportati Esempio
is Stringa | Numero | Bool | Dinamico is: on
isNot Stringa | Numero | Bool | Dinamico isNot: cast
greaterThan
greaterThanOrEqualTo
Stringa | Numero | Bool | Dinamico greaterThan: 1
lessThan
lessThanOrEqualTo
Stringa | Numero | Bool | Dinamico lessThan: 10
suppressFor Durata suppressFor: 1hour

 Esempio: avvia l'automazione se il volume della TV è compreso tra 1 e 10.

starters:
- type:  device.state.Volume
  device: TV - Living room
  state:  currentVolume
  greaterThan: 1
  lessThan: 10 

Comandi iniziali per lo stato della casa

Utilizza il comando iniziale home.state per avviare lo script in base al fatto che tu sia in casa o fuori. Ciò può essere rilevato con il monitoraggio della presenza di persone.
Esempio: avvia l'automazione quando sei a casa.
starters:
- type: home.state.HomePresence
  state: homePresenceMode
  is: HOME

Comandi iniziali per giorni e orari

Utilizza un comando iniziale time per avviare l'automazione in base a giorni e orari specifici. Puoi utilizzare le seguenti coppie chiave-valore di confronto con il comando iniziale relativo a giorni e orari:
Chiavi di confronto Tipi di valori supportati Esempio
before Ora before: sunset
after Ora after: 7:00 am
weekdays Giorno della settimana weekdays: MON

Esempio: avvia l'automazione il lunedì e il martedì, 30 minuti dopo l'alba.

starters:
- type: time.schedule
  at: sunrise+30min
  weekdays:
  - MON
  - TUE

Come eliminare i comandi iniziali

Usa la chiave di confronto suppressFor per indicare all'automazione di ignorare un comando iniziale per un determinato periodo di tempo. Ad esempio, quando la videocamera rileva qualcuno, fai in modo che annunci "C'è qualcuno alla porta" e che l'annuncio non venga ripetuto per i successivi 10 minuti, anche se la videocamera continua a rilevare la presenza di una persona.

Esempio: quando una persona attraversa il corridoio al mattino per la prima volta, apri tutte le persiane ed elimina questo comando iniziale per le 20 ore successive.

metadata:
  name: Open Blinds
  description: Open blinds in the morning after motion detected
automations:
  starters:
  - type: device.event.MotionDetection
    device: Camera - Hallway
    suppressFor: 20hours
  condition:
    type: time.between
    after: 5:00     
    before: 12:00   
  actions:     
  - type: device.command.OpenClose
    openPercent: 100
  devices:
  - Blinds1 - Living Room
  - Blinds2 - Family Room

Condizioni

Le condizioni sono restrizioni facoltative relative al momento dell'esecuzione delle automazioni. Se includi condizioni, lo script verrà eseguito solo se le condizioni sono soddisfatte. Molti comandi iniziali possono essere utilizzati anche come condizioni e possono essere combinati con gli operatori logici and, or e not per esprimere controlli di condizione più complessi.
type: or
conditions:
- type: time.between
  before: sunrise
  after: sunset
  weekdays:
  - MON
  - TUE
- type: device.state.Volume
  device: My TV - Living Room
  state: currentVolume
  greaterThan: 1
  lessThan: 10

In questo esempio sono presenti una condizione time e una condizione device.state. Questo script verrà eseguito di lunedì o martedì tra il tramonto e l'alba oppure se il volume della TV è compreso tra 1 e 10.

Puoi utilizzare i seguenti tipi di condizioni:

Operatori delle condizioni

Condizione AND

Quando utilizzi la condizione and, lo script viene eseguito solo se tutte le condizioni secondarie sono soddisfatte.

Esempio: avvia l'automazione se la TV è accesa E dopo le 18:00.

condition:
  type: and
  conditions:
  - type: device.state.OnOff
    device: TV - Living Room
    state: on
    is: true
  - type: time.between
    after: 6:00 pm

Condizione OR

Quando utilizzi la condizione or, lo script viene eseguito quando si verifica una qualsiasi delle condizioni secondarie.

Esempio: avvia l'automazione se la TV è accesa OPPURE dopo le 18:00.

condition:
  type: or
  conditions:
  - type: device.state.OnOff
    device: TV - Living Room
    state: on
    is: true
  - type: time.between
    after: 6:00 pm

Condizione NOT

Quando utilizzi la condizione not, lo script non può essere eseguito se si verifica la condizione secondaria.

Esempio: non avviare l'automazione tra le 18:00 e le 20:00.

condition:
  type: not
  condition:
    type: time.between
    after: 6:00pm
    before: 8:00pm

Condizioni degli stati dei dispositivi

Utilizza una condizione device.state per limitare i casi in cui lo script può verificarsi in base allo stato di un dispositivo all'avvio dello script. Le condizioni device.state sono simili ai comandi iniziali device.state, tranne per il fatto che, anziché indicare allo script quando iniziare, limitano le situazioni in cui può verificarsi lo script.
Aggiungi lo stato di una condizione di stato del dispositivo dopo "device.state". Ad esempio, per controllare se un dispositivo è acceso, puoi utilizzare device.state.OnOff.
Per utilizzare una condizione device.state, inizia con 3 chiavi: type, device e state, seguite da almeno una coppia chiave-valore di confronto.
Chiave Valore Esempio
type La condizione dello stato del dispositivo, che inizia con device.state. device.state.OnOff
device Nome mostrato nell'app Google Home con il nome della stanza: Device name - Room name. Chromecast - Living Room
state Lo stato del comando iniziale che vuoi controllare. Cerca la condizione dello stato del dispositivo che vuoi utilizzare nel Developer Center di Google Home. state: on

Suggerimento: per sapere quali stati sono disponibili per il dispositivo, inserisci prima la chiave "device: " e poi la chiave "type: " nello script. Il completamento automatico mostra un elenco degli stati disponibili per il dispositivo.

Puoi utilizzare le seguenti coppie chiave-valore di confronto con la condizione device.state:

Chiavi di confronto Tipi di valori supportati Esempio
is Stringa | Numero | Bool | Dinamico is: on
isNot Stringa | Numero | Bool | Dinamico isNot: cast
greaterThan
greaterThanOrEqualTo
Stringa | Numero | Bool | Dinamico greaterThan: 1
lessThan
lessThanOrEqualTo
Stringa | Numero | Bool | Dinamico lessThan: 10

Esempio: avvia l'automazione se il termostato rileva un livello di umidità superiore al 55%.

condition:
  type: device.state.TemperatureSetting
  device: My Thermostat - Living Room
  state: thermostatHumidityAmbient
  greaterThan: 55

Condizioni dello stato della casa

Utilizza una condizione home.state.HomePresence per limitare il momento in cui lo script può essere eseguito a seconda che qualcuno sia in casa o fuori.

Nota: prima di creare uno script che utilizzi la condizione home.state.HomePresence, assicurati di configurare il monitoraggio della presenza di persone nell'app Google Home e verifica che il monitoraggio funzioni come previsto. La presenza in casa può essere determinata dalla posizione dei telefoni del tuo nucleo familiare, dai sensori di alcuni dispositivi Nest o dall'impostazione manuale delle modalità A casa o Fuori nell'app Google Home.

Scopri di più sul monitoraggio della presenza di persone e sulle routine A casa e Fuori:

Puoi utilizzare le seguenti coppie chiave-valore di confronto con la condizione home.state.HomePresence:
Chiavi di confronto Tipi di valori supportati Esempio
is Stringa ("HOME" o "AWAY") is: away
isNot Stringa ("HOME" o "AWAY") isNot: HOME
for Durata for: 30min
suppressFor Durata suppressFor: 1hour

Esempio: la condizione home.state.HomePresence avvia l'automazione se la tua presenza è impostata su HOME.

condition:
  type: home.state.HomePresence
  state: homePresenceMode
  is: HOME

Condizioni di giorni e orari

Utilizza la condizione time.between per limitare il momento in cui può verificarsi lo script. Puoi utilizzare le seguenti coppie chiave-valore di confronto con la condizione time.between:
Chiavi di confronto Tipi di valori supportati Esempio
before Ora before: sunset
after Ora after: 7:00 am
weekdays Giorno della settimana weekdays: MON

Esempio: avvia l'automazione solo nei fine settimana prima delle 10:00.

condition:
  type: time.between
  before: 10am
  weekdays:
  - SAT
  - SUN

Azioni

Nella sezione delle azioni dello script vengono elencate le azioni che vuoi far eseguire ai dispositivi. Per includere più azioni, elenca ogni azione iniziando con la chiave "- type: ". Per essere eseguito, lo script deve includere almeno un'azione. La maggior parte delle azioni inizia con device.command.

Puoi utilizzare i seguenti tipi di azioni:

Azioni dell'assistente

Utilizza l'azione assistant.command con gli speaker o i display per far completare all'assistente azioni come "Spegni tutte le luci" o "Dimmi che tempo fa".

Con i comandi dell'assistente puoi controllare i dispositivi per una singola stanza o per tutta la casa senza usare nomi specifici dei dispositivi. Ciò ti consente di risparmiare tempo perché i futuri dispositivi che aggiungerai all'app Home potranno funzionare automaticamente con questo comando. Per poter eseguire l'azione, i comandi dell'assistente richiedono uno speaker o un display compatibile.

Nota: se un'automazione viene avviata con un comando vocale e nello script è presente un'azione dell'assistente, questa verrà eseguita sul dispositivo che recepisce il comando vocale, anche se nello script è stato specificato un dispositivo diverso.

Esempio: usa "Accendi le luci del salotto" per accendere tutte le luci del salotto.
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn on living room lights  
  devices: My Speaker - Room Name 
Esempio: usa "Spegni tutte le luci" per spegnere tutte le luci configurate in casa.
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn off all lights  
  devices: My Speaker - Room Name 
Esempio: puoi chiedere agli speaker o ai display di fare un annuncio.
actions:
- type: assistant.command.Broadcast
  devices:  
  - My Speaker 1 - Room Name
  - My Speaker 2 - Room Name
  message: It’s dinner time.
     

Le azioni dell'assistente ti consentono anche di eseguire azioni personalizzate, ad esempio:

  • "Fammi ascoltare Hello di Adele da YouTube Music sullo speaker della camera da letto" 
  • "Fammi vedere video divertenti di gatti da YouTube sul display del salotto"
  • "Com'è il tempo domani?" 
  • "Raccontami una barzelletta" 
  • "Fammi vedere la videocamera del vialetto sul display dello studio"

Nota: le azioni dell'assistente che richiedono l'attivazione di Voice Match o dei risultati personali non funzioneranno con le automazioni domestiche create con l'editor di script.

Azioni del dispositivo

Utilizza l'azione device.command per controllare o regolare un dispositivo. Ogni comando di azione ha un proprio insieme di caratteristiche e strutture. Puoi aggiungere comandi allo script aggiungendo l'azione del comando per un dispositivo dopo "device.command". Ad esempio, per accendere un dispositivo, puoi usare device.command.OnOff. Un'azione device.command deve includere le seguenti informazioni:
Chiave Valore Esempio
type L'azione del dispositivo, che inizia con device.command. device.command.OpenClose
devices Nome del dispositivo indicato nell'app Google Home con nome della stanza: Device name - Room name. Per includere più dispositivi, crea un elenco. Blinds - Bedroom

Suggerimento: per trovare quali azioni o comandi sono disponibili per il dispositivo, inserisci prima la chiave "device:" e poi la chiave "type:"; il completamento automatico mostrerà un elenco di azioni disponibili per il dispositivo.

Molte azioni device.command hanno chiavi aggiuntive che specificano l'input richiesto per il comando. Ad esempio, device.command.ThermostatTemperatureSetpoint richiede una coppia chiave-valore thermostatTemperatureSetpoint per indicare al termostato il nuovo valore su cui vuoi impostare la temperatura.

Per scoprire di più su come utilizzare i comandi, cerca l'azione correlata nel Developer Center di Google Home e segui la struttura dell'azione che vuoi usare.

Esempio: accendi la TV in soggiorno.

actions:
  type: device.command.OnOff
  devices: TV - Living room
  on: true

 Esempio: accendi una luce e spegnila dopo 5 minuti.

actions:
- type: device.command.OnOff
  devices: Light A - Living Room
  on: true
- type: time.delay
  for: 5min
- type: device.command.OnOff
  devices: Light A - Living Room
  on: false

Azioni di notifica

Utilizza l'azione home.command.Notification per fare in modo che il tuo script invii notifiche ai dispositivi mobili dei membri della casa. Ad esempio, puoi ricevere notifiche quando gli elettrodomestici connessi a prese smart si spengono o passano alla modalità offline.

actions:
- type: home.command.Notification
  members:
  - Alex - cloudysanfrancisco@gmail.com
  - Kim - jeffersonloveshiking@gmail.com
  title: It’s movie time!
  body: Join me in the living room
 

Azioni sul tempo

Utilizza l'azione time.delay per fare in modo che lo script attenda un periodo di tempo definito tra due azioni nell'elenco, invece di eseguire tutte le azioni contemporaneamente. Puoi aggiungere più intervalli allo script. Ad esempio, puoi fare in modo che lo script attenda 10 secondi tra ogni azione.
Esempio: accendi le luci e spegnile dopo 30 secondi.
actions:
- type: device.command.OnOff
  devices: 
    - Bedside Lamp - Bedroom
    - Ceiling Light - Bedroom
  on: true
- type: time.delay
  for: 30sec
- type: device.command.OnOff
  devices: 
    - Bedside Lamp - Bedroom
    - Ceiling Light - Bedroom
  on: false

Risorse

Esercitarsi a scrivere uno script

Per iniziare, creeremo un'automazione molto semplice, ma molto diffusa: "Spegni le luci quando la TV si accende".

Nota: se non hai Chromecast, luci smart o dispositivi simili, puoi comunque continuare a seguire la procedura dello script per capire come funziona, ma alla fine lo script non verrà eseguito.

  1. Apri home.google.com/automations e accedi al tuo account.
  2. Fai clic su Aggiungi nuovo .
  3. Compila le informazioni sui metadati. In questo script, name = TV on lights off e description = Turn off lights when TV turns on. Assicurati di formattare lo script correttamente.
    metadata:
      name: TV on lights off
      description: Turn off lights when TV turns on.
  4. Ora creeremo l'automazione. Aggiungi i comandi iniziali creando una nuova riga sotto "starters:" che inizi con "- type: ". 
    • Per creare una nuova riga, fai rientrare la riga di 2 spazi o premi Tab una volta dopo l'inizio di "starters:" come mostrato di seguito.
    • Per includere più comandi iniziali, ogni comando iniziale deve iniziare con un trattino e uno spazio.
      metadata:
        name:  TV on lights off
        description:  Turn off lights when TV turns on
      automations:
        starters:
        - type:
  5. Aggiungi il comando iniziale device.state. Ricorda che per utilizzare un comando iniziale device.state sono necessarie 3 chiavi: type, device e state, seguite da almeno una coppia chiave-valore di confronto. L'editor di script ti aiuterà con la struttura fornendo suggerimenti per il completamento automatico in base a comandi iniziali, condizioni e azioni disponibili. In questo script:
    • Tipo = device.state.OnOff. Questo è lo stato del dispositivo che verrà valutato per avviare l'automazione.  
    • Dispositivo = Chromecast - Living Room. Questo è il nome del dispositivo così come viene visualizzato nell'app Google Home. 
    • Stato = on. On è il campo supportato o i dati di stato per lo stato del dispositivo OnOff.
    • La coppia chiave-valore di confronto = is: true. Il valore di questa chiave di confronto è un tipo di dati primitivi. Lo script verrà eseguito se la TV è accesa.
      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on
      automations:
        starters:
        - type: device.state.OnOff
          device: Chromecast - Living Room
          state: on
          is: true 

      Per fare un confronto, diamo un'occhiata a uno script simile con un comando iniziale diverso. Nel seguente script, l'automazione inizia quando il volume è compreso tra 1 e 10, anziché quando la TV si accende. Per apportare questa modifica, abbiamo sostituito lo stato OnOff con Volume e abbiamo modificato lo stato in currentVolume in modo che corrisponda al nuovo attributo. Inoltre, abbiamo modificato le coppie chiave-valore di confronto in due coppie nidificate che creano un intervallo: greaterThan: 1 e lessThan: 10. Per altri esempi, ecco un elenco completo di comandi iniziali che puoi utilizzare.

      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on
      automations:
        starters:
        - type: device.state.Volume
          device: Chromecast - Living Room
          state: currentVolume
          greaterThan: 1
          lessThan: 10
  6. Fai clic su Salva per salvare lo script in qualsiasi momento. Quando salvi uno script, lo script editor convalida automaticamente lo script e verifica la presenza di errori. È impossibile eseguire uno script non valido.
  7. Ora aggiungi un'azione allo script. Per aggiungere azioni, crea una nuova riga sotto "actions:" che inizi con " - type".  Per creare una nuova riga, fai rientrare la riga di due spazi dopo l'inizio di "actions:" come mostrato di seguito.
    • Per includere altre azioni, ogni azione deve iniziare con un trattino e uno spazio.
      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on.
      automations:
        starters:
        - type: device.state.OnOff
          device: Chromecast - Living Room
          state: on
          is: true
        actions:
        - type: 
  8. Per spegnere le luci, utilizzeremo l'azione device.command. Per utilizzare l'azione device.command, includeremo le seguenti informazioni: 
    • Tipo = device.command.OnOff. Questo è il nome del comando o dell'azione. Tieni presente che i comandi possono avere più comandi nidificati sotto i tuoi dispositivi e che ciascuno ha un proprio stato. 
    • Dispositivi = un elenco contenente Floor Lamp - Living Room e Overhead Light - Living Room. Questi sono i nomi delle nostre luci, che vengono visualizzati nell'app Google Home. Per includere più luci, abbiamo elencato ogni dispositivo su righe separate, ognuna con un trattino iniziale.
    • Lo stato desiderato del comando = on: false. Questa riga indica alle nostre luci di spegnersi.
      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on.
      automations:
        starters:
        - type: device.state.OnOff
          device: Chromecast - Living Room
          state: on
          is: true
        actions:
        - type: device.command.OnOff
          devices:
          - Floor Lamp - Living Room
          - Overhead Light - Living Room 
          on: false
  9. Fai clic su Salva per salvare lo script. Se non ci sono errori, lo script verrà attivato automaticamente: ogni volta che la TV si accende, la luce si spegne. Se lo script non è ancora pronto per essere eseguito, mettilo in pausa disattivando Attiva.

Per continuare a fare pratica, prova a cambiare parte dello script per utilizzare diversi comandi iniziali, tipi di dati, più azioni o un'ulteriore condizione come time.between. Per scoprire di più, puoi anche esaminare gli script di esempio e consultare il codelab. Per informazioni dettagliate su comandi iniziali, azioni e condizioni, visita il Developer Center di Google Home.

Guida per le automazioni basate su script

  • Puoi trovare aiuto per gli script e scoprire su cosa stanno lavorando gli altri utenti nella community di domotica di Google Home.
  • Affinché le automazioni funzionino, gli script devono utilizzare un codice valido. Se esiste un errore, viene visualizzato un messaggio. Scopri di più su errori e avvisi nell'editor di script. 
  • Per convalidare il codice, tocca o fai clic su Convalida nell'editor di script o prova a salvare lo script. Ecco alcuni errori comuni da tenere in considerazione:
  • Se lo script viene salvato, ma l'automazione non funziona come previsto, verifica manualmente che ogni componente dello script funzioni. Ad esempio, se hai creato uno script per accendere la luce e modificare la luminosità al tramonto, prova a completare queste attività con un comando dell'assistente per confermare che ogni singola funzione operi nel modo corretto. Verifica inoltre che:
    • Il tuo dispositivo sia aggiunto o collegato nell'app Google Home.
    • Il dispositivo sia connesso e online.
    • Il nome, i comandi iniziali, le condizioni e le azioni del dispositivo siano scritti correttamente.
    • Lo script abbia rientro e formattazione appropriati.
  • Con Google Home per il web, puoi anche accedere ai log di automazione sotto lo script per visualizzare la cronologia dell'automazione e identificare potenziali problemi. Scopri di più sui tipi di messaggi visualizzati nei log di automazione.
  • Prova a utilizzare la funzionalità di IA generativa sperimentale dell'editor di script per descrivere l'automazione che desideri e ottenere quindi una bozza di script che potrai esaminare e modificare.
  • Scopri di più sulle nozioni di base sulle routine e su come risolvere i relativi problemi.
  • Scopri di più su come creare e modificare le automazioni basate su script.

È stato utile?

Come possiamo migliorare l'articolo?
Ricerca
Cancella ricerca
Chiudi ricerca
Menu principale
11087186946009099323
true
Cerca nel Centro assistenza
true
true
true
true
true
1633396
false
false