ENPLDEPT
Flash
Toda a documentação
LoRa

LoRa para a sua casa — alertas de emergência quando a internet cai e frames de sensores encriptados para o Home Assistant

Um node com rádio SX1262 faz duas coisas. Modo Emergency — leituras para fora, comandos para dentro, pelo ar, quando a linha está em baixo. E uma rede de receção para os seus próprios sensores LoRa — qualquer node Sensmos ou gateway LoRaWAN que os ouça entrega-os, encriptados de forma que só o seu node os consegue ler.

radio · 868 MHz · emergency frame
Heard by a neighbour · 2.1 kmgarage · temp 3.4°C · door OPEN · 21:44

Placas

Qualquer placa ESP32-S3 com um SX1262 (Heltec WiFi LoRa 32 V3, LilyGo T3-S3 e semelhantes). Grave o cartão ESP32-S3 + LoRa no flasher no browser. O firmware deteta o rádio no arranque; sem rádio, as telas LoRa simplesmente não aparecem.

ESP32-S3 + SX1262: Heltec V3 (à esquerda), Seeed XIAO S3 + Wio-SX1262 (à direita)
ESP32-S3 + SX1262 estilo Heltec
ESP32-S3 + SX1262: Heltec V3 (à esquerda), Seeed XIAO S3 + Wio-SX1262 (à direita)
Seeed XIAO S3 + Wio-SX1262

1. Modo Emergency (grátis, bidirecional)

Quando o node perde o uplink (Wi-Fi morto, ISP em baixo), fixa-se no canal base e transmite a cada poucos minutos até quatro leituras que você escolheu: temperatura, o estado de uma válvula, um estado em texto — qualquer coisa que o node tenha como entidade. Os valores são compactos (ASCII, 8 caracteres).

Quem o ouve, entrega. Outro node, ou um gateway LoRaWAN a correr o agente Sensmos, reencaminha o frame pela sua própria internet. Você recebe um push e um Painel Emergency na app: as leituras com a sua idade, quem as ouviu e uma caixa de comando.

Comandos de volta. A partir do painel pode enviar um comando curto (até 8 caracteres, p. ex. water_off) — assinado pela sua carteira, limitado a 4 por hora. A rede escolhe um node ao alcance do seu para o transmitir; o seu node executa-o localmente (webhook, MQTT, uma ação de script) e confirma na transmissão seguinte. A latência é um ciclo de transmissão, alguns minutos.

Como ligar: node → Configurações → LoRa → Emergency: escolha até quatro entidades e, opcionalmente, um webhook que o node deve chamar quando chega um comando (POST JSON ou GET, p. ex. um URL UniFi ou Shelly). O Painel Emergency aparece automaticamente no cartão do node quando o node fica às escuras.

2. Os seus próprios sensores LoRa (frames)

Qualquer transmissor LoRa — uma placa ESPHome, um sensor feito por si — pode enviar um pequeno frame endereçado ao seu node. O frame leva o id do node e um sub-endereço (1–255), para que um node possa servir muitos sensores.

  • Encriptado (recomendado): o sensor e o node partilham uma frase-chave. O node descodifica; o servidor só vê "um frame para o node X" e encaminha-o. A descodificação acontece no seu node, em firmware aberto que pode ler.
  • Em claro (opt-in): aceite só se o ligar, porque qualquer pessoa que conheça o id do seu node poderia enviar um. Serve para brinquedos e telemetria só de leitura; nunca para atuadores.

Os frames chegam à inbox LoRa do node (app: node → Configurações → LoRa → Inbox), ao MQTT (lora_frame, lora_frame.N por sensor) e ao Home Assistant como sensores e eventos. Um recibo de entrega (só metadados) diz à rede que o frame chegou.

Ouvido por qualquer um, entregue a você. Se o seu sensor estiver fora do alcance do seu próprio node mas outro node ou gateway o ouvir, o frame chega ao seu node pela internet. O seu node não precisa de ouvir ele mesmo os seus sensores.

