> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unicontrol.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Ações

> Tipos de ações que suas automações podem executar

# Ações

Ações definem **o que** a automação deve fazer quando disparada e as condições são atendidas. Você pode encadear multiplas ações que serão executadas em sequência.

<AccordionGroup>
  <Accordion title="Chamar Serviço">
    Executa um serviço em uma ou mais entidades.

    **Parâmetros:**

    * `service` — Nome do serviço (ex: `light.turn_on`, `cover.close`)
    * `target` — Entidade(s) ou dispositivo(s) alvo
    * `data` (opcional) — Dados adicionais (ex: brilho, cor)

    **Exemplo:** Ligar a luz da sala com brilho em 80%.
  </Accordion>

  <Accordion title="Atraso (Delay)">
    Aguarda um tempo antes de continuar para a próxima ação.

    **Parâmetros:**

    * `delay` — Tempo em milissegundos

    **Exemplo:** Aguardar 5 segundos entre ligar a luz e fechar a cortina.
  </Accordion>

  <Accordion title="Aguardar (Wait)">
    Pausa a execução até que uma condição seja atendida ou um timeout expire.

    **Parâmetros:**

    * `timeout` — Tempo máximo de espera (milissegundos)
    * `condition` (opcional) — Condição a aguardar

    **Exemplo:** Aguardar até a porta fechar ou 30 segundos.
  </Accordion>

  <Accordion title="Disparar Evento">
    Emite um evento no barramento de eventos do sistema.

    **Parâmetros:**

    * `event_type` — Tipo do evento
    * `event_data` (opcional) — Dados do evento

    **Exemplo:** Emitir evento personalizado para outros sistemas.
  </Accordion>

  <Accordion title="Repetir (Repeat)">
    Repete uma sequência de ações um número definido de vezes.

    **Parâmetros:**

    * `count` — Número de repetições
    * `sequence` — Lista de ações a repetir

    **Exemplo:** Piscar a luz 3 vezes (ligar, esperar, desligar, esperar).
  </Accordion>

  <Accordion title="Condicional (Choose)">
    Executa diferentes ações baseado em condições.

    **Parâmetros:**

    * `choices` — Lista de opções, cada uma com condições e ações
    * `default` (opcional) — Ações se nenhuma opção for atendida

    **Exemplo:** Se for dia, abrir cortinas; se for noite, ligar luzes.
  </Accordion>

  <Accordion title="Executar Script">
    Executa um script salvo.

    **Parâmetros:**

    * `script_id` — ID do script a executar

    **Exemplo:** Executar o script "Rotina da Manha".
  </Accordion>

  <Accordion title="Enviar Notificação">
    Envia uma notificação push para o Aplicativo Móvel.

    **Parâmetros:**

    * `entity_id` ou `device_id` — Dispositivo(s) destino
    * `message` — Texto da notificação
    * `title` (opcional) — Titulo
    * `data` (opcional) — URL, ações interativas, anexos (imagem, vídeo, áudio)

    **Exemplo:** Notificar "Movimento detectado na garagem" com foto da camera.
  </Accordion>

  <Accordion title="Comando Remoto (IR/RF)">
    Envia um comando infravermelho ou radiofrequencia.

    **Parâmetros:**

    * `entity_id` — Entidade do controle remoto
    * `command` — Comando a enviar
    * `repeats` (opcional) — Número de repetições

    **Exemplo:** Enviar comando "power" para o ar condicionado via IR.
  </Accordion>
</AccordionGroup>

<Tip>
  As ações são executadas em sequência, de cima para baixo. Use ações de **Atraso** entre comandos para dar tempo ao dispositivo de processar.
</Tip>
