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:- Creare automazioni di domotica avanzate con l'editor di script
- Comandi iniziali, condizioni e azioni supportati
- Visita il nostro codelab per un esempio guidato sulla creazione del tuo primo script
Ulteriori esercitazioni pratiche per la scrittura di automazioni basate su script e script di esempio
Visita il codelabNozioni 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 |
|
Numero | Numero intero o decimale |
Stringa |
Testo normale. I valori stringa devono essere racchiusi tra virgolette solo quando iniziano con |
Data |
Mese e giorno. Il formato è MM-GG o MM/GG.
|
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
|
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.
|
Giorno della settimana |
|
Durata |
Un periodo di tempo.
|
Colore esadecimale |
Un codice esadecimale a sei cifre che rappresenta un colore. Non è presente il carattere # iniziale.
|
Temperatura |
Dati sulla temperatura. Aggiungi sempre C o F per indicare Celsius o Fahrenheit.
|
Temperatura colore |
Temperatura colore in Kelvin.
|
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
- 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 |
state: on |
Rientro Il rientro indica la struttura e la gerarchia e definisce coppie di chiavi nidificate. Nell'esempio, la chiave principale = |
|
Trattino Un trattino seguito da uno spazio definisce un elemento dell'elenco. |
|
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
assistant.command
per avviare uno script quando un dispositivo con l'assistente sente un comando dell'assistente che inizia con "Hey Google".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.
starters: - type: device.event.DoorbellPress device: Doorbell - Front door
starters: - type: device.event.PersonDetection device: Camera - Backyard
Esempio: avvia l'automazione quando la videocamera rileva un movimento.
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
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.device.state
". Ad esempio, per controllare se un dispositivo è acceso, puoi utilizzare device.state.OnOff
.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 |
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
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.starters: - type: home.state.HomePresence state: homePresenceMode is: HOME
Comandi iniziali per giorni e orari
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
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
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.device.state
". Ad esempio, per controllare se un dispositivo è acceso, puoi utilizzare device.state.OnOff
.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 |
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
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:
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
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
actions: - type: assistant.command.OkGoogle okGoogle: Turn off all lights devices: My Speaker - Room Name
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
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
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.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.
- Apri home.google.com/automations e accedi al tuo account.
- Fai clic su Aggiungi nuovo .
- 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.
- 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:
- Per creare una nuova riga, fai rientrare la riga di 2 spazi o premi Tab una volta dopo l'inizio di "
- Aggiungi il comando iniziale
device.state
. Ricorda che per utilizzare un comando iniziale device.state sono necessarie 3 chiavi:type
,device
estate
, 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
conVolume
e abbiamo modificato lo stato incurrentVolume
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
elessThan: 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
- Tipo =
- 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.
- 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:
- Per includere altre azioni, ogni azione deve iniziare con un trattino e uno spazio.
- 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
eOverhead 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
- Tipo =
- 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:
- Assicurati di utilizzare il nome del dispositivo corretto nel formato Nome dispositivo - Nome stanza. In caso di dubbi, controlla il nome del dispositivo nell'app Google Home.
- Accertati che il tuo dispositivo supporti la funzione che desideri venga eseguita. Puoi anche utilizzare il completamento automatico per trovare le opzioni disponibili.
- Assicurati di includere un'azione. Le azioni sono necessarie per poter eseguire un'automazione.
- 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.