Escreva automatizações com script com o editor de scripts

O editor de scripts permite-lhe escrever as suas próprias automatizações para criar automatizações dos residentes avançadas com o Google Home para a Web ou na app Google Home. Para escrever automatizações com script, tem de saber algumas noções básicas sobre a linguagem de script YAML, como estruturar o seu script e como usar os componentes de que é feito.

O editor de scripts está atualmente disponível em Pré-visualização pública. Pode aceder ao editor de scripts com o Google Home para a Web ou na app Google Home para dispositivos móveis depois de aderir à Pré-visualização pública.

Saiba como criar automatizações com o editor de scripts: Visitar codelab
Importante: todos os membros do agregado familiar podem ver quando estas automatizações são iniciadas. As automatizações devem ser usadas apenas como comodidade e não em situações nas quais a segurança é fundamental. Não crie automatizações que possam resultar em ferimentos ou danos caso não sejam iniciadas ou paradas. As automatizações podem depender de a ligação à Internet e Wi-Fi funcionarem, bem como da disponibilidade do serviço da Google e de terceiros que fabricam os dispositivos incluídos nas automatizações. As automatizações podem nem sempre funcionar e a Google não é responsável por quaisquer danos ou perdas incorridos devido a automatizações falhadas.

Noções básicas da linguagem de script YAML

O editor de scripts usa o YAML, uma linguagem de script flexível que lhe permite introduzir instruções linha a linha para as ações que quer que os seus dispositivos executem e quando quer que ocorram. Estas instruções são escritas sob a forma de pares de chave-valor.

Pares de chave/valor

O YAML é escrito como uma série de pares de chave-valor:

name: TV on lights off

Neste exemplo, a chave = name e o valor = TV on lights off.

A chave é essencialmente a palavra-chave de um elemento que quer usar. Cada chave tem de ser exclusiva, mas a ordem das chaves não é importante. Cada par de chave-valor começa numa nova linha.

O valor associado a uma chave pode ser apresentado sob a forma de vários tipos de dados diferentes.

Tipos de dados

Primitivos

O tipo de dados primitivos inclui todos os tipos de dados básicos compatíveis com o editor de scripts.

Formatos primitivos Tipos de valores
Booleano
  • true
  • false
Número Número inteiro ou decimal
String

Texto simples

