How to

Cómo conectar tus dispositivos LoRaWAN a TagoIO a través de The Things Network

Guía completa para integrar The Things Network (TTN v3) con TagoIO. Incluye configuración del webhook, creación del dispositivo en TagoIO, parseo del payload, downlinks y la gestión de flotas LoRaWAN con muchos dispositivos.

Fabio Rosa ·
Cómo conectar tus dispositivos LoRaWAN a TagoIO a través de The Things Network

The Things Network (TTN) es uno de los servidores de red LoRaWAN más usados del mundo, basado en The Things Stack v3. Se encarga del registro de dispositivos, la comunicación LoRaWAN en la capa MAC y el enrutamiento del payload. TTN destaca en la capa de red, pero no es una plataforma de aplicaciones. No almacena tus datos a largo plazo, no construye dashboards ni dispara alertas según los valores de los sensores.

TagoIO es la plataforma de aplicaciones que completa el stack. Almacena datos de series temporales, impulsa dashboards interactivos, dispara alertas, ejecuta scripts de análisis serverless y expone una API REST completa.

Conectar TTN con TagoIO es una integración limpia y bien soportada. TagoIO tiene un conector nativo de TTN v3 que gestiona el webhook de forma automática.

Lo que necesitas antes de empezar

Visión general de la arquitectura

[sensores LoRaWAN] → [gateway LoRaWAN] → [TTN v3 LNS] → (webhook HTTPS) → [TagoIO]

Cada uplink pasa por el servidor de red de TTN, que lo autentica y entrega el payload de la aplicación al webhook que configures. TagoIO recibe ese payload, ejecuta tu parser y almacena las variables resultantes.

Paso 1: crear un dispositivo en TagoIO con el conector de TTN

  1. Inicia sesión en admin.tago.io.
  2. Haz clic en Devices → Add Device.
  3. Busca The Things Network v3 en el catálogo de conectores.
  4. Nombra el dispositivo para que coincida con tu dispositivo final de TTN.
  5. Haz clic en Create Device.

TagoIO muestra una Webhook URL y un Authorization Token. Copia ambos.

Documentación de dispositivos: docs.tago.io/docs/tagoio/devices

Paso 2: configurar el webhook de TagoIO en TTN

  1. En tu aplicación de TTN, ve a Integrations → Webhooks.
  2. Haz clic en + Add webhook → Custom webhook.
  3. Configura la Base URL con la Webhook URL de TagoIO.
  4. En Headers, añade: Authorization: YOUR_TAGOIO_TOKEN
  5. Activa los eventos de Uplink message.
  6. Guarda.

Paso 3: escribir un Payload Parser

TTN envía un objeto JSON en cada uplink. TagoIO espera las variables en su formato estándar:

[{"variable": "temperature", "value": 22.5, "unit": "C"}]

Opción A: usar el payload formatter de TTN (decoded_payload)

Si TTN está decodificando tu payload, mapea los campos decodificados:

const decoded = payload.uplink_message.decoded_payload;
if (!decoded) { payload = []; return; }
payload = Object.entries(decoded).map(([key, value]) => ({
  variable: key, value: value
}));

Opción B: decodificar los bytes crudos en TagoIO

Para payloads crudos en base64 (ejemplo con Cayenne LPP):

const raw = Buffer.from(payload.uplink_message.frm_payload, "base64");
const temperature = raw.readInt16BE(2) / 10;
const humidity = raw.readUInt8(5) / 2;
payload = [
  { variable: "temperature", value: temperature, unit: "C" },
  { variable: "humidity", value: humidity, unit: "%" }
];

Añadir metadatos de RF:

const rxMeta = payload.uplink_message.rx_metadata?.[0] || {};
payload.push({ variable: "rssi", value: rxMeta.rssi });
payload.push({ variable: "snr", value: rxMeta.snr });

Documentación del Payload Parser: docs.tago.io/docs/tagoio/devices/payload-parser

Paso 4: verificar en el Live Inspector

Abre el Live Inspector en la página de tu dispositivo y confirma que las variables decodificadas llegan en el siguiente uplink.

Documentación del Live Inspector: docs.tago.io/docs/tagoio/devices/live-inspector

Paso 5: escalar a una flota

Para flotas grandes, crea un dispositivo de TagoIO por cada dispositivo final de TTN, o usa una única integración comodín en TagoIO con un script de Analysis que enrute los datos entrantes según el dev_eui.

Para dashboards con varios dispositivos, los Blueprint Dashboards aplican un solo diseño a todos los dispositivos mediante tags de forma automática.

Documentación de Analysis: docs.tago.io/docs/tagoio/analysis

Usa un script de Analysis de TagoIO para hacer POST de downlinks a través de la API de TTN v3:

const axios = require("axios");
await axios.post(
  `https://eu1.cloud.thethings.network/api/v3/as/applications/${APP_ID}/devices/${DEVICE_ID}/down/push`,
  { downlinks: [{ f_port: 1, frm_payload: Buffer.from([0x01]).toString("base64"), priority: "NORMAL" }] },
  { headers: { Authorization: `Bearer ${TTN_API_KEY}` } }
);

Esto te permite enviar comandos a los dispositivos: cambiar el intervalo de reporte, activar un relé o solicitar lecturas bajo demanda.

Ir más allá con IA

El servidor MCP de TagoIO conecta asistentes de IA como Claude con los datos de tus dispositivos. Pregunta: “¿Qué dispositivos no han reportado en 6 horas?” o “¿Cuál es la temperatura media de todos los nodos del Edificio B?”

Documentación de MCP: docs.tago.io/docs/tagoio/getting-started/tagoio-mcp-ai-powered-iot-data-integration

Resumen

La integración entre TTN y TagoIO usa el conector nativo de TTN v3 de TagoIO. Registra el dispositivo en TagoIO, añade el webhook en TTN, escribe un payload parser y tus datos LoRaWAN fluirán hacia el almacenamiento a largo plazo con todas las capacidades de dashboards y alertas.