Como ligar: node → Configurações → LoRa → Receção de frames: defina a frase-chave e, opcionalmente, permita frames em claro.

3. Enviar para um sensor

lorasend no node (app: Configurações → LoRa → Enviar, ou o serviço do HA sensmos.lora_send) transmite um frame para um dos seus próprios sensores: destino = o seu node, sub = o sensor. Só o node do próprio sensor transmite para ele — não há retransmissão pelos rádios de outras pessoas. Enviar para outro node vai pela internet e o rádio desse node faz o último salto.

Formato do frame (para quem constrói sensores)

plain:      [0xE0][0x02][flags][dst 4B][sub 1B][payload ≤128 B][CRC32 LE]
encrypted:  [0xE0][0x02][flags][dst 4B][sub 1B][nonce 4B][AES-256-CTR(payload+CRC32)]

flags bit0 = AES, bit1 = "último salto" (definido só pelo node quando transmite para um sensor). Chave = SHA-256 da frase-chave. Rádio: 868.1 MHz (EU) / 903.9 MHz (US), BW 125 kHz, SF11, CR 4/5, sync 0x34. Especificação completa, incl. obrigações de duty cycle e as regras do lado do sensor: API e protocolos.

Gateways como ouvidos extra

Um gateway LoRaWAN que já tenha a correr (Helium, TTN, privado) pode ouvir para toda a rede: um script passivo no gateway reporta o que o packet forwarder recebe, emparelhado através de um node Sensmos na mesma LAN. Nada muda no gateway. Configuração em dez minutos: Gateway LoRaWAN.

Papéis: Point e Scanner

A rede atribui um papel a cada node com rádio. Um Point fica no canal base 24/7 — o ouvido fiável para emergências e sensores. Um Scanner varre canais e amostra o espectro (ruído, ocupação, tráfego LoRa de terceiros) e salta para o canal base quando tem algo para enviar. Ambos reportam o que ouvem; pode ver o mapa de rádio no mapa ao vivo.

Ligações de rádio no mapa ao vivo: vizinhos que o node ouve, níveis de sinal e as suas entidades RF
Ligações de rádio no mapa — quem ouve quem, com que sinal, e as leituras RF do node

Preço

GALU / dia de usoPara onde vai
Modo Emergency, comandos, painel0 — sempre
Receber frames encriptados0.770% para o dono do primeiro node de terceiros que ouviu o seu sensor nesse dia, 30% pool de recompensas
Receber frames em claro (opt-in)0.5igual
Enviar a partir do rádio do seu node0.8pool de recompensas

Cobrado uma vez num dia em que use a funcionalidade; nada é bloqueado por um saldo vazio. Veja Carteira e taxas.

Perguntas, respostas diretas

Preciso de um gateway LoRaWAN ou de uma conta TTN?

Não. O seu node é o recetor dos seus sensores, e cada outro node ou gateway na rede é um par de ouvidos extra. Os frames usam um canal público de uplink LoRaWAN (EU 868.1 / US 903.9), por isso gateways de terceiros com o agente Sensmos também os ouvem.

O servidor consegue ler os dados dos meus sensores?

Não. Os frames são encriptados com uma frase-chave que vive só no seu node e nos seus sensores. O servidor encaminha os frames por endereço e nunca tem a chave ("zero-knowledge").

A entrega é garantida?

Não — é rádio. O modo Emergency é ouvido se houver um node ou gateway ao alcance; não há mesh nem multi-hop. Quantos mais nodes à sua volta, melhor.

Existe um mesh multi-hop?

Não, por design. Um salto de rádio, tudo o resto por IP. Isto mantém o duty cycle, a latência e a segurança previsíveis.

Quanto custa?

O modo Emergency é grátis para sempre. Receber frames de sensores custa 0.7 GALU (encriptados) ou 0.5 GALU (em claro, opt-in) por dia de uso; enviar a partir do rádio do node 0.8 GALU por dia de uso. 70% de uma taxa de receção vai para o dono do primeiro node de terceiros que ouviu o seu sensor nesse dia.

Atualizado: 2026-09-03