# Comment connecter vos appareils LoRaWAN à TagoIO via The Things Network

> Guide complet pour intégrer The Things Network (TTN v3) à TagoIO. Configuration du webhook, création d'appareil dans TagoIO, analyse du payload, downlinks et gestion de flottes LoRaWAN multi-appareils à grande échelle.

![Comment connecter vos appareils LoRaWAN à TagoIO via The Things Network](https://tago.io/og/fr/blog/how-to-connect-lorawan-devices-through-the-things-network-to-tagoio.png)

The Things Network (TTN) est l'un des serveurs de réseau LoRaWAN les plus utilisés au monde, basé sur The Things Stack v3. Il gère l'enregistrement des appareils, la communication LoRaWAN au niveau de la couche MAC et le routage des payloads. TTN excelle au niveau de la couche réseau, mais ce n'est pas une plateforme applicative. Il ne stocke pas vos données sur le long terme, ne crée pas de dashboards et ne déclenche pas d'alertes à partir des valeurs des capteurs.

TagoIO est la plateforme applicative qui complète la pile. Elle stocke les données chronologiques, anime des dashboards interactifs, déclenche des alertes, exécute des scripts d'analyse serverless et expose une API REST complète.

Connecter TTN à TagoIO est une intégration propre et bien prise en charge. TagoIO dispose d'un connecteur natif TTN v3 qui configure le webhook automatiquement.

## Ce dont vous avez besoin avant de commencer

- Un compte TagoIO ([plan gratuit disponible](https://tago.io/pricing))
- Un compte TTN sur [console.cloud.thethings.network](https://console.cloud.thethings.network)
- Au moins un end device enregistré dans une application TTN
- Un gateway LoRaWAN fonctionnel avec une couverture TTN

## Vue d'ensemble de l'architecture

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

Chaque uplink passe par le serveur de réseau de TTN, qui l'authentifie et livre le payload applicatif au webhook que vous configurez. TagoIO reçoit ce payload, exécute votre parser et stocke les variables obtenues.

## Étape 1 : créer un appareil dans TagoIO avec le connecteur TTN

1. Connectez-vous à [admin.tago.io](https://admin.tago.io).
2. Cliquez sur **Devices → Add Device**.
3. Cherchez **The Things Network v3** dans le catalogue de connecteurs.
4. Nommez l'appareil pour qu'il corresponde à votre end device TTN.
5. Cliquez sur **Create Device**.

TagoIO affiche une **Webhook URL** et un **Authorization Token**. Copiez les deux.

Documentation des appareils : [docs.tago.io/docs/tagoio/devices](https://docs.tago.io/docs/tagoio/devices/)

## Étape 2 : configurer le webhook TagoIO dans TTN

1. Dans votre application TTN, allez dans **Integrations → Webhooks**.
2. Cliquez sur **+ Add webhook → Custom webhook**.
3. Définissez **Base URL** sur la Webhook URL de TagoIO.
4. Sous **Headers**, ajoutez : `Authorization: YOUR_TAGOIO_TOKEN`
5. Activez les événements **Uplink message**.
6. Enregistrez.

## Étape 3 : écrire un Payload Parser

TTN envoie un objet JSON à chaque uplink. TagoIO attend les variables dans son [format standard](https://docs.tago.io/docs/tagoio/devices/sending-data) :

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

**Option A : utiliser le payload formatter de TTN (decoded_payload)**

Si TTN décode votre payload, faites correspondre les champs décodés :

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

**Option B : décoder les octets bruts dans TagoIO**

Pour des payloads base64 bruts (exemple 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: "%" }
];
```

**Ajouter les métadonnées RF :**

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

Documentation du Payload Parser : [docs.tago.io/docs/tagoio/devices/payload-parser](https://docs.tago.io/docs/tagoio/devices/payload-parser/)

## Étape 4 : vérifier dans le Live Inspector

Ouvrez le **Live Inspector** sur la page de votre appareil et confirmez que les variables décodées arrivent au prochain uplink.

Documentation du Live Inspector : [docs.tago.io/docs/tagoio/devices/live-inspector](https://docs.tago.io/docs/tagoio/devices/live-inspector)

## Étape 5 : passer à l'échelle d'une flotte

Pour les grandes flottes, créez un appareil TagoIO par end device TTN, ou utilisez une seule intégration TagoIO fourre-tout avec un script d'Analysis qui répartit les données entrantes selon le `dev_eui`.

Pour les dashboards multi-appareils, les [Blueprint Dashboards](https://docs.tago.io/docs/tagoio/dashboards/blueprint-dashboard) appliquent automatiquement une seule mise en page à tous les appareils via les tags.

Documentation Analysis : [docs.tago.io/docs/tagoio/analysis](https://docs.tago.io/docs/tagoio/analysis/)

## Envoyer des downlinks de TagoIO vers TTN

Utilisez un script d'Analysis TagoIO pour envoyer des downlinks en POST via l'API 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}` } }
);
```

Cela vous permet d'envoyer des commandes aux appareils : changer l'intervalle de remontée, basculer un relais, demander des relevés à la demande.

## Aller plus loin avec l'IA

Le serveur MCP de TagoIO connecte des assistants IA comme Claude aux données de vos appareils. Demandez : "Quels appareils n'ont pas remonté de données depuis 6 heures ?" ou "Température moyenne sur tous les nœuds du bâtiment B ?"

Documentation 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)

## Récapitulatif

L'intégration TTN-TagoIO repose sur le connecteur natif TTN v3 de TagoIO. Enregistrez l'appareil dans TagoIO, ajoutez le webhook dans TTN, écrivez un payload parser, et vos données LoRaWAN affluent vers un stockage longue durée avec des capacités complètes de dashboard et d'alerte.

- Appareils : [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/)
- Scripts d'Analysis : [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)
