Dashboard

Eventos

alert.triggered

Disparado quando um reconhecimento atende todas as condições de um alerta configurado.

Quando dispara

Todas as condições abaixo devem ser verdadeiras simultaneamente:

  1. Uma placa é reconhecida
  2. A placa corresponde ao modo do alerta (específica, qualquer, ou fora da lista)
  3. A câmera está no escopo do alerta (todas ou específicas)
  4. O horário atual está dentro da janela do alerta (se configurada)
  5. A confiança é igual ou superior à confiança mínima do alerta
  6. O cooldown desde o último disparo expirou

Payload

{
  "event": "alert.triggered",
  "timestamp": "2026-03-22T22:15:00.000Z",
  "data": {
    "alertId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "alertName": "Intruso noturno",
    "recognition": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "plate": "XYZ9K87",
      "confidence": 0.94,
      "cameraId": "7012e192-5005-43b6-978c-7e304b3676a6",
      "cameraName": "Entrada principal",
      "timestamp": "2026-03-22T22:15:00.000Z"
    },
    "plateMatchMode": "allowlist",
    "reason": "Placa não encontrada na lista de autorizados"
  }
}

Campos

CampoTipoDescrição
data.alertIdstringUUID do alerta que disparou
data.alertNamestringNome do alerta no dashboard
data.recognitionobjectDados do reconhecimento que causou o disparo
data.plateMatchModestringModo: any, specific ou allowlist
data.reasonstringDescrição legível do motivo do disparo

Razões por modo

Modoreason
specific"Placa ABC1D23 encontrada na lista de monitoramento"
any"Qualquer placa detectada na câmera Entrada"
allowlist"Placa XYZ9K87 não encontrada na lista de autorizados"

Exemplo de uso

Notificar segurança

app.post('/webhook', (req, res) => {
  const { alertName, recognition, reason } = req.body.data;

  sendTelegram(SECURITY_CHAT_ID,
    `⚠️ *${alertName}*\n` +
    `Placa: \`${recognition.plate}\`\n` +
    `Câmera: ${recognition.cameraName}\n` +
    `Motivo: ${reason}\n` +
    `Horário: ${new Date(recognition.timestamp).toLocaleString('pt-BR')}`
  );

  res.json({ ok: true });
});

Acionar cancela para placa autorizada

app.post('/webhook', (req, res) => {
  const { plateMatchMode, recognition } = req.body.data;

  // Se a placa é da lista de monitoramento (moradores)
  if (plateMatchMode === 'specific') {
    openGate(recognition.cameraId);
  }

  res.json({ ok: true });
});

Diferença de recognition.created

recognition.createdalert.triggered
FrequênciaToda detecçãoApenas quando condições do alerta são atendidas
FiltragemNenhuma (todas as placas)Por placa, câmera, horário, confiança e cooldown
Uso típicoLogging, analyticsAções (abrir cancela, notificar, bloquear)

Dica

Para a maioria dos casos de uso (cancelas, notificações, controle de acesso), use alert.triggered em vez de recognition.created. A filtragem já é feita pelo PlacaFlow.

Esta página foi útil?