How to

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.

Fabio Rosa ·
Comment connecter vos appareils LoRaWAN à TagoIO via The Things Network

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

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

É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 :

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

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

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 :

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

É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

É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 appliquent automatiquement une seule mise en page à tous les appareils via les tags.

Documentation Analysis : docs.tago.io/docs/tagoio/analysis

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

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/getting-started/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.