Os valores de string só precisam de aspas se começarem por [, {, ", ', ou #, ou se a string contiver dois pontos seguidos de 1 ou 2 espaços. As aspas têm de corresponder. Por exemplo, use " " ou ‘ ‘, e não " ‘.

Data

Mês e dia. O formato é MM-DD ou MM/DD.

  • 09/01
  • 09-01
Hora

A hora pode estar no formato AM/PM ou no formato de 24 horas. Os segundos são opcionais. Também pode usar a hora relativa ao sol. Por exemplo, pode usar as palavras-chave sunrise e sunset seguidas de uma duração.

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

Ano, mês, dia e hora do dia.

Tem de incluir um espaço entre a data e a hora.

O formato da data é AAAA-MM-DD ou AAAA/MM/DD. O formato da hora é o mesmo que "Hora" acima. Os fusos horários não são compatíveis.

  • 2022/01/01 14:00
  • 2022-12-31 sunrise+30min
Dia da semana
  • MON ou MONDAY
  • TUE ou TUESDAY
  • WED ou WEDNESDAY
  • THU ou THURSDAY
  • FRI ou FRIDAY
  • SAT ou SATURDAY
  • SUN ou SUNDAY
Duração

Um período de tempo.

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

Código hexadecimal de cor

Um código hexadecimal de 6 dígitos que representa uma cor. Não existe um # inicial.

  • FFFFFF
  • B5D2A1
  • DFA100
Temperatura

Dados de temperatura. Adicione sempre C ou F para indicar Celsius ou Fahrenheit.

  • 20.5C
  • 90F
Temperatura da cor

Temperatura da cor em Kelvin.

  • 5000K

Estruturas: pares de chave-valor aninhados

O tipo de dados de estrutura é um "bloco" ou uma estrutura de dados que contém vários pares de chave-valor. Estes pares de chave-valor estão aninhados numa única chave principal, tendo cada nível de aninhamento um avanço com o mesmo número de espaços ou tabulações para indicar a hierarquia.

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

Neste exemplo, a chave principal = actions. O valor para actions é 2 pares de chave-valor aninhados:

  • Par 1: chave secundária = device; valor = Light B - Living room
  • Par 2: chave secundária = state; valor = on

Listas: chaves com vários valores

Para incluir vários valores com uma única chave, crie uma lista com um hífen antes de cada item de lista. Uma lista pode usar valores de tipo de dados primitivos ou de estrutura, mas não ambos em simultâneo.

weekdays:
- MONDAY
- THURSDAY

No exemplo, a chave = weekdays e o valor = uma lista que inclui Monday e Thursday.

Estruturas avançadas: listas e pares aninhados combinados

Para automatizações mais complexas, o valor pode ser uma lista com vários pares de chave-valor aninhados.
starters:
- type: time.schedule
  at: 10:00 am
  weekdays:
  - MONDAY
  - THURSDAY
- type: time.schedule
  at: SUNSET
  weekdays:
  - MONDAY
  - THURSDAY

Neste exemplo, a chave principal = starters. O valor desta chave principal = uma lista em que cada item de lista inclui vários pares de chave-valor.

Alguns tipos de chaves exigem que os valores estejam em formatos específicos, enquanto outras chaves herdam as caraterísticas com base nas capacidades de um dispositivo. Saiba como iniciadores, condições e ações específicos estão estruturados.

Sintaxe da linguagem YAML

Quando escreve rotinas com scripts, use estes conceitos de formatação:

Conceito Exemplo

Dois pontos

O YAML usa dois pontos : seguidos de um espaço para separar uma chave do respetivo valor.

state: on

Avanço

O avanço indica a estrutura e a hierarquia e define pares de chaves aninhados.

No exemplo, a chave principal = metadata. As chaves name e description são chaves secundárias aninhadas nos metadados da chave principal. As chaves aninhadas têm um avanço de 2 espaços ou uma tabulação para indicar a respetiva hierarquia.

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

Hífen

Um hífen seguido de um espaço define um item de lista.
weekdays:
- MONDAY
- THURSDAY

Comentários

Use o sinal de cardinal # para adicionar comentários ou notas ao script. Os comentários são ignorados pelo motor de automatização e não afetam a sua automatização.
# This is a comment. It will be ignored.

O modelo do editor de scripts

Quando cria uma nova automatização, o editor de scripts fornece-lhe um modelo vazio para escrever o script com a seguinte estrutura:

metadata contém o nome da automatização e uma descrição
automations define o comportamento da automatização
starters define os acionadores que iniciam a automatização
condition define as restrições relativas ao momento em que a automatização deve ser executada (opcional)
actions define as ações que ocorrem na automatização

O modelo está dividido em 2 blocos principais: metadados e automatizações. Em seguida, as automatizações são divididas em secções para iniciadores, condições e ações.

Blocos de metadados e automatizações

O modelo do editor de scripts contém 2 chaves principais de nível superior ou blocos: metadata e automations.

O bloco metadata contém o nome e a descrição da automatização. Isto só é usado para ajudar a identificar a sua automatização.

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

O bloco automations é o núcleo do script de automatização. É aqui que define o comportamento da automatização através de iniciadores, condições e ações.

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

Para compreender melhor como usar o editor de scripts, visite o nosso codelab, reveja exemplos de scripts ou saiba como formatar iniciadores, condições e ações individuais no Centro para programadores do Google Home.

Preenchimento automático

O editor de scripts ajuda a escrever o seu script através de sugestões de preenchimento automático com base nos iniciadores, condições e ações disponíveis quando:

  • O cursor está localizado onde existem opções válidas. Por exemplo, depois de "- type: ".
    • Escreve o código com sugestões válidas. À medida que escreve, encontra a lista de sugestões filtrada.

Pode iniciar manualmente o preenchimento automático usando o atalho Ctrl+Espaço.

Prima Enter para selecionar uma sugestão da lista. O preenchimento automático preenche os campos adicionais com base na estrutura que selecionar.

Dica: pode usar o preenchimento automático para saber que estados ou comandos estão disponíveis para o seu dispositivo e que dispositivos estão disponíveis para um determinado estado ou comando.

Para saber que estados ou comandos estão disponíveis para o seu dispositivo, quando escrever o script, introduza primeiro a chave "device: " e, em seguida, a chave "type: ". A funcionalidade de preenchimento automático mostra uma lista de estados ou comandos disponíveis para esse dispositivo.

Exemplo

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

Para saber que dispositivos estão disponíveis para um determinado estado ou comando, introduza primeiro a chave "type: " e, em seguida, a chave "device: ". A funcionalidade de preenchimento automático mostra uma lista de dispositivos disponíveis na sua casa que são compatíveis com esse estado ou comando.

Exemplo

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

Iniciadores, condições e ações

As automatizações são compostas por iniciadores, condições e ações de dispositivo. Estes componentes definem os comportamentos da automatização.

Alguns iniciadores, condições e ações exigem um tipo específico de par de chave-valor de comparação para ajudar a concluir a lógica de automatização e informar o script sobre o que quer que seja avaliado. O valor tem de ser um tipo de dados compatível. Por exemplo, o estado on de uma luz pode ser true ou false. Para iniciar a automatização se a luz estiver acesa, usaria:

state: on
is: true

Abaixo, encontra detalhes sobre os diferentes iniciadores, condições e ações disponíveis. Para ver uma lista completa de iniciadores, condições e ações, visite o Centro para programadores do Google Home.

Iniciadores

A secção de iniciadores do script especifica o que vai fazer com que o script seja executado. Os iniciadores baseiam-se em ações que o seu dispositivo pode realizar ou em atributos que podem ser alterados, incluindo estados do dispositivo, hora e eventos do dispositivo. Por exemplo, pode usar uma lâmpada com os estados OnOff, Brightness e ColorSetting. Para incluir vários iniciadores, indique cada iniciador começando com a chave " - type: ". O script tem de cumprir, pelo menos, uma condição do iniciador para ser executado.

Consulte a lista completa de iniciadores compatíveis.

Tipos de iniciadores

Iniciadores do Assistente

Use um iniciador assistant.command para iniciar um script quando um dispositivo com o Assistente ouvir um comando do Assistente que comece por "OK Google".
Se uma automatização for iniciada por um comando de voz e existir uma ação do Assistente no script, a ação do Assistente ocorre no dispositivo que ouve o comando de voz, mesmo que tenha sido especificado um dispositivo diferente no script.
Exemplo: iniciar a automatização quando alguém disser "OK Google, hora da festa".
starters:
- type: assistant.command.OkGoogle
  eventData: query
  is: party time

Iniciadores de eventos do dispositivo

Use um iniciador device.event para iniciar o script quando ocorrer um evento específico, por exemplo, quando alguém toca à campainha ou um sensor deteta algo.

Dica: nem todos os eventos são compatíveis.

Exemplo: iniciar a automatização quando alguém tocar à campainha.
starters:
- type: device.event.DoorbellPress
  device: Doorbell - Front door
Exemplo: iniciar a automatização quando a câmara detetar uma pessoa.
starters:
- type: device.event.PersonDetection
  device: Camera - Backyard 

Exemplo: iniciar a automatização quando a câmara detetar movimento.

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

Dicas:

  • Os eventos da câmara exigem uma campainha, um ecrã ou uma câmara Nest compatível e a configuração da deteção de eventos.
  • Alguns eventos da câmara podem exigir uma subscrição do Google Home Premium ou que a câmara esteja ligada a uma tomada. Por exemplo, a deteção de som só funciona quando a Nest Cam (interior ou exterior, com bateria) estiver ligada com fios.
  • Com base nos eventos e nos estados do dispositivo que se repetem durante um período, pode suprimir iniciadores.

Iniciadores de estado do dispositivo

Use um iniciador device.state para que a automatização seja iniciada com base no estado de um dispositivo. Os estados são caraterísticas de um dispositivo, por exemplo, quando a temperatura do termóstato atinge um valor específico, se uma luz se liga ou desliga ou quando um sensor compatível atinge um limite definido.
Pode suprimir iniciadores com base nos eventos e estados do dispositivo que se repetem durante um período de tempo.
Adicione o estado de um iniciador de estado do dispositivo depois de "device.state". Por exemplo, para verificar se um dispositivo está ligado, pode usar device.state.OnOff.
Para usar um iniciador device.state, comece com 3 chaves: type, device e state, seguidas de, pelo menos, um par de chave-valor de comparação.
Chave Valor Exemplo
type O iniciador de estado do dispositivo, começando com device.state device.state.ArmDisarm
device Nome conforme apresentado na app Google Home com o nome da divisão: Device name - Room name Alarm - Front Door
state

O campo ou os dados do estado do iniciador que quer verificar.

Encontre o iniciador que quer usar no Centro para programadores do Google Home para encontrar "Campos compatíveis" ou "Dados de estado".
isArmed
Dica: para saber que estados estão disponíveis para o seu dispositivo, introduza primeiro a chave "device: " e, em seguida, a chave "type: " no script. A opção de preenchimento automático mostra uma lista dos estados disponíveis para esse dispositivo.

Pode usar os seguintes pares de chave-valor de comparação com o iniciador device.state:

Chaves de comparação Tipos de valores compatíveis Exemplo
is String | Número | Booleano | Dinâmico is: on
isNot String | Número | Booleano | Dinâmico isNot: cast
greaterThan
greaterThanOrEqualTo
String | Número | Booleano | Dinâmico greaterThan: 1
lessThan
lessThanOrEqualTo
String | Número | Booleano | Dinâmico lessThan: 10
suppressFor Duração suppressFor: 1hour

Exemplo: iniciar a automatização se o volume da TV estiver entre 1 e 10.

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

Iniciadores de estado da casa

Use o iniciador home.state para iniciar o script com base no facto de estar em casa ou ausente. Isto pode ser detetado com a deteção de presença.
Exemplo: iniciar a automatização quando estiver em casa.
starters:
- type: home.state.HomePresence
  state: homePresenceMode
  is: HOME

Iniciadores de tempo

Use um iniciador time para iniciar a automatização com base em dias e horas específicos. Pode usar os seguintes pares de chave-valor de comparação com o iniciador de tempo:
Chaves de comparação Tipos de valores compatíveis Exemplo
before Hora before: sunset
after Hora after: 7:00 am
weekdays Dia da semana weekdays: MON

Exemplo: iniciar a automatização às segundas e terças, 30 minutos após o nascer do sol.

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

Como suprimir iniciadores

Use a chave de comparação suppressFor para indicar à automatização que ignore um iniciador durante um período de tempo. Por exemplo, quando a câmara deteta alguém, anunciar "Há alguém à porta" e, em seguida, não anunciar novamente durante os 10 minutos seguintes, mesmo que a câmara continue a detetar alguém.

Exemplo: quando alguém passa pelo hall pela primeira vez de manhã, abrir todas as persianas e, em seguida, suprimir este iniciador durante as 20 horas seguintes.

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

Condições

As condições são restrições opcionais relativas ao momento em que as automatizações devem ser executadas. Se incluir condições, o script só é executado se as condições forem cumpridas. Muitos iniciadores também podem ser usados como condições e podem ser combinados com os operadores lógicos and, or e not para expressar verificações de condições mais complexas.
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

Neste exemplo, existe uma condição de tempo e uma condição device.state. Este script é executado se estiver entre o pôr do sol e o nascer do sol numa segunda ou terça, ou se o volume da TV estiver entre 1 e 10.

Pode usar os seguintes tipos de condições:

Operadores de condições

Condição AND

Quando usa a condição and, o script só é executado se todas as condições secundárias forem cumpridas.

Exemplo: iniciar a automatização se a TV estiver ligada E a hora for após as 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

Condição OR

Quando usa a condição or, o script é executado quando ocorre qualquer uma das condições secundárias.

Exemplo: iniciar a automatização se a TV estiver ligada OU a hora for após as 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

Condição NOT

Quando usa a condição not, o script não pode ser executado se a condição secundária ocorrer.

Exemplo: iniciar a automatização se a hora não estiver entre as 18:00 e as 20:00.

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

Condições de estado do dispositivo

Use uma condição device.state para limitar quando o script pode ocorrer com base no estado de um dispositivo quando o script é iniciado. As condições device.state são semelhantes aos iniciadores device.state, exceto que, em vez de indicarem ao script quando deve começar, limitam as situações em que o script pode ocorrer.
Adicione o estado de uma condição de estado do dispositivo depois de "device.state". Por exemplo, para verificar se um dispositivo está ligado, pode usar device.state.OnOff.
Para usar uma condição device.state, comece com 3 chaves: type, device e state, seguidas de, pelo menos, um par de chave-valor de comparação.
Chave Valor Exemplo
type A condição de estado do dispositivo, começando com device.state device.state.OnOff
device Nome conforme apresentado na app Google Home com o nome da divisão: Device name - Room name Chromecast - Living Room
state

O estado do iniciador que quer verificar

Encontre a condição de estado do dispositivo que quer usar no Centro para programadores do Google Home.

state: on

Dica: para saber que estados estão disponíveis para o seu dispositivo, introduza primeiro a chave "device: " e, em seguida, a chave "type: " no script. A opção de preenchimento automático mostra uma lista dos estados disponíveis para esse dispositivo.

Pode usar os seguintes pares de chave-valor de comparação com a condição device.state:

Chaves de comparação Tipos de valores compatíveis Exemplo
is String | Número | Booleano | Dinâmico is: on
isNot String | Número | Booleano | Dinâmico isNot: cast
greaterThan
greaterThanOrEqualTo
String | Número | Booleano | Dinâmico greaterThan: 1
lessThan
lessThanOrEqualTo
String | Número | Booleano | Dinâmico lessThan: 10

Exemplo: iniciar a automatização se o termóstato detetar um nível de humidade superior a 55%.

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

Condições de estado da casa

Use uma condição home.state.HomePresence para limitar quando o script pode ocorrer com base no facto de alguém estar em casa ou ausente.
Antes de criar um script que use a condição home.state.HomePresence, configure a deteção de presença na app Google Home e confirme que está a funcionar conforme esperado. A presença em casa pode ser determinada pela localização dos telemóveis dos residentes e pelos sensores de alguns dispositivos Nest ou mudando manualmente para o estado Em casa ou Ausente na app Google Home.
Pode usar os seguintes pares de chave-valor de comparação com a condição home.state.HomePresence:
Chaves de comparação Tipos de valores compatíveis Exemplo
is String ("HOME" ou "AWAY") is: away
isNot String ("HOME" ou "AWAY") isNot: HOME
for Duração for: 30min
suppressFor Duração suppressFor: 1hour

Exemplo: a condição home.state.HomePresence inicia a automatização se a sua presença estiver definida como HOME.

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

Condições de tempo

Use a condição time.between para limitar quando o script pode ocorrer. Pode usar os seguintes pares de chave-valor de comparação com a condição time.between:
Chaves de comparação Tipos de valores compatíveis Exemplo
before Hora before: sunset
after Hora after: 7:00 am
weekdays Dia da semana weekdays: MON

Exemplo: iniciar a automatização apenas aos fins de semana antes das 10:00.

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

Ações

A secção de ações do script é onde lista o que quer que os dispositivos façam. Para incluir várias ações, liste cada ação começando com a chave "- type: ". O script tem de ter, pelo menos, uma ação para ser executado. A maioria das ações começa com device.command.

Pode usar os seguintes tipos de ações:

Ações do Assistente

Use a ação assistant.command com os altifalantes ou os ecrãs para que o Assistente conclua ações como "Desliga todas as luzes" ou "Diz-me a meteorologia".

Com os comandos do Assistente, pode comandar os dispositivos por divisão ou em toda a casa sem usar nomes de dispositivos específicos. Isto pode poupar-lhe tempo, uma vez que os dispositivos futuros adicionados à app Home podem funcionar automaticamente com este comando. Os comandos do Assistente exigem um altifalante ou um ecrã compatível para executar a ação.

Se uma automatização for iniciada por um comando de voz e existir uma ação do Assistente no script, a ação do Assistente ocorre no dispositivo que ouve o comando de voz, mesmo que tenha sido especificado um dispositivo diferente no script.
Exemplo: use "Liga as luzes da sala de estar" para ligar todas as luzes da sala de estar.
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn on living room lights
  devices: My Speaker - Room Name 
Exemplo: use "Desliga todas as luzes" para desligar todas as luzes configuradas em sua casa.
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn off all lights
  devices: My Speaker - Room Name 
Exemplo: pode fazer com que os altifalantes ou ecrãs façam um anúncio.
actions:
- type: assistant.command.Broadcast
  devices:
  - My Speaker 1 - Room Name
  - My Speaker 2 - Room Name
  message: It’s dinner time.

As ações do Assistente também lhe permitem realizar ações personalizadas, como:

  • "Toca Hello da Adele do YouTube Music no altifalante do quarto."
  • "Reproduz vídeos engraçados de gatos do YouTube no ecrã da sala de estar."
  • "Como vai estar o tempo amanhã?"
  • "Conta-me uma anedota."
  • "Mostra-me a câmara da entrada no ecrã do escritório de casa."
As ações do Assistente que exigem o Voice Match ou os resultados pessoais ativados não funcionam com as automatizações domésticas criadas com o editor de scripts.

Ações do dispositivo

Use a ação device.command para controlar ou ajustar um dispositivo. Cada comando de ação tem o seu próprio conjunto de caraterísticas e estrutura. Pode adicionar comandos ao script adicionando a ação de comando de um dispositivo depois de "device.command". Por exemplo, para ligar um dispositivo, pode usar device.command.OnOff. Uma ação device.command tem de incluir as seguintes informações:
Chave Valor Exemplo
type A ação do dispositivo, começando com device.command device.command.OpenClose
devices Nome do dispositivo conforme apresentado na app Google Home com o nome da divisão: Nome do dispositivo – Nome da divisão. Para incluir vários dispositivos, crie uma lista. Blinds - Bedroom

Dica: para saber que ações ou comandos estão disponíveis para o seu dispositivo, introduza primeiro a chave "device:" e, em seguida, a chave "type:". O preenchimento automático apresenta uma lista de ações disponíveis para esse dispositivo.

Muitas ações device.command têm chaves adicionais que especificam a entrada necessária para o comando. Por exemplo, device.command.ThermostatTemperatureSetpoint exige um par de chave-valor thermostatTemperatureSetpoint para indicar ao termóstato a nova temperatura que quer definir.

Para saber como usar comandos, encontre a ação relacionada no Centro para programadores do Google Home e siga a estrutura da ação que quer usar.

Exemplo: ligar a TV na sala de estar.

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

Exemplo: ligar uma luz e desligá-la após 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

Ações de notificação

Use a ação home.command.Notification para que o script envie notificações para os dispositivos móveis dos membros da casa. Por exemplo, pode receber notificações quando os eletrodomésticos ligados a tomadas inteligentes se desligam ou ficam 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
 

Ações de tempo

Use a ação time.delay para que o script aguarde um período definido entre 2 ações na sua lista, em vez de executar todas as ações em simultâneo. Pode adicionar vários atrasos ao script. Por exemplo, pode fazer com que o script aguarde 10 segundos entre cada ação.
Exemplo: ligar as luzes e desligá-las após um atraso de 30 segundos.
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

Pratique a escrita de um script

Para começar, vamos criar uma automatização muito simples, mas popular: "Desligar as luzes quando a TV é ligada".

Se não tiver um dispositivo de streaming, luzes inteligentes ou dispositivos comparáveis, pode continuar a seguir o tutorial para compreender o processo de programação, mas o script não é executado no final.
  1. Abra home.google.com/automations e inicie sessão na sua conta.
  2. Clique em Adicionar novo Ícone Adicionar.
  3. Preencha as informações de metadados. Neste script, o nome = TV on lights off e a descrição = Turn off lights when TV turns on. Certifique-se de que formata o script corretamente.
    metadata:
      name: TV on lights off
      description: Turn off lights when TV turns on.
  4. Para adicionar iniciadores, crie uma nova linha, avance 2 espaços ou prima a tecla Tab uma vez e introduza "starters: ". Na linha seguinte, avance novamente 2 espaços e introduza "- type: ".
    Dica:
    • Para criar uma nova linha, prima Shift Enter.
    • Para incluir vários iniciadores, cada iniciador deve começar com um hífen e um espaço.
metadata:
  name:  TV on lights off
  description:  Turn off lights when TV turns on
automations:
  starters:
  - type:
O editor de scripts ajuda com a estrutura fornecendo sugestões de preenchimento automático com base nos iniciadores disponíveis. Para escolher de entre as sugestões, use as teclas de seta do teclado para selecionar uma e, em seguida, prima Enter para a inserir.
  1. Adicione o iniciador device.state. Lembre-se de que, para usar um iniciador device.state, precisa de 3 chaves: type, device e state, seguidas de, pelo menos, um par de chave-valor de comparação. O editor de scripts ajuda com a estrutura fornecendo sugestões de preenchimento automático com base nos iniciadores, nas condições e nas ações disponíveis. Neste script:
    • Tipo = device.state.OnOff. Este é o estado do dispositivo que vai ser avaliado para iniciar a nossa automatização.
    • Dispositivo = Chromecast - Living Room. Este é o nome do nosso dispositivo, tal como aparece na app Google Home.
    • Estado = on. On é o campo compatível ou os dados de estado do dispositivo OnOff.
    • O par de chave-valor de comparação = is: true. O valor desta chave de comparação é um tipo de dados primitivo. O script é executado se a TV estiver ligada.
      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

      Para comparação, vamos verificar um script semelhante com um iniciador diferente. No script abaixo, a automatização é iniciada quando o volume está entre 1 e 10, em vez de quando a TV é ligada. Para fazer esta alteração, substituímos o estado OnOff por Volume e alterámos o estado para currentVolume para corresponder ao novo atributo. Também alterámos os pares de chave-valor de comparação para 2 pares aninhados que criam um intervalo: greaterThan: 1 e lessThan: 10. Para mais exemplos, segue-se uma lista completa de iniciadores que pode usar.

      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
  2. Clique em Guardar para guardar o script em qualquer altura. Quando guarda um script, o editor de scripts valida automaticamente o script e verifica a existência de erros. Não é possível executar um script inválido.
  3. Agora, adicione uma ação ao script. Para adicionar ações, crie uma nova linha, avance 2 espaços ou prima a tecla Tab uma vez e introduza "actions: ". Em seguida, na linha seguinte, avance novamente 2 espaços e introduza "- type ".
    Dica:
    • Para criar uma nova linha, prima Shift Enter.
    • Para incluir ações adicionais, cada ação deve começar com um hífen e um espaço.
    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:
  4. Para desligar as luzes, vamos usar a ação device.command. Para usar a ação device.command, vamos incluir as seguintes informações:
    • Tipo = device.command.OnOff. Este é o nome do comando ou da ação.
      Os comandos podem ter vários comandos aninhados nos seus dispositivos, e cada comando tem o seu próprio estado.
    • Dispositivos = uma lista que contém Floor Lamp - Living Room e Overhead Light - Living Room. Estes são os nomes das nossas luzes, tal como aparecem na app Google Home. Para incluir várias luzes, listámos cada dispositivo em linhas separadas, cada uma começando com um hífen.
    • O estado desejado do comando = on: false. Esta linha diz às nossas luzes para se desligarem.
      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
  5. Clique em Guardar para guardar o script. Se não existirem erros, o script é ativado automaticamente: sempre que a TV se ligar, a luz desliga-se. Se ainda não quiser executar o script, desative a opção Ativar para o pausar.

Para praticar mais, experimente alterar algumas partes do script para usar diferentes iniciadores, tipos de dados, várias ações ou uma condição adicional, como time.between. Também pode rever exemplos de scripts e consultar o codelab para saber mais. Para ver informações detalhadas sobre iniciadores, ações e condições, consulte o Centro para programadores do Google Home.

Ajuda para automatizações com script

  • Encontre ajuda para scripts e saiba em que as outras pessoas estão a trabalhar na Comunidade de domótica do Google Home.
  • Para que as automatizações funcionem, os scripts têm de usar código válido. Se existir um erro, é apresentada uma mensagem. Saiba mais sobre erros e avisos no editor de scripts.
  • Para validar o código, clique ou toque em Validar no editor de scripts ou experimente guardar o script. Seguem-se alguns erros comuns:
    • Certifique-se de que usa o nome do dispositivo correto no formato Nome do dispositivo – Nome da divisão. Se não tiver a certeza, verifique o nome do dispositivo na app Google Home.
    • Certifique-se de que o dispositivo é compatível com a função que quer que execute. Também pode usar o preenchimento automático para encontrar as opções disponíveis.
    • Certifique-se de que inclui uma ação. São necessárias ações para que uma automatização seja executada.
  • Se o script for guardado, mas a automatização não se comportar conforme o esperado, confirme manualmente se cada componente do script funciona. Por exemplo, se escreveu um script para ligar a luz e alterar o brilho ao pôr do sol, experimente concluir estas tarefas com um comando do Assistente para confirmar que cada função individual funciona. Também pode verificar se:
    • O dispositivo está adicionado ou associado na app Google Home.
    • O dispositivo está ligado e online.
    • O nome, os iniciadores, as condições e as ações do dispositivo estão escritos corretamente.
      Dica: os fabricantes podem alterar as caraterísticas do dispositivo quando fazem atualizações, o que pode fazer com que os scripts deixem de funcionar. Pode usar o preenchimento automático para ajudar a atualizar os scripts afetados.
    • O script tem avanço e formatação adequados.
  • Com o Google Home para a Web, também pode aceder aos registos de automatizações abaixo do script para verificar o histórico da automatização e identificar potenciais problemas. Learn more about the types of messages you see in the Automation logs.
  • Try using the script editor’s experimental generative AI feature to describe the automation you want and it will draft a script for you to review and edit.
  • Saiba mais sobre as noções básicas das rotinas e como resolver problemas relacionados com as mesmas.
  • Saiba como criar e editar automatizações com script.

A informação foi útil?

Como podemos melhorá-la?
Pesquisa
Limpar pesquisa
Fechar pesquisa
Menu principal
5184344177961869082
true
Pesquisar no Centro de ajuda
false
true
true
true
true
true
1633396
false
false
false
false