Guides
ChirpStack: como receber um alerta quando um dispositivo deixa de enviar
O ChirpStack não tem alertas nativos. Três formas de saber que um dispositivo LoRaWAN ficou em silêncio: a integração HTTP, a API gRPC e um watchdog alojado.
O ChirpStack não avisa quando um dispositivo deixa de enviar. A razão é simples: o
ChirpStack é um servidor de rede, não uma plataforma de monitorização. Expõe
dados através de integrações e de uma API, e deixa os alertas para quem
consumir esses dados. Não há motor de regras, nem separador de notificações, nem um
e-mail de «dispositivo offline» à espera de ser activado.
Um sensor com a pilha gasta, com humidade dentro da caixa ou com um rejoin falhado
produz exactamente o mesmo que um sensor que funciona bem e apenas ainda não
transmitiu: nada. A falha só se nota quando alguém olha para um gráfico.
O que o ChirpStack dá de facto
Estado do dispositivo. O ChirpStack envia periodicamente o comando
MAC DevStatusReq e guarda o nível de bateria e a margem de ligação que o
dispositivo devolve. O intervalo configura-se no perfil do dispositivo. É útil para
apanhar uma pilha em fim de vida, mas não ajuda com um dispositivo que deixou de falar
de todo: um pedido de estado sem resposta fica simplesmente sem resposta.
A marca temporal lastSeenAt. É este o campo que
interessa, e tudo o resto é uma forma de o vigiar.
Opção 1: a integração HTTP (recomendada)
A que dá menos trabalho e a mais fiável. Em Applications ▸ a sua aplicação ▸
Integrations ▸ HTTP, defina um URL de endpoint. O ChirpStack fará um POST em JSON
a cada uplink, com o EUI do dispositivo, o nome, o contador de tramas e os gateways
que o ouviram.
{
"deviceInfo": { "devEui": "24e124707c481234", "deviceName": "IO103M" },
"fCnt": 412,
"rxInfo": [ { "gatewayId": "2cf7f11e15ec0000", "rssi": -97, "snr": 8.2 } ],
"object": { "battery": 88 }
}
Atenção: o ChirpStack envia eventos de join, ack e estado para o mesmo URL. Trate
apenas os uplinks como sinal de vida — um ack não é um sensor a funcionar.
Publicamos um script Python de ficheiro único, sem dependências, que faz
exactamente isto:
uplink-watchdog,
com licença MIT.
Opção 2: consultar a API
Em alternativa, pode ler o lastSeenAt de todos os dispositivos
periodicamente e alertar sobre valores desactualizados.
Uma armadilha: o ChirpStack v4 já não inclui API REST. A interface
REST da v3 era uma camada de tradução sobre gRPC e foi removida na v4. Quem precisa de
REST tem de correr o contentor separado
chirpstack-rest-api;
caso contrário, fala gRPC através do pacote chirpstack-api.
O polling também escala pior: com algumas centenas de dispositivos estará a fazer um
pedido paginado grande de poucos em poucos minutos para saber algo que o servidor de
rede lhe teria dito de graça.
Escolher o limiar de silêncio
É aqui que falha quase toda a monitorização feita em casa. Um tempo-limite único não
serve para um parque real: um contador de pessoas que transmite de 15 em 15 minutos e
um sensor de nível que transmite uma vez por dia precisam de janelas separadas por duas
ordens de grandeza. Curta demais, os sensores diários dão alarme falso todas as noites;
larga demais, um contador morto passa despercebido um dia inteiro.
A abordagem que resulta é por dispositivo e aprendida: registe o intervalo médio de
cada dispositivo e trate cerca de três intervalos falhados como avaria. Três é
tolerante que chegue para sobreviver a um uplink perdido — normal em qualquer rede
rádio — e apertado que chegue para apanhar uma avaria real no próprio dia.
Um pormenor fácil de escapar: exclua do cálculo dessa média as falhas com duração de
avaria. Se uma paragem de dois dias entrar na média, o intervalo esperado dispara e a
avaria seguinte demora muito mais a ser detectada. O ritmo aprendido deve
reflectir apenas comportamento saudável.
Vigie também os gateways
Cada uplink traz um array rxInfo com os gateways que o receberam.
Registá-los dá-lhe monitorização de gateways sem configuração adicional: se um gateway
deixa de aparecer em qualquer rxInfo, deixou de encaminhar. Isto importa
porque um gateway em baixo parece que todos os dispositivos por trás dele morrem ao
mesmo tempo — e o que quer saber é a causa, não o sintoma.
O problema de alojar a vigilância em casa
Aplica-se a todas as opções acima e vale a pena dizê-lo com clareza: se a sua
monitorização corre na sua própria infra-estrutura, ninguém vigia a vigilância. Se o
processo morre, se a máquina reinicia ou se o disco enche, os alertas param — e a
ausência de alertas é indistinguível de estar tudo bem.
Numa rede de hobby é um risco aceitável. Num parque pelo qual responde
contratualmente, é a falha que mais cedo ou mais tarde custa caro.
Opção 3: um watchdog alojado
Foi para isto que construímos o UplinkWatch, portanto leia esta
secção com isso em mente. Cola o nosso URL de ingestão nesse mesmo campo de integração
HTTP e a vigilância passa a correr na nossa infra-estrutura em vez da sua. Dispositivos
e gateways registam-se sozinhos, o ritmo é aprendido por dispositivo, e os alertas
seguem por e-mail, notificação no telemóvel ou webhook. Gratuito até 5 dispositivos.
Alojado na União Europeia: os nossos servidores estão em Helsínquia
(Finlândia), na Hetzner. Os seus metadados de uplink não saem da UE.
Se tem apenas um punhado de dispositivos e gosta de gerir os seus próprios serviços,
o script da opção 1 chega perfeitamente.
Nota: a interface web do UplinkWatch está em inglês. Apoio em
português por e-mail para
info@geosensor.tech.
Stop finding out from your client
UplinkWatch alerts you the moment a device or gateway
goes quiet. Paste one URL into your network server. Free for 5 devices.
Start free
What it does
Also available in:
English · Deutsch · Français · Español
Last updated 2026-09-03.