camera.offline
Disparado quando o agente de processamento detecta que uma câmera parou de enviar frames ou a conexão RTSP foi perdida.
Quando dispara
- A conexão RTSP é interrompida (rede, câmera reiniciada, port forwarding perdido)
- A câmera para de enviar frames por um período prolongado
- A câmera é desativada no dashboard
- O agente de processamento não consegue reconectar após múltiplas tentativas
Payload
{
"event": "camera.offline",
"timestamp": "2026-03-22T03:45:00.000Z",
"data": {
"cameraId": "7012e192-5005-43b6-978c-7e304b3676a6",
"cameraName": "Entrada principal",
"lastSeenAt": "2026-03-22T03:44:30.000Z",
"reason": "connection_lost"
}
}
Campos
| Campo | Tipo | Descrição |
|---|---|---|
data.cameraId | string | UUID da câmera |
data.cameraName | string | Nome da câmera no dashboard |
data.lastSeenAt | string | Último frame recebido com sucesso |
data.reason | string | Motivo da desconexão |
Razões possíveis
| Reason | Significado |
|---|---|
connection_lost | Conexão RTSP interrompida |
timeout | Sem frames por período prolongado |
auth_failed | Credenciais rejeitadas pela câmera |
disabled | Câmera desativada pelo usuário |
server_unreachable | Agente não consegue acessar o IP da câmera |
Exemplo de uso
Alerta imediato para equipe técnica
app.post('/webhook', (req, res) => {
const { cameraName, reason, lastSeenAt } = req.body.data;
const downtime = Date.now() - new Date(lastSeenAt).getTime();
const minutesDown = Math.round(downtime / 60000);
sendTelegram(TECH_TEAM_CHAT,
`🔴 *Câmera offline*\n` +
`Câmera: ${cameraName}\n` +
`Motivo: ${reason}\n` +
`Último frame: ${minutesDown} min atrás`
);
res.json({ ok: true });
});
Registro de incidentes
app.post('/webhook', (req, res) => {
const { cameraId, cameraName, reason, lastSeenAt } = req.body.data;
db.incidents.create({
type: 'camera_offline',
cameraId,
cameraName,
reason,
startedAt: lastSeenAt,
resolvedAt: null, // será atualizado quando camera.online chegar
});
res.json({ ok: true });
});
Causas comuns e soluções
| Causa | Diagnóstico | Solução |
|---|---|---|
| Queda de internet | Outros dispositivos também offline | Aguardar ou verificar provedor |
| IP dinâmico mudou | meuip.com.br mostra IP diferente | Configurar DDNS |
| Câmera reiniciou | Câmera voltou com IP diferente | Configurar IP fixo |
| Port forwarding perdido | Roteador reiniciou e perdeu regras | Salvar regras permanentemente |
| Senha alterada | Câmera rejeita credenciais | Atualizar URL RTSP no dashboard |
Atenção
Câmeras offline não geram reconhecimentos. Se a câmera é crítica para sua operação (entrada de estacionamento, portaria), configure este webhook para ser notificado imediatamente e agir rápido.