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:
- Uma placa é reconhecida
- A placa corresponde ao modo do alerta (específica, qualquer, ou fora da lista)
- A câmera está no escopo do alerta (todas ou específicas)
- O horário atual está dentro da janela do alerta (se configurada)
- A confiança é igual ou superior à confiança mínima do alerta
- 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
| Campo | Tipo | Descrição |
|---|---|---|
data.alertId | string | UUID do alerta que disparou |
data.alertName | string | Nome do alerta no dashboard |
data.recognition | object | Dados do reconhecimento que causou o disparo |
data.plateMatchMode | string | Modo: any, specific ou allowlist |
data.reason | string | Descrição legível do motivo do disparo |
Razões por modo
| Modo | reason |
|---|---|
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.created | alert.triggered | |
|---|---|---|
| Frequência | Toda detecção | Apenas quando condições do alerta são atendidas |
| Filtragem | Nenhuma (todas as placas) | Por placa, câmera, horário, confiança e cooldown |
| Uso típico | Logging, analytics | Açõ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.