alertas via WhatsApp

EMTU Live Checker 🚌

Receba alertas inteligentes do seu ônibus via WhatsApp. Simples, confiável e com mais dados que o app oficial.

Dica: pressione Ctrl/ + K para buscar em todo o site.
Foto ilustrativa - EMTU Ônibus EMTU

Benefícios principais

Mais rápido para começar, robusto em produção e ótimo para quem só quer chegar no horário.

💬 WhatsApp gratuito

Funciona até no plano grátis — perfeito para quem tem franquia zero-rating de WhatsApp.

🔔 Alertas

Alertas inteligentes e configuráveis com janelas de horário, distância e eventos.

🕒 24/7

Monitoramento contínuo com watchdog, backoff e retomada automática.

🛰️ Mais dados

Rota normal/instável, posição GPS, visão satélite e estimativas realistas.

🧩 Fácil

Setup em minutos, comandos simples e documentação direta.

Como funciona

Conecte

Basta scannear o QrCode gerado no terminal da sua aplicação.

Monitore

Use /monitor [linha] [ponto] [horário] para iniciar um monitoramento a partir do horário desejado. O ponto é o número encontrado no site/app oficial da EMTU.

Receba

Alertas são enviados quando o ônibus estiver chegando, atrasado ou fora de rota.

Quickstart

$ /monitor 708 volta 09:30 
Iniciando monitoramento da linha <708 iniciando 09:30-10h sentido volta>
Use /stop para encerrar.
Dica: /status mostra o status do sistema.
💡 Digite um comando para testar.

Playground

Simulador

Teste respostas do bot localmente. Comandos suportados: /monitor, /where, /search, /list, /status, /stop, /help.

# .env (exemplo)
PROXIMITY_THRESHOLD_METERS=500
CHECK_INTERVAL_MINUTES=1
MAX_ALERTS_PER_ROUTE=5  # Máximo de alertas por linha (anti-spam)
QUIET_HOURS=2  # Após este horário a partir do momento iniciado, para de avisar (já é preocupante)

Command Reference

ComandoDescriçãoExemplo
/monitor [linha] [ponto] [horário]Inicia o monitoramento de uma linha em um ponto específico a partir de um horário. O ponto é o número encontrado no site/app oficial da EMTU./monitor 708 01 08:30
/stop [linha]Interrompe monitoramento específico ou todos (se não especificar linha)./stop 001 ou /stop
/list ou listarLista todos os monitoramentos ativos do usuário./list
/where [linha] [ida/volta]Mostra localização em tempo real dos ônibus de uma linha./where 708BI2 ida
/statusMostra estatísticas pessoais e status do sistema./status
/help ou ajudaMostra lista completa de comandos disponíveis./help

Links diretos: /monitor/stop/list/where/search/status/help

Documentação

Quickstart

Requer Node 18+ e acesso a um telefone com WhatsApp.
$ git clone https://github.com/KaioBorgesDev/EMTU-LIVE-CHECKER.git
$ cd EMTU-LIVE-CHECKER
$ cp .env.example .env
$ npm i && npm run start

Comandos

  • /monitor [linha] [ponto] [horário] — inicia monitoramento de uma linha em ponto específico a partir de um horário. O ponto é o número encontrado no site/app oficial da EMTU.
  • /stop [linha] — para monitoramento específico ou todos.
  • /list ou listar — lista monitoramentos ativos.
  • /where [linha] [ida/volta] — localização em tempo real dos ônibus.
  • /search [termo] ou buscar [termo] — busca linhas e paradas.
  • /status — estatísticas pessoais e status do sistema.
  • /help ou ajuda — lista todos os comandos.

Configuração

Edite o arquivo .env com suas chaves e preferências:

  • QUIET_HOURS: Horário em que o bot para de enviar alertas (ex: 23-06 = das 23h às 6h). Após esse horário, se o ônibus não passou, já é considerado preocupante e a pessoa deve estar em alerta.
  • PROXIMITY_THRESHOLD_METERS: Distância em metros para disparar o alerta.
  • CHECK_INTERVAL_MINUTES: Intervalo de verificação em minutos.
  • MAX_ALERTS_PER_ROUTE: Limite máximo de alertas por linha (anti-spam). Se já foram enviados 3 alertas de proximidade para a mesma linha, não enviará mais para evitar spam.
💡 Como encontrar o número do ponto:

O número do ponto pode ser encontrado no site oficial da EMTU ou no app móvel oficial. Os pontos são numerados sequencialmente ao longo da rota.

Feature futura: Possibilidade de usar nome da parada (ex: Terminal Barão Geraldo) em vez do número específico.

Instalação

  1. Clone o repositório.
  2. Instale dependências com npm install.
  3. Configure o .env com suas credenciais.
  4. Inicie o bot com npm start.
  5. Escaneie o QR Code que aparece no terminal.
  6. Envie /monitor [linha] [ponto] [horário] para começar a monitorar.

Deploy com Docker

$ docker build -t emtu-live .
$ docker run -e WHATSAPP_NUMBER -e EMTU_API_KEY emtu-live

Deploy com PM2

$ pm2 start npm --name emtu -- run start
$ pm2 save

Deploy com Systemd

[Unit]
Description=EMTU Live Checker
[Service]
WorkingDirectory=/opt/emtu
ExecStart=/usr/bin/npm run start
Restart=on-failure
[Install]
WantedBy=multi-user.target

Limites & Cotas

O sistema possui mecanismos anti-spam para evitar notificações excessivas:

  • Limite de alertas por linha: Cada monitoramento tem um limite máximo de alertas (configurável via MAX_ALERTS_PER_ROUTE). Exemplo: se configurado para 3, após 3 alertas de proximidade para a mesma linha, não enviará mais alertas para evitar spam.
  • Rate limiting: Configure CHECK_INTERVAL_MINUTES para controlar a frequência de verificação.
  • Horários silenciosos: Use QUIET_HOURS para definir quando parar de enviar alertas.
⚠️ Defina limites adequados para evitar bloqueios do WhatsApp Web.

Troubleshooting

WhatsApp não conecta? Limpe o cache, reconecte o QR Code e verifique se há outra sessão ativa.

FAQ

Funciona no celular? Sim, após escanear o QrCode, iniciará uma conversa com o bot.

Como descobrir o número do ponto? Acesse o site oficial da EMTU ou use o app móvel oficial. Os pontos são numerados sequencialmente ao longo da rota.

Por que parou de enviar alertas? Pode ter atingido o limite máximo configurado em MAX_ALERTS_PER_ROUTE ou estar dentro do QUIET_HOURS.

Como evitar spam de notificações? Configure adequadamente os valores de MAX_ALERTS_PER_ROUTE e CHECK_INTERVAL_MINUTES.

Exemplos

Monitorar linha
/monitor 708 01 08:30
Ver localização
/where 708BI2 ida
Buscar linhas
/search 376
Buscar pontos
/search Terminal São Mateus
Listar monitoramentos
/list
Parar monitoramento
/stop 001
Status pessoal
/status
Ajuda
/help
Limite anti-spam
MAX_ALERTS_PER_ROUTE=3
Horário limite de alerta
QUIET_HOURS=2

Guia de Deploy

Docker

Imagem leve, isolada e fácil de atualizar.

PM2

Rodando como daemon com restart automático.

Systemd

Integração nativa com o sistema operacional.

Changelog

Contribuição

Abra um PR com melhorias de código, docs e exemplos. Padrões: Conventional Commits e lint em CI.