El editor de secuencias de comandos te permite escribir tus propias automatizaciones para crear rutinas de la casa avanzadas en Google Home para la Web o en la aplicación Google Home. Para escribir automatizaciones con secuencias de comandos, necesitas saber algunos conceptos básicos sobre el lenguaje de secuencias de comandos YAML, cómo estructurar una secuencia de comandos y cómo usar sus componentes.
El editor de secuencias de comandos está disponible en la Vista Previa Pública. Puedes acceder a él con Google Home para la Web o en la aplicación Google Home para móviles después de unirte a la Vista Previa Pública.
Consulta más información sobre cómo crear automatizaciones con el editor de secuencias de comandos:- Crear automatizaciones del hogar avanzadas con el editor de secuencias de comandos
- Activadores, condiciones y acciones compatibles
- Visita nuestro codelab para ver un ejemplo guiado de cómo crear tu primera secuencia de comandos
- Práctica sobre cómo escribir una automatización con secuencias de comandos y ejemplos de secuencias de comandos
Conceptos básicos del lenguaje de secuencias de comandos YAML
El editor de secuencias de comandos usa YAML, un lenguaje flexible que permite introducir instrucciones línea por línea para definir qué acciones quieres que realicen tus dispositivos y cuándo quieres que se lleven a cabo. Estas instrucciones se escriben en forma de pares clave-valor.
Pares clave-valor
YAML se escribe en forma de una serie de pares clave-valor:
name: TV on lights off
En el ejemplo de arriba, la clave es name
y el valor es TV on lights off
.
Básicamente, la clave es la palabra clave de un elemento que quieras usar. Cada clave debe ser única, pero el orden de las claves no importa. Cada par clave-valor comienza en una nueva línea.
El valor asociado a una clave puede escribirse de diferentes maneras según el tipo de datos.
Tipos de datos
Primitivos
El tipo de datos primitivo incluye todos los tipos de datos básicos que admite el editor de secuencias de comandos.
Formatos primitivos | Tipos de valores |
---|---|
Booleano |
|
Número | Número entero o decimal |
Cadena |
Texto sin formato Los valores de cadena solo requieren comillas si empiezan por |
Fecha |
Mes y día. El formato debe ser MM-DD o MM/DD.
|
Hora |
Puedes indicar las horas usando el formato a. m./p. m. o el formato de 24 horas. Los segundos son opcionales. También puedes usar marcas de tiempo que hagan referencia a la posición del sol. Por ejemplo, puedes usar las palabras clave
|
Fecha y hora |
Año, mes, día y hora del día. Debes incluir un espacio entre la fecha y la hora. El formato de fecha debe ser AAAA-MM-DD o AAAA/MM/DD. El formato de hora es el mismo que se indica en la sección anterior "Hora". No se admite el uso de zonas horarias.
|
Día de la semana |
|
Duración |
Un periodo de tiempo.
|
Color hexadecimal |
Un código hexadecimal de seis dígitos que representa un color. No se debe incluir el carácter "#" al principio.
|
Temperatura |
Datos de temperatura. Debes añadir siempre "C" o "F" para indicar si se refiere a grados Celsius o Fahrenheit.
|
Temperatura del color |
Temperatura del color en kelvin.
|
Estructuras: pares clave-valor anidados
El tipo de datos de estructura es un bloque o una estructura de datos que contiene varios pares clave-valor. Estos pares clave-valor están anidados bajo una sola clave superior y cada nivel de anidación tiene una sangría con el mismo número de espacios o tabulaciones para indicar la jerarquía.
actions: device: Light B - Living room state: on
En el ejemplo de arriba, la clave superior es actions
. El valor de actions
consta de dos pares clave-valor anidados:
- Par 1: la clave secundaria es
device
y el valor esLight B - Living room
- Par 2: la clave secundaria es
state
y el valor eson
Listas: claves con varios valores
Para incluir varios valores con una sola clave, debes crear una lista añadiendo un guion (-) delante de cada elemento de la lista. Una lista puede usar valores cuyo tipo de datos sea de estructura o primitivo, pero no ambos a la vez.
weekdays: - MONDAY - THURSDAY
En el ejemplo de arriba, la clave es weekdays
y el valor es una lista que contiene los valores Monday
y Thursday
.
Estructuras avanzadas: combinaciones de pares anidados y listas
- type: time.schedule at: 10:00 am weekdays: - MONDAY - THURSDAY - type: time.schedule at: SUNSET weekdays: - MONDAY - THURSDAY
En el ejemplo de arriba, la clave superior es starters
. El valor de esta clave superior es una lista en la que cada elemento de la lista contiene varios pares clave-valor.
Algunos tipos de claves requieren que los valores tengan formatos específicos, y otras claves heredan características en función de las capacidades de un dispositivo. Consulta cómo se estructuran algunos activadores, condiciones y acciones concretos.
Sintaxis del lenguaje YAML
Cuando escribas rutinas con secuencias de comandos, aplica estos conceptos de formato:
Concepto | Ejemplo |
---|---|
Dos puntos En YAML se usan dos puntos |
state: on |
Sangría La sangría sirve para indicar la estructura y la jerarquía, así como para definir pares de claves anidados. En el ejemplo, la clave superior es |
|
Guion Un guion seguido de un espacio define un elemento de una lista. |
|
Comentarios Utiliza el signo de almohadilla # para añadir comentarios o notas a una secuencia de comandos. El motor de automatización ignora los comentarios, por lo que no afectarán a la automatización. |
# This is a comment. It will be ignored. |
Plantilla del editor de secuencias de comandos
Cuando crees una nueva automatización, el editor de secuencias de comandos te proporcionará una plantilla vacía para que escribas una secuencia de comandos usando esta estructura:
metadata |
Contiene el nombre de la automatización y una descripción. |
automations |
Define el comportamiento de la automatización. |
starters |
Define los activadores que inician la automatización. |
condition |
Define las restricciones sobre cuándo debe ejecutarse la automatización (opcional). |
actions |
Define las acciones que se llevan a cabo en la automatización. |
La plantilla se divide en dos bloques principales: metadatos y automatizaciones. Además, las automatizaciones se subdividen en estas secciones: activadores, condiciones y acciones.
Bloques de metadatos y automatizaciones
La plantilla del editor de secuencias de comandos contiene dos claves superiores de primer nivel (también llamadas "bloques"): metadata
y automations
.
El bloque metadata
contiene el nombre y la descripción de la automatización. Solo se usa para ayudarte a identificar la automatización.
metadata: name: TV time description: When TV is on, turn on lights
El bloque automations
es el núcleo de la secuencia de comandos de la automatización. En este bloque, debes definir el comportamiento de la automatización usando activadores, condiciones y acciones.
automations: starters: # e.g. Motion detected condition: # e.g. Between 2 times actions: # e.g. Turn on lights
Para entender mejor cómo se usa el editor de secuencias de comandos, visita nuestro codelab, consulta ejemplos de secuencias de comandos o descubre cómo aplicar el formato correcto a activadores, condiciones y acciones concretos en el Centro para Desarrolladores de Google Home.
Autocompletar
El editor de secuencias de comandos te ayudará a escribir tu secuencia de comandos ofreciéndote sugerencias de autocompletado en función de los activadores, las condiciones y las acciones disponibles cuando se produzca alguna de estas situaciones:
- Cuando el cursor esté situado en un lugar donde haya opciones válidas. Por ejemplo, después de
- type:
.- Cuando escribas código con sugerencias válidas. A medida que escribas, aparecerá la lista de sugerencias.
Para iniciar manualmente la función de autocompletar, usa la combinación de teclas Ctrl + Espacio.
Pulsa Intro para seleccionar una sugerencia de la lista. La función de autocompletar rellenará los campos adicionales según la estructura que selecciones.
Nota: Puedes usar la función de autocompletar para consultar qué estados o comandos hay disponibles para tu dispositivo y qué dispositivos pueden configurarse con un determinado estado o comando.
Para saber qué estados o comandos de dispositivo están disponibles con tu dispositivo, al escribir la secuencia de comandos, escribe primero la clave device:
y, después, type:
. La función de autocompletar mostrará una lista de los estados o los comandos disponibles con ese dispositivo.
Ejemplo
starters: - device: LED lights - Living Room - type:
Para saber qué dispositivos están disponibles con un determinado estado o comando de dispositivo, escribe primero la clave type:
y, después, device:
. La función de autocompletar mostrará una lista de los dispositivos disponibles de tu casa que sean compatibles con ese estado o comando.
Ejemplo
starters: - type: device.state.OnOff - device:
Activadores, condiciones y acciones
Las automatizaciones se componen de activadores, condiciones y acciones de dispositivo. Estos componentes definen el comportamiento de la automatización.
Algunos activadores, condiciones y acciones requieren un tipo específico de par clave-valor de comparación para ayudar a completar la lógica de automatización y hacer que la secuencia de comandos sepa lo que quieres que se evalúe. El valor debe ser un tipo de datos compatible. Por ejemplo, el estado on
de una luz puede ser true
o false
. Para iniciar la automatización si la luz está encendida, se usaría el siguiente código:
state: on is: true
A continuación, encontrarás información sobre los diferentes activadores, condiciones y acciones disponibles. Para ver una lista completa de activadores, condiciones y acciones, visita el Centro para Desarrolladores de Google Home.
Activadores
En la sección de activadores de la secuencia de comandos debes especificar qué hará que la secuencia de comandos se ejecute. Los activadores se basan en acciones que tu dispositivo puede realizar o en atributos que se pueden cambiar, como las horas y los estados y eventos de dispositivo. Por ejemplo, puedes usar una bombilla que tenga los estados OnOff
, Brightness
y ColorSetting
. Para incluir varios activadores, debes crear una lista donde cada activador empiece por la clave - type:
. La secuencia de comandos debe cumplir al menos una condición de activador para ejecutarse.
Consulta la lista completa de activadores compatibles.
Tipos de activadores
Activadores del Asistente
assistant.command
para iniciar una secuencia de comandos cuando un dispositivo con el Asistente oiga un comando que empiece por "Hey Google".starters: - type: assistant.command.OkGoogle eventData: query is: party time
Activadores de eventos de dispositivo
Utiliza un activador device.event
para hacer que la secuencia de comandos se inicie cuando se produzca un evento concreto; por ejemplo, cuando alguien llame al timbre de tu casa o un sensor detecte algo. Nota: No todos los eventos son compatibles.
starters: - type: device.event.DoorbellPress device: Doorbell - Front door
starters: - type: device.event.PersonDetection device: Camera - Backyard
Ejemplo: Iniciar la automatización cuando tu cámara detecte movimiento.
Nota:
- Para poder ver los eventos de cámara, necesitarás una cámara, un timbre o una pantalla Nest compatible y tendrás que configurar la detección de eventos.
- Es posible que algunos eventos de cámara requieran una suscripción a Nest Aware o una cámara conectada a la red eléctrica. Por ejemplo, la detección de sonido solo funcionará en Nest Cam (de exterior o interior, con batería) si se instala con cable.
- Puedes suprimir los activadores en determinados eventos y estados de dispositivos para que no se repitan durante un periodo determinado.
Activadores de estado de dispositivo
device.state
para hacer que la automatización se inicie en función del estado de un dispositivo. Los estados son las características de un dispositivo. Por ejemplo: cuando tu termostato detecte que tu casa ha alcanzado una temperatura concreta, cuando alguien encienda o apague una luz, o cuando un sensor compatible alcance un umbral determinado.
device.state
. Por ejemplo, para comprobar si un dispositivo está encendido, puedes usar device.state.OnOff
.device.state
, empieza con tres claves: type
, device
y state
. A continuación, indica al menos un par clave-valor de comparación.Clave | Valor | Ejemplo |
type |
El activador de estado de dispositivo, que empieza por device.state . |
device.state.ArmDisarm |
device |
El nombre de dispositivo que aparece en la aplicación Google Home, con el nombre de la habitación: Device name - Room name . |
Alarm - Front Door |
state |
Los datos del estado o los campos del activador que quieras comprobar. Busca el activador que quieras usar en el Centro para Desarrolladores de Google Home y consulta los "Campos compatibles" o "Datos de estado". |
isArmed |
Puedes usar los siguientes pares clave-valor de comparación con el activador device.state:
Claves de comparación | Tipos de valores admitidos | Ejemplo |
---|---|---|
is |
Cadena | Número | Booleano | Dinámico | is: on |
isNot |
Cadena | Número | Booleano | Dinámico | isNot: cast |
greaterThan |
Cadena | Número | Booleano | Dinámico | greaterThan: 1 |
lessThan lessThanOrEqualTo |
Cadena | Número | Booleano | Dinámico | lessThan: 10 |
suppressFor |
Duración | suppressFor: 1hour |
Ejemplo: Iniciar la automatización si el volumen de tu televisión está entre 1 y 10.
starters: - type: device.state.Volume device: TV - Living room state: currentVolume greaterThan: 1 lessThan: 10
Activadores de estado de una casa
home.state
para hacer que la secuencia de comandos se inicie en función de si estás en casa o has salido. Esto se puede detectar usando la detección de presencia.starters: - type: home.state.HomePresence state: homePresenceMode is: HOME
Activadores de tiempo
time
para iniciar la automatización en días y horas específicos. Puedes usar con dicho activador los siguientes pares clave-valor de comparación:Claves de comparación | Tipos de valores admitidos | Ejemplo |
---|---|---|
before |
Hora | before: sunset |
after |
Hora | after: 7:00 am |
weekdays |
Día de la semana | weekdays: MON |
Ejemplo: Iniciar la automatización los lunes y los martes, 30 minutos después del amanecer.
starters: - type: time.schedule at: sunrise+30min weekdays: - MON - TUE
Cómo suprimir los activadores
Usa la tecla de comparación suppressFor
para indicar a tu automatización que ignore un activador durante un periodo determinado. Por ejemplo, si la cámara detecta a alguien, anunciará "Hay alguien en la puerta" y no volverá a anunciarlo durante los próximos 10 minutos, aunque la cámara siga detectando a alguien.
Ejemplo: Subir todas las persianas y suprimir este activador durante las próximas 20 horas cuando se detecte a alguien en el salón por primera vez esa mañana.
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
Condiciones
and
, or
y not
para expresar condiciones más complejas.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
En el ejemplo de arriba, hay una condición de tiempo y una condición device.state
. Esta secuencia de comandos se ejecutará los lunes y los martes entre el amanecer y el atardecer, o si el volumen de la televisión está entre 1 y 10.
Puedes usar los siguientes tipos de condiciones:
Operadores de condiciones
Condición AND
Cuando usas la condición and
, la secuencia de comandos solo se ejecutará si se cumplen todas las condiciones secundarias.
Ejemplo: Iniciar la automatización si la televisión está encendida Y es más tarde de las 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
Condición OR
Cuando se utiliza la condición or
, la secuencia de comandos se ejecutará si se cumple cualquiera de las condiciones secundarias.
Ejemplo: Iniciar la automatización si la televisión está encendida O es más tarde de las 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
Condición NOT
Cuando se utiliza la condición not
, la secuencia de comandos no se ejecutará si se cumple la condición secundaria.
Ejemplo: Iniciar la automatización si no es entre las 18:00 y las 20:00.
condition: type: not condition: type: time.between after: 6:00pm before: 8:00pm
Condiciones de estado de dispositivos
device.state
para limitar cuándo puede ejecutarse la secuencia de comandos en función del estado de un dispositivo y en el momento de iniciarse la secuencia. Las condiciones device.state
son similares a los activadores device.state
, salvo que, en lugar de indicar a la secuencia de comandos cuándo debe iniciarse, las condiciones limitan las situaciones en las que se puede ejecutar la secuencia de comandos.device.state
. Por ejemplo, para comprobar si un dispositivo está encendido, puedes usar device.state.OnOff
.device.state
, empieza con tres claves: type
, device
y state
. A continuación, indica al menos un par clave-valor de comparación.Clave | Valor | Ejemplo |
---|---|---|
type |
Condición de estado de dispositivo, que empieza por device.state . |
device.state.OnOff |
device |
El nombre de dispositivo que aparece en la aplicación Google Home, con el nombre de la habitación: Device name - Room name . |
Chromecast - Living Room |
state |
El estado del activador que quieras comprobar. Busca la condición de estado de dispositivo que quieras usar en el Centro para Desarrolladores de Google Home. |
state: on |
Consejo: Si quieres saber qué estados de dispositivo están disponibles con tu dispositivo, escribe primero la clave device:
y, después, la clave type:
en la secuencia de comandos. La función de autocompletar mostrará una lista de los estados disponibles con ese dispositivo.
Puedes usar los siguientes pares clave-valor de comparación con la condición device.state
:
Claves de comparación | Tipos de valores admitidos | Ejemplo |
---|---|---|
is |
Cadena | Número | Booleano | Dinámico | is: on |
isNot |
Cadena | Número | Booleano | Dinámico | isNot: cast |
greaterThan |
Cadena | Número | Booleano | Dinámico | greaterThan: 1 |
lessThan lessThanOrEqualTo |
Cadena | Número | Booleano | Dinámico | lessThan: 10 |
Ejemplo: Iniciar la automatización si tu termostato detecta un nivel de humedad superior al 55 %.
condition: type: device.state.TemperatureSetting device: My Thermostat - Living Room state: thermostatHumidityAmbient greaterThan: 55
Condiciones de estado de una casa
home.state.HomePresence
para limitar cuándo puede ejecutarse la secuencia de comandos en función de si hay alguien en casa o no.home.state.HomePresence
, configura la Detección de presencia en la aplicación Google Home y asegúrate de que funcione correctamente. Se puede determinar si hay alguien en casa en función de la ubicación de los teléfonos de tu casa o mediante los sensores de algunos dispositivos Nest, o bien cambiando manualmente entre las rutinas En casa y Ausente en la aplicación Google Home.Consulta más información sobre la detección de presencia y las rutinas En casa y Ausente:
home.state.HomePresence
:Claves de comparación | Tipos de valores admitidos | Ejemplo |
---|---|---|
is |
Cadena ("HOME" o "AWAY") | is: away |
isNot |
Cadena ("HOME" o "AWAY") | isNot: HOME |
for |
Duración | for: 30min |
suppressFor |
Duración | suppressFor: 1hour |
Ejemplo: La condición home.state.HomePresence
iniciará la automatización si el estado de tu presencia es "En casa".
condition: type: home.state.HomePresence state: homePresenceMode is: HOME
Condiciones de tiempo
time.between
para limitar cuándo puede ejecutarse la secuencia de comandos. Puedes usar los siguientes pares clave-valor de comparación con la condición time.between
:Claves de comparación | Tipos de valores admitidos | Ejemplo |
---|---|---|
before |
Hora | before: sunset |
after |
Hora | after: 7:00 am |
weekdays |
Día de la semana | weekdays: MON |
Ejemplo: Iniciar la automatización solo los fines de semana antes de las 10:00.
condition: type: time.between before: 10am weekdays: - SAT - SUN
Acciones
En la sección de acciones de la secuencia de comandos, debes indicar qué quieres que hagan tus dispositivos. Para incluir varias acciones, debes crear una lista donde cada acción empiece por la clave - type:
. La secuencia de comandos debe tener al menos una acción para que pueda ejecutarse. La mayoría de las acciones empiezan por device.command
.
Puedes usar los siguientes tipos de acciones:
Acciones del Asistente
Utiliza la acción assistant.command
con tus altavoces o pantallas para que el Asistente complete acciones como apagar todas las luces o decirte qué tiempo hace.
Con los comandos del Asistente, puedes controlar los dispositivos según la habitación en la que estén o los dispositivos de toda tu casa sin utilizar sus nombres específicos. Los dispositivos que añadas después a la aplicación Home funcionarán de forma automática con los comandos. Así, ahorrarás tiempo. Para usar comandos del Asistente, necesitas un altavoz o una pantalla compatible.
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.
Con las acciones del Asistente, también podrás llevar a cabo acciones personalizadas como las siguientes:
- Pedir al Asistente que ponga Hello de Adele con YouTube Music en el altavoz del dormitorio
- Pedirle que ponga vídeos graciosos de gatos de YouTube en la pantalla del salón
- Preguntarle qué tiempo hará mañana
- Pedirle que te cuente un chiste
- Pedirle que te enseñe, por ejemplo, la cámara del acceso al garaje en la pantalla del despacho de tu casa
Acciones de dispositivo
device.command
para controlar o ajustar un dispositivo. Cada comando de acción tiene su propio conjunto de características y su propia estructura. Para añadir comandos a tu secuencia de comandos, añade cada acción de comando de un dispositivo después de device.command
. Por ejemplo, para activar un dispositivo, puedes utilizar device.command.OnOff
. Cada acción device.command
debe incluir la siguiente información:Clave | Valor | Ejemplo |
---|---|---|
type |
La acción de dispositivo, que debe empezar por device.command . |
device.command.OpenClose |
devices |
El nombre de dispositivo que aparece en la aplicación Google Home con el nombre de la habitación: "Device name - Room name". Para incluir varios dispositivos, debes crear una lista. | Blinds - Bedroom |
Consejo: Para saber qué acciones o comandos están disponibles con tu dispositivo, escribe primero la clave "device:" y, después, la clave "type:". La función de autocompletar mostrará una lista de las acciones disponibles con ese dispositivo.
Muchas acciones device.command
tienen claves adicionales que especifican lo que hay que introducir con ese comando. Por ejemplo, device.command.ThermostatTemperatureSetpoint
requiere un par clave-valor thermostatTemperatureSetpoint
para indicarle al termostato la nueva temperatura que quieres establecer.
Para obtener más información sobre cómo usar los comandos, busca la acción relacionada con el comando correspondiente en el Centro para Desarrolladores de Google Home y sigue la estructura adecuada según la acción que quieras usar.
Ejemplo: Encender la televisión del salón.
actions: type: device.command.OnOff devices: TV - Living room on: true
Ejemplo: Encender una luz y apagarla al cabo de 5 minutos.
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
Acciones de notificación
Utiliza la acción home.command.Notification
para que la secuencia de comandos envíe notificaciones a los dispositivos móviles de los miembros de la casa. Por ejemplo, puedes recibir notificaciones cuando los electrodomésticos conectados a enchufes inteligentes se apaguen o se queden sin conexión.
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
Acciones de tiempo
time.delay
para hacer que la secuencia de comandos espere durante un periodo de tiempo definido entre dos acciones de la lista, en lugar de realizar todas las acciones a la vez. Puedes añadir varios retrasos a la secuencia de comandos. Por ejemplo, puedes hacer que la secuencia espere 10 segundos entre cada acción.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
Recursos
Práctica sobre cómo escribir una secuencia de comandos
Para empezar, crearemos una automatización muy sencilla pero habitual: apagar las luces cuando se encienda la televisión.
- Abre home.google.com/automations e inicia sesión en tu cuenta.
- Haz clic en Añadir nueva
.
- Rellena la información de los metadatos. En esta secuencia de comandos, el valor de name es
TV on lights off
y el valor de description esTurn off lights when TV turns on
. Asegúrate de usar el formato correcto para la secuencia de comandos.metadata: name: TV on lights off description: Turn off lights when TV turns on.
- Para añadir activadores, crea una nueva línea, aplica una sangría de dos espacios o pulsa el tabulador una vez e introduce
starters:
. A continuación, en la siguiente línea, aplica otra sangría y escribe- type:
.Nota:- Para crear una línea nueva, pulsa Mayús
Intro.
- Para incluir varios activadores, cada uno debe empezar por un guion y un espacio.
- Para crear una línea nueva, pulsa Mayús
metadata: name: TV on lights off description: Turn off lights when TV turns on automations: starters: - type:Nota: El editor de secuencias de comandos te ayudará con la estructura ofreciéndote sugerencias de autocompletado en función de los activadores disponibles. Para elegir una de las sugerencias, usa las teclas de flecha del teclado para seleccionarla y, a continuación, pulsa Intro para insertarla.
- Añade el activador
device.state
. Recuerda que, para utilizar un activador device.state, necesitas tres claves:type
,device
ystate
. A continuación, debes indicar al menos un par clave-valor de comparación. El editor de secuencias de comandos te ayudará con la estructura ofreciéndote sugerencias de autocompletado en función de los activadores, las condiciones y las acciones disponibles. En esta secuencia de comandos:- El valor de "type" es
device.state.OnOff
. Este es el estado del dispositivo que se evaluará para iniciar la automatización. - El valor de "device" es
Chromecast - Living Room
. Este es el nombre del dispositivo tal y como aparece en la aplicación Google Home. - El valor de "state" es
on
. "On" es la información de estado o campo compatible que indica el estado de dispositivo OnOff. - El par clave-valor de comparación es
is: true
. El valor de esta clave de comparación es un tipo de datos primitivo. La secuencia de comandos se ejecutará si la televisión está encendida.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
A modo de comparación, veamos una secuencia de comandos similar con otro activador. En la siguiente secuencia de comandos, la automatización se inicia cuando el volumen está entre 1 y 10, en lugar de cuando se enciende la televisión. Para hacer este cambio, hemos sustituido el atributo
OnOff
porVolume
y hemos cambiado el valor de "state" acurrentVolume
para que coincida con el nuevo atributo. También hemos cambiado los pares clave-valor de comparación por dos pares anidados que crean un intervalo:greaterThan: 1
ylessThan: 10
. Para ver más ejemplos, puedes consultar esta lista completa de activadores disponibles.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
- El valor de "type" es
- Haz clic en Guardar para guardar la secuencia de comandos en cualquier momento. Al guardar una secuencia de comandos, el editor la valida y comprueba si hay errores de forma automática. Si la secuencia de comandos no es válida, no se puede ejecutar.
- Después, añade una acción a tu secuencia de comandos. Para añadir acciones, crea una línea nueva, aplica una sangría de dos espacios o pulsa la tecla Tab una vez e introduce
actions:
. A continuación, en la línea siguiente, aplica otra sangría e introduce- type
.Nota:- Para crear una línea nueva, pulsa Mayús
Intro.
- Para incluir más acciones, cada una de ellas debe empezar con un guion y un espacio.
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:
- Para crear una línea nueva, pulsa Mayús
- Para apagar las luces, utilizaremos la acción
device.command
. Para utilizar la acción device.command, incluiremos la siguiente información:- El valor de "type" es
device.command.OnOff
. Este es el nombre del comando o la acción.Nota: Los comandos pueden tener varios comandos anidados debajo de tus dispositivos, y cada comando tiene su propio estado. - El valor de "devices" es una lista que contiene
Floor Lamp - Living Room
yOverhead Light - Living Room
. Estos son los nombres de las luces tal y como aparecen en la aplicación Google Home. Para incluir varias luces, hemos creado una lista en la que cada dispositivo está en una línea distinta y cada línea empieza por un guion. - El estado deseado del comando es
on: false
. Esta línea indica a las luces que se apaguen.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
- El valor de "type" es
- Haz clic en Guardar para guardar la secuencia de comandos. Si no hay errores, la secuencia de comandos se activará automáticamente: cada vez que enciendas la televisión, las luces se apagarán. Si no quieres que se ejecute la secuencia de comandos en este momento, desactiva la opción Activar.
Si quieres seguir practicando, prueba a modificar alguna parte de la secuencia de comandos para usar diferentes activadores o tipos de datos, varias acciones o una condición adicional como time.between
. También puedes revisar ejemplos de secuencias de comandos y echar un vistazo a nuestro codelab para ampliar tus conocimientos. Para obtener información detallada sobre activadores, acciones y condiciones, consulta el Centro para Desarrolladores de Google Home.
Ayuda con las automatizaciones con secuencias de comandos
- Recibe ayuda con las secuencias de comandos y descubre lo que están haciendo otros usuarios en la comunidad de domótica de Google Home.
- Para que las automatizaciones funcionen, el código de las secuencias de comandos debe ser válido. Si se produce un error, aparecerá un mensaje. Consulta más información sobre los errores y advertencias del editor de secuencias de comandos.
- Para validar tu código, toca o haz clic en Validar en el editor de secuencias de comandos o intenta guardar la secuencia de comandos. A continuación, se indican algunos errores habituales:
- Asegúrate de utilizar el nombre de dispositivo correcto con este formato: "Nombre del dispositivo - Nombre de la habitación". Si no sabes cuál es el nombre del dispositivo, consúltalo en la aplicación Google Home.
- Asegúrate de que tu dispositivo sea compatible con la función que quieres que realice. También puedes usar la función de autocompletar para ver las opciones disponibles.
- Asegúrate de incluir una acción. Las automatizaciones necesitan acciones para poder ejecutarse.
- Si la secuencia de comandos se guarda, pero la automatización no funciona según lo esperado, comprueba manualmente que cada uno de los componentes de la secuencia de comandos funcione. Por ejemplo, si has escrito una secuencia de comandos para encender la luz y cambiar el brillo al atardecer, prueba a completar esas tareas con un comando del Asistente para confirmar que cada acción funcione por separado. También puedes comprobar lo siguiente:
- Que tu dispositivo se ha añadido o vinculado a la aplicación Google Home.
- Que tu dispositivo está conectado y online.
- Que el nombre del dispositivo, los activadores, las condiciones y las acciones estén escritos correctamente.
Nota: Los fabricantes pueden cambiar características de los dispositivos al hacer actualizaciones, por lo que las secuencias de comandos podrían dejar de funcionar. Usa la función de autocompletar para actualizar las secuencias de comandos afectadas. - Que se hayan usado correctamente las sangrías y el formato en la secuencia de comandos.
- Con Google Home para la Web, también puedes acceder a los registros de Automatización
, debajo de la secuencia de comandos, para ver el historial de automatización e identificar posibles problemas. Consulta más información sobre los tipos de mensajes que se muestran en los registros de automatización.
- Prueba la función de IA generativa experimental del editor de secuencias de comandos. Describe la automatización que quieres y la IA creará el borrador de una secuencia de comandos para que tú la revises y edites.
- Consulta más información sobre los conceptos básicos de las rutinas y cómo solucionar los problemas relacionados con ellas.
- Consulta más información sobre cómo crear y editar automatizaciones con secuencias de comandos.