# 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.

![Cómo conectar tus dispositivos LoRaWAN a TagoIO a través de The Things Network](https://tago.io/og/es/blog/how-to-connect-lorawan-devices-through-the-things-network-to-tagoio.png)

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

- Una cuenta de TagoIO ([plan gratuito disponible](https://tago.io/pricing))
- Una cuenta de TTN en [console.cloud.thethings.network](https://console.cloud.thethings.network)
- Al menos un dispositivo final registrado en una aplicación de TTN
- Un gateway LoRaWAN en funcionamiento con cobertura de TTN

## 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](https://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](https://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](https://docs.tago.io/docs/tagoio/devices/sending-data):

```json
[{"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:

```javascript
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):

```javascript
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:**

```javascript
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](https://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](https://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](https://docs.tago.io/docs/tagoio/dashboards/blueprint-dashboard) 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](https://docs.tago.io/docs/tagoio/analysis/)

## Enviar downlinks desde TagoIO a TTN

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

```javascript
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/tago-ai/tagoio-mcp-ai-powered-iot-data-integration](https://docs.tago.io/docs/tagoio/tago-ai/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.

- Devices: [docs.tago.io/docs/tagoio/devices](https://docs.tago.io/docs/tagoio/devices/)
- Payload Parser: [docs.tago.io/docs/tagoio/devices/payload-parser](https://docs.tago.io/docs/tagoio/devices/payload-parser/)
- Analysis Scripts: [docs.tago.io/docs/tagoio/analysis](https://docs.tago.io/docs/tagoio/analysis/)
- Actions: [docs.tago.io/docs/tagoio/actions](https://docs.tago.io/docs/tagoio/actions/)
- MCP: [docs.tago.io/docs/tagoio/tago-ai/tagoio-mcp-ai-powered-iot-data-integration](https://docs.tago.io/docs/tagoio/tago-ai/tagoio-mcp-ai-powered-iot-data-integration)

[llms.txt](https://tago.io/llms.txt